##// END OF EJS Templates
Forgot mention of irunner improvements to automatically recognize extensions...
fptest -
Show More
@@ -1,5923 +1,5927 b''
1 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
2
2
3 * IPython/irunner.py (main): modified irunner so it automatically
4 recognizes the right runner to use based on the extension (.py for
5 python, .ipy for ipython and .sage for sage).
6
3 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
7 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
4 visible in ipapi as ip.config(), to programatically control the
8 visible in ipapi as ip.config(), to programatically control the
5 internal rc object. There's an accompanying %config magic for
9 internal rc object. There's an accompanying %config magic for
6 interactive use, which has been enhanced to match the
10 interactive use, which has been enhanced to match the
7 funtionality in ipconfig.
11 funtionality in ipconfig.
8
12
9 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
13 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
10 so it's not just a toggle, it now takes an argument. Add support
14 so it's not just a toggle, it now takes an argument. Add support
11 for a customizable header when making system calls, as the new
15 for a customizable header when making system calls, as the new
12 system_header variable in the ipythonrc file.
16 system_header variable in the ipythonrc file.
13
17
14 2006-11-03 Walter Doerwald <walter@livinglogic.de>
18 2006-11-03 Walter Doerwald <walter@livinglogic.de>
15
19
16 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
20 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
17 generic functions (using Philip J. Eby's simplegeneric package).
21 generic functions (using Philip J. Eby's simplegeneric package).
18 This makes it possible to customize the display of third-party classes
22 This makes it possible to customize the display of third-party classes
19 without having to monkeypatch them. xiter() no longer supports a mode
23 without having to monkeypatch them. xiter() no longer supports a mode
20 argument and the XMode class has been removed. The same functionality can
24 argument and the XMode class has been removed. The same functionality can
21 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
25 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
22 One consequence of the switch to generic functions is that xrepr() and
26 One consequence of the switch to generic functions is that xrepr() and
23 xattrs() implementation must define the default value for the mode
27 xattrs() implementation must define the default value for the mode
24 argument themselves and xattrs() implementations must return real
28 argument themselves and xattrs() implementations must return real
25 descriptors.
29 descriptors.
26
30
27 * IPython/external: This new subpackage will contain all third-party
31 * IPython/external: This new subpackage will contain all third-party
28 packages that are bundled with IPython. (The first one is simplegeneric).
32 packages that are bundled with IPython. (The first one is simplegeneric).
29
33
30 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
34 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
31 directory which as been dropped in r1703.
35 directory which as been dropped in r1703.
32
36
33 * IPython/Extensions/ipipe.py (iless): Fixed.
37 * IPython/Extensions/ipipe.py (iless): Fixed.
34
38
35 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
39 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
36
40
37 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
41 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
38
42
39 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
43 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
40 handling in variable expansion so that shells and magics recognize
44 handling in variable expansion so that shells and magics recognize
41 function local scopes correctly. Bug reported by Brian.
45 function local scopes correctly. Bug reported by Brian.
42
46
43 * scripts/ipython: remove the very first entry in sys.path which
47 * scripts/ipython: remove the very first entry in sys.path which
44 Python auto-inserts for scripts, so that sys.path under IPython is
48 Python auto-inserts for scripts, so that sys.path under IPython is
45 as similar as possible to that under plain Python.
49 as similar as possible to that under plain Python.
46
50
47 * IPython/completer.py (IPCompleter.file_matches): Fix
51 * IPython/completer.py (IPCompleter.file_matches): Fix
48 tab-completion so that quotes are not closed unless the completion
52 tab-completion so that quotes are not closed unless the completion
49 is unambiguous. After a request by Stefan. Minor cleanups in
53 is unambiguous. After a request by Stefan. Minor cleanups in
50 ipy_stock_completers.
54 ipy_stock_completers.
51
55
52 2006-11-02 Ville Vainio <vivainio@gmail.com>
56 2006-11-02 Ville Vainio <vivainio@gmail.com>
53
57
54 * ipy_stock_completers.py: Add %run and %cd completers.
58 * ipy_stock_completers.py: Add %run and %cd completers.
55
59
56 * completer.py: Try running custom completer for both
60 * completer.py: Try running custom completer for both
57 "foo" and "%foo" if the command is just "foo". Ignore case
61 "foo" and "%foo" if the command is just "foo". Ignore case
58 when filtering possible completions.
62 when filtering possible completions.
59
63
60 * UserConfig/ipy_user_conf.py: install stock completers as default
64 * UserConfig/ipy_user_conf.py: install stock completers as default
61
65
62 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
66 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
63 simplified readline history save / restore through a wrapper
67 simplified readline history save / restore through a wrapper
64 function
68 function
65
69
66
70
67 2006-10-31 Ville Vainio <vivainio@gmail.com>
71 2006-10-31 Ville Vainio <vivainio@gmail.com>
68
72
69 * strdispatch.py, completer.py, ipy_stock_completers.py:
73 * strdispatch.py, completer.py, ipy_stock_completers.py:
70 Allow str_key ("command") in completer hooks. Implement
74 Allow str_key ("command") in completer hooks. Implement
71 trivial completer for 'import' (stdlib modules only). Rename
75 trivial completer for 'import' (stdlib modules only). Rename
72 ipy_linux_package_managers.py to ipy_stock_completers.py.
76 ipy_linux_package_managers.py to ipy_stock_completers.py.
73 SVN completer.
77 SVN completer.
74
78
75 * Extensions/ledit.py: %magic line editor for easily and
79 * Extensions/ledit.py: %magic line editor for easily and
76 incrementally manipulating lists of strings. The magic command
80 incrementally manipulating lists of strings. The magic command
77 name is %led.
81 name is %led.
78
82
79 2006-10-30 Ville Vainio <vivainio@gmail.com>
83 2006-10-30 Ville Vainio <vivainio@gmail.com>
80
84
81 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
85 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
82 Bernsteins's patches for pydb integration.
86 Bernsteins's patches for pydb integration.
83 http://bashdb.sourceforge.net/pydb/
87 http://bashdb.sourceforge.net/pydb/
84
88
85 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
89 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
86 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
90 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
87 custom completer hook to allow the users to implement their own
91 custom completer hook to allow the users to implement their own
88 completers. See ipy_linux_package_managers.py for example. The
92 completers. See ipy_linux_package_managers.py for example. The
89 hook name is 'complete_command'.
93 hook name is 'complete_command'.
90
94
91 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
95 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
92
96
93 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
97 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
94 Numeric leftovers.
98 Numeric leftovers.
95
99
96 * ipython.el (py-execute-region): apply Stefan's patch to fix
100 * ipython.el (py-execute-region): apply Stefan's patch to fix
97 garbled results if the python shell hasn't been previously started.
101 garbled results if the python shell hasn't been previously started.
98
102
99 * IPython/genutils.py (arg_split): moved to genutils, since it's a
103 * IPython/genutils.py (arg_split): moved to genutils, since it's a
100 pretty generic function and useful for other things.
104 pretty generic function and useful for other things.
101
105
102 * IPython/OInspect.py (getsource): Add customizable source
106 * IPython/OInspect.py (getsource): Add customizable source
103 extractor. After a request/patch form W. Stein (SAGE).
107 extractor. After a request/patch form W. Stein (SAGE).
104
108
105 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
109 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
106 window size to a more reasonable value from what pexpect does,
110 window size to a more reasonable value from what pexpect does,
107 since their choice causes wrapping bugs with long input lines.
111 since their choice causes wrapping bugs with long input lines.
108
112
109 2006-10-28 Ville Vainio <vivainio@gmail.com>
113 2006-10-28 Ville Vainio <vivainio@gmail.com>
110
114
111 * Magic.py (%run): Save and restore the readline history from
115 * Magic.py (%run): Save and restore the readline history from
112 file around %run commands to prevent side effects from
116 file around %run commands to prevent side effects from
113 %runned programs that might use readline (e.g. pydb).
117 %runned programs that might use readline (e.g. pydb).
114
118
115 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
119 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
116 invoking the pydb enhanced debugger.
120 invoking the pydb enhanced debugger.
117
121
118 2006-10-23 Walter Doerwald <walter@livinglogic.de>
122 2006-10-23 Walter Doerwald <walter@livinglogic.de>
119
123
120 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
124 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
121 call the base class method and propagate the return value to
125 call the base class method and propagate the return value to
122 ifile. This is now done by path itself.
126 ifile. This is now done by path itself.
123
127
124 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
128 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
125
129
126 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
130 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
127 api: set_crash_handler(), to expose the ability to change the
131 api: set_crash_handler(), to expose the ability to change the
128 internal crash handler.
132 internal crash handler.
129
133
130 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
134 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
131 the various parameters of the crash handler so that apps using
135 the various parameters of the crash handler so that apps using
132 IPython as their engine can customize crash handling. Ipmlemented
136 IPython as their engine can customize crash handling. Ipmlemented
133 at the request of SAGE.
137 at the request of SAGE.
134
138
135 2006-10-14 Ville Vainio <vivainio@gmail.com>
139 2006-10-14 Ville Vainio <vivainio@gmail.com>
136
140
137 * Magic.py, ipython.el: applied first "safe" part of Rocky
141 * Magic.py, ipython.el: applied first "safe" part of Rocky
138 Bernstein's patch set for pydb integration.
142 Bernstein's patch set for pydb integration.
139
143
140 * Magic.py (%unalias, %alias): %store'd aliases can now be
144 * Magic.py (%unalias, %alias): %store'd aliases can now be
141 removed with '%unalias'. %alias w/o args now shows most
145 removed with '%unalias'. %alias w/o args now shows most
142 interesting (stored / manually defined) aliases last
146 interesting (stored / manually defined) aliases last
143 where they catch the eye w/o scrolling.
147 where they catch the eye w/o scrolling.
144
148
145 * Magic.py (%rehashx), ext_rehashdir.py: files with
149 * Magic.py (%rehashx), ext_rehashdir.py: files with
146 'py' extension are always considered executable, even
150 'py' extension are always considered executable, even
147 when not in PATHEXT environment variable.
151 when not in PATHEXT environment variable.
148
152
149 2006-10-12 Ville Vainio <vivainio@gmail.com>
153 2006-10-12 Ville Vainio <vivainio@gmail.com>
150
154
151 * jobctrl.py: Add new "jobctrl" extension for spawning background
155 * jobctrl.py: Add new "jobctrl" extension for spawning background
152 processes with "&find /". 'import jobctrl' to try it out. Requires
156 processes with "&find /". 'import jobctrl' to try it out. Requires
153 'subprocess' module, standard in python 2.4+.
157 'subprocess' module, standard in python 2.4+.
154
158
155 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
159 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
156 so if foo -> bar and bar -> baz, then foo -> baz.
160 so if foo -> bar and bar -> baz, then foo -> baz.
157
161
158 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
162 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
159
163
160 * IPython/Magic.py (Magic.parse_options): add a new posix option
164 * IPython/Magic.py (Magic.parse_options): add a new posix option
161 to allow parsing of input args in magics that doesn't strip quotes
165 to allow parsing of input args in magics that doesn't strip quotes
162 (if posix=False). This also closes %timeit bug reported by
166 (if posix=False). This also closes %timeit bug reported by
163 Stefan.
167 Stefan.
164
168
165 2006-10-03 Ville Vainio <vivainio@gmail.com>
169 2006-10-03 Ville Vainio <vivainio@gmail.com>
166
170
167 * iplib.py (raw_input, interact): Return ValueError catching for
171 * iplib.py (raw_input, interact): Return ValueError catching for
168 raw_input. Fixes infinite loop for sys.stdin.close() or
172 raw_input. Fixes infinite loop for sys.stdin.close() or
169 sys.stdout.close().
173 sys.stdout.close().
170
174
171 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
175 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
172
176
173 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
177 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
174 to help in handling doctests. irunner is now pretty useful for
178 to help in handling doctests. irunner is now pretty useful for
175 running standalone scripts and simulate a full interactive session
179 running standalone scripts and simulate a full interactive session
176 in a format that can be then pasted as a doctest.
180 in a format that can be then pasted as a doctest.
177
181
178 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
182 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
179 on top of the default (useless) ones. This also fixes the nasty
183 on top of the default (useless) ones. This also fixes the nasty
180 way in which 2.5's Quitter() exits (reverted [1785]).
184 way in which 2.5's Quitter() exits (reverted [1785]).
181
185
182 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
186 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
183 2.5.
187 2.5.
184
188
185 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
189 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
186 color scheme is updated as well when color scheme is changed
190 color scheme is updated as well when color scheme is changed
187 interactively.
191 interactively.
188
192
189 2006-09-27 Ville Vainio <vivainio@gmail.com>
193 2006-09-27 Ville Vainio <vivainio@gmail.com>
190
194
191 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
195 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
192 infinite loop and just exit. It's a hack, but will do for a while.
196 infinite loop and just exit. It's a hack, but will do for a while.
193
197
194 2006-08-25 Walter Doerwald <walter@livinglogic.de>
198 2006-08-25 Walter Doerwald <walter@livinglogic.de>
195
199
196 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
200 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
197 the constructor, this makes it possible to get a list of only directories
201 the constructor, this makes it possible to get a list of only directories
198 or only files.
202 or only files.
199
203
200 2006-08-12 Ville Vainio <vivainio@gmail.com>
204 2006-08-12 Ville Vainio <vivainio@gmail.com>
201
205
202 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
206 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
203 they broke unittest
207 they broke unittest
204
208
205 2006-08-11 Ville Vainio <vivainio@gmail.com>
209 2006-08-11 Ville Vainio <vivainio@gmail.com>
206
210
207 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
211 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
208 by resolving issue properly, i.e. by inheriting FakeModule
212 by resolving issue properly, i.e. by inheriting FakeModule
209 from types.ModuleType. Pickling ipython interactive data
213 from types.ModuleType. Pickling ipython interactive data
210 should still work as usual (testing appreciated).
214 should still work as usual (testing appreciated).
211
215
212 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
216 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
213
217
214 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
218 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
215 running under python 2.3 with code from 2.4 to fix a bug with
219 running under python 2.3 with code from 2.4 to fix a bug with
216 help(). Reported by the Debian maintainers, Norbert Tretkowski
220 help(). Reported by the Debian maintainers, Norbert Tretkowski
217 <norbert-AT-tretkowski.de> and Alexandre Fayolle
221 <norbert-AT-tretkowski.de> and Alexandre Fayolle
218 <afayolle-AT-debian.org>.
222 <afayolle-AT-debian.org>.
219
223
220 2006-08-04 Walter Doerwald <walter@livinglogic.de>
224 2006-08-04 Walter Doerwald <walter@livinglogic.de>
221
225
222 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
226 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
223 (which was displaying "quit" twice).
227 (which was displaying "quit" twice).
224
228
225 2006-07-28 Walter Doerwald <walter@livinglogic.de>
229 2006-07-28 Walter Doerwald <walter@livinglogic.de>
226
230
227 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
231 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
228 the mode argument).
232 the mode argument).
229
233
230 2006-07-27 Walter Doerwald <walter@livinglogic.de>
234 2006-07-27 Walter Doerwald <walter@livinglogic.de>
231
235
232 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
236 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
233 not running under IPython.
237 not running under IPython.
234
238
235 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
239 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
236 and make it iterable (iterating over the attribute itself). Add two new
240 and make it iterable (iterating over the attribute itself). Add two new
237 magic strings for __xattrs__(): If the string starts with "-", the attribute
241 magic strings for __xattrs__(): If the string starts with "-", the attribute
238 will not be displayed in ibrowse's detail view (but it can still be
242 will not be displayed in ibrowse's detail view (but it can still be
239 iterated over). This makes it possible to add attributes that are large
243 iterated over). This makes it possible to add attributes that are large
240 lists or generator methods to the detail view. Replace magic attribute names
244 lists or generator methods to the detail view. Replace magic attribute names
241 and _attrname() and _getattr() with "descriptors": For each type of magic
245 and _attrname() and _getattr() with "descriptors": For each type of magic
242 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
246 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
243 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
247 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
244 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
248 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
245 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
249 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
246 are still supported.
250 are still supported.
247
251
248 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
252 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
249 fails in ibrowse.fetch(), the exception object is added as the last item
253 fails in ibrowse.fetch(), the exception object is added as the last item
250 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
254 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
251 a generator throws an exception midway through execution.
255 a generator throws an exception midway through execution.
252
256
253 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
257 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
254 encoding into methods.
258 encoding into methods.
255
259
256 2006-07-26 Ville Vainio <vivainio@gmail.com>
260 2006-07-26 Ville Vainio <vivainio@gmail.com>
257
261
258 * iplib.py: history now stores multiline input as single
262 * iplib.py: history now stores multiline input as single
259 history entries. Patch by Jorgen Cederlof.
263 history entries. Patch by Jorgen Cederlof.
260
264
261 2006-07-18 Walter Doerwald <walter@livinglogic.de>
265 2006-07-18 Walter Doerwald <walter@livinglogic.de>
262
266
263 * IPython/Extensions/ibrowse.py: Make cursor visible over
267 * IPython/Extensions/ibrowse.py: Make cursor visible over
264 non existing attributes.
268 non existing attributes.
265
269
266 2006-07-14 Walter Doerwald <walter@livinglogic.de>
270 2006-07-14 Walter Doerwald <walter@livinglogic.de>
267
271
268 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
272 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
269 error output of the running command doesn't mess up the screen.
273 error output of the running command doesn't mess up the screen.
270
274
271 2006-07-13 Walter Doerwald <walter@livinglogic.de>
275 2006-07-13 Walter Doerwald <walter@livinglogic.de>
272
276
273 * IPython/Extensions/ipipe.py (isort): Make isort usable without
277 * IPython/Extensions/ipipe.py (isort): Make isort usable without
274 argument. This sorts the items themselves.
278 argument. This sorts the items themselves.
275
279
276 2006-07-12 Walter Doerwald <walter@livinglogic.de>
280 2006-07-12 Walter Doerwald <walter@livinglogic.de>
277
281
278 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
282 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
279 Compile expression strings into code objects. This should speed
283 Compile expression strings into code objects. This should speed
280 up ifilter and friends somewhat.
284 up ifilter and friends somewhat.
281
285
282 2006-07-08 Ville Vainio <vivainio@gmail.com>
286 2006-07-08 Ville Vainio <vivainio@gmail.com>
283
287
284 * Magic.py: %cpaste now strips > from the beginning of lines
288 * Magic.py: %cpaste now strips > from the beginning of lines
285 to ease pasting quoted code from emails. Contributed by
289 to ease pasting quoted code from emails. Contributed by
286 Stefan van der Walt.
290 Stefan van der Walt.
287
291
288 2006-06-29 Ville Vainio <vivainio@gmail.com>
292 2006-06-29 Ville Vainio <vivainio@gmail.com>
289
293
290 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
294 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
291 mode, patch contributed by Darren Dale. NEEDS TESTING!
295 mode, patch contributed by Darren Dale. NEEDS TESTING!
292
296
293 2006-06-28 Walter Doerwald <walter@livinglogic.de>
297 2006-06-28 Walter Doerwald <walter@livinglogic.de>
294
298
295 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
299 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
296 a blue background. Fix fetching new display rows when the browser
300 a blue background. Fix fetching new display rows when the browser
297 scrolls more than a screenful (e.g. by using the goto command).
301 scrolls more than a screenful (e.g. by using the goto command).
298
302
299 2006-06-27 Ville Vainio <vivainio@gmail.com>
303 2006-06-27 Ville Vainio <vivainio@gmail.com>
300
304
301 * Magic.py (_inspect, _ofind) Apply David Huard's
305 * Magic.py (_inspect, _ofind) Apply David Huard's
302 patch for displaying the correct docstring for 'property'
306 patch for displaying the correct docstring for 'property'
303 attributes.
307 attributes.
304
308
305 2006-06-23 Walter Doerwald <walter@livinglogic.de>
309 2006-06-23 Walter Doerwald <walter@livinglogic.de>
306
310
307 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
311 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
308 commands into the methods implementing them.
312 commands into the methods implementing them.
309
313
310 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
314 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
311
315
312 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
316 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
313 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
317 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
314 autoindent support was authored by Jin Liu.
318 autoindent support was authored by Jin Liu.
315
319
316 2006-06-22 Walter Doerwald <walter@livinglogic.de>
320 2006-06-22 Walter Doerwald <walter@livinglogic.de>
317
321
318 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
322 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
319 for keymaps with a custom class that simplifies handling.
323 for keymaps with a custom class that simplifies handling.
320
324
321 2006-06-19 Walter Doerwald <walter@livinglogic.de>
325 2006-06-19 Walter Doerwald <walter@livinglogic.de>
322
326
323 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
327 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
324 resizing. This requires Python 2.5 to work.
328 resizing. This requires Python 2.5 to work.
325
329
326 2006-06-16 Walter Doerwald <walter@livinglogic.de>
330 2006-06-16 Walter Doerwald <walter@livinglogic.de>
327
331
328 * IPython/Extensions/ibrowse.py: Add two new commands to
332 * IPython/Extensions/ibrowse.py: Add two new commands to
329 ibrowse: "hideattr" (mapped to "h") hides the attribute under
333 ibrowse: "hideattr" (mapped to "h") hides the attribute under
330 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
334 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
331 attributes again. Remapped the help command to "?". Display
335 attributes again. Remapped the help command to "?". Display
332 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
336 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
333 as keys for the "home" and "end" commands. Add three new commands
337 as keys for the "home" and "end" commands. Add three new commands
334 to the input mode for "find" and friends: "delend" (CTRL-K)
338 to the input mode for "find" and friends: "delend" (CTRL-K)
335 deletes to the end of line. "incsearchup" searches upwards in the
339 deletes to the end of line. "incsearchup" searches upwards in the
336 command history for an input that starts with the text before the cursor.
340 command history for an input that starts with the text before the cursor.
337 "incsearchdown" does the same downwards. Removed a bogus mapping of
341 "incsearchdown" does the same downwards. Removed a bogus mapping of
338 the x key to "delete".
342 the x key to "delete".
339
343
340 2006-06-15 Ville Vainio <vivainio@gmail.com>
344 2006-06-15 Ville Vainio <vivainio@gmail.com>
341
345
342 * iplib.py, hooks.py: Added new generate_prompt hook that can be
346 * iplib.py, hooks.py: Added new generate_prompt hook that can be
343 used to create prompts dynamically, instead of the "old" way of
347 used to create prompts dynamically, instead of the "old" way of
344 assigning "magic" strings to prompt_in1 and prompt_in2. The old
348 assigning "magic" strings to prompt_in1 and prompt_in2. The old
345 way still works (it's invoked by the default hook), of course.
349 way still works (it's invoked by the default hook), of course.
346
350
347 * Prompts.py: added generate_output_prompt hook for altering output
351 * Prompts.py: added generate_output_prompt hook for altering output
348 prompt
352 prompt
349
353
350 * Release.py: Changed version string to 0.7.3.svn.
354 * Release.py: Changed version string to 0.7.3.svn.
351
355
352 2006-06-15 Walter Doerwald <walter@livinglogic.de>
356 2006-06-15 Walter Doerwald <walter@livinglogic.de>
353
357
354 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
358 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
355 the call to fetch() always tries to fetch enough data for at least one
359 the call to fetch() always tries to fetch enough data for at least one
356 full screen. This makes it possible to simply call moveto(0,0,True) in
360 full screen. This makes it possible to simply call moveto(0,0,True) in
357 the constructor. Fix typos and removed the obsolete goto attribute.
361 the constructor. Fix typos and removed the obsolete goto attribute.
358
362
359 2006-06-12 Ville Vainio <vivainio@gmail.com>
363 2006-06-12 Ville Vainio <vivainio@gmail.com>
360
364
361 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
365 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
362 allowing $variable interpolation within multiline statements,
366 allowing $variable interpolation within multiline statements,
363 though so far only with "sh" profile for a testing period.
367 though so far only with "sh" profile for a testing period.
364 The patch also enables splitting long commands with \ but it
368 The patch also enables splitting long commands with \ but it
365 doesn't work properly yet.
369 doesn't work properly yet.
366
370
367 2006-06-12 Walter Doerwald <walter@livinglogic.de>
371 2006-06-12 Walter Doerwald <walter@livinglogic.de>
368
372
369 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
373 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
370 input history and the position of the cursor in the input history for
374 input history and the position of the cursor in the input history for
371 the find, findbackwards and goto command.
375 the find, findbackwards and goto command.
372
376
373 2006-06-10 Walter Doerwald <walter@livinglogic.de>
377 2006-06-10 Walter Doerwald <walter@livinglogic.de>
374
378
375 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
379 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
376 implements the basic functionality of browser commands that require
380 implements the basic functionality of browser commands that require
377 input. Reimplement the goto, find and findbackwards commands as
381 input. Reimplement the goto, find and findbackwards commands as
378 subclasses of _CommandInput. Add an input history and keymaps to those
382 subclasses of _CommandInput. Add an input history and keymaps to those
379 commands. Add "\r" as a keyboard shortcut for the enterdefault and
383 commands. Add "\r" as a keyboard shortcut for the enterdefault and
380 execute commands.
384 execute commands.
381
385
382 2006-06-07 Ville Vainio <vivainio@gmail.com>
386 2006-06-07 Ville Vainio <vivainio@gmail.com>
383
387
384 * iplib.py: ipython mybatch.ipy exits ipython immediately after
388 * iplib.py: ipython mybatch.ipy exits ipython immediately after
385 running the batch files instead of leaving the session open.
389 running the batch files instead of leaving the session open.
386
390
387 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
391 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
388
392
389 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
393 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
390 the original fix was incomplete. Patch submitted by W. Maier.
394 the original fix was incomplete. Patch submitted by W. Maier.
391
395
392 2006-06-07 Ville Vainio <vivainio@gmail.com>
396 2006-06-07 Ville Vainio <vivainio@gmail.com>
393
397
394 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
398 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
395 Confirmation prompts can be supressed by 'quiet' option.
399 Confirmation prompts can be supressed by 'quiet' option.
396 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
400 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
397
401
398 2006-06-06 *** Released version 0.7.2
402 2006-06-06 *** Released version 0.7.2
399
403
400 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
404 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
401
405
402 * IPython/Release.py (version): Made 0.7.2 final for release.
406 * IPython/Release.py (version): Made 0.7.2 final for release.
403 Repo tagged and release cut.
407 Repo tagged and release cut.
404
408
405 2006-06-05 Ville Vainio <vivainio@gmail.com>
409 2006-06-05 Ville Vainio <vivainio@gmail.com>
406
410
407 * Magic.py (magic_rehashx): Honor no_alias list earlier in
411 * Magic.py (magic_rehashx): Honor no_alias list earlier in
408 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
412 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
409
413
410 * upgrade_dir.py: try import 'path' module a bit harder
414 * upgrade_dir.py: try import 'path' module a bit harder
411 (for %upgrade)
415 (for %upgrade)
412
416
413 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
417 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
414
418
415 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
419 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
416 instead of looping 20 times.
420 instead of looping 20 times.
417
421
418 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
422 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
419 correctly at initialization time. Bug reported by Krishna Mohan
423 correctly at initialization time. Bug reported by Krishna Mohan
420 Gundu <gkmohan-AT-gmail.com> on the user list.
424 Gundu <gkmohan-AT-gmail.com> on the user list.
421
425
422 * IPython/Release.py (version): Mark 0.7.2 version to start
426 * IPython/Release.py (version): Mark 0.7.2 version to start
423 testing for release on 06/06.
427 testing for release on 06/06.
424
428
425 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
429 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
426
430
427 * scripts/irunner: thin script interface so users don't have to
431 * scripts/irunner: thin script interface so users don't have to
428 find the module and call it as an executable, since modules rarely
432 find the module and call it as an executable, since modules rarely
429 live in people's PATH.
433 live in people's PATH.
430
434
431 * IPython/irunner.py (InteractiveRunner.__init__): added
435 * IPython/irunner.py (InteractiveRunner.__init__): added
432 delaybeforesend attribute to control delays with newer versions of
436 delaybeforesend attribute to control delays with newer versions of
433 pexpect. Thanks to detailed help from pexpect's author, Noah
437 pexpect. Thanks to detailed help from pexpect's author, Noah
434 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
438 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
435 correctly (it works in NoColor mode).
439 correctly (it works in NoColor mode).
436
440
437 * IPython/iplib.py (handle_normal): fix nasty crash reported on
441 * IPython/iplib.py (handle_normal): fix nasty crash reported on
438 SAGE list, from improper log() calls.
442 SAGE list, from improper log() calls.
439
443
440 2006-05-31 Ville Vainio <vivainio@gmail.com>
444 2006-05-31 Ville Vainio <vivainio@gmail.com>
441
445
442 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
446 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
443 with args in parens to work correctly with dirs that have spaces.
447 with args in parens to work correctly with dirs that have spaces.
444
448
445 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
449 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
446
450
447 * IPython/Logger.py (Logger.logstart): add option to log raw input
451 * IPython/Logger.py (Logger.logstart): add option to log raw input
448 instead of the processed one. A -r flag was added to the
452 instead of the processed one. A -r flag was added to the
449 %logstart magic used for controlling logging.
453 %logstart magic used for controlling logging.
450
454
451 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
455 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
452
456
453 * IPython/iplib.py (InteractiveShell.__init__): add check for the
457 * IPython/iplib.py (InteractiveShell.__init__): add check for the
454 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
458 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
455 recognize the option. After a bug report by Will Maier. This
459 recognize the option. After a bug report by Will Maier. This
456 closes #64 (will do it after confirmation from W. Maier).
460 closes #64 (will do it after confirmation from W. Maier).
457
461
458 * IPython/irunner.py: New module to run scripts as if manually
462 * IPython/irunner.py: New module to run scripts as if manually
459 typed into an interactive environment, based on pexpect. After a
463 typed into an interactive environment, based on pexpect. After a
460 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
464 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
461 ipython-user list. Simple unittests in the tests/ directory.
465 ipython-user list. Simple unittests in the tests/ directory.
462
466
463 * tools/release: add Will Maier, OpenBSD port maintainer, to
467 * tools/release: add Will Maier, OpenBSD port maintainer, to
464 recepients list. We are now officially part of the OpenBSD ports:
468 recepients list. We are now officially part of the OpenBSD ports:
465 http://www.openbsd.org/ports.html ! Many thanks to Will for the
469 http://www.openbsd.org/ports.html ! Many thanks to Will for the
466 work.
470 work.
467
471
468 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
472 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
469
473
470 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
474 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
471 so that it doesn't break tkinter apps.
475 so that it doesn't break tkinter apps.
472
476
473 * IPython/iplib.py (_prefilter): fix bug where aliases would
477 * IPython/iplib.py (_prefilter): fix bug where aliases would
474 shadow variables when autocall was fully off. Reported by SAGE
478 shadow variables when autocall was fully off. Reported by SAGE
475 author William Stein.
479 author William Stein.
476
480
477 * IPython/OInspect.py (Inspector.__init__): add a flag to control
481 * IPython/OInspect.py (Inspector.__init__): add a flag to control
478 at what detail level strings are computed when foo? is requested.
482 at what detail level strings are computed when foo? is requested.
479 This allows users to ask for example that the string form of an
483 This allows users to ask for example that the string form of an
480 object is only computed when foo?? is called, or even never, by
484 object is only computed when foo?? is called, or even never, by
481 setting the object_info_string_level >= 2 in the configuration
485 setting the object_info_string_level >= 2 in the configuration
482 file. This new option has been added and documented. After a
486 file. This new option has been added and documented. After a
483 request by SAGE to be able to control the printing of very large
487 request by SAGE to be able to control the printing of very large
484 objects more easily.
488 objects more easily.
485
489
486 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
490 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
487
491
488 * IPython/ipmaker.py (make_IPython): remove the ipython call path
492 * IPython/ipmaker.py (make_IPython): remove the ipython call path
489 from sys.argv, to be 100% consistent with how Python itself works
493 from sys.argv, to be 100% consistent with how Python itself works
490 (as seen for example with python -i file.py). After a bug report
494 (as seen for example with python -i file.py). After a bug report
491 by Jeffrey Collins.
495 by Jeffrey Collins.
492
496
493 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
497 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
494 nasty bug which was preventing custom namespaces with -pylab,
498 nasty bug which was preventing custom namespaces with -pylab,
495 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
499 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
496 compatibility (long gone from mpl).
500 compatibility (long gone from mpl).
497
501
498 * IPython/ipapi.py (make_session): name change: create->make. We
502 * IPython/ipapi.py (make_session): name change: create->make. We
499 use make in other places (ipmaker,...), it's shorter and easier to
503 use make in other places (ipmaker,...), it's shorter and easier to
500 type and say, etc. I'm trying to clean things before 0.7.2 so
504 type and say, etc. I'm trying to clean things before 0.7.2 so
501 that I can keep things stable wrt to ipapi in the chainsaw branch.
505 that I can keep things stable wrt to ipapi in the chainsaw branch.
502
506
503 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
507 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
504 python-mode recognizes our debugger mode. Add support for
508 python-mode recognizes our debugger mode. Add support for
505 autoindent inside (X)emacs. After a patch sent in by Jin Liu
509 autoindent inside (X)emacs. After a patch sent in by Jin Liu
506 <m.liu.jin-AT-gmail.com> originally written by
510 <m.liu.jin-AT-gmail.com> originally written by
507 doxgen-AT-newsmth.net (with minor modifications for xemacs
511 doxgen-AT-newsmth.net (with minor modifications for xemacs
508 compatibility)
512 compatibility)
509
513
510 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
514 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
511 tracebacks when walking the stack so that the stack tracking system
515 tracebacks when walking the stack so that the stack tracking system
512 in emacs' python-mode can identify the frames correctly.
516 in emacs' python-mode can identify the frames correctly.
513
517
514 * IPython/ipmaker.py (make_IPython): make the internal (and
518 * IPython/ipmaker.py (make_IPython): make the internal (and
515 default config) autoedit_syntax value false by default. Too many
519 default config) autoedit_syntax value false by default. Too many
516 users have complained to me (both on and off-list) about problems
520 users have complained to me (both on and off-list) about problems
517 with this option being on by default, so I'm making it default to
521 with this option being on by default, so I'm making it default to
518 off. It can still be enabled by anyone via the usual mechanisms.
522 off. It can still be enabled by anyone via the usual mechanisms.
519
523
520 * IPython/completer.py (Completer.attr_matches): add support for
524 * IPython/completer.py (Completer.attr_matches): add support for
521 PyCrust-style _getAttributeNames magic method. Patch contributed
525 PyCrust-style _getAttributeNames magic method. Patch contributed
522 by <mscott-AT-goldenspud.com>. Closes #50.
526 by <mscott-AT-goldenspud.com>. Closes #50.
523
527
524 * IPython/iplib.py (InteractiveShell.__init__): remove the
528 * IPython/iplib.py (InteractiveShell.__init__): remove the
525 deletion of exit/quit from __builtin__, which can break
529 deletion of exit/quit from __builtin__, which can break
526 third-party tools like the Zope debugging console. The
530 third-party tools like the Zope debugging console. The
527 %exit/%quit magics remain. In general, it's probably a good idea
531 %exit/%quit magics remain. In general, it's probably a good idea
528 not to delete anything from __builtin__, since we never know what
532 not to delete anything from __builtin__, since we never know what
529 that will break. In any case, python now (for 2.5) will support
533 that will break. In any case, python now (for 2.5) will support
530 'real' exit/quit, so this issue is moot. Closes #55.
534 'real' exit/quit, so this issue is moot. Closes #55.
531
535
532 * IPython/genutils.py (with_obj): rename the 'with' function to
536 * IPython/genutils.py (with_obj): rename the 'with' function to
533 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
537 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
534 becomes a language keyword. Closes #53.
538 becomes a language keyword. Closes #53.
535
539
536 * IPython/FakeModule.py (FakeModule.__init__): add a proper
540 * IPython/FakeModule.py (FakeModule.__init__): add a proper
537 __file__ attribute to this so it fools more things into thinking
541 __file__ attribute to this so it fools more things into thinking
538 it is a real module. Closes #59.
542 it is a real module. Closes #59.
539
543
540 * IPython/Magic.py (magic_edit): add -n option to open the editor
544 * IPython/Magic.py (magic_edit): add -n option to open the editor
541 at a specific line number. After a patch by Stefan van der Walt.
545 at a specific line number. After a patch by Stefan van der Walt.
542
546
543 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
547 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
544
548
545 * IPython/iplib.py (edit_syntax_error): fix crash when for some
549 * IPython/iplib.py (edit_syntax_error): fix crash when for some
546 reason the file could not be opened. After automatic crash
550 reason the file could not be opened. After automatic crash
547 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
551 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
548 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
552 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
549 (_should_recompile): Don't fire editor if using %bg, since there
553 (_should_recompile): Don't fire editor if using %bg, since there
550 is no file in the first place. From the same report as above.
554 is no file in the first place. From the same report as above.
551 (raw_input): protect against faulty third-party prefilters. After
555 (raw_input): protect against faulty third-party prefilters. After
552 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
556 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
553 while running under SAGE.
557 while running under SAGE.
554
558
555 2006-05-23 Ville Vainio <vivainio@gmail.com>
559 2006-05-23 Ville Vainio <vivainio@gmail.com>
556
560
557 * ipapi.py: Stripped down ip.to_user_ns() to work only as
561 * ipapi.py: Stripped down ip.to_user_ns() to work only as
558 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
562 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
559 now returns None (again), unless dummy is specifically allowed by
563 now returns None (again), unless dummy is specifically allowed by
560 ipapi.get(allow_dummy=True).
564 ipapi.get(allow_dummy=True).
561
565
562 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
566 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
563
567
564 * IPython: remove all 2.2-compatibility objects and hacks from
568 * IPython: remove all 2.2-compatibility objects and hacks from
565 everywhere, since we only support 2.3 at this point. Docs
569 everywhere, since we only support 2.3 at this point. Docs
566 updated.
570 updated.
567
571
568 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
572 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
569 Anything requiring extra validation can be turned into a Python
573 Anything requiring extra validation can be turned into a Python
570 property in the future. I used a property for the db one b/c
574 property in the future. I used a property for the db one b/c
571 there was a nasty circularity problem with the initialization
575 there was a nasty circularity problem with the initialization
572 order, which right now I don't have time to clean up.
576 order, which right now I don't have time to clean up.
573
577
574 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
578 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
575 another locking bug reported by Jorgen. I'm not 100% sure though,
579 another locking bug reported by Jorgen. I'm not 100% sure though,
576 so more testing is needed...
580 so more testing is needed...
577
581
578 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
582 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
579
583
580 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
584 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
581 local variables from any routine in user code (typically executed
585 local variables from any routine in user code (typically executed
582 with %run) directly into the interactive namespace. Very useful
586 with %run) directly into the interactive namespace. Very useful
583 when doing complex debugging.
587 when doing complex debugging.
584 (IPythonNotRunning): Changed the default None object to a dummy
588 (IPythonNotRunning): Changed the default None object to a dummy
585 whose attributes can be queried as well as called without
589 whose attributes can be queried as well as called without
586 exploding, to ease writing code which works transparently both in
590 exploding, to ease writing code which works transparently both in
587 and out of ipython and uses some of this API.
591 and out of ipython and uses some of this API.
588
592
589 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
593 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
590
594
591 * IPython/hooks.py (result_display): Fix the fact that our display
595 * IPython/hooks.py (result_display): Fix the fact that our display
592 hook was using str() instead of repr(), as the default python
596 hook was using str() instead of repr(), as the default python
593 console does. This had gone unnoticed b/c it only happened if
597 console does. This had gone unnoticed b/c it only happened if
594 %Pprint was off, but the inconsistency was there.
598 %Pprint was off, but the inconsistency was there.
595
599
596 2006-05-15 Ville Vainio <vivainio@gmail.com>
600 2006-05-15 Ville Vainio <vivainio@gmail.com>
597
601
598 * Oinspect.py: Only show docstring for nonexisting/binary files
602 * Oinspect.py: Only show docstring for nonexisting/binary files
599 when doing object??, closing ticket #62
603 when doing object??, closing ticket #62
600
604
601 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
605 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
602
606
603 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
607 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
604 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
608 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
605 was being released in a routine which hadn't checked if it had
609 was being released in a routine which hadn't checked if it had
606 been the one to acquire it.
610 been the one to acquire it.
607
611
608 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
612 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
609
613
610 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
614 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
611
615
612 2006-04-11 Ville Vainio <vivainio@gmail.com>
616 2006-04-11 Ville Vainio <vivainio@gmail.com>
613
617
614 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
618 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
615 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
619 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
616 prefilters, allowing stuff like magics and aliases in the file.
620 prefilters, allowing stuff like magics and aliases in the file.
617
621
618 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
622 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
619 added. Supported now are "%clear in" and "%clear out" (clear input and
623 added. Supported now are "%clear in" and "%clear out" (clear input and
620 output history, respectively). Also fixed CachedOutput.flush to
624 output history, respectively). Also fixed CachedOutput.flush to
621 properly flush the output cache.
625 properly flush the output cache.
622
626
623 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
627 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
624 half-success (and fail explicitly).
628 half-success (and fail explicitly).
625
629
626 2006-03-28 Ville Vainio <vivainio@gmail.com>
630 2006-03-28 Ville Vainio <vivainio@gmail.com>
627
631
628 * iplib.py: Fix quoting of aliases so that only argless ones
632 * iplib.py: Fix quoting of aliases so that only argless ones
629 are quoted
633 are quoted
630
634
631 2006-03-28 Ville Vainio <vivainio@gmail.com>
635 2006-03-28 Ville Vainio <vivainio@gmail.com>
632
636
633 * iplib.py: Quote aliases with spaces in the name.
637 * iplib.py: Quote aliases with spaces in the name.
634 "c:\program files\blah\bin" is now legal alias target.
638 "c:\program files\blah\bin" is now legal alias target.
635
639
636 * ext_rehashdir.py: Space no longer allowed as arg
640 * ext_rehashdir.py: Space no longer allowed as arg
637 separator, since space is legal in path names.
641 separator, since space is legal in path names.
638
642
639 2006-03-16 Ville Vainio <vivainio@gmail.com>
643 2006-03-16 Ville Vainio <vivainio@gmail.com>
640
644
641 * upgrade_dir.py: Take path.py from Extensions, correcting
645 * upgrade_dir.py: Take path.py from Extensions, correcting
642 %upgrade magic
646 %upgrade magic
643
647
644 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
648 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
645
649
646 * hooks.py: Only enclose editor binary in quotes if legal and
650 * hooks.py: Only enclose editor binary in quotes if legal and
647 necessary (space in the name, and is an existing file). Fixes a bug
651 necessary (space in the name, and is an existing file). Fixes a bug
648 reported by Zachary Pincus.
652 reported by Zachary Pincus.
649
653
650 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
654 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
651
655
652 * Manual: thanks to a tip on proper color handling for Emacs, by
656 * Manual: thanks to a tip on proper color handling for Emacs, by
653 Eric J Haywiser <ejh1-AT-MIT.EDU>.
657 Eric J Haywiser <ejh1-AT-MIT.EDU>.
654
658
655 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
659 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
656 by applying the provided patch. Thanks to Liu Jin
660 by applying the provided patch. Thanks to Liu Jin
657 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
661 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
658 XEmacs/Linux, I'm trusting the submitter that it actually helps
662 XEmacs/Linux, I'm trusting the submitter that it actually helps
659 under win32/GNU Emacs. Will revisit if any problems are reported.
663 under win32/GNU Emacs. Will revisit if any problems are reported.
660
664
661 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
665 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
662
666
663 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
667 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
664 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
668 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
665
669
666 2006-03-12 Ville Vainio <vivainio@gmail.com>
670 2006-03-12 Ville Vainio <vivainio@gmail.com>
667
671
668 * Magic.py (magic_timeit): Added %timeit magic, contributed by
672 * Magic.py (magic_timeit): Added %timeit magic, contributed by
669 Torsten Marek.
673 Torsten Marek.
670
674
671 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
675 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
672
676
673 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
677 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
674 line ranges works again.
678 line ranges works again.
675
679
676 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
680 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
677
681
678 * IPython/iplib.py (showtraceback): add back sys.last_traceback
682 * IPython/iplib.py (showtraceback): add back sys.last_traceback
679 and friends, after a discussion with Zach Pincus on ipython-user.
683 and friends, after a discussion with Zach Pincus on ipython-user.
680 I'm not 100% sure, but after thinking about it quite a bit, it may
684 I'm not 100% sure, but after thinking about it quite a bit, it may
681 be OK. Testing with the multithreaded shells didn't reveal any
685 be OK. Testing with the multithreaded shells didn't reveal any
682 problems, but let's keep an eye out.
686 problems, but let's keep an eye out.
683
687
684 In the process, I fixed a few things which were calling
688 In the process, I fixed a few things which were calling
685 self.InteractiveTB() directly (like safe_execfile), which is a
689 self.InteractiveTB() directly (like safe_execfile), which is a
686 mistake: ALL exception reporting should be done by calling
690 mistake: ALL exception reporting should be done by calling
687 self.showtraceback(), which handles state and tab-completion and
691 self.showtraceback(), which handles state and tab-completion and
688 more.
692 more.
689
693
690 2006-03-01 Ville Vainio <vivainio@gmail.com>
694 2006-03-01 Ville Vainio <vivainio@gmail.com>
691
695
692 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
696 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
693 To use, do "from ipipe import *".
697 To use, do "from ipipe import *".
694
698
695 2006-02-24 Ville Vainio <vivainio@gmail.com>
699 2006-02-24 Ville Vainio <vivainio@gmail.com>
696
700
697 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
701 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
698 "cleanly" and safely than the older upgrade mechanism.
702 "cleanly" and safely than the older upgrade mechanism.
699
703
700 2006-02-21 Ville Vainio <vivainio@gmail.com>
704 2006-02-21 Ville Vainio <vivainio@gmail.com>
701
705
702 * Magic.py: %save works again.
706 * Magic.py: %save works again.
703
707
704 2006-02-15 Ville Vainio <vivainio@gmail.com>
708 2006-02-15 Ville Vainio <vivainio@gmail.com>
705
709
706 * Magic.py: %Pprint works again
710 * Magic.py: %Pprint works again
707
711
708 * Extensions/ipy_sane_defaults.py: Provide everything provided
712 * Extensions/ipy_sane_defaults.py: Provide everything provided
709 in default ipythonrc, to make it possible to have a completely empty
713 in default ipythonrc, to make it possible to have a completely empty
710 ipythonrc (and thus completely rc-file free configuration)
714 ipythonrc (and thus completely rc-file free configuration)
711
715
712 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
716 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
713
717
714 * IPython/hooks.py (editor): quote the call to the editor command,
718 * IPython/hooks.py (editor): quote the call to the editor command,
715 to allow commands with spaces in them. Problem noted by watching
719 to allow commands with spaces in them. Problem noted by watching
716 Ian Oswald's video about textpad under win32 at
720 Ian Oswald's video about textpad under win32 at
717 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
721 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
718
722
719 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
723 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
720 describing magics (we haven't used @ for a loong time).
724 describing magics (we haven't used @ for a loong time).
721
725
722 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
726 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
723 contributed by marienz to close
727 contributed by marienz to close
724 http://www.scipy.net/roundup/ipython/issue53.
728 http://www.scipy.net/roundup/ipython/issue53.
725
729
726 2006-02-10 Ville Vainio <vivainio@gmail.com>
730 2006-02-10 Ville Vainio <vivainio@gmail.com>
727
731
728 * genutils.py: getoutput now works in win32 too
732 * genutils.py: getoutput now works in win32 too
729
733
730 * completer.py: alias and magic completion only invoked
734 * completer.py: alias and magic completion only invoked
731 at the first "item" in the line, to avoid "cd %store"
735 at the first "item" in the line, to avoid "cd %store"
732 nonsense.
736 nonsense.
733
737
734 2006-02-09 Ville Vainio <vivainio@gmail.com>
738 2006-02-09 Ville Vainio <vivainio@gmail.com>
735
739
736 * test/*: Added a unit testing framework (finally).
740 * test/*: Added a unit testing framework (finally).
737 '%run runtests.py' to run test_*.
741 '%run runtests.py' to run test_*.
738
742
739 * ipapi.py: Exposed runlines and set_custom_exc
743 * ipapi.py: Exposed runlines and set_custom_exc
740
744
741 2006-02-07 Ville Vainio <vivainio@gmail.com>
745 2006-02-07 Ville Vainio <vivainio@gmail.com>
742
746
743 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
747 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
744 instead use "f(1 2)" as before.
748 instead use "f(1 2)" as before.
745
749
746 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
750 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
747
751
748 * IPython/demo.py (IPythonDemo): Add new classes to the demo
752 * IPython/demo.py (IPythonDemo): Add new classes to the demo
749 facilities, for demos processed by the IPython input filter
753 facilities, for demos processed by the IPython input filter
750 (IPythonDemo), and for running a script one-line-at-a-time as a
754 (IPythonDemo), and for running a script one-line-at-a-time as a
751 demo, both for pure Python (LineDemo) and for IPython-processed
755 demo, both for pure Python (LineDemo) and for IPython-processed
752 input (IPythonLineDemo). After a request by Dave Kohel, from the
756 input (IPythonLineDemo). After a request by Dave Kohel, from the
753 SAGE team.
757 SAGE team.
754 (Demo.edit): added an edit() method to the demo objects, to edit
758 (Demo.edit): added an edit() method to the demo objects, to edit
755 the in-memory copy of the last executed block.
759 the in-memory copy of the last executed block.
756
760
757 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
761 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
758 processing to %edit, %macro and %save. These commands can now be
762 processing to %edit, %macro and %save. These commands can now be
759 invoked on the unprocessed input as it was typed by the user
763 invoked on the unprocessed input as it was typed by the user
760 (without any prefilters applied). After requests by the SAGE team
764 (without any prefilters applied). After requests by the SAGE team
761 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
765 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
762
766
763 2006-02-01 Ville Vainio <vivainio@gmail.com>
767 2006-02-01 Ville Vainio <vivainio@gmail.com>
764
768
765 * setup.py, eggsetup.py: easy_install ipython==dev works
769 * setup.py, eggsetup.py: easy_install ipython==dev works
766 correctly now (on Linux)
770 correctly now (on Linux)
767
771
768 * ipy_user_conf,ipmaker: user config changes, removed spurious
772 * ipy_user_conf,ipmaker: user config changes, removed spurious
769 warnings
773 warnings
770
774
771 * iplib: if rc.banner is string, use it as is.
775 * iplib: if rc.banner is string, use it as is.
772
776
773 * Magic: %pycat accepts a string argument and pages it's contents.
777 * Magic: %pycat accepts a string argument and pages it's contents.
774
778
775
779
776 2006-01-30 Ville Vainio <vivainio@gmail.com>
780 2006-01-30 Ville Vainio <vivainio@gmail.com>
777
781
778 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
782 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
779 Now %store and bookmarks work through PickleShare, meaning that
783 Now %store and bookmarks work through PickleShare, meaning that
780 concurrent access is possible and all ipython sessions see the
784 concurrent access is possible and all ipython sessions see the
781 same database situation all the time, instead of snapshot of
785 same database situation all the time, instead of snapshot of
782 the situation when the session was started. Hence, %bookmark
786 the situation when the session was started. Hence, %bookmark
783 results are immediately accessible from othes sessions. The database
787 results are immediately accessible from othes sessions. The database
784 is also available for use by user extensions. See:
788 is also available for use by user extensions. See:
785 http://www.python.org/pypi/pickleshare
789 http://www.python.org/pypi/pickleshare
786
790
787 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
791 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
788
792
789 * aliases can now be %store'd
793 * aliases can now be %store'd
790
794
791 * path.py moved to Extensions so that pickleshare does not need
795 * path.py moved to Extensions so that pickleshare does not need
792 IPython-specific import. Extensions added to pythonpath right
796 IPython-specific import. Extensions added to pythonpath right
793 at __init__.
797 at __init__.
794
798
795 * iplib.py: ipalias deprecated/redundant; aliases are converted and
799 * iplib.py: ipalias deprecated/redundant; aliases are converted and
796 called with _ip.system and the pre-transformed command string.
800 called with _ip.system and the pre-transformed command string.
797
801
798 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
802 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
799
803
800 * IPython/iplib.py (interact): Fix that we were not catching
804 * IPython/iplib.py (interact): Fix that we were not catching
801 KeyboardInterrupt exceptions properly. I'm not quite sure why the
805 KeyboardInterrupt exceptions properly. I'm not quite sure why the
802 logic here had to change, but it's fixed now.
806 logic here had to change, but it's fixed now.
803
807
804 2006-01-29 Ville Vainio <vivainio@gmail.com>
808 2006-01-29 Ville Vainio <vivainio@gmail.com>
805
809
806 * iplib.py: Try to import pyreadline on Windows.
810 * iplib.py: Try to import pyreadline on Windows.
807
811
808 2006-01-27 Ville Vainio <vivainio@gmail.com>
812 2006-01-27 Ville Vainio <vivainio@gmail.com>
809
813
810 * iplib.py: Expose ipapi as _ip in builtin namespace.
814 * iplib.py: Expose ipapi as _ip in builtin namespace.
811 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
815 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
812 and ip_set_hook (-> _ip.set_hook) redundant. % and !
816 and ip_set_hook (-> _ip.set_hook) redundant. % and !
813 syntax now produce _ip.* variant of the commands.
817 syntax now produce _ip.* variant of the commands.
814
818
815 * "_ip.options().autoedit_syntax = 2" automatically throws
819 * "_ip.options().autoedit_syntax = 2" automatically throws
816 user to editor for syntax error correction without prompting.
820 user to editor for syntax error correction without prompting.
817
821
818 2006-01-27 Ville Vainio <vivainio@gmail.com>
822 2006-01-27 Ville Vainio <vivainio@gmail.com>
819
823
820 * ipmaker.py: Give "realistic" sys.argv for scripts (without
824 * ipmaker.py: Give "realistic" sys.argv for scripts (without
821 'ipython' at argv[0]) executed through command line.
825 'ipython' at argv[0]) executed through command line.
822 NOTE: this DEPRECATES calling ipython with multiple scripts
826 NOTE: this DEPRECATES calling ipython with multiple scripts
823 ("ipython a.py b.py c.py")
827 ("ipython a.py b.py c.py")
824
828
825 * iplib.py, hooks.py: Added configurable input prefilter,
829 * iplib.py, hooks.py: Added configurable input prefilter,
826 named 'input_prefilter'. See ext_rescapture.py for example
830 named 'input_prefilter'. See ext_rescapture.py for example
827 usage.
831 usage.
828
832
829 * ext_rescapture.py, Magic.py: Better system command output capture
833 * ext_rescapture.py, Magic.py: Better system command output capture
830 through 'var = !ls' (deprecates user-visible %sc). Same notation
834 through 'var = !ls' (deprecates user-visible %sc). Same notation
831 applies for magics, 'var = %alias' assigns alias list to var.
835 applies for magics, 'var = %alias' assigns alias list to var.
832
836
833 * ipapi.py: added meta() for accessing extension-usable data store.
837 * ipapi.py: added meta() for accessing extension-usable data store.
834
838
835 * iplib.py: added InteractiveShell.getapi(). New magics should be
839 * iplib.py: added InteractiveShell.getapi(). New magics should be
836 written doing self.getapi() instead of using the shell directly.
840 written doing self.getapi() instead of using the shell directly.
837
841
838 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
842 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
839 %store foo >> ~/myfoo.txt to store variables to files (in clean
843 %store foo >> ~/myfoo.txt to store variables to files (in clean
840 textual form, not a restorable pickle).
844 textual form, not a restorable pickle).
841
845
842 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
846 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
843
847
844 * usage.py, Magic.py: added %quickref
848 * usage.py, Magic.py: added %quickref
845
849
846 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
850 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
847
851
848 * GetoptErrors when invoking magics etc. with wrong args
852 * GetoptErrors when invoking magics etc. with wrong args
849 are now more helpful:
853 are now more helpful:
850 GetoptError: option -l not recognized (allowed: "qb" )
854 GetoptError: option -l not recognized (allowed: "qb" )
851
855
852 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
856 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
853
857
854 * IPython/demo.py (Demo.show): Flush stdout after each block, so
858 * IPython/demo.py (Demo.show): Flush stdout after each block, so
855 computationally intensive blocks don't appear to stall the demo.
859 computationally intensive blocks don't appear to stall the demo.
856
860
857 2006-01-24 Ville Vainio <vivainio@gmail.com>
861 2006-01-24 Ville Vainio <vivainio@gmail.com>
858
862
859 * iplib.py, hooks.py: 'result_display' hook can return a non-None
863 * iplib.py, hooks.py: 'result_display' hook can return a non-None
860 value to manipulate resulting history entry.
864 value to manipulate resulting history entry.
861
865
862 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
866 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
863 to instance methods of IPApi class, to make extending an embedded
867 to instance methods of IPApi class, to make extending an embedded
864 IPython feasible. See ext_rehashdir.py for example usage.
868 IPython feasible. See ext_rehashdir.py for example usage.
865
869
866 * Merged 1071-1076 from branches/0.7.1
870 * Merged 1071-1076 from branches/0.7.1
867
871
868
872
869 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
873 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
870
874
871 * tools/release (daystamp): Fix build tools to use the new
875 * tools/release (daystamp): Fix build tools to use the new
872 eggsetup.py script to build lightweight eggs.
876 eggsetup.py script to build lightweight eggs.
873
877
874 * Applied changesets 1062 and 1064 before 0.7.1 release.
878 * Applied changesets 1062 and 1064 before 0.7.1 release.
875
879
876 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
880 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
877 see the raw input history (without conversions like %ls ->
881 see the raw input history (without conversions like %ls ->
878 ipmagic("ls")). After a request from W. Stein, SAGE
882 ipmagic("ls")). After a request from W. Stein, SAGE
879 (http://modular.ucsd.edu/sage) developer. This information is
883 (http://modular.ucsd.edu/sage) developer. This information is
880 stored in the input_hist_raw attribute of the IPython instance, so
884 stored in the input_hist_raw attribute of the IPython instance, so
881 developers can access it if needed (it's an InputList instance).
885 developers can access it if needed (it's an InputList instance).
882
886
883 * Versionstring = 0.7.2.svn
887 * Versionstring = 0.7.2.svn
884
888
885 * eggsetup.py: A separate script for constructing eggs, creates
889 * eggsetup.py: A separate script for constructing eggs, creates
886 proper launch scripts even on Windows (an .exe file in
890 proper launch scripts even on Windows (an .exe file in
887 \python24\scripts).
891 \python24\scripts).
888
892
889 * ipapi.py: launch_new_instance, launch entry point needed for the
893 * ipapi.py: launch_new_instance, launch entry point needed for the
890 egg.
894 egg.
891
895
892 2006-01-23 Ville Vainio <vivainio@gmail.com>
896 2006-01-23 Ville Vainio <vivainio@gmail.com>
893
897
894 * Added %cpaste magic for pasting python code
898 * Added %cpaste magic for pasting python code
895
899
896 2006-01-22 Ville Vainio <vivainio@gmail.com>
900 2006-01-22 Ville Vainio <vivainio@gmail.com>
897
901
898 * Merge from branches/0.7.1 into trunk, revs 1052-1057
902 * Merge from branches/0.7.1 into trunk, revs 1052-1057
899
903
900 * Versionstring = 0.7.2.svn
904 * Versionstring = 0.7.2.svn
901
905
902 * eggsetup.py: A separate script for constructing eggs, creates
906 * eggsetup.py: A separate script for constructing eggs, creates
903 proper launch scripts even on Windows (an .exe file in
907 proper launch scripts even on Windows (an .exe file in
904 \python24\scripts).
908 \python24\scripts).
905
909
906 * ipapi.py: launch_new_instance, launch entry point needed for the
910 * ipapi.py: launch_new_instance, launch entry point needed for the
907 egg.
911 egg.
908
912
909 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
913 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
910
914
911 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
915 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
912 %pfile foo would print the file for foo even if it was a binary.
916 %pfile foo would print the file for foo even if it was a binary.
913 Now, extensions '.so' and '.dll' are skipped.
917 Now, extensions '.so' and '.dll' are skipped.
914
918
915 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
919 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
916 bug, where macros would fail in all threaded modes. I'm not 100%
920 bug, where macros would fail in all threaded modes. I'm not 100%
917 sure, so I'm going to put out an rc instead of making a release
921 sure, so I'm going to put out an rc instead of making a release
918 today, and wait for feedback for at least a few days.
922 today, and wait for feedback for at least a few days.
919
923
920 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
924 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
921 it...) the handling of pasting external code with autoindent on.
925 it...) the handling of pasting external code with autoindent on.
922 To get out of a multiline input, the rule will appear for most
926 To get out of a multiline input, the rule will appear for most
923 users unchanged: two blank lines or change the indent level
927 users unchanged: two blank lines or change the indent level
924 proposed by IPython. But there is a twist now: you can
928 proposed by IPython. But there is a twist now: you can
925 add/subtract only *one or two spaces*. If you add/subtract three
929 add/subtract only *one or two spaces*. If you add/subtract three
926 or more (unless you completely delete the line), IPython will
930 or more (unless you completely delete the line), IPython will
927 accept that line, and you'll need to enter a second one of pure
931 accept that line, and you'll need to enter a second one of pure
928 whitespace. I know it sounds complicated, but I can't find a
932 whitespace. I know it sounds complicated, but I can't find a
929 different solution that covers all the cases, with the right
933 different solution that covers all the cases, with the right
930 heuristics. Hopefully in actual use, nobody will really notice
934 heuristics. Hopefully in actual use, nobody will really notice
931 all these strange rules and things will 'just work'.
935 all these strange rules and things will 'just work'.
932
936
933 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
937 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
934
938
935 * IPython/iplib.py (interact): catch exceptions which can be
939 * IPython/iplib.py (interact): catch exceptions which can be
936 triggered asynchronously by signal handlers. Thanks to an
940 triggered asynchronously by signal handlers. Thanks to an
937 automatic crash report, submitted by Colin Kingsley
941 automatic crash report, submitted by Colin Kingsley
938 <tercel-AT-gentoo.org>.
942 <tercel-AT-gentoo.org>.
939
943
940 2006-01-20 Ville Vainio <vivainio@gmail.com>
944 2006-01-20 Ville Vainio <vivainio@gmail.com>
941
945
942 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
946 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
943 (%rehashdir, very useful, try it out) of how to extend ipython
947 (%rehashdir, very useful, try it out) of how to extend ipython
944 with new magics. Also added Extensions dir to pythonpath to make
948 with new magics. Also added Extensions dir to pythonpath to make
945 importing extensions easy.
949 importing extensions easy.
946
950
947 * %store now complains when trying to store interactively declared
951 * %store now complains when trying to store interactively declared
948 classes / instances of those classes.
952 classes / instances of those classes.
949
953
950 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
954 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
951 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
955 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
952 if they exist, and ipy_user_conf.py with some defaults is created for
956 if they exist, and ipy_user_conf.py with some defaults is created for
953 the user.
957 the user.
954
958
955 * Startup rehashing done by the config file, not InterpreterExec.
959 * Startup rehashing done by the config file, not InterpreterExec.
956 This means system commands are available even without selecting the
960 This means system commands are available even without selecting the
957 pysh profile. It's the sensible default after all.
961 pysh profile. It's the sensible default after all.
958
962
959 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
963 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
960
964
961 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
965 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
962 multiline code with autoindent on working. But I am really not
966 multiline code with autoindent on working. But I am really not
963 sure, so this needs more testing. Will commit a debug-enabled
967 sure, so this needs more testing. Will commit a debug-enabled
964 version for now, while I test it some more, so that Ville and
968 version for now, while I test it some more, so that Ville and
965 others may also catch any problems. Also made
969 others may also catch any problems. Also made
966 self.indent_current_str() a method, to ensure that there's no
970 self.indent_current_str() a method, to ensure that there's no
967 chance of the indent space count and the corresponding string
971 chance of the indent space count and the corresponding string
968 falling out of sync. All code needing the string should just call
972 falling out of sync. All code needing the string should just call
969 the method.
973 the method.
970
974
971 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
975 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
972
976
973 * IPython/Magic.py (magic_edit): fix check for when users don't
977 * IPython/Magic.py (magic_edit): fix check for when users don't
974 save their output files, the try/except was in the wrong section.
978 save their output files, the try/except was in the wrong section.
975
979
976 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
980 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
977
981
978 * IPython/Magic.py (magic_run): fix __file__ global missing from
982 * IPython/Magic.py (magic_run): fix __file__ global missing from
979 script's namespace when executed via %run. After a report by
983 script's namespace when executed via %run. After a report by
980 Vivian.
984 Vivian.
981
985
982 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
986 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
983 when using python 2.4. The parent constructor changed in 2.4, and
987 when using python 2.4. The parent constructor changed in 2.4, and
984 we need to track it directly (we can't call it, as it messes up
988 we need to track it directly (we can't call it, as it messes up
985 readline and tab-completion inside our pdb would stop working).
989 readline and tab-completion inside our pdb would stop working).
986 After a bug report by R. Bernstein <rocky-AT-panix.com>.
990 After a bug report by R. Bernstein <rocky-AT-panix.com>.
987
991
988 2006-01-16 Ville Vainio <vivainio@gmail.com>
992 2006-01-16 Ville Vainio <vivainio@gmail.com>
989
993
990 * Ipython/magic.py: Reverted back to old %edit functionality
994 * Ipython/magic.py: Reverted back to old %edit functionality
991 that returns file contents on exit.
995 that returns file contents on exit.
992
996
993 * IPython/path.py: Added Jason Orendorff's "path" module to
997 * IPython/path.py: Added Jason Orendorff's "path" module to
994 IPython tree, http://www.jorendorff.com/articles/python/path/.
998 IPython tree, http://www.jorendorff.com/articles/python/path/.
995 You can get path objects conveniently through %sc, and !!, e.g.:
999 You can get path objects conveniently through %sc, and !!, e.g.:
996 sc files=ls
1000 sc files=ls
997 for p in files.paths: # or files.p
1001 for p in files.paths: # or files.p
998 print p,p.mtime
1002 print p,p.mtime
999
1003
1000 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1004 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1001 now work again without considering the exclusion regexp -
1005 now work again without considering the exclusion regexp -
1002 hence, things like ',foo my/path' turn to 'foo("my/path")'
1006 hence, things like ',foo my/path' turn to 'foo("my/path")'
1003 instead of syntax error.
1007 instead of syntax error.
1004
1008
1005
1009
1006 2006-01-14 Ville Vainio <vivainio@gmail.com>
1010 2006-01-14 Ville Vainio <vivainio@gmail.com>
1007
1011
1008 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1012 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1009 ipapi decorators for python 2.4 users, options() provides access to rc
1013 ipapi decorators for python 2.4 users, options() provides access to rc
1010 data.
1014 data.
1011
1015
1012 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1016 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1013 as path separators (even on Linux ;-). Space character after
1017 as path separators (even on Linux ;-). Space character after
1014 backslash (as yielded by tab completer) is still space;
1018 backslash (as yielded by tab completer) is still space;
1015 "%cd long\ name" works as expected.
1019 "%cd long\ name" works as expected.
1016
1020
1017 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1021 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1018 as "chain of command", with priority. API stays the same,
1022 as "chain of command", with priority. API stays the same,
1019 TryNext exception raised by a hook function signals that
1023 TryNext exception raised by a hook function signals that
1020 current hook failed and next hook should try handling it, as
1024 current hook failed and next hook should try handling it, as
1021 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1025 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1022 requested configurable display hook, which is now implemented.
1026 requested configurable display hook, which is now implemented.
1023
1027
1024 2006-01-13 Ville Vainio <vivainio@gmail.com>
1028 2006-01-13 Ville Vainio <vivainio@gmail.com>
1025
1029
1026 * IPython/platutils*.py: platform specific utility functions,
1030 * IPython/platutils*.py: platform specific utility functions,
1027 so far only set_term_title is implemented (change terminal
1031 so far only set_term_title is implemented (change terminal
1028 label in windowing systems). %cd now changes the title to
1032 label in windowing systems). %cd now changes the title to
1029 current dir.
1033 current dir.
1030
1034
1031 * IPython/Release.py: Added myself to "authors" list,
1035 * IPython/Release.py: Added myself to "authors" list,
1032 had to create new files.
1036 had to create new files.
1033
1037
1034 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1038 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1035 shell escape; not a known bug but had potential to be one in the
1039 shell escape; not a known bug but had potential to be one in the
1036 future.
1040 future.
1037
1041
1038 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1042 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1039 extension API for IPython! See the module for usage example. Fix
1043 extension API for IPython! See the module for usage example. Fix
1040 OInspect for docstring-less magic functions.
1044 OInspect for docstring-less magic functions.
1041
1045
1042
1046
1043 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1047 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1044
1048
1045 * IPython/iplib.py (raw_input): temporarily deactivate all
1049 * IPython/iplib.py (raw_input): temporarily deactivate all
1046 attempts at allowing pasting of code with autoindent on. It
1050 attempts at allowing pasting of code with autoindent on. It
1047 introduced bugs (reported by Prabhu) and I can't seem to find a
1051 introduced bugs (reported by Prabhu) and I can't seem to find a
1048 robust combination which works in all cases. Will have to revisit
1052 robust combination which works in all cases. Will have to revisit
1049 later.
1053 later.
1050
1054
1051 * IPython/genutils.py: remove isspace() function. We've dropped
1055 * IPython/genutils.py: remove isspace() function. We've dropped
1052 2.2 compatibility, so it's OK to use the string method.
1056 2.2 compatibility, so it's OK to use the string method.
1053
1057
1054 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1058 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1055
1059
1056 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1060 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1057 matching what NOT to autocall on, to include all python binary
1061 matching what NOT to autocall on, to include all python binary
1058 operators (including things like 'and', 'or', 'is' and 'in').
1062 operators (including things like 'and', 'or', 'is' and 'in').
1059 Prompted by a bug report on 'foo & bar', but I realized we had
1063 Prompted by a bug report on 'foo & bar', but I realized we had
1060 many more potential bug cases with other operators. The regexp is
1064 many more potential bug cases with other operators. The regexp is
1061 self.re_exclude_auto, it's fairly commented.
1065 self.re_exclude_auto, it's fairly commented.
1062
1066
1063 2006-01-12 Ville Vainio <vivainio@gmail.com>
1067 2006-01-12 Ville Vainio <vivainio@gmail.com>
1064
1068
1065 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1069 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1066 Prettified and hardened string/backslash quoting with ipsystem(),
1070 Prettified and hardened string/backslash quoting with ipsystem(),
1067 ipalias() and ipmagic(). Now even \ characters are passed to
1071 ipalias() and ipmagic(). Now even \ characters are passed to
1068 %magics, !shell escapes and aliases exactly as they are in the
1072 %magics, !shell escapes and aliases exactly as they are in the
1069 ipython command line. Should improve backslash experience,
1073 ipython command line. Should improve backslash experience,
1070 particularly in Windows (path delimiter for some commands that
1074 particularly in Windows (path delimiter for some commands that
1071 won't understand '/'), but Unix benefits as well (regexps). %cd
1075 won't understand '/'), but Unix benefits as well (regexps). %cd
1072 magic still doesn't support backslash path delimiters, though. Also
1076 magic still doesn't support backslash path delimiters, though. Also
1073 deleted all pretense of supporting multiline command strings in
1077 deleted all pretense of supporting multiline command strings in
1074 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1078 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1075
1079
1076 * doc/build_doc_instructions.txt added. Documentation on how to
1080 * doc/build_doc_instructions.txt added. Documentation on how to
1077 use doc/update_manual.py, added yesterday. Both files contributed
1081 use doc/update_manual.py, added yesterday. Both files contributed
1078 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1082 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1079 doc/*.sh for deprecation at a later date.
1083 doc/*.sh for deprecation at a later date.
1080
1084
1081 * /ipython.py Added ipython.py to root directory for
1085 * /ipython.py Added ipython.py to root directory for
1082 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1086 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1083 ipython.py) and development convenience (no need to keep doing
1087 ipython.py) and development convenience (no need to keep doing
1084 "setup.py install" between changes).
1088 "setup.py install" between changes).
1085
1089
1086 * Made ! and !! shell escapes work (again) in multiline expressions:
1090 * Made ! and !! shell escapes work (again) in multiline expressions:
1087 if 1:
1091 if 1:
1088 !ls
1092 !ls
1089 !!ls
1093 !!ls
1090
1094
1091 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1095 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1092
1096
1093 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1097 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1094 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1098 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1095 module in case-insensitive installation. Was causing crashes
1099 module in case-insensitive installation. Was causing crashes
1096 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1100 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1097
1101
1098 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1102 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1099 <marienz-AT-gentoo.org>, closes
1103 <marienz-AT-gentoo.org>, closes
1100 http://www.scipy.net/roundup/ipython/issue51.
1104 http://www.scipy.net/roundup/ipython/issue51.
1101
1105
1102 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1106 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1103
1107
1104 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1108 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1105 problem of excessive CPU usage under *nix and keyboard lag under
1109 problem of excessive CPU usage under *nix and keyboard lag under
1106 win32.
1110 win32.
1107
1111
1108 2006-01-10 *** Released version 0.7.0
1112 2006-01-10 *** Released version 0.7.0
1109
1113
1110 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1114 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1111
1115
1112 * IPython/Release.py (revision): tag version number to 0.7.0,
1116 * IPython/Release.py (revision): tag version number to 0.7.0,
1113 ready for release.
1117 ready for release.
1114
1118
1115 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1119 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1116 it informs the user of the name of the temp. file used. This can
1120 it informs the user of the name of the temp. file used. This can
1117 help if you decide later to reuse that same file, so you know
1121 help if you decide later to reuse that same file, so you know
1118 where to copy the info from.
1122 where to copy the info from.
1119
1123
1120 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1124 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1121
1125
1122 * setup_bdist_egg.py: little script to build an egg. Added
1126 * setup_bdist_egg.py: little script to build an egg. Added
1123 support in the release tools as well.
1127 support in the release tools as well.
1124
1128
1125 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1129 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1126
1130
1127 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1131 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1128 version selection (new -wxversion command line and ipythonrc
1132 version selection (new -wxversion command line and ipythonrc
1129 parameter). Patch contributed by Arnd Baecker
1133 parameter). Patch contributed by Arnd Baecker
1130 <arnd.baecker-AT-web.de>.
1134 <arnd.baecker-AT-web.de>.
1131
1135
1132 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1136 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1133 embedded instances, for variables defined at the interactive
1137 embedded instances, for variables defined at the interactive
1134 prompt of the embedded ipython. Reported by Arnd.
1138 prompt of the embedded ipython. Reported by Arnd.
1135
1139
1136 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1140 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1137 it can be used as a (stateful) toggle, or with a direct parameter.
1141 it can be used as a (stateful) toggle, or with a direct parameter.
1138
1142
1139 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1143 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1140 could be triggered in certain cases and cause the traceback
1144 could be triggered in certain cases and cause the traceback
1141 printer not to work.
1145 printer not to work.
1142
1146
1143 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1147 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1144
1148
1145 * IPython/iplib.py (_should_recompile): Small fix, closes
1149 * IPython/iplib.py (_should_recompile): Small fix, closes
1146 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1150 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1147
1151
1148 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1152 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1149
1153
1150 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1154 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1151 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1155 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1152 Moad for help with tracking it down.
1156 Moad for help with tracking it down.
1153
1157
1154 * IPython/iplib.py (handle_auto): fix autocall handling for
1158 * IPython/iplib.py (handle_auto): fix autocall handling for
1155 objects which support BOTH __getitem__ and __call__ (so that f [x]
1159 objects which support BOTH __getitem__ and __call__ (so that f [x]
1156 is left alone, instead of becoming f([x]) automatically).
1160 is left alone, instead of becoming f([x]) automatically).
1157
1161
1158 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1162 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1159 Ville's patch.
1163 Ville's patch.
1160
1164
1161 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1165 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1162
1166
1163 * IPython/iplib.py (handle_auto): changed autocall semantics to
1167 * IPython/iplib.py (handle_auto): changed autocall semantics to
1164 include 'smart' mode, where the autocall transformation is NOT
1168 include 'smart' mode, where the autocall transformation is NOT
1165 applied if there are no arguments on the line. This allows you to
1169 applied if there are no arguments on the line. This allows you to
1166 just type 'foo' if foo is a callable to see its internal form,
1170 just type 'foo' if foo is a callable to see its internal form,
1167 instead of having it called with no arguments (typically a
1171 instead of having it called with no arguments (typically a
1168 mistake). The old 'full' autocall still exists: for that, you
1172 mistake). The old 'full' autocall still exists: for that, you
1169 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1173 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1170
1174
1171 * IPython/completer.py (Completer.attr_matches): add
1175 * IPython/completer.py (Completer.attr_matches): add
1172 tab-completion support for Enthoughts' traits. After a report by
1176 tab-completion support for Enthoughts' traits. After a report by
1173 Arnd and a patch by Prabhu.
1177 Arnd and a patch by Prabhu.
1174
1178
1175 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1179 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1176
1180
1177 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1181 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1178 Schmolck's patch to fix inspect.getinnerframes().
1182 Schmolck's patch to fix inspect.getinnerframes().
1179
1183
1180 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1184 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1181 for embedded instances, regarding handling of namespaces and items
1185 for embedded instances, regarding handling of namespaces and items
1182 added to the __builtin__ one. Multiple embedded instances and
1186 added to the __builtin__ one. Multiple embedded instances and
1183 recursive embeddings should work better now (though I'm not sure
1187 recursive embeddings should work better now (though I'm not sure
1184 I've got all the corner cases fixed, that code is a bit of a brain
1188 I've got all the corner cases fixed, that code is a bit of a brain
1185 twister).
1189 twister).
1186
1190
1187 * IPython/Magic.py (magic_edit): added support to edit in-memory
1191 * IPython/Magic.py (magic_edit): added support to edit in-memory
1188 macros (automatically creates the necessary temp files). %edit
1192 macros (automatically creates the necessary temp files). %edit
1189 also doesn't return the file contents anymore, it's just noise.
1193 also doesn't return the file contents anymore, it's just noise.
1190
1194
1191 * IPython/completer.py (Completer.attr_matches): revert change to
1195 * IPython/completer.py (Completer.attr_matches): revert change to
1192 complete only on attributes listed in __all__. I realized it
1196 complete only on attributes listed in __all__. I realized it
1193 cripples the tab-completion system as a tool for exploring the
1197 cripples the tab-completion system as a tool for exploring the
1194 internals of unknown libraries (it renders any non-__all__
1198 internals of unknown libraries (it renders any non-__all__
1195 attribute off-limits). I got bit by this when trying to see
1199 attribute off-limits). I got bit by this when trying to see
1196 something inside the dis module.
1200 something inside the dis module.
1197
1201
1198 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1202 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1199
1203
1200 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1204 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1201 namespace for users and extension writers to hold data in. This
1205 namespace for users and extension writers to hold data in. This
1202 follows the discussion in
1206 follows the discussion in
1203 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1207 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1204
1208
1205 * IPython/completer.py (IPCompleter.complete): small patch to help
1209 * IPython/completer.py (IPCompleter.complete): small patch to help
1206 tab-completion under Emacs, after a suggestion by John Barnard
1210 tab-completion under Emacs, after a suggestion by John Barnard
1207 <barnarj-AT-ccf.org>.
1211 <barnarj-AT-ccf.org>.
1208
1212
1209 * IPython/Magic.py (Magic.extract_input_slices): added support for
1213 * IPython/Magic.py (Magic.extract_input_slices): added support for
1210 the slice notation in magics to use N-M to represent numbers N...M
1214 the slice notation in magics to use N-M to represent numbers N...M
1211 (closed endpoints). This is used by %macro and %save.
1215 (closed endpoints). This is used by %macro and %save.
1212
1216
1213 * IPython/completer.py (Completer.attr_matches): for modules which
1217 * IPython/completer.py (Completer.attr_matches): for modules which
1214 define __all__, complete only on those. After a patch by Jeffrey
1218 define __all__, complete only on those. After a patch by Jeffrey
1215 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1219 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1216 speed up this routine.
1220 speed up this routine.
1217
1221
1218 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1222 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1219 don't know if this is the end of it, but the behavior now is
1223 don't know if this is the end of it, but the behavior now is
1220 certainly much more correct. Note that coupled with macros,
1224 certainly much more correct. Note that coupled with macros,
1221 slightly surprising (at first) behavior may occur: a macro will in
1225 slightly surprising (at first) behavior may occur: a macro will in
1222 general expand to multiple lines of input, so upon exiting, the
1226 general expand to multiple lines of input, so upon exiting, the
1223 in/out counters will both be bumped by the corresponding amount
1227 in/out counters will both be bumped by the corresponding amount
1224 (as if the macro's contents had been typed interactively). Typing
1228 (as if the macro's contents had been typed interactively). Typing
1225 %hist will reveal the intermediate (silently processed) lines.
1229 %hist will reveal the intermediate (silently processed) lines.
1226
1230
1227 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1231 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1228 pickle to fail (%run was overwriting __main__ and not restoring
1232 pickle to fail (%run was overwriting __main__ and not restoring
1229 it, but pickle relies on __main__ to operate).
1233 it, but pickle relies on __main__ to operate).
1230
1234
1231 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1235 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1232 using properties, but forgot to make the main InteractiveShell
1236 using properties, but forgot to make the main InteractiveShell
1233 class a new-style class. Properties fail silently, and
1237 class a new-style class. Properties fail silently, and
1234 mysteriously, with old-style class (getters work, but
1238 mysteriously, with old-style class (getters work, but
1235 setters don't do anything).
1239 setters don't do anything).
1236
1240
1237 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1241 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1238
1242
1239 * IPython/Magic.py (magic_history): fix history reporting bug (I
1243 * IPython/Magic.py (magic_history): fix history reporting bug (I
1240 know some nasties are still there, I just can't seem to find a
1244 know some nasties are still there, I just can't seem to find a
1241 reproducible test case to track them down; the input history is
1245 reproducible test case to track them down; the input history is
1242 falling out of sync...)
1246 falling out of sync...)
1243
1247
1244 * IPython/iplib.py (handle_shell_escape): fix bug where both
1248 * IPython/iplib.py (handle_shell_escape): fix bug where both
1245 aliases and system accesses where broken for indented code (such
1249 aliases and system accesses where broken for indented code (such
1246 as loops).
1250 as loops).
1247
1251
1248 * IPython/genutils.py (shell): fix small but critical bug for
1252 * IPython/genutils.py (shell): fix small but critical bug for
1249 win32 system access.
1253 win32 system access.
1250
1254
1251 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1255 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1252
1256
1253 * IPython/iplib.py (showtraceback): remove use of the
1257 * IPython/iplib.py (showtraceback): remove use of the
1254 sys.last_{type/value/traceback} structures, which are non
1258 sys.last_{type/value/traceback} structures, which are non
1255 thread-safe.
1259 thread-safe.
1256 (_prefilter): change control flow to ensure that we NEVER
1260 (_prefilter): change control flow to ensure that we NEVER
1257 introspect objects when autocall is off. This will guarantee that
1261 introspect objects when autocall is off. This will guarantee that
1258 having an input line of the form 'x.y', where access to attribute
1262 having an input line of the form 'x.y', where access to attribute
1259 'y' has side effects, doesn't trigger the side effect TWICE. It
1263 'y' has side effects, doesn't trigger the side effect TWICE. It
1260 is important to note that, with autocall on, these side effects
1264 is important to note that, with autocall on, these side effects
1261 can still happen.
1265 can still happen.
1262 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1266 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1263 trio. IPython offers these three kinds of special calls which are
1267 trio. IPython offers these three kinds of special calls which are
1264 not python code, and it's a good thing to have their call method
1268 not python code, and it's a good thing to have their call method
1265 be accessible as pure python functions (not just special syntax at
1269 be accessible as pure python functions (not just special syntax at
1266 the command line). It gives us a better internal implementation
1270 the command line). It gives us a better internal implementation
1267 structure, as well as exposing these for user scripting more
1271 structure, as well as exposing these for user scripting more
1268 cleanly.
1272 cleanly.
1269
1273
1270 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1274 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1271 file. Now that they'll be more likely to be used with the
1275 file. Now that they'll be more likely to be used with the
1272 persistance system (%store), I want to make sure their module path
1276 persistance system (%store), I want to make sure their module path
1273 doesn't change in the future, so that we don't break things for
1277 doesn't change in the future, so that we don't break things for
1274 users' persisted data.
1278 users' persisted data.
1275
1279
1276 * IPython/iplib.py (autoindent_update): move indentation
1280 * IPython/iplib.py (autoindent_update): move indentation
1277 management into the _text_ processing loop, not the keyboard
1281 management into the _text_ processing loop, not the keyboard
1278 interactive one. This is necessary to correctly process non-typed
1282 interactive one. This is necessary to correctly process non-typed
1279 multiline input (such as macros).
1283 multiline input (such as macros).
1280
1284
1281 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1285 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1282 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1286 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1283 which was producing problems in the resulting manual.
1287 which was producing problems in the resulting manual.
1284 (magic_whos): improve reporting of instances (show their class,
1288 (magic_whos): improve reporting of instances (show their class,
1285 instead of simply printing 'instance' which isn't terribly
1289 instead of simply printing 'instance' which isn't terribly
1286 informative).
1290 informative).
1287
1291
1288 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1292 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1289 (minor mods) to support network shares under win32.
1293 (minor mods) to support network shares under win32.
1290
1294
1291 * IPython/winconsole.py (get_console_size): add new winconsole
1295 * IPython/winconsole.py (get_console_size): add new winconsole
1292 module and fixes to page_dumb() to improve its behavior under
1296 module and fixes to page_dumb() to improve its behavior under
1293 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1297 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1294
1298
1295 * IPython/Magic.py (Macro): simplified Macro class to just
1299 * IPython/Magic.py (Macro): simplified Macro class to just
1296 subclass list. We've had only 2.2 compatibility for a very long
1300 subclass list. We've had only 2.2 compatibility for a very long
1297 time, yet I was still avoiding subclassing the builtin types. No
1301 time, yet I was still avoiding subclassing the builtin types. No
1298 more (I'm also starting to use properties, though I won't shift to
1302 more (I'm also starting to use properties, though I won't shift to
1299 2.3-specific features quite yet).
1303 2.3-specific features quite yet).
1300 (magic_store): added Ville's patch for lightweight variable
1304 (magic_store): added Ville's patch for lightweight variable
1301 persistence, after a request on the user list by Matt Wilkie
1305 persistence, after a request on the user list by Matt Wilkie
1302 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1306 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1303 details.
1307 details.
1304
1308
1305 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1309 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1306 changed the default logfile name from 'ipython.log' to
1310 changed the default logfile name from 'ipython.log' to
1307 'ipython_log.py'. These logs are real python files, and now that
1311 'ipython_log.py'. These logs are real python files, and now that
1308 we have much better multiline support, people are more likely to
1312 we have much better multiline support, people are more likely to
1309 want to use them as such. Might as well name them correctly.
1313 want to use them as such. Might as well name them correctly.
1310
1314
1311 * IPython/Magic.py: substantial cleanup. While we can't stop
1315 * IPython/Magic.py: substantial cleanup. While we can't stop
1312 using magics as mixins, due to the existing customizations 'out
1316 using magics as mixins, due to the existing customizations 'out
1313 there' which rely on the mixin naming conventions, at least I
1317 there' which rely on the mixin naming conventions, at least I
1314 cleaned out all cross-class name usage. So once we are OK with
1318 cleaned out all cross-class name usage. So once we are OK with
1315 breaking compatibility, the two systems can be separated.
1319 breaking compatibility, the two systems can be separated.
1316
1320
1317 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1321 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1318 anymore, and the class is a fair bit less hideous as well. New
1322 anymore, and the class is a fair bit less hideous as well. New
1319 features were also introduced: timestamping of input, and logging
1323 features were also introduced: timestamping of input, and logging
1320 of output results. These are user-visible with the -t and -o
1324 of output results. These are user-visible with the -t and -o
1321 options to %logstart. Closes
1325 options to %logstart. Closes
1322 http://www.scipy.net/roundup/ipython/issue11 and a request by
1326 http://www.scipy.net/roundup/ipython/issue11 and a request by
1323 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1327 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1324
1328
1325 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1329 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1326
1330
1327 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1331 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1328 better handle backslashes in paths. See the thread 'More Windows
1332 better handle backslashes in paths. See the thread 'More Windows
1329 questions part 2 - \/ characters revisited' on the iypthon user
1333 questions part 2 - \/ characters revisited' on the iypthon user
1330 list:
1334 list:
1331 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1335 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1332
1336
1333 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1337 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1334
1338
1335 (InteractiveShell.__init__): change threaded shells to not use the
1339 (InteractiveShell.__init__): change threaded shells to not use the
1336 ipython crash handler. This was causing more problems than not,
1340 ipython crash handler. This was causing more problems than not,
1337 as exceptions in the main thread (GUI code, typically) would
1341 as exceptions in the main thread (GUI code, typically) would
1338 always show up as a 'crash', when they really weren't.
1342 always show up as a 'crash', when they really weren't.
1339
1343
1340 The colors and exception mode commands (%colors/%xmode) have been
1344 The colors and exception mode commands (%colors/%xmode) have been
1341 synchronized to also take this into account, so users can get
1345 synchronized to also take this into account, so users can get
1342 verbose exceptions for their threaded code as well. I also added
1346 verbose exceptions for their threaded code as well. I also added
1343 support for activating pdb inside this exception handler as well,
1347 support for activating pdb inside this exception handler as well,
1344 so now GUI authors can use IPython's enhanced pdb at runtime.
1348 so now GUI authors can use IPython's enhanced pdb at runtime.
1345
1349
1346 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1350 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1347 true by default, and add it to the shipped ipythonrc file. Since
1351 true by default, and add it to the shipped ipythonrc file. Since
1348 this asks the user before proceeding, I think it's OK to make it
1352 this asks the user before proceeding, I think it's OK to make it
1349 true by default.
1353 true by default.
1350
1354
1351 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1355 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1352 of the previous special-casing of input in the eval loop. I think
1356 of the previous special-casing of input in the eval loop. I think
1353 this is cleaner, as they really are commands and shouldn't have
1357 this is cleaner, as they really are commands and shouldn't have
1354 a special role in the middle of the core code.
1358 a special role in the middle of the core code.
1355
1359
1356 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1360 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1357
1361
1358 * IPython/iplib.py (edit_syntax_error): added support for
1362 * IPython/iplib.py (edit_syntax_error): added support for
1359 automatically reopening the editor if the file had a syntax error
1363 automatically reopening the editor if the file had a syntax error
1360 in it. Thanks to scottt who provided the patch at:
1364 in it. Thanks to scottt who provided the patch at:
1361 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1365 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1362 version committed).
1366 version committed).
1363
1367
1364 * IPython/iplib.py (handle_normal): add suport for multi-line
1368 * IPython/iplib.py (handle_normal): add suport for multi-line
1365 input with emtpy lines. This fixes
1369 input with emtpy lines. This fixes
1366 http://www.scipy.net/roundup/ipython/issue43 and a similar
1370 http://www.scipy.net/roundup/ipython/issue43 and a similar
1367 discussion on the user list.
1371 discussion on the user list.
1368
1372
1369 WARNING: a behavior change is necessarily introduced to support
1373 WARNING: a behavior change is necessarily introduced to support
1370 blank lines: now a single blank line with whitespace does NOT
1374 blank lines: now a single blank line with whitespace does NOT
1371 break the input loop, which means that when autoindent is on, by
1375 break the input loop, which means that when autoindent is on, by
1372 default hitting return on the next (indented) line does NOT exit.
1376 default hitting return on the next (indented) line does NOT exit.
1373
1377
1374 Instead, to exit a multiline input you can either have:
1378 Instead, to exit a multiline input you can either have:
1375
1379
1376 - TWO whitespace lines (just hit return again), or
1380 - TWO whitespace lines (just hit return again), or
1377 - a single whitespace line of a different length than provided
1381 - a single whitespace line of a different length than provided
1378 by the autoindent (add or remove a space).
1382 by the autoindent (add or remove a space).
1379
1383
1380 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1384 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1381 module to better organize all readline-related functionality.
1385 module to better organize all readline-related functionality.
1382 I've deleted FlexCompleter and put all completion clases here.
1386 I've deleted FlexCompleter and put all completion clases here.
1383
1387
1384 * IPython/iplib.py (raw_input): improve indentation management.
1388 * IPython/iplib.py (raw_input): improve indentation management.
1385 It is now possible to paste indented code with autoindent on, and
1389 It is now possible to paste indented code with autoindent on, and
1386 the code is interpreted correctly (though it still looks bad on
1390 the code is interpreted correctly (though it still looks bad on
1387 screen, due to the line-oriented nature of ipython).
1391 screen, due to the line-oriented nature of ipython).
1388 (MagicCompleter.complete): change behavior so that a TAB key on an
1392 (MagicCompleter.complete): change behavior so that a TAB key on an
1389 otherwise empty line actually inserts a tab, instead of completing
1393 otherwise empty line actually inserts a tab, instead of completing
1390 on the entire global namespace. This makes it easier to use the
1394 on the entire global namespace. This makes it easier to use the
1391 TAB key for indentation. After a request by Hans Meine
1395 TAB key for indentation. After a request by Hans Meine
1392 <hans_meine-AT-gmx.net>
1396 <hans_meine-AT-gmx.net>
1393 (_prefilter): add support so that typing plain 'exit' or 'quit'
1397 (_prefilter): add support so that typing plain 'exit' or 'quit'
1394 does a sensible thing. Originally I tried to deviate as little as
1398 does a sensible thing. Originally I tried to deviate as little as
1395 possible from the default python behavior, but even that one may
1399 possible from the default python behavior, but even that one may
1396 change in this direction (thread on python-dev to that effect).
1400 change in this direction (thread on python-dev to that effect).
1397 Regardless, ipython should do the right thing even if CPython's
1401 Regardless, ipython should do the right thing even if CPython's
1398 '>>>' prompt doesn't.
1402 '>>>' prompt doesn't.
1399 (InteractiveShell): removed subclassing code.InteractiveConsole
1403 (InteractiveShell): removed subclassing code.InteractiveConsole
1400 class. By now we'd overridden just about all of its methods: I've
1404 class. By now we'd overridden just about all of its methods: I've
1401 copied the remaining two over, and now ipython is a standalone
1405 copied the remaining two over, and now ipython is a standalone
1402 class. This will provide a clearer picture for the chainsaw
1406 class. This will provide a clearer picture for the chainsaw
1403 branch refactoring.
1407 branch refactoring.
1404
1408
1405 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1409 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1406
1410
1407 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1411 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1408 failures for objects which break when dir() is called on them.
1412 failures for objects which break when dir() is called on them.
1409
1413
1410 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1414 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1411 distinct local and global namespaces in the completer API. This
1415 distinct local and global namespaces in the completer API. This
1412 change allows us to properly handle completion with distinct
1416 change allows us to properly handle completion with distinct
1413 scopes, including in embedded instances (this had never really
1417 scopes, including in embedded instances (this had never really
1414 worked correctly).
1418 worked correctly).
1415
1419
1416 Note: this introduces a change in the constructor for
1420 Note: this introduces a change in the constructor for
1417 MagicCompleter, as a new global_namespace parameter is now the
1421 MagicCompleter, as a new global_namespace parameter is now the
1418 second argument (the others were bumped one position).
1422 second argument (the others were bumped one position).
1419
1423
1420 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1424 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1421
1425
1422 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1426 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1423 embedded instances (which can be done now thanks to Vivian's
1427 embedded instances (which can be done now thanks to Vivian's
1424 frame-handling fixes for pdb).
1428 frame-handling fixes for pdb).
1425 (InteractiveShell.__init__): Fix namespace handling problem in
1429 (InteractiveShell.__init__): Fix namespace handling problem in
1426 embedded instances. We were overwriting __main__ unconditionally,
1430 embedded instances. We were overwriting __main__ unconditionally,
1427 and this should only be done for 'full' (non-embedded) IPython;
1431 and this should only be done for 'full' (non-embedded) IPython;
1428 embedded instances must respect the caller's __main__. Thanks to
1432 embedded instances must respect the caller's __main__. Thanks to
1429 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1433 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1430
1434
1431 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1435 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1432
1436
1433 * setup.py: added download_url to setup(). This registers the
1437 * setup.py: added download_url to setup(). This registers the
1434 download address at PyPI, which is not only useful to humans
1438 download address at PyPI, which is not only useful to humans
1435 browsing the site, but is also picked up by setuptools (the Eggs
1439 browsing the site, but is also picked up by setuptools (the Eggs
1436 machinery). Thanks to Ville and R. Kern for the info/discussion
1440 machinery). Thanks to Ville and R. Kern for the info/discussion
1437 on this.
1441 on this.
1438
1442
1439 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1443 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1440
1444
1441 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1445 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1442 This brings a lot of nice functionality to the pdb mode, which now
1446 This brings a lot of nice functionality to the pdb mode, which now
1443 has tab-completion, syntax highlighting, and better stack handling
1447 has tab-completion, syntax highlighting, and better stack handling
1444 than before. Many thanks to Vivian De Smedt
1448 than before. Many thanks to Vivian De Smedt
1445 <vivian-AT-vdesmedt.com> for the original patches.
1449 <vivian-AT-vdesmedt.com> for the original patches.
1446
1450
1447 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1451 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1448
1452
1449 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1453 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1450 sequence to consistently accept the banner argument. The
1454 sequence to consistently accept the banner argument. The
1451 inconsistency was tripping SAGE, thanks to Gary Zablackis
1455 inconsistency was tripping SAGE, thanks to Gary Zablackis
1452 <gzabl-AT-yahoo.com> for the report.
1456 <gzabl-AT-yahoo.com> for the report.
1453
1457
1454 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1458 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1455
1459
1456 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1460 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1457 Fix bug where a naked 'alias' call in the ipythonrc file would
1461 Fix bug where a naked 'alias' call in the ipythonrc file would
1458 cause a crash. Bug reported by Jorgen Stenarson.
1462 cause a crash. Bug reported by Jorgen Stenarson.
1459
1463
1460 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1464 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1461
1465
1462 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1466 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1463 startup time.
1467 startup time.
1464
1468
1465 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1469 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1466 instances had introduced a bug with globals in normal code. Now
1470 instances had introduced a bug with globals in normal code. Now
1467 it's working in all cases.
1471 it's working in all cases.
1468
1472
1469 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1473 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1470 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1474 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1471 has been introduced to set the default case sensitivity of the
1475 has been introduced to set the default case sensitivity of the
1472 searches. Users can still select either mode at runtime on a
1476 searches. Users can still select either mode at runtime on a
1473 per-search basis.
1477 per-search basis.
1474
1478
1475 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1479 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1476
1480
1477 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1481 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1478 attributes in wildcard searches for subclasses. Modified version
1482 attributes in wildcard searches for subclasses. Modified version
1479 of a patch by Jorgen.
1483 of a patch by Jorgen.
1480
1484
1481 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1485 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1482
1486
1483 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1487 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1484 embedded instances. I added a user_global_ns attribute to the
1488 embedded instances. I added a user_global_ns attribute to the
1485 InteractiveShell class to handle this.
1489 InteractiveShell class to handle this.
1486
1490
1487 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1491 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1488
1492
1489 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1493 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1490 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1494 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1491 (reported under win32, but may happen also in other platforms).
1495 (reported under win32, but may happen also in other platforms).
1492 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1496 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1493
1497
1494 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1498 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1495
1499
1496 * IPython/Magic.py (magic_psearch): new support for wildcard
1500 * IPython/Magic.py (magic_psearch): new support for wildcard
1497 patterns. Now, typing ?a*b will list all names which begin with a
1501 patterns. Now, typing ?a*b will list all names which begin with a
1498 and end in b, for example. The %psearch magic has full
1502 and end in b, for example. The %psearch magic has full
1499 docstrings. Many thanks to JΓΆrgen Stenarson
1503 docstrings. Many thanks to JΓΆrgen Stenarson
1500 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1504 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1501 implementing this functionality.
1505 implementing this functionality.
1502
1506
1503 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1507 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1504
1508
1505 * Manual: fixed long-standing annoyance of double-dashes (as in
1509 * Manual: fixed long-standing annoyance of double-dashes (as in
1506 --prefix=~, for example) being stripped in the HTML version. This
1510 --prefix=~, for example) being stripped in the HTML version. This
1507 is a latex2html bug, but a workaround was provided. Many thanks
1511 is a latex2html bug, but a workaround was provided. Many thanks
1508 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1512 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1509 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1513 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1510 rolling. This seemingly small issue had tripped a number of users
1514 rolling. This seemingly small issue had tripped a number of users
1511 when first installing, so I'm glad to see it gone.
1515 when first installing, so I'm glad to see it gone.
1512
1516
1513 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1517 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1514
1518
1515 * IPython/Extensions/numeric_formats.py: fix missing import,
1519 * IPython/Extensions/numeric_formats.py: fix missing import,
1516 reported by Stephen Walton.
1520 reported by Stephen Walton.
1517
1521
1518 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1522 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1519
1523
1520 * IPython/demo.py: finish demo module, fully documented now.
1524 * IPython/demo.py: finish demo module, fully documented now.
1521
1525
1522 * IPython/genutils.py (file_read): simple little utility to read a
1526 * IPython/genutils.py (file_read): simple little utility to read a
1523 file and ensure it's closed afterwards.
1527 file and ensure it's closed afterwards.
1524
1528
1525 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1529 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1526
1530
1527 * IPython/demo.py (Demo.__init__): added support for individually
1531 * IPython/demo.py (Demo.__init__): added support for individually
1528 tagging blocks for automatic execution.
1532 tagging blocks for automatic execution.
1529
1533
1530 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1534 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1531 syntax-highlighted python sources, requested by John.
1535 syntax-highlighted python sources, requested by John.
1532
1536
1533 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1537 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1534
1538
1535 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1539 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1536 finishing.
1540 finishing.
1537
1541
1538 * IPython/genutils.py (shlex_split): moved from Magic to here,
1542 * IPython/genutils.py (shlex_split): moved from Magic to here,
1539 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1543 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1540
1544
1541 * IPython/demo.py (Demo.__init__): added support for silent
1545 * IPython/demo.py (Demo.__init__): added support for silent
1542 blocks, improved marks as regexps, docstrings written.
1546 blocks, improved marks as regexps, docstrings written.
1543 (Demo.__init__): better docstring, added support for sys.argv.
1547 (Demo.__init__): better docstring, added support for sys.argv.
1544
1548
1545 * IPython/genutils.py (marquee): little utility used by the demo
1549 * IPython/genutils.py (marquee): little utility used by the demo
1546 code, handy in general.
1550 code, handy in general.
1547
1551
1548 * IPython/demo.py (Demo.__init__): new class for interactive
1552 * IPython/demo.py (Demo.__init__): new class for interactive
1549 demos. Not documented yet, I just wrote it in a hurry for
1553 demos. Not documented yet, I just wrote it in a hurry for
1550 scipy'05. Will docstring later.
1554 scipy'05. Will docstring later.
1551
1555
1552 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1556 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1553
1557
1554 * IPython/Shell.py (sigint_handler): Drastic simplification which
1558 * IPython/Shell.py (sigint_handler): Drastic simplification which
1555 also seems to make Ctrl-C work correctly across threads! This is
1559 also seems to make Ctrl-C work correctly across threads! This is
1556 so simple, that I can't beleive I'd missed it before. Needs more
1560 so simple, that I can't beleive I'd missed it before. Needs more
1557 testing, though.
1561 testing, though.
1558 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1562 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1559 like this before...
1563 like this before...
1560
1564
1561 * IPython/genutils.py (get_home_dir): add protection against
1565 * IPython/genutils.py (get_home_dir): add protection against
1562 non-dirs in win32 registry.
1566 non-dirs in win32 registry.
1563
1567
1564 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1568 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1565 bug where dict was mutated while iterating (pysh crash).
1569 bug where dict was mutated while iterating (pysh crash).
1566
1570
1567 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1571 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1568
1572
1569 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1573 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1570 spurious newlines added by this routine. After a report by
1574 spurious newlines added by this routine. After a report by
1571 F. Mantegazza.
1575 F. Mantegazza.
1572
1576
1573 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1577 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1574
1578
1575 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1579 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1576 calls. These were a leftover from the GTK 1.x days, and can cause
1580 calls. These were a leftover from the GTK 1.x days, and can cause
1577 problems in certain cases (after a report by John Hunter).
1581 problems in certain cases (after a report by John Hunter).
1578
1582
1579 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1583 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1580 os.getcwd() fails at init time. Thanks to patch from David Remahl
1584 os.getcwd() fails at init time. Thanks to patch from David Remahl
1581 <chmod007-AT-mac.com>.
1585 <chmod007-AT-mac.com>.
1582 (InteractiveShell.__init__): prevent certain special magics from
1586 (InteractiveShell.__init__): prevent certain special magics from
1583 being shadowed by aliases. Closes
1587 being shadowed by aliases. Closes
1584 http://www.scipy.net/roundup/ipython/issue41.
1588 http://www.scipy.net/roundup/ipython/issue41.
1585
1589
1586 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1590 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1587
1591
1588 * IPython/iplib.py (InteractiveShell.complete): Added new
1592 * IPython/iplib.py (InteractiveShell.complete): Added new
1589 top-level completion method to expose the completion mechanism
1593 top-level completion method to expose the completion mechanism
1590 beyond readline-based environments.
1594 beyond readline-based environments.
1591
1595
1592 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1596 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1593
1597
1594 * tools/ipsvnc (svnversion): fix svnversion capture.
1598 * tools/ipsvnc (svnversion): fix svnversion capture.
1595
1599
1596 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1600 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1597 attribute to self, which was missing. Before, it was set by a
1601 attribute to self, which was missing. Before, it was set by a
1598 routine which in certain cases wasn't being called, so the
1602 routine which in certain cases wasn't being called, so the
1599 instance could end up missing the attribute. This caused a crash.
1603 instance could end up missing the attribute. This caused a crash.
1600 Closes http://www.scipy.net/roundup/ipython/issue40.
1604 Closes http://www.scipy.net/roundup/ipython/issue40.
1601
1605
1602 2005-08-16 Fernando Perez <fperez@colorado.edu>
1606 2005-08-16 Fernando Perez <fperez@colorado.edu>
1603
1607
1604 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1608 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1605 contains non-string attribute. Closes
1609 contains non-string attribute. Closes
1606 http://www.scipy.net/roundup/ipython/issue38.
1610 http://www.scipy.net/roundup/ipython/issue38.
1607
1611
1608 2005-08-14 Fernando Perez <fperez@colorado.edu>
1612 2005-08-14 Fernando Perez <fperez@colorado.edu>
1609
1613
1610 * tools/ipsvnc: Minor improvements, to add changeset info.
1614 * tools/ipsvnc: Minor improvements, to add changeset info.
1611
1615
1612 2005-08-12 Fernando Perez <fperez@colorado.edu>
1616 2005-08-12 Fernando Perez <fperez@colorado.edu>
1613
1617
1614 * IPython/iplib.py (runsource): remove self.code_to_run_src
1618 * IPython/iplib.py (runsource): remove self.code_to_run_src
1615 attribute. I realized this is nothing more than
1619 attribute. I realized this is nothing more than
1616 '\n'.join(self.buffer), and having the same data in two different
1620 '\n'.join(self.buffer), and having the same data in two different
1617 places is just asking for synchronization bugs. This may impact
1621 places is just asking for synchronization bugs. This may impact
1618 people who have custom exception handlers, so I need to warn
1622 people who have custom exception handlers, so I need to warn
1619 ipython-dev about it (F. Mantegazza may use them).
1623 ipython-dev about it (F. Mantegazza may use them).
1620
1624
1621 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1625 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1622
1626
1623 * IPython/genutils.py: fix 2.2 compatibility (generators)
1627 * IPython/genutils.py: fix 2.2 compatibility (generators)
1624
1628
1625 2005-07-18 Fernando Perez <fperez@colorado.edu>
1629 2005-07-18 Fernando Perez <fperez@colorado.edu>
1626
1630
1627 * IPython/genutils.py (get_home_dir): fix to help users with
1631 * IPython/genutils.py (get_home_dir): fix to help users with
1628 invalid $HOME under win32.
1632 invalid $HOME under win32.
1629
1633
1630 2005-07-17 Fernando Perez <fperez@colorado.edu>
1634 2005-07-17 Fernando Perez <fperez@colorado.edu>
1631
1635
1632 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1636 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1633 some old hacks and clean up a bit other routines; code should be
1637 some old hacks and clean up a bit other routines; code should be
1634 simpler and a bit faster.
1638 simpler and a bit faster.
1635
1639
1636 * IPython/iplib.py (interact): removed some last-resort attempts
1640 * IPython/iplib.py (interact): removed some last-resort attempts
1637 to survive broken stdout/stderr. That code was only making it
1641 to survive broken stdout/stderr. That code was only making it
1638 harder to abstract out the i/o (necessary for gui integration),
1642 harder to abstract out the i/o (necessary for gui integration),
1639 and the crashes it could prevent were extremely rare in practice
1643 and the crashes it could prevent were extremely rare in practice
1640 (besides being fully user-induced in a pretty violent manner).
1644 (besides being fully user-induced in a pretty violent manner).
1641
1645
1642 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1646 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1643 Nothing major yet, but the code is simpler to read; this should
1647 Nothing major yet, but the code is simpler to read; this should
1644 make it easier to do more serious modifications in the future.
1648 make it easier to do more serious modifications in the future.
1645
1649
1646 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1650 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1647 which broke in .15 (thanks to a report by Ville).
1651 which broke in .15 (thanks to a report by Ville).
1648
1652
1649 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1653 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1650 be quite correct, I know next to nothing about unicode). This
1654 be quite correct, I know next to nothing about unicode). This
1651 will allow unicode strings to be used in prompts, amongst other
1655 will allow unicode strings to be used in prompts, amongst other
1652 cases. It also will prevent ipython from crashing when unicode
1656 cases. It also will prevent ipython from crashing when unicode
1653 shows up unexpectedly in many places. If ascii encoding fails, we
1657 shows up unexpectedly in many places. If ascii encoding fails, we
1654 assume utf_8. Currently the encoding is not a user-visible
1658 assume utf_8. Currently the encoding is not a user-visible
1655 setting, though it could be made so if there is demand for it.
1659 setting, though it could be made so if there is demand for it.
1656
1660
1657 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1661 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1658
1662
1659 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1663 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1660
1664
1661 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1665 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1662
1666
1663 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1667 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1664 code can work transparently for 2.2/2.3.
1668 code can work transparently for 2.2/2.3.
1665
1669
1666 2005-07-16 Fernando Perez <fperez@colorado.edu>
1670 2005-07-16 Fernando Perez <fperez@colorado.edu>
1667
1671
1668 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1672 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1669 out of the color scheme table used for coloring exception
1673 out of the color scheme table used for coloring exception
1670 tracebacks. This allows user code to add new schemes at runtime.
1674 tracebacks. This allows user code to add new schemes at runtime.
1671 This is a minimally modified version of the patch at
1675 This is a minimally modified version of the patch at
1672 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1676 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1673 for the contribution.
1677 for the contribution.
1674
1678
1675 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1679 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1676 slightly modified version of the patch in
1680 slightly modified version of the patch in
1677 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1681 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1678 to remove the previous try/except solution (which was costlier).
1682 to remove the previous try/except solution (which was costlier).
1679 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1683 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1680
1684
1681 2005-06-08 Fernando Perez <fperez@colorado.edu>
1685 2005-06-08 Fernando Perez <fperez@colorado.edu>
1682
1686
1683 * IPython/iplib.py (write/write_err): Add methods to abstract all
1687 * IPython/iplib.py (write/write_err): Add methods to abstract all
1684 I/O a bit more.
1688 I/O a bit more.
1685
1689
1686 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1690 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1687 warning, reported by Aric Hagberg, fix by JD Hunter.
1691 warning, reported by Aric Hagberg, fix by JD Hunter.
1688
1692
1689 2005-06-02 *** Released version 0.6.15
1693 2005-06-02 *** Released version 0.6.15
1690
1694
1691 2005-06-01 Fernando Perez <fperez@colorado.edu>
1695 2005-06-01 Fernando Perez <fperez@colorado.edu>
1692
1696
1693 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1697 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1694 tab-completion of filenames within open-quoted strings. Note that
1698 tab-completion of filenames within open-quoted strings. Note that
1695 this requires that in ~/.ipython/ipythonrc, users change the
1699 this requires that in ~/.ipython/ipythonrc, users change the
1696 readline delimiters configuration to read:
1700 readline delimiters configuration to read:
1697
1701
1698 readline_remove_delims -/~
1702 readline_remove_delims -/~
1699
1703
1700
1704
1701 2005-05-31 *** Released version 0.6.14
1705 2005-05-31 *** Released version 0.6.14
1702
1706
1703 2005-05-29 Fernando Perez <fperez@colorado.edu>
1707 2005-05-29 Fernando Perez <fperez@colorado.edu>
1704
1708
1705 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1709 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1706 with files not on the filesystem. Reported by Eliyahu Sandler
1710 with files not on the filesystem. Reported by Eliyahu Sandler
1707 <eli@gondolin.net>
1711 <eli@gondolin.net>
1708
1712
1709 2005-05-22 Fernando Perez <fperez@colorado.edu>
1713 2005-05-22 Fernando Perez <fperez@colorado.edu>
1710
1714
1711 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1715 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1712 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1716 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1713
1717
1714 2005-05-19 Fernando Perez <fperez@colorado.edu>
1718 2005-05-19 Fernando Perez <fperez@colorado.edu>
1715
1719
1716 * IPython/iplib.py (safe_execfile): close a file which could be
1720 * IPython/iplib.py (safe_execfile): close a file which could be
1717 left open (causing problems in win32, which locks open files).
1721 left open (causing problems in win32, which locks open files).
1718 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1722 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1719
1723
1720 2005-05-18 Fernando Perez <fperez@colorado.edu>
1724 2005-05-18 Fernando Perez <fperez@colorado.edu>
1721
1725
1722 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1726 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1723 keyword arguments correctly to safe_execfile().
1727 keyword arguments correctly to safe_execfile().
1724
1728
1725 2005-05-13 Fernando Perez <fperez@colorado.edu>
1729 2005-05-13 Fernando Perez <fperez@colorado.edu>
1726
1730
1727 * ipython.1: Added info about Qt to manpage, and threads warning
1731 * ipython.1: Added info about Qt to manpage, and threads warning
1728 to usage page (invoked with --help).
1732 to usage page (invoked with --help).
1729
1733
1730 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1734 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1731 new matcher (it goes at the end of the priority list) to do
1735 new matcher (it goes at the end of the priority list) to do
1732 tab-completion on named function arguments. Submitted by George
1736 tab-completion on named function arguments. Submitted by George
1733 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1737 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1734 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1738 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1735 for more details.
1739 for more details.
1736
1740
1737 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1741 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1738 SystemExit exceptions in the script being run. Thanks to a report
1742 SystemExit exceptions in the script being run. Thanks to a report
1739 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1743 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1740 producing very annoying behavior when running unit tests.
1744 producing very annoying behavior when running unit tests.
1741
1745
1742 2005-05-12 Fernando Perez <fperez@colorado.edu>
1746 2005-05-12 Fernando Perez <fperez@colorado.edu>
1743
1747
1744 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1748 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1745 which I'd broken (again) due to a changed regexp. In the process,
1749 which I'd broken (again) due to a changed regexp. In the process,
1746 added ';' as an escape to auto-quote the whole line without
1750 added ';' as an escape to auto-quote the whole line without
1747 splitting its arguments. Thanks to a report by Jerry McRae
1751 splitting its arguments. Thanks to a report by Jerry McRae
1748 <qrs0xyc02-AT-sneakemail.com>.
1752 <qrs0xyc02-AT-sneakemail.com>.
1749
1753
1750 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1754 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1751 possible crashes caused by a TokenError. Reported by Ed Schofield
1755 possible crashes caused by a TokenError. Reported by Ed Schofield
1752 <schofield-AT-ftw.at>.
1756 <schofield-AT-ftw.at>.
1753
1757
1754 2005-05-06 Fernando Perez <fperez@colorado.edu>
1758 2005-05-06 Fernando Perez <fperez@colorado.edu>
1755
1759
1756 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1760 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1757
1761
1758 2005-04-29 Fernando Perez <fperez@colorado.edu>
1762 2005-04-29 Fernando Perez <fperez@colorado.edu>
1759
1763
1760 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1764 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1761 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1765 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1762 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1766 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1763 which provides support for Qt interactive usage (similar to the
1767 which provides support for Qt interactive usage (similar to the
1764 existing one for WX and GTK). This had been often requested.
1768 existing one for WX and GTK). This had been often requested.
1765
1769
1766 2005-04-14 *** Released version 0.6.13
1770 2005-04-14 *** Released version 0.6.13
1767
1771
1768 2005-04-08 Fernando Perez <fperez@colorado.edu>
1772 2005-04-08 Fernando Perez <fperez@colorado.edu>
1769
1773
1770 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1774 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1771 from _ofind, which gets called on almost every input line. Now,
1775 from _ofind, which gets called on almost every input line. Now,
1772 we only try to get docstrings if they are actually going to be
1776 we only try to get docstrings if they are actually going to be
1773 used (the overhead of fetching unnecessary docstrings can be
1777 used (the overhead of fetching unnecessary docstrings can be
1774 noticeable for certain objects, such as Pyro proxies).
1778 noticeable for certain objects, such as Pyro proxies).
1775
1779
1776 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1780 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1777 for completers. For some reason I had been passing them the state
1781 for completers. For some reason I had been passing them the state
1778 variable, which completers never actually need, and was in
1782 variable, which completers never actually need, and was in
1779 conflict with the rlcompleter API. Custom completers ONLY need to
1783 conflict with the rlcompleter API. Custom completers ONLY need to
1780 take the text parameter.
1784 take the text parameter.
1781
1785
1782 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1786 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1783 work correctly in pysh. I've also moved all the logic which used
1787 work correctly in pysh. I've also moved all the logic which used
1784 to be in pysh.py here, which will prevent problems with future
1788 to be in pysh.py here, which will prevent problems with future
1785 upgrades. However, this time I must warn users to update their
1789 upgrades. However, this time I must warn users to update their
1786 pysh profile to include the line
1790 pysh profile to include the line
1787
1791
1788 import_all IPython.Extensions.InterpreterExec
1792 import_all IPython.Extensions.InterpreterExec
1789
1793
1790 because otherwise things won't work for them. They MUST also
1794 because otherwise things won't work for them. They MUST also
1791 delete pysh.py and the line
1795 delete pysh.py and the line
1792
1796
1793 execfile pysh.py
1797 execfile pysh.py
1794
1798
1795 from their ipythonrc-pysh.
1799 from their ipythonrc-pysh.
1796
1800
1797 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1801 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1798 robust in the face of objects whose dir() returns non-strings
1802 robust in the face of objects whose dir() returns non-strings
1799 (which it shouldn't, but some broken libs like ITK do). Thanks to
1803 (which it shouldn't, but some broken libs like ITK do). Thanks to
1800 a patch by John Hunter (implemented differently, though). Also
1804 a patch by John Hunter (implemented differently, though). Also
1801 minor improvements by using .extend instead of + on lists.
1805 minor improvements by using .extend instead of + on lists.
1802
1806
1803 * pysh.py:
1807 * pysh.py:
1804
1808
1805 2005-04-06 Fernando Perez <fperez@colorado.edu>
1809 2005-04-06 Fernando Perez <fperez@colorado.edu>
1806
1810
1807 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1811 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1808 by default, so that all users benefit from it. Those who don't
1812 by default, so that all users benefit from it. Those who don't
1809 want it can still turn it off.
1813 want it can still turn it off.
1810
1814
1811 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1815 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1812 config file, I'd forgotten about this, so users were getting it
1816 config file, I'd forgotten about this, so users were getting it
1813 off by default.
1817 off by default.
1814
1818
1815 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1819 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1816 consistency. Now magics can be called in multiline statements,
1820 consistency. Now magics can be called in multiline statements,
1817 and python variables can be expanded in magic calls via $var.
1821 and python variables can be expanded in magic calls via $var.
1818 This makes the magic system behave just like aliases or !system
1822 This makes the magic system behave just like aliases or !system
1819 calls.
1823 calls.
1820
1824
1821 2005-03-28 Fernando Perez <fperez@colorado.edu>
1825 2005-03-28 Fernando Perez <fperez@colorado.edu>
1822
1826
1823 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1827 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1824 expensive string additions for building command. Add support for
1828 expensive string additions for building command. Add support for
1825 trailing ';' when autocall is used.
1829 trailing ';' when autocall is used.
1826
1830
1827 2005-03-26 Fernando Perez <fperez@colorado.edu>
1831 2005-03-26 Fernando Perez <fperez@colorado.edu>
1828
1832
1829 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1833 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1830 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1834 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1831 ipython.el robust against prompts with any number of spaces
1835 ipython.el robust against prompts with any number of spaces
1832 (including 0) after the ':' character.
1836 (including 0) after the ':' character.
1833
1837
1834 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1838 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1835 continuation prompt, which misled users to think the line was
1839 continuation prompt, which misled users to think the line was
1836 already indented. Closes debian Bug#300847, reported to me by
1840 already indented. Closes debian Bug#300847, reported to me by
1837 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1841 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1838
1842
1839 2005-03-23 Fernando Perez <fperez@colorado.edu>
1843 2005-03-23 Fernando Perez <fperez@colorado.edu>
1840
1844
1841 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1845 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1842 properly aligned if they have embedded newlines.
1846 properly aligned if they have embedded newlines.
1843
1847
1844 * IPython/iplib.py (runlines): Add a public method to expose
1848 * IPython/iplib.py (runlines): Add a public method to expose
1845 IPython's code execution machinery, so that users can run strings
1849 IPython's code execution machinery, so that users can run strings
1846 as if they had been typed at the prompt interactively.
1850 as if they had been typed at the prompt interactively.
1847 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1851 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1848 methods which can call the system shell, but with python variable
1852 methods which can call the system shell, but with python variable
1849 expansion. The three such methods are: __IPYTHON__.system,
1853 expansion. The three such methods are: __IPYTHON__.system,
1850 .getoutput and .getoutputerror. These need to be documented in a
1854 .getoutput and .getoutputerror. These need to be documented in a
1851 'public API' section (to be written) of the manual.
1855 'public API' section (to be written) of the manual.
1852
1856
1853 2005-03-20 Fernando Perez <fperez@colorado.edu>
1857 2005-03-20 Fernando Perez <fperez@colorado.edu>
1854
1858
1855 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1859 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1856 for custom exception handling. This is quite powerful, and it
1860 for custom exception handling. This is quite powerful, and it
1857 allows for user-installable exception handlers which can trap
1861 allows for user-installable exception handlers which can trap
1858 custom exceptions at runtime and treat them separately from
1862 custom exceptions at runtime and treat them separately from
1859 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1863 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1860 Mantegazza <mantegazza-AT-ill.fr>.
1864 Mantegazza <mantegazza-AT-ill.fr>.
1861 (InteractiveShell.set_custom_completer): public API function to
1865 (InteractiveShell.set_custom_completer): public API function to
1862 add new completers at runtime.
1866 add new completers at runtime.
1863
1867
1864 2005-03-19 Fernando Perez <fperez@colorado.edu>
1868 2005-03-19 Fernando Perez <fperez@colorado.edu>
1865
1869
1866 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1870 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1867 allow objects which provide their docstrings via non-standard
1871 allow objects which provide their docstrings via non-standard
1868 mechanisms (like Pyro proxies) to still be inspected by ipython's
1872 mechanisms (like Pyro proxies) to still be inspected by ipython's
1869 ? system.
1873 ? system.
1870
1874
1871 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1875 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1872 automatic capture system. I tried quite hard to make it work
1876 automatic capture system. I tried quite hard to make it work
1873 reliably, and simply failed. I tried many combinations with the
1877 reliably, and simply failed. I tried many combinations with the
1874 subprocess module, but eventually nothing worked in all needed
1878 subprocess module, but eventually nothing worked in all needed
1875 cases (not blocking stdin for the child, duplicating stdout
1879 cases (not blocking stdin for the child, duplicating stdout
1876 without blocking, etc). The new %sc/%sx still do capture to these
1880 without blocking, etc). The new %sc/%sx still do capture to these
1877 magical list/string objects which make shell use much more
1881 magical list/string objects which make shell use much more
1878 conveninent, so not all is lost.
1882 conveninent, so not all is lost.
1879
1883
1880 XXX - FIX MANUAL for the change above!
1884 XXX - FIX MANUAL for the change above!
1881
1885
1882 (runsource): I copied code.py's runsource() into ipython to modify
1886 (runsource): I copied code.py's runsource() into ipython to modify
1883 it a bit. Now the code object and source to be executed are
1887 it a bit. Now the code object and source to be executed are
1884 stored in ipython. This makes this info accessible to third-party
1888 stored in ipython. This makes this info accessible to third-party
1885 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1889 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1886 Mantegazza <mantegazza-AT-ill.fr>.
1890 Mantegazza <mantegazza-AT-ill.fr>.
1887
1891
1888 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1892 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1889 history-search via readline (like C-p/C-n). I'd wanted this for a
1893 history-search via readline (like C-p/C-n). I'd wanted this for a
1890 long time, but only recently found out how to do it. For users
1894 long time, but only recently found out how to do it. For users
1891 who already have their ipythonrc files made and want this, just
1895 who already have their ipythonrc files made and want this, just
1892 add:
1896 add:
1893
1897
1894 readline_parse_and_bind "\e[A": history-search-backward
1898 readline_parse_and_bind "\e[A": history-search-backward
1895 readline_parse_and_bind "\e[B": history-search-forward
1899 readline_parse_and_bind "\e[B": history-search-forward
1896
1900
1897 2005-03-18 Fernando Perez <fperez@colorado.edu>
1901 2005-03-18 Fernando Perez <fperez@colorado.edu>
1898
1902
1899 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1903 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1900 LSString and SList classes which allow transparent conversions
1904 LSString and SList classes which allow transparent conversions
1901 between list mode and whitespace-separated string.
1905 between list mode and whitespace-separated string.
1902 (magic_r): Fix recursion problem in %r.
1906 (magic_r): Fix recursion problem in %r.
1903
1907
1904 * IPython/genutils.py (LSString): New class to be used for
1908 * IPython/genutils.py (LSString): New class to be used for
1905 automatic storage of the results of all alias/system calls in _o
1909 automatic storage of the results of all alias/system calls in _o
1906 and _e (stdout/err). These provide a .l/.list attribute which
1910 and _e (stdout/err). These provide a .l/.list attribute which
1907 does automatic splitting on newlines. This means that for most
1911 does automatic splitting on newlines. This means that for most
1908 uses, you'll never need to do capturing of output with %sc/%sx
1912 uses, you'll never need to do capturing of output with %sc/%sx
1909 anymore, since ipython keeps this always done for you. Note that
1913 anymore, since ipython keeps this always done for you. Note that
1910 only the LAST results are stored, the _o/e variables are
1914 only the LAST results are stored, the _o/e variables are
1911 overwritten on each call. If you need to save their contents
1915 overwritten on each call. If you need to save their contents
1912 further, simply bind them to any other name.
1916 further, simply bind them to any other name.
1913
1917
1914 2005-03-17 Fernando Perez <fperez@colorado.edu>
1918 2005-03-17 Fernando Perez <fperez@colorado.edu>
1915
1919
1916 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1920 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1917 prompt namespace handling.
1921 prompt namespace handling.
1918
1922
1919 2005-03-16 Fernando Perez <fperez@colorado.edu>
1923 2005-03-16 Fernando Perez <fperez@colorado.edu>
1920
1924
1921 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1925 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1922 classic prompts to be '>>> ' (final space was missing, and it
1926 classic prompts to be '>>> ' (final space was missing, and it
1923 trips the emacs python mode).
1927 trips the emacs python mode).
1924 (BasePrompt.__str__): Added safe support for dynamic prompt
1928 (BasePrompt.__str__): Added safe support for dynamic prompt
1925 strings. Now you can set your prompt string to be '$x', and the
1929 strings. Now you can set your prompt string to be '$x', and the
1926 value of x will be printed from your interactive namespace. The
1930 value of x will be printed from your interactive namespace. The
1927 interpolation syntax includes the full Itpl support, so
1931 interpolation syntax includes the full Itpl support, so
1928 ${foo()+x+bar()} is a valid prompt string now, and the function
1932 ${foo()+x+bar()} is a valid prompt string now, and the function
1929 calls will be made at runtime.
1933 calls will be made at runtime.
1930
1934
1931 2005-03-15 Fernando Perez <fperez@colorado.edu>
1935 2005-03-15 Fernando Perez <fperez@colorado.edu>
1932
1936
1933 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1937 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1934 avoid name clashes in pylab. %hist still works, it just forwards
1938 avoid name clashes in pylab. %hist still works, it just forwards
1935 the call to %history.
1939 the call to %history.
1936
1940
1937 2005-03-02 *** Released version 0.6.12
1941 2005-03-02 *** Released version 0.6.12
1938
1942
1939 2005-03-02 Fernando Perez <fperez@colorado.edu>
1943 2005-03-02 Fernando Perez <fperez@colorado.edu>
1940
1944
1941 * IPython/iplib.py (handle_magic): log magic calls properly as
1945 * IPython/iplib.py (handle_magic): log magic calls properly as
1942 ipmagic() function calls.
1946 ipmagic() function calls.
1943
1947
1944 * IPython/Magic.py (magic_time): Improved %time to support
1948 * IPython/Magic.py (magic_time): Improved %time to support
1945 statements and provide wall-clock as well as CPU time.
1949 statements and provide wall-clock as well as CPU time.
1946
1950
1947 2005-02-27 Fernando Perez <fperez@colorado.edu>
1951 2005-02-27 Fernando Perez <fperez@colorado.edu>
1948
1952
1949 * IPython/hooks.py: New hooks module, to expose user-modifiable
1953 * IPython/hooks.py: New hooks module, to expose user-modifiable
1950 IPython functionality in a clean manner. For now only the editor
1954 IPython functionality in a clean manner. For now only the editor
1951 hook is actually written, and other thigns which I intend to turn
1955 hook is actually written, and other thigns which I intend to turn
1952 into proper hooks aren't yet there. The display and prefilter
1956 into proper hooks aren't yet there. The display and prefilter
1953 stuff, for example, should be hooks. But at least now the
1957 stuff, for example, should be hooks. But at least now the
1954 framework is in place, and the rest can be moved here with more
1958 framework is in place, and the rest can be moved here with more
1955 time later. IPython had had a .hooks variable for a long time for
1959 time later. IPython had had a .hooks variable for a long time for
1956 this purpose, but I'd never actually used it for anything.
1960 this purpose, but I'd never actually used it for anything.
1957
1961
1958 2005-02-26 Fernando Perez <fperez@colorado.edu>
1962 2005-02-26 Fernando Perez <fperez@colorado.edu>
1959
1963
1960 * IPython/ipmaker.py (make_IPython): make the default ipython
1964 * IPython/ipmaker.py (make_IPython): make the default ipython
1961 directory be called _ipython under win32, to follow more the
1965 directory be called _ipython under win32, to follow more the
1962 naming peculiarities of that platform (where buggy software like
1966 naming peculiarities of that platform (where buggy software like
1963 Visual Sourcesafe breaks with .named directories). Reported by
1967 Visual Sourcesafe breaks with .named directories). Reported by
1964 Ville Vainio.
1968 Ville Vainio.
1965
1969
1966 2005-02-23 Fernando Perez <fperez@colorado.edu>
1970 2005-02-23 Fernando Perez <fperez@colorado.edu>
1967
1971
1968 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1972 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1969 auto_aliases for win32 which were causing problems. Users can
1973 auto_aliases for win32 which were causing problems. Users can
1970 define the ones they personally like.
1974 define the ones they personally like.
1971
1975
1972 2005-02-21 Fernando Perez <fperez@colorado.edu>
1976 2005-02-21 Fernando Perez <fperez@colorado.edu>
1973
1977
1974 * IPython/Magic.py (magic_time): new magic to time execution of
1978 * IPython/Magic.py (magic_time): new magic to time execution of
1975 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1979 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1976
1980
1977 2005-02-19 Fernando Perez <fperez@colorado.edu>
1981 2005-02-19 Fernando Perez <fperez@colorado.edu>
1978
1982
1979 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1983 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1980 into keys (for prompts, for example).
1984 into keys (for prompts, for example).
1981
1985
1982 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1986 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1983 prompts in case users want them. This introduces a small behavior
1987 prompts in case users want them. This introduces a small behavior
1984 change: ipython does not automatically add a space to all prompts
1988 change: ipython does not automatically add a space to all prompts
1985 anymore. To get the old prompts with a space, users should add it
1989 anymore. To get the old prompts with a space, users should add it
1986 manually to their ipythonrc file, so for example prompt_in1 should
1990 manually to their ipythonrc file, so for example prompt_in1 should
1987 now read 'In [\#]: ' instead of 'In [\#]:'.
1991 now read 'In [\#]: ' instead of 'In [\#]:'.
1988 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1992 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1989 file) to control left-padding of secondary prompts.
1993 file) to control left-padding of secondary prompts.
1990
1994
1991 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1995 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1992 the profiler can't be imported. Fix for Debian, which removed
1996 the profiler can't be imported. Fix for Debian, which removed
1993 profile.py because of License issues. I applied a slightly
1997 profile.py because of License issues. I applied a slightly
1994 modified version of the original Debian patch at
1998 modified version of the original Debian patch at
1995 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1999 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1996
2000
1997 2005-02-17 Fernando Perez <fperez@colorado.edu>
2001 2005-02-17 Fernando Perez <fperez@colorado.edu>
1998
2002
1999 * IPython/genutils.py (native_line_ends): Fix bug which would
2003 * IPython/genutils.py (native_line_ends): Fix bug which would
2000 cause improper line-ends under win32 b/c I was not opening files
2004 cause improper line-ends under win32 b/c I was not opening files
2001 in binary mode. Bug report and fix thanks to Ville.
2005 in binary mode. Bug report and fix thanks to Ville.
2002
2006
2003 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2007 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2004 trying to catch spurious foo[1] autocalls. My fix actually broke
2008 trying to catch spurious foo[1] autocalls. My fix actually broke
2005 ',/' autoquote/call with explicit escape (bad regexp).
2009 ',/' autoquote/call with explicit escape (bad regexp).
2006
2010
2007 2005-02-15 *** Released version 0.6.11
2011 2005-02-15 *** Released version 0.6.11
2008
2012
2009 2005-02-14 Fernando Perez <fperez@colorado.edu>
2013 2005-02-14 Fernando Perez <fperez@colorado.edu>
2010
2014
2011 * IPython/background_jobs.py: New background job management
2015 * IPython/background_jobs.py: New background job management
2012 subsystem. This is implemented via a new set of classes, and
2016 subsystem. This is implemented via a new set of classes, and
2013 IPython now provides a builtin 'jobs' object for background job
2017 IPython now provides a builtin 'jobs' object for background job
2014 execution. A convenience %bg magic serves as a lightweight
2018 execution. A convenience %bg magic serves as a lightweight
2015 frontend for starting the more common type of calls. This was
2019 frontend for starting the more common type of calls. This was
2016 inspired by discussions with B. Granger and the BackgroundCommand
2020 inspired by discussions with B. Granger and the BackgroundCommand
2017 class described in the book Python Scripting for Computational
2021 class described in the book Python Scripting for Computational
2018 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2022 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2019 (although ultimately no code from this text was used, as IPython's
2023 (although ultimately no code from this text was used, as IPython's
2020 system is a separate implementation).
2024 system is a separate implementation).
2021
2025
2022 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2026 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2023 to control the completion of single/double underscore names
2027 to control the completion of single/double underscore names
2024 separately. As documented in the example ipytonrc file, the
2028 separately. As documented in the example ipytonrc file, the
2025 readline_omit__names variable can now be set to 2, to omit even
2029 readline_omit__names variable can now be set to 2, to omit even
2026 single underscore names. Thanks to a patch by Brian Wong
2030 single underscore names. Thanks to a patch by Brian Wong
2027 <BrianWong-AT-AirgoNetworks.Com>.
2031 <BrianWong-AT-AirgoNetworks.Com>.
2028 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2032 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2029 be autocalled as foo([1]) if foo were callable. A problem for
2033 be autocalled as foo([1]) if foo were callable. A problem for
2030 things which are both callable and implement __getitem__.
2034 things which are both callable and implement __getitem__.
2031 (init_readline): Fix autoindentation for win32. Thanks to a patch
2035 (init_readline): Fix autoindentation for win32. Thanks to a patch
2032 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2036 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2033
2037
2034 2005-02-12 Fernando Perez <fperez@colorado.edu>
2038 2005-02-12 Fernando Perez <fperez@colorado.edu>
2035
2039
2036 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2040 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2037 which I had written long ago to sort out user error messages which
2041 which I had written long ago to sort out user error messages which
2038 may occur during startup. This seemed like a good idea initially,
2042 may occur during startup. This seemed like a good idea initially,
2039 but it has proven a disaster in retrospect. I don't want to
2043 but it has proven a disaster in retrospect. I don't want to
2040 change much code for now, so my fix is to set the internal 'debug'
2044 change much code for now, so my fix is to set the internal 'debug'
2041 flag to true everywhere, whose only job was precisely to control
2045 flag to true everywhere, whose only job was precisely to control
2042 this subsystem. This closes issue 28 (as well as avoiding all
2046 this subsystem. This closes issue 28 (as well as avoiding all
2043 sorts of strange hangups which occur from time to time).
2047 sorts of strange hangups which occur from time to time).
2044
2048
2045 2005-02-07 Fernando Perez <fperez@colorado.edu>
2049 2005-02-07 Fernando Perez <fperez@colorado.edu>
2046
2050
2047 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2051 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2048 previous call produced a syntax error.
2052 previous call produced a syntax error.
2049
2053
2050 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2054 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2051 classes without constructor.
2055 classes without constructor.
2052
2056
2053 2005-02-06 Fernando Perez <fperez@colorado.edu>
2057 2005-02-06 Fernando Perez <fperez@colorado.edu>
2054
2058
2055 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2059 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2056 completions with the results of each matcher, so we return results
2060 completions with the results of each matcher, so we return results
2057 to the user from all namespaces. This breaks with ipython
2061 to the user from all namespaces. This breaks with ipython
2058 tradition, but I think it's a nicer behavior. Now you get all
2062 tradition, but I think it's a nicer behavior. Now you get all
2059 possible completions listed, from all possible namespaces (python,
2063 possible completions listed, from all possible namespaces (python,
2060 filesystem, magics...) After a request by John Hunter
2064 filesystem, magics...) After a request by John Hunter
2061 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2065 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2062
2066
2063 2005-02-05 Fernando Perez <fperez@colorado.edu>
2067 2005-02-05 Fernando Perez <fperez@colorado.edu>
2064
2068
2065 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2069 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2066 the call had quote characters in it (the quotes were stripped).
2070 the call had quote characters in it (the quotes were stripped).
2067
2071
2068 2005-01-31 Fernando Perez <fperez@colorado.edu>
2072 2005-01-31 Fernando Perez <fperez@colorado.edu>
2069
2073
2070 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2074 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2071 Itpl.itpl() to make the code more robust against psyco
2075 Itpl.itpl() to make the code more robust against psyco
2072 optimizations.
2076 optimizations.
2073
2077
2074 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2078 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2075 of causing an exception. Quicker, cleaner.
2079 of causing an exception. Quicker, cleaner.
2076
2080
2077 2005-01-28 Fernando Perez <fperez@colorado.edu>
2081 2005-01-28 Fernando Perez <fperez@colorado.edu>
2078
2082
2079 * scripts/ipython_win_post_install.py (install): hardcode
2083 * scripts/ipython_win_post_install.py (install): hardcode
2080 sys.prefix+'python.exe' as the executable path. It turns out that
2084 sys.prefix+'python.exe' as the executable path. It turns out that
2081 during the post-installation run, sys.executable resolves to the
2085 during the post-installation run, sys.executable resolves to the
2082 name of the binary installer! I should report this as a distutils
2086 name of the binary installer! I should report this as a distutils
2083 bug, I think. I updated the .10 release with this tiny fix, to
2087 bug, I think. I updated the .10 release with this tiny fix, to
2084 avoid annoying the lists further.
2088 avoid annoying the lists further.
2085
2089
2086 2005-01-27 *** Released version 0.6.10
2090 2005-01-27 *** Released version 0.6.10
2087
2091
2088 2005-01-27 Fernando Perez <fperez@colorado.edu>
2092 2005-01-27 Fernando Perez <fperez@colorado.edu>
2089
2093
2090 * IPython/numutils.py (norm): Added 'inf' as optional name for
2094 * IPython/numutils.py (norm): Added 'inf' as optional name for
2091 L-infinity norm, included references to mathworld.com for vector
2095 L-infinity norm, included references to mathworld.com for vector
2092 norm definitions.
2096 norm definitions.
2093 (amin/amax): added amin/amax for array min/max. Similar to what
2097 (amin/amax): added amin/amax for array min/max. Similar to what
2094 pylab ships with after the recent reorganization of names.
2098 pylab ships with after the recent reorganization of names.
2095 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2099 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2096
2100
2097 * ipython.el: committed Alex's recent fixes and improvements.
2101 * ipython.el: committed Alex's recent fixes and improvements.
2098 Tested with python-mode from CVS, and it looks excellent. Since
2102 Tested with python-mode from CVS, and it looks excellent. Since
2099 python-mode hasn't released anything in a while, I'm temporarily
2103 python-mode hasn't released anything in a while, I'm temporarily
2100 putting a copy of today's CVS (v 4.70) of python-mode in:
2104 putting a copy of today's CVS (v 4.70) of python-mode in:
2101 http://ipython.scipy.org/tmp/python-mode.el
2105 http://ipython.scipy.org/tmp/python-mode.el
2102
2106
2103 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2107 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2104 sys.executable for the executable name, instead of assuming it's
2108 sys.executable for the executable name, instead of assuming it's
2105 called 'python.exe' (the post-installer would have produced broken
2109 called 'python.exe' (the post-installer would have produced broken
2106 setups on systems with a differently named python binary).
2110 setups on systems with a differently named python binary).
2107
2111
2108 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2112 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2109 references to os.linesep, to make the code more
2113 references to os.linesep, to make the code more
2110 platform-independent. This is also part of the win32 coloring
2114 platform-independent. This is also part of the win32 coloring
2111 fixes.
2115 fixes.
2112
2116
2113 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2117 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2114 lines, which actually cause coloring bugs because the length of
2118 lines, which actually cause coloring bugs because the length of
2115 the line is very difficult to correctly compute with embedded
2119 the line is very difficult to correctly compute with embedded
2116 escapes. This was the source of all the coloring problems under
2120 escapes. This was the source of all the coloring problems under
2117 Win32. I think that _finally_, Win32 users have a properly
2121 Win32. I think that _finally_, Win32 users have a properly
2118 working ipython in all respects. This would never have happened
2122 working ipython in all respects. This would never have happened
2119 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2123 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2120
2124
2121 2005-01-26 *** Released version 0.6.9
2125 2005-01-26 *** Released version 0.6.9
2122
2126
2123 2005-01-25 Fernando Perez <fperez@colorado.edu>
2127 2005-01-25 Fernando Perez <fperez@colorado.edu>
2124
2128
2125 * setup.py: finally, we have a true Windows installer, thanks to
2129 * setup.py: finally, we have a true Windows installer, thanks to
2126 the excellent work of Viktor Ransmayr
2130 the excellent work of Viktor Ransmayr
2127 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2131 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2128 Windows users. The setup routine is quite a bit cleaner thanks to
2132 Windows users. The setup routine is quite a bit cleaner thanks to
2129 this, and the post-install script uses the proper functions to
2133 this, and the post-install script uses the proper functions to
2130 allow a clean de-installation using the standard Windows Control
2134 allow a clean de-installation using the standard Windows Control
2131 Panel.
2135 Panel.
2132
2136
2133 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2137 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2134 environment variable under all OSes (including win32) if
2138 environment variable under all OSes (including win32) if
2135 available. This will give consistency to win32 users who have set
2139 available. This will give consistency to win32 users who have set
2136 this variable for any reason. If os.environ['HOME'] fails, the
2140 this variable for any reason. If os.environ['HOME'] fails, the
2137 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2141 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2138
2142
2139 2005-01-24 Fernando Perez <fperez@colorado.edu>
2143 2005-01-24 Fernando Perez <fperez@colorado.edu>
2140
2144
2141 * IPython/numutils.py (empty_like): add empty_like(), similar to
2145 * IPython/numutils.py (empty_like): add empty_like(), similar to
2142 zeros_like() but taking advantage of the new empty() Numeric routine.
2146 zeros_like() but taking advantage of the new empty() Numeric routine.
2143
2147
2144 2005-01-23 *** Released version 0.6.8
2148 2005-01-23 *** Released version 0.6.8
2145
2149
2146 2005-01-22 Fernando Perez <fperez@colorado.edu>
2150 2005-01-22 Fernando Perez <fperez@colorado.edu>
2147
2151
2148 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2152 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2149 automatic show() calls. After discussing things with JDH, it
2153 automatic show() calls. After discussing things with JDH, it
2150 turns out there are too many corner cases where this can go wrong.
2154 turns out there are too many corner cases where this can go wrong.
2151 It's best not to try to be 'too smart', and simply have ipython
2155 It's best not to try to be 'too smart', and simply have ipython
2152 reproduce as much as possible the default behavior of a normal
2156 reproduce as much as possible the default behavior of a normal
2153 python shell.
2157 python shell.
2154
2158
2155 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2159 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2156 line-splitting regexp and _prefilter() to avoid calling getattr()
2160 line-splitting regexp and _prefilter() to avoid calling getattr()
2157 on assignments. This closes
2161 on assignments. This closes
2158 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2162 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2159 readline uses getattr(), so a simple <TAB> keypress is still
2163 readline uses getattr(), so a simple <TAB> keypress is still
2160 enough to trigger getattr() calls on an object.
2164 enough to trigger getattr() calls on an object.
2161
2165
2162 2005-01-21 Fernando Perez <fperez@colorado.edu>
2166 2005-01-21 Fernando Perez <fperez@colorado.edu>
2163
2167
2164 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2168 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2165 docstring under pylab so it doesn't mask the original.
2169 docstring under pylab so it doesn't mask the original.
2166
2170
2167 2005-01-21 *** Released version 0.6.7
2171 2005-01-21 *** Released version 0.6.7
2168
2172
2169 2005-01-21 Fernando Perez <fperez@colorado.edu>
2173 2005-01-21 Fernando Perez <fperez@colorado.edu>
2170
2174
2171 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2175 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2172 signal handling for win32 users in multithreaded mode.
2176 signal handling for win32 users in multithreaded mode.
2173
2177
2174 2005-01-17 Fernando Perez <fperez@colorado.edu>
2178 2005-01-17 Fernando Perez <fperez@colorado.edu>
2175
2179
2176 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2180 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2177 instances with no __init__. After a crash report by Norbert Nemec
2181 instances with no __init__. After a crash report by Norbert Nemec
2178 <Norbert-AT-nemec-online.de>.
2182 <Norbert-AT-nemec-online.de>.
2179
2183
2180 2005-01-14 Fernando Perez <fperez@colorado.edu>
2184 2005-01-14 Fernando Perez <fperez@colorado.edu>
2181
2185
2182 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2186 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2183 names for verbose exceptions, when multiple dotted names and the
2187 names for verbose exceptions, when multiple dotted names and the
2184 'parent' object were present on the same line.
2188 'parent' object were present on the same line.
2185
2189
2186 2005-01-11 Fernando Perez <fperez@colorado.edu>
2190 2005-01-11 Fernando Perez <fperez@colorado.edu>
2187
2191
2188 * IPython/genutils.py (flag_calls): new utility to trap and flag
2192 * IPython/genutils.py (flag_calls): new utility to trap and flag
2189 calls in functions. I need it to clean up matplotlib support.
2193 calls in functions. I need it to clean up matplotlib support.
2190 Also removed some deprecated code in genutils.
2194 Also removed some deprecated code in genutils.
2191
2195
2192 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2196 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2193 that matplotlib scripts called with %run, which don't call show()
2197 that matplotlib scripts called with %run, which don't call show()
2194 themselves, still have their plotting windows open.
2198 themselves, still have their plotting windows open.
2195
2199
2196 2005-01-05 Fernando Perez <fperez@colorado.edu>
2200 2005-01-05 Fernando Perez <fperez@colorado.edu>
2197
2201
2198 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2202 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2199 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2203 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2200
2204
2201 2004-12-19 Fernando Perez <fperez@colorado.edu>
2205 2004-12-19 Fernando Perez <fperez@colorado.edu>
2202
2206
2203 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2207 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2204 parent_runcode, which was an eyesore. The same result can be
2208 parent_runcode, which was an eyesore. The same result can be
2205 obtained with Python's regular superclass mechanisms.
2209 obtained with Python's regular superclass mechanisms.
2206
2210
2207 2004-12-17 Fernando Perez <fperez@colorado.edu>
2211 2004-12-17 Fernando Perez <fperez@colorado.edu>
2208
2212
2209 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2213 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2210 reported by Prabhu.
2214 reported by Prabhu.
2211 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2215 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2212 sys.stderr) instead of explicitly calling sys.stderr. This helps
2216 sys.stderr) instead of explicitly calling sys.stderr. This helps
2213 maintain our I/O abstractions clean, for future GUI embeddings.
2217 maintain our I/O abstractions clean, for future GUI embeddings.
2214
2218
2215 * IPython/genutils.py (info): added new utility for sys.stderr
2219 * IPython/genutils.py (info): added new utility for sys.stderr
2216 unified info message handling (thin wrapper around warn()).
2220 unified info message handling (thin wrapper around warn()).
2217
2221
2218 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2222 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2219 composite (dotted) names on verbose exceptions.
2223 composite (dotted) names on verbose exceptions.
2220 (VerboseTB.nullrepr): harden against another kind of errors which
2224 (VerboseTB.nullrepr): harden against another kind of errors which
2221 Python's inspect module can trigger, and which were crashing
2225 Python's inspect module can trigger, and which were crashing
2222 IPython. Thanks to a report by Marco Lombardi
2226 IPython. Thanks to a report by Marco Lombardi
2223 <mlombard-AT-ma010192.hq.eso.org>.
2227 <mlombard-AT-ma010192.hq.eso.org>.
2224
2228
2225 2004-12-13 *** Released version 0.6.6
2229 2004-12-13 *** Released version 0.6.6
2226
2230
2227 2004-12-12 Fernando Perez <fperez@colorado.edu>
2231 2004-12-12 Fernando Perez <fperez@colorado.edu>
2228
2232
2229 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2233 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2230 generated by pygtk upon initialization if it was built without
2234 generated by pygtk upon initialization if it was built without
2231 threads (for matplotlib users). After a crash reported by
2235 threads (for matplotlib users). After a crash reported by
2232 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2236 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2233
2237
2234 * IPython/ipmaker.py (make_IPython): fix small bug in the
2238 * IPython/ipmaker.py (make_IPython): fix small bug in the
2235 import_some parameter for multiple imports.
2239 import_some parameter for multiple imports.
2236
2240
2237 * IPython/iplib.py (ipmagic): simplified the interface of
2241 * IPython/iplib.py (ipmagic): simplified the interface of
2238 ipmagic() to take a single string argument, just as it would be
2242 ipmagic() to take a single string argument, just as it would be
2239 typed at the IPython cmd line.
2243 typed at the IPython cmd line.
2240 (ipalias): Added new ipalias() with an interface identical to
2244 (ipalias): Added new ipalias() with an interface identical to
2241 ipmagic(). This completes exposing a pure python interface to the
2245 ipmagic(). This completes exposing a pure python interface to the
2242 alias and magic system, which can be used in loops or more complex
2246 alias and magic system, which can be used in loops or more complex
2243 code where IPython's automatic line mangling is not active.
2247 code where IPython's automatic line mangling is not active.
2244
2248
2245 * IPython/genutils.py (timing): changed interface of timing to
2249 * IPython/genutils.py (timing): changed interface of timing to
2246 simply run code once, which is the most common case. timings()
2250 simply run code once, which is the most common case. timings()
2247 remains unchanged, for the cases where you want multiple runs.
2251 remains unchanged, for the cases where you want multiple runs.
2248
2252
2249 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2253 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2250 bug where Python2.2 crashes with exec'ing code which does not end
2254 bug where Python2.2 crashes with exec'ing code which does not end
2251 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2255 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2252 before.
2256 before.
2253
2257
2254 2004-12-10 Fernando Perez <fperez@colorado.edu>
2258 2004-12-10 Fernando Perez <fperez@colorado.edu>
2255
2259
2256 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2260 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2257 -t to -T, to accomodate the new -t flag in %run (the %run and
2261 -t to -T, to accomodate the new -t flag in %run (the %run and
2258 %prun options are kind of intermixed, and it's not easy to change
2262 %prun options are kind of intermixed, and it's not easy to change
2259 this with the limitations of python's getopt).
2263 this with the limitations of python's getopt).
2260
2264
2261 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2265 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2262 the execution of scripts. It's not as fine-tuned as timeit.py,
2266 the execution of scripts. It's not as fine-tuned as timeit.py,
2263 but it works from inside ipython (and under 2.2, which lacks
2267 but it works from inside ipython (and under 2.2, which lacks
2264 timeit.py). Optionally a number of runs > 1 can be given for
2268 timeit.py). Optionally a number of runs > 1 can be given for
2265 timing very short-running code.
2269 timing very short-running code.
2266
2270
2267 * IPython/genutils.py (uniq_stable): new routine which returns a
2271 * IPython/genutils.py (uniq_stable): new routine which returns a
2268 list of unique elements in any iterable, but in stable order of
2272 list of unique elements in any iterable, but in stable order of
2269 appearance. I needed this for the ultraTB fixes, and it's a handy
2273 appearance. I needed this for the ultraTB fixes, and it's a handy
2270 utility.
2274 utility.
2271
2275
2272 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2276 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2273 dotted names in Verbose exceptions. This had been broken since
2277 dotted names in Verbose exceptions. This had been broken since
2274 the very start, now x.y will properly be printed in a Verbose
2278 the very start, now x.y will properly be printed in a Verbose
2275 traceback, instead of x being shown and y appearing always as an
2279 traceback, instead of x being shown and y appearing always as an
2276 'undefined global'. Getting this to work was a bit tricky,
2280 'undefined global'. Getting this to work was a bit tricky,
2277 because by default python tokenizers are stateless. Saved by
2281 because by default python tokenizers are stateless. Saved by
2278 python's ability to easily add a bit of state to an arbitrary
2282 python's ability to easily add a bit of state to an arbitrary
2279 function (without needing to build a full-blown callable object).
2283 function (without needing to build a full-blown callable object).
2280
2284
2281 Also big cleanup of this code, which had horrendous runtime
2285 Also big cleanup of this code, which had horrendous runtime
2282 lookups of zillions of attributes for colorization. Moved all
2286 lookups of zillions of attributes for colorization. Moved all
2283 this code into a few templates, which make it cleaner and quicker.
2287 this code into a few templates, which make it cleaner and quicker.
2284
2288
2285 Printout quality was also improved for Verbose exceptions: one
2289 Printout quality was also improved for Verbose exceptions: one
2286 variable per line, and memory addresses are printed (this can be
2290 variable per line, and memory addresses are printed (this can be
2287 quite handy in nasty debugging situations, which is what Verbose
2291 quite handy in nasty debugging situations, which is what Verbose
2288 is for).
2292 is for).
2289
2293
2290 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2294 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2291 the command line as scripts to be loaded by embedded instances.
2295 the command line as scripts to be loaded by embedded instances.
2292 Doing so has the potential for an infinite recursion if there are
2296 Doing so has the potential for an infinite recursion if there are
2293 exceptions thrown in the process. This fixes a strange crash
2297 exceptions thrown in the process. This fixes a strange crash
2294 reported by Philippe MULLER <muller-AT-irit.fr>.
2298 reported by Philippe MULLER <muller-AT-irit.fr>.
2295
2299
2296 2004-12-09 Fernando Perez <fperez@colorado.edu>
2300 2004-12-09 Fernando Perez <fperez@colorado.edu>
2297
2301
2298 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2302 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2299 to reflect new names in matplotlib, which now expose the
2303 to reflect new names in matplotlib, which now expose the
2300 matlab-compatible interface via a pylab module instead of the
2304 matlab-compatible interface via a pylab module instead of the
2301 'matlab' name. The new code is backwards compatible, so users of
2305 'matlab' name. The new code is backwards compatible, so users of
2302 all matplotlib versions are OK. Patch by J. Hunter.
2306 all matplotlib versions are OK. Patch by J. Hunter.
2303
2307
2304 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2308 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2305 of __init__ docstrings for instances (class docstrings are already
2309 of __init__ docstrings for instances (class docstrings are already
2306 automatically printed). Instances with customized docstrings
2310 automatically printed). Instances with customized docstrings
2307 (indep. of the class) are also recognized and all 3 separate
2311 (indep. of the class) are also recognized and all 3 separate
2308 docstrings are printed (instance, class, constructor). After some
2312 docstrings are printed (instance, class, constructor). After some
2309 comments/suggestions by J. Hunter.
2313 comments/suggestions by J. Hunter.
2310
2314
2311 2004-12-05 Fernando Perez <fperez@colorado.edu>
2315 2004-12-05 Fernando Perez <fperez@colorado.edu>
2312
2316
2313 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2317 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2314 warnings when tab-completion fails and triggers an exception.
2318 warnings when tab-completion fails and triggers an exception.
2315
2319
2316 2004-12-03 Fernando Perez <fperez@colorado.edu>
2320 2004-12-03 Fernando Perez <fperez@colorado.edu>
2317
2321
2318 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2322 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2319 be triggered when using 'run -p'. An incorrect option flag was
2323 be triggered when using 'run -p'. An incorrect option flag was
2320 being set ('d' instead of 'D').
2324 being set ('d' instead of 'D').
2321 (manpage): fix missing escaped \- sign.
2325 (manpage): fix missing escaped \- sign.
2322
2326
2323 2004-11-30 *** Released version 0.6.5
2327 2004-11-30 *** Released version 0.6.5
2324
2328
2325 2004-11-30 Fernando Perez <fperez@colorado.edu>
2329 2004-11-30 Fernando Perez <fperez@colorado.edu>
2326
2330
2327 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2331 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2328 setting with -d option.
2332 setting with -d option.
2329
2333
2330 * setup.py (docfiles): Fix problem where the doc glob I was using
2334 * setup.py (docfiles): Fix problem where the doc glob I was using
2331 was COMPLETELY BROKEN. It was giving the right files by pure
2335 was COMPLETELY BROKEN. It was giving the right files by pure
2332 accident, but failed once I tried to include ipython.el. Note:
2336 accident, but failed once I tried to include ipython.el. Note:
2333 glob() does NOT allow you to do exclusion on multiple endings!
2337 glob() does NOT allow you to do exclusion on multiple endings!
2334
2338
2335 2004-11-29 Fernando Perez <fperez@colorado.edu>
2339 2004-11-29 Fernando Perez <fperez@colorado.edu>
2336
2340
2337 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2341 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2338 the manpage as the source. Better formatting & consistency.
2342 the manpage as the source. Better formatting & consistency.
2339
2343
2340 * IPython/Magic.py (magic_run): Added new -d option, to run
2344 * IPython/Magic.py (magic_run): Added new -d option, to run
2341 scripts under the control of the python pdb debugger. Note that
2345 scripts under the control of the python pdb debugger. Note that
2342 this required changing the %prun option -d to -D, to avoid a clash
2346 this required changing the %prun option -d to -D, to avoid a clash
2343 (since %run must pass options to %prun, and getopt is too dumb to
2347 (since %run must pass options to %prun, and getopt is too dumb to
2344 handle options with string values with embedded spaces). Thanks
2348 handle options with string values with embedded spaces). Thanks
2345 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2349 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2346 (magic_who_ls): added type matching to %who and %whos, so that one
2350 (magic_who_ls): added type matching to %who and %whos, so that one
2347 can filter their output to only include variables of certain
2351 can filter their output to only include variables of certain
2348 types. Another suggestion by Matthew.
2352 types. Another suggestion by Matthew.
2349 (magic_whos): Added memory summaries in kb and Mb for arrays.
2353 (magic_whos): Added memory summaries in kb and Mb for arrays.
2350 (magic_who): Improve formatting (break lines every 9 vars).
2354 (magic_who): Improve formatting (break lines every 9 vars).
2351
2355
2352 2004-11-28 Fernando Perez <fperez@colorado.edu>
2356 2004-11-28 Fernando Perez <fperez@colorado.edu>
2353
2357
2354 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2358 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2355 cache when empty lines were present.
2359 cache when empty lines were present.
2356
2360
2357 2004-11-24 Fernando Perez <fperez@colorado.edu>
2361 2004-11-24 Fernando Perez <fperez@colorado.edu>
2358
2362
2359 * IPython/usage.py (__doc__): document the re-activated threading
2363 * IPython/usage.py (__doc__): document the re-activated threading
2360 options for WX and GTK.
2364 options for WX and GTK.
2361
2365
2362 2004-11-23 Fernando Perez <fperez@colorado.edu>
2366 2004-11-23 Fernando Perez <fperez@colorado.edu>
2363
2367
2364 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2368 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2365 the -wthread and -gthread options, along with a new -tk one to try
2369 the -wthread and -gthread options, along with a new -tk one to try
2366 and coordinate Tk threading with wx/gtk. The tk support is very
2370 and coordinate Tk threading with wx/gtk. The tk support is very
2367 platform dependent, since it seems to require Tcl and Tk to be
2371 platform dependent, since it seems to require Tcl and Tk to be
2368 built with threads (Fedora1/2 appears NOT to have it, but in
2372 built with threads (Fedora1/2 appears NOT to have it, but in
2369 Prabhu's Debian boxes it works OK). But even with some Tk
2373 Prabhu's Debian boxes it works OK). But even with some Tk
2370 limitations, this is a great improvement.
2374 limitations, this is a great improvement.
2371
2375
2372 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2376 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2373 info in user prompts. Patch by Prabhu.
2377 info in user prompts. Patch by Prabhu.
2374
2378
2375 2004-11-18 Fernando Perez <fperez@colorado.edu>
2379 2004-11-18 Fernando Perez <fperez@colorado.edu>
2376
2380
2377 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2381 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2378 EOFErrors and bail, to avoid infinite loops if a non-terminating
2382 EOFErrors and bail, to avoid infinite loops if a non-terminating
2379 file is fed into ipython. Patch submitted in issue 19 by user,
2383 file is fed into ipython. Patch submitted in issue 19 by user,
2380 many thanks.
2384 many thanks.
2381
2385
2382 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2386 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2383 autoquote/parens in continuation prompts, which can cause lots of
2387 autoquote/parens in continuation prompts, which can cause lots of
2384 problems. Closes roundup issue 20.
2388 problems. Closes roundup issue 20.
2385
2389
2386 2004-11-17 Fernando Perez <fperez@colorado.edu>
2390 2004-11-17 Fernando Perez <fperez@colorado.edu>
2387
2391
2388 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2392 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2389 reported as debian bug #280505. I'm not sure my local changelog
2393 reported as debian bug #280505. I'm not sure my local changelog
2390 entry has the proper debian format (Jack?).
2394 entry has the proper debian format (Jack?).
2391
2395
2392 2004-11-08 *** Released version 0.6.4
2396 2004-11-08 *** Released version 0.6.4
2393
2397
2394 2004-11-08 Fernando Perez <fperez@colorado.edu>
2398 2004-11-08 Fernando Perez <fperez@colorado.edu>
2395
2399
2396 * IPython/iplib.py (init_readline): Fix exit message for Windows
2400 * IPython/iplib.py (init_readline): Fix exit message for Windows
2397 when readline is active. Thanks to a report by Eric Jones
2401 when readline is active. Thanks to a report by Eric Jones
2398 <eric-AT-enthought.com>.
2402 <eric-AT-enthought.com>.
2399
2403
2400 2004-11-07 Fernando Perez <fperez@colorado.edu>
2404 2004-11-07 Fernando Perez <fperez@colorado.edu>
2401
2405
2402 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2406 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2403 sometimes seen by win2k/cygwin users.
2407 sometimes seen by win2k/cygwin users.
2404
2408
2405 2004-11-06 Fernando Perez <fperez@colorado.edu>
2409 2004-11-06 Fernando Perez <fperez@colorado.edu>
2406
2410
2407 * IPython/iplib.py (interact): Change the handling of %Exit from
2411 * IPython/iplib.py (interact): Change the handling of %Exit from
2408 trying to propagate a SystemExit to an internal ipython flag.
2412 trying to propagate a SystemExit to an internal ipython flag.
2409 This is less elegant than using Python's exception mechanism, but
2413 This is less elegant than using Python's exception mechanism, but
2410 I can't get that to work reliably with threads, so under -pylab
2414 I can't get that to work reliably with threads, so under -pylab
2411 %Exit was hanging IPython. Cross-thread exception handling is
2415 %Exit was hanging IPython. Cross-thread exception handling is
2412 really a bitch. Thaks to a bug report by Stephen Walton
2416 really a bitch. Thaks to a bug report by Stephen Walton
2413 <stephen.walton-AT-csun.edu>.
2417 <stephen.walton-AT-csun.edu>.
2414
2418
2415 2004-11-04 Fernando Perez <fperez@colorado.edu>
2419 2004-11-04 Fernando Perez <fperez@colorado.edu>
2416
2420
2417 * IPython/iplib.py (raw_input_original): store a pointer to the
2421 * IPython/iplib.py (raw_input_original): store a pointer to the
2418 true raw_input to harden against code which can modify it
2422 true raw_input to harden against code which can modify it
2419 (wx.py.PyShell does this and would otherwise crash ipython).
2423 (wx.py.PyShell does this and would otherwise crash ipython).
2420 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2424 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2421
2425
2422 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2426 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2423 Ctrl-C problem, which does not mess up the input line.
2427 Ctrl-C problem, which does not mess up the input line.
2424
2428
2425 2004-11-03 Fernando Perez <fperez@colorado.edu>
2429 2004-11-03 Fernando Perez <fperez@colorado.edu>
2426
2430
2427 * IPython/Release.py: Changed licensing to BSD, in all files.
2431 * IPython/Release.py: Changed licensing to BSD, in all files.
2428 (name): lowercase name for tarball/RPM release.
2432 (name): lowercase name for tarball/RPM release.
2429
2433
2430 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2434 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2431 use throughout ipython.
2435 use throughout ipython.
2432
2436
2433 * IPython/Magic.py (Magic._ofind): Switch to using the new
2437 * IPython/Magic.py (Magic._ofind): Switch to using the new
2434 OInspect.getdoc() function.
2438 OInspect.getdoc() function.
2435
2439
2436 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2440 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2437 of the line currently being canceled via Ctrl-C. It's extremely
2441 of the line currently being canceled via Ctrl-C. It's extremely
2438 ugly, but I don't know how to do it better (the problem is one of
2442 ugly, but I don't know how to do it better (the problem is one of
2439 handling cross-thread exceptions).
2443 handling cross-thread exceptions).
2440
2444
2441 2004-10-28 Fernando Perez <fperez@colorado.edu>
2445 2004-10-28 Fernando Perez <fperez@colorado.edu>
2442
2446
2443 * IPython/Shell.py (signal_handler): add signal handlers to trap
2447 * IPython/Shell.py (signal_handler): add signal handlers to trap
2444 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2448 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2445 report by Francesc Alted.
2449 report by Francesc Alted.
2446
2450
2447 2004-10-21 Fernando Perez <fperez@colorado.edu>
2451 2004-10-21 Fernando Perez <fperez@colorado.edu>
2448
2452
2449 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2453 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2450 to % for pysh syntax extensions.
2454 to % for pysh syntax extensions.
2451
2455
2452 2004-10-09 Fernando Perez <fperez@colorado.edu>
2456 2004-10-09 Fernando Perez <fperez@colorado.edu>
2453
2457
2454 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2458 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2455 arrays to print a more useful summary, without calling str(arr).
2459 arrays to print a more useful summary, without calling str(arr).
2456 This avoids the problem of extremely lengthy computations which
2460 This avoids the problem of extremely lengthy computations which
2457 occur if arr is large, and appear to the user as a system lockup
2461 occur if arr is large, and appear to the user as a system lockup
2458 with 100% cpu activity. After a suggestion by Kristian Sandberg
2462 with 100% cpu activity. After a suggestion by Kristian Sandberg
2459 <Kristian.Sandberg@colorado.edu>.
2463 <Kristian.Sandberg@colorado.edu>.
2460 (Magic.__init__): fix bug in global magic escapes not being
2464 (Magic.__init__): fix bug in global magic escapes not being
2461 correctly set.
2465 correctly set.
2462
2466
2463 2004-10-08 Fernando Perez <fperez@colorado.edu>
2467 2004-10-08 Fernando Perez <fperez@colorado.edu>
2464
2468
2465 * IPython/Magic.py (__license__): change to absolute imports of
2469 * IPython/Magic.py (__license__): change to absolute imports of
2466 ipython's own internal packages, to start adapting to the absolute
2470 ipython's own internal packages, to start adapting to the absolute
2467 import requirement of PEP-328.
2471 import requirement of PEP-328.
2468
2472
2469 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2473 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2470 files, and standardize author/license marks through the Release
2474 files, and standardize author/license marks through the Release
2471 module instead of having per/file stuff (except for files with
2475 module instead of having per/file stuff (except for files with
2472 particular licenses, like the MIT/PSF-licensed codes).
2476 particular licenses, like the MIT/PSF-licensed codes).
2473
2477
2474 * IPython/Debugger.py: remove dead code for python 2.1
2478 * IPython/Debugger.py: remove dead code for python 2.1
2475
2479
2476 2004-10-04 Fernando Perez <fperez@colorado.edu>
2480 2004-10-04 Fernando Perez <fperez@colorado.edu>
2477
2481
2478 * IPython/iplib.py (ipmagic): New function for accessing magics
2482 * IPython/iplib.py (ipmagic): New function for accessing magics
2479 via a normal python function call.
2483 via a normal python function call.
2480
2484
2481 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2485 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2482 from '@' to '%', to accomodate the new @decorator syntax of python
2486 from '@' to '%', to accomodate the new @decorator syntax of python
2483 2.4.
2487 2.4.
2484
2488
2485 2004-09-29 Fernando Perez <fperez@colorado.edu>
2489 2004-09-29 Fernando Perez <fperez@colorado.edu>
2486
2490
2487 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2491 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2488 matplotlib.use to prevent running scripts which try to switch
2492 matplotlib.use to prevent running scripts which try to switch
2489 interactive backends from within ipython. This will just crash
2493 interactive backends from within ipython. This will just crash
2490 the python interpreter, so we can't allow it (but a detailed error
2494 the python interpreter, so we can't allow it (but a detailed error
2491 is given to the user).
2495 is given to the user).
2492
2496
2493 2004-09-28 Fernando Perez <fperez@colorado.edu>
2497 2004-09-28 Fernando Perez <fperez@colorado.edu>
2494
2498
2495 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2499 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2496 matplotlib-related fixes so that using @run with non-matplotlib
2500 matplotlib-related fixes so that using @run with non-matplotlib
2497 scripts doesn't pop up spurious plot windows. This requires
2501 scripts doesn't pop up spurious plot windows. This requires
2498 matplotlib >= 0.63, where I had to make some changes as well.
2502 matplotlib >= 0.63, where I had to make some changes as well.
2499
2503
2500 * IPython/ipmaker.py (make_IPython): update version requirement to
2504 * IPython/ipmaker.py (make_IPython): update version requirement to
2501 python 2.2.
2505 python 2.2.
2502
2506
2503 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2507 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2504 banner arg for embedded customization.
2508 banner arg for embedded customization.
2505
2509
2506 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2510 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2507 explicit uses of __IP as the IPython's instance name. Now things
2511 explicit uses of __IP as the IPython's instance name. Now things
2508 are properly handled via the shell.name value. The actual code
2512 are properly handled via the shell.name value. The actual code
2509 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2513 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2510 is much better than before. I'll clean things completely when the
2514 is much better than before. I'll clean things completely when the
2511 magic stuff gets a real overhaul.
2515 magic stuff gets a real overhaul.
2512
2516
2513 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2517 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2514 minor changes to debian dir.
2518 minor changes to debian dir.
2515
2519
2516 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2520 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2517 pointer to the shell itself in the interactive namespace even when
2521 pointer to the shell itself in the interactive namespace even when
2518 a user-supplied dict is provided. This is needed for embedding
2522 a user-supplied dict is provided. This is needed for embedding
2519 purposes (found by tests with Michel Sanner).
2523 purposes (found by tests with Michel Sanner).
2520
2524
2521 2004-09-27 Fernando Perez <fperez@colorado.edu>
2525 2004-09-27 Fernando Perez <fperez@colorado.edu>
2522
2526
2523 * IPython/UserConfig/ipythonrc: remove []{} from
2527 * IPython/UserConfig/ipythonrc: remove []{} from
2524 readline_remove_delims, so that things like [modname.<TAB> do
2528 readline_remove_delims, so that things like [modname.<TAB> do
2525 proper completion. This disables [].TAB, but that's a less common
2529 proper completion. This disables [].TAB, but that's a less common
2526 case than module names in list comprehensions, for example.
2530 case than module names in list comprehensions, for example.
2527 Thanks to a report by Andrea Riciputi.
2531 Thanks to a report by Andrea Riciputi.
2528
2532
2529 2004-09-09 Fernando Perez <fperez@colorado.edu>
2533 2004-09-09 Fernando Perez <fperez@colorado.edu>
2530
2534
2531 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2535 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2532 blocking problems in win32 and osx. Fix by John.
2536 blocking problems in win32 and osx. Fix by John.
2533
2537
2534 2004-09-08 Fernando Perez <fperez@colorado.edu>
2538 2004-09-08 Fernando Perez <fperez@colorado.edu>
2535
2539
2536 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2540 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2537 for Win32 and OSX. Fix by John Hunter.
2541 for Win32 and OSX. Fix by John Hunter.
2538
2542
2539 2004-08-30 *** Released version 0.6.3
2543 2004-08-30 *** Released version 0.6.3
2540
2544
2541 2004-08-30 Fernando Perez <fperez@colorado.edu>
2545 2004-08-30 Fernando Perez <fperez@colorado.edu>
2542
2546
2543 * setup.py (isfile): Add manpages to list of dependent files to be
2547 * setup.py (isfile): Add manpages to list of dependent files to be
2544 updated.
2548 updated.
2545
2549
2546 2004-08-27 Fernando Perez <fperez@colorado.edu>
2550 2004-08-27 Fernando Perez <fperez@colorado.edu>
2547
2551
2548 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2552 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2549 for now. They don't really work with standalone WX/GTK code
2553 for now. They don't really work with standalone WX/GTK code
2550 (though matplotlib IS working fine with both of those backends).
2554 (though matplotlib IS working fine with both of those backends).
2551 This will neeed much more testing. I disabled most things with
2555 This will neeed much more testing. I disabled most things with
2552 comments, so turning it back on later should be pretty easy.
2556 comments, so turning it back on later should be pretty easy.
2553
2557
2554 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2558 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2555 autocalling of expressions like r'foo', by modifying the line
2559 autocalling of expressions like r'foo', by modifying the line
2556 split regexp. Closes
2560 split regexp. Closes
2557 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2561 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2558 Riley <ipythonbugs-AT-sabi.net>.
2562 Riley <ipythonbugs-AT-sabi.net>.
2559 (InteractiveShell.mainloop): honor --nobanner with banner
2563 (InteractiveShell.mainloop): honor --nobanner with banner
2560 extensions.
2564 extensions.
2561
2565
2562 * IPython/Shell.py: Significant refactoring of all classes, so
2566 * IPython/Shell.py: Significant refactoring of all classes, so
2563 that we can really support ALL matplotlib backends and threading
2567 that we can really support ALL matplotlib backends and threading
2564 models (John spotted a bug with Tk which required this). Now we
2568 models (John spotted a bug with Tk which required this). Now we
2565 should support single-threaded, WX-threads and GTK-threads, both
2569 should support single-threaded, WX-threads and GTK-threads, both
2566 for generic code and for matplotlib.
2570 for generic code and for matplotlib.
2567
2571
2568 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2572 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2569 -pylab, to simplify things for users. Will also remove the pylab
2573 -pylab, to simplify things for users. Will also remove the pylab
2570 profile, since now all of matplotlib configuration is directly
2574 profile, since now all of matplotlib configuration is directly
2571 handled here. This also reduces startup time.
2575 handled here. This also reduces startup time.
2572
2576
2573 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2577 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2574 shell wasn't being correctly called. Also in IPShellWX.
2578 shell wasn't being correctly called. Also in IPShellWX.
2575
2579
2576 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2580 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2577 fine-tune banner.
2581 fine-tune banner.
2578
2582
2579 * IPython/numutils.py (spike): Deprecate these spike functions,
2583 * IPython/numutils.py (spike): Deprecate these spike functions,
2580 delete (long deprecated) gnuplot_exec handler.
2584 delete (long deprecated) gnuplot_exec handler.
2581
2585
2582 2004-08-26 Fernando Perez <fperez@colorado.edu>
2586 2004-08-26 Fernando Perez <fperez@colorado.edu>
2583
2587
2584 * ipython.1: Update for threading options, plus some others which
2588 * ipython.1: Update for threading options, plus some others which
2585 were missing.
2589 were missing.
2586
2590
2587 * IPython/ipmaker.py (__call__): Added -wthread option for
2591 * IPython/ipmaker.py (__call__): Added -wthread option for
2588 wxpython thread handling. Make sure threading options are only
2592 wxpython thread handling. Make sure threading options are only
2589 valid at the command line.
2593 valid at the command line.
2590
2594
2591 * scripts/ipython: moved shell selection into a factory function
2595 * scripts/ipython: moved shell selection into a factory function
2592 in Shell.py, to keep the starter script to a minimum.
2596 in Shell.py, to keep the starter script to a minimum.
2593
2597
2594 2004-08-25 Fernando Perez <fperez@colorado.edu>
2598 2004-08-25 Fernando Perez <fperez@colorado.edu>
2595
2599
2596 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2600 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2597 John. Along with some recent changes he made to matplotlib, the
2601 John. Along with some recent changes he made to matplotlib, the
2598 next versions of both systems should work very well together.
2602 next versions of both systems should work very well together.
2599
2603
2600 2004-08-24 Fernando Perez <fperez@colorado.edu>
2604 2004-08-24 Fernando Perez <fperez@colorado.edu>
2601
2605
2602 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2606 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2603 tried to switch the profiling to using hotshot, but I'm getting
2607 tried to switch the profiling to using hotshot, but I'm getting
2604 strange errors from prof.runctx() there. I may be misreading the
2608 strange errors from prof.runctx() there. I may be misreading the
2605 docs, but it looks weird. For now the profiling code will
2609 docs, but it looks weird. For now the profiling code will
2606 continue to use the standard profiler.
2610 continue to use the standard profiler.
2607
2611
2608 2004-08-23 Fernando Perez <fperez@colorado.edu>
2612 2004-08-23 Fernando Perez <fperez@colorado.edu>
2609
2613
2610 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2614 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2611 threaded shell, by John Hunter. It's not quite ready yet, but
2615 threaded shell, by John Hunter. It's not quite ready yet, but
2612 close.
2616 close.
2613
2617
2614 2004-08-22 Fernando Perez <fperez@colorado.edu>
2618 2004-08-22 Fernando Perez <fperez@colorado.edu>
2615
2619
2616 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2620 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2617 in Magic and ultraTB.
2621 in Magic and ultraTB.
2618
2622
2619 * ipython.1: document threading options in manpage.
2623 * ipython.1: document threading options in manpage.
2620
2624
2621 * scripts/ipython: Changed name of -thread option to -gthread,
2625 * scripts/ipython: Changed name of -thread option to -gthread,
2622 since this is GTK specific. I want to leave the door open for a
2626 since this is GTK specific. I want to leave the door open for a
2623 -wthread option for WX, which will most likely be necessary. This
2627 -wthread option for WX, which will most likely be necessary. This
2624 change affects usage and ipmaker as well.
2628 change affects usage and ipmaker as well.
2625
2629
2626 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2630 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2627 handle the matplotlib shell issues. Code by John Hunter
2631 handle the matplotlib shell issues. Code by John Hunter
2628 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2632 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2629 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2633 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2630 broken (and disabled for end users) for now, but it puts the
2634 broken (and disabled for end users) for now, but it puts the
2631 infrastructure in place.
2635 infrastructure in place.
2632
2636
2633 2004-08-21 Fernando Perez <fperez@colorado.edu>
2637 2004-08-21 Fernando Perez <fperez@colorado.edu>
2634
2638
2635 * ipythonrc-pylab: Add matplotlib support.
2639 * ipythonrc-pylab: Add matplotlib support.
2636
2640
2637 * matplotlib_config.py: new files for matplotlib support, part of
2641 * matplotlib_config.py: new files for matplotlib support, part of
2638 the pylab profile.
2642 the pylab profile.
2639
2643
2640 * IPython/usage.py (__doc__): documented the threading options.
2644 * IPython/usage.py (__doc__): documented the threading options.
2641
2645
2642 2004-08-20 Fernando Perez <fperez@colorado.edu>
2646 2004-08-20 Fernando Perez <fperez@colorado.edu>
2643
2647
2644 * ipython: Modified the main calling routine to handle the -thread
2648 * ipython: Modified the main calling routine to handle the -thread
2645 and -mpthread options. This needs to be done as a top-level hack,
2649 and -mpthread options. This needs to be done as a top-level hack,
2646 because it determines which class to instantiate for IPython
2650 because it determines which class to instantiate for IPython
2647 itself.
2651 itself.
2648
2652
2649 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2653 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2650 classes to support multithreaded GTK operation without blocking,
2654 classes to support multithreaded GTK operation without blocking,
2651 and matplotlib with all backends. This is a lot of still very
2655 and matplotlib with all backends. This is a lot of still very
2652 experimental code, and threads are tricky. So it may still have a
2656 experimental code, and threads are tricky. So it may still have a
2653 few rough edges... This code owes a lot to
2657 few rough edges... This code owes a lot to
2654 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2658 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2655 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2659 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2656 to John Hunter for all the matplotlib work.
2660 to John Hunter for all the matplotlib work.
2657
2661
2658 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2662 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2659 options for gtk thread and matplotlib support.
2663 options for gtk thread and matplotlib support.
2660
2664
2661 2004-08-16 Fernando Perez <fperez@colorado.edu>
2665 2004-08-16 Fernando Perez <fperez@colorado.edu>
2662
2666
2663 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2667 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2664 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2668 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2665 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2669 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2666
2670
2667 2004-08-11 Fernando Perez <fperez@colorado.edu>
2671 2004-08-11 Fernando Perez <fperez@colorado.edu>
2668
2672
2669 * setup.py (isfile): Fix build so documentation gets updated for
2673 * setup.py (isfile): Fix build so documentation gets updated for
2670 rpms (it was only done for .tgz builds).
2674 rpms (it was only done for .tgz builds).
2671
2675
2672 2004-08-10 Fernando Perez <fperez@colorado.edu>
2676 2004-08-10 Fernando Perez <fperez@colorado.edu>
2673
2677
2674 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2678 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2675
2679
2676 * iplib.py : Silence syntax error exceptions in tab-completion.
2680 * iplib.py : Silence syntax error exceptions in tab-completion.
2677
2681
2678 2004-08-05 Fernando Perez <fperez@colorado.edu>
2682 2004-08-05 Fernando Perez <fperez@colorado.edu>
2679
2683
2680 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2684 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2681 'color off' mark for continuation prompts. This was causing long
2685 'color off' mark for continuation prompts. This was causing long
2682 continuation lines to mis-wrap.
2686 continuation lines to mis-wrap.
2683
2687
2684 2004-08-01 Fernando Perez <fperez@colorado.edu>
2688 2004-08-01 Fernando Perez <fperez@colorado.edu>
2685
2689
2686 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2690 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2687 for building ipython to be a parameter. All this is necessary
2691 for building ipython to be a parameter. All this is necessary
2688 right now to have a multithreaded version, but this insane
2692 right now to have a multithreaded version, but this insane
2689 non-design will be cleaned up soon. For now, it's a hack that
2693 non-design will be cleaned up soon. For now, it's a hack that
2690 works.
2694 works.
2691
2695
2692 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2696 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2693 args in various places. No bugs so far, but it's a dangerous
2697 args in various places. No bugs so far, but it's a dangerous
2694 practice.
2698 practice.
2695
2699
2696 2004-07-31 Fernando Perez <fperez@colorado.edu>
2700 2004-07-31 Fernando Perez <fperez@colorado.edu>
2697
2701
2698 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2702 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2699 fix completion of files with dots in their names under most
2703 fix completion of files with dots in their names under most
2700 profiles (pysh was OK because the completion order is different).
2704 profiles (pysh was OK because the completion order is different).
2701
2705
2702 2004-07-27 Fernando Perez <fperez@colorado.edu>
2706 2004-07-27 Fernando Perez <fperez@colorado.edu>
2703
2707
2704 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2708 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2705 keywords manually, b/c the one in keyword.py was removed in python
2709 keywords manually, b/c the one in keyword.py was removed in python
2706 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2710 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2707 This is NOT a bug under python 2.3 and earlier.
2711 This is NOT a bug under python 2.3 and earlier.
2708
2712
2709 2004-07-26 Fernando Perez <fperez@colorado.edu>
2713 2004-07-26 Fernando Perez <fperez@colorado.edu>
2710
2714
2711 * IPython/ultraTB.py (VerboseTB.text): Add another
2715 * IPython/ultraTB.py (VerboseTB.text): Add another
2712 linecache.checkcache() call to try to prevent inspect.py from
2716 linecache.checkcache() call to try to prevent inspect.py from
2713 crashing under python 2.3. I think this fixes
2717 crashing under python 2.3. I think this fixes
2714 http://www.scipy.net/roundup/ipython/issue17.
2718 http://www.scipy.net/roundup/ipython/issue17.
2715
2719
2716 2004-07-26 *** Released version 0.6.2
2720 2004-07-26 *** Released version 0.6.2
2717
2721
2718 2004-07-26 Fernando Perez <fperez@colorado.edu>
2722 2004-07-26 Fernando Perez <fperez@colorado.edu>
2719
2723
2720 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2724 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2721 fail for any number.
2725 fail for any number.
2722 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2726 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2723 empty bookmarks.
2727 empty bookmarks.
2724
2728
2725 2004-07-26 *** Released version 0.6.1
2729 2004-07-26 *** Released version 0.6.1
2726
2730
2727 2004-07-26 Fernando Perez <fperez@colorado.edu>
2731 2004-07-26 Fernando Perez <fperez@colorado.edu>
2728
2732
2729 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2733 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2730
2734
2731 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2735 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2732 escaping '()[]{}' in filenames.
2736 escaping '()[]{}' in filenames.
2733
2737
2734 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2738 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2735 Python 2.2 users who lack a proper shlex.split.
2739 Python 2.2 users who lack a proper shlex.split.
2736
2740
2737 2004-07-19 Fernando Perez <fperez@colorado.edu>
2741 2004-07-19 Fernando Perez <fperez@colorado.edu>
2738
2742
2739 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2743 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2740 for reading readline's init file. I follow the normal chain:
2744 for reading readline's init file. I follow the normal chain:
2741 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2745 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2742 report by Mike Heeter. This closes
2746 report by Mike Heeter. This closes
2743 http://www.scipy.net/roundup/ipython/issue16.
2747 http://www.scipy.net/roundup/ipython/issue16.
2744
2748
2745 2004-07-18 Fernando Perez <fperez@colorado.edu>
2749 2004-07-18 Fernando Perez <fperez@colorado.edu>
2746
2750
2747 * IPython/iplib.py (__init__): Add better handling of '\' under
2751 * IPython/iplib.py (__init__): Add better handling of '\' under
2748 Win32 for filenames. After a patch by Ville.
2752 Win32 for filenames. After a patch by Ville.
2749
2753
2750 2004-07-17 Fernando Perez <fperez@colorado.edu>
2754 2004-07-17 Fernando Perez <fperez@colorado.edu>
2751
2755
2752 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2756 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2753 autocalling would be triggered for 'foo is bar' if foo is
2757 autocalling would be triggered for 'foo is bar' if foo is
2754 callable. I also cleaned up the autocall detection code to use a
2758 callable. I also cleaned up the autocall detection code to use a
2755 regexp, which is faster. Bug reported by Alexander Schmolck.
2759 regexp, which is faster. Bug reported by Alexander Schmolck.
2756
2760
2757 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2761 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2758 '?' in them would confuse the help system. Reported by Alex
2762 '?' in them would confuse the help system. Reported by Alex
2759 Schmolck.
2763 Schmolck.
2760
2764
2761 2004-07-16 Fernando Perez <fperez@colorado.edu>
2765 2004-07-16 Fernando Perez <fperez@colorado.edu>
2762
2766
2763 * IPython/GnuplotInteractive.py (__all__): added plot2.
2767 * IPython/GnuplotInteractive.py (__all__): added plot2.
2764
2768
2765 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2769 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2766 plotting dictionaries, lists or tuples of 1d arrays.
2770 plotting dictionaries, lists or tuples of 1d arrays.
2767
2771
2768 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2772 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2769 optimizations.
2773 optimizations.
2770
2774
2771 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2775 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2772 the information which was there from Janko's original IPP code:
2776 the information which was there from Janko's original IPP code:
2773
2777
2774 03.05.99 20:53 porto.ifm.uni-kiel.de
2778 03.05.99 20:53 porto.ifm.uni-kiel.de
2775 --Started changelog.
2779 --Started changelog.
2776 --make clear do what it say it does
2780 --make clear do what it say it does
2777 --added pretty output of lines from inputcache
2781 --added pretty output of lines from inputcache
2778 --Made Logger a mixin class, simplifies handling of switches
2782 --Made Logger a mixin class, simplifies handling of switches
2779 --Added own completer class. .string<TAB> expands to last history
2783 --Added own completer class. .string<TAB> expands to last history
2780 line which starts with string. The new expansion is also present
2784 line which starts with string. The new expansion is also present
2781 with Ctrl-r from the readline library. But this shows, who this
2785 with Ctrl-r from the readline library. But this shows, who this
2782 can be done for other cases.
2786 can be done for other cases.
2783 --Added convention that all shell functions should accept a
2787 --Added convention that all shell functions should accept a
2784 parameter_string This opens the door for different behaviour for
2788 parameter_string This opens the door for different behaviour for
2785 each function. @cd is a good example of this.
2789 each function. @cd is a good example of this.
2786
2790
2787 04.05.99 12:12 porto.ifm.uni-kiel.de
2791 04.05.99 12:12 porto.ifm.uni-kiel.de
2788 --added logfile rotation
2792 --added logfile rotation
2789 --added new mainloop method which freezes first the namespace
2793 --added new mainloop method which freezes first the namespace
2790
2794
2791 07.05.99 21:24 porto.ifm.uni-kiel.de
2795 07.05.99 21:24 porto.ifm.uni-kiel.de
2792 --added the docreader classes. Now there is a help system.
2796 --added the docreader classes. Now there is a help system.
2793 -This is only a first try. Currently it's not easy to put new
2797 -This is only a first try. Currently it's not easy to put new
2794 stuff in the indices. But this is the way to go. Info would be
2798 stuff in the indices. But this is the way to go. Info would be
2795 better, but HTML is every where and not everybody has an info
2799 better, but HTML is every where and not everybody has an info
2796 system installed and it's not so easy to change html-docs to info.
2800 system installed and it's not so easy to change html-docs to info.
2797 --added global logfile option
2801 --added global logfile option
2798 --there is now a hook for object inspection method pinfo needs to
2802 --there is now a hook for object inspection method pinfo needs to
2799 be provided for this. Can be reached by two '??'.
2803 be provided for this. Can be reached by two '??'.
2800
2804
2801 08.05.99 20:51 porto.ifm.uni-kiel.de
2805 08.05.99 20:51 porto.ifm.uni-kiel.de
2802 --added a README
2806 --added a README
2803 --bug in rc file. Something has changed so functions in the rc
2807 --bug in rc file. Something has changed so functions in the rc
2804 file need to reference the shell and not self. Not clear if it's a
2808 file need to reference the shell and not self. Not clear if it's a
2805 bug or feature.
2809 bug or feature.
2806 --changed rc file for new behavior
2810 --changed rc file for new behavior
2807
2811
2808 2004-07-15 Fernando Perez <fperez@colorado.edu>
2812 2004-07-15 Fernando Perez <fperez@colorado.edu>
2809
2813
2810 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2814 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2811 cache was falling out of sync in bizarre manners when multi-line
2815 cache was falling out of sync in bizarre manners when multi-line
2812 input was present. Minor optimizations and cleanup.
2816 input was present. Minor optimizations and cleanup.
2813
2817
2814 (Logger): Remove old Changelog info for cleanup. This is the
2818 (Logger): Remove old Changelog info for cleanup. This is the
2815 information which was there from Janko's original code:
2819 information which was there from Janko's original code:
2816
2820
2817 Changes to Logger: - made the default log filename a parameter
2821 Changes to Logger: - made the default log filename a parameter
2818
2822
2819 - put a check for lines beginning with !@? in log(). Needed
2823 - put a check for lines beginning with !@? in log(). Needed
2820 (even if the handlers properly log their lines) for mid-session
2824 (even if the handlers properly log their lines) for mid-session
2821 logging activation to work properly. Without this, lines logged
2825 logging activation to work properly. Without this, lines logged
2822 in mid session, which get read from the cache, would end up
2826 in mid session, which get read from the cache, would end up
2823 'bare' (with !@? in the open) in the log. Now they are caught
2827 'bare' (with !@? in the open) in the log. Now they are caught
2824 and prepended with a #.
2828 and prepended with a #.
2825
2829
2826 * IPython/iplib.py (InteractiveShell.init_readline): added check
2830 * IPython/iplib.py (InteractiveShell.init_readline): added check
2827 in case MagicCompleter fails to be defined, so we don't crash.
2831 in case MagicCompleter fails to be defined, so we don't crash.
2828
2832
2829 2004-07-13 Fernando Perez <fperez@colorado.edu>
2833 2004-07-13 Fernando Perez <fperez@colorado.edu>
2830
2834
2831 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2835 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2832 of EPS if the requested filename ends in '.eps'.
2836 of EPS if the requested filename ends in '.eps'.
2833
2837
2834 2004-07-04 Fernando Perez <fperez@colorado.edu>
2838 2004-07-04 Fernando Perez <fperez@colorado.edu>
2835
2839
2836 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2840 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2837 escaping of quotes when calling the shell.
2841 escaping of quotes when calling the shell.
2838
2842
2839 2004-07-02 Fernando Perez <fperez@colorado.edu>
2843 2004-07-02 Fernando Perez <fperez@colorado.edu>
2840
2844
2841 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2845 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2842 gettext not working because we were clobbering '_'. Fixes
2846 gettext not working because we were clobbering '_'. Fixes
2843 http://www.scipy.net/roundup/ipython/issue6.
2847 http://www.scipy.net/roundup/ipython/issue6.
2844
2848
2845 2004-07-01 Fernando Perez <fperez@colorado.edu>
2849 2004-07-01 Fernando Perez <fperez@colorado.edu>
2846
2850
2847 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2851 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2848 into @cd. Patch by Ville.
2852 into @cd. Patch by Ville.
2849
2853
2850 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2854 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2851 new function to store things after ipmaker runs. Patch by Ville.
2855 new function to store things after ipmaker runs. Patch by Ville.
2852 Eventually this will go away once ipmaker is removed and the class
2856 Eventually this will go away once ipmaker is removed and the class
2853 gets cleaned up, but for now it's ok. Key functionality here is
2857 gets cleaned up, but for now it's ok. Key functionality here is
2854 the addition of the persistent storage mechanism, a dict for
2858 the addition of the persistent storage mechanism, a dict for
2855 keeping data across sessions (for now just bookmarks, but more can
2859 keeping data across sessions (for now just bookmarks, but more can
2856 be implemented later).
2860 be implemented later).
2857
2861
2858 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2862 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2859 persistent across sections. Patch by Ville, I modified it
2863 persistent across sections. Patch by Ville, I modified it
2860 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2864 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2861 added a '-l' option to list all bookmarks.
2865 added a '-l' option to list all bookmarks.
2862
2866
2863 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2867 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2864 center for cleanup. Registered with atexit.register(). I moved
2868 center for cleanup. Registered with atexit.register(). I moved
2865 here the old exit_cleanup(). After a patch by Ville.
2869 here the old exit_cleanup(). After a patch by Ville.
2866
2870
2867 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2871 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2868 characters in the hacked shlex_split for python 2.2.
2872 characters in the hacked shlex_split for python 2.2.
2869
2873
2870 * IPython/iplib.py (file_matches): more fixes to filenames with
2874 * IPython/iplib.py (file_matches): more fixes to filenames with
2871 whitespace in them. It's not perfect, but limitations in python's
2875 whitespace in them. It's not perfect, but limitations in python's
2872 readline make it impossible to go further.
2876 readline make it impossible to go further.
2873
2877
2874 2004-06-29 Fernando Perez <fperez@colorado.edu>
2878 2004-06-29 Fernando Perez <fperez@colorado.edu>
2875
2879
2876 * IPython/iplib.py (file_matches): escape whitespace correctly in
2880 * IPython/iplib.py (file_matches): escape whitespace correctly in
2877 filename completions. Bug reported by Ville.
2881 filename completions. Bug reported by Ville.
2878
2882
2879 2004-06-28 Fernando Perez <fperez@colorado.edu>
2883 2004-06-28 Fernando Perez <fperez@colorado.edu>
2880
2884
2881 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2885 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2882 the history file will be called 'history-PROFNAME' (or just
2886 the history file will be called 'history-PROFNAME' (or just
2883 'history' if no profile is loaded). I was getting annoyed at
2887 'history' if no profile is loaded). I was getting annoyed at
2884 getting my Numerical work history clobbered by pysh sessions.
2888 getting my Numerical work history clobbered by pysh sessions.
2885
2889
2886 * IPython/iplib.py (InteractiveShell.__init__): Internal
2890 * IPython/iplib.py (InteractiveShell.__init__): Internal
2887 getoutputerror() function so that we can honor the system_verbose
2891 getoutputerror() function so that we can honor the system_verbose
2888 flag for _all_ system calls. I also added escaping of #
2892 flag for _all_ system calls. I also added escaping of #
2889 characters here to avoid confusing Itpl.
2893 characters here to avoid confusing Itpl.
2890
2894
2891 * IPython/Magic.py (shlex_split): removed call to shell in
2895 * IPython/Magic.py (shlex_split): removed call to shell in
2892 parse_options and replaced it with shlex.split(). The annoying
2896 parse_options and replaced it with shlex.split(). The annoying
2893 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2897 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2894 to backport it from 2.3, with several frail hacks (the shlex
2898 to backport it from 2.3, with several frail hacks (the shlex
2895 module is rather limited in 2.2). Thanks to a suggestion by Ville
2899 module is rather limited in 2.2). Thanks to a suggestion by Ville
2896 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2900 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2897 problem.
2901 problem.
2898
2902
2899 (Magic.magic_system_verbose): new toggle to print the actual
2903 (Magic.magic_system_verbose): new toggle to print the actual
2900 system calls made by ipython. Mainly for debugging purposes.
2904 system calls made by ipython. Mainly for debugging purposes.
2901
2905
2902 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2906 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2903 doesn't support persistence. Reported (and fix suggested) by
2907 doesn't support persistence. Reported (and fix suggested) by
2904 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2908 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2905
2909
2906 2004-06-26 Fernando Perez <fperez@colorado.edu>
2910 2004-06-26 Fernando Perez <fperez@colorado.edu>
2907
2911
2908 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2912 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2909 continue prompts.
2913 continue prompts.
2910
2914
2911 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2915 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2912 function (basically a big docstring) and a few more things here to
2916 function (basically a big docstring) and a few more things here to
2913 speedup startup. pysh.py is now very lightweight. We want because
2917 speedup startup. pysh.py is now very lightweight. We want because
2914 it gets execfile'd, while InterpreterExec gets imported, so
2918 it gets execfile'd, while InterpreterExec gets imported, so
2915 byte-compilation saves time.
2919 byte-compilation saves time.
2916
2920
2917 2004-06-25 Fernando Perez <fperez@colorado.edu>
2921 2004-06-25 Fernando Perez <fperez@colorado.edu>
2918
2922
2919 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2923 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2920 -NUM', which was recently broken.
2924 -NUM', which was recently broken.
2921
2925
2922 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2926 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2923 in multi-line input (but not !!, which doesn't make sense there).
2927 in multi-line input (but not !!, which doesn't make sense there).
2924
2928
2925 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2929 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2926 It's just too useful, and people can turn it off in the less
2930 It's just too useful, and people can turn it off in the less
2927 common cases where it's a problem.
2931 common cases where it's a problem.
2928
2932
2929 2004-06-24 Fernando Perez <fperez@colorado.edu>
2933 2004-06-24 Fernando Perez <fperez@colorado.edu>
2930
2934
2931 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2935 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2932 special syntaxes (like alias calling) is now allied in multi-line
2936 special syntaxes (like alias calling) is now allied in multi-line
2933 input. This is still _very_ experimental, but it's necessary for
2937 input. This is still _very_ experimental, but it's necessary for
2934 efficient shell usage combining python looping syntax with system
2938 efficient shell usage combining python looping syntax with system
2935 calls. For now it's restricted to aliases, I don't think it
2939 calls. For now it's restricted to aliases, I don't think it
2936 really even makes sense to have this for magics.
2940 really even makes sense to have this for magics.
2937
2941
2938 2004-06-23 Fernando Perez <fperez@colorado.edu>
2942 2004-06-23 Fernando Perez <fperez@colorado.edu>
2939
2943
2940 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2944 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2941 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2945 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2942
2946
2943 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2947 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2944 extensions under Windows (after code sent by Gary Bishop). The
2948 extensions under Windows (after code sent by Gary Bishop). The
2945 extensions considered 'executable' are stored in IPython's rc
2949 extensions considered 'executable' are stored in IPython's rc
2946 structure as win_exec_ext.
2950 structure as win_exec_ext.
2947
2951
2948 * IPython/genutils.py (shell): new function, like system() but
2952 * IPython/genutils.py (shell): new function, like system() but
2949 without return value. Very useful for interactive shell work.
2953 without return value. Very useful for interactive shell work.
2950
2954
2951 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2955 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2952 delete aliases.
2956 delete aliases.
2953
2957
2954 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2958 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2955 sure that the alias table doesn't contain python keywords.
2959 sure that the alias table doesn't contain python keywords.
2956
2960
2957 2004-06-21 Fernando Perez <fperez@colorado.edu>
2961 2004-06-21 Fernando Perez <fperez@colorado.edu>
2958
2962
2959 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2963 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2960 non-existent items are found in $PATH. Reported by Thorsten.
2964 non-existent items are found in $PATH. Reported by Thorsten.
2961
2965
2962 2004-06-20 Fernando Perez <fperez@colorado.edu>
2966 2004-06-20 Fernando Perez <fperez@colorado.edu>
2963
2967
2964 * IPython/iplib.py (complete): modified the completer so that the
2968 * IPython/iplib.py (complete): modified the completer so that the
2965 order of priorities can be easily changed at runtime.
2969 order of priorities can be easily changed at runtime.
2966
2970
2967 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2971 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2968 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2972 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2969
2973
2970 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2974 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2971 expand Python variables prepended with $ in all system calls. The
2975 expand Python variables prepended with $ in all system calls. The
2972 same was done to InteractiveShell.handle_shell_escape. Now all
2976 same was done to InteractiveShell.handle_shell_escape. Now all
2973 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2977 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2974 expansion of python variables and expressions according to the
2978 expansion of python variables and expressions according to the
2975 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2979 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2976
2980
2977 Though PEP-215 has been rejected, a similar (but simpler) one
2981 Though PEP-215 has been rejected, a similar (but simpler) one
2978 seems like it will go into Python 2.4, PEP-292 -
2982 seems like it will go into Python 2.4, PEP-292 -
2979 http://www.python.org/peps/pep-0292.html.
2983 http://www.python.org/peps/pep-0292.html.
2980
2984
2981 I'll keep the full syntax of PEP-215, since IPython has since the
2985 I'll keep the full syntax of PEP-215, since IPython has since the
2982 start used Ka-Ping Yee's reference implementation discussed there
2986 start used Ka-Ping Yee's reference implementation discussed there
2983 (Itpl), and I actually like the powerful semantics it offers.
2987 (Itpl), and I actually like the powerful semantics it offers.
2984
2988
2985 In order to access normal shell variables, the $ has to be escaped
2989 In order to access normal shell variables, the $ has to be escaped
2986 via an extra $. For example:
2990 via an extra $. For example:
2987
2991
2988 In [7]: PATH='a python variable'
2992 In [7]: PATH='a python variable'
2989
2993
2990 In [8]: !echo $PATH
2994 In [8]: !echo $PATH
2991 a python variable
2995 a python variable
2992
2996
2993 In [9]: !echo $$PATH
2997 In [9]: !echo $$PATH
2994 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2998 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2995
2999
2996 (Magic.parse_options): escape $ so the shell doesn't evaluate
3000 (Magic.parse_options): escape $ so the shell doesn't evaluate
2997 things prematurely.
3001 things prematurely.
2998
3002
2999 * IPython/iplib.py (InteractiveShell.call_alias): added the
3003 * IPython/iplib.py (InteractiveShell.call_alias): added the
3000 ability for aliases to expand python variables via $.
3004 ability for aliases to expand python variables via $.
3001
3005
3002 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3006 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3003 system, now there's a @rehash/@rehashx pair of magics. These work
3007 system, now there's a @rehash/@rehashx pair of magics. These work
3004 like the csh rehash command, and can be invoked at any time. They
3008 like the csh rehash command, and can be invoked at any time. They
3005 build a table of aliases to everything in the user's $PATH
3009 build a table of aliases to everything in the user's $PATH
3006 (@rehash uses everything, @rehashx is slower but only adds
3010 (@rehash uses everything, @rehashx is slower but only adds
3007 executable files). With this, the pysh.py-based shell profile can
3011 executable files). With this, the pysh.py-based shell profile can
3008 now simply call rehash upon startup, and full access to all
3012 now simply call rehash upon startup, and full access to all
3009 programs in the user's path is obtained.
3013 programs in the user's path is obtained.
3010
3014
3011 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3015 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3012 functionality is now fully in place. I removed the old dynamic
3016 functionality is now fully in place. I removed the old dynamic
3013 code generation based approach, in favor of a much lighter one
3017 code generation based approach, in favor of a much lighter one
3014 based on a simple dict. The advantage is that this allows me to
3018 based on a simple dict. The advantage is that this allows me to
3015 now have thousands of aliases with negligible cost (unthinkable
3019 now have thousands of aliases with negligible cost (unthinkable
3016 with the old system).
3020 with the old system).
3017
3021
3018 2004-06-19 Fernando Perez <fperez@colorado.edu>
3022 2004-06-19 Fernando Perez <fperez@colorado.edu>
3019
3023
3020 * IPython/iplib.py (__init__): extended MagicCompleter class to
3024 * IPython/iplib.py (__init__): extended MagicCompleter class to
3021 also complete (last in priority) on user aliases.
3025 also complete (last in priority) on user aliases.
3022
3026
3023 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3027 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3024 call to eval.
3028 call to eval.
3025 (ItplNS.__init__): Added a new class which functions like Itpl,
3029 (ItplNS.__init__): Added a new class which functions like Itpl,
3026 but allows configuring the namespace for the evaluation to occur
3030 but allows configuring the namespace for the evaluation to occur
3027 in.
3031 in.
3028
3032
3029 2004-06-18 Fernando Perez <fperez@colorado.edu>
3033 2004-06-18 Fernando Perez <fperez@colorado.edu>
3030
3034
3031 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3035 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3032 better message when 'exit' or 'quit' are typed (a common newbie
3036 better message when 'exit' or 'quit' are typed (a common newbie
3033 confusion).
3037 confusion).
3034
3038
3035 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3039 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3036 check for Windows users.
3040 check for Windows users.
3037
3041
3038 * IPython/iplib.py (InteractiveShell.user_setup): removed
3042 * IPython/iplib.py (InteractiveShell.user_setup): removed
3039 disabling of colors for Windows. I'll test at runtime and issue a
3043 disabling of colors for Windows. I'll test at runtime and issue a
3040 warning if Gary's readline isn't found, as to nudge users to
3044 warning if Gary's readline isn't found, as to nudge users to
3041 download it.
3045 download it.
3042
3046
3043 2004-06-16 Fernando Perez <fperez@colorado.edu>
3047 2004-06-16 Fernando Perez <fperez@colorado.edu>
3044
3048
3045 * IPython/genutils.py (Stream.__init__): changed to print errors
3049 * IPython/genutils.py (Stream.__init__): changed to print errors
3046 to sys.stderr. I had a circular dependency here. Now it's
3050 to sys.stderr. I had a circular dependency here. Now it's
3047 possible to run ipython as IDLE's shell (consider this pre-alpha,
3051 possible to run ipython as IDLE's shell (consider this pre-alpha,
3048 since true stdout things end up in the starting terminal instead
3052 since true stdout things end up in the starting terminal instead
3049 of IDLE's out).
3053 of IDLE's out).
3050
3054
3051 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3055 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3052 users who haven't # updated their prompt_in2 definitions. Remove
3056 users who haven't # updated their prompt_in2 definitions. Remove
3053 eventually.
3057 eventually.
3054 (multiple_replace): added credit to original ASPN recipe.
3058 (multiple_replace): added credit to original ASPN recipe.
3055
3059
3056 2004-06-15 Fernando Perez <fperez@colorado.edu>
3060 2004-06-15 Fernando Perez <fperez@colorado.edu>
3057
3061
3058 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3062 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3059 list of auto-defined aliases.
3063 list of auto-defined aliases.
3060
3064
3061 2004-06-13 Fernando Perez <fperez@colorado.edu>
3065 2004-06-13 Fernando Perez <fperez@colorado.edu>
3062
3066
3063 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3067 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3064 install was really requested (so setup.py can be used for other
3068 install was really requested (so setup.py can be used for other
3065 things under Windows).
3069 things under Windows).
3066
3070
3067 2004-06-10 Fernando Perez <fperez@colorado.edu>
3071 2004-06-10 Fernando Perez <fperez@colorado.edu>
3068
3072
3069 * IPython/Logger.py (Logger.create_log): Manually remove any old
3073 * IPython/Logger.py (Logger.create_log): Manually remove any old
3070 backup, since os.remove may fail under Windows. Fixes bug
3074 backup, since os.remove may fail under Windows. Fixes bug
3071 reported by Thorsten.
3075 reported by Thorsten.
3072
3076
3073 2004-06-09 Fernando Perez <fperez@colorado.edu>
3077 2004-06-09 Fernando Perez <fperez@colorado.edu>
3074
3078
3075 * examples/example-embed.py: fixed all references to %n (replaced
3079 * examples/example-embed.py: fixed all references to %n (replaced
3076 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3080 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3077 for all examples and the manual as well.
3081 for all examples and the manual as well.
3078
3082
3079 2004-06-08 Fernando Perez <fperez@colorado.edu>
3083 2004-06-08 Fernando Perez <fperez@colorado.edu>
3080
3084
3081 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3085 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3082 alignment and color management. All 3 prompt subsystems now
3086 alignment and color management. All 3 prompt subsystems now
3083 inherit from BasePrompt.
3087 inherit from BasePrompt.
3084
3088
3085 * tools/release: updates for windows installer build and tag rpms
3089 * tools/release: updates for windows installer build and tag rpms
3086 with python version (since paths are fixed).
3090 with python version (since paths are fixed).
3087
3091
3088 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3092 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3089 which will become eventually obsolete. Also fixed the default
3093 which will become eventually obsolete. Also fixed the default
3090 prompt_in2 to use \D, so at least new users start with the correct
3094 prompt_in2 to use \D, so at least new users start with the correct
3091 defaults.
3095 defaults.
3092 WARNING: Users with existing ipythonrc files will need to apply
3096 WARNING: Users with existing ipythonrc files will need to apply
3093 this fix manually!
3097 this fix manually!
3094
3098
3095 * setup.py: make windows installer (.exe). This is finally the
3099 * setup.py: make windows installer (.exe). This is finally the
3096 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3100 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3097 which I hadn't included because it required Python 2.3 (or recent
3101 which I hadn't included because it required Python 2.3 (or recent
3098 distutils).
3102 distutils).
3099
3103
3100 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3104 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3101 usage of new '\D' escape.
3105 usage of new '\D' escape.
3102
3106
3103 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3107 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3104 lacks os.getuid())
3108 lacks os.getuid())
3105 (CachedOutput.set_colors): Added the ability to turn coloring
3109 (CachedOutput.set_colors): Added the ability to turn coloring
3106 on/off with @colors even for manually defined prompt colors. It
3110 on/off with @colors even for manually defined prompt colors. It
3107 uses a nasty global, but it works safely and via the generic color
3111 uses a nasty global, but it works safely and via the generic color
3108 handling mechanism.
3112 handling mechanism.
3109 (Prompt2.__init__): Introduced new escape '\D' for continuation
3113 (Prompt2.__init__): Introduced new escape '\D' for continuation
3110 prompts. It represents the counter ('\#') as dots.
3114 prompts. It represents the counter ('\#') as dots.
3111 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3115 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3112 need to update their ipythonrc files and replace '%n' with '\D' in
3116 need to update their ipythonrc files and replace '%n' with '\D' in
3113 their prompt_in2 settings everywhere. Sorry, but there's
3117 their prompt_in2 settings everywhere. Sorry, but there's
3114 otherwise no clean way to get all prompts to properly align. The
3118 otherwise no clean way to get all prompts to properly align. The
3115 ipythonrc shipped with IPython has been updated.
3119 ipythonrc shipped with IPython has been updated.
3116
3120
3117 2004-06-07 Fernando Perez <fperez@colorado.edu>
3121 2004-06-07 Fernando Perez <fperez@colorado.edu>
3118
3122
3119 * setup.py (isfile): Pass local_icons option to latex2html, so the
3123 * setup.py (isfile): Pass local_icons option to latex2html, so the
3120 resulting HTML file is self-contained. Thanks to
3124 resulting HTML file is self-contained. Thanks to
3121 dryice-AT-liu.com.cn for the tip.
3125 dryice-AT-liu.com.cn for the tip.
3122
3126
3123 * pysh.py: I created a new profile 'shell', which implements a
3127 * pysh.py: I created a new profile 'shell', which implements a
3124 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3128 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3125 system shell, nor will it become one anytime soon. It's mainly
3129 system shell, nor will it become one anytime soon. It's mainly
3126 meant to illustrate the use of the new flexible bash-like prompts.
3130 meant to illustrate the use of the new flexible bash-like prompts.
3127 I guess it could be used by hardy souls for true shell management,
3131 I guess it could be used by hardy souls for true shell management,
3128 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3132 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3129 profile. This uses the InterpreterExec extension provided by
3133 profile. This uses the InterpreterExec extension provided by
3130 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3134 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3131
3135
3132 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3136 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3133 auto-align itself with the length of the previous input prompt
3137 auto-align itself with the length of the previous input prompt
3134 (taking into account the invisible color escapes).
3138 (taking into account the invisible color escapes).
3135 (CachedOutput.__init__): Large restructuring of this class. Now
3139 (CachedOutput.__init__): Large restructuring of this class. Now
3136 all three prompts (primary1, primary2, output) are proper objects,
3140 all three prompts (primary1, primary2, output) are proper objects,
3137 managed by the 'parent' CachedOutput class. The code is still a
3141 managed by the 'parent' CachedOutput class. The code is still a
3138 bit hackish (all prompts share state via a pointer to the cache),
3142 bit hackish (all prompts share state via a pointer to the cache),
3139 but it's overall far cleaner than before.
3143 but it's overall far cleaner than before.
3140
3144
3141 * IPython/genutils.py (getoutputerror): modified to add verbose,
3145 * IPython/genutils.py (getoutputerror): modified to add verbose,
3142 debug and header options. This makes the interface of all getout*
3146 debug and header options. This makes the interface of all getout*
3143 functions uniform.
3147 functions uniform.
3144 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3148 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3145
3149
3146 * IPython/Magic.py (Magic.default_option): added a function to
3150 * IPython/Magic.py (Magic.default_option): added a function to
3147 allow registering default options for any magic command. This
3151 allow registering default options for any magic command. This
3148 makes it easy to have profiles which customize the magics globally
3152 makes it easy to have profiles which customize the magics globally
3149 for a certain use. The values set through this function are
3153 for a certain use. The values set through this function are
3150 picked up by the parse_options() method, which all magics should
3154 picked up by the parse_options() method, which all magics should
3151 use to parse their options.
3155 use to parse their options.
3152
3156
3153 * IPython/genutils.py (warn): modified the warnings framework to
3157 * IPython/genutils.py (warn): modified the warnings framework to
3154 use the Term I/O class. I'm trying to slowly unify all of
3158 use the Term I/O class. I'm trying to slowly unify all of
3155 IPython's I/O operations to pass through Term.
3159 IPython's I/O operations to pass through Term.
3156
3160
3157 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3161 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3158 the secondary prompt to correctly match the length of the primary
3162 the secondary prompt to correctly match the length of the primary
3159 one for any prompt. Now multi-line code will properly line up
3163 one for any prompt. Now multi-line code will properly line up
3160 even for path dependent prompts, such as the new ones available
3164 even for path dependent prompts, such as the new ones available
3161 via the prompt_specials.
3165 via the prompt_specials.
3162
3166
3163 2004-06-06 Fernando Perez <fperez@colorado.edu>
3167 2004-06-06 Fernando Perez <fperez@colorado.edu>
3164
3168
3165 * IPython/Prompts.py (prompt_specials): Added the ability to have
3169 * IPython/Prompts.py (prompt_specials): Added the ability to have
3166 bash-like special sequences in the prompts, which get
3170 bash-like special sequences in the prompts, which get
3167 automatically expanded. Things like hostname, current working
3171 automatically expanded. Things like hostname, current working
3168 directory and username are implemented already, but it's easy to
3172 directory and username are implemented already, but it's easy to
3169 add more in the future. Thanks to a patch by W.J. van der Laan
3173 add more in the future. Thanks to a patch by W.J. van der Laan
3170 <gnufnork-AT-hetdigitalegat.nl>
3174 <gnufnork-AT-hetdigitalegat.nl>
3171 (prompt_specials): Added color support for prompt strings, so
3175 (prompt_specials): Added color support for prompt strings, so
3172 users can define arbitrary color setups for their prompts.
3176 users can define arbitrary color setups for their prompts.
3173
3177
3174 2004-06-05 Fernando Perez <fperez@colorado.edu>
3178 2004-06-05 Fernando Perez <fperez@colorado.edu>
3175
3179
3176 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3180 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3177 code to load Gary Bishop's readline and configure it
3181 code to load Gary Bishop's readline and configure it
3178 automatically. Thanks to Gary for help on this.
3182 automatically. Thanks to Gary for help on this.
3179
3183
3180 2004-06-01 Fernando Perez <fperez@colorado.edu>
3184 2004-06-01 Fernando Perez <fperez@colorado.edu>
3181
3185
3182 * IPython/Logger.py (Logger.create_log): fix bug for logging
3186 * IPython/Logger.py (Logger.create_log): fix bug for logging
3183 with no filename (previous fix was incomplete).
3187 with no filename (previous fix was incomplete).
3184
3188
3185 2004-05-25 Fernando Perez <fperez@colorado.edu>
3189 2004-05-25 Fernando Perez <fperez@colorado.edu>
3186
3190
3187 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3191 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3188 parens would get passed to the shell.
3192 parens would get passed to the shell.
3189
3193
3190 2004-05-20 Fernando Perez <fperez@colorado.edu>
3194 2004-05-20 Fernando Perez <fperez@colorado.edu>
3191
3195
3192 * IPython/Magic.py (Magic.magic_prun): changed default profile
3196 * IPython/Magic.py (Magic.magic_prun): changed default profile
3193 sort order to 'time' (the more common profiling need).
3197 sort order to 'time' (the more common profiling need).
3194
3198
3195 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3199 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3196 so that source code shown is guaranteed in sync with the file on
3200 so that source code shown is guaranteed in sync with the file on
3197 disk (also changed in psource). Similar fix to the one for
3201 disk (also changed in psource). Similar fix to the one for
3198 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3202 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3199 <yann.ledu-AT-noos.fr>.
3203 <yann.ledu-AT-noos.fr>.
3200
3204
3201 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3205 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3202 with a single option would not be correctly parsed. Closes
3206 with a single option would not be correctly parsed. Closes
3203 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3207 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3204 introduced in 0.6.0 (on 2004-05-06).
3208 introduced in 0.6.0 (on 2004-05-06).
3205
3209
3206 2004-05-13 *** Released version 0.6.0
3210 2004-05-13 *** Released version 0.6.0
3207
3211
3208 2004-05-13 Fernando Perez <fperez@colorado.edu>
3212 2004-05-13 Fernando Perez <fperez@colorado.edu>
3209
3213
3210 * debian/: Added debian/ directory to CVS, so that debian support
3214 * debian/: Added debian/ directory to CVS, so that debian support
3211 is publicly accessible. The debian package is maintained by Jack
3215 is publicly accessible. The debian package is maintained by Jack
3212 Moffit <jack-AT-xiph.org>.
3216 Moffit <jack-AT-xiph.org>.
3213
3217
3214 * Documentation: included the notes about an ipython-based system
3218 * Documentation: included the notes about an ipython-based system
3215 shell (the hypothetical 'pysh') into the new_design.pdf document,
3219 shell (the hypothetical 'pysh') into the new_design.pdf document,
3216 so that these ideas get distributed to users along with the
3220 so that these ideas get distributed to users along with the
3217 official documentation.
3221 official documentation.
3218
3222
3219 2004-05-10 Fernando Perez <fperez@colorado.edu>
3223 2004-05-10 Fernando Perez <fperez@colorado.edu>
3220
3224
3221 * IPython/Logger.py (Logger.create_log): fix recently introduced
3225 * IPython/Logger.py (Logger.create_log): fix recently introduced
3222 bug (misindented line) where logstart would fail when not given an
3226 bug (misindented line) where logstart would fail when not given an
3223 explicit filename.
3227 explicit filename.
3224
3228
3225 2004-05-09 Fernando Perez <fperez@colorado.edu>
3229 2004-05-09 Fernando Perez <fperez@colorado.edu>
3226
3230
3227 * IPython/Magic.py (Magic.parse_options): skip system call when
3231 * IPython/Magic.py (Magic.parse_options): skip system call when
3228 there are no options to look for. Faster, cleaner for the common
3232 there are no options to look for. Faster, cleaner for the common
3229 case.
3233 case.
3230
3234
3231 * Documentation: many updates to the manual: describing Windows
3235 * Documentation: many updates to the manual: describing Windows
3232 support better, Gnuplot updates, credits, misc small stuff. Also
3236 support better, Gnuplot updates, credits, misc small stuff. Also
3233 updated the new_design doc a bit.
3237 updated the new_design doc a bit.
3234
3238
3235 2004-05-06 *** Released version 0.6.0.rc1
3239 2004-05-06 *** Released version 0.6.0.rc1
3236
3240
3237 2004-05-06 Fernando Perez <fperez@colorado.edu>
3241 2004-05-06 Fernando Perez <fperez@colorado.edu>
3238
3242
3239 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3243 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3240 operations to use the vastly more efficient list/''.join() method.
3244 operations to use the vastly more efficient list/''.join() method.
3241 (FormattedTB.text): Fix
3245 (FormattedTB.text): Fix
3242 http://www.scipy.net/roundup/ipython/issue12 - exception source
3246 http://www.scipy.net/roundup/ipython/issue12 - exception source
3243 extract not updated after reload. Thanks to Mike Salib
3247 extract not updated after reload. Thanks to Mike Salib
3244 <msalib-AT-mit.edu> for pinning the source of the problem.
3248 <msalib-AT-mit.edu> for pinning the source of the problem.
3245 Fortunately, the solution works inside ipython and doesn't require
3249 Fortunately, the solution works inside ipython and doesn't require
3246 any changes to python proper.
3250 any changes to python proper.
3247
3251
3248 * IPython/Magic.py (Magic.parse_options): Improved to process the
3252 * IPython/Magic.py (Magic.parse_options): Improved to process the
3249 argument list as a true shell would (by actually using the
3253 argument list as a true shell would (by actually using the
3250 underlying system shell). This way, all @magics automatically get
3254 underlying system shell). This way, all @magics automatically get
3251 shell expansion for variables. Thanks to a comment by Alex
3255 shell expansion for variables. Thanks to a comment by Alex
3252 Schmolck.
3256 Schmolck.
3253
3257
3254 2004-04-04 Fernando Perez <fperez@colorado.edu>
3258 2004-04-04 Fernando Perez <fperez@colorado.edu>
3255
3259
3256 * IPython/iplib.py (InteractiveShell.interact): Added a special
3260 * IPython/iplib.py (InteractiveShell.interact): Added a special
3257 trap for a debugger quit exception, which is basically impossible
3261 trap for a debugger quit exception, which is basically impossible
3258 to handle by normal mechanisms, given what pdb does to the stack.
3262 to handle by normal mechanisms, given what pdb does to the stack.
3259 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3263 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3260
3264
3261 2004-04-03 Fernando Perez <fperez@colorado.edu>
3265 2004-04-03 Fernando Perez <fperez@colorado.edu>
3262
3266
3263 * IPython/genutils.py (Term): Standardized the names of the Term
3267 * IPython/genutils.py (Term): Standardized the names of the Term
3264 class streams to cin/cout/cerr, following C++ naming conventions
3268 class streams to cin/cout/cerr, following C++ naming conventions
3265 (I can't use in/out/err because 'in' is not a valid attribute
3269 (I can't use in/out/err because 'in' is not a valid attribute
3266 name).
3270 name).
3267
3271
3268 * IPython/iplib.py (InteractiveShell.interact): don't increment
3272 * IPython/iplib.py (InteractiveShell.interact): don't increment
3269 the prompt if there's no user input. By Daniel 'Dang' Griffith
3273 the prompt if there's no user input. By Daniel 'Dang' Griffith
3270 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3274 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3271 Francois Pinard.
3275 Francois Pinard.
3272
3276
3273 2004-04-02 Fernando Perez <fperez@colorado.edu>
3277 2004-04-02 Fernando Perez <fperez@colorado.edu>
3274
3278
3275 * IPython/genutils.py (Stream.__init__): Modified to survive at
3279 * IPython/genutils.py (Stream.__init__): Modified to survive at
3276 least importing in contexts where stdin/out/err aren't true file
3280 least importing in contexts where stdin/out/err aren't true file
3277 objects, such as PyCrust (they lack fileno() and mode). However,
3281 objects, such as PyCrust (they lack fileno() and mode). However,
3278 the recovery facilities which rely on these things existing will
3282 the recovery facilities which rely on these things existing will
3279 not work.
3283 not work.
3280
3284
3281 2004-04-01 Fernando Perez <fperez@colorado.edu>
3285 2004-04-01 Fernando Perez <fperez@colorado.edu>
3282
3286
3283 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3287 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3284 use the new getoutputerror() function, so it properly
3288 use the new getoutputerror() function, so it properly
3285 distinguishes stdout/err.
3289 distinguishes stdout/err.
3286
3290
3287 * IPython/genutils.py (getoutputerror): added a function to
3291 * IPython/genutils.py (getoutputerror): added a function to
3288 capture separately the standard output and error of a command.
3292 capture separately the standard output and error of a command.
3289 After a comment from dang on the mailing lists. This code is
3293 After a comment from dang on the mailing lists. This code is
3290 basically a modified version of commands.getstatusoutput(), from
3294 basically a modified version of commands.getstatusoutput(), from
3291 the standard library.
3295 the standard library.
3292
3296
3293 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3297 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3294 '!!' as a special syntax (shorthand) to access @sx.
3298 '!!' as a special syntax (shorthand) to access @sx.
3295
3299
3296 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3300 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3297 command and return its output as a list split on '\n'.
3301 command and return its output as a list split on '\n'.
3298
3302
3299 2004-03-31 Fernando Perez <fperez@colorado.edu>
3303 2004-03-31 Fernando Perez <fperez@colorado.edu>
3300
3304
3301 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3305 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3302 method to dictionaries used as FakeModule instances if they lack
3306 method to dictionaries used as FakeModule instances if they lack
3303 it. At least pydoc in python2.3 breaks for runtime-defined
3307 it. At least pydoc in python2.3 breaks for runtime-defined
3304 functions without this hack. At some point I need to _really_
3308 functions without this hack. At some point I need to _really_
3305 understand what FakeModule is doing, because it's a gross hack.
3309 understand what FakeModule is doing, because it's a gross hack.
3306 But it solves Arnd's problem for now...
3310 But it solves Arnd's problem for now...
3307
3311
3308 2004-02-27 Fernando Perez <fperez@colorado.edu>
3312 2004-02-27 Fernando Perez <fperez@colorado.edu>
3309
3313
3310 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3314 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3311 mode would behave erratically. Also increased the number of
3315 mode would behave erratically. Also increased the number of
3312 possible logs in rotate mod to 999. Thanks to Rod Holland
3316 possible logs in rotate mod to 999. Thanks to Rod Holland
3313 <rhh@StructureLABS.com> for the report and fixes.
3317 <rhh@StructureLABS.com> for the report and fixes.
3314
3318
3315 2004-02-26 Fernando Perez <fperez@colorado.edu>
3319 2004-02-26 Fernando Perez <fperez@colorado.edu>
3316
3320
3317 * IPython/genutils.py (page): Check that the curses module really
3321 * IPython/genutils.py (page): Check that the curses module really
3318 has the initscr attribute before trying to use it. For some
3322 has the initscr attribute before trying to use it. For some
3319 reason, the Solaris curses module is missing this. I think this
3323 reason, the Solaris curses module is missing this. I think this
3320 should be considered a Solaris python bug, but I'm not sure.
3324 should be considered a Solaris python bug, but I'm not sure.
3321
3325
3322 2004-01-17 Fernando Perez <fperez@colorado.edu>
3326 2004-01-17 Fernando Perez <fperez@colorado.edu>
3323
3327
3324 * IPython/genutils.py (Stream.__init__): Changes to try to make
3328 * IPython/genutils.py (Stream.__init__): Changes to try to make
3325 ipython robust against stdin/out/err being closed by the user.
3329 ipython robust against stdin/out/err being closed by the user.
3326 This is 'user error' (and blocks a normal python session, at least
3330 This is 'user error' (and blocks a normal python session, at least
3327 the stdout case). However, Ipython should be able to survive such
3331 the stdout case). However, Ipython should be able to survive such
3328 instances of abuse as gracefully as possible. To simplify the
3332 instances of abuse as gracefully as possible. To simplify the
3329 coding and maintain compatibility with Gary Bishop's Term
3333 coding and maintain compatibility with Gary Bishop's Term
3330 contributions, I've made use of classmethods for this. I think
3334 contributions, I've made use of classmethods for this. I think
3331 this introduces a dependency on python 2.2.
3335 this introduces a dependency on python 2.2.
3332
3336
3333 2004-01-13 Fernando Perez <fperez@colorado.edu>
3337 2004-01-13 Fernando Perez <fperez@colorado.edu>
3334
3338
3335 * IPython/numutils.py (exp_safe): simplified the code a bit and
3339 * IPython/numutils.py (exp_safe): simplified the code a bit and
3336 removed the need for importing the kinds module altogether.
3340 removed the need for importing the kinds module altogether.
3337
3341
3338 2004-01-06 Fernando Perez <fperez@colorado.edu>
3342 2004-01-06 Fernando Perez <fperez@colorado.edu>
3339
3343
3340 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3344 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3341 a magic function instead, after some community feedback. No
3345 a magic function instead, after some community feedback. No
3342 special syntax will exist for it, but its name is deliberately
3346 special syntax will exist for it, but its name is deliberately
3343 very short.
3347 very short.
3344
3348
3345 2003-12-20 Fernando Perez <fperez@colorado.edu>
3349 2003-12-20 Fernando Perez <fperez@colorado.edu>
3346
3350
3347 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3351 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3348 new functionality, to automagically assign the result of a shell
3352 new functionality, to automagically assign the result of a shell
3349 command to a variable. I'll solicit some community feedback on
3353 command to a variable. I'll solicit some community feedback on
3350 this before making it permanent.
3354 this before making it permanent.
3351
3355
3352 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3356 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3353 requested about callables for which inspect couldn't obtain a
3357 requested about callables for which inspect couldn't obtain a
3354 proper argspec. Thanks to a crash report sent by Etienne
3358 proper argspec. Thanks to a crash report sent by Etienne
3355 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3359 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3356
3360
3357 2003-12-09 Fernando Perez <fperez@colorado.edu>
3361 2003-12-09 Fernando Perez <fperez@colorado.edu>
3358
3362
3359 * IPython/genutils.py (page): patch for the pager to work across
3363 * IPython/genutils.py (page): patch for the pager to work across
3360 various versions of Windows. By Gary Bishop.
3364 various versions of Windows. By Gary Bishop.
3361
3365
3362 2003-12-04 Fernando Perez <fperez@colorado.edu>
3366 2003-12-04 Fernando Perez <fperez@colorado.edu>
3363
3367
3364 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3368 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3365 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3369 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3366 While I tested this and it looks ok, there may still be corner
3370 While I tested this and it looks ok, there may still be corner
3367 cases I've missed.
3371 cases I've missed.
3368
3372
3369 2003-12-01 Fernando Perez <fperez@colorado.edu>
3373 2003-12-01 Fernando Perez <fperez@colorado.edu>
3370
3374
3371 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3375 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3372 where a line like 'p,q=1,2' would fail because the automagic
3376 where a line like 'p,q=1,2' would fail because the automagic
3373 system would be triggered for @p.
3377 system would be triggered for @p.
3374
3378
3375 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3379 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3376 cleanups, code unmodified.
3380 cleanups, code unmodified.
3377
3381
3378 * IPython/genutils.py (Term): added a class for IPython to handle
3382 * IPython/genutils.py (Term): added a class for IPython to handle
3379 output. In most cases it will just be a proxy for stdout/err, but
3383 output. In most cases it will just be a proxy for stdout/err, but
3380 having this allows modifications to be made for some platforms,
3384 having this allows modifications to be made for some platforms,
3381 such as handling color escapes under Windows. All of this code
3385 such as handling color escapes under Windows. All of this code
3382 was contributed by Gary Bishop, with minor modifications by me.
3386 was contributed by Gary Bishop, with minor modifications by me.
3383 The actual changes affect many files.
3387 The actual changes affect many files.
3384
3388
3385 2003-11-30 Fernando Perez <fperez@colorado.edu>
3389 2003-11-30 Fernando Perez <fperez@colorado.edu>
3386
3390
3387 * IPython/iplib.py (file_matches): new completion code, courtesy
3391 * IPython/iplib.py (file_matches): new completion code, courtesy
3388 of Jeff Collins. This enables filename completion again under
3392 of Jeff Collins. This enables filename completion again under
3389 python 2.3, which disabled it at the C level.
3393 python 2.3, which disabled it at the C level.
3390
3394
3391 2003-11-11 Fernando Perez <fperez@colorado.edu>
3395 2003-11-11 Fernando Perez <fperez@colorado.edu>
3392
3396
3393 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3397 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3394 for Numeric.array(map(...)), but often convenient.
3398 for Numeric.array(map(...)), but often convenient.
3395
3399
3396 2003-11-05 Fernando Perez <fperez@colorado.edu>
3400 2003-11-05 Fernando Perez <fperez@colorado.edu>
3397
3401
3398 * IPython/numutils.py (frange): Changed a call from int() to
3402 * IPython/numutils.py (frange): Changed a call from int() to
3399 int(round()) to prevent a problem reported with arange() in the
3403 int(round()) to prevent a problem reported with arange() in the
3400 numpy list.
3404 numpy list.
3401
3405
3402 2003-10-06 Fernando Perez <fperez@colorado.edu>
3406 2003-10-06 Fernando Perez <fperez@colorado.edu>
3403
3407
3404 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3408 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3405 prevent crashes if sys lacks an argv attribute (it happens with
3409 prevent crashes if sys lacks an argv attribute (it happens with
3406 embedded interpreters which build a bare-bones sys module).
3410 embedded interpreters which build a bare-bones sys module).
3407 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3411 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3408
3412
3409 2003-09-24 Fernando Perez <fperez@colorado.edu>
3413 2003-09-24 Fernando Perez <fperez@colorado.edu>
3410
3414
3411 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3415 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3412 to protect against poorly written user objects where __getattr__
3416 to protect against poorly written user objects where __getattr__
3413 raises exceptions other than AttributeError. Thanks to a bug
3417 raises exceptions other than AttributeError. Thanks to a bug
3414 report by Oliver Sander <osander-AT-gmx.de>.
3418 report by Oliver Sander <osander-AT-gmx.de>.
3415
3419
3416 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3420 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3417 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3421 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3418
3422
3419 2003-09-09 Fernando Perez <fperez@colorado.edu>
3423 2003-09-09 Fernando Perez <fperez@colorado.edu>
3420
3424
3421 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3425 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3422 unpacking a list whith a callable as first element would
3426 unpacking a list whith a callable as first element would
3423 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3427 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3424 Collins.
3428 Collins.
3425
3429
3426 2003-08-25 *** Released version 0.5.0
3430 2003-08-25 *** Released version 0.5.0
3427
3431
3428 2003-08-22 Fernando Perez <fperez@colorado.edu>
3432 2003-08-22 Fernando Perez <fperez@colorado.edu>
3429
3433
3430 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3434 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3431 improperly defined user exceptions. Thanks to feedback from Mark
3435 improperly defined user exceptions. Thanks to feedback from Mark
3432 Russell <mrussell-AT-verio.net>.
3436 Russell <mrussell-AT-verio.net>.
3433
3437
3434 2003-08-20 Fernando Perez <fperez@colorado.edu>
3438 2003-08-20 Fernando Perez <fperez@colorado.edu>
3435
3439
3436 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3440 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3437 printing so that it would print multi-line string forms starting
3441 printing so that it would print multi-line string forms starting
3438 with a new line. This way the formatting is better respected for
3442 with a new line. This way the formatting is better respected for
3439 objects which work hard to make nice string forms.
3443 objects which work hard to make nice string forms.
3440
3444
3441 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3445 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3442 autocall would overtake data access for objects with both
3446 autocall would overtake data access for objects with both
3443 __getitem__ and __call__.
3447 __getitem__ and __call__.
3444
3448
3445 2003-08-19 *** Released version 0.5.0-rc1
3449 2003-08-19 *** Released version 0.5.0-rc1
3446
3450
3447 2003-08-19 Fernando Perez <fperez@colorado.edu>
3451 2003-08-19 Fernando Perez <fperez@colorado.edu>
3448
3452
3449 * IPython/deep_reload.py (load_tail): single tiny change here
3453 * IPython/deep_reload.py (load_tail): single tiny change here
3450 seems to fix the long-standing bug of dreload() failing to work
3454 seems to fix the long-standing bug of dreload() failing to work
3451 for dotted names. But this module is pretty tricky, so I may have
3455 for dotted names. But this module is pretty tricky, so I may have
3452 missed some subtlety. Needs more testing!.
3456 missed some subtlety. Needs more testing!.
3453
3457
3454 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3458 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3455 exceptions which have badly implemented __str__ methods.
3459 exceptions which have badly implemented __str__ methods.
3456 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3460 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3457 which I've been getting reports about from Python 2.3 users. I
3461 which I've been getting reports about from Python 2.3 users. I
3458 wish I had a simple test case to reproduce the problem, so I could
3462 wish I had a simple test case to reproduce the problem, so I could
3459 either write a cleaner workaround or file a bug report if
3463 either write a cleaner workaround or file a bug report if
3460 necessary.
3464 necessary.
3461
3465
3462 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3466 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3463 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3467 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3464 a bug report by Tjabo Kloppenburg.
3468 a bug report by Tjabo Kloppenburg.
3465
3469
3466 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3470 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3467 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3471 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3468 seems rather unstable. Thanks to a bug report by Tjabo
3472 seems rather unstable. Thanks to a bug report by Tjabo
3469 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3473 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3470
3474
3471 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3475 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3472 this out soon because of the critical fixes in the inner loop for
3476 this out soon because of the critical fixes in the inner loop for
3473 generators.
3477 generators.
3474
3478
3475 * IPython/Magic.py (Magic.getargspec): removed. This (and
3479 * IPython/Magic.py (Magic.getargspec): removed. This (and
3476 _get_def) have been obsoleted by OInspect for a long time, I
3480 _get_def) have been obsoleted by OInspect for a long time, I
3477 hadn't noticed that they were dead code.
3481 hadn't noticed that they were dead code.
3478 (Magic._ofind): restored _ofind functionality for a few literals
3482 (Magic._ofind): restored _ofind functionality for a few literals
3479 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3483 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3480 for things like "hello".capitalize?, since that would require a
3484 for things like "hello".capitalize?, since that would require a
3481 potentially dangerous eval() again.
3485 potentially dangerous eval() again.
3482
3486
3483 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3487 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3484 logic a bit more to clean up the escapes handling and minimize the
3488 logic a bit more to clean up the escapes handling and minimize the
3485 use of _ofind to only necessary cases. The interactive 'feel' of
3489 use of _ofind to only necessary cases. The interactive 'feel' of
3486 IPython should have improved quite a bit with the changes in
3490 IPython should have improved quite a bit with the changes in
3487 _prefilter and _ofind (besides being far safer than before).
3491 _prefilter and _ofind (besides being far safer than before).
3488
3492
3489 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3493 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3490 obscure, never reported). Edit would fail to find the object to
3494 obscure, never reported). Edit would fail to find the object to
3491 edit under some circumstances.
3495 edit under some circumstances.
3492 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3496 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3493 which were causing double-calling of generators. Those eval calls
3497 which were causing double-calling of generators. Those eval calls
3494 were _very_ dangerous, since code with side effects could be
3498 were _very_ dangerous, since code with side effects could be
3495 triggered. As they say, 'eval is evil'... These were the
3499 triggered. As they say, 'eval is evil'... These were the
3496 nastiest evals in IPython. Besides, _ofind is now far simpler,
3500 nastiest evals in IPython. Besides, _ofind is now far simpler,
3497 and it should also be quite a bit faster. Its use of inspect is
3501 and it should also be quite a bit faster. Its use of inspect is
3498 also safer, so perhaps some of the inspect-related crashes I've
3502 also safer, so perhaps some of the inspect-related crashes I've
3499 seen lately with Python 2.3 might be taken care of. That will
3503 seen lately with Python 2.3 might be taken care of. That will
3500 need more testing.
3504 need more testing.
3501
3505
3502 2003-08-17 Fernando Perez <fperez@colorado.edu>
3506 2003-08-17 Fernando Perez <fperez@colorado.edu>
3503
3507
3504 * IPython/iplib.py (InteractiveShell._prefilter): significant
3508 * IPython/iplib.py (InteractiveShell._prefilter): significant
3505 simplifications to the logic for handling user escapes. Faster
3509 simplifications to the logic for handling user escapes. Faster
3506 and simpler code.
3510 and simpler code.
3507
3511
3508 2003-08-14 Fernando Perez <fperez@colorado.edu>
3512 2003-08-14 Fernando Perez <fperez@colorado.edu>
3509
3513
3510 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3514 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3511 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3515 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3512 but it should be quite a bit faster. And the recursive version
3516 but it should be quite a bit faster. And the recursive version
3513 generated O(log N) intermediate storage for all rank>1 arrays,
3517 generated O(log N) intermediate storage for all rank>1 arrays,
3514 even if they were contiguous.
3518 even if they were contiguous.
3515 (l1norm): Added this function.
3519 (l1norm): Added this function.
3516 (norm): Added this function for arbitrary norms (including
3520 (norm): Added this function for arbitrary norms (including
3517 l-infinity). l1 and l2 are still special cases for convenience
3521 l-infinity). l1 and l2 are still special cases for convenience
3518 and speed.
3522 and speed.
3519
3523
3520 2003-08-03 Fernando Perez <fperez@colorado.edu>
3524 2003-08-03 Fernando Perez <fperez@colorado.edu>
3521
3525
3522 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3526 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3523 exceptions, which now raise PendingDeprecationWarnings in Python
3527 exceptions, which now raise PendingDeprecationWarnings in Python
3524 2.3. There were some in Magic and some in Gnuplot2.
3528 2.3. There were some in Magic and some in Gnuplot2.
3525
3529
3526 2003-06-30 Fernando Perez <fperez@colorado.edu>
3530 2003-06-30 Fernando Perez <fperez@colorado.edu>
3527
3531
3528 * IPython/genutils.py (page): modified to call curses only for
3532 * IPython/genutils.py (page): modified to call curses only for
3529 terminals where TERM=='xterm'. After problems under many other
3533 terminals where TERM=='xterm'. After problems under many other
3530 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3534 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3531
3535
3532 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3536 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3533 would be triggered when readline was absent. This was just an old
3537 would be triggered when readline was absent. This was just an old
3534 debugging statement I'd forgotten to take out.
3538 debugging statement I'd forgotten to take out.
3535
3539
3536 2003-06-20 Fernando Perez <fperez@colorado.edu>
3540 2003-06-20 Fernando Perez <fperez@colorado.edu>
3537
3541
3538 * IPython/genutils.py (clock): modified to return only user time
3542 * IPython/genutils.py (clock): modified to return only user time
3539 (not counting system time), after a discussion on scipy. While
3543 (not counting system time), after a discussion on scipy. While
3540 system time may be a useful quantity occasionally, it may much
3544 system time may be a useful quantity occasionally, it may much
3541 more easily be skewed by occasional swapping or other similar
3545 more easily be skewed by occasional swapping or other similar
3542 activity.
3546 activity.
3543
3547
3544 2003-06-05 Fernando Perez <fperez@colorado.edu>
3548 2003-06-05 Fernando Perez <fperez@colorado.edu>
3545
3549
3546 * IPython/numutils.py (identity): new function, for building
3550 * IPython/numutils.py (identity): new function, for building
3547 arbitrary rank Kronecker deltas (mostly backwards compatible with
3551 arbitrary rank Kronecker deltas (mostly backwards compatible with
3548 Numeric.identity)
3552 Numeric.identity)
3549
3553
3550 2003-06-03 Fernando Perez <fperez@colorado.edu>
3554 2003-06-03 Fernando Perez <fperez@colorado.edu>
3551
3555
3552 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3556 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3553 arguments passed to magics with spaces, to allow trailing '\' to
3557 arguments passed to magics with spaces, to allow trailing '\' to
3554 work normally (mainly for Windows users).
3558 work normally (mainly for Windows users).
3555
3559
3556 2003-05-29 Fernando Perez <fperez@colorado.edu>
3560 2003-05-29 Fernando Perez <fperez@colorado.edu>
3557
3561
3558 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3562 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3559 instead of pydoc.help. This fixes a bizarre behavior where
3563 instead of pydoc.help. This fixes a bizarre behavior where
3560 printing '%s' % locals() would trigger the help system. Now
3564 printing '%s' % locals() would trigger the help system. Now
3561 ipython behaves like normal python does.
3565 ipython behaves like normal python does.
3562
3566
3563 Note that if one does 'from pydoc import help', the bizarre
3567 Note that if one does 'from pydoc import help', the bizarre
3564 behavior returns, but this will also happen in normal python, so
3568 behavior returns, but this will also happen in normal python, so
3565 it's not an ipython bug anymore (it has to do with how pydoc.help
3569 it's not an ipython bug anymore (it has to do with how pydoc.help
3566 is implemented).
3570 is implemented).
3567
3571
3568 2003-05-22 Fernando Perez <fperez@colorado.edu>
3572 2003-05-22 Fernando Perez <fperez@colorado.edu>
3569
3573
3570 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3574 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3571 return [] instead of None when nothing matches, also match to end
3575 return [] instead of None when nothing matches, also match to end
3572 of line. Patch by Gary Bishop.
3576 of line. Patch by Gary Bishop.
3573
3577
3574 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3578 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3575 protection as before, for files passed on the command line. This
3579 protection as before, for files passed on the command line. This
3576 prevents the CrashHandler from kicking in if user files call into
3580 prevents the CrashHandler from kicking in if user files call into
3577 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3581 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3578 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3582 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3579
3583
3580 2003-05-20 *** Released version 0.4.0
3584 2003-05-20 *** Released version 0.4.0
3581
3585
3582 2003-05-20 Fernando Perez <fperez@colorado.edu>
3586 2003-05-20 Fernando Perez <fperez@colorado.edu>
3583
3587
3584 * setup.py: added support for manpages. It's a bit hackish b/c of
3588 * setup.py: added support for manpages. It's a bit hackish b/c of
3585 a bug in the way the bdist_rpm distutils target handles gzipped
3589 a bug in the way the bdist_rpm distutils target handles gzipped
3586 manpages, but it works. After a patch by Jack.
3590 manpages, but it works. After a patch by Jack.
3587
3591
3588 2003-05-19 Fernando Perez <fperez@colorado.edu>
3592 2003-05-19 Fernando Perez <fperez@colorado.edu>
3589
3593
3590 * IPython/numutils.py: added a mockup of the kinds module, since
3594 * IPython/numutils.py: added a mockup of the kinds module, since
3591 it was recently removed from Numeric. This way, numutils will
3595 it was recently removed from Numeric. This way, numutils will
3592 work for all users even if they are missing kinds.
3596 work for all users even if they are missing kinds.
3593
3597
3594 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3598 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3595 failure, which can occur with SWIG-wrapped extensions. After a
3599 failure, which can occur with SWIG-wrapped extensions. After a
3596 crash report from Prabhu.
3600 crash report from Prabhu.
3597
3601
3598 2003-05-16 Fernando Perez <fperez@colorado.edu>
3602 2003-05-16 Fernando Perez <fperez@colorado.edu>
3599
3603
3600 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3604 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3601 protect ipython from user code which may call directly
3605 protect ipython from user code which may call directly
3602 sys.excepthook (this looks like an ipython crash to the user, even
3606 sys.excepthook (this looks like an ipython crash to the user, even
3603 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3607 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3604 This is especially important to help users of WxWindows, but may
3608 This is especially important to help users of WxWindows, but may
3605 also be useful in other cases.
3609 also be useful in other cases.
3606
3610
3607 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3611 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3608 an optional tb_offset to be specified, and to preserve exception
3612 an optional tb_offset to be specified, and to preserve exception
3609 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3613 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3610
3614
3611 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3615 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3612
3616
3613 2003-05-15 Fernando Perez <fperez@colorado.edu>
3617 2003-05-15 Fernando Perez <fperez@colorado.edu>
3614
3618
3615 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3619 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3616 installing for a new user under Windows.
3620 installing for a new user under Windows.
3617
3621
3618 2003-05-12 Fernando Perez <fperez@colorado.edu>
3622 2003-05-12 Fernando Perez <fperez@colorado.edu>
3619
3623
3620 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3624 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3621 handler for Emacs comint-based lines. Currently it doesn't do
3625 handler for Emacs comint-based lines. Currently it doesn't do
3622 much (but importantly, it doesn't update the history cache). In
3626 much (but importantly, it doesn't update the history cache). In
3623 the future it may be expanded if Alex needs more functionality
3627 the future it may be expanded if Alex needs more functionality
3624 there.
3628 there.
3625
3629
3626 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3630 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3627 info to crash reports.
3631 info to crash reports.
3628
3632
3629 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3633 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3630 just like Python's -c. Also fixed crash with invalid -color
3634 just like Python's -c. Also fixed crash with invalid -color
3631 option value at startup. Thanks to Will French
3635 option value at startup. Thanks to Will French
3632 <wfrench-AT-bestweb.net> for the bug report.
3636 <wfrench-AT-bestweb.net> for the bug report.
3633
3637
3634 2003-05-09 Fernando Perez <fperez@colorado.edu>
3638 2003-05-09 Fernando Perez <fperez@colorado.edu>
3635
3639
3636 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3640 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3637 to EvalDict (it's a mapping, after all) and simplified its code
3641 to EvalDict (it's a mapping, after all) and simplified its code
3638 quite a bit, after a nice discussion on c.l.py where Gustavo
3642 quite a bit, after a nice discussion on c.l.py where Gustavo
3639 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3643 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3640
3644
3641 2003-04-30 Fernando Perez <fperez@colorado.edu>
3645 2003-04-30 Fernando Perez <fperez@colorado.edu>
3642
3646
3643 * IPython/genutils.py (timings_out): modified it to reduce its
3647 * IPython/genutils.py (timings_out): modified it to reduce its
3644 overhead in the common reps==1 case.
3648 overhead in the common reps==1 case.
3645
3649
3646 2003-04-29 Fernando Perez <fperez@colorado.edu>
3650 2003-04-29 Fernando Perez <fperez@colorado.edu>
3647
3651
3648 * IPython/genutils.py (timings_out): Modified to use the resource
3652 * IPython/genutils.py (timings_out): Modified to use the resource
3649 module, which avoids the wraparound problems of time.clock().
3653 module, which avoids the wraparound problems of time.clock().
3650
3654
3651 2003-04-17 *** Released version 0.2.15pre4
3655 2003-04-17 *** Released version 0.2.15pre4
3652
3656
3653 2003-04-17 Fernando Perez <fperez@colorado.edu>
3657 2003-04-17 Fernando Perez <fperez@colorado.edu>
3654
3658
3655 * setup.py (scriptfiles): Split windows-specific stuff over to a
3659 * setup.py (scriptfiles): Split windows-specific stuff over to a
3656 separate file, in an attempt to have a Windows GUI installer.
3660 separate file, in an attempt to have a Windows GUI installer.
3657 That didn't work, but part of the groundwork is done.
3661 That didn't work, but part of the groundwork is done.
3658
3662
3659 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3663 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3660 indent/unindent with 4 spaces. Particularly useful in combination
3664 indent/unindent with 4 spaces. Particularly useful in combination
3661 with the new auto-indent option.
3665 with the new auto-indent option.
3662
3666
3663 2003-04-16 Fernando Perez <fperez@colorado.edu>
3667 2003-04-16 Fernando Perez <fperez@colorado.edu>
3664
3668
3665 * IPython/Magic.py: various replacements of self.rc for
3669 * IPython/Magic.py: various replacements of self.rc for
3666 self.shell.rc. A lot more remains to be done to fully disentangle
3670 self.shell.rc. A lot more remains to be done to fully disentangle
3667 this class from the main Shell class.
3671 this class from the main Shell class.
3668
3672
3669 * IPython/GnuplotRuntime.py: added checks for mouse support so
3673 * IPython/GnuplotRuntime.py: added checks for mouse support so
3670 that we don't try to enable it if the current gnuplot doesn't
3674 that we don't try to enable it if the current gnuplot doesn't
3671 really support it. Also added checks so that we don't try to
3675 really support it. Also added checks so that we don't try to
3672 enable persist under Windows (where Gnuplot doesn't recognize the
3676 enable persist under Windows (where Gnuplot doesn't recognize the
3673 option).
3677 option).
3674
3678
3675 * IPython/iplib.py (InteractiveShell.interact): Added optional
3679 * IPython/iplib.py (InteractiveShell.interact): Added optional
3676 auto-indenting code, after a patch by King C. Shu
3680 auto-indenting code, after a patch by King C. Shu
3677 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3681 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3678 get along well with pasting indented code. If I ever figure out
3682 get along well with pasting indented code. If I ever figure out
3679 how to make that part go well, it will become on by default.
3683 how to make that part go well, it will become on by default.
3680
3684
3681 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3685 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3682 crash ipython if there was an unmatched '%' in the user's prompt
3686 crash ipython if there was an unmatched '%' in the user's prompt
3683 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3687 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3684
3688
3685 * IPython/iplib.py (InteractiveShell.interact): removed the
3689 * IPython/iplib.py (InteractiveShell.interact): removed the
3686 ability to ask the user whether he wants to crash or not at the
3690 ability to ask the user whether he wants to crash or not at the
3687 'last line' exception handler. Calling functions at that point
3691 'last line' exception handler. Calling functions at that point
3688 changes the stack, and the error reports would have incorrect
3692 changes the stack, and the error reports would have incorrect
3689 tracebacks.
3693 tracebacks.
3690
3694
3691 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3695 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3692 pass through a peger a pretty-printed form of any object. After a
3696 pass through a peger a pretty-printed form of any object. After a
3693 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3697 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3694
3698
3695 2003-04-14 Fernando Perez <fperez@colorado.edu>
3699 2003-04-14 Fernando Perez <fperez@colorado.edu>
3696
3700
3697 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3701 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3698 all files in ~ would be modified at first install (instead of
3702 all files in ~ would be modified at first install (instead of
3699 ~/.ipython). This could be potentially disastrous, as the
3703 ~/.ipython). This could be potentially disastrous, as the
3700 modification (make line-endings native) could damage binary files.
3704 modification (make line-endings native) could damage binary files.
3701
3705
3702 2003-04-10 Fernando Perez <fperez@colorado.edu>
3706 2003-04-10 Fernando Perez <fperez@colorado.edu>
3703
3707
3704 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3708 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3705 handle only lines which are invalid python. This now means that
3709 handle only lines which are invalid python. This now means that
3706 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3710 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3707 for the bug report.
3711 for the bug report.
3708
3712
3709 2003-04-01 Fernando Perez <fperez@colorado.edu>
3713 2003-04-01 Fernando Perez <fperez@colorado.edu>
3710
3714
3711 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3715 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3712 where failing to set sys.last_traceback would crash pdb.pm().
3716 where failing to set sys.last_traceback would crash pdb.pm().
3713 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3717 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3714 report.
3718 report.
3715
3719
3716 2003-03-25 Fernando Perez <fperez@colorado.edu>
3720 2003-03-25 Fernando Perez <fperez@colorado.edu>
3717
3721
3718 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3722 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3719 before printing it (it had a lot of spurious blank lines at the
3723 before printing it (it had a lot of spurious blank lines at the
3720 end).
3724 end).
3721
3725
3722 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3726 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3723 output would be sent 21 times! Obviously people don't use this
3727 output would be sent 21 times! Obviously people don't use this
3724 too often, or I would have heard about it.
3728 too often, or I would have heard about it.
3725
3729
3726 2003-03-24 Fernando Perez <fperez@colorado.edu>
3730 2003-03-24 Fernando Perez <fperez@colorado.edu>
3727
3731
3728 * setup.py (scriptfiles): renamed the data_files parameter from
3732 * setup.py (scriptfiles): renamed the data_files parameter from
3729 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3733 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3730 for the patch.
3734 for the patch.
3731
3735
3732 2003-03-20 Fernando Perez <fperez@colorado.edu>
3736 2003-03-20 Fernando Perez <fperez@colorado.edu>
3733
3737
3734 * IPython/genutils.py (error): added error() and fatal()
3738 * IPython/genutils.py (error): added error() and fatal()
3735 functions.
3739 functions.
3736
3740
3737 2003-03-18 *** Released version 0.2.15pre3
3741 2003-03-18 *** Released version 0.2.15pre3
3738
3742
3739 2003-03-18 Fernando Perez <fperez@colorado.edu>
3743 2003-03-18 Fernando Perez <fperez@colorado.edu>
3740
3744
3741 * setupext/install_data_ext.py
3745 * setupext/install_data_ext.py
3742 (install_data_ext.initialize_options): Class contributed by Jack
3746 (install_data_ext.initialize_options): Class contributed by Jack
3743 Moffit for fixing the old distutils hack. He is sending this to
3747 Moffit for fixing the old distutils hack. He is sending this to
3744 the distutils folks so in the future we may not need it as a
3748 the distutils folks so in the future we may not need it as a
3745 private fix.
3749 private fix.
3746
3750
3747 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3751 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3748 changes for Debian packaging. See his patch for full details.
3752 changes for Debian packaging. See his patch for full details.
3749 The old distutils hack of making the ipythonrc* files carry a
3753 The old distutils hack of making the ipythonrc* files carry a
3750 bogus .py extension is gone, at last. Examples were moved to a
3754 bogus .py extension is gone, at last. Examples were moved to a
3751 separate subdir under doc/, and the separate executable scripts
3755 separate subdir under doc/, and the separate executable scripts
3752 now live in their own directory. Overall a great cleanup. The
3756 now live in their own directory. Overall a great cleanup. The
3753 manual was updated to use the new files, and setup.py has been
3757 manual was updated to use the new files, and setup.py has been
3754 fixed for this setup.
3758 fixed for this setup.
3755
3759
3756 * IPython/PyColorize.py (Parser.usage): made non-executable and
3760 * IPython/PyColorize.py (Parser.usage): made non-executable and
3757 created a pycolor wrapper around it to be included as a script.
3761 created a pycolor wrapper around it to be included as a script.
3758
3762
3759 2003-03-12 *** Released version 0.2.15pre2
3763 2003-03-12 *** Released version 0.2.15pre2
3760
3764
3761 2003-03-12 Fernando Perez <fperez@colorado.edu>
3765 2003-03-12 Fernando Perez <fperez@colorado.edu>
3762
3766
3763 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3767 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3764 long-standing problem with garbage characters in some terminals.
3768 long-standing problem with garbage characters in some terminals.
3765 The issue was really that the \001 and \002 escapes must _only_ be
3769 The issue was really that the \001 and \002 escapes must _only_ be
3766 passed to input prompts (which call readline), but _never_ to
3770 passed to input prompts (which call readline), but _never_ to
3767 normal text to be printed on screen. I changed ColorANSI to have
3771 normal text to be printed on screen. I changed ColorANSI to have
3768 two classes: TermColors and InputTermColors, each with the
3772 two classes: TermColors and InputTermColors, each with the
3769 appropriate escapes for input prompts or normal text. The code in
3773 appropriate escapes for input prompts or normal text. The code in
3770 Prompts.py got slightly more complicated, but this very old and
3774 Prompts.py got slightly more complicated, but this very old and
3771 annoying bug is finally fixed.
3775 annoying bug is finally fixed.
3772
3776
3773 All the credit for nailing down the real origin of this problem
3777 All the credit for nailing down the real origin of this problem
3774 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3778 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3775 *Many* thanks to him for spending quite a bit of effort on this.
3779 *Many* thanks to him for spending quite a bit of effort on this.
3776
3780
3777 2003-03-05 *** Released version 0.2.15pre1
3781 2003-03-05 *** Released version 0.2.15pre1
3778
3782
3779 2003-03-03 Fernando Perez <fperez@colorado.edu>
3783 2003-03-03 Fernando Perez <fperez@colorado.edu>
3780
3784
3781 * IPython/FakeModule.py: Moved the former _FakeModule to a
3785 * IPython/FakeModule.py: Moved the former _FakeModule to a
3782 separate file, because it's also needed by Magic (to fix a similar
3786 separate file, because it's also needed by Magic (to fix a similar
3783 pickle-related issue in @run).
3787 pickle-related issue in @run).
3784
3788
3785 2003-03-02 Fernando Perez <fperez@colorado.edu>
3789 2003-03-02 Fernando Perez <fperez@colorado.edu>
3786
3790
3787 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3791 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3788 the autocall option at runtime.
3792 the autocall option at runtime.
3789 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3793 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3790 across Magic.py to start separating Magic from InteractiveShell.
3794 across Magic.py to start separating Magic from InteractiveShell.
3791 (Magic._ofind): Fixed to return proper namespace for dotted
3795 (Magic._ofind): Fixed to return proper namespace for dotted
3792 names. Before, a dotted name would always return 'not currently
3796 names. Before, a dotted name would always return 'not currently
3793 defined', because it would find the 'parent'. s.x would be found,
3797 defined', because it would find the 'parent'. s.x would be found,
3794 but since 'x' isn't defined by itself, it would get confused.
3798 but since 'x' isn't defined by itself, it would get confused.
3795 (Magic.magic_run): Fixed pickling problems reported by Ralf
3799 (Magic.magic_run): Fixed pickling problems reported by Ralf
3796 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3800 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3797 that I'd used when Mike Heeter reported similar issues at the
3801 that I'd used when Mike Heeter reported similar issues at the
3798 top-level, but now for @run. It boils down to injecting the
3802 top-level, but now for @run. It boils down to injecting the
3799 namespace where code is being executed with something that looks
3803 namespace where code is being executed with something that looks
3800 enough like a module to fool pickle.dump(). Since a pickle stores
3804 enough like a module to fool pickle.dump(). Since a pickle stores
3801 a named reference to the importing module, we need this for
3805 a named reference to the importing module, we need this for
3802 pickles to save something sensible.
3806 pickles to save something sensible.
3803
3807
3804 * IPython/ipmaker.py (make_IPython): added an autocall option.
3808 * IPython/ipmaker.py (make_IPython): added an autocall option.
3805
3809
3806 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3810 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3807 the auto-eval code. Now autocalling is an option, and the code is
3811 the auto-eval code. Now autocalling is an option, and the code is
3808 also vastly safer. There is no more eval() involved at all.
3812 also vastly safer. There is no more eval() involved at all.
3809
3813
3810 2003-03-01 Fernando Perez <fperez@colorado.edu>
3814 2003-03-01 Fernando Perez <fperez@colorado.edu>
3811
3815
3812 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3816 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3813 dict with named keys instead of a tuple.
3817 dict with named keys instead of a tuple.
3814
3818
3815 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3819 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3816
3820
3817 * setup.py (make_shortcut): Fixed message about directories
3821 * setup.py (make_shortcut): Fixed message about directories
3818 created during Windows installation (the directories were ok, just
3822 created during Windows installation (the directories were ok, just
3819 the printed message was misleading). Thanks to Chris Liechti
3823 the printed message was misleading). Thanks to Chris Liechti
3820 <cliechti-AT-gmx.net> for the heads up.
3824 <cliechti-AT-gmx.net> for the heads up.
3821
3825
3822 2003-02-21 Fernando Perez <fperez@colorado.edu>
3826 2003-02-21 Fernando Perez <fperez@colorado.edu>
3823
3827
3824 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3828 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3825 of ValueError exception when checking for auto-execution. This
3829 of ValueError exception when checking for auto-execution. This
3826 one is raised by things like Numeric arrays arr.flat when the
3830 one is raised by things like Numeric arrays arr.flat when the
3827 array is non-contiguous.
3831 array is non-contiguous.
3828
3832
3829 2003-01-31 Fernando Perez <fperez@colorado.edu>
3833 2003-01-31 Fernando Perez <fperez@colorado.edu>
3830
3834
3831 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3835 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3832 not return any value at all (even though the command would get
3836 not return any value at all (even though the command would get
3833 executed).
3837 executed).
3834 (xsys): Flush stdout right after printing the command to ensure
3838 (xsys): Flush stdout right after printing the command to ensure
3835 proper ordering of commands and command output in the total
3839 proper ordering of commands and command output in the total
3836 output.
3840 output.
3837 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3841 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3838 system/getoutput as defaults. The old ones are kept for
3842 system/getoutput as defaults. The old ones are kept for
3839 compatibility reasons, so no code which uses this library needs
3843 compatibility reasons, so no code which uses this library needs
3840 changing.
3844 changing.
3841
3845
3842 2003-01-27 *** Released version 0.2.14
3846 2003-01-27 *** Released version 0.2.14
3843
3847
3844 2003-01-25 Fernando Perez <fperez@colorado.edu>
3848 2003-01-25 Fernando Perez <fperez@colorado.edu>
3845
3849
3846 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3850 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3847 functions defined in previous edit sessions could not be re-edited
3851 functions defined in previous edit sessions could not be re-edited
3848 (because the temp files were immediately removed). Now temp files
3852 (because the temp files were immediately removed). Now temp files
3849 are removed only at IPython's exit.
3853 are removed only at IPython's exit.
3850 (Magic.magic_run): Improved @run to perform shell-like expansions
3854 (Magic.magic_run): Improved @run to perform shell-like expansions
3851 on its arguments (~users and $VARS). With this, @run becomes more
3855 on its arguments (~users and $VARS). With this, @run becomes more
3852 like a normal command-line.
3856 like a normal command-line.
3853
3857
3854 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3858 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3855 bugs related to embedding and cleaned up that code. A fairly
3859 bugs related to embedding and cleaned up that code. A fairly
3856 important one was the impossibility to access the global namespace
3860 important one was the impossibility to access the global namespace
3857 through the embedded IPython (only local variables were visible).
3861 through the embedded IPython (only local variables were visible).
3858
3862
3859 2003-01-14 Fernando Perez <fperez@colorado.edu>
3863 2003-01-14 Fernando Perez <fperez@colorado.edu>
3860
3864
3861 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3865 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3862 auto-calling to be a bit more conservative. Now it doesn't get
3866 auto-calling to be a bit more conservative. Now it doesn't get
3863 triggered if any of '!=()<>' are in the rest of the input line, to
3867 triggered if any of '!=()<>' are in the rest of the input line, to
3864 allow comparing callables. Thanks to Alex for the heads up.
3868 allow comparing callables. Thanks to Alex for the heads up.
3865
3869
3866 2003-01-07 Fernando Perez <fperez@colorado.edu>
3870 2003-01-07 Fernando Perez <fperez@colorado.edu>
3867
3871
3868 * IPython/genutils.py (page): fixed estimation of the number of
3872 * IPython/genutils.py (page): fixed estimation of the number of
3869 lines in a string to be paged to simply count newlines. This
3873 lines in a string to be paged to simply count newlines. This
3870 prevents over-guessing due to embedded escape sequences. A better
3874 prevents over-guessing due to embedded escape sequences. A better
3871 long-term solution would involve stripping out the control chars
3875 long-term solution would involve stripping out the control chars
3872 for the count, but it's potentially so expensive I just don't
3876 for the count, but it's potentially so expensive I just don't
3873 think it's worth doing.
3877 think it's worth doing.
3874
3878
3875 2002-12-19 *** Released version 0.2.14pre50
3879 2002-12-19 *** Released version 0.2.14pre50
3876
3880
3877 2002-12-19 Fernando Perez <fperez@colorado.edu>
3881 2002-12-19 Fernando Perez <fperez@colorado.edu>
3878
3882
3879 * tools/release (version): Changed release scripts to inform
3883 * tools/release (version): Changed release scripts to inform
3880 Andrea and build a NEWS file with a list of recent changes.
3884 Andrea and build a NEWS file with a list of recent changes.
3881
3885
3882 * IPython/ColorANSI.py (__all__): changed terminal detection
3886 * IPython/ColorANSI.py (__all__): changed terminal detection
3883 code. Seems to work better for xterms without breaking
3887 code. Seems to work better for xterms without breaking
3884 konsole. Will need more testing to determine if WinXP and Mac OSX
3888 konsole. Will need more testing to determine if WinXP and Mac OSX
3885 also work ok.
3889 also work ok.
3886
3890
3887 2002-12-18 *** Released version 0.2.14pre49
3891 2002-12-18 *** Released version 0.2.14pre49
3888
3892
3889 2002-12-18 Fernando Perez <fperez@colorado.edu>
3893 2002-12-18 Fernando Perez <fperez@colorado.edu>
3890
3894
3891 * Docs: added new info about Mac OSX, from Andrea.
3895 * Docs: added new info about Mac OSX, from Andrea.
3892
3896
3893 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3897 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3894 allow direct plotting of python strings whose format is the same
3898 allow direct plotting of python strings whose format is the same
3895 of gnuplot data files.
3899 of gnuplot data files.
3896
3900
3897 2002-12-16 Fernando Perez <fperez@colorado.edu>
3901 2002-12-16 Fernando Perez <fperez@colorado.edu>
3898
3902
3899 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3903 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3900 value of exit question to be acknowledged.
3904 value of exit question to be acknowledged.
3901
3905
3902 2002-12-03 Fernando Perez <fperez@colorado.edu>
3906 2002-12-03 Fernando Perez <fperez@colorado.edu>
3903
3907
3904 * IPython/ipmaker.py: removed generators, which had been added
3908 * IPython/ipmaker.py: removed generators, which had been added
3905 by mistake in an earlier debugging run. This was causing trouble
3909 by mistake in an earlier debugging run. This was causing trouble
3906 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3910 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3907 for pointing this out.
3911 for pointing this out.
3908
3912
3909 2002-11-17 Fernando Perez <fperez@colorado.edu>
3913 2002-11-17 Fernando Perez <fperez@colorado.edu>
3910
3914
3911 * Manual: updated the Gnuplot section.
3915 * Manual: updated the Gnuplot section.
3912
3916
3913 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3917 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3914 a much better split of what goes in Runtime and what goes in
3918 a much better split of what goes in Runtime and what goes in
3915 Interactive.
3919 Interactive.
3916
3920
3917 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3921 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3918 being imported from iplib.
3922 being imported from iplib.
3919
3923
3920 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3924 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3921 for command-passing. Now the global Gnuplot instance is called
3925 for command-passing. Now the global Gnuplot instance is called
3922 'gp' instead of 'g', which was really a far too fragile and
3926 'gp' instead of 'g', which was really a far too fragile and
3923 common name.
3927 common name.
3924
3928
3925 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3929 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3926 bounding boxes generated by Gnuplot for square plots.
3930 bounding boxes generated by Gnuplot for square plots.
3927
3931
3928 * IPython/genutils.py (popkey): new function added. I should
3932 * IPython/genutils.py (popkey): new function added. I should
3929 suggest this on c.l.py as a dict method, it seems useful.
3933 suggest this on c.l.py as a dict method, it seems useful.
3930
3934
3931 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3935 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3932 to transparently handle PostScript generation. MUCH better than
3936 to transparently handle PostScript generation. MUCH better than
3933 the previous plot_eps/replot_eps (which I removed now). The code
3937 the previous plot_eps/replot_eps (which I removed now). The code
3934 is also fairly clean and well documented now (including
3938 is also fairly clean and well documented now (including
3935 docstrings).
3939 docstrings).
3936
3940
3937 2002-11-13 Fernando Perez <fperez@colorado.edu>
3941 2002-11-13 Fernando Perez <fperez@colorado.edu>
3938
3942
3939 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3943 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3940 (inconsistent with options).
3944 (inconsistent with options).
3941
3945
3942 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3946 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3943 manually disabled, I don't know why. Fixed it.
3947 manually disabled, I don't know why. Fixed it.
3944 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3948 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3945 eps output.
3949 eps output.
3946
3950
3947 2002-11-12 Fernando Perez <fperez@colorado.edu>
3951 2002-11-12 Fernando Perez <fperez@colorado.edu>
3948
3952
3949 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3953 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3950 don't propagate up to caller. Fixes crash reported by François
3954 don't propagate up to caller. Fixes crash reported by François
3951 Pinard.
3955 Pinard.
3952
3956
3953 2002-11-09 Fernando Perez <fperez@colorado.edu>
3957 2002-11-09 Fernando Perez <fperez@colorado.edu>
3954
3958
3955 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3959 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3956 history file for new users.
3960 history file for new users.
3957 (make_IPython): fixed bug where initial install would leave the
3961 (make_IPython): fixed bug where initial install would leave the
3958 user running in the .ipython dir.
3962 user running in the .ipython dir.
3959 (make_IPython): fixed bug where config dir .ipython would be
3963 (make_IPython): fixed bug where config dir .ipython would be
3960 created regardless of the given -ipythondir option. Thanks to Cory
3964 created regardless of the given -ipythondir option. Thanks to Cory
3961 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3965 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3962
3966
3963 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3967 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3964 type confirmations. Will need to use it in all of IPython's code
3968 type confirmations. Will need to use it in all of IPython's code
3965 consistently.
3969 consistently.
3966
3970
3967 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3971 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3968 context to print 31 lines instead of the default 5. This will make
3972 context to print 31 lines instead of the default 5. This will make
3969 the crash reports extremely detailed in case the problem is in
3973 the crash reports extremely detailed in case the problem is in
3970 libraries I don't have access to.
3974 libraries I don't have access to.
3971
3975
3972 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3976 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3973 line of defense' code to still crash, but giving users fair
3977 line of defense' code to still crash, but giving users fair
3974 warning. I don't want internal errors to go unreported: if there's
3978 warning. I don't want internal errors to go unreported: if there's
3975 an internal problem, IPython should crash and generate a full
3979 an internal problem, IPython should crash and generate a full
3976 report.
3980 report.
3977
3981
3978 2002-11-08 Fernando Perez <fperez@colorado.edu>
3982 2002-11-08 Fernando Perez <fperez@colorado.edu>
3979
3983
3980 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3984 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3981 otherwise uncaught exceptions which can appear if people set
3985 otherwise uncaught exceptions which can appear if people set
3982 sys.stdout to something badly broken. Thanks to a crash report
3986 sys.stdout to something badly broken. Thanks to a crash report
3983 from henni-AT-mail.brainbot.com.
3987 from henni-AT-mail.brainbot.com.
3984
3988
3985 2002-11-04 Fernando Perez <fperez@colorado.edu>
3989 2002-11-04 Fernando Perez <fperez@colorado.edu>
3986
3990
3987 * IPython/iplib.py (InteractiveShell.interact): added
3991 * IPython/iplib.py (InteractiveShell.interact): added
3988 __IPYTHON__active to the builtins. It's a flag which goes on when
3992 __IPYTHON__active to the builtins. It's a flag which goes on when
3989 the interaction starts and goes off again when it stops. This
3993 the interaction starts and goes off again when it stops. This
3990 allows embedding code to detect being inside IPython. Before this
3994 allows embedding code to detect being inside IPython. Before this
3991 was done via __IPYTHON__, but that only shows that an IPython
3995 was done via __IPYTHON__, but that only shows that an IPython
3992 instance has been created.
3996 instance has been created.
3993
3997
3994 * IPython/Magic.py (Magic.magic_env): I realized that in a
3998 * IPython/Magic.py (Magic.magic_env): I realized that in a
3995 UserDict, instance.data holds the data as a normal dict. So I
3999 UserDict, instance.data holds the data as a normal dict. So I
3996 modified @env to return os.environ.data instead of rebuilding a
4000 modified @env to return os.environ.data instead of rebuilding a
3997 dict by hand.
4001 dict by hand.
3998
4002
3999 2002-11-02 Fernando Perez <fperez@colorado.edu>
4003 2002-11-02 Fernando Perez <fperez@colorado.edu>
4000
4004
4001 * IPython/genutils.py (warn): changed so that level 1 prints no
4005 * IPython/genutils.py (warn): changed so that level 1 prints no
4002 header. Level 2 is now the default (with 'WARNING' header, as
4006 header. Level 2 is now the default (with 'WARNING' header, as
4003 before). I think I tracked all places where changes were needed in
4007 before). I think I tracked all places where changes were needed in
4004 IPython, but outside code using the old level numbering may have
4008 IPython, but outside code using the old level numbering may have
4005 broken.
4009 broken.
4006
4010
4007 * IPython/iplib.py (InteractiveShell.runcode): added this to
4011 * IPython/iplib.py (InteractiveShell.runcode): added this to
4008 handle the tracebacks in SystemExit traps correctly. The previous
4012 handle the tracebacks in SystemExit traps correctly. The previous
4009 code (through interact) was printing more of the stack than
4013 code (through interact) was printing more of the stack than
4010 necessary, showing IPython internal code to the user.
4014 necessary, showing IPython internal code to the user.
4011
4015
4012 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4016 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4013 default. Now that the default at the confirmation prompt is yes,
4017 default. Now that the default at the confirmation prompt is yes,
4014 it's not so intrusive. François' argument that ipython sessions
4018 it's not so intrusive. François' argument that ipython sessions
4015 tend to be complex enough not to lose them from an accidental C-d,
4019 tend to be complex enough not to lose them from an accidental C-d,
4016 is a valid one.
4020 is a valid one.
4017
4021
4018 * IPython/iplib.py (InteractiveShell.interact): added a
4022 * IPython/iplib.py (InteractiveShell.interact): added a
4019 showtraceback() call to the SystemExit trap, and modified the exit
4023 showtraceback() call to the SystemExit trap, and modified the exit
4020 confirmation to have yes as the default.
4024 confirmation to have yes as the default.
4021
4025
4022 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4026 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4023 this file. It's been gone from the code for a long time, this was
4027 this file. It's been gone from the code for a long time, this was
4024 simply leftover junk.
4028 simply leftover junk.
4025
4029
4026 2002-11-01 Fernando Perez <fperez@colorado.edu>
4030 2002-11-01 Fernando Perez <fperez@colorado.edu>
4027
4031
4028 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4032 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4029 added. If set, IPython now traps EOF and asks for
4033 added. If set, IPython now traps EOF and asks for
4030 confirmation. After a request by François Pinard.
4034 confirmation. After a request by François Pinard.
4031
4035
4032 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4036 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4033 of @abort, and with a new (better) mechanism for handling the
4037 of @abort, and with a new (better) mechanism for handling the
4034 exceptions.
4038 exceptions.
4035
4039
4036 2002-10-27 Fernando Perez <fperez@colorado.edu>
4040 2002-10-27 Fernando Perez <fperez@colorado.edu>
4037
4041
4038 * IPython/usage.py (__doc__): updated the --help information and
4042 * IPython/usage.py (__doc__): updated the --help information and
4039 the ipythonrc file to indicate that -log generates
4043 the ipythonrc file to indicate that -log generates
4040 ./ipython.log. Also fixed the corresponding info in @logstart.
4044 ./ipython.log. Also fixed the corresponding info in @logstart.
4041 This and several other fixes in the manuals thanks to reports by
4045 This and several other fixes in the manuals thanks to reports by
4042 François Pinard <pinard-AT-iro.umontreal.ca>.
4046 François Pinard <pinard-AT-iro.umontreal.ca>.
4043
4047
4044 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4048 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4045 refer to @logstart (instead of @log, which doesn't exist).
4049 refer to @logstart (instead of @log, which doesn't exist).
4046
4050
4047 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4051 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4048 AttributeError crash. Thanks to Christopher Armstrong
4052 AttributeError crash. Thanks to Christopher Armstrong
4049 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4053 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4050 introduced recently (in 0.2.14pre37) with the fix to the eval
4054 introduced recently (in 0.2.14pre37) with the fix to the eval
4051 problem mentioned below.
4055 problem mentioned below.
4052
4056
4053 2002-10-17 Fernando Perez <fperez@colorado.edu>
4057 2002-10-17 Fernando Perez <fperez@colorado.edu>
4054
4058
4055 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4059 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4056 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4060 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4057
4061
4058 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4062 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4059 this function to fix a problem reported by Alex Schmolck. He saw
4063 this function to fix a problem reported by Alex Schmolck. He saw
4060 it with list comprehensions and generators, which were getting
4064 it with list comprehensions and generators, which were getting
4061 called twice. The real problem was an 'eval' call in testing for
4065 called twice. The real problem was an 'eval' call in testing for
4062 automagic which was evaluating the input line silently.
4066 automagic which was evaluating the input line silently.
4063
4067
4064 This is a potentially very nasty bug, if the input has side
4068 This is a potentially very nasty bug, if the input has side
4065 effects which must not be repeated. The code is much cleaner now,
4069 effects which must not be repeated. The code is much cleaner now,
4066 without any blanket 'except' left and with a regexp test for
4070 without any blanket 'except' left and with a regexp test for
4067 actual function names.
4071 actual function names.
4068
4072
4069 But an eval remains, which I'm not fully comfortable with. I just
4073 But an eval remains, which I'm not fully comfortable with. I just
4070 don't know how to find out if an expression could be a callable in
4074 don't know how to find out if an expression could be a callable in
4071 the user's namespace without doing an eval on the string. However
4075 the user's namespace without doing an eval on the string. However
4072 that string is now much more strictly checked so that no code
4076 that string is now much more strictly checked so that no code
4073 slips by, so the eval should only happen for things that can
4077 slips by, so the eval should only happen for things that can
4074 really be only function/method names.
4078 really be only function/method names.
4075
4079
4076 2002-10-15 Fernando Perez <fperez@colorado.edu>
4080 2002-10-15 Fernando Perez <fperez@colorado.edu>
4077
4081
4078 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4082 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4079 OSX information to main manual, removed README_Mac_OSX file from
4083 OSX information to main manual, removed README_Mac_OSX file from
4080 distribution. Also updated credits for recent additions.
4084 distribution. Also updated credits for recent additions.
4081
4085
4082 2002-10-10 Fernando Perez <fperez@colorado.edu>
4086 2002-10-10 Fernando Perez <fperez@colorado.edu>
4083
4087
4084 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4088 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4085 terminal-related issues. Many thanks to Andrea Riciputi
4089 terminal-related issues. Many thanks to Andrea Riciputi
4086 <andrea.riciputi-AT-libero.it> for writing it.
4090 <andrea.riciputi-AT-libero.it> for writing it.
4087
4091
4088 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4092 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4089 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4093 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4090
4094
4091 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4095 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4092 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4096 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4093 <syver-en-AT-online.no> who both submitted patches for this problem.
4097 <syver-en-AT-online.no> who both submitted patches for this problem.
4094
4098
4095 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4099 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4096 global embedding to make sure that things don't overwrite user
4100 global embedding to make sure that things don't overwrite user
4097 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4101 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4098
4102
4099 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4103 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4100 compatibility. Thanks to Hayden Callow
4104 compatibility. Thanks to Hayden Callow
4101 <h.callow-AT-elec.canterbury.ac.nz>
4105 <h.callow-AT-elec.canterbury.ac.nz>
4102
4106
4103 2002-10-04 Fernando Perez <fperez@colorado.edu>
4107 2002-10-04 Fernando Perez <fperez@colorado.edu>
4104
4108
4105 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4109 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4106 Gnuplot.File objects.
4110 Gnuplot.File objects.
4107
4111
4108 2002-07-23 Fernando Perez <fperez@colorado.edu>
4112 2002-07-23 Fernando Perez <fperez@colorado.edu>
4109
4113
4110 * IPython/genutils.py (timing): Added timings() and timing() for
4114 * IPython/genutils.py (timing): Added timings() and timing() for
4111 quick access to the most commonly needed data, the execution
4115 quick access to the most commonly needed data, the execution
4112 times. Old timing() renamed to timings_out().
4116 times. Old timing() renamed to timings_out().
4113
4117
4114 2002-07-18 Fernando Perez <fperez@colorado.edu>
4118 2002-07-18 Fernando Perez <fperez@colorado.edu>
4115
4119
4116 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4120 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4117 bug with nested instances disrupting the parent's tab completion.
4121 bug with nested instances disrupting the parent's tab completion.
4118
4122
4119 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4123 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4120 all_completions code to begin the emacs integration.
4124 all_completions code to begin the emacs integration.
4121
4125
4122 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4126 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4123 argument to allow titling individual arrays when plotting.
4127 argument to allow titling individual arrays when plotting.
4124
4128
4125 2002-07-15 Fernando Perez <fperez@colorado.edu>
4129 2002-07-15 Fernando Perez <fperez@colorado.edu>
4126
4130
4127 * setup.py (make_shortcut): changed to retrieve the value of
4131 * setup.py (make_shortcut): changed to retrieve the value of
4128 'Program Files' directory from the registry (this value changes in
4132 'Program Files' directory from the registry (this value changes in
4129 non-english versions of Windows). Thanks to Thomas Fanslau
4133 non-english versions of Windows). Thanks to Thomas Fanslau
4130 <tfanslau-AT-gmx.de> for the report.
4134 <tfanslau-AT-gmx.de> for the report.
4131
4135
4132 2002-07-10 Fernando Perez <fperez@colorado.edu>
4136 2002-07-10 Fernando Perez <fperez@colorado.edu>
4133
4137
4134 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4138 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4135 a bug in pdb, which crashes if a line with only whitespace is
4139 a bug in pdb, which crashes if a line with only whitespace is
4136 entered. Bug report submitted to sourceforge.
4140 entered. Bug report submitted to sourceforge.
4137
4141
4138 2002-07-09 Fernando Perez <fperez@colorado.edu>
4142 2002-07-09 Fernando Perez <fperez@colorado.edu>
4139
4143
4140 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4144 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4141 reporting exceptions (it's a bug in inspect.py, I just set a
4145 reporting exceptions (it's a bug in inspect.py, I just set a
4142 workaround).
4146 workaround).
4143
4147
4144 2002-07-08 Fernando Perez <fperez@colorado.edu>
4148 2002-07-08 Fernando Perez <fperez@colorado.edu>
4145
4149
4146 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4150 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4147 __IPYTHON__ in __builtins__ to show up in user_ns.
4151 __IPYTHON__ in __builtins__ to show up in user_ns.
4148
4152
4149 2002-07-03 Fernando Perez <fperez@colorado.edu>
4153 2002-07-03 Fernando Perez <fperez@colorado.edu>
4150
4154
4151 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4155 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4152 name from @gp_set_instance to @gp_set_default.
4156 name from @gp_set_instance to @gp_set_default.
4153
4157
4154 * IPython/ipmaker.py (make_IPython): default editor value set to
4158 * IPython/ipmaker.py (make_IPython): default editor value set to
4155 '0' (a string), to match the rc file. Otherwise will crash when
4159 '0' (a string), to match the rc file. Otherwise will crash when
4156 .strip() is called on it.
4160 .strip() is called on it.
4157
4161
4158
4162
4159 2002-06-28 Fernando Perez <fperez@colorado.edu>
4163 2002-06-28 Fernando Perez <fperez@colorado.edu>
4160
4164
4161 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4165 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4162 of files in current directory when a file is executed via
4166 of files in current directory when a file is executed via
4163 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4167 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4164
4168
4165 * setup.py (manfiles): fix for rpm builds, submitted by RA
4169 * setup.py (manfiles): fix for rpm builds, submitted by RA
4166 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4170 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4167
4171
4168 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4172 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4169 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4173 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4170 string!). A. Schmolck caught this one.
4174 string!). A. Schmolck caught this one.
4171
4175
4172 2002-06-27 Fernando Perez <fperez@colorado.edu>
4176 2002-06-27 Fernando Perez <fperez@colorado.edu>
4173
4177
4174 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4178 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4175 defined files at the cmd line. __name__ wasn't being set to
4179 defined files at the cmd line. __name__ wasn't being set to
4176 __main__.
4180 __main__.
4177
4181
4178 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4182 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4179 regular lists and tuples besides Numeric arrays.
4183 regular lists and tuples besides Numeric arrays.
4180
4184
4181 * IPython/Prompts.py (CachedOutput.__call__): Added output
4185 * IPython/Prompts.py (CachedOutput.__call__): Added output
4182 supression for input ending with ';'. Similar to Mathematica and
4186 supression for input ending with ';'. Similar to Mathematica and
4183 Matlab. The _* vars and Out[] list are still updated, just like
4187 Matlab. The _* vars and Out[] list are still updated, just like
4184 Mathematica behaves.
4188 Mathematica behaves.
4185
4189
4186 2002-06-25 Fernando Perez <fperez@colorado.edu>
4190 2002-06-25 Fernando Perez <fperez@colorado.edu>
4187
4191
4188 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4192 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4189 .ini extensions for profiels under Windows.
4193 .ini extensions for profiels under Windows.
4190
4194
4191 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4195 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4192 string form. Fix contributed by Alexander Schmolck
4196 string form. Fix contributed by Alexander Schmolck
4193 <a.schmolck-AT-gmx.net>
4197 <a.schmolck-AT-gmx.net>
4194
4198
4195 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4199 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4196 pre-configured Gnuplot instance.
4200 pre-configured Gnuplot instance.
4197
4201
4198 2002-06-21 Fernando Perez <fperez@colorado.edu>
4202 2002-06-21 Fernando Perez <fperez@colorado.edu>
4199
4203
4200 * IPython/numutils.py (exp_safe): new function, works around the
4204 * IPython/numutils.py (exp_safe): new function, works around the
4201 underflow problems in Numeric.
4205 underflow problems in Numeric.
4202 (log2): New fn. Safe log in base 2: returns exact integer answer
4206 (log2): New fn. Safe log in base 2: returns exact integer answer
4203 for exact integer powers of 2.
4207 for exact integer powers of 2.
4204
4208
4205 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4209 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4206 properly.
4210 properly.
4207
4211
4208 2002-06-20 Fernando Perez <fperez@colorado.edu>
4212 2002-06-20 Fernando Perez <fperez@colorado.edu>
4209
4213
4210 * IPython/genutils.py (timing): new function like
4214 * IPython/genutils.py (timing): new function like
4211 Mathematica's. Similar to time_test, but returns more info.
4215 Mathematica's. Similar to time_test, but returns more info.
4212
4216
4213 2002-06-18 Fernando Perez <fperez@colorado.edu>
4217 2002-06-18 Fernando Perez <fperez@colorado.edu>
4214
4218
4215 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4219 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4216 according to Mike Heeter's suggestions.
4220 according to Mike Heeter's suggestions.
4217
4221
4218 2002-06-16 Fernando Perez <fperez@colorado.edu>
4222 2002-06-16 Fernando Perez <fperez@colorado.edu>
4219
4223
4220 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4224 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4221 system. GnuplotMagic is gone as a user-directory option. New files
4225 system. GnuplotMagic is gone as a user-directory option. New files
4222 make it easier to use all the gnuplot stuff both from external
4226 make it easier to use all the gnuplot stuff both from external
4223 programs as well as from IPython. Had to rewrite part of
4227 programs as well as from IPython. Had to rewrite part of
4224 hardcopy() b/c of a strange bug: often the ps files simply don't
4228 hardcopy() b/c of a strange bug: often the ps files simply don't
4225 get created, and require a repeat of the command (often several
4229 get created, and require a repeat of the command (often several
4226 times).
4230 times).
4227
4231
4228 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4232 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4229 resolve output channel at call time, so that if sys.stderr has
4233 resolve output channel at call time, so that if sys.stderr has
4230 been redirected by user this gets honored.
4234 been redirected by user this gets honored.
4231
4235
4232 2002-06-13 Fernando Perez <fperez@colorado.edu>
4236 2002-06-13 Fernando Perez <fperez@colorado.edu>
4233
4237
4234 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4238 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4235 IPShell. Kept a copy with the old names to avoid breaking people's
4239 IPShell. Kept a copy with the old names to avoid breaking people's
4236 embedded code.
4240 embedded code.
4237
4241
4238 * IPython/ipython: simplified it to the bare minimum after
4242 * IPython/ipython: simplified it to the bare minimum after
4239 Holger's suggestions. Added info about how to use it in
4243 Holger's suggestions. Added info about how to use it in
4240 PYTHONSTARTUP.
4244 PYTHONSTARTUP.
4241
4245
4242 * IPython/Shell.py (IPythonShell): changed the options passing
4246 * IPython/Shell.py (IPythonShell): changed the options passing
4243 from a string with funky %s replacements to a straight list. Maybe
4247 from a string with funky %s replacements to a straight list. Maybe
4244 a bit more typing, but it follows sys.argv conventions, so there's
4248 a bit more typing, but it follows sys.argv conventions, so there's
4245 less special-casing to remember.
4249 less special-casing to remember.
4246
4250
4247 2002-06-12 Fernando Perez <fperez@colorado.edu>
4251 2002-06-12 Fernando Perez <fperez@colorado.edu>
4248
4252
4249 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4253 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4250 command. Thanks to a suggestion by Mike Heeter.
4254 command. Thanks to a suggestion by Mike Heeter.
4251 (Magic.magic_pfile): added behavior to look at filenames if given
4255 (Magic.magic_pfile): added behavior to look at filenames if given
4252 arg is not a defined object.
4256 arg is not a defined object.
4253 (Magic.magic_save): New @save function to save code snippets. Also
4257 (Magic.magic_save): New @save function to save code snippets. Also
4254 a Mike Heeter idea.
4258 a Mike Heeter idea.
4255
4259
4256 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4260 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4257 plot() and replot(). Much more convenient now, especially for
4261 plot() and replot(). Much more convenient now, especially for
4258 interactive use.
4262 interactive use.
4259
4263
4260 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4264 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4261 filenames.
4265 filenames.
4262
4266
4263 2002-06-02 Fernando Perez <fperez@colorado.edu>
4267 2002-06-02 Fernando Perez <fperez@colorado.edu>
4264
4268
4265 * IPython/Struct.py (Struct.__init__): modified to admit
4269 * IPython/Struct.py (Struct.__init__): modified to admit
4266 initialization via another struct.
4270 initialization via another struct.
4267
4271
4268 * IPython/genutils.py (SystemExec.__init__): New stateful
4272 * IPython/genutils.py (SystemExec.__init__): New stateful
4269 interface to xsys and bq. Useful for writing system scripts.
4273 interface to xsys and bq. Useful for writing system scripts.
4270
4274
4271 2002-05-30 Fernando Perez <fperez@colorado.edu>
4275 2002-05-30 Fernando Perez <fperez@colorado.edu>
4272
4276
4273 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4277 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4274 documents. This will make the user download smaller (it's getting
4278 documents. This will make the user download smaller (it's getting
4275 too big).
4279 too big).
4276
4280
4277 2002-05-29 Fernando Perez <fperez@colorado.edu>
4281 2002-05-29 Fernando Perez <fperez@colorado.edu>
4278
4282
4279 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4283 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4280 fix problems with shelve and pickle. Seems to work, but I don't
4284 fix problems with shelve and pickle. Seems to work, but I don't
4281 know if corner cases break it. Thanks to Mike Heeter
4285 know if corner cases break it. Thanks to Mike Heeter
4282 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4286 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4283
4287
4284 2002-05-24 Fernando Perez <fperez@colorado.edu>
4288 2002-05-24 Fernando Perez <fperez@colorado.edu>
4285
4289
4286 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4290 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4287 macros having broken.
4291 macros having broken.
4288
4292
4289 2002-05-21 Fernando Perez <fperez@colorado.edu>
4293 2002-05-21 Fernando Perez <fperez@colorado.edu>
4290
4294
4291 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4295 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4292 introduced logging bug: all history before logging started was
4296 introduced logging bug: all history before logging started was
4293 being written one character per line! This came from the redesign
4297 being written one character per line! This came from the redesign
4294 of the input history as a special list which slices to strings,
4298 of the input history as a special list which slices to strings,
4295 not to lists.
4299 not to lists.
4296
4300
4297 2002-05-20 Fernando Perez <fperez@colorado.edu>
4301 2002-05-20 Fernando Perez <fperez@colorado.edu>
4298
4302
4299 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4303 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4300 be an attribute of all classes in this module. The design of these
4304 be an attribute of all classes in this module. The design of these
4301 classes needs some serious overhauling.
4305 classes needs some serious overhauling.
4302
4306
4303 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4307 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4304 which was ignoring '_' in option names.
4308 which was ignoring '_' in option names.
4305
4309
4306 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4310 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4307 'Verbose_novars' to 'Context' and made it the new default. It's a
4311 'Verbose_novars' to 'Context' and made it the new default. It's a
4308 bit more readable and also safer than verbose.
4312 bit more readable and also safer than verbose.
4309
4313
4310 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4314 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4311 triple-quoted strings.
4315 triple-quoted strings.
4312
4316
4313 * IPython/OInspect.py (__all__): new module exposing the object
4317 * IPython/OInspect.py (__all__): new module exposing the object
4314 introspection facilities. Now the corresponding magics are dummy
4318 introspection facilities. Now the corresponding magics are dummy
4315 wrappers around this. Having this module will make it much easier
4319 wrappers around this. Having this module will make it much easier
4316 to put these functions into our modified pdb.
4320 to put these functions into our modified pdb.
4317 This new object inspector system uses the new colorizing module,
4321 This new object inspector system uses the new colorizing module,
4318 so source code and other things are nicely syntax highlighted.
4322 so source code and other things are nicely syntax highlighted.
4319
4323
4320 2002-05-18 Fernando Perez <fperez@colorado.edu>
4324 2002-05-18 Fernando Perez <fperez@colorado.edu>
4321
4325
4322 * IPython/ColorANSI.py: Split the coloring tools into a separate
4326 * IPython/ColorANSI.py: Split the coloring tools into a separate
4323 module so I can use them in other code easier (they were part of
4327 module so I can use them in other code easier (they were part of
4324 ultraTB).
4328 ultraTB).
4325
4329
4326 2002-05-17 Fernando Perez <fperez@colorado.edu>
4330 2002-05-17 Fernando Perez <fperez@colorado.edu>
4327
4331
4328 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4332 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4329 fixed it to set the global 'g' also to the called instance, as
4333 fixed it to set the global 'g' also to the called instance, as
4330 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4334 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4331 user's 'g' variables).
4335 user's 'g' variables).
4332
4336
4333 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4337 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4334 global variables (aliases to _ih,_oh) so that users which expect
4338 global variables (aliases to _ih,_oh) so that users which expect
4335 In[5] or Out[7] to work aren't unpleasantly surprised.
4339 In[5] or Out[7] to work aren't unpleasantly surprised.
4336 (InputList.__getslice__): new class to allow executing slices of
4340 (InputList.__getslice__): new class to allow executing slices of
4337 input history directly. Very simple class, complements the use of
4341 input history directly. Very simple class, complements the use of
4338 macros.
4342 macros.
4339
4343
4340 2002-05-16 Fernando Perez <fperez@colorado.edu>
4344 2002-05-16 Fernando Perez <fperez@colorado.edu>
4341
4345
4342 * setup.py (docdirbase): make doc directory be just doc/IPython
4346 * setup.py (docdirbase): make doc directory be just doc/IPython
4343 without version numbers, it will reduce clutter for users.
4347 without version numbers, it will reduce clutter for users.
4344
4348
4345 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4349 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4346 execfile call to prevent possible memory leak. See for details:
4350 execfile call to prevent possible memory leak. See for details:
4347 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4351 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4348
4352
4349 2002-05-15 Fernando Perez <fperez@colorado.edu>
4353 2002-05-15 Fernando Perez <fperez@colorado.edu>
4350
4354
4351 * IPython/Magic.py (Magic.magic_psource): made the object
4355 * IPython/Magic.py (Magic.magic_psource): made the object
4352 introspection names be more standard: pdoc, pdef, pfile and
4356 introspection names be more standard: pdoc, pdef, pfile and
4353 psource. They all print/page their output, and it makes
4357 psource. They all print/page their output, and it makes
4354 remembering them easier. Kept old names for compatibility as
4358 remembering them easier. Kept old names for compatibility as
4355 aliases.
4359 aliases.
4356
4360
4357 2002-05-14 Fernando Perez <fperez@colorado.edu>
4361 2002-05-14 Fernando Perez <fperez@colorado.edu>
4358
4362
4359 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4363 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4360 what the mouse problem was. The trick is to use gnuplot with temp
4364 what the mouse problem was. The trick is to use gnuplot with temp
4361 files and NOT with pipes (for data communication), because having
4365 files and NOT with pipes (for data communication), because having
4362 both pipes and the mouse on is bad news.
4366 both pipes and the mouse on is bad news.
4363
4367
4364 2002-05-13 Fernando Perez <fperez@colorado.edu>
4368 2002-05-13 Fernando Perez <fperez@colorado.edu>
4365
4369
4366 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4370 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4367 bug. Information would be reported about builtins even when
4371 bug. Information would be reported about builtins even when
4368 user-defined functions overrode them.
4372 user-defined functions overrode them.
4369
4373
4370 2002-05-11 Fernando Perez <fperez@colorado.edu>
4374 2002-05-11 Fernando Perez <fperez@colorado.edu>
4371
4375
4372 * IPython/__init__.py (__all__): removed FlexCompleter from
4376 * IPython/__init__.py (__all__): removed FlexCompleter from
4373 __all__ so that things don't fail in platforms without readline.
4377 __all__ so that things don't fail in platforms without readline.
4374
4378
4375 2002-05-10 Fernando Perez <fperez@colorado.edu>
4379 2002-05-10 Fernando Perez <fperez@colorado.edu>
4376
4380
4377 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4381 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4378 it requires Numeric, effectively making Numeric a dependency for
4382 it requires Numeric, effectively making Numeric a dependency for
4379 IPython.
4383 IPython.
4380
4384
4381 * Released 0.2.13
4385 * Released 0.2.13
4382
4386
4383 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4387 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4384 profiler interface. Now all the major options from the profiler
4388 profiler interface. Now all the major options from the profiler
4385 module are directly supported in IPython, both for single
4389 module are directly supported in IPython, both for single
4386 expressions (@prun) and for full programs (@run -p).
4390 expressions (@prun) and for full programs (@run -p).
4387
4391
4388 2002-05-09 Fernando Perez <fperez@colorado.edu>
4392 2002-05-09 Fernando Perez <fperez@colorado.edu>
4389
4393
4390 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4394 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4391 magic properly formatted for screen.
4395 magic properly formatted for screen.
4392
4396
4393 * setup.py (make_shortcut): Changed things to put pdf version in
4397 * setup.py (make_shortcut): Changed things to put pdf version in
4394 doc/ instead of doc/manual (had to change lyxport a bit).
4398 doc/ instead of doc/manual (had to change lyxport a bit).
4395
4399
4396 * IPython/Magic.py (Profile.string_stats): made profile runs go
4400 * IPython/Magic.py (Profile.string_stats): made profile runs go
4397 through pager (they are long and a pager allows searching, saving,
4401 through pager (they are long and a pager allows searching, saving,
4398 etc.)
4402 etc.)
4399
4403
4400 2002-05-08 Fernando Perez <fperez@colorado.edu>
4404 2002-05-08 Fernando Perez <fperez@colorado.edu>
4401
4405
4402 * Released 0.2.12
4406 * Released 0.2.12
4403
4407
4404 2002-05-06 Fernando Perez <fperez@colorado.edu>
4408 2002-05-06 Fernando Perez <fperez@colorado.edu>
4405
4409
4406 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4410 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4407 introduced); 'hist n1 n2' was broken.
4411 introduced); 'hist n1 n2' was broken.
4408 (Magic.magic_pdb): added optional on/off arguments to @pdb
4412 (Magic.magic_pdb): added optional on/off arguments to @pdb
4409 (Magic.magic_run): added option -i to @run, which executes code in
4413 (Magic.magic_run): added option -i to @run, which executes code in
4410 the IPython namespace instead of a clean one. Also added @irun as
4414 the IPython namespace instead of a clean one. Also added @irun as
4411 an alias to @run -i.
4415 an alias to @run -i.
4412
4416
4413 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4417 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4414 fixed (it didn't really do anything, the namespaces were wrong).
4418 fixed (it didn't really do anything, the namespaces were wrong).
4415
4419
4416 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4420 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4417
4421
4418 * IPython/__init__.py (__all__): Fixed package namespace, now
4422 * IPython/__init__.py (__all__): Fixed package namespace, now
4419 'import IPython' does give access to IPython.<all> as
4423 'import IPython' does give access to IPython.<all> as
4420 expected. Also renamed __release__ to Release.
4424 expected. Also renamed __release__ to Release.
4421
4425
4422 * IPython/Debugger.py (__license__): created new Pdb class which
4426 * IPython/Debugger.py (__license__): created new Pdb class which
4423 functions like a drop-in for the normal pdb.Pdb but does NOT
4427 functions like a drop-in for the normal pdb.Pdb but does NOT
4424 import readline by default. This way it doesn't muck up IPython's
4428 import readline by default. This way it doesn't muck up IPython's
4425 readline handling, and now tab-completion finally works in the
4429 readline handling, and now tab-completion finally works in the
4426 debugger -- sort of. It completes things globally visible, but the
4430 debugger -- sort of. It completes things globally visible, but the
4427 completer doesn't track the stack as pdb walks it. That's a bit
4431 completer doesn't track the stack as pdb walks it. That's a bit
4428 tricky, and I'll have to implement it later.
4432 tricky, and I'll have to implement it later.
4429
4433
4430 2002-05-05 Fernando Perez <fperez@colorado.edu>
4434 2002-05-05 Fernando Perez <fperez@colorado.edu>
4431
4435
4432 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4436 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4433 magic docstrings when printed via ? (explicit \'s were being
4437 magic docstrings when printed via ? (explicit \'s were being
4434 printed).
4438 printed).
4435
4439
4436 * IPython/ipmaker.py (make_IPython): fixed namespace
4440 * IPython/ipmaker.py (make_IPython): fixed namespace
4437 identification bug. Now variables loaded via logs or command-line
4441 identification bug. Now variables loaded via logs or command-line
4438 files are recognized in the interactive namespace by @who.
4442 files are recognized in the interactive namespace by @who.
4439
4443
4440 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4444 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4441 log replay system stemming from the string form of Structs.
4445 log replay system stemming from the string form of Structs.
4442
4446
4443 * IPython/Magic.py (Macro.__init__): improved macros to properly
4447 * IPython/Magic.py (Macro.__init__): improved macros to properly
4444 handle magic commands in them.
4448 handle magic commands in them.
4445 (Magic.magic_logstart): usernames are now expanded so 'logstart
4449 (Magic.magic_logstart): usernames are now expanded so 'logstart
4446 ~/mylog' now works.
4450 ~/mylog' now works.
4447
4451
4448 * IPython/iplib.py (complete): fixed bug where paths starting with
4452 * IPython/iplib.py (complete): fixed bug where paths starting with
4449 '/' would be completed as magic names.
4453 '/' would be completed as magic names.
4450
4454
4451 2002-05-04 Fernando Perez <fperez@colorado.edu>
4455 2002-05-04 Fernando Perez <fperez@colorado.edu>
4452
4456
4453 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4457 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4454 allow running full programs under the profiler's control.
4458 allow running full programs under the profiler's control.
4455
4459
4456 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4460 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4457 mode to report exceptions verbosely but without formatting
4461 mode to report exceptions verbosely but without formatting
4458 variables. This addresses the issue of ipython 'freezing' (it's
4462 variables. This addresses the issue of ipython 'freezing' (it's
4459 not frozen, but caught in an expensive formatting loop) when huge
4463 not frozen, but caught in an expensive formatting loop) when huge
4460 variables are in the context of an exception.
4464 variables are in the context of an exception.
4461 (VerboseTB.text): Added '--->' markers at line where exception was
4465 (VerboseTB.text): Added '--->' markers at line where exception was
4462 triggered. Much clearer to read, especially in NoColor modes.
4466 triggered. Much clearer to read, especially in NoColor modes.
4463
4467
4464 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4468 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4465 implemented in reverse when changing to the new parse_options().
4469 implemented in reverse when changing to the new parse_options().
4466
4470
4467 2002-05-03 Fernando Perez <fperez@colorado.edu>
4471 2002-05-03 Fernando Perez <fperez@colorado.edu>
4468
4472
4469 * IPython/Magic.py (Magic.parse_options): new function so that
4473 * IPython/Magic.py (Magic.parse_options): new function so that
4470 magics can parse options easier.
4474 magics can parse options easier.
4471 (Magic.magic_prun): new function similar to profile.run(),
4475 (Magic.magic_prun): new function similar to profile.run(),
4472 suggested by Chris Hart.
4476 suggested by Chris Hart.
4473 (Magic.magic_cd): fixed behavior so that it only changes if
4477 (Magic.magic_cd): fixed behavior so that it only changes if
4474 directory actually is in history.
4478 directory actually is in history.
4475
4479
4476 * IPython/usage.py (__doc__): added information about potential
4480 * IPython/usage.py (__doc__): added information about potential
4477 slowness of Verbose exception mode when there are huge data
4481 slowness of Verbose exception mode when there are huge data
4478 structures to be formatted (thanks to Archie Paulson).
4482 structures to be formatted (thanks to Archie Paulson).
4479
4483
4480 * IPython/ipmaker.py (make_IPython): Changed default logging
4484 * IPython/ipmaker.py (make_IPython): Changed default logging
4481 (when simply called with -log) to use curr_dir/ipython.log in
4485 (when simply called with -log) to use curr_dir/ipython.log in
4482 rotate mode. Fixed crash which was occuring with -log before
4486 rotate mode. Fixed crash which was occuring with -log before
4483 (thanks to Jim Boyle).
4487 (thanks to Jim Boyle).
4484
4488
4485 2002-05-01 Fernando Perez <fperez@colorado.edu>
4489 2002-05-01 Fernando Perez <fperez@colorado.edu>
4486
4490
4487 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4491 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4488 was nasty -- though somewhat of a corner case).
4492 was nasty -- though somewhat of a corner case).
4489
4493
4490 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4494 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4491 text (was a bug).
4495 text (was a bug).
4492
4496
4493 2002-04-30 Fernando Perez <fperez@colorado.edu>
4497 2002-04-30 Fernando Perez <fperez@colorado.edu>
4494
4498
4495 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4499 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4496 a print after ^D or ^C from the user so that the In[] prompt
4500 a print after ^D or ^C from the user so that the In[] prompt
4497 doesn't over-run the gnuplot one.
4501 doesn't over-run the gnuplot one.
4498
4502
4499 2002-04-29 Fernando Perez <fperez@colorado.edu>
4503 2002-04-29 Fernando Perez <fperez@colorado.edu>
4500
4504
4501 * Released 0.2.10
4505 * Released 0.2.10
4502
4506
4503 * IPython/__release__.py (version): get date dynamically.
4507 * IPython/__release__.py (version): get date dynamically.
4504
4508
4505 * Misc. documentation updates thanks to Arnd's comments. Also ran
4509 * Misc. documentation updates thanks to Arnd's comments. Also ran
4506 a full spellcheck on the manual (hadn't been done in a while).
4510 a full spellcheck on the manual (hadn't been done in a while).
4507
4511
4508 2002-04-27 Fernando Perez <fperez@colorado.edu>
4512 2002-04-27 Fernando Perez <fperez@colorado.edu>
4509
4513
4510 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4514 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4511 starting a log in mid-session would reset the input history list.
4515 starting a log in mid-session would reset the input history list.
4512
4516
4513 2002-04-26 Fernando Perez <fperez@colorado.edu>
4517 2002-04-26 Fernando Perez <fperez@colorado.edu>
4514
4518
4515 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4519 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4516 all files were being included in an update. Now anything in
4520 all files were being included in an update. Now anything in
4517 UserConfig that matches [A-Za-z]*.py will go (this excludes
4521 UserConfig that matches [A-Za-z]*.py will go (this excludes
4518 __init__.py)
4522 __init__.py)
4519
4523
4520 2002-04-25 Fernando Perez <fperez@colorado.edu>
4524 2002-04-25 Fernando Perez <fperez@colorado.edu>
4521
4525
4522 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4526 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4523 to __builtins__ so that any form of embedded or imported code can
4527 to __builtins__ so that any form of embedded or imported code can
4524 test for being inside IPython.
4528 test for being inside IPython.
4525
4529
4526 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4530 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4527 changed to GnuplotMagic because it's now an importable module,
4531 changed to GnuplotMagic because it's now an importable module,
4528 this makes the name follow that of the standard Gnuplot module.
4532 this makes the name follow that of the standard Gnuplot module.
4529 GnuplotMagic can now be loaded at any time in mid-session.
4533 GnuplotMagic can now be loaded at any time in mid-session.
4530
4534
4531 2002-04-24 Fernando Perez <fperez@colorado.edu>
4535 2002-04-24 Fernando Perez <fperez@colorado.edu>
4532
4536
4533 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4537 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4534 the globals (IPython has its own namespace) and the
4538 the globals (IPython has its own namespace) and the
4535 PhysicalQuantity stuff is much better anyway.
4539 PhysicalQuantity stuff is much better anyway.
4536
4540
4537 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4541 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4538 embedding example to standard user directory for
4542 embedding example to standard user directory for
4539 distribution. Also put it in the manual.
4543 distribution. Also put it in the manual.
4540
4544
4541 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4545 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4542 instance as first argument (so it doesn't rely on some obscure
4546 instance as first argument (so it doesn't rely on some obscure
4543 hidden global).
4547 hidden global).
4544
4548
4545 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4549 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4546 delimiters. While it prevents ().TAB from working, it allows
4550 delimiters. While it prevents ().TAB from working, it allows
4547 completions in open (... expressions. This is by far a more common
4551 completions in open (... expressions. This is by far a more common
4548 case.
4552 case.
4549
4553
4550 2002-04-23 Fernando Perez <fperez@colorado.edu>
4554 2002-04-23 Fernando Perez <fperez@colorado.edu>
4551
4555
4552 * IPython/Extensions/InterpreterPasteInput.py: new
4556 * IPython/Extensions/InterpreterPasteInput.py: new
4553 syntax-processing module for pasting lines with >>> or ... at the
4557 syntax-processing module for pasting lines with >>> or ... at the
4554 start.
4558 start.
4555
4559
4556 * IPython/Extensions/PhysicalQ_Interactive.py
4560 * IPython/Extensions/PhysicalQ_Interactive.py
4557 (PhysicalQuantityInteractive.__int__): fixed to work with either
4561 (PhysicalQuantityInteractive.__int__): fixed to work with either
4558 Numeric or math.
4562 Numeric or math.
4559
4563
4560 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4564 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4561 provided profiles. Now we have:
4565 provided profiles. Now we have:
4562 -math -> math module as * and cmath with its own namespace.
4566 -math -> math module as * and cmath with its own namespace.
4563 -numeric -> Numeric as *, plus gnuplot & grace
4567 -numeric -> Numeric as *, plus gnuplot & grace
4564 -physics -> same as before
4568 -physics -> same as before
4565
4569
4566 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4570 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4567 user-defined magics wouldn't be found by @magic if they were
4571 user-defined magics wouldn't be found by @magic if they were
4568 defined as class methods. Also cleaned up the namespace search
4572 defined as class methods. Also cleaned up the namespace search
4569 logic and the string building (to use %s instead of many repeated
4573 logic and the string building (to use %s instead of many repeated
4570 string adds).
4574 string adds).
4571
4575
4572 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4576 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4573 of user-defined magics to operate with class methods (cleaner, in
4577 of user-defined magics to operate with class methods (cleaner, in
4574 line with the gnuplot code).
4578 line with the gnuplot code).
4575
4579
4576 2002-04-22 Fernando Perez <fperez@colorado.edu>
4580 2002-04-22 Fernando Perez <fperez@colorado.edu>
4577
4581
4578 * setup.py: updated dependency list so that manual is updated when
4582 * setup.py: updated dependency list so that manual is updated when
4579 all included files change.
4583 all included files change.
4580
4584
4581 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4585 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4582 the delimiter removal option (the fix is ugly right now).
4586 the delimiter removal option (the fix is ugly right now).
4583
4587
4584 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4588 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4585 all of the math profile (quicker loading, no conflict between
4589 all of the math profile (quicker loading, no conflict between
4586 g-9.8 and g-gnuplot).
4590 g-9.8 and g-gnuplot).
4587
4591
4588 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4592 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4589 name of post-mortem files to IPython_crash_report.txt.
4593 name of post-mortem files to IPython_crash_report.txt.
4590
4594
4591 * Cleanup/update of the docs. Added all the new readline info and
4595 * Cleanup/update of the docs. Added all the new readline info and
4592 formatted all lists as 'real lists'.
4596 formatted all lists as 'real lists'.
4593
4597
4594 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4598 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4595 tab-completion options, since the full readline parse_and_bind is
4599 tab-completion options, since the full readline parse_and_bind is
4596 now accessible.
4600 now accessible.
4597
4601
4598 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4602 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4599 handling of readline options. Now users can specify any string to
4603 handling of readline options. Now users can specify any string to
4600 be passed to parse_and_bind(), as well as the delimiters to be
4604 be passed to parse_and_bind(), as well as the delimiters to be
4601 removed.
4605 removed.
4602 (InteractiveShell.__init__): Added __name__ to the global
4606 (InteractiveShell.__init__): Added __name__ to the global
4603 namespace so that things like Itpl which rely on its existence
4607 namespace so that things like Itpl which rely on its existence
4604 don't crash.
4608 don't crash.
4605 (InteractiveShell._prefilter): Defined the default with a _ so
4609 (InteractiveShell._prefilter): Defined the default with a _ so
4606 that prefilter() is easier to override, while the default one
4610 that prefilter() is easier to override, while the default one
4607 remains available.
4611 remains available.
4608
4612
4609 2002-04-18 Fernando Perez <fperez@colorado.edu>
4613 2002-04-18 Fernando Perez <fperez@colorado.edu>
4610
4614
4611 * Added information about pdb in the docs.
4615 * Added information about pdb in the docs.
4612
4616
4613 2002-04-17 Fernando Perez <fperez@colorado.edu>
4617 2002-04-17 Fernando Perez <fperez@colorado.edu>
4614
4618
4615 * IPython/ipmaker.py (make_IPython): added rc_override option to
4619 * IPython/ipmaker.py (make_IPython): added rc_override option to
4616 allow passing config options at creation time which may override
4620 allow passing config options at creation time which may override
4617 anything set in the config files or command line. This is
4621 anything set in the config files or command line. This is
4618 particularly useful for configuring embedded instances.
4622 particularly useful for configuring embedded instances.
4619
4623
4620 2002-04-15 Fernando Perez <fperez@colorado.edu>
4624 2002-04-15 Fernando Perez <fperez@colorado.edu>
4621
4625
4622 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4626 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4623 crash embedded instances because of the input cache falling out of
4627 crash embedded instances because of the input cache falling out of
4624 sync with the output counter.
4628 sync with the output counter.
4625
4629
4626 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4630 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4627 mode which calls pdb after an uncaught exception in IPython itself.
4631 mode which calls pdb after an uncaught exception in IPython itself.
4628
4632
4629 2002-04-14 Fernando Perez <fperez@colorado.edu>
4633 2002-04-14 Fernando Perez <fperez@colorado.edu>
4630
4634
4631 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4635 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4632 readline, fix it back after each call.
4636 readline, fix it back after each call.
4633
4637
4634 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4638 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4635 method to force all access via __call__(), which guarantees that
4639 method to force all access via __call__(), which guarantees that
4636 traceback references are properly deleted.
4640 traceback references are properly deleted.
4637
4641
4638 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4642 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4639 improve printing when pprint is in use.
4643 improve printing when pprint is in use.
4640
4644
4641 2002-04-13 Fernando Perez <fperez@colorado.edu>
4645 2002-04-13 Fernando Perez <fperez@colorado.edu>
4642
4646
4643 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4647 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4644 exceptions aren't caught anymore. If the user triggers one, he
4648 exceptions aren't caught anymore. If the user triggers one, he
4645 should know why he's doing it and it should go all the way up,
4649 should know why he's doing it and it should go all the way up,
4646 just like any other exception. So now @abort will fully kill the
4650 just like any other exception. So now @abort will fully kill the
4647 embedded interpreter and the embedding code (unless that happens
4651 embedded interpreter and the embedding code (unless that happens
4648 to catch SystemExit).
4652 to catch SystemExit).
4649
4653
4650 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4654 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4651 and a debugger() method to invoke the interactive pdb debugger
4655 and a debugger() method to invoke the interactive pdb debugger
4652 after printing exception information. Also added the corresponding
4656 after printing exception information. Also added the corresponding
4653 -pdb option and @pdb magic to control this feature, and updated
4657 -pdb option and @pdb magic to control this feature, and updated
4654 the docs. After a suggestion from Christopher Hart
4658 the docs. After a suggestion from Christopher Hart
4655 (hart-AT-caltech.edu).
4659 (hart-AT-caltech.edu).
4656
4660
4657 2002-04-12 Fernando Perez <fperez@colorado.edu>
4661 2002-04-12 Fernando Perez <fperez@colorado.edu>
4658
4662
4659 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4663 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4660 the exception handlers defined by the user (not the CrashHandler)
4664 the exception handlers defined by the user (not the CrashHandler)
4661 so that user exceptions don't trigger an ipython bug report.
4665 so that user exceptions don't trigger an ipython bug report.
4662
4666
4663 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4667 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4664 configurable (it should have always been so).
4668 configurable (it should have always been so).
4665
4669
4666 2002-03-26 Fernando Perez <fperez@colorado.edu>
4670 2002-03-26 Fernando Perez <fperez@colorado.edu>
4667
4671
4668 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4672 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4669 and there to fix embedding namespace issues. This should all be
4673 and there to fix embedding namespace issues. This should all be
4670 done in a more elegant way.
4674 done in a more elegant way.
4671
4675
4672 2002-03-25 Fernando Perez <fperez@colorado.edu>
4676 2002-03-25 Fernando Perez <fperez@colorado.edu>
4673
4677
4674 * IPython/genutils.py (get_home_dir): Try to make it work under
4678 * IPython/genutils.py (get_home_dir): Try to make it work under
4675 win9x also.
4679 win9x also.
4676
4680
4677 2002-03-20 Fernando Perez <fperez@colorado.edu>
4681 2002-03-20 Fernando Perez <fperez@colorado.edu>
4678
4682
4679 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4683 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4680 sys.displayhook untouched upon __init__.
4684 sys.displayhook untouched upon __init__.
4681
4685
4682 2002-03-19 Fernando Perez <fperez@colorado.edu>
4686 2002-03-19 Fernando Perez <fperez@colorado.edu>
4683
4687
4684 * Released 0.2.9 (for embedding bug, basically).
4688 * Released 0.2.9 (for embedding bug, basically).
4685
4689
4686 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4690 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4687 exceptions so that enclosing shell's state can be restored.
4691 exceptions so that enclosing shell's state can be restored.
4688
4692
4689 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4693 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4690 naming conventions in the .ipython/ dir.
4694 naming conventions in the .ipython/ dir.
4691
4695
4692 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4696 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4693 from delimiters list so filenames with - in them get expanded.
4697 from delimiters list so filenames with - in them get expanded.
4694
4698
4695 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4699 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4696 sys.displayhook not being properly restored after an embedded call.
4700 sys.displayhook not being properly restored after an embedded call.
4697
4701
4698 2002-03-18 Fernando Perez <fperez@colorado.edu>
4702 2002-03-18 Fernando Perez <fperez@colorado.edu>
4699
4703
4700 * Released 0.2.8
4704 * Released 0.2.8
4701
4705
4702 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4706 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4703 some files weren't being included in a -upgrade.
4707 some files weren't being included in a -upgrade.
4704 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4708 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4705 on' so that the first tab completes.
4709 on' so that the first tab completes.
4706 (InteractiveShell.handle_magic): fixed bug with spaces around
4710 (InteractiveShell.handle_magic): fixed bug with spaces around
4707 quotes breaking many magic commands.
4711 quotes breaking many magic commands.
4708
4712
4709 * setup.py: added note about ignoring the syntax error messages at
4713 * setup.py: added note about ignoring the syntax error messages at
4710 installation.
4714 installation.
4711
4715
4712 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4716 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4713 streamlining the gnuplot interface, now there's only one magic @gp.
4717 streamlining the gnuplot interface, now there's only one magic @gp.
4714
4718
4715 2002-03-17 Fernando Perez <fperez@colorado.edu>
4719 2002-03-17 Fernando Perez <fperez@colorado.edu>
4716
4720
4717 * IPython/UserConfig/magic_gnuplot.py: new name for the
4721 * IPython/UserConfig/magic_gnuplot.py: new name for the
4718 example-magic_pm.py file. Much enhanced system, now with a shell
4722 example-magic_pm.py file. Much enhanced system, now with a shell
4719 for communicating directly with gnuplot, one command at a time.
4723 for communicating directly with gnuplot, one command at a time.
4720
4724
4721 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4725 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4722 setting __name__=='__main__'.
4726 setting __name__=='__main__'.
4723
4727
4724 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4728 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4725 mini-shell for accessing gnuplot from inside ipython. Should
4729 mini-shell for accessing gnuplot from inside ipython. Should
4726 extend it later for grace access too. Inspired by Arnd's
4730 extend it later for grace access too. Inspired by Arnd's
4727 suggestion.
4731 suggestion.
4728
4732
4729 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4733 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4730 calling magic functions with () in their arguments. Thanks to Arnd
4734 calling magic functions with () in their arguments. Thanks to Arnd
4731 Baecker for pointing this to me.
4735 Baecker for pointing this to me.
4732
4736
4733 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4737 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4734 infinitely for integer or complex arrays (only worked with floats).
4738 infinitely for integer or complex arrays (only worked with floats).
4735
4739
4736 2002-03-16 Fernando Perez <fperez@colorado.edu>
4740 2002-03-16 Fernando Perez <fperez@colorado.edu>
4737
4741
4738 * setup.py: Merged setup and setup_windows into a single script
4742 * setup.py: Merged setup and setup_windows into a single script
4739 which properly handles things for windows users.
4743 which properly handles things for windows users.
4740
4744
4741 2002-03-15 Fernando Perez <fperez@colorado.edu>
4745 2002-03-15 Fernando Perez <fperez@colorado.edu>
4742
4746
4743 * Big change to the manual: now the magics are all automatically
4747 * Big change to the manual: now the magics are all automatically
4744 documented. This information is generated from their docstrings
4748 documented. This information is generated from their docstrings
4745 and put in a latex file included by the manual lyx file. This way
4749 and put in a latex file included by the manual lyx file. This way
4746 we get always up to date information for the magics. The manual
4750 we get always up to date information for the magics. The manual
4747 now also has proper version information, also auto-synced.
4751 now also has proper version information, also auto-synced.
4748
4752
4749 For this to work, an undocumented --magic_docstrings option was added.
4753 For this to work, an undocumented --magic_docstrings option was added.
4750
4754
4751 2002-03-13 Fernando Perez <fperez@colorado.edu>
4755 2002-03-13 Fernando Perez <fperez@colorado.edu>
4752
4756
4753 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4757 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4754 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4758 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4755
4759
4756 2002-03-12 Fernando Perez <fperez@colorado.edu>
4760 2002-03-12 Fernando Perez <fperez@colorado.edu>
4757
4761
4758 * IPython/ultraTB.py (TermColors): changed color escapes again to
4762 * IPython/ultraTB.py (TermColors): changed color escapes again to
4759 fix the (old, reintroduced) line-wrapping bug. Basically, if
4763 fix the (old, reintroduced) line-wrapping bug. Basically, if
4760 \001..\002 aren't given in the color escapes, lines get wrapped
4764 \001..\002 aren't given in the color escapes, lines get wrapped
4761 weirdly. But giving those screws up old xterms and emacs terms. So
4765 weirdly. But giving those screws up old xterms and emacs terms. So
4762 I added some logic for emacs terms to be ok, but I can't identify old
4766 I added some logic for emacs terms to be ok, but I can't identify old
4763 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4767 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4764
4768
4765 2002-03-10 Fernando Perez <fperez@colorado.edu>
4769 2002-03-10 Fernando Perez <fperez@colorado.edu>
4766
4770
4767 * IPython/usage.py (__doc__): Various documentation cleanups and
4771 * IPython/usage.py (__doc__): Various documentation cleanups and
4768 updates, both in usage docstrings and in the manual.
4772 updates, both in usage docstrings and in the manual.
4769
4773
4770 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4774 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4771 handling of caching. Set minimum acceptabe value for having a
4775 handling of caching. Set minimum acceptabe value for having a
4772 cache at 20 values.
4776 cache at 20 values.
4773
4777
4774 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4778 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4775 install_first_time function to a method, renamed it and added an
4779 install_first_time function to a method, renamed it and added an
4776 'upgrade' mode. Now people can update their config directory with
4780 'upgrade' mode. Now people can update their config directory with
4777 a simple command line switch (-upgrade, also new).
4781 a simple command line switch (-upgrade, also new).
4778
4782
4779 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4783 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4780 @file (convenient for automagic users under Python >= 2.2).
4784 @file (convenient for automagic users under Python >= 2.2).
4781 Removed @files (it seemed more like a plural than an abbrev. of
4785 Removed @files (it seemed more like a plural than an abbrev. of
4782 'file show').
4786 'file show').
4783
4787
4784 * IPython/iplib.py (install_first_time): Fixed crash if there were
4788 * IPython/iplib.py (install_first_time): Fixed crash if there were
4785 backup files ('~') in .ipython/ install directory.
4789 backup files ('~') in .ipython/ install directory.
4786
4790
4787 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4791 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4788 system. Things look fine, but these changes are fairly
4792 system. Things look fine, but these changes are fairly
4789 intrusive. Test them for a few days.
4793 intrusive. Test them for a few days.
4790
4794
4791 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4795 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4792 the prompts system. Now all in/out prompt strings are user
4796 the prompts system. Now all in/out prompt strings are user
4793 controllable. This is particularly useful for embedding, as one
4797 controllable. This is particularly useful for embedding, as one
4794 can tag embedded instances with particular prompts.
4798 can tag embedded instances with particular prompts.
4795
4799
4796 Also removed global use of sys.ps1/2, which now allows nested
4800 Also removed global use of sys.ps1/2, which now allows nested
4797 embeddings without any problems. Added command-line options for
4801 embeddings without any problems. Added command-line options for
4798 the prompt strings.
4802 the prompt strings.
4799
4803
4800 2002-03-08 Fernando Perez <fperez@colorado.edu>
4804 2002-03-08 Fernando Perez <fperez@colorado.edu>
4801
4805
4802 * IPython/UserConfig/example-embed-short.py (ipshell): added
4806 * IPython/UserConfig/example-embed-short.py (ipshell): added
4803 example file with the bare minimum code for embedding.
4807 example file with the bare minimum code for embedding.
4804
4808
4805 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4809 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4806 functionality for the embeddable shell to be activated/deactivated
4810 functionality for the embeddable shell to be activated/deactivated
4807 either globally or at each call.
4811 either globally or at each call.
4808
4812
4809 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4813 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4810 rewriting the prompt with '--->' for auto-inputs with proper
4814 rewriting the prompt with '--->' for auto-inputs with proper
4811 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4815 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4812 this is handled by the prompts class itself, as it should.
4816 this is handled by the prompts class itself, as it should.
4813
4817
4814 2002-03-05 Fernando Perez <fperez@colorado.edu>
4818 2002-03-05 Fernando Perez <fperez@colorado.edu>
4815
4819
4816 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4820 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4817 @logstart to avoid name clashes with the math log function.
4821 @logstart to avoid name clashes with the math log function.
4818
4822
4819 * Big updates to X/Emacs section of the manual.
4823 * Big updates to X/Emacs section of the manual.
4820
4824
4821 * Removed ipython_emacs. Milan explained to me how to pass
4825 * Removed ipython_emacs. Milan explained to me how to pass
4822 arguments to ipython through Emacs. Some day I'm going to end up
4826 arguments to ipython through Emacs. Some day I'm going to end up
4823 learning some lisp...
4827 learning some lisp...
4824
4828
4825 2002-03-04 Fernando Perez <fperez@colorado.edu>
4829 2002-03-04 Fernando Perez <fperez@colorado.edu>
4826
4830
4827 * IPython/ipython_emacs: Created script to be used as the
4831 * IPython/ipython_emacs: Created script to be used as the
4828 py-python-command Emacs variable so we can pass IPython
4832 py-python-command Emacs variable so we can pass IPython
4829 parameters. I can't figure out how to tell Emacs directly to pass
4833 parameters. I can't figure out how to tell Emacs directly to pass
4830 parameters to IPython, so a dummy shell script will do it.
4834 parameters to IPython, so a dummy shell script will do it.
4831
4835
4832 Other enhancements made for things to work better under Emacs'
4836 Other enhancements made for things to work better under Emacs'
4833 various types of terminals. Many thanks to Milan Zamazal
4837 various types of terminals. Many thanks to Milan Zamazal
4834 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4838 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4835
4839
4836 2002-03-01 Fernando Perez <fperez@colorado.edu>
4840 2002-03-01 Fernando Perez <fperez@colorado.edu>
4837
4841
4838 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4842 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4839 that loading of readline is now optional. This gives better
4843 that loading of readline is now optional. This gives better
4840 control to emacs users.
4844 control to emacs users.
4841
4845
4842 * IPython/ultraTB.py (__date__): Modified color escape sequences
4846 * IPython/ultraTB.py (__date__): Modified color escape sequences
4843 and now things work fine under xterm and in Emacs' term buffers
4847 and now things work fine under xterm and in Emacs' term buffers
4844 (though not shell ones). Well, in emacs you get colors, but all
4848 (though not shell ones). Well, in emacs you get colors, but all
4845 seem to be 'light' colors (no difference between dark and light
4849 seem to be 'light' colors (no difference between dark and light
4846 ones). But the garbage chars are gone, and also in xterms. It
4850 ones). But the garbage chars are gone, and also in xterms. It
4847 seems that now I'm using 'cleaner' ansi sequences.
4851 seems that now I'm using 'cleaner' ansi sequences.
4848
4852
4849 2002-02-21 Fernando Perez <fperez@colorado.edu>
4853 2002-02-21 Fernando Perez <fperez@colorado.edu>
4850
4854
4851 * Released 0.2.7 (mainly to publish the scoping fix).
4855 * Released 0.2.7 (mainly to publish the scoping fix).
4852
4856
4853 * IPython/Logger.py (Logger.logstate): added. A corresponding
4857 * IPython/Logger.py (Logger.logstate): added. A corresponding
4854 @logstate magic was created.
4858 @logstate magic was created.
4855
4859
4856 * IPython/Magic.py: fixed nested scoping problem under Python
4860 * IPython/Magic.py: fixed nested scoping problem under Python
4857 2.1.x (automagic wasn't working).
4861 2.1.x (automagic wasn't working).
4858
4862
4859 2002-02-20 Fernando Perez <fperez@colorado.edu>
4863 2002-02-20 Fernando Perez <fperez@colorado.edu>
4860
4864
4861 * Released 0.2.6.
4865 * Released 0.2.6.
4862
4866
4863 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4867 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4864 option so that logs can come out without any headers at all.
4868 option so that logs can come out without any headers at all.
4865
4869
4866 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4870 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4867 SciPy.
4871 SciPy.
4868
4872
4869 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4873 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4870 that embedded IPython calls don't require vars() to be explicitly
4874 that embedded IPython calls don't require vars() to be explicitly
4871 passed. Now they are extracted from the caller's frame (code
4875 passed. Now they are extracted from the caller's frame (code
4872 snatched from Eric Jones' weave). Added better documentation to
4876 snatched from Eric Jones' weave). Added better documentation to
4873 the section on embedding and the example file.
4877 the section on embedding and the example file.
4874
4878
4875 * IPython/genutils.py (page): Changed so that under emacs, it just
4879 * IPython/genutils.py (page): Changed so that under emacs, it just
4876 prints the string. You can then page up and down in the emacs
4880 prints the string. You can then page up and down in the emacs
4877 buffer itself. This is how the builtin help() works.
4881 buffer itself. This is how the builtin help() works.
4878
4882
4879 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4883 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4880 macro scoping: macros need to be executed in the user's namespace
4884 macro scoping: macros need to be executed in the user's namespace
4881 to work as if they had been typed by the user.
4885 to work as if they had been typed by the user.
4882
4886
4883 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4887 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4884 execute automatically (no need to type 'exec...'). They then
4888 execute automatically (no need to type 'exec...'). They then
4885 behave like 'true macros'. The printing system was also modified
4889 behave like 'true macros'. The printing system was also modified
4886 for this to work.
4890 for this to work.
4887
4891
4888 2002-02-19 Fernando Perez <fperez@colorado.edu>
4892 2002-02-19 Fernando Perez <fperez@colorado.edu>
4889
4893
4890 * IPython/genutils.py (page_file): new function for paging files
4894 * IPython/genutils.py (page_file): new function for paging files
4891 in an OS-independent way. Also necessary for file viewing to work
4895 in an OS-independent way. Also necessary for file viewing to work
4892 well inside Emacs buffers.
4896 well inside Emacs buffers.
4893 (page): Added checks for being in an emacs buffer.
4897 (page): Added checks for being in an emacs buffer.
4894 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4898 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4895 same bug in iplib.
4899 same bug in iplib.
4896
4900
4897 2002-02-18 Fernando Perez <fperez@colorado.edu>
4901 2002-02-18 Fernando Perez <fperez@colorado.edu>
4898
4902
4899 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4903 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4900 of readline so that IPython can work inside an Emacs buffer.
4904 of readline so that IPython can work inside an Emacs buffer.
4901
4905
4902 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4906 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4903 method signatures (they weren't really bugs, but it looks cleaner
4907 method signatures (they weren't really bugs, but it looks cleaner
4904 and keeps PyChecker happy).
4908 and keeps PyChecker happy).
4905
4909
4906 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4910 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4907 for implementing various user-defined hooks. Currently only
4911 for implementing various user-defined hooks. Currently only
4908 display is done.
4912 display is done.
4909
4913
4910 * IPython/Prompts.py (CachedOutput._display): changed display
4914 * IPython/Prompts.py (CachedOutput._display): changed display
4911 functions so that they can be dynamically changed by users easily.
4915 functions so that they can be dynamically changed by users easily.
4912
4916
4913 * IPython/Extensions/numeric_formats.py (num_display): added an
4917 * IPython/Extensions/numeric_formats.py (num_display): added an
4914 extension for printing NumPy arrays in flexible manners. It
4918 extension for printing NumPy arrays in flexible manners. It
4915 doesn't do anything yet, but all the structure is in
4919 doesn't do anything yet, but all the structure is in
4916 place. Ultimately the plan is to implement output format control
4920 place. Ultimately the plan is to implement output format control
4917 like in Octave.
4921 like in Octave.
4918
4922
4919 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4923 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4920 methods are found at run-time by all the automatic machinery.
4924 methods are found at run-time by all the automatic machinery.
4921
4925
4922 2002-02-17 Fernando Perez <fperez@colorado.edu>
4926 2002-02-17 Fernando Perez <fperez@colorado.edu>
4923
4927
4924 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4928 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4925 whole file a little.
4929 whole file a little.
4926
4930
4927 * ToDo: closed this document. Now there's a new_design.lyx
4931 * ToDo: closed this document. Now there's a new_design.lyx
4928 document for all new ideas. Added making a pdf of it for the
4932 document for all new ideas. Added making a pdf of it for the
4929 end-user distro.
4933 end-user distro.
4930
4934
4931 * IPython/Logger.py (Logger.switch_log): Created this to replace
4935 * IPython/Logger.py (Logger.switch_log): Created this to replace
4932 logon() and logoff(). It also fixes a nasty crash reported by
4936 logon() and logoff(). It also fixes a nasty crash reported by
4933 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4937 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4934
4938
4935 * IPython/iplib.py (complete): got auto-completion to work with
4939 * IPython/iplib.py (complete): got auto-completion to work with
4936 automagic (I had wanted this for a long time).
4940 automagic (I had wanted this for a long time).
4937
4941
4938 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4942 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4939 to @file, since file() is now a builtin and clashes with automagic
4943 to @file, since file() is now a builtin and clashes with automagic
4940 for @file.
4944 for @file.
4941
4945
4942 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4946 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4943 of this was previously in iplib, which had grown to more than 2000
4947 of this was previously in iplib, which had grown to more than 2000
4944 lines, way too long. No new functionality, but it makes managing
4948 lines, way too long. No new functionality, but it makes managing
4945 the code a bit easier.
4949 the code a bit easier.
4946
4950
4947 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4951 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4948 information to crash reports.
4952 information to crash reports.
4949
4953
4950 2002-02-12 Fernando Perez <fperez@colorado.edu>
4954 2002-02-12 Fernando Perez <fperez@colorado.edu>
4951
4955
4952 * Released 0.2.5.
4956 * Released 0.2.5.
4953
4957
4954 2002-02-11 Fernando Perez <fperez@colorado.edu>
4958 2002-02-11 Fernando Perez <fperez@colorado.edu>
4955
4959
4956 * Wrote a relatively complete Windows installer. It puts
4960 * Wrote a relatively complete Windows installer. It puts
4957 everything in place, creates Start Menu entries and fixes the
4961 everything in place, creates Start Menu entries and fixes the
4958 color issues. Nothing fancy, but it works.
4962 color issues. Nothing fancy, but it works.
4959
4963
4960 2002-02-10 Fernando Perez <fperez@colorado.edu>
4964 2002-02-10 Fernando Perez <fperez@colorado.edu>
4961
4965
4962 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4966 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4963 os.path.expanduser() call so that we can type @run ~/myfile.py and
4967 os.path.expanduser() call so that we can type @run ~/myfile.py and
4964 have thigs work as expected.
4968 have thigs work as expected.
4965
4969
4966 * IPython/genutils.py (page): fixed exception handling so things
4970 * IPython/genutils.py (page): fixed exception handling so things
4967 work both in Unix and Windows correctly. Quitting a pager triggers
4971 work both in Unix and Windows correctly. Quitting a pager triggers
4968 an IOError/broken pipe in Unix, and in windows not finding a pager
4972 an IOError/broken pipe in Unix, and in windows not finding a pager
4969 is also an IOError, so I had to actually look at the return value
4973 is also an IOError, so I had to actually look at the return value
4970 of the exception, not just the exception itself. Should be ok now.
4974 of the exception, not just the exception itself. Should be ok now.
4971
4975
4972 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4976 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4973 modified to allow case-insensitive color scheme changes.
4977 modified to allow case-insensitive color scheme changes.
4974
4978
4975 2002-02-09 Fernando Perez <fperez@colorado.edu>
4979 2002-02-09 Fernando Perez <fperez@colorado.edu>
4976
4980
4977 * IPython/genutils.py (native_line_ends): new function to leave
4981 * IPython/genutils.py (native_line_ends): new function to leave
4978 user config files with os-native line-endings.
4982 user config files with os-native line-endings.
4979
4983
4980 * README and manual updates.
4984 * README and manual updates.
4981
4985
4982 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4986 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4983 instead of StringType to catch Unicode strings.
4987 instead of StringType to catch Unicode strings.
4984
4988
4985 * IPython/genutils.py (filefind): fixed bug for paths with
4989 * IPython/genutils.py (filefind): fixed bug for paths with
4986 embedded spaces (very common in Windows).
4990 embedded spaces (very common in Windows).
4987
4991
4988 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4992 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4989 files under Windows, so that they get automatically associated
4993 files under Windows, so that they get automatically associated
4990 with a text editor. Windows makes it a pain to handle
4994 with a text editor. Windows makes it a pain to handle
4991 extension-less files.
4995 extension-less files.
4992
4996
4993 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4997 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4994 warning about readline only occur for Posix. In Windows there's no
4998 warning about readline only occur for Posix. In Windows there's no
4995 way to get readline, so why bother with the warning.
4999 way to get readline, so why bother with the warning.
4996
5000
4997 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5001 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4998 for __str__ instead of dir(self), since dir() changed in 2.2.
5002 for __str__ instead of dir(self), since dir() changed in 2.2.
4999
5003
5000 * Ported to Windows! Tested on XP, I suspect it should work fine
5004 * Ported to Windows! Tested on XP, I suspect it should work fine
5001 on NT/2000, but I don't think it will work on 98 et al. That
5005 on NT/2000, but I don't think it will work on 98 et al. That
5002 series of Windows is such a piece of junk anyway that I won't try
5006 series of Windows is such a piece of junk anyway that I won't try
5003 porting it there. The XP port was straightforward, showed a few
5007 porting it there. The XP port was straightforward, showed a few
5004 bugs here and there (fixed all), in particular some string
5008 bugs here and there (fixed all), in particular some string
5005 handling stuff which required considering Unicode strings (which
5009 handling stuff which required considering Unicode strings (which
5006 Windows uses). This is good, but hasn't been too tested :) No
5010 Windows uses). This is good, but hasn't been too tested :) No
5007 fancy installer yet, I'll put a note in the manual so people at
5011 fancy installer yet, I'll put a note in the manual so people at
5008 least make manually a shortcut.
5012 least make manually a shortcut.
5009
5013
5010 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5014 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5011 into a single one, "colors". This now controls both prompt and
5015 into a single one, "colors". This now controls both prompt and
5012 exception color schemes, and can be changed both at startup
5016 exception color schemes, and can be changed both at startup
5013 (either via command-line switches or via ipythonrc files) and at
5017 (either via command-line switches or via ipythonrc files) and at
5014 runtime, with @colors.
5018 runtime, with @colors.
5015 (Magic.magic_run): renamed @prun to @run and removed the old
5019 (Magic.magic_run): renamed @prun to @run and removed the old
5016 @run. The two were too similar to warrant keeping both.
5020 @run. The two were too similar to warrant keeping both.
5017
5021
5018 2002-02-03 Fernando Perez <fperez@colorado.edu>
5022 2002-02-03 Fernando Perez <fperez@colorado.edu>
5019
5023
5020 * IPython/iplib.py (install_first_time): Added comment on how to
5024 * IPython/iplib.py (install_first_time): Added comment on how to
5021 configure the color options for first-time users. Put a <return>
5025 configure the color options for first-time users. Put a <return>
5022 request at the end so that small-terminal users get a chance to
5026 request at the end so that small-terminal users get a chance to
5023 read the startup info.
5027 read the startup info.
5024
5028
5025 2002-01-23 Fernando Perez <fperez@colorado.edu>
5029 2002-01-23 Fernando Perez <fperez@colorado.edu>
5026
5030
5027 * IPython/iplib.py (CachedOutput.update): Changed output memory
5031 * IPython/iplib.py (CachedOutput.update): Changed output memory
5028 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5032 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5029 input history we still use _i. Did this b/c these variable are
5033 input history we still use _i. Did this b/c these variable are
5030 very commonly used in interactive work, so the less we need to
5034 very commonly used in interactive work, so the less we need to
5031 type the better off we are.
5035 type the better off we are.
5032 (Magic.magic_prun): updated @prun to better handle the namespaces
5036 (Magic.magic_prun): updated @prun to better handle the namespaces
5033 the file will run in, including a fix for __name__ not being set
5037 the file will run in, including a fix for __name__ not being set
5034 before.
5038 before.
5035
5039
5036 2002-01-20 Fernando Perez <fperez@colorado.edu>
5040 2002-01-20 Fernando Perez <fperez@colorado.edu>
5037
5041
5038 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5042 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5039 extra garbage for Python 2.2. Need to look more carefully into
5043 extra garbage for Python 2.2. Need to look more carefully into
5040 this later.
5044 this later.
5041
5045
5042 2002-01-19 Fernando Perez <fperez@colorado.edu>
5046 2002-01-19 Fernando Perez <fperez@colorado.edu>
5043
5047
5044 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5048 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5045 display SyntaxError exceptions properly formatted when they occur
5049 display SyntaxError exceptions properly formatted when they occur
5046 (they can be triggered by imported code).
5050 (they can be triggered by imported code).
5047
5051
5048 2002-01-18 Fernando Perez <fperez@colorado.edu>
5052 2002-01-18 Fernando Perez <fperez@colorado.edu>
5049
5053
5050 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5054 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5051 SyntaxError exceptions are reported nicely formatted, instead of
5055 SyntaxError exceptions are reported nicely formatted, instead of
5052 spitting out only offset information as before.
5056 spitting out only offset information as before.
5053 (Magic.magic_prun): Added the @prun function for executing
5057 (Magic.magic_prun): Added the @prun function for executing
5054 programs with command line args inside IPython.
5058 programs with command line args inside IPython.
5055
5059
5056 2002-01-16 Fernando Perez <fperez@colorado.edu>
5060 2002-01-16 Fernando Perez <fperez@colorado.edu>
5057
5061
5058 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5062 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5059 to *not* include the last item given in a range. This brings their
5063 to *not* include the last item given in a range. This brings their
5060 behavior in line with Python's slicing:
5064 behavior in line with Python's slicing:
5061 a[n1:n2] -> a[n1]...a[n2-1]
5065 a[n1:n2] -> a[n1]...a[n2-1]
5062 It may be a bit less convenient, but I prefer to stick to Python's
5066 It may be a bit less convenient, but I prefer to stick to Python's
5063 conventions *everywhere*, so users never have to wonder.
5067 conventions *everywhere*, so users never have to wonder.
5064 (Magic.magic_macro): Added @macro function to ease the creation of
5068 (Magic.magic_macro): Added @macro function to ease the creation of
5065 macros.
5069 macros.
5066
5070
5067 2002-01-05 Fernando Perez <fperez@colorado.edu>
5071 2002-01-05 Fernando Perez <fperez@colorado.edu>
5068
5072
5069 * Released 0.2.4.
5073 * Released 0.2.4.
5070
5074
5071 * IPython/iplib.py (Magic.magic_pdef):
5075 * IPython/iplib.py (Magic.magic_pdef):
5072 (InteractiveShell.safe_execfile): report magic lines and error
5076 (InteractiveShell.safe_execfile): report magic lines and error
5073 lines without line numbers so one can easily copy/paste them for
5077 lines without line numbers so one can easily copy/paste them for
5074 re-execution.
5078 re-execution.
5075
5079
5076 * Updated manual with recent changes.
5080 * Updated manual with recent changes.
5077
5081
5078 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5082 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5079 docstring printing when class? is called. Very handy for knowing
5083 docstring printing when class? is called. Very handy for knowing
5080 how to create class instances (as long as __init__ is well
5084 how to create class instances (as long as __init__ is well
5081 documented, of course :)
5085 documented, of course :)
5082 (Magic.magic_doc): print both class and constructor docstrings.
5086 (Magic.magic_doc): print both class and constructor docstrings.
5083 (Magic.magic_pdef): give constructor info if passed a class and
5087 (Magic.magic_pdef): give constructor info if passed a class and
5084 __call__ info for callable object instances.
5088 __call__ info for callable object instances.
5085
5089
5086 2002-01-04 Fernando Perez <fperez@colorado.edu>
5090 2002-01-04 Fernando Perez <fperez@colorado.edu>
5087
5091
5088 * Made deep_reload() off by default. It doesn't always work
5092 * Made deep_reload() off by default. It doesn't always work
5089 exactly as intended, so it's probably safer to have it off. It's
5093 exactly as intended, so it's probably safer to have it off. It's
5090 still available as dreload() anyway, so nothing is lost.
5094 still available as dreload() anyway, so nothing is lost.
5091
5095
5092 2002-01-02 Fernando Perez <fperez@colorado.edu>
5096 2002-01-02 Fernando Perez <fperez@colorado.edu>
5093
5097
5094 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5098 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5095 so I wanted an updated release).
5099 so I wanted an updated release).
5096
5100
5097 2001-12-27 Fernando Perez <fperez@colorado.edu>
5101 2001-12-27 Fernando Perez <fperez@colorado.edu>
5098
5102
5099 * IPython/iplib.py (InteractiveShell.interact): Added the original
5103 * IPython/iplib.py (InteractiveShell.interact): Added the original
5100 code from 'code.py' for this module in order to change the
5104 code from 'code.py' for this module in order to change the
5101 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5105 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5102 the history cache would break when the user hit Ctrl-C, and
5106 the history cache would break when the user hit Ctrl-C, and
5103 interact() offers no way to add any hooks to it.
5107 interact() offers no way to add any hooks to it.
5104
5108
5105 2001-12-23 Fernando Perez <fperez@colorado.edu>
5109 2001-12-23 Fernando Perez <fperez@colorado.edu>
5106
5110
5107 * setup.py: added check for 'MANIFEST' before trying to remove
5111 * setup.py: added check for 'MANIFEST' before trying to remove
5108 it. Thanks to Sean Reifschneider.
5112 it. Thanks to Sean Reifschneider.
5109
5113
5110 2001-12-22 Fernando Perez <fperez@colorado.edu>
5114 2001-12-22 Fernando Perez <fperez@colorado.edu>
5111
5115
5112 * Released 0.2.2.
5116 * Released 0.2.2.
5113
5117
5114 * Finished (reasonably) writing the manual. Later will add the
5118 * Finished (reasonably) writing the manual. Later will add the
5115 python-standard navigation stylesheets, but for the time being
5119 python-standard navigation stylesheets, but for the time being
5116 it's fairly complete. Distribution will include html and pdf
5120 it's fairly complete. Distribution will include html and pdf
5117 versions.
5121 versions.
5118
5122
5119 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5123 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5120 (MayaVi author).
5124 (MayaVi author).
5121
5125
5122 2001-12-21 Fernando Perez <fperez@colorado.edu>
5126 2001-12-21 Fernando Perez <fperez@colorado.edu>
5123
5127
5124 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5128 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5125 good public release, I think (with the manual and the distutils
5129 good public release, I think (with the manual and the distutils
5126 installer). The manual can use some work, but that can go
5130 installer). The manual can use some work, but that can go
5127 slowly. Otherwise I think it's quite nice for end users. Next
5131 slowly. Otherwise I think it's quite nice for end users. Next
5128 summer, rewrite the guts of it...
5132 summer, rewrite the guts of it...
5129
5133
5130 * Changed format of ipythonrc files to use whitespace as the
5134 * Changed format of ipythonrc files to use whitespace as the
5131 separator instead of an explicit '='. Cleaner.
5135 separator instead of an explicit '='. Cleaner.
5132
5136
5133 2001-12-20 Fernando Perez <fperez@colorado.edu>
5137 2001-12-20 Fernando Perez <fperez@colorado.edu>
5134
5138
5135 * Started a manual in LyX. For now it's just a quick merge of the
5139 * Started a manual in LyX. For now it's just a quick merge of the
5136 various internal docstrings and READMEs. Later it may grow into a
5140 various internal docstrings and READMEs. Later it may grow into a
5137 nice, full-blown manual.
5141 nice, full-blown manual.
5138
5142
5139 * Set up a distutils based installer. Installation should now be
5143 * Set up a distutils based installer. Installation should now be
5140 trivially simple for end-users.
5144 trivially simple for end-users.
5141
5145
5142 2001-12-11 Fernando Perez <fperez@colorado.edu>
5146 2001-12-11 Fernando Perez <fperez@colorado.edu>
5143
5147
5144 * Released 0.2.0. First public release, announced it at
5148 * Released 0.2.0. First public release, announced it at
5145 comp.lang.python. From now on, just bugfixes...
5149 comp.lang.python. From now on, just bugfixes...
5146
5150
5147 * Went through all the files, set copyright/license notices and
5151 * Went through all the files, set copyright/license notices and
5148 cleaned up things. Ready for release.
5152 cleaned up things. Ready for release.
5149
5153
5150 2001-12-10 Fernando Perez <fperez@colorado.edu>
5154 2001-12-10 Fernando Perez <fperez@colorado.edu>
5151
5155
5152 * Changed the first-time installer not to use tarfiles. It's more
5156 * Changed the first-time installer not to use tarfiles. It's more
5153 robust now and less unix-dependent. Also makes it easier for
5157 robust now and less unix-dependent. Also makes it easier for
5154 people to later upgrade versions.
5158 people to later upgrade versions.
5155
5159
5156 * Changed @exit to @abort to reflect the fact that it's pretty
5160 * Changed @exit to @abort to reflect the fact that it's pretty
5157 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5161 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5158 becomes significant only when IPyhton is embedded: in that case,
5162 becomes significant only when IPyhton is embedded: in that case,
5159 C-D closes IPython only, but @abort kills the enclosing program
5163 C-D closes IPython only, but @abort kills the enclosing program
5160 too (unless it had called IPython inside a try catching
5164 too (unless it had called IPython inside a try catching
5161 SystemExit).
5165 SystemExit).
5162
5166
5163 * Created Shell module which exposes the actuall IPython Shell
5167 * Created Shell module which exposes the actuall IPython Shell
5164 classes, currently the normal and the embeddable one. This at
5168 classes, currently the normal and the embeddable one. This at
5165 least offers a stable interface we won't need to change when
5169 least offers a stable interface we won't need to change when
5166 (later) the internals are rewritten. That rewrite will be confined
5170 (later) the internals are rewritten. That rewrite will be confined
5167 to iplib and ipmaker, but the Shell interface should remain as is.
5171 to iplib and ipmaker, but the Shell interface should remain as is.
5168
5172
5169 * Added embed module which offers an embeddable IPShell object,
5173 * Added embed module which offers an embeddable IPShell object,
5170 useful to fire up IPython *inside* a running program. Great for
5174 useful to fire up IPython *inside* a running program. Great for
5171 debugging or dynamical data analysis.
5175 debugging or dynamical data analysis.
5172
5176
5173 2001-12-08 Fernando Perez <fperez@colorado.edu>
5177 2001-12-08 Fernando Perez <fperez@colorado.edu>
5174
5178
5175 * Fixed small bug preventing seeing info from methods of defined
5179 * Fixed small bug preventing seeing info from methods of defined
5176 objects (incorrect namespace in _ofind()).
5180 objects (incorrect namespace in _ofind()).
5177
5181
5178 * Documentation cleanup. Moved the main usage docstrings to a
5182 * Documentation cleanup. Moved the main usage docstrings to a
5179 separate file, usage.py (cleaner to maintain, and hopefully in the
5183 separate file, usage.py (cleaner to maintain, and hopefully in the
5180 future some perlpod-like way of producing interactive, man and
5184 future some perlpod-like way of producing interactive, man and
5181 html docs out of it will be found).
5185 html docs out of it will be found).
5182
5186
5183 * Added @profile to see your profile at any time.
5187 * Added @profile to see your profile at any time.
5184
5188
5185 * Added @p as an alias for 'print'. It's especially convenient if
5189 * Added @p as an alias for 'print'. It's especially convenient if
5186 using automagic ('p x' prints x).
5190 using automagic ('p x' prints x).
5187
5191
5188 * Small cleanups and fixes after a pychecker run.
5192 * Small cleanups and fixes after a pychecker run.
5189
5193
5190 * Changed the @cd command to handle @cd - and @cd -<n> for
5194 * Changed the @cd command to handle @cd - and @cd -<n> for
5191 visiting any directory in _dh.
5195 visiting any directory in _dh.
5192
5196
5193 * Introduced _dh, a history of visited directories. @dhist prints
5197 * Introduced _dh, a history of visited directories. @dhist prints
5194 it out with numbers.
5198 it out with numbers.
5195
5199
5196 2001-12-07 Fernando Perez <fperez@colorado.edu>
5200 2001-12-07 Fernando Perez <fperez@colorado.edu>
5197
5201
5198 * Released 0.1.22
5202 * Released 0.1.22
5199
5203
5200 * Made initialization a bit more robust against invalid color
5204 * Made initialization a bit more robust against invalid color
5201 options in user input (exit, not traceback-crash).
5205 options in user input (exit, not traceback-crash).
5202
5206
5203 * Changed the bug crash reporter to write the report only in the
5207 * Changed the bug crash reporter to write the report only in the
5204 user's .ipython directory. That way IPython won't litter people's
5208 user's .ipython directory. That way IPython won't litter people's
5205 hard disks with crash files all over the place. Also print on
5209 hard disks with crash files all over the place. Also print on
5206 screen the necessary mail command.
5210 screen the necessary mail command.
5207
5211
5208 * With the new ultraTB, implemented LightBG color scheme for light
5212 * With the new ultraTB, implemented LightBG color scheme for light
5209 background terminals. A lot of people like white backgrounds, so I
5213 background terminals. A lot of people like white backgrounds, so I
5210 guess we should at least give them something readable.
5214 guess we should at least give them something readable.
5211
5215
5212 2001-12-06 Fernando Perez <fperez@colorado.edu>
5216 2001-12-06 Fernando Perez <fperez@colorado.edu>
5213
5217
5214 * Modified the structure of ultraTB. Now there's a proper class
5218 * Modified the structure of ultraTB. Now there's a proper class
5215 for tables of color schemes which allow adding schemes easily and
5219 for tables of color schemes which allow adding schemes easily and
5216 switching the active scheme without creating a new instance every
5220 switching the active scheme without creating a new instance every
5217 time (which was ridiculous). The syntax for creating new schemes
5221 time (which was ridiculous). The syntax for creating new schemes
5218 is also cleaner. I think ultraTB is finally done, with a clean
5222 is also cleaner. I think ultraTB is finally done, with a clean
5219 class structure. Names are also much cleaner (now there's proper
5223 class structure. Names are also much cleaner (now there's proper
5220 color tables, no need for every variable to also have 'color' in
5224 color tables, no need for every variable to also have 'color' in
5221 its name).
5225 its name).
5222
5226
5223 * Broke down genutils into separate files. Now genutils only
5227 * Broke down genutils into separate files. Now genutils only
5224 contains utility functions, and classes have been moved to their
5228 contains utility functions, and classes have been moved to their
5225 own files (they had enough independent functionality to warrant
5229 own files (they had enough independent functionality to warrant
5226 it): ConfigLoader, OutputTrap, Struct.
5230 it): ConfigLoader, OutputTrap, Struct.
5227
5231
5228 2001-12-05 Fernando Perez <fperez@colorado.edu>
5232 2001-12-05 Fernando Perez <fperez@colorado.edu>
5229
5233
5230 * IPython turns 21! Released version 0.1.21, as a candidate for
5234 * IPython turns 21! Released version 0.1.21, as a candidate for
5231 public consumption. If all goes well, release in a few days.
5235 public consumption. If all goes well, release in a few days.
5232
5236
5233 * Fixed path bug (files in Extensions/ directory wouldn't be found
5237 * Fixed path bug (files in Extensions/ directory wouldn't be found
5234 unless IPython/ was explicitly in sys.path).
5238 unless IPython/ was explicitly in sys.path).
5235
5239
5236 * Extended the FlexCompleter class as MagicCompleter to allow
5240 * Extended the FlexCompleter class as MagicCompleter to allow
5237 completion of @-starting lines.
5241 completion of @-starting lines.
5238
5242
5239 * Created __release__.py file as a central repository for release
5243 * Created __release__.py file as a central repository for release
5240 info that other files can read from.
5244 info that other files can read from.
5241
5245
5242 * Fixed small bug in logging: when logging was turned on in
5246 * Fixed small bug in logging: when logging was turned on in
5243 mid-session, old lines with special meanings (!@?) were being
5247 mid-session, old lines with special meanings (!@?) were being
5244 logged without the prepended comment, which is necessary since
5248 logged without the prepended comment, which is necessary since
5245 they are not truly valid python syntax. This should make session
5249 they are not truly valid python syntax. This should make session
5246 restores produce less errors.
5250 restores produce less errors.
5247
5251
5248 * The namespace cleanup forced me to make a FlexCompleter class
5252 * The namespace cleanup forced me to make a FlexCompleter class
5249 which is nothing but a ripoff of rlcompleter, but with selectable
5253 which is nothing but a ripoff of rlcompleter, but with selectable
5250 namespace (rlcompleter only works in __main__.__dict__). I'll try
5254 namespace (rlcompleter only works in __main__.__dict__). I'll try
5251 to submit a note to the authors to see if this change can be
5255 to submit a note to the authors to see if this change can be
5252 incorporated in future rlcompleter releases (Dec.6: done)
5256 incorporated in future rlcompleter releases (Dec.6: done)
5253
5257
5254 * More fixes to namespace handling. It was a mess! Now all
5258 * More fixes to namespace handling. It was a mess! Now all
5255 explicit references to __main__.__dict__ are gone (except when
5259 explicit references to __main__.__dict__ are gone (except when
5256 really needed) and everything is handled through the namespace
5260 really needed) and everything is handled through the namespace
5257 dicts in the IPython instance. We seem to be getting somewhere
5261 dicts in the IPython instance. We seem to be getting somewhere
5258 with this, finally...
5262 with this, finally...
5259
5263
5260 * Small documentation updates.
5264 * Small documentation updates.
5261
5265
5262 * Created the Extensions directory under IPython (with an
5266 * Created the Extensions directory under IPython (with an
5263 __init__.py). Put the PhysicalQ stuff there. This directory should
5267 __init__.py). Put the PhysicalQ stuff there. This directory should
5264 be used for all special-purpose extensions.
5268 be used for all special-purpose extensions.
5265
5269
5266 * File renaming:
5270 * File renaming:
5267 ipythonlib --> ipmaker
5271 ipythonlib --> ipmaker
5268 ipplib --> iplib
5272 ipplib --> iplib
5269 This makes a bit more sense in terms of what these files actually do.
5273 This makes a bit more sense in terms of what these files actually do.
5270
5274
5271 * Moved all the classes and functions in ipythonlib to ipplib, so
5275 * Moved all the classes and functions in ipythonlib to ipplib, so
5272 now ipythonlib only has make_IPython(). This will ease up its
5276 now ipythonlib only has make_IPython(). This will ease up its
5273 splitting in smaller functional chunks later.
5277 splitting in smaller functional chunks later.
5274
5278
5275 * Cleaned up (done, I think) output of @whos. Better column
5279 * Cleaned up (done, I think) output of @whos. Better column
5276 formatting, and now shows str(var) for as much as it can, which is
5280 formatting, and now shows str(var) for as much as it can, which is
5277 typically what one gets with a 'print var'.
5281 typically what one gets with a 'print var'.
5278
5282
5279 2001-12-04 Fernando Perez <fperez@colorado.edu>
5283 2001-12-04 Fernando Perez <fperez@colorado.edu>
5280
5284
5281 * Fixed namespace problems. Now builtin/IPyhton/user names get
5285 * Fixed namespace problems. Now builtin/IPyhton/user names get
5282 properly reported in their namespace. Internal namespace handling
5286 properly reported in their namespace. Internal namespace handling
5283 is finally getting decent (not perfect yet, but much better than
5287 is finally getting decent (not perfect yet, but much better than
5284 the ad-hoc mess we had).
5288 the ad-hoc mess we had).
5285
5289
5286 * Removed -exit option. If people just want to run a python
5290 * Removed -exit option. If people just want to run a python
5287 script, that's what the normal interpreter is for. Less
5291 script, that's what the normal interpreter is for. Less
5288 unnecessary options, less chances for bugs.
5292 unnecessary options, less chances for bugs.
5289
5293
5290 * Added a crash handler which generates a complete post-mortem if
5294 * Added a crash handler which generates a complete post-mortem if
5291 IPython crashes. This will help a lot in tracking bugs down the
5295 IPython crashes. This will help a lot in tracking bugs down the
5292 road.
5296 road.
5293
5297
5294 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5298 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5295 which were boud to functions being reassigned would bypass the
5299 which were boud to functions being reassigned would bypass the
5296 logger, breaking the sync of _il with the prompt counter. This
5300 logger, breaking the sync of _il with the prompt counter. This
5297 would then crash IPython later when a new line was logged.
5301 would then crash IPython later when a new line was logged.
5298
5302
5299 2001-12-02 Fernando Perez <fperez@colorado.edu>
5303 2001-12-02 Fernando Perez <fperez@colorado.edu>
5300
5304
5301 * Made IPython a package. This means people don't have to clutter
5305 * Made IPython a package. This means people don't have to clutter
5302 their sys.path with yet another directory. Changed the INSTALL
5306 their sys.path with yet another directory. Changed the INSTALL
5303 file accordingly.
5307 file accordingly.
5304
5308
5305 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5309 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5306 sorts its output (so @who shows it sorted) and @whos formats the
5310 sorts its output (so @who shows it sorted) and @whos formats the
5307 table according to the width of the first column. Nicer, easier to
5311 table according to the width of the first column. Nicer, easier to
5308 read. Todo: write a generic table_format() which takes a list of
5312 read. Todo: write a generic table_format() which takes a list of
5309 lists and prints it nicely formatted, with optional row/column
5313 lists and prints it nicely formatted, with optional row/column
5310 separators and proper padding and justification.
5314 separators and proper padding and justification.
5311
5315
5312 * Released 0.1.20
5316 * Released 0.1.20
5313
5317
5314 * Fixed bug in @log which would reverse the inputcache list (a
5318 * Fixed bug in @log which would reverse the inputcache list (a
5315 copy operation was missing).
5319 copy operation was missing).
5316
5320
5317 * Code cleanup. @config was changed to use page(). Better, since
5321 * Code cleanup. @config was changed to use page(). Better, since
5318 its output is always quite long.
5322 its output is always quite long.
5319
5323
5320 * Itpl is back as a dependency. I was having too many problems
5324 * Itpl is back as a dependency. I was having too many problems
5321 getting the parametric aliases to work reliably, and it's just
5325 getting the parametric aliases to work reliably, and it's just
5322 easier to code weird string operations with it than playing %()s
5326 easier to code weird string operations with it than playing %()s
5323 games. It's only ~6k, so I don't think it's too big a deal.
5327 games. It's only ~6k, so I don't think it's too big a deal.
5324
5328
5325 * Found (and fixed) a very nasty bug with history. !lines weren't
5329 * Found (and fixed) a very nasty bug with history. !lines weren't
5326 getting cached, and the out of sync caches would crash
5330 getting cached, and the out of sync caches would crash
5327 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5331 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5328 division of labor a bit better. Bug fixed, cleaner structure.
5332 division of labor a bit better. Bug fixed, cleaner structure.
5329
5333
5330 2001-12-01 Fernando Perez <fperez@colorado.edu>
5334 2001-12-01 Fernando Perez <fperez@colorado.edu>
5331
5335
5332 * Released 0.1.19
5336 * Released 0.1.19
5333
5337
5334 * Added option -n to @hist to prevent line number printing. Much
5338 * Added option -n to @hist to prevent line number printing. Much
5335 easier to copy/paste code this way.
5339 easier to copy/paste code this way.
5336
5340
5337 * Created global _il to hold the input list. Allows easy
5341 * Created global _il to hold the input list. Allows easy
5338 re-execution of blocks of code by slicing it (inspired by Janko's
5342 re-execution of blocks of code by slicing it (inspired by Janko's
5339 comment on 'macros').
5343 comment on 'macros').
5340
5344
5341 * Small fixes and doc updates.
5345 * Small fixes and doc updates.
5342
5346
5343 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5347 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5344 much too fragile with automagic. Handles properly multi-line
5348 much too fragile with automagic. Handles properly multi-line
5345 statements and takes parameters.
5349 statements and takes parameters.
5346
5350
5347 2001-11-30 Fernando Perez <fperez@colorado.edu>
5351 2001-11-30 Fernando Perez <fperez@colorado.edu>
5348
5352
5349 * Version 0.1.18 released.
5353 * Version 0.1.18 released.
5350
5354
5351 * Fixed nasty namespace bug in initial module imports.
5355 * Fixed nasty namespace bug in initial module imports.
5352
5356
5353 * Added copyright/license notes to all code files (except
5357 * Added copyright/license notes to all code files (except
5354 DPyGetOpt). For the time being, LGPL. That could change.
5358 DPyGetOpt). For the time being, LGPL. That could change.
5355
5359
5356 * Rewrote a much nicer README, updated INSTALL, cleaned up
5360 * Rewrote a much nicer README, updated INSTALL, cleaned up
5357 ipythonrc-* samples.
5361 ipythonrc-* samples.
5358
5362
5359 * Overall code/documentation cleanup. Basically ready for
5363 * Overall code/documentation cleanup. Basically ready for
5360 release. Only remaining thing: licence decision (LGPL?).
5364 release. Only remaining thing: licence decision (LGPL?).
5361
5365
5362 * Converted load_config to a class, ConfigLoader. Now recursion
5366 * Converted load_config to a class, ConfigLoader. Now recursion
5363 control is better organized. Doesn't include the same file twice.
5367 control is better organized. Doesn't include the same file twice.
5364
5368
5365 2001-11-29 Fernando Perez <fperez@colorado.edu>
5369 2001-11-29 Fernando Perez <fperez@colorado.edu>
5366
5370
5367 * Got input history working. Changed output history variables from
5371 * Got input history working. Changed output history variables from
5368 _p to _o so that _i is for input and _o for output. Just cleaner
5372 _p to _o so that _i is for input and _o for output. Just cleaner
5369 convention.
5373 convention.
5370
5374
5371 * Implemented parametric aliases. This pretty much allows the
5375 * Implemented parametric aliases. This pretty much allows the
5372 alias system to offer full-blown shell convenience, I think.
5376 alias system to offer full-blown shell convenience, I think.
5373
5377
5374 * Version 0.1.17 released, 0.1.18 opened.
5378 * Version 0.1.17 released, 0.1.18 opened.
5375
5379
5376 * dot_ipython/ipythonrc (alias): added documentation.
5380 * dot_ipython/ipythonrc (alias): added documentation.
5377 (xcolor): Fixed small bug (xcolors -> xcolor)
5381 (xcolor): Fixed small bug (xcolors -> xcolor)
5378
5382
5379 * Changed the alias system. Now alias is a magic command to define
5383 * Changed the alias system. Now alias is a magic command to define
5380 aliases just like the shell. Rationale: the builtin magics should
5384 aliases just like the shell. Rationale: the builtin magics should
5381 be there for things deeply connected to IPython's
5385 be there for things deeply connected to IPython's
5382 architecture. And this is a much lighter system for what I think
5386 architecture. And this is a much lighter system for what I think
5383 is the really important feature: allowing users to define quickly
5387 is the really important feature: allowing users to define quickly
5384 magics that will do shell things for them, so they can customize
5388 magics that will do shell things for them, so they can customize
5385 IPython easily to match their work habits. If someone is really
5389 IPython easily to match their work habits. If someone is really
5386 desperate to have another name for a builtin alias, they can
5390 desperate to have another name for a builtin alias, they can
5387 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5391 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5388 works.
5392 works.
5389
5393
5390 2001-11-28 Fernando Perez <fperez@colorado.edu>
5394 2001-11-28 Fernando Perez <fperez@colorado.edu>
5391
5395
5392 * Changed @file so that it opens the source file at the proper
5396 * Changed @file so that it opens the source file at the proper
5393 line. Since it uses less, if your EDITOR environment is
5397 line. Since it uses less, if your EDITOR environment is
5394 configured, typing v will immediately open your editor of choice
5398 configured, typing v will immediately open your editor of choice
5395 right at the line where the object is defined. Not as quick as
5399 right at the line where the object is defined. Not as quick as
5396 having a direct @edit command, but for all intents and purposes it
5400 having a direct @edit command, but for all intents and purposes it
5397 works. And I don't have to worry about writing @edit to deal with
5401 works. And I don't have to worry about writing @edit to deal with
5398 all the editors, less does that.
5402 all the editors, less does that.
5399
5403
5400 * Version 0.1.16 released, 0.1.17 opened.
5404 * Version 0.1.16 released, 0.1.17 opened.
5401
5405
5402 * Fixed some nasty bugs in the page/page_dumb combo that could
5406 * Fixed some nasty bugs in the page/page_dumb combo that could
5403 crash IPython.
5407 crash IPython.
5404
5408
5405 2001-11-27 Fernando Perez <fperez@colorado.edu>
5409 2001-11-27 Fernando Perez <fperez@colorado.edu>
5406
5410
5407 * Version 0.1.15 released, 0.1.16 opened.
5411 * Version 0.1.15 released, 0.1.16 opened.
5408
5412
5409 * Finally got ? and ?? to work for undefined things: now it's
5413 * Finally got ? and ?? to work for undefined things: now it's
5410 possible to type {}.get? and get information about the get method
5414 possible to type {}.get? and get information about the get method
5411 of dicts, or os.path? even if only os is defined (so technically
5415 of dicts, or os.path? even if only os is defined (so technically
5412 os.path isn't). Works at any level. For example, after import os,
5416 os.path isn't). Works at any level. For example, after import os,
5413 os?, os.path?, os.path.abspath? all work. This is great, took some
5417 os?, os.path?, os.path.abspath? all work. This is great, took some
5414 work in _ofind.
5418 work in _ofind.
5415
5419
5416 * Fixed more bugs with logging. The sanest way to do it was to add
5420 * Fixed more bugs with logging. The sanest way to do it was to add
5417 to @log a 'mode' parameter. Killed two in one shot (this mode
5421 to @log a 'mode' parameter. Killed two in one shot (this mode
5418 option was a request of Janko's). I think it's finally clean
5422 option was a request of Janko's). I think it's finally clean
5419 (famous last words).
5423 (famous last words).
5420
5424
5421 * Added a page_dumb() pager which does a decent job of paging on
5425 * Added a page_dumb() pager which does a decent job of paging on
5422 screen, if better things (like less) aren't available. One less
5426 screen, if better things (like less) aren't available. One less
5423 unix dependency (someday maybe somebody will port this to
5427 unix dependency (someday maybe somebody will port this to
5424 windows).
5428 windows).
5425
5429
5426 * Fixed problem in magic_log: would lock of logging out if log
5430 * Fixed problem in magic_log: would lock of logging out if log
5427 creation failed (because it would still think it had succeeded).
5431 creation failed (because it would still think it had succeeded).
5428
5432
5429 * Improved the page() function using curses to auto-detect screen
5433 * Improved the page() function using curses to auto-detect screen
5430 size. Now it can make a much better decision on whether to print
5434 size. Now it can make a much better decision on whether to print
5431 or page a string. Option screen_length was modified: a value 0
5435 or page a string. Option screen_length was modified: a value 0
5432 means auto-detect, and that's the default now.
5436 means auto-detect, and that's the default now.
5433
5437
5434 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5438 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5435 go out. I'll test it for a few days, then talk to Janko about
5439 go out. I'll test it for a few days, then talk to Janko about
5436 licences and announce it.
5440 licences and announce it.
5437
5441
5438 * Fixed the length of the auto-generated ---> prompt which appears
5442 * Fixed the length of the auto-generated ---> prompt which appears
5439 for auto-parens and auto-quotes. Getting this right isn't trivial,
5443 for auto-parens and auto-quotes. Getting this right isn't trivial,
5440 with all the color escapes, different prompt types and optional
5444 with all the color escapes, different prompt types and optional
5441 separators. But it seems to be working in all the combinations.
5445 separators. But it seems to be working in all the combinations.
5442
5446
5443 2001-11-26 Fernando Perez <fperez@colorado.edu>
5447 2001-11-26 Fernando Perez <fperez@colorado.edu>
5444
5448
5445 * Wrote a regexp filter to get option types from the option names
5449 * Wrote a regexp filter to get option types from the option names
5446 string. This eliminates the need to manually keep two duplicate
5450 string. This eliminates the need to manually keep two duplicate
5447 lists.
5451 lists.
5448
5452
5449 * Removed the unneeded check_option_names. Now options are handled
5453 * Removed the unneeded check_option_names. Now options are handled
5450 in a much saner manner and it's easy to visually check that things
5454 in a much saner manner and it's easy to visually check that things
5451 are ok.
5455 are ok.
5452
5456
5453 * Updated version numbers on all files I modified to carry a
5457 * Updated version numbers on all files I modified to carry a
5454 notice so Janko and Nathan have clear version markers.
5458 notice so Janko and Nathan have clear version markers.
5455
5459
5456 * Updated docstring for ultraTB with my changes. I should send
5460 * Updated docstring for ultraTB with my changes. I should send
5457 this to Nathan.
5461 this to Nathan.
5458
5462
5459 * Lots of small fixes. Ran everything through pychecker again.
5463 * Lots of small fixes. Ran everything through pychecker again.
5460
5464
5461 * Made loading of deep_reload an cmd line option. If it's not too
5465 * Made loading of deep_reload an cmd line option. If it's not too
5462 kosher, now people can just disable it. With -nodeep_reload it's
5466 kosher, now people can just disable it. With -nodeep_reload it's
5463 still available as dreload(), it just won't overwrite reload().
5467 still available as dreload(), it just won't overwrite reload().
5464
5468
5465 * Moved many options to the no| form (-opt and -noopt
5469 * Moved many options to the no| form (-opt and -noopt
5466 accepted). Cleaner.
5470 accepted). Cleaner.
5467
5471
5468 * Changed magic_log so that if called with no parameters, it uses
5472 * Changed magic_log so that if called with no parameters, it uses
5469 'rotate' mode. That way auto-generated logs aren't automatically
5473 'rotate' mode. That way auto-generated logs aren't automatically
5470 over-written. For normal logs, now a backup is made if it exists
5474 over-written. For normal logs, now a backup is made if it exists
5471 (only 1 level of backups). A new 'backup' mode was added to the
5475 (only 1 level of backups). A new 'backup' mode was added to the
5472 Logger class to support this. This was a request by Janko.
5476 Logger class to support this. This was a request by Janko.
5473
5477
5474 * Added @logoff/@logon to stop/restart an active log.
5478 * Added @logoff/@logon to stop/restart an active log.
5475
5479
5476 * Fixed a lot of bugs in log saving/replay. It was pretty
5480 * Fixed a lot of bugs in log saving/replay. It was pretty
5477 broken. Now special lines (!@,/) appear properly in the command
5481 broken. Now special lines (!@,/) appear properly in the command
5478 history after a log replay.
5482 history after a log replay.
5479
5483
5480 * Tried and failed to implement full session saving via pickle. My
5484 * Tried and failed to implement full session saving via pickle. My
5481 idea was to pickle __main__.__dict__, but modules can't be
5485 idea was to pickle __main__.__dict__, but modules can't be
5482 pickled. This would be a better alternative to replaying logs, but
5486 pickled. This would be a better alternative to replaying logs, but
5483 seems quite tricky to get to work. Changed -session to be called
5487 seems quite tricky to get to work. Changed -session to be called
5484 -logplay, which more accurately reflects what it does. And if we
5488 -logplay, which more accurately reflects what it does. And if we
5485 ever get real session saving working, -session is now available.
5489 ever get real session saving working, -session is now available.
5486
5490
5487 * Implemented color schemes for prompts also. As for tracebacks,
5491 * Implemented color schemes for prompts also. As for tracebacks,
5488 currently only NoColor and Linux are supported. But now the
5492 currently only NoColor and Linux are supported. But now the
5489 infrastructure is in place, based on a generic ColorScheme
5493 infrastructure is in place, based on a generic ColorScheme
5490 class. So writing and activating new schemes both for the prompts
5494 class. So writing and activating new schemes both for the prompts
5491 and the tracebacks should be straightforward.
5495 and the tracebacks should be straightforward.
5492
5496
5493 * Version 0.1.13 released, 0.1.14 opened.
5497 * Version 0.1.13 released, 0.1.14 opened.
5494
5498
5495 * Changed handling of options for output cache. Now counter is
5499 * Changed handling of options for output cache. Now counter is
5496 hardwired starting at 1 and one specifies the maximum number of
5500 hardwired starting at 1 and one specifies the maximum number of
5497 entries *in the outcache* (not the max prompt counter). This is
5501 entries *in the outcache* (not the max prompt counter). This is
5498 much better, since many statements won't increase the cache
5502 much better, since many statements won't increase the cache
5499 count. It also eliminated some confusing options, now there's only
5503 count. It also eliminated some confusing options, now there's only
5500 one: cache_size.
5504 one: cache_size.
5501
5505
5502 * Added 'alias' magic function and magic_alias option in the
5506 * Added 'alias' magic function and magic_alias option in the
5503 ipythonrc file. Now the user can easily define whatever names he
5507 ipythonrc file. Now the user can easily define whatever names he
5504 wants for the magic functions without having to play weird
5508 wants for the magic functions without having to play weird
5505 namespace games. This gives IPython a real shell-like feel.
5509 namespace games. This gives IPython a real shell-like feel.
5506
5510
5507 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5511 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5508 @ or not).
5512 @ or not).
5509
5513
5510 This was one of the last remaining 'visible' bugs (that I know
5514 This was one of the last remaining 'visible' bugs (that I know
5511 of). I think if I can clean up the session loading so it works
5515 of). I think if I can clean up the session loading so it works
5512 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5516 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5513 about licensing).
5517 about licensing).
5514
5518
5515 2001-11-25 Fernando Perez <fperez@colorado.edu>
5519 2001-11-25 Fernando Perez <fperez@colorado.edu>
5516
5520
5517 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5521 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5518 there's a cleaner distinction between what ? and ?? show.
5522 there's a cleaner distinction between what ? and ?? show.
5519
5523
5520 * Added screen_length option. Now the user can define his own
5524 * Added screen_length option. Now the user can define his own
5521 screen size for page() operations.
5525 screen size for page() operations.
5522
5526
5523 * Implemented magic shell-like functions with automatic code
5527 * Implemented magic shell-like functions with automatic code
5524 generation. Now adding another function is just a matter of adding
5528 generation. Now adding another function is just a matter of adding
5525 an entry to a dict, and the function is dynamically generated at
5529 an entry to a dict, and the function is dynamically generated at
5526 run-time. Python has some really cool features!
5530 run-time. Python has some really cool features!
5527
5531
5528 * Renamed many options to cleanup conventions a little. Now all
5532 * Renamed many options to cleanup conventions a little. Now all
5529 are lowercase, and only underscores where needed. Also in the code
5533 are lowercase, and only underscores where needed. Also in the code
5530 option name tables are clearer.
5534 option name tables are clearer.
5531
5535
5532 * Changed prompts a little. Now input is 'In [n]:' instead of
5536 * Changed prompts a little. Now input is 'In [n]:' instead of
5533 'In[n]:='. This allows it the numbers to be aligned with the
5537 'In[n]:='. This allows it the numbers to be aligned with the
5534 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5538 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5535 Python (it was a Mathematica thing). The '...' continuation prompt
5539 Python (it was a Mathematica thing). The '...' continuation prompt
5536 was also changed a little to align better.
5540 was also changed a little to align better.
5537
5541
5538 * Fixed bug when flushing output cache. Not all _p<n> variables
5542 * Fixed bug when flushing output cache. Not all _p<n> variables
5539 exist, so their deletion needs to be wrapped in a try:
5543 exist, so their deletion needs to be wrapped in a try:
5540
5544
5541 * Figured out how to properly use inspect.formatargspec() (it
5545 * Figured out how to properly use inspect.formatargspec() (it
5542 requires the args preceded by *). So I removed all the code from
5546 requires the args preceded by *). So I removed all the code from
5543 _get_pdef in Magic, which was just replicating that.
5547 _get_pdef in Magic, which was just replicating that.
5544
5548
5545 * Added test to prefilter to allow redefining magic function names
5549 * Added test to prefilter to allow redefining magic function names
5546 as variables. This is ok, since the @ form is always available,
5550 as variables. This is ok, since the @ form is always available,
5547 but whe should allow the user to define a variable called 'ls' if
5551 but whe should allow the user to define a variable called 'ls' if
5548 he needs it.
5552 he needs it.
5549
5553
5550 * Moved the ToDo information from README into a separate ToDo.
5554 * Moved the ToDo information from README into a separate ToDo.
5551
5555
5552 * General code cleanup and small bugfixes. I think it's close to a
5556 * General code cleanup and small bugfixes. I think it's close to a
5553 state where it can be released, obviously with a big 'beta'
5557 state where it can be released, obviously with a big 'beta'
5554 warning on it.
5558 warning on it.
5555
5559
5556 * Got the magic function split to work. Now all magics are defined
5560 * Got the magic function split to work. Now all magics are defined
5557 in a separate class. It just organizes things a bit, and now
5561 in a separate class. It just organizes things a bit, and now
5558 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5562 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5559 was too long).
5563 was too long).
5560
5564
5561 * Changed @clear to @reset to avoid potential confusions with
5565 * Changed @clear to @reset to avoid potential confusions with
5562 the shell command clear. Also renamed @cl to @clear, which does
5566 the shell command clear. Also renamed @cl to @clear, which does
5563 exactly what people expect it to from their shell experience.
5567 exactly what people expect it to from their shell experience.
5564
5568
5565 Added a check to the @reset command (since it's so
5569 Added a check to the @reset command (since it's so
5566 destructive, it's probably a good idea to ask for confirmation).
5570 destructive, it's probably a good idea to ask for confirmation).
5567 But now reset only works for full namespace resetting. Since the
5571 But now reset only works for full namespace resetting. Since the
5568 del keyword is already there for deleting a few specific
5572 del keyword is already there for deleting a few specific
5569 variables, I don't see the point of having a redundant magic
5573 variables, I don't see the point of having a redundant magic
5570 function for the same task.
5574 function for the same task.
5571
5575
5572 2001-11-24 Fernando Perez <fperez@colorado.edu>
5576 2001-11-24 Fernando Perez <fperez@colorado.edu>
5573
5577
5574 * Updated the builtin docs (esp. the ? ones).
5578 * Updated the builtin docs (esp. the ? ones).
5575
5579
5576 * Ran all the code through pychecker. Not terribly impressed with
5580 * Ran all the code through pychecker. Not terribly impressed with
5577 it: lots of spurious warnings and didn't really find anything of
5581 it: lots of spurious warnings and didn't really find anything of
5578 substance (just a few modules being imported and not used).
5582 substance (just a few modules being imported and not used).
5579
5583
5580 * Implemented the new ultraTB functionality into IPython. New
5584 * Implemented the new ultraTB functionality into IPython. New
5581 option: xcolors. This chooses color scheme. xmode now only selects
5585 option: xcolors. This chooses color scheme. xmode now only selects
5582 between Plain and Verbose. Better orthogonality.
5586 between Plain and Verbose. Better orthogonality.
5583
5587
5584 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5588 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5585 mode and color scheme for the exception handlers. Now it's
5589 mode and color scheme for the exception handlers. Now it's
5586 possible to have the verbose traceback with no coloring.
5590 possible to have the verbose traceback with no coloring.
5587
5591
5588 2001-11-23 Fernando Perez <fperez@colorado.edu>
5592 2001-11-23 Fernando Perez <fperez@colorado.edu>
5589
5593
5590 * Version 0.1.12 released, 0.1.13 opened.
5594 * Version 0.1.12 released, 0.1.13 opened.
5591
5595
5592 * Removed option to set auto-quote and auto-paren escapes by
5596 * Removed option to set auto-quote and auto-paren escapes by
5593 user. The chances of breaking valid syntax are just too high. If
5597 user. The chances of breaking valid syntax are just too high. If
5594 someone *really* wants, they can always dig into the code.
5598 someone *really* wants, they can always dig into the code.
5595
5599
5596 * Made prompt separators configurable.
5600 * Made prompt separators configurable.
5597
5601
5598 2001-11-22 Fernando Perez <fperez@colorado.edu>
5602 2001-11-22 Fernando Perez <fperez@colorado.edu>
5599
5603
5600 * Small bugfixes in many places.
5604 * Small bugfixes in many places.
5601
5605
5602 * Removed the MyCompleter class from ipplib. It seemed redundant
5606 * Removed the MyCompleter class from ipplib. It seemed redundant
5603 with the C-p,C-n history search functionality. Less code to
5607 with the C-p,C-n history search functionality. Less code to
5604 maintain.
5608 maintain.
5605
5609
5606 * Moved all the original ipython.py code into ipythonlib.py. Right
5610 * Moved all the original ipython.py code into ipythonlib.py. Right
5607 now it's just one big dump into a function called make_IPython, so
5611 now it's just one big dump into a function called make_IPython, so
5608 no real modularity has been gained. But at least it makes the
5612 no real modularity has been gained. But at least it makes the
5609 wrapper script tiny, and since ipythonlib is a module, it gets
5613 wrapper script tiny, and since ipythonlib is a module, it gets
5610 compiled and startup is much faster.
5614 compiled and startup is much faster.
5611
5615
5612 This is a reasobably 'deep' change, so we should test it for a
5616 This is a reasobably 'deep' change, so we should test it for a
5613 while without messing too much more with the code.
5617 while without messing too much more with the code.
5614
5618
5615 2001-11-21 Fernando Perez <fperez@colorado.edu>
5619 2001-11-21 Fernando Perez <fperez@colorado.edu>
5616
5620
5617 * Version 0.1.11 released, 0.1.12 opened for further work.
5621 * Version 0.1.11 released, 0.1.12 opened for further work.
5618
5622
5619 * Removed dependency on Itpl. It was only needed in one place. It
5623 * Removed dependency on Itpl. It was only needed in one place. It
5620 would be nice if this became part of python, though. It makes life
5624 would be nice if this became part of python, though. It makes life
5621 *a lot* easier in some cases.
5625 *a lot* easier in some cases.
5622
5626
5623 * Simplified the prefilter code a bit. Now all handlers are
5627 * Simplified the prefilter code a bit. Now all handlers are
5624 expected to explicitly return a value (at least a blank string).
5628 expected to explicitly return a value (at least a blank string).
5625
5629
5626 * Heavy edits in ipplib. Removed the help system altogether. Now
5630 * Heavy edits in ipplib. Removed the help system altogether. Now
5627 obj?/?? is used for inspecting objects, a magic @doc prints
5631 obj?/?? is used for inspecting objects, a magic @doc prints
5628 docstrings, and full-blown Python help is accessed via the 'help'
5632 docstrings, and full-blown Python help is accessed via the 'help'
5629 keyword. This cleans up a lot of code (less to maintain) and does
5633 keyword. This cleans up a lot of code (less to maintain) and does
5630 the job. Since 'help' is now a standard Python component, might as
5634 the job. Since 'help' is now a standard Python component, might as
5631 well use it and remove duplicate functionality.
5635 well use it and remove duplicate functionality.
5632
5636
5633 Also removed the option to use ipplib as a standalone program. By
5637 Also removed the option to use ipplib as a standalone program. By
5634 now it's too dependent on other parts of IPython to function alone.
5638 now it's too dependent on other parts of IPython to function alone.
5635
5639
5636 * Fixed bug in genutils.pager. It would crash if the pager was
5640 * Fixed bug in genutils.pager. It would crash if the pager was
5637 exited immediately after opening (broken pipe).
5641 exited immediately after opening (broken pipe).
5638
5642
5639 * Trimmed down the VerboseTB reporting a little. The header is
5643 * Trimmed down the VerboseTB reporting a little. The header is
5640 much shorter now and the repeated exception arguments at the end
5644 much shorter now and the repeated exception arguments at the end
5641 have been removed. For interactive use the old header seemed a bit
5645 have been removed. For interactive use the old header seemed a bit
5642 excessive.
5646 excessive.
5643
5647
5644 * Fixed small bug in output of @whos for variables with multi-word
5648 * Fixed small bug in output of @whos for variables with multi-word
5645 types (only first word was displayed).
5649 types (only first word was displayed).
5646
5650
5647 2001-11-17 Fernando Perez <fperez@colorado.edu>
5651 2001-11-17 Fernando Perez <fperez@colorado.edu>
5648
5652
5649 * Version 0.1.10 released, 0.1.11 opened for further work.
5653 * Version 0.1.10 released, 0.1.11 opened for further work.
5650
5654
5651 * Modified dirs and friends. dirs now *returns* the stack (not
5655 * Modified dirs and friends. dirs now *returns* the stack (not
5652 prints), so one can manipulate it as a variable. Convenient to
5656 prints), so one can manipulate it as a variable. Convenient to
5653 travel along many directories.
5657 travel along many directories.
5654
5658
5655 * Fixed bug in magic_pdef: would only work with functions with
5659 * Fixed bug in magic_pdef: would only work with functions with
5656 arguments with default values.
5660 arguments with default values.
5657
5661
5658 2001-11-14 Fernando Perez <fperez@colorado.edu>
5662 2001-11-14 Fernando Perez <fperez@colorado.edu>
5659
5663
5660 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5664 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5661 example with IPython. Various other minor fixes and cleanups.
5665 example with IPython. Various other minor fixes and cleanups.
5662
5666
5663 * Version 0.1.9 released, 0.1.10 opened for further work.
5667 * Version 0.1.9 released, 0.1.10 opened for further work.
5664
5668
5665 * Added sys.path to the list of directories searched in the
5669 * Added sys.path to the list of directories searched in the
5666 execfile= option. It used to be the current directory and the
5670 execfile= option. It used to be the current directory and the
5667 user's IPYTHONDIR only.
5671 user's IPYTHONDIR only.
5668
5672
5669 2001-11-13 Fernando Perez <fperez@colorado.edu>
5673 2001-11-13 Fernando Perez <fperez@colorado.edu>
5670
5674
5671 * Reinstated the raw_input/prefilter separation that Janko had
5675 * Reinstated the raw_input/prefilter separation that Janko had
5672 initially. This gives a more convenient setup for extending the
5676 initially. This gives a more convenient setup for extending the
5673 pre-processor from the outside: raw_input always gets a string,
5677 pre-processor from the outside: raw_input always gets a string,
5674 and prefilter has to process it. We can then redefine prefilter
5678 and prefilter has to process it. We can then redefine prefilter
5675 from the outside and implement extensions for special
5679 from the outside and implement extensions for special
5676 purposes.
5680 purposes.
5677
5681
5678 Today I got one for inputting PhysicalQuantity objects
5682 Today I got one for inputting PhysicalQuantity objects
5679 (from Scientific) without needing any function calls at
5683 (from Scientific) without needing any function calls at
5680 all. Extremely convenient, and it's all done as a user-level
5684 all. Extremely convenient, and it's all done as a user-level
5681 extension (no IPython code was touched). Now instead of:
5685 extension (no IPython code was touched). Now instead of:
5682 a = PhysicalQuantity(4.2,'m/s**2')
5686 a = PhysicalQuantity(4.2,'m/s**2')
5683 one can simply say
5687 one can simply say
5684 a = 4.2 m/s**2
5688 a = 4.2 m/s**2
5685 or even
5689 or even
5686 a = 4.2 m/s^2
5690 a = 4.2 m/s^2
5687
5691
5688 I use this, but it's also a proof of concept: IPython really is
5692 I use this, but it's also a proof of concept: IPython really is
5689 fully user-extensible, even at the level of the parsing of the
5693 fully user-extensible, even at the level of the parsing of the
5690 command line. It's not trivial, but it's perfectly doable.
5694 command line. It's not trivial, but it's perfectly doable.
5691
5695
5692 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5696 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5693 the problem of modules being loaded in the inverse order in which
5697 the problem of modules being loaded in the inverse order in which
5694 they were defined in
5698 they were defined in
5695
5699
5696 * Version 0.1.8 released, 0.1.9 opened for further work.
5700 * Version 0.1.8 released, 0.1.9 opened for further work.
5697
5701
5698 * Added magics pdef, source and file. They respectively show the
5702 * Added magics pdef, source and file. They respectively show the
5699 definition line ('prototype' in C), source code and full python
5703 definition line ('prototype' in C), source code and full python
5700 file for any callable object. The object inspector oinfo uses
5704 file for any callable object. The object inspector oinfo uses
5701 these to show the same information.
5705 these to show the same information.
5702
5706
5703 * Version 0.1.7 released, 0.1.8 opened for further work.
5707 * Version 0.1.7 released, 0.1.8 opened for further work.
5704
5708
5705 * Separated all the magic functions into a class called Magic. The
5709 * Separated all the magic functions into a class called Magic. The
5706 InteractiveShell class was becoming too big for Xemacs to handle
5710 InteractiveShell class was becoming too big for Xemacs to handle
5707 (de-indenting a line would lock it up for 10 seconds while it
5711 (de-indenting a line would lock it up for 10 seconds while it
5708 backtracked on the whole class!)
5712 backtracked on the whole class!)
5709
5713
5710 FIXME: didn't work. It can be done, but right now namespaces are
5714 FIXME: didn't work. It can be done, but right now namespaces are
5711 all messed up. Do it later (reverted it for now, so at least
5715 all messed up. Do it later (reverted it for now, so at least
5712 everything works as before).
5716 everything works as before).
5713
5717
5714 * Got the object introspection system (magic_oinfo) working! I
5718 * Got the object introspection system (magic_oinfo) working! I
5715 think this is pretty much ready for release to Janko, so he can
5719 think this is pretty much ready for release to Janko, so he can
5716 test it for a while and then announce it. Pretty much 100% of what
5720 test it for a while and then announce it. Pretty much 100% of what
5717 I wanted for the 'phase 1' release is ready. Happy, tired.
5721 I wanted for the 'phase 1' release is ready. Happy, tired.
5718
5722
5719 2001-11-12 Fernando Perez <fperez@colorado.edu>
5723 2001-11-12 Fernando Perez <fperez@colorado.edu>
5720
5724
5721 * Version 0.1.6 released, 0.1.7 opened for further work.
5725 * Version 0.1.6 released, 0.1.7 opened for further work.
5722
5726
5723 * Fixed bug in printing: it used to test for truth before
5727 * Fixed bug in printing: it used to test for truth before
5724 printing, so 0 wouldn't print. Now checks for None.
5728 printing, so 0 wouldn't print. Now checks for None.
5725
5729
5726 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5730 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5727 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5731 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5728 reaches by hand into the outputcache. Think of a better way to do
5732 reaches by hand into the outputcache. Think of a better way to do
5729 this later.
5733 this later.
5730
5734
5731 * Various small fixes thanks to Nathan's comments.
5735 * Various small fixes thanks to Nathan's comments.
5732
5736
5733 * Changed magic_pprint to magic_Pprint. This way it doesn't
5737 * Changed magic_pprint to magic_Pprint. This way it doesn't
5734 collide with pprint() and the name is consistent with the command
5738 collide with pprint() and the name is consistent with the command
5735 line option.
5739 line option.
5736
5740
5737 * Changed prompt counter behavior to be fully like
5741 * Changed prompt counter behavior to be fully like
5738 Mathematica's. That is, even input that doesn't return a result
5742 Mathematica's. That is, even input that doesn't return a result
5739 raises the prompt counter. The old behavior was kind of confusing
5743 raises the prompt counter. The old behavior was kind of confusing
5740 (getting the same prompt number several times if the operation
5744 (getting the same prompt number several times if the operation
5741 didn't return a result).
5745 didn't return a result).
5742
5746
5743 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5747 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5744
5748
5745 * Fixed -Classic mode (wasn't working anymore).
5749 * Fixed -Classic mode (wasn't working anymore).
5746
5750
5747 * Added colored prompts using Nathan's new code. Colors are
5751 * Added colored prompts using Nathan's new code. Colors are
5748 currently hardwired, they can be user-configurable. For
5752 currently hardwired, they can be user-configurable. For
5749 developers, they can be chosen in file ipythonlib.py, at the
5753 developers, they can be chosen in file ipythonlib.py, at the
5750 beginning of the CachedOutput class def.
5754 beginning of the CachedOutput class def.
5751
5755
5752 2001-11-11 Fernando Perez <fperez@colorado.edu>
5756 2001-11-11 Fernando Perez <fperez@colorado.edu>
5753
5757
5754 * Version 0.1.5 released, 0.1.6 opened for further work.
5758 * Version 0.1.5 released, 0.1.6 opened for further work.
5755
5759
5756 * Changed magic_env to *return* the environment as a dict (not to
5760 * Changed magic_env to *return* the environment as a dict (not to
5757 print it). This way it prints, but it can also be processed.
5761 print it). This way it prints, but it can also be processed.
5758
5762
5759 * Added Verbose exception reporting to interactive
5763 * Added Verbose exception reporting to interactive
5760 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5764 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5761 traceback. Had to make some changes to the ultraTB file. This is
5765 traceback. Had to make some changes to the ultraTB file. This is
5762 probably the last 'big' thing in my mental todo list. This ties
5766 probably the last 'big' thing in my mental todo list. This ties
5763 in with the next entry:
5767 in with the next entry:
5764
5768
5765 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5769 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5766 has to specify is Plain, Color or Verbose for all exception
5770 has to specify is Plain, Color or Verbose for all exception
5767 handling.
5771 handling.
5768
5772
5769 * Removed ShellServices option. All this can really be done via
5773 * Removed ShellServices option. All this can really be done via
5770 the magic system. It's easier to extend, cleaner and has automatic
5774 the magic system. It's easier to extend, cleaner and has automatic
5771 namespace protection and documentation.
5775 namespace protection and documentation.
5772
5776
5773 2001-11-09 Fernando Perez <fperez@colorado.edu>
5777 2001-11-09 Fernando Perez <fperez@colorado.edu>
5774
5778
5775 * Fixed bug in output cache flushing (missing parameter to
5779 * Fixed bug in output cache flushing (missing parameter to
5776 __init__). Other small bugs fixed (found using pychecker).
5780 __init__). Other small bugs fixed (found using pychecker).
5777
5781
5778 * Version 0.1.4 opened for bugfixing.
5782 * Version 0.1.4 opened for bugfixing.
5779
5783
5780 2001-11-07 Fernando Perez <fperez@colorado.edu>
5784 2001-11-07 Fernando Perez <fperez@colorado.edu>
5781
5785
5782 * Version 0.1.3 released, mainly because of the raw_input bug.
5786 * Version 0.1.3 released, mainly because of the raw_input bug.
5783
5787
5784 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5788 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5785 and when testing for whether things were callable, a call could
5789 and when testing for whether things were callable, a call could
5786 actually be made to certain functions. They would get called again
5790 actually be made to certain functions. They would get called again
5787 once 'really' executed, with a resulting double call. A disaster
5791 once 'really' executed, with a resulting double call. A disaster
5788 in many cases (list.reverse() would never work!).
5792 in many cases (list.reverse() would never work!).
5789
5793
5790 * Removed prefilter() function, moved its code to raw_input (which
5794 * Removed prefilter() function, moved its code to raw_input (which
5791 after all was just a near-empty caller for prefilter). This saves
5795 after all was just a near-empty caller for prefilter). This saves
5792 a function call on every prompt, and simplifies the class a tiny bit.
5796 a function call on every prompt, and simplifies the class a tiny bit.
5793
5797
5794 * Fix _ip to __ip name in magic example file.
5798 * Fix _ip to __ip name in magic example file.
5795
5799
5796 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5800 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5797 work with non-gnu versions of tar.
5801 work with non-gnu versions of tar.
5798
5802
5799 2001-11-06 Fernando Perez <fperez@colorado.edu>
5803 2001-11-06 Fernando Perez <fperez@colorado.edu>
5800
5804
5801 * Version 0.1.2. Just to keep track of the recent changes.
5805 * Version 0.1.2. Just to keep track of the recent changes.
5802
5806
5803 * Fixed nasty bug in output prompt routine. It used to check 'if
5807 * Fixed nasty bug in output prompt routine. It used to check 'if
5804 arg != None...'. Problem is, this fails if arg implements a
5808 arg != None...'. Problem is, this fails if arg implements a
5805 special comparison (__cmp__) which disallows comparing to
5809 special comparison (__cmp__) which disallows comparing to
5806 None. Found it when trying to use the PhysicalQuantity module from
5810 None. Found it when trying to use the PhysicalQuantity module from
5807 ScientificPython.
5811 ScientificPython.
5808
5812
5809 2001-11-05 Fernando Perez <fperez@colorado.edu>
5813 2001-11-05 Fernando Perez <fperez@colorado.edu>
5810
5814
5811 * Also added dirs. Now the pushd/popd/dirs family functions
5815 * Also added dirs. Now the pushd/popd/dirs family functions
5812 basically like the shell, with the added convenience of going home
5816 basically like the shell, with the added convenience of going home
5813 when called with no args.
5817 when called with no args.
5814
5818
5815 * pushd/popd slightly modified to mimic shell behavior more
5819 * pushd/popd slightly modified to mimic shell behavior more
5816 closely.
5820 closely.
5817
5821
5818 * Added env,pushd,popd from ShellServices as magic functions. I
5822 * Added env,pushd,popd from ShellServices as magic functions. I
5819 think the cleanest will be to port all desired functions from
5823 think the cleanest will be to port all desired functions from
5820 ShellServices as magics and remove ShellServices altogether. This
5824 ShellServices as magics and remove ShellServices altogether. This
5821 will provide a single, clean way of adding functionality
5825 will provide a single, clean way of adding functionality
5822 (shell-type or otherwise) to IP.
5826 (shell-type or otherwise) to IP.
5823
5827
5824 2001-11-04 Fernando Perez <fperez@colorado.edu>
5828 2001-11-04 Fernando Perez <fperez@colorado.edu>
5825
5829
5826 * Added .ipython/ directory to sys.path. This way users can keep
5830 * Added .ipython/ directory to sys.path. This way users can keep
5827 customizations there and access them via import.
5831 customizations there and access them via import.
5828
5832
5829 2001-11-03 Fernando Perez <fperez@colorado.edu>
5833 2001-11-03 Fernando Perez <fperez@colorado.edu>
5830
5834
5831 * Opened version 0.1.1 for new changes.
5835 * Opened version 0.1.1 for new changes.
5832
5836
5833 * Changed version number to 0.1.0: first 'public' release, sent to
5837 * Changed version number to 0.1.0: first 'public' release, sent to
5834 Nathan and Janko.
5838 Nathan and Janko.
5835
5839
5836 * Lots of small fixes and tweaks.
5840 * Lots of small fixes and tweaks.
5837
5841
5838 * Minor changes to whos format. Now strings are shown, snipped if
5842 * Minor changes to whos format. Now strings are shown, snipped if
5839 too long.
5843 too long.
5840
5844
5841 * Changed ShellServices to work on __main__ so they show up in @who
5845 * Changed ShellServices to work on __main__ so they show up in @who
5842
5846
5843 * Help also works with ? at the end of a line:
5847 * Help also works with ? at the end of a line:
5844 ?sin and sin?
5848 ?sin and sin?
5845 both produce the same effect. This is nice, as often I use the
5849 both produce the same effect. This is nice, as often I use the
5846 tab-complete to find the name of a method, but I used to then have
5850 tab-complete to find the name of a method, but I used to then have
5847 to go to the beginning of the line to put a ? if I wanted more
5851 to go to the beginning of the line to put a ? if I wanted more
5848 info. Now I can just add the ? and hit return. Convenient.
5852 info. Now I can just add the ? and hit return. Convenient.
5849
5853
5850 2001-11-02 Fernando Perez <fperez@colorado.edu>
5854 2001-11-02 Fernando Perez <fperez@colorado.edu>
5851
5855
5852 * Python version check (>=2.1) added.
5856 * Python version check (>=2.1) added.
5853
5857
5854 * Added LazyPython documentation. At this point the docs are quite
5858 * Added LazyPython documentation. At this point the docs are quite
5855 a mess. A cleanup is in order.
5859 a mess. A cleanup is in order.
5856
5860
5857 * Auto-installer created. For some bizarre reason, the zipfiles
5861 * Auto-installer created. For some bizarre reason, the zipfiles
5858 module isn't working on my system. So I made a tar version
5862 module isn't working on my system. So I made a tar version
5859 (hopefully the command line options in various systems won't kill
5863 (hopefully the command line options in various systems won't kill
5860 me).
5864 me).
5861
5865
5862 * Fixes to Struct in genutils. Now all dictionary-like methods are
5866 * Fixes to Struct in genutils. Now all dictionary-like methods are
5863 protected (reasonably).
5867 protected (reasonably).
5864
5868
5865 * Added pager function to genutils and changed ? to print usage
5869 * Added pager function to genutils and changed ? to print usage
5866 note through it (it was too long).
5870 note through it (it was too long).
5867
5871
5868 * Added the LazyPython functionality. Works great! I changed the
5872 * Added the LazyPython functionality. Works great! I changed the
5869 auto-quote escape to ';', it's on home row and next to '. But
5873 auto-quote escape to ';', it's on home row and next to '. But
5870 both auto-quote and auto-paren (still /) escapes are command-line
5874 both auto-quote and auto-paren (still /) escapes are command-line
5871 parameters.
5875 parameters.
5872
5876
5873
5877
5874 2001-11-01 Fernando Perez <fperez@colorado.edu>
5878 2001-11-01 Fernando Perez <fperez@colorado.edu>
5875
5879
5876 * Version changed to 0.0.7. Fairly large change: configuration now
5880 * Version changed to 0.0.7. Fairly large change: configuration now
5877 is all stored in a directory, by default .ipython. There, all
5881 is all stored in a directory, by default .ipython. There, all
5878 config files have normal looking names (not .names)
5882 config files have normal looking names (not .names)
5879
5883
5880 * Version 0.0.6 Released first to Lucas and Archie as a test
5884 * Version 0.0.6 Released first to Lucas and Archie as a test
5881 run. Since it's the first 'semi-public' release, change version to
5885 run. Since it's the first 'semi-public' release, change version to
5882 > 0.0.6 for any changes now.
5886 > 0.0.6 for any changes now.
5883
5887
5884 * Stuff I had put in the ipplib.py changelog:
5888 * Stuff I had put in the ipplib.py changelog:
5885
5889
5886 Changes to InteractiveShell:
5890 Changes to InteractiveShell:
5887
5891
5888 - Made the usage message a parameter.
5892 - Made the usage message a parameter.
5889
5893
5890 - Require the name of the shell variable to be given. It's a bit
5894 - Require the name of the shell variable to be given. It's a bit
5891 of a hack, but allows the name 'shell' not to be hardwired in the
5895 of a hack, but allows the name 'shell' not to be hardwired in the
5892 magic (@) handler, which is problematic b/c it requires
5896 magic (@) handler, which is problematic b/c it requires
5893 polluting the global namespace with 'shell'. This in turn is
5897 polluting the global namespace with 'shell'. This in turn is
5894 fragile: if a user redefines a variable called shell, things
5898 fragile: if a user redefines a variable called shell, things
5895 break.
5899 break.
5896
5900
5897 - magic @: all functions available through @ need to be defined
5901 - magic @: all functions available through @ need to be defined
5898 as magic_<name>, even though they can be called simply as
5902 as magic_<name>, even though they can be called simply as
5899 @<name>. This allows the special command @magic to gather
5903 @<name>. This allows the special command @magic to gather
5900 information automatically about all existing magic functions,
5904 information automatically about all existing magic functions,
5901 even if they are run-time user extensions, by parsing the shell
5905 even if they are run-time user extensions, by parsing the shell
5902 instance __dict__ looking for special magic_ names.
5906 instance __dict__ looking for special magic_ names.
5903
5907
5904 - mainloop: added *two* local namespace parameters. This allows
5908 - mainloop: added *two* local namespace parameters. This allows
5905 the class to differentiate between parameters which were there
5909 the class to differentiate between parameters which were there
5906 before and after command line initialization was processed. This
5910 before and after command line initialization was processed. This
5907 way, later @who can show things loaded at startup by the
5911 way, later @who can show things loaded at startup by the
5908 user. This trick was necessary to make session saving/reloading
5912 user. This trick was necessary to make session saving/reloading
5909 really work: ideally after saving/exiting/reloading a session,
5913 really work: ideally after saving/exiting/reloading a session,
5910 *everything* should look the same, including the output of @who. I
5914 *everything* should look the same, including the output of @who. I
5911 was only able to make this work with this double namespace
5915 was only able to make this work with this double namespace
5912 trick.
5916 trick.
5913
5917
5914 - added a header to the logfile which allows (almost) full
5918 - added a header to the logfile which allows (almost) full
5915 session restoring.
5919 session restoring.
5916
5920
5917 - prepend lines beginning with @ or !, with a and log
5921 - prepend lines beginning with @ or !, with a and log
5918 them. Why? !lines: may be useful to know what you did @lines:
5922 them. Why? !lines: may be useful to know what you did @lines:
5919 they may affect session state. So when restoring a session, at
5923 they may affect session state. So when restoring a session, at
5920 least inform the user of their presence. I couldn't quite get
5924 least inform the user of their presence. I couldn't quite get
5921 them to properly re-execute, but at least the user is warned.
5925 them to properly re-execute, but at least the user is warned.
5922
5926
5923 * Started ChangeLog.
5927 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now