##// END OF EJS Templates
changelog
vivainio -
Show More
@@ -1,5941 +1,5953 b''
1 2006-11-21 Ville Vainio <vivainio@gmail.com>
2
3 * upgrade_dir.py: Now actually overwrites a nonmodified user file
4 with one from UserConfig.
5
6 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
7 it was missing which broke the sh profile.
8
9 * completer.py: file completer now uses explicit '/' instead
10 of os.path.join, expansion of 'foo' was broken on win32
11 if there was one directory with name 'foobar'.
12
1 2006-11-08 Ville Vainio <vivainio@gmail.com>
13 2006-11-08 Ville Vainio <vivainio@gmail.com>
2
14
3 * completer.py (attr_matches): catch all exceptions raised
15 * completer.py (attr_matches): catch all exceptions raised
4 by eval of expr with dots.
16 by eval of expr with dots.
5
17
6 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
18 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
7
19
8 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
20 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
9 input if it starts with whitespace. This allows you to paste
21 input if it starts with whitespace. This allows you to paste
10 indented input from any editor without manually having to type in
22 indented input from any editor without manually having to type in
11 the 'if 1:', which is convenient when working interactively.
23 the 'if 1:', which is convenient when working interactively.
12 Slightly modifed version of a patch by Bo Peng
24 Slightly modifed version of a patch by Bo Peng
13 <bpeng-AT-rice.edu>.
25 <bpeng-AT-rice.edu>.
14
26
15 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
27 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
16
28
17 * IPython/irunner.py (main): modified irunner so it automatically
29 * IPython/irunner.py (main): modified irunner so it automatically
18 recognizes the right runner to use based on the extension (.py for
30 recognizes the right runner to use based on the extension (.py for
19 python, .ipy for ipython and .sage for sage).
31 python, .ipy for ipython and .sage for sage).
20
32
21 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
33 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
22 visible in ipapi as ip.config(), to programatically control the
34 visible in ipapi as ip.config(), to programatically control the
23 internal rc object. There's an accompanying %config magic for
35 internal rc object. There's an accompanying %config magic for
24 interactive use, which has been enhanced to match the
36 interactive use, which has been enhanced to match the
25 funtionality in ipconfig.
37 funtionality in ipconfig.
26
38
27 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
39 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
28 so it's not just a toggle, it now takes an argument. Add support
40 so it's not just a toggle, it now takes an argument. Add support
29 for a customizable header when making system calls, as the new
41 for a customizable header when making system calls, as the new
30 system_header variable in the ipythonrc file.
42 system_header variable in the ipythonrc file.
31
43
32 2006-11-03 Walter Doerwald <walter@livinglogic.de>
44 2006-11-03 Walter Doerwald <walter@livinglogic.de>
33
45
34 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
46 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
35 generic functions (using Philip J. Eby's simplegeneric package).
47 generic functions (using Philip J. Eby's simplegeneric package).
36 This makes it possible to customize the display of third-party classes
48 This makes it possible to customize the display of third-party classes
37 without having to monkeypatch them. xiter() no longer supports a mode
49 without having to monkeypatch them. xiter() no longer supports a mode
38 argument and the XMode class has been removed. The same functionality can
50 argument and the XMode class has been removed. The same functionality can
39 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
51 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
40 One consequence of the switch to generic functions is that xrepr() and
52 One consequence of the switch to generic functions is that xrepr() and
41 xattrs() implementation must define the default value for the mode
53 xattrs() implementation must define the default value for the mode
42 argument themselves and xattrs() implementations must return real
54 argument themselves and xattrs() implementations must return real
43 descriptors.
55 descriptors.
44
56
45 * IPython/external: This new subpackage will contain all third-party
57 * IPython/external: This new subpackage will contain all third-party
46 packages that are bundled with IPython. (The first one is simplegeneric).
58 packages that are bundled with IPython. (The first one is simplegeneric).
47
59
48 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
60 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
49 directory which as been dropped in r1703.
61 directory which as been dropped in r1703.
50
62
51 * IPython/Extensions/ipipe.py (iless): Fixed.
63 * IPython/Extensions/ipipe.py (iless): Fixed.
52
64
53 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
65 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
54
66
55 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
67 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
56
68
57 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
69 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
58 handling in variable expansion so that shells and magics recognize
70 handling in variable expansion so that shells and magics recognize
59 function local scopes correctly. Bug reported by Brian.
71 function local scopes correctly. Bug reported by Brian.
60
72
61 * scripts/ipython: remove the very first entry in sys.path which
73 * scripts/ipython: remove the very first entry in sys.path which
62 Python auto-inserts for scripts, so that sys.path under IPython is
74 Python auto-inserts for scripts, so that sys.path under IPython is
63 as similar as possible to that under plain Python.
75 as similar as possible to that under plain Python.
64
76
65 * IPython/completer.py (IPCompleter.file_matches): Fix
77 * IPython/completer.py (IPCompleter.file_matches): Fix
66 tab-completion so that quotes are not closed unless the completion
78 tab-completion so that quotes are not closed unless the completion
67 is unambiguous. After a request by Stefan. Minor cleanups in
79 is unambiguous. After a request by Stefan. Minor cleanups in
68 ipy_stock_completers.
80 ipy_stock_completers.
69
81
70 2006-11-02 Ville Vainio <vivainio@gmail.com>
82 2006-11-02 Ville Vainio <vivainio@gmail.com>
71
83
72 * ipy_stock_completers.py: Add %run and %cd completers.
84 * ipy_stock_completers.py: Add %run and %cd completers.
73
85
74 * completer.py: Try running custom completer for both
86 * completer.py: Try running custom completer for both
75 "foo" and "%foo" if the command is just "foo". Ignore case
87 "foo" and "%foo" if the command is just "foo". Ignore case
76 when filtering possible completions.
88 when filtering possible completions.
77
89
78 * UserConfig/ipy_user_conf.py: install stock completers as default
90 * UserConfig/ipy_user_conf.py: install stock completers as default
79
91
80 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
92 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
81 simplified readline history save / restore through a wrapper
93 simplified readline history save / restore through a wrapper
82 function
94 function
83
95
84
96
85 2006-10-31 Ville Vainio <vivainio@gmail.com>
97 2006-10-31 Ville Vainio <vivainio@gmail.com>
86
98
87 * strdispatch.py, completer.py, ipy_stock_completers.py:
99 * strdispatch.py, completer.py, ipy_stock_completers.py:
88 Allow str_key ("command") in completer hooks. Implement
100 Allow str_key ("command") in completer hooks. Implement
89 trivial completer for 'import' (stdlib modules only). Rename
101 trivial completer for 'import' (stdlib modules only). Rename
90 ipy_linux_package_managers.py to ipy_stock_completers.py.
102 ipy_linux_package_managers.py to ipy_stock_completers.py.
91 SVN completer.
103 SVN completer.
92
104
93 * Extensions/ledit.py: %magic line editor for easily and
105 * Extensions/ledit.py: %magic line editor for easily and
94 incrementally manipulating lists of strings. The magic command
106 incrementally manipulating lists of strings. The magic command
95 name is %led.
107 name is %led.
96
108
97 2006-10-30 Ville Vainio <vivainio@gmail.com>
109 2006-10-30 Ville Vainio <vivainio@gmail.com>
98
110
99 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
111 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
100 Bernsteins's patches for pydb integration.
112 Bernsteins's patches for pydb integration.
101 http://bashdb.sourceforge.net/pydb/
113 http://bashdb.sourceforge.net/pydb/
102
114
103 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
115 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
104 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
116 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
105 custom completer hook to allow the users to implement their own
117 custom completer hook to allow the users to implement their own
106 completers. See ipy_linux_package_managers.py for example. The
118 completers. See ipy_linux_package_managers.py for example. The
107 hook name is 'complete_command'.
119 hook name is 'complete_command'.
108
120
109 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
121 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
110
122
111 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
123 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
112 Numeric leftovers.
124 Numeric leftovers.
113
125
114 * ipython.el (py-execute-region): apply Stefan's patch to fix
126 * ipython.el (py-execute-region): apply Stefan's patch to fix
115 garbled results if the python shell hasn't been previously started.
127 garbled results if the python shell hasn't been previously started.
116
128
117 * IPython/genutils.py (arg_split): moved to genutils, since it's a
129 * IPython/genutils.py (arg_split): moved to genutils, since it's a
118 pretty generic function and useful for other things.
130 pretty generic function and useful for other things.
119
131
120 * IPython/OInspect.py (getsource): Add customizable source
132 * IPython/OInspect.py (getsource): Add customizable source
121 extractor. After a request/patch form W. Stein (SAGE).
133 extractor. After a request/patch form W. Stein (SAGE).
122
134
123 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
135 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
124 window size to a more reasonable value from what pexpect does,
136 window size to a more reasonable value from what pexpect does,
125 since their choice causes wrapping bugs with long input lines.
137 since their choice causes wrapping bugs with long input lines.
126
138
127 2006-10-28 Ville Vainio <vivainio@gmail.com>
139 2006-10-28 Ville Vainio <vivainio@gmail.com>
128
140
129 * Magic.py (%run): Save and restore the readline history from
141 * Magic.py (%run): Save and restore the readline history from
130 file around %run commands to prevent side effects from
142 file around %run commands to prevent side effects from
131 %runned programs that might use readline (e.g. pydb).
143 %runned programs that might use readline (e.g. pydb).
132
144
133 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
145 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
134 invoking the pydb enhanced debugger.
146 invoking the pydb enhanced debugger.
135
147
136 2006-10-23 Walter Doerwald <walter@livinglogic.de>
148 2006-10-23 Walter Doerwald <walter@livinglogic.de>
137
149
138 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
150 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
139 call the base class method and propagate the return value to
151 call the base class method and propagate the return value to
140 ifile. This is now done by path itself.
152 ifile. This is now done by path itself.
141
153
142 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
154 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
143
155
144 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
156 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
145 api: set_crash_handler(), to expose the ability to change the
157 api: set_crash_handler(), to expose the ability to change the
146 internal crash handler.
158 internal crash handler.
147
159
148 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
160 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
149 the various parameters of the crash handler so that apps using
161 the various parameters of the crash handler so that apps using
150 IPython as their engine can customize crash handling. Ipmlemented
162 IPython as their engine can customize crash handling. Ipmlemented
151 at the request of SAGE.
163 at the request of SAGE.
152
164
153 2006-10-14 Ville Vainio <vivainio@gmail.com>
165 2006-10-14 Ville Vainio <vivainio@gmail.com>
154
166
155 * Magic.py, ipython.el: applied first "safe" part of Rocky
167 * Magic.py, ipython.el: applied first "safe" part of Rocky
156 Bernstein's patch set for pydb integration.
168 Bernstein's patch set for pydb integration.
157
169
158 * Magic.py (%unalias, %alias): %store'd aliases can now be
170 * Magic.py (%unalias, %alias): %store'd aliases can now be
159 removed with '%unalias'. %alias w/o args now shows most
171 removed with '%unalias'. %alias w/o args now shows most
160 interesting (stored / manually defined) aliases last
172 interesting (stored / manually defined) aliases last
161 where they catch the eye w/o scrolling.
173 where they catch the eye w/o scrolling.
162
174
163 * Magic.py (%rehashx), ext_rehashdir.py: files with
175 * Magic.py (%rehashx), ext_rehashdir.py: files with
164 'py' extension are always considered executable, even
176 'py' extension are always considered executable, even
165 when not in PATHEXT environment variable.
177 when not in PATHEXT environment variable.
166
178
167 2006-10-12 Ville Vainio <vivainio@gmail.com>
179 2006-10-12 Ville Vainio <vivainio@gmail.com>
168
180
169 * jobctrl.py: Add new "jobctrl" extension for spawning background
181 * jobctrl.py: Add new "jobctrl" extension for spawning background
170 processes with "&find /". 'import jobctrl' to try it out. Requires
182 processes with "&find /". 'import jobctrl' to try it out. Requires
171 'subprocess' module, standard in python 2.4+.
183 'subprocess' module, standard in python 2.4+.
172
184
173 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
185 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
174 so if foo -> bar and bar -> baz, then foo -> baz.
186 so if foo -> bar and bar -> baz, then foo -> baz.
175
187
176 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
188 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
177
189
178 * IPython/Magic.py (Magic.parse_options): add a new posix option
190 * IPython/Magic.py (Magic.parse_options): add a new posix option
179 to allow parsing of input args in magics that doesn't strip quotes
191 to allow parsing of input args in magics that doesn't strip quotes
180 (if posix=False). This also closes %timeit bug reported by
192 (if posix=False). This also closes %timeit bug reported by
181 Stefan.
193 Stefan.
182
194
183 2006-10-03 Ville Vainio <vivainio@gmail.com>
195 2006-10-03 Ville Vainio <vivainio@gmail.com>
184
196
185 * iplib.py (raw_input, interact): Return ValueError catching for
197 * iplib.py (raw_input, interact): Return ValueError catching for
186 raw_input. Fixes infinite loop for sys.stdin.close() or
198 raw_input. Fixes infinite loop for sys.stdin.close() or
187 sys.stdout.close().
199 sys.stdout.close().
188
200
189 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
201 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
190
202
191 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
203 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
192 to help in handling doctests. irunner is now pretty useful for
204 to help in handling doctests. irunner is now pretty useful for
193 running standalone scripts and simulate a full interactive session
205 running standalone scripts and simulate a full interactive session
194 in a format that can be then pasted as a doctest.
206 in a format that can be then pasted as a doctest.
195
207
196 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
208 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
197 on top of the default (useless) ones. This also fixes the nasty
209 on top of the default (useless) ones. This also fixes the nasty
198 way in which 2.5's Quitter() exits (reverted [1785]).
210 way in which 2.5's Quitter() exits (reverted [1785]).
199
211
200 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
212 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
201 2.5.
213 2.5.
202
214
203 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
215 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
204 color scheme is updated as well when color scheme is changed
216 color scheme is updated as well when color scheme is changed
205 interactively.
217 interactively.
206
218
207 2006-09-27 Ville Vainio <vivainio@gmail.com>
219 2006-09-27 Ville Vainio <vivainio@gmail.com>
208
220
209 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
221 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
210 infinite loop and just exit. It's a hack, but will do for a while.
222 infinite loop and just exit. It's a hack, but will do for a while.
211
223
212 2006-08-25 Walter Doerwald <walter@livinglogic.de>
224 2006-08-25 Walter Doerwald <walter@livinglogic.de>
213
225
214 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
226 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
215 the constructor, this makes it possible to get a list of only directories
227 the constructor, this makes it possible to get a list of only directories
216 or only files.
228 or only files.
217
229
218 2006-08-12 Ville Vainio <vivainio@gmail.com>
230 2006-08-12 Ville Vainio <vivainio@gmail.com>
219
231
220 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
232 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
221 they broke unittest
233 they broke unittest
222
234
223 2006-08-11 Ville Vainio <vivainio@gmail.com>
235 2006-08-11 Ville Vainio <vivainio@gmail.com>
224
236
225 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
237 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
226 by resolving issue properly, i.e. by inheriting FakeModule
238 by resolving issue properly, i.e. by inheriting FakeModule
227 from types.ModuleType. Pickling ipython interactive data
239 from types.ModuleType. Pickling ipython interactive data
228 should still work as usual (testing appreciated).
240 should still work as usual (testing appreciated).
229
241
230 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
242 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
231
243
232 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
244 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
233 running under python 2.3 with code from 2.4 to fix a bug with
245 running under python 2.3 with code from 2.4 to fix a bug with
234 help(). Reported by the Debian maintainers, Norbert Tretkowski
246 help(). Reported by the Debian maintainers, Norbert Tretkowski
235 <norbert-AT-tretkowski.de> and Alexandre Fayolle
247 <norbert-AT-tretkowski.de> and Alexandre Fayolle
236 <afayolle-AT-debian.org>.
248 <afayolle-AT-debian.org>.
237
249
238 2006-08-04 Walter Doerwald <walter@livinglogic.de>
250 2006-08-04 Walter Doerwald <walter@livinglogic.de>
239
251
240 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
252 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
241 (which was displaying "quit" twice).
253 (which was displaying "quit" twice).
242
254
243 2006-07-28 Walter Doerwald <walter@livinglogic.de>
255 2006-07-28 Walter Doerwald <walter@livinglogic.de>
244
256
245 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
257 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
246 the mode argument).
258 the mode argument).
247
259
248 2006-07-27 Walter Doerwald <walter@livinglogic.de>
260 2006-07-27 Walter Doerwald <walter@livinglogic.de>
249
261
250 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
262 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
251 not running under IPython.
263 not running under IPython.
252
264
253 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
265 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
254 and make it iterable (iterating over the attribute itself). Add two new
266 and make it iterable (iterating over the attribute itself). Add two new
255 magic strings for __xattrs__(): If the string starts with "-", the attribute
267 magic strings for __xattrs__(): If the string starts with "-", the attribute
256 will not be displayed in ibrowse's detail view (but it can still be
268 will not be displayed in ibrowse's detail view (but it can still be
257 iterated over). This makes it possible to add attributes that are large
269 iterated over). This makes it possible to add attributes that are large
258 lists or generator methods to the detail view. Replace magic attribute names
270 lists or generator methods to the detail view. Replace magic attribute names
259 and _attrname() and _getattr() with "descriptors": For each type of magic
271 and _attrname() and _getattr() with "descriptors": For each type of magic
260 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
272 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
261 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
273 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
262 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
274 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
263 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
275 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
264 are still supported.
276 are still supported.
265
277
266 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
278 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
267 fails in ibrowse.fetch(), the exception object is added as the last item
279 fails in ibrowse.fetch(), the exception object is added as the last item
268 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
280 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
269 a generator throws an exception midway through execution.
281 a generator throws an exception midway through execution.
270
282
271 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
283 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
272 encoding into methods.
284 encoding into methods.
273
285
274 2006-07-26 Ville Vainio <vivainio@gmail.com>
286 2006-07-26 Ville Vainio <vivainio@gmail.com>
275
287
276 * iplib.py: history now stores multiline input as single
288 * iplib.py: history now stores multiline input as single
277 history entries. Patch by Jorgen Cederlof.
289 history entries. Patch by Jorgen Cederlof.
278
290
279 2006-07-18 Walter Doerwald <walter@livinglogic.de>
291 2006-07-18 Walter Doerwald <walter@livinglogic.de>
280
292
281 * IPython/Extensions/ibrowse.py: Make cursor visible over
293 * IPython/Extensions/ibrowse.py: Make cursor visible over
282 non existing attributes.
294 non existing attributes.
283
295
284 2006-07-14 Walter Doerwald <walter@livinglogic.de>
296 2006-07-14 Walter Doerwald <walter@livinglogic.de>
285
297
286 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
298 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
287 error output of the running command doesn't mess up the screen.
299 error output of the running command doesn't mess up the screen.
288
300
289 2006-07-13 Walter Doerwald <walter@livinglogic.de>
301 2006-07-13 Walter Doerwald <walter@livinglogic.de>
290
302
291 * IPython/Extensions/ipipe.py (isort): Make isort usable without
303 * IPython/Extensions/ipipe.py (isort): Make isort usable without
292 argument. This sorts the items themselves.
304 argument. This sorts the items themselves.
293
305
294 2006-07-12 Walter Doerwald <walter@livinglogic.de>
306 2006-07-12 Walter Doerwald <walter@livinglogic.de>
295
307
296 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
308 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
297 Compile expression strings into code objects. This should speed
309 Compile expression strings into code objects. This should speed
298 up ifilter and friends somewhat.
310 up ifilter and friends somewhat.
299
311
300 2006-07-08 Ville Vainio <vivainio@gmail.com>
312 2006-07-08 Ville Vainio <vivainio@gmail.com>
301
313
302 * Magic.py: %cpaste now strips > from the beginning of lines
314 * Magic.py: %cpaste now strips > from the beginning of lines
303 to ease pasting quoted code from emails. Contributed by
315 to ease pasting quoted code from emails. Contributed by
304 Stefan van der Walt.
316 Stefan van der Walt.
305
317
306 2006-06-29 Ville Vainio <vivainio@gmail.com>
318 2006-06-29 Ville Vainio <vivainio@gmail.com>
307
319
308 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
320 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
309 mode, patch contributed by Darren Dale. NEEDS TESTING!
321 mode, patch contributed by Darren Dale. NEEDS TESTING!
310
322
311 2006-06-28 Walter Doerwald <walter@livinglogic.de>
323 2006-06-28 Walter Doerwald <walter@livinglogic.de>
312
324
313 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
325 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
314 a blue background. Fix fetching new display rows when the browser
326 a blue background. Fix fetching new display rows when the browser
315 scrolls more than a screenful (e.g. by using the goto command).
327 scrolls more than a screenful (e.g. by using the goto command).
316
328
317 2006-06-27 Ville Vainio <vivainio@gmail.com>
329 2006-06-27 Ville Vainio <vivainio@gmail.com>
318
330
319 * Magic.py (_inspect, _ofind) Apply David Huard's
331 * Magic.py (_inspect, _ofind) Apply David Huard's
320 patch for displaying the correct docstring for 'property'
332 patch for displaying the correct docstring for 'property'
321 attributes.
333 attributes.
322
334
323 2006-06-23 Walter Doerwald <walter@livinglogic.de>
335 2006-06-23 Walter Doerwald <walter@livinglogic.de>
324
336
325 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
337 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
326 commands into the methods implementing them.
338 commands into the methods implementing them.
327
339
328 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
340 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
329
341
330 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
342 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
331 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
343 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
332 autoindent support was authored by Jin Liu.
344 autoindent support was authored by Jin Liu.
333
345
334 2006-06-22 Walter Doerwald <walter@livinglogic.de>
346 2006-06-22 Walter Doerwald <walter@livinglogic.de>
335
347
336 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
348 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
337 for keymaps with a custom class that simplifies handling.
349 for keymaps with a custom class that simplifies handling.
338
350
339 2006-06-19 Walter Doerwald <walter@livinglogic.de>
351 2006-06-19 Walter Doerwald <walter@livinglogic.de>
340
352
341 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
353 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
342 resizing. This requires Python 2.5 to work.
354 resizing. This requires Python 2.5 to work.
343
355
344 2006-06-16 Walter Doerwald <walter@livinglogic.de>
356 2006-06-16 Walter Doerwald <walter@livinglogic.de>
345
357
346 * IPython/Extensions/ibrowse.py: Add two new commands to
358 * IPython/Extensions/ibrowse.py: Add two new commands to
347 ibrowse: "hideattr" (mapped to "h") hides the attribute under
359 ibrowse: "hideattr" (mapped to "h") hides the attribute under
348 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
360 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
349 attributes again. Remapped the help command to "?". Display
361 attributes again. Remapped the help command to "?". Display
350 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
362 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
351 as keys for the "home" and "end" commands. Add three new commands
363 as keys for the "home" and "end" commands. Add three new commands
352 to the input mode for "find" and friends: "delend" (CTRL-K)
364 to the input mode for "find" and friends: "delend" (CTRL-K)
353 deletes to the end of line. "incsearchup" searches upwards in the
365 deletes to the end of line. "incsearchup" searches upwards in the
354 command history for an input that starts with the text before the cursor.
366 command history for an input that starts with the text before the cursor.
355 "incsearchdown" does the same downwards. Removed a bogus mapping of
367 "incsearchdown" does the same downwards. Removed a bogus mapping of
356 the x key to "delete".
368 the x key to "delete".
357
369
358 2006-06-15 Ville Vainio <vivainio@gmail.com>
370 2006-06-15 Ville Vainio <vivainio@gmail.com>
359
371
360 * iplib.py, hooks.py: Added new generate_prompt hook that can be
372 * iplib.py, hooks.py: Added new generate_prompt hook that can be
361 used to create prompts dynamically, instead of the "old" way of
373 used to create prompts dynamically, instead of the "old" way of
362 assigning "magic" strings to prompt_in1 and prompt_in2. The old
374 assigning "magic" strings to prompt_in1 and prompt_in2. The old
363 way still works (it's invoked by the default hook), of course.
375 way still works (it's invoked by the default hook), of course.
364
376
365 * Prompts.py: added generate_output_prompt hook for altering output
377 * Prompts.py: added generate_output_prompt hook for altering output
366 prompt
378 prompt
367
379
368 * Release.py: Changed version string to 0.7.3.svn.
380 * Release.py: Changed version string to 0.7.3.svn.
369
381
370 2006-06-15 Walter Doerwald <walter@livinglogic.de>
382 2006-06-15 Walter Doerwald <walter@livinglogic.de>
371
383
372 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
384 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
373 the call to fetch() always tries to fetch enough data for at least one
385 the call to fetch() always tries to fetch enough data for at least one
374 full screen. This makes it possible to simply call moveto(0,0,True) in
386 full screen. This makes it possible to simply call moveto(0,0,True) in
375 the constructor. Fix typos and removed the obsolete goto attribute.
387 the constructor. Fix typos and removed the obsolete goto attribute.
376
388
377 2006-06-12 Ville Vainio <vivainio@gmail.com>
389 2006-06-12 Ville Vainio <vivainio@gmail.com>
378
390
379 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
391 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
380 allowing $variable interpolation within multiline statements,
392 allowing $variable interpolation within multiline statements,
381 though so far only with "sh" profile for a testing period.
393 though so far only with "sh" profile for a testing period.
382 The patch also enables splitting long commands with \ but it
394 The patch also enables splitting long commands with \ but it
383 doesn't work properly yet.
395 doesn't work properly yet.
384
396
385 2006-06-12 Walter Doerwald <walter@livinglogic.de>
397 2006-06-12 Walter Doerwald <walter@livinglogic.de>
386
398
387 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
399 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
388 input history and the position of the cursor in the input history for
400 input history and the position of the cursor in the input history for
389 the find, findbackwards and goto command.
401 the find, findbackwards and goto command.
390
402
391 2006-06-10 Walter Doerwald <walter@livinglogic.de>
403 2006-06-10 Walter Doerwald <walter@livinglogic.de>
392
404
393 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
405 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
394 implements the basic functionality of browser commands that require
406 implements the basic functionality of browser commands that require
395 input. Reimplement the goto, find and findbackwards commands as
407 input. Reimplement the goto, find and findbackwards commands as
396 subclasses of _CommandInput. Add an input history and keymaps to those
408 subclasses of _CommandInput. Add an input history and keymaps to those
397 commands. Add "\r" as a keyboard shortcut for the enterdefault and
409 commands. Add "\r" as a keyboard shortcut for the enterdefault and
398 execute commands.
410 execute commands.
399
411
400 2006-06-07 Ville Vainio <vivainio@gmail.com>
412 2006-06-07 Ville Vainio <vivainio@gmail.com>
401
413
402 * iplib.py: ipython mybatch.ipy exits ipython immediately after
414 * iplib.py: ipython mybatch.ipy exits ipython immediately after
403 running the batch files instead of leaving the session open.
415 running the batch files instead of leaving the session open.
404
416
405 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
417 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
406
418
407 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
419 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
408 the original fix was incomplete. Patch submitted by W. Maier.
420 the original fix was incomplete. Patch submitted by W. Maier.
409
421
410 2006-06-07 Ville Vainio <vivainio@gmail.com>
422 2006-06-07 Ville Vainio <vivainio@gmail.com>
411
423
412 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
424 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
413 Confirmation prompts can be supressed by 'quiet' option.
425 Confirmation prompts can be supressed by 'quiet' option.
414 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
426 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
415
427
416 2006-06-06 *** Released version 0.7.2
428 2006-06-06 *** Released version 0.7.2
417
429
418 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
430 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
419
431
420 * IPython/Release.py (version): Made 0.7.2 final for release.
432 * IPython/Release.py (version): Made 0.7.2 final for release.
421 Repo tagged and release cut.
433 Repo tagged and release cut.
422
434
423 2006-06-05 Ville Vainio <vivainio@gmail.com>
435 2006-06-05 Ville Vainio <vivainio@gmail.com>
424
436
425 * Magic.py (magic_rehashx): Honor no_alias list earlier in
437 * Magic.py (magic_rehashx): Honor no_alias list earlier in
426 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
438 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
427
439
428 * upgrade_dir.py: try import 'path' module a bit harder
440 * upgrade_dir.py: try import 'path' module a bit harder
429 (for %upgrade)
441 (for %upgrade)
430
442
431 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
443 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
432
444
433 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
445 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
434 instead of looping 20 times.
446 instead of looping 20 times.
435
447
436 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
448 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
437 correctly at initialization time. Bug reported by Krishna Mohan
449 correctly at initialization time. Bug reported by Krishna Mohan
438 Gundu <gkmohan-AT-gmail.com> on the user list.
450 Gundu <gkmohan-AT-gmail.com> on the user list.
439
451
440 * IPython/Release.py (version): Mark 0.7.2 version to start
452 * IPython/Release.py (version): Mark 0.7.2 version to start
441 testing for release on 06/06.
453 testing for release on 06/06.
442
454
443 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
455 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
444
456
445 * scripts/irunner: thin script interface so users don't have to
457 * scripts/irunner: thin script interface so users don't have to
446 find the module and call it as an executable, since modules rarely
458 find the module and call it as an executable, since modules rarely
447 live in people's PATH.
459 live in people's PATH.
448
460
449 * IPython/irunner.py (InteractiveRunner.__init__): added
461 * IPython/irunner.py (InteractiveRunner.__init__): added
450 delaybeforesend attribute to control delays with newer versions of
462 delaybeforesend attribute to control delays with newer versions of
451 pexpect. Thanks to detailed help from pexpect's author, Noah
463 pexpect. Thanks to detailed help from pexpect's author, Noah
452 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
464 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
453 correctly (it works in NoColor mode).
465 correctly (it works in NoColor mode).
454
466
455 * IPython/iplib.py (handle_normal): fix nasty crash reported on
467 * IPython/iplib.py (handle_normal): fix nasty crash reported on
456 SAGE list, from improper log() calls.
468 SAGE list, from improper log() calls.
457
469
458 2006-05-31 Ville Vainio <vivainio@gmail.com>
470 2006-05-31 Ville Vainio <vivainio@gmail.com>
459
471
460 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
472 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
461 with args in parens to work correctly with dirs that have spaces.
473 with args in parens to work correctly with dirs that have spaces.
462
474
463 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
475 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
464
476
465 * IPython/Logger.py (Logger.logstart): add option to log raw input
477 * IPython/Logger.py (Logger.logstart): add option to log raw input
466 instead of the processed one. A -r flag was added to the
478 instead of the processed one. A -r flag was added to the
467 %logstart magic used for controlling logging.
479 %logstart magic used for controlling logging.
468
480
469 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
481 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
470
482
471 * IPython/iplib.py (InteractiveShell.__init__): add check for the
483 * IPython/iplib.py (InteractiveShell.__init__): add check for the
472 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
484 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
473 recognize the option. After a bug report by Will Maier. This
485 recognize the option. After a bug report by Will Maier. This
474 closes #64 (will do it after confirmation from W. Maier).
486 closes #64 (will do it after confirmation from W. Maier).
475
487
476 * IPython/irunner.py: New module to run scripts as if manually
488 * IPython/irunner.py: New module to run scripts as if manually
477 typed into an interactive environment, based on pexpect. After a
489 typed into an interactive environment, based on pexpect. After a
478 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
490 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
479 ipython-user list. Simple unittests in the tests/ directory.
491 ipython-user list. Simple unittests in the tests/ directory.
480
492
481 * tools/release: add Will Maier, OpenBSD port maintainer, to
493 * tools/release: add Will Maier, OpenBSD port maintainer, to
482 recepients list. We are now officially part of the OpenBSD ports:
494 recepients list. We are now officially part of the OpenBSD ports:
483 http://www.openbsd.org/ports.html ! Many thanks to Will for the
495 http://www.openbsd.org/ports.html ! Many thanks to Will for the
484 work.
496 work.
485
497
486 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
498 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
487
499
488 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
500 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
489 so that it doesn't break tkinter apps.
501 so that it doesn't break tkinter apps.
490
502
491 * IPython/iplib.py (_prefilter): fix bug where aliases would
503 * IPython/iplib.py (_prefilter): fix bug where aliases would
492 shadow variables when autocall was fully off. Reported by SAGE
504 shadow variables when autocall was fully off. Reported by SAGE
493 author William Stein.
505 author William Stein.
494
506
495 * IPython/OInspect.py (Inspector.__init__): add a flag to control
507 * IPython/OInspect.py (Inspector.__init__): add a flag to control
496 at what detail level strings are computed when foo? is requested.
508 at what detail level strings are computed when foo? is requested.
497 This allows users to ask for example that the string form of an
509 This allows users to ask for example that the string form of an
498 object is only computed when foo?? is called, or even never, by
510 object is only computed when foo?? is called, or even never, by
499 setting the object_info_string_level >= 2 in the configuration
511 setting the object_info_string_level >= 2 in the configuration
500 file. This new option has been added and documented. After a
512 file. This new option has been added and documented. After a
501 request by SAGE to be able to control the printing of very large
513 request by SAGE to be able to control the printing of very large
502 objects more easily.
514 objects more easily.
503
515
504 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
516 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
505
517
506 * IPython/ipmaker.py (make_IPython): remove the ipython call path
518 * IPython/ipmaker.py (make_IPython): remove the ipython call path
507 from sys.argv, to be 100% consistent with how Python itself works
519 from sys.argv, to be 100% consistent with how Python itself works
508 (as seen for example with python -i file.py). After a bug report
520 (as seen for example with python -i file.py). After a bug report
509 by Jeffrey Collins.
521 by Jeffrey Collins.
510
522
511 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
523 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
512 nasty bug which was preventing custom namespaces with -pylab,
524 nasty bug which was preventing custom namespaces with -pylab,
513 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
525 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
514 compatibility (long gone from mpl).
526 compatibility (long gone from mpl).
515
527
516 * IPython/ipapi.py (make_session): name change: create->make. We
528 * IPython/ipapi.py (make_session): name change: create->make. We
517 use make in other places (ipmaker,...), it's shorter and easier to
529 use make in other places (ipmaker,...), it's shorter and easier to
518 type and say, etc. I'm trying to clean things before 0.7.2 so
530 type and say, etc. I'm trying to clean things before 0.7.2 so
519 that I can keep things stable wrt to ipapi in the chainsaw branch.
531 that I can keep things stable wrt to ipapi in the chainsaw branch.
520
532
521 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
533 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
522 python-mode recognizes our debugger mode. Add support for
534 python-mode recognizes our debugger mode. Add support for
523 autoindent inside (X)emacs. After a patch sent in by Jin Liu
535 autoindent inside (X)emacs. After a patch sent in by Jin Liu
524 <m.liu.jin-AT-gmail.com> originally written by
536 <m.liu.jin-AT-gmail.com> originally written by
525 doxgen-AT-newsmth.net (with minor modifications for xemacs
537 doxgen-AT-newsmth.net (with minor modifications for xemacs
526 compatibility)
538 compatibility)
527
539
528 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
540 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
529 tracebacks when walking the stack so that the stack tracking system
541 tracebacks when walking the stack so that the stack tracking system
530 in emacs' python-mode can identify the frames correctly.
542 in emacs' python-mode can identify the frames correctly.
531
543
532 * IPython/ipmaker.py (make_IPython): make the internal (and
544 * IPython/ipmaker.py (make_IPython): make the internal (and
533 default config) autoedit_syntax value false by default. Too many
545 default config) autoedit_syntax value false by default. Too many
534 users have complained to me (both on and off-list) about problems
546 users have complained to me (both on and off-list) about problems
535 with this option being on by default, so I'm making it default to
547 with this option being on by default, so I'm making it default to
536 off. It can still be enabled by anyone via the usual mechanisms.
548 off. It can still be enabled by anyone via the usual mechanisms.
537
549
538 * IPython/completer.py (Completer.attr_matches): add support for
550 * IPython/completer.py (Completer.attr_matches): add support for
539 PyCrust-style _getAttributeNames magic method. Patch contributed
551 PyCrust-style _getAttributeNames magic method. Patch contributed
540 by <mscott-AT-goldenspud.com>. Closes #50.
552 by <mscott-AT-goldenspud.com>. Closes #50.
541
553
542 * IPython/iplib.py (InteractiveShell.__init__): remove the
554 * IPython/iplib.py (InteractiveShell.__init__): remove the
543 deletion of exit/quit from __builtin__, which can break
555 deletion of exit/quit from __builtin__, which can break
544 third-party tools like the Zope debugging console. The
556 third-party tools like the Zope debugging console. The
545 %exit/%quit magics remain. In general, it's probably a good idea
557 %exit/%quit magics remain. In general, it's probably a good idea
546 not to delete anything from __builtin__, since we never know what
558 not to delete anything from __builtin__, since we never know what
547 that will break. In any case, python now (for 2.5) will support
559 that will break. In any case, python now (for 2.5) will support
548 'real' exit/quit, so this issue is moot. Closes #55.
560 'real' exit/quit, so this issue is moot. Closes #55.
549
561
550 * IPython/genutils.py (with_obj): rename the 'with' function to
562 * IPython/genutils.py (with_obj): rename the 'with' function to
551 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
563 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
552 becomes a language keyword. Closes #53.
564 becomes a language keyword. Closes #53.
553
565
554 * IPython/FakeModule.py (FakeModule.__init__): add a proper
566 * IPython/FakeModule.py (FakeModule.__init__): add a proper
555 __file__ attribute to this so it fools more things into thinking
567 __file__ attribute to this so it fools more things into thinking
556 it is a real module. Closes #59.
568 it is a real module. Closes #59.
557
569
558 * IPython/Magic.py (magic_edit): add -n option to open the editor
570 * IPython/Magic.py (magic_edit): add -n option to open the editor
559 at a specific line number. After a patch by Stefan van der Walt.
571 at a specific line number. After a patch by Stefan van der Walt.
560
572
561 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
573 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
562
574
563 * IPython/iplib.py (edit_syntax_error): fix crash when for some
575 * IPython/iplib.py (edit_syntax_error): fix crash when for some
564 reason the file could not be opened. After automatic crash
576 reason the file could not be opened. After automatic crash
565 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
577 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
566 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
578 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
567 (_should_recompile): Don't fire editor if using %bg, since there
579 (_should_recompile): Don't fire editor if using %bg, since there
568 is no file in the first place. From the same report as above.
580 is no file in the first place. From the same report as above.
569 (raw_input): protect against faulty third-party prefilters. After
581 (raw_input): protect against faulty third-party prefilters. After
570 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
582 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
571 while running under SAGE.
583 while running under SAGE.
572
584
573 2006-05-23 Ville Vainio <vivainio@gmail.com>
585 2006-05-23 Ville Vainio <vivainio@gmail.com>
574
586
575 * ipapi.py: Stripped down ip.to_user_ns() to work only as
587 * ipapi.py: Stripped down ip.to_user_ns() to work only as
576 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
588 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
577 now returns None (again), unless dummy is specifically allowed by
589 now returns None (again), unless dummy is specifically allowed by
578 ipapi.get(allow_dummy=True).
590 ipapi.get(allow_dummy=True).
579
591
580 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
592 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
581
593
582 * IPython: remove all 2.2-compatibility objects and hacks from
594 * IPython: remove all 2.2-compatibility objects and hacks from
583 everywhere, since we only support 2.3 at this point. Docs
595 everywhere, since we only support 2.3 at this point. Docs
584 updated.
596 updated.
585
597
586 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
598 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
587 Anything requiring extra validation can be turned into a Python
599 Anything requiring extra validation can be turned into a Python
588 property in the future. I used a property for the db one b/c
600 property in the future. I used a property for the db one b/c
589 there was a nasty circularity problem with the initialization
601 there was a nasty circularity problem with the initialization
590 order, which right now I don't have time to clean up.
602 order, which right now I don't have time to clean up.
591
603
592 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
604 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
593 another locking bug reported by Jorgen. I'm not 100% sure though,
605 another locking bug reported by Jorgen. I'm not 100% sure though,
594 so more testing is needed...
606 so more testing is needed...
595
607
596 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
608 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
597
609
598 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
610 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
599 local variables from any routine in user code (typically executed
611 local variables from any routine in user code (typically executed
600 with %run) directly into the interactive namespace. Very useful
612 with %run) directly into the interactive namespace. Very useful
601 when doing complex debugging.
613 when doing complex debugging.
602 (IPythonNotRunning): Changed the default None object to a dummy
614 (IPythonNotRunning): Changed the default None object to a dummy
603 whose attributes can be queried as well as called without
615 whose attributes can be queried as well as called without
604 exploding, to ease writing code which works transparently both in
616 exploding, to ease writing code which works transparently both in
605 and out of ipython and uses some of this API.
617 and out of ipython and uses some of this API.
606
618
607 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
619 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
608
620
609 * IPython/hooks.py (result_display): Fix the fact that our display
621 * IPython/hooks.py (result_display): Fix the fact that our display
610 hook was using str() instead of repr(), as the default python
622 hook was using str() instead of repr(), as the default python
611 console does. This had gone unnoticed b/c it only happened if
623 console does. This had gone unnoticed b/c it only happened if
612 %Pprint was off, but the inconsistency was there.
624 %Pprint was off, but the inconsistency was there.
613
625
614 2006-05-15 Ville Vainio <vivainio@gmail.com>
626 2006-05-15 Ville Vainio <vivainio@gmail.com>
615
627
616 * Oinspect.py: Only show docstring for nonexisting/binary files
628 * Oinspect.py: Only show docstring for nonexisting/binary files
617 when doing object??, closing ticket #62
629 when doing object??, closing ticket #62
618
630
619 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
631 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
620
632
621 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
633 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
622 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
634 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
623 was being released in a routine which hadn't checked if it had
635 was being released in a routine which hadn't checked if it had
624 been the one to acquire it.
636 been the one to acquire it.
625
637
626 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
638 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
627
639
628 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
640 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
629
641
630 2006-04-11 Ville Vainio <vivainio@gmail.com>
642 2006-04-11 Ville Vainio <vivainio@gmail.com>
631
643
632 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
644 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
633 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
645 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
634 prefilters, allowing stuff like magics and aliases in the file.
646 prefilters, allowing stuff like magics and aliases in the file.
635
647
636 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
648 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
637 added. Supported now are "%clear in" and "%clear out" (clear input and
649 added. Supported now are "%clear in" and "%clear out" (clear input and
638 output history, respectively). Also fixed CachedOutput.flush to
650 output history, respectively). Also fixed CachedOutput.flush to
639 properly flush the output cache.
651 properly flush the output cache.
640
652
641 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
653 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
642 half-success (and fail explicitly).
654 half-success (and fail explicitly).
643
655
644 2006-03-28 Ville Vainio <vivainio@gmail.com>
656 2006-03-28 Ville Vainio <vivainio@gmail.com>
645
657
646 * iplib.py: Fix quoting of aliases so that only argless ones
658 * iplib.py: Fix quoting of aliases so that only argless ones
647 are quoted
659 are quoted
648
660
649 2006-03-28 Ville Vainio <vivainio@gmail.com>
661 2006-03-28 Ville Vainio <vivainio@gmail.com>
650
662
651 * iplib.py: Quote aliases with spaces in the name.
663 * iplib.py: Quote aliases with spaces in the name.
652 "c:\program files\blah\bin" is now legal alias target.
664 "c:\program files\blah\bin" is now legal alias target.
653
665
654 * ext_rehashdir.py: Space no longer allowed as arg
666 * ext_rehashdir.py: Space no longer allowed as arg
655 separator, since space is legal in path names.
667 separator, since space is legal in path names.
656
668
657 2006-03-16 Ville Vainio <vivainio@gmail.com>
669 2006-03-16 Ville Vainio <vivainio@gmail.com>
658
670
659 * upgrade_dir.py: Take path.py from Extensions, correcting
671 * upgrade_dir.py: Take path.py from Extensions, correcting
660 %upgrade magic
672 %upgrade magic
661
673
662 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
674 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
663
675
664 * hooks.py: Only enclose editor binary in quotes if legal and
676 * hooks.py: Only enclose editor binary in quotes if legal and
665 necessary (space in the name, and is an existing file). Fixes a bug
677 necessary (space in the name, and is an existing file). Fixes a bug
666 reported by Zachary Pincus.
678 reported by Zachary Pincus.
667
679
668 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
680 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
669
681
670 * Manual: thanks to a tip on proper color handling for Emacs, by
682 * Manual: thanks to a tip on proper color handling for Emacs, by
671 Eric J Haywiser <ejh1-AT-MIT.EDU>.
683 Eric J Haywiser <ejh1-AT-MIT.EDU>.
672
684
673 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
685 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
674 by applying the provided patch. Thanks to Liu Jin
686 by applying the provided patch. Thanks to Liu Jin
675 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
687 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
676 XEmacs/Linux, I'm trusting the submitter that it actually helps
688 XEmacs/Linux, I'm trusting the submitter that it actually helps
677 under win32/GNU Emacs. Will revisit if any problems are reported.
689 under win32/GNU Emacs. Will revisit if any problems are reported.
678
690
679 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
691 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
680
692
681 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
693 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
682 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
694 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
683
695
684 2006-03-12 Ville Vainio <vivainio@gmail.com>
696 2006-03-12 Ville Vainio <vivainio@gmail.com>
685
697
686 * Magic.py (magic_timeit): Added %timeit magic, contributed by
698 * Magic.py (magic_timeit): Added %timeit magic, contributed by
687 Torsten Marek.
699 Torsten Marek.
688
700
689 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
701 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
690
702
691 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
703 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
692 line ranges works again.
704 line ranges works again.
693
705
694 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
706 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
695
707
696 * IPython/iplib.py (showtraceback): add back sys.last_traceback
708 * IPython/iplib.py (showtraceback): add back sys.last_traceback
697 and friends, after a discussion with Zach Pincus on ipython-user.
709 and friends, after a discussion with Zach Pincus on ipython-user.
698 I'm not 100% sure, but after thinking about it quite a bit, it may
710 I'm not 100% sure, but after thinking about it quite a bit, it may
699 be OK. Testing with the multithreaded shells didn't reveal any
711 be OK. Testing with the multithreaded shells didn't reveal any
700 problems, but let's keep an eye out.
712 problems, but let's keep an eye out.
701
713
702 In the process, I fixed a few things which were calling
714 In the process, I fixed a few things which were calling
703 self.InteractiveTB() directly (like safe_execfile), which is a
715 self.InteractiveTB() directly (like safe_execfile), which is a
704 mistake: ALL exception reporting should be done by calling
716 mistake: ALL exception reporting should be done by calling
705 self.showtraceback(), which handles state and tab-completion and
717 self.showtraceback(), which handles state and tab-completion and
706 more.
718 more.
707
719
708 2006-03-01 Ville Vainio <vivainio@gmail.com>
720 2006-03-01 Ville Vainio <vivainio@gmail.com>
709
721
710 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
722 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
711 To use, do "from ipipe import *".
723 To use, do "from ipipe import *".
712
724
713 2006-02-24 Ville Vainio <vivainio@gmail.com>
725 2006-02-24 Ville Vainio <vivainio@gmail.com>
714
726
715 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
727 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
716 "cleanly" and safely than the older upgrade mechanism.
728 "cleanly" and safely than the older upgrade mechanism.
717
729
718 2006-02-21 Ville Vainio <vivainio@gmail.com>
730 2006-02-21 Ville Vainio <vivainio@gmail.com>
719
731
720 * Magic.py: %save works again.
732 * Magic.py: %save works again.
721
733
722 2006-02-15 Ville Vainio <vivainio@gmail.com>
734 2006-02-15 Ville Vainio <vivainio@gmail.com>
723
735
724 * Magic.py: %Pprint works again
736 * Magic.py: %Pprint works again
725
737
726 * Extensions/ipy_sane_defaults.py: Provide everything provided
738 * Extensions/ipy_sane_defaults.py: Provide everything provided
727 in default ipythonrc, to make it possible to have a completely empty
739 in default ipythonrc, to make it possible to have a completely empty
728 ipythonrc (and thus completely rc-file free configuration)
740 ipythonrc (and thus completely rc-file free configuration)
729
741
730 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
742 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
731
743
732 * IPython/hooks.py (editor): quote the call to the editor command,
744 * IPython/hooks.py (editor): quote the call to the editor command,
733 to allow commands with spaces in them. Problem noted by watching
745 to allow commands with spaces in them. Problem noted by watching
734 Ian Oswald's video about textpad under win32 at
746 Ian Oswald's video about textpad under win32 at
735 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
747 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
736
748
737 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
749 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
738 describing magics (we haven't used @ for a loong time).
750 describing magics (we haven't used @ for a loong time).
739
751
740 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
752 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
741 contributed by marienz to close
753 contributed by marienz to close
742 http://www.scipy.net/roundup/ipython/issue53.
754 http://www.scipy.net/roundup/ipython/issue53.
743
755
744 2006-02-10 Ville Vainio <vivainio@gmail.com>
756 2006-02-10 Ville Vainio <vivainio@gmail.com>
745
757
746 * genutils.py: getoutput now works in win32 too
758 * genutils.py: getoutput now works in win32 too
747
759
748 * completer.py: alias and magic completion only invoked
760 * completer.py: alias and magic completion only invoked
749 at the first "item" in the line, to avoid "cd %store"
761 at the first "item" in the line, to avoid "cd %store"
750 nonsense.
762 nonsense.
751
763
752 2006-02-09 Ville Vainio <vivainio@gmail.com>
764 2006-02-09 Ville Vainio <vivainio@gmail.com>
753
765
754 * test/*: Added a unit testing framework (finally).
766 * test/*: Added a unit testing framework (finally).
755 '%run runtests.py' to run test_*.
767 '%run runtests.py' to run test_*.
756
768
757 * ipapi.py: Exposed runlines and set_custom_exc
769 * ipapi.py: Exposed runlines and set_custom_exc
758
770
759 2006-02-07 Ville Vainio <vivainio@gmail.com>
771 2006-02-07 Ville Vainio <vivainio@gmail.com>
760
772
761 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
773 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
762 instead use "f(1 2)" as before.
774 instead use "f(1 2)" as before.
763
775
764 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
776 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
765
777
766 * IPython/demo.py (IPythonDemo): Add new classes to the demo
778 * IPython/demo.py (IPythonDemo): Add new classes to the demo
767 facilities, for demos processed by the IPython input filter
779 facilities, for demos processed by the IPython input filter
768 (IPythonDemo), and for running a script one-line-at-a-time as a
780 (IPythonDemo), and for running a script one-line-at-a-time as a
769 demo, both for pure Python (LineDemo) and for IPython-processed
781 demo, both for pure Python (LineDemo) and for IPython-processed
770 input (IPythonLineDemo). After a request by Dave Kohel, from the
782 input (IPythonLineDemo). After a request by Dave Kohel, from the
771 SAGE team.
783 SAGE team.
772 (Demo.edit): added an edit() method to the demo objects, to edit
784 (Demo.edit): added an edit() method to the demo objects, to edit
773 the in-memory copy of the last executed block.
785 the in-memory copy of the last executed block.
774
786
775 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
787 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
776 processing to %edit, %macro and %save. These commands can now be
788 processing to %edit, %macro and %save. These commands can now be
777 invoked on the unprocessed input as it was typed by the user
789 invoked on the unprocessed input as it was typed by the user
778 (without any prefilters applied). After requests by the SAGE team
790 (without any prefilters applied). After requests by the SAGE team
779 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
791 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
780
792
781 2006-02-01 Ville Vainio <vivainio@gmail.com>
793 2006-02-01 Ville Vainio <vivainio@gmail.com>
782
794
783 * setup.py, eggsetup.py: easy_install ipython==dev works
795 * setup.py, eggsetup.py: easy_install ipython==dev works
784 correctly now (on Linux)
796 correctly now (on Linux)
785
797
786 * ipy_user_conf,ipmaker: user config changes, removed spurious
798 * ipy_user_conf,ipmaker: user config changes, removed spurious
787 warnings
799 warnings
788
800
789 * iplib: if rc.banner is string, use it as is.
801 * iplib: if rc.banner is string, use it as is.
790
802
791 * Magic: %pycat accepts a string argument and pages it's contents.
803 * Magic: %pycat accepts a string argument and pages it's contents.
792
804
793
805
794 2006-01-30 Ville Vainio <vivainio@gmail.com>
806 2006-01-30 Ville Vainio <vivainio@gmail.com>
795
807
796 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
808 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
797 Now %store and bookmarks work through PickleShare, meaning that
809 Now %store and bookmarks work through PickleShare, meaning that
798 concurrent access is possible and all ipython sessions see the
810 concurrent access is possible and all ipython sessions see the
799 same database situation all the time, instead of snapshot of
811 same database situation all the time, instead of snapshot of
800 the situation when the session was started. Hence, %bookmark
812 the situation when the session was started. Hence, %bookmark
801 results are immediately accessible from othes sessions. The database
813 results are immediately accessible from othes sessions. The database
802 is also available for use by user extensions. See:
814 is also available for use by user extensions. See:
803 http://www.python.org/pypi/pickleshare
815 http://www.python.org/pypi/pickleshare
804
816
805 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
817 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
806
818
807 * aliases can now be %store'd
819 * aliases can now be %store'd
808
820
809 * path.py moved to Extensions so that pickleshare does not need
821 * path.py moved to Extensions so that pickleshare does not need
810 IPython-specific import. Extensions added to pythonpath right
822 IPython-specific import. Extensions added to pythonpath right
811 at __init__.
823 at __init__.
812
824
813 * iplib.py: ipalias deprecated/redundant; aliases are converted and
825 * iplib.py: ipalias deprecated/redundant; aliases are converted and
814 called with _ip.system and the pre-transformed command string.
826 called with _ip.system and the pre-transformed command string.
815
827
816 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
828 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
817
829
818 * IPython/iplib.py (interact): Fix that we were not catching
830 * IPython/iplib.py (interact): Fix that we were not catching
819 KeyboardInterrupt exceptions properly. I'm not quite sure why the
831 KeyboardInterrupt exceptions properly. I'm not quite sure why the
820 logic here had to change, but it's fixed now.
832 logic here had to change, but it's fixed now.
821
833
822 2006-01-29 Ville Vainio <vivainio@gmail.com>
834 2006-01-29 Ville Vainio <vivainio@gmail.com>
823
835
824 * iplib.py: Try to import pyreadline on Windows.
836 * iplib.py: Try to import pyreadline on Windows.
825
837
826 2006-01-27 Ville Vainio <vivainio@gmail.com>
838 2006-01-27 Ville Vainio <vivainio@gmail.com>
827
839
828 * iplib.py: Expose ipapi as _ip in builtin namespace.
840 * iplib.py: Expose ipapi as _ip in builtin namespace.
829 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
841 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
830 and ip_set_hook (-> _ip.set_hook) redundant. % and !
842 and ip_set_hook (-> _ip.set_hook) redundant. % and !
831 syntax now produce _ip.* variant of the commands.
843 syntax now produce _ip.* variant of the commands.
832
844
833 * "_ip.options().autoedit_syntax = 2" automatically throws
845 * "_ip.options().autoedit_syntax = 2" automatically throws
834 user to editor for syntax error correction without prompting.
846 user to editor for syntax error correction without prompting.
835
847
836 2006-01-27 Ville Vainio <vivainio@gmail.com>
848 2006-01-27 Ville Vainio <vivainio@gmail.com>
837
849
838 * ipmaker.py: Give "realistic" sys.argv for scripts (without
850 * ipmaker.py: Give "realistic" sys.argv for scripts (without
839 'ipython' at argv[0]) executed through command line.
851 'ipython' at argv[0]) executed through command line.
840 NOTE: this DEPRECATES calling ipython with multiple scripts
852 NOTE: this DEPRECATES calling ipython with multiple scripts
841 ("ipython a.py b.py c.py")
853 ("ipython a.py b.py c.py")
842
854
843 * iplib.py, hooks.py: Added configurable input prefilter,
855 * iplib.py, hooks.py: Added configurable input prefilter,
844 named 'input_prefilter'. See ext_rescapture.py for example
856 named 'input_prefilter'. See ext_rescapture.py for example
845 usage.
857 usage.
846
858
847 * ext_rescapture.py, Magic.py: Better system command output capture
859 * ext_rescapture.py, Magic.py: Better system command output capture
848 through 'var = !ls' (deprecates user-visible %sc). Same notation
860 through 'var = !ls' (deprecates user-visible %sc). Same notation
849 applies for magics, 'var = %alias' assigns alias list to var.
861 applies for magics, 'var = %alias' assigns alias list to var.
850
862
851 * ipapi.py: added meta() for accessing extension-usable data store.
863 * ipapi.py: added meta() for accessing extension-usable data store.
852
864
853 * iplib.py: added InteractiveShell.getapi(). New magics should be
865 * iplib.py: added InteractiveShell.getapi(). New magics should be
854 written doing self.getapi() instead of using the shell directly.
866 written doing self.getapi() instead of using the shell directly.
855
867
856 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
868 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
857 %store foo >> ~/myfoo.txt to store variables to files (in clean
869 %store foo >> ~/myfoo.txt to store variables to files (in clean
858 textual form, not a restorable pickle).
870 textual form, not a restorable pickle).
859
871
860 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
872 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
861
873
862 * usage.py, Magic.py: added %quickref
874 * usage.py, Magic.py: added %quickref
863
875
864 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
876 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
865
877
866 * GetoptErrors when invoking magics etc. with wrong args
878 * GetoptErrors when invoking magics etc. with wrong args
867 are now more helpful:
879 are now more helpful:
868 GetoptError: option -l not recognized (allowed: "qb" )
880 GetoptError: option -l not recognized (allowed: "qb" )
869
881
870 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
882 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
871
883
872 * IPython/demo.py (Demo.show): Flush stdout after each block, so
884 * IPython/demo.py (Demo.show): Flush stdout after each block, so
873 computationally intensive blocks don't appear to stall the demo.
885 computationally intensive blocks don't appear to stall the demo.
874
886
875 2006-01-24 Ville Vainio <vivainio@gmail.com>
887 2006-01-24 Ville Vainio <vivainio@gmail.com>
876
888
877 * iplib.py, hooks.py: 'result_display' hook can return a non-None
889 * iplib.py, hooks.py: 'result_display' hook can return a non-None
878 value to manipulate resulting history entry.
890 value to manipulate resulting history entry.
879
891
880 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
892 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
881 to instance methods of IPApi class, to make extending an embedded
893 to instance methods of IPApi class, to make extending an embedded
882 IPython feasible. See ext_rehashdir.py for example usage.
894 IPython feasible. See ext_rehashdir.py for example usage.
883
895
884 * Merged 1071-1076 from branches/0.7.1
896 * Merged 1071-1076 from branches/0.7.1
885
897
886
898
887 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
899 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
888
900
889 * tools/release (daystamp): Fix build tools to use the new
901 * tools/release (daystamp): Fix build tools to use the new
890 eggsetup.py script to build lightweight eggs.
902 eggsetup.py script to build lightweight eggs.
891
903
892 * Applied changesets 1062 and 1064 before 0.7.1 release.
904 * Applied changesets 1062 and 1064 before 0.7.1 release.
893
905
894 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
906 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
895 see the raw input history (without conversions like %ls ->
907 see the raw input history (without conversions like %ls ->
896 ipmagic("ls")). After a request from W. Stein, SAGE
908 ipmagic("ls")). After a request from W. Stein, SAGE
897 (http://modular.ucsd.edu/sage) developer. This information is
909 (http://modular.ucsd.edu/sage) developer. This information is
898 stored in the input_hist_raw attribute of the IPython instance, so
910 stored in the input_hist_raw attribute of the IPython instance, so
899 developers can access it if needed (it's an InputList instance).
911 developers can access it if needed (it's an InputList instance).
900
912
901 * Versionstring = 0.7.2.svn
913 * Versionstring = 0.7.2.svn
902
914
903 * eggsetup.py: A separate script for constructing eggs, creates
915 * eggsetup.py: A separate script for constructing eggs, creates
904 proper launch scripts even on Windows (an .exe file in
916 proper launch scripts even on Windows (an .exe file in
905 \python24\scripts).
917 \python24\scripts).
906
918
907 * ipapi.py: launch_new_instance, launch entry point needed for the
919 * ipapi.py: launch_new_instance, launch entry point needed for the
908 egg.
920 egg.
909
921
910 2006-01-23 Ville Vainio <vivainio@gmail.com>
922 2006-01-23 Ville Vainio <vivainio@gmail.com>
911
923
912 * Added %cpaste magic for pasting python code
924 * Added %cpaste magic for pasting python code
913
925
914 2006-01-22 Ville Vainio <vivainio@gmail.com>
926 2006-01-22 Ville Vainio <vivainio@gmail.com>
915
927
916 * Merge from branches/0.7.1 into trunk, revs 1052-1057
928 * Merge from branches/0.7.1 into trunk, revs 1052-1057
917
929
918 * Versionstring = 0.7.2.svn
930 * Versionstring = 0.7.2.svn
919
931
920 * eggsetup.py: A separate script for constructing eggs, creates
932 * eggsetup.py: A separate script for constructing eggs, creates
921 proper launch scripts even on Windows (an .exe file in
933 proper launch scripts even on Windows (an .exe file in
922 \python24\scripts).
934 \python24\scripts).
923
935
924 * ipapi.py: launch_new_instance, launch entry point needed for the
936 * ipapi.py: launch_new_instance, launch entry point needed for the
925 egg.
937 egg.
926
938
927 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
939 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
928
940
929 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
941 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
930 %pfile foo would print the file for foo even if it was a binary.
942 %pfile foo would print the file for foo even if it was a binary.
931 Now, extensions '.so' and '.dll' are skipped.
943 Now, extensions '.so' and '.dll' are skipped.
932
944
933 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
945 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
934 bug, where macros would fail in all threaded modes. I'm not 100%
946 bug, where macros would fail in all threaded modes. I'm not 100%
935 sure, so I'm going to put out an rc instead of making a release
947 sure, so I'm going to put out an rc instead of making a release
936 today, and wait for feedback for at least a few days.
948 today, and wait for feedback for at least a few days.
937
949
938 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
950 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
939 it...) the handling of pasting external code with autoindent on.
951 it...) the handling of pasting external code with autoindent on.
940 To get out of a multiline input, the rule will appear for most
952 To get out of a multiline input, the rule will appear for most
941 users unchanged: two blank lines or change the indent level
953 users unchanged: two blank lines or change the indent level
942 proposed by IPython. But there is a twist now: you can
954 proposed by IPython. But there is a twist now: you can
943 add/subtract only *one or two spaces*. If you add/subtract three
955 add/subtract only *one or two spaces*. If you add/subtract three
944 or more (unless you completely delete the line), IPython will
956 or more (unless you completely delete the line), IPython will
945 accept that line, and you'll need to enter a second one of pure
957 accept that line, and you'll need to enter a second one of pure
946 whitespace. I know it sounds complicated, but I can't find a
958 whitespace. I know it sounds complicated, but I can't find a
947 different solution that covers all the cases, with the right
959 different solution that covers all the cases, with the right
948 heuristics. Hopefully in actual use, nobody will really notice
960 heuristics. Hopefully in actual use, nobody will really notice
949 all these strange rules and things will 'just work'.
961 all these strange rules and things will 'just work'.
950
962
951 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
963 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
952
964
953 * IPython/iplib.py (interact): catch exceptions which can be
965 * IPython/iplib.py (interact): catch exceptions which can be
954 triggered asynchronously by signal handlers. Thanks to an
966 triggered asynchronously by signal handlers. Thanks to an
955 automatic crash report, submitted by Colin Kingsley
967 automatic crash report, submitted by Colin Kingsley
956 <tercel-AT-gentoo.org>.
968 <tercel-AT-gentoo.org>.
957
969
958 2006-01-20 Ville Vainio <vivainio@gmail.com>
970 2006-01-20 Ville Vainio <vivainio@gmail.com>
959
971
960 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
972 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
961 (%rehashdir, very useful, try it out) of how to extend ipython
973 (%rehashdir, very useful, try it out) of how to extend ipython
962 with new magics. Also added Extensions dir to pythonpath to make
974 with new magics. Also added Extensions dir to pythonpath to make
963 importing extensions easy.
975 importing extensions easy.
964
976
965 * %store now complains when trying to store interactively declared
977 * %store now complains when trying to store interactively declared
966 classes / instances of those classes.
978 classes / instances of those classes.
967
979
968 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
980 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
969 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
981 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
970 if they exist, and ipy_user_conf.py with some defaults is created for
982 if they exist, and ipy_user_conf.py with some defaults is created for
971 the user.
983 the user.
972
984
973 * Startup rehashing done by the config file, not InterpreterExec.
985 * Startup rehashing done by the config file, not InterpreterExec.
974 This means system commands are available even without selecting the
986 This means system commands are available even without selecting the
975 pysh profile. It's the sensible default after all.
987 pysh profile. It's the sensible default after all.
976
988
977 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
989 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
978
990
979 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
991 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
980 multiline code with autoindent on working. But I am really not
992 multiline code with autoindent on working. But I am really not
981 sure, so this needs more testing. Will commit a debug-enabled
993 sure, so this needs more testing. Will commit a debug-enabled
982 version for now, while I test it some more, so that Ville and
994 version for now, while I test it some more, so that Ville and
983 others may also catch any problems. Also made
995 others may also catch any problems. Also made
984 self.indent_current_str() a method, to ensure that there's no
996 self.indent_current_str() a method, to ensure that there's no
985 chance of the indent space count and the corresponding string
997 chance of the indent space count and the corresponding string
986 falling out of sync. All code needing the string should just call
998 falling out of sync. All code needing the string should just call
987 the method.
999 the method.
988
1000
989 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1001 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
990
1002
991 * IPython/Magic.py (magic_edit): fix check for when users don't
1003 * IPython/Magic.py (magic_edit): fix check for when users don't
992 save their output files, the try/except was in the wrong section.
1004 save their output files, the try/except was in the wrong section.
993
1005
994 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1006 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
995
1007
996 * IPython/Magic.py (magic_run): fix __file__ global missing from
1008 * IPython/Magic.py (magic_run): fix __file__ global missing from
997 script's namespace when executed via %run. After a report by
1009 script's namespace when executed via %run. After a report by
998 Vivian.
1010 Vivian.
999
1011
1000 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1012 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1001 when using python 2.4. The parent constructor changed in 2.4, and
1013 when using python 2.4. The parent constructor changed in 2.4, and
1002 we need to track it directly (we can't call it, as it messes up
1014 we need to track it directly (we can't call it, as it messes up
1003 readline and tab-completion inside our pdb would stop working).
1015 readline and tab-completion inside our pdb would stop working).
1004 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1016 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1005
1017
1006 2006-01-16 Ville Vainio <vivainio@gmail.com>
1018 2006-01-16 Ville Vainio <vivainio@gmail.com>
1007
1019
1008 * Ipython/magic.py: Reverted back to old %edit functionality
1020 * Ipython/magic.py: Reverted back to old %edit functionality
1009 that returns file contents on exit.
1021 that returns file contents on exit.
1010
1022
1011 * IPython/path.py: Added Jason Orendorff's "path" module to
1023 * IPython/path.py: Added Jason Orendorff's "path" module to
1012 IPython tree, http://www.jorendorff.com/articles/python/path/.
1024 IPython tree, http://www.jorendorff.com/articles/python/path/.
1013 You can get path objects conveniently through %sc, and !!, e.g.:
1025 You can get path objects conveniently through %sc, and !!, e.g.:
1014 sc files=ls
1026 sc files=ls
1015 for p in files.paths: # or files.p
1027 for p in files.paths: # or files.p
1016 print p,p.mtime
1028 print p,p.mtime
1017
1029
1018 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1030 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1019 now work again without considering the exclusion regexp -
1031 now work again without considering the exclusion regexp -
1020 hence, things like ',foo my/path' turn to 'foo("my/path")'
1032 hence, things like ',foo my/path' turn to 'foo("my/path")'
1021 instead of syntax error.
1033 instead of syntax error.
1022
1034
1023
1035
1024 2006-01-14 Ville Vainio <vivainio@gmail.com>
1036 2006-01-14 Ville Vainio <vivainio@gmail.com>
1025
1037
1026 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1038 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1027 ipapi decorators for python 2.4 users, options() provides access to rc
1039 ipapi decorators for python 2.4 users, options() provides access to rc
1028 data.
1040 data.
1029
1041
1030 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1042 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1031 as path separators (even on Linux ;-). Space character after
1043 as path separators (even on Linux ;-). Space character after
1032 backslash (as yielded by tab completer) is still space;
1044 backslash (as yielded by tab completer) is still space;
1033 "%cd long\ name" works as expected.
1045 "%cd long\ name" works as expected.
1034
1046
1035 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1047 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1036 as "chain of command", with priority. API stays the same,
1048 as "chain of command", with priority. API stays the same,
1037 TryNext exception raised by a hook function signals that
1049 TryNext exception raised by a hook function signals that
1038 current hook failed and next hook should try handling it, as
1050 current hook failed and next hook should try handling it, as
1039 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1051 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1040 requested configurable display hook, which is now implemented.
1052 requested configurable display hook, which is now implemented.
1041
1053
1042 2006-01-13 Ville Vainio <vivainio@gmail.com>
1054 2006-01-13 Ville Vainio <vivainio@gmail.com>
1043
1055
1044 * IPython/platutils*.py: platform specific utility functions,
1056 * IPython/platutils*.py: platform specific utility functions,
1045 so far only set_term_title is implemented (change terminal
1057 so far only set_term_title is implemented (change terminal
1046 label in windowing systems). %cd now changes the title to
1058 label in windowing systems). %cd now changes the title to
1047 current dir.
1059 current dir.
1048
1060
1049 * IPython/Release.py: Added myself to "authors" list,
1061 * IPython/Release.py: Added myself to "authors" list,
1050 had to create new files.
1062 had to create new files.
1051
1063
1052 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1064 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1053 shell escape; not a known bug but had potential to be one in the
1065 shell escape; not a known bug but had potential to be one in the
1054 future.
1066 future.
1055
1067
1056 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1068 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1057 extension API for IPython! See the module for usage example. Fix
1069 extension API for IPython! See the module for usage example. Fix
1058 OInspect for docstring-less magic functions.
1070 OInspect for docstring-less magic functions.
1059
1071
1060
1072
1061 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1073 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1062
1074
1063 * IPython/iplib.py (raw_input): temporarily deactivate all
1075 * IPython/iplib.py (raw_input): temporarily deactivate all
1064 attempts at allowing pasting of code with autoindent on. It
1076 attempts at allowing pasting of code with autoindent on. It
1065 introduced bugs (reported by Prabhu) and I can't seem to find a
1077 introduced bugs (reported by Prabhu) and I can't seem to find a
1066 robust combination which works in all cases. Will have to revisit
1078 robust combination which works in all cases. Will have to revisit
1067 later.
1079 later.
1068
1080
1069 * IPython/genutils.py: remove isspace() function. We've dropped
1081 * IPython/genutils.py: remove isspace() function. We've dropped
1070 2.2 compatibility, so it's OK to use the string method.
1082 2.2 compatibility, so it's OK to use the string method.
1071
1083
1072 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1084 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1073
1085
1074 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1086 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1075 matching what NOT to autocall on, to include all python binary
1087 matching what NOT to autocall on, to include all python binary
1076 operators (including things like 'and', 'or', 'is' and 'in').
1088 operators (including things like 'and', 'or', 'is' and 'in').
1077 Prompted by a bug report on 'foo & bar', but I realized we had
1089 Prompted by a bug report on 'foo & bar', but I realized we had
1078 many more potential bug cases with other operators. The regexp is
1090 many more potential bug cases with other operators. The regexp is
1079 self.re_exclude_auto, it's fairly commented.
1091 self.re_exclude_auto, it's fairly commented.
1080
1092
1081 2006-01-12 Ville Vainio <vivainio@gmail.com>
1093 2006-01-12 Ville Vainio <vivainio@gmail.com>
1082
1094
1083 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1095 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1084 Prettified and hardened string/backslash quoting with ipsystem(),
1096 Prettified and hardened string/backslash quoting with ipsystem(),
1085 ipalias() and ipmagic(). Now even \ characters are passed to
1097 ipalias() and ipmagic(). Now even \ characters are passed to
1086 %magics, !shell escapes and aliases exactly as they are in the
1098 %magics, !shell escapes and aliases exactly as they are in the
1087 ipython command line. Should improve backslash experience,
1099 ipython command line. Should improve backslash experience,
1088 particularly in Windows (path delimiter for some commands that
1100 particularly in Windows (path delimiter for some commands that
1089 won't understand '/'), but Unix benefits as well (regexps). %cd
1101 won't understand '/'), but Unix benefits as well (regexps). %cd
1090 magic still doesn't support backslash path delimiters, though. Also
1102 magic still doesn't support backslash path delimiters, though. Also
1091 deleted all pretense of supporting multiline command strings in
1103 deleted all pretense of supporting multiline command strings in
1092 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1104 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1093
1105
1094 * doc/build_doc_instructions.txt added. Documentation on how to
1106 * doc/build_doc_instructions.txt added. Documentation on how to
1095 use doc/update_manual.py, added yesterday. Both files contributed
1107 use doc/update_manual.py, added yesterday. Both files contributed
1096 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1108 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1097 doc/*.sh for deprecation at a later date.
1109 doc/*.sh for deprecation at a later date.
1098
1110
1099 * /ipython.py Added ipython.py to root directory for
1111 * /ipython.py Added ipython.py to root directory for
1100 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1112 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1101 ipython.py) and development convenience (no need to keep doing
1113 ipython.py) and development convenience (no need to keep doing
1102 "setup.py install" between changes).
1114 "setup.py install" between changes).
1103
1115
1104 * Made ! and !! shell escapes work (again) in multiline expressions:
1116 * Made ! and !! shell escapes work (again) in multiline expressions:
1105 if 1:
1117 if 1:
1106 !ls
1118 !ls
1107 !!ls
1119 !!ls
1108
1120
1109 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1121 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1110
1122
1111 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1123 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1112 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1124 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1113 module in case-insensitive installation. Was causing crashes
1125 module in case-insensitive installation. Was causing crashes
1114 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1126 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1115
1127
1116 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1128 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1117 <marienz-AT-gentoo.org>, closes
1129 <marienz-AT-gentoo.org>, closes
1118 http://www.scipy.net/roundup/ipython/issue51.
1130 http://www.scipy.net/roundup/ipython/issue51.
1119
1131
1120 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1132 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1121
1133
1122 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1134 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1123 problem of excessive CPU usage under *nix and keyboard lag under
1135 problem of excessive CPU usage under *nix and keyboard lag under
1124 win32.
1136 win32.
1125
1137
1126 2006-01-10 *** Released version 0.7.0
1138 2006-01-10 *** Released version 0.7.0
1127
1139
1128 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1140 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1129
1141
1130 * IPython/Release.py (revision): tag version number to 0.7.0,
1142 * IPython/Release.py (revision): tag version number to 0.7.0,
1131 ready for release.
1143 ready for release.
1132
1144
1133 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1145 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1134 it informs the user of the name of the temp. file used. This can
1146 it informs the user of the name of the temp. file used. This can
1135 help if you decide later to reuse that same file, so you know
1147 help if you decide later to reuse that same file, so you know
1136 where to copy the info from.
1148 where to copy the info from.
1137
1149
1138 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1150 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1139
1151
1140 * setup_bdist_egg.py: little script to build an egg. Added
1152 * setup_bdist_egg.py: little script to build an egg. Added
1141 support in the release tools as well.
1153 support in the release tools as well.
1142
1154
1143 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1155 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1144
1156
1145 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1157 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1146 version selection (new -wxversion command line and ipythonrc
1158 version selection (new -wxversion command line and ipythonrc
1147 parameter). Patch contributed by Arnd Baecker
1159 parameter). Patch contributed by Arnd Baecker
1148 <arnd.baecker-AT-web.de>.
1160 <arnd.baecker-AT-web.de>.
1149
1161
1150 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1162 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1151 embedded instances, for variables defined at the interactive
1163 embedded instances, for variables defined at the interactive
1152 prompt of the embedded ipython. Reported by Arnd.
1164 prompt of the embedded ipython. Reported by Arnd.
1153
1165
1154 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1166 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1155 it can be used as a (stateful) toggle, or with a direct parameter.
1167 it can be used as a (stateful) toggle, or with a direct parameter.
1156
1168
1157 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1169 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1158 could be triggered in certain cases and cause the traceback
1170 could be triggered in certain cases and cause the traceback
1159 printer not to work.
1171 printer not to work.
1160
1172
1161 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1173 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1162
1174
1163 * IPython/iplib.py (_should_recompile): Small fix, closes
1175 * IPython/iplib.py (_should_recompile): Small fix, closes
1164 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1176 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1165
1177
1166 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1178 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1167
1179
1168 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1180 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1169 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1181 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1170 Moad for help with tracking it down.
1182 Moad for help with tracking it down.
1171
1183
1172 * IPython/iplib.py (handle_auto): fix autocall handling for
1184 * IPython/iplib.py (handle_auto): fix autocall handling for
1173 objects which support BOTH __getitem__ and __call__ (so that f [x]
1185 objects which support BOTH __getitem__ and __call__ (so that f [x]
1174 is left alone, instead of becoming f([x]) automatically).
1186 is left alone, instead of becoming f([x]) automatically).
1175
1187
1176 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1188 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1177 Ville's patch.
1189 Ville's patch.
1178
1190
1179 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1191 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1180
1192
1181 * IPython/iplib.py (handle_auto): changed autocall semantics to
1193 * IPython/iplib.py (handle_auto): changed autocall semantics to
1182 include 'smart' mode, where the autocall transformation is NOT
1194 include 'smart' mode, where the autocall transformation is NOT
1183 applied if there are no arguments on the line. This allows you to
1195 applied if there are no arguments on the line. This allows you to
1184 just type 'foo' if foo is a callable to see its internal form,
1196 just type 'foo' if foo is a callable to see its internal form,
1185 instead of having it called with no arguments (typically a
1197 instead of having it called with no arguments (typically a
1186 mistake). The old 'full' autocall still exists: for that, you
1198 mistake). The old 'full' autocall still exists: for that, you
1187 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1199 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1188
1200
1189 * IPython/completer.py (Completer.attr_matches): add
1201 * IPython/completer.py (Completer.attr_matches): add
1190 tab-completion support for Enthoughts' traits. After a report by
1202 tab-completion support for Enthoughts' traits. After a report by
1191 Arnd and a patch by Prabhu.
1203 Arnd and a patch by Prabhu.
1192
1204
1193 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1205 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1194
1206
1195 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1207 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1196 Schmolck's patch to fix inspect.getinnerframes().
1208 Schmolck's patch to fix inspect.getinnerframes().
1197
1209
1198 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1210 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1199 for embedded instances, regarding handling of namespaces and items
1211 for embedded instances, regarding handling of namespaces and items
1200 added to the __builtin__ one. Multiple embedded instances and
1212 added to the __builtin__ one. Multiple embedded instances and
1201 recursive embeddings should work better now (though I'm not sure
1213 recursive embeddings should work better now (though I'm not sure
1202 I've got all the corner cases fixed, that code is a bit of a brain
1214 I've got all the corner cases fixed, that code is a bit of a brain
1203 twister).
1215 twister).
1204
1216
1205 * IPython/Magic.py (magic_edit): added support to edit in-memory
1217 * IPython/Magic.py (magic_edit): added support to edit in-memory
1206 macros (automatically creates the necessary temp files). %edit
1218 macros (automatically creates the necessary temp files). %edit
1207 also doesn't return the file contents anymore, it's just noise.
1219 also doesn't return the file contents anymore, it's just noise.
1208
1220
1209 * IPython/completer.py (Completer.attr_matches): revert change to
1221 * IPython/completer.py (Completer.attr_matches): revert change to
1210 complete only on attributes listed in __all__. I realized it
1222 complete only on attributes listed in __all__. I realized it
1211 cripples the tab-completion system as a tool for exploring the
1223 cripples the tab-completion system as a tool for exploring the
1212 internals of unknown libraries (it renders any non-__all__
1224 internals of unknown libraries (it renders any non-__all__
1213 attribute off-limits). I got bit by this when trying to see
1225 attribute off-limits). I got bit by this when trying to see
1214 something inside the dis module.
1226 something inside the dis module.
1215
1227
1216 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1228 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1217
1229
1218 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1230 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1219 namespace for users and extension writers to hold data in. This
1231 namespace for users and extension writers to hold data in. This
1220 follows the discussion in
1232 follows the discussion in
1221 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1233 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1222
1234
1223 * IPython/completer.py (IPCompleter.complete): small patch to help
1235 * IPython/completer.py (IPCompleter.complete): small patch to help
1224 tab-completion under Emacs, after a suggestion by John Barnard
1236 tab-completion under Emacs, after a suggestion by John Barnard
1225 <barnarj-AT-ccf.org>.
1237 <barnarj-AT-ccf.org>.
1226
1238
1227 * IPython/Magic.py (Magic.extract_input_slices): added support for
1239 * IPython/Magic.py (Magic.extract_input_slices): added support for
1228 the slice notation in magics to use N-M to represent numbers N...M
1240 the slice notation in magics to use N-M to represent numbers N...M
1229 (closed endpoints). This is used by %macro and %save.
1241 (closed endpoints). This is used by %macro and %save.
1230
1242
1231 * IPython/completer.py (Completer.attr_matches): for modules which
1243 * IPython/completer.py (Completer.attr_matches): for modules which
1232 define __all__, complete only on those. After a patch by Jeffrey
1244 define __all__, complete only on those. After a patch by Jeffrey
1233 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1245 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1234 speed up this routine.
1246 speed up this routine.
1235
1247
1236 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1248 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1237 don't know if this is the end of it, but the behavior now is
1249 don't know if this is the end of it, but the behavior now is
1238 certainly much more correct. Note that coupled with macros,
1250 certainly much more correct. Note that coupled with macros,
1239 slightly surprising (at first) behavior may occur: a macro will in
1251 slightly surprising (at first) behavior may occur: a macro will in
1240 general expand to multiple lines of input, so upon exiting, the
1252 general expand to multiple lines of input, so upon exiting, the
1241 in/out counters will both be bumped by the corresponding amount
1253 in/out counters will both be bumped by the corresponding amount
1242 (as if the macro's contents had been typed interactively). Typing
1254 (as if the macro's contents had been typed interactively). Typing
1243 %hist will reveal the intermediate (silently processed) lines.
1255 %hist will reveal the intermediate (silently processed) lines.
1244
1256
1245 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1257 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1246 pickle to fail (%run was overwriting __main__ and not restoring
1258 pickle to fail (%run was overwriting __main__ and not restoring
1247 it, but pickle relies on __main__ to operate).
1259 it, but pickle relies on __main__ to operate).
1248
1260
1249 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1261 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1250 using properties, but forgot to make the main InteractiveShell
1262 using properties, but forgot to make the main InteractiveShell
1251 class a new-style class. Properties fail silently, and
1263 class a new-style class. Properties fail silently, and
1252 mysteriously, with old-style class (getters work, but
1264 mysteriously, with old-style class (getters work, but
1253 setters don't do anything).
1265 setters don't do anything).
1254
1266
1255 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1267 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1256
1268
1257 * IPython/Magic.py (magic_history): fix history reporting bug (I
1269 * IPython/Magic.py (magic_history): fix history reporting bug (I
1258 know some nasties are still there, I just can't seem to find a
1270 know some nasties are still there, I just can't seem to find a
1259 reproducible test case to track them down; the input history is
1271 reproducible test case to track them down; the input history is
1260 falling out of sync...)
1272 falling out of sync...)
1261
1273
1262 * IPython/iplib.py (handle_shell_escape): fix bug where both
1274 * IPython/iplib.py (handle_shell_escape): fix bug where both
1263 aliases and system accesses where broken for indented code (such
1275 aliases and system accesses where broken for indented code (such
1264 as loops).
1276 as loops).
1265
1277
1266 * IPython/genutils.py (shell): fix small but critical bug for
1278 * IPython/genutils.py (shell): fix small but critical bug for
1267 win32 system access.
1279 win32 system access.
1268
1280
1269 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1281 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1270
1282
1271 * IPython/iplib.py (showtraceback): remove use of the
1283 * IPython/iplib.py (showtraceback): remove use of the
1272 sys.last_{type/value/traceback} structures, which are non
1284 sys.last_{type/value/traceback} structures, which are non
1273 thread-safe.
1285 thread-safe.
1274 (_prefilter): change control flow to ensure that we NEVER
1286 (_prefilter): change control flow to ensure that we NEVER
1275 introspect objects when autocall is off. This will guarantee that
1287 introspect objects when autocall is off. This will guarantee that
1276 having an input line of the form 'x.y', where access to attribute
1288 having an input line of the form 'x.y', where access to attribute
1277 'y' has side effects, doesn't trigger the side effect TWICE. It
1289 'y' has side effects, doesn't trigger the side effect TWICE. It
1278 is important to note that, with autocall on, these side effects
1290 is important to note that, with autocall on, these side effects
1279 can still happen.
1291 can still happen.
1280 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1292 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1281 trio. IPython offers these three kinds of special calls which are
1293 trio. IPython offers these three kinds of special calls which are
1282 not python code, and it's a good thing to have their call method
1294 not python code, and it's a good thing to have their call method
1283 be accessible as pure python functions (not just special syntax at
1295 be accessible as pure python functions (not just special syntax at
1284 the command line). It gives us a better internal implementation
1296 the command line). It gives us a better internal implementation
1285 structure, as well as exposing these for user scripting more
1297 structure, as well as exposing these for user scripting more
1286 cleanly.
1298 cleanly.
1287
1299
1288 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1300 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1289 file. Now that they'll be more likely to be used with the
1301 file. Now that they'll be more likely to be used with the
1290 persistance system (%store), I want to make sure their module path
1302 persistance system (%store), I want to make sure their module path
1291 doesn't change in the future, so that we don't break things for
1303 doesn't change in the future, so that we don't break things for
1292 users' persisted data.
1304 users' persisted data.
1293
1305
1294 * IPython/iplib.py (autoindent_update): move indentation
1306 * IPython/iplib.py (autoindent_update): move indentation
1295 management into the _text_ processing loop, not the keyboard
1307 management into the _text_ processing loop, not the keyboard
1296 interactive one. This is necessary to correctly process non-typed
1308 interactive one. This is necessary to correctly process non-typed
1297 multiline input (such as macros).
1309 multiline input (such as macros).
1298
1310
1299 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1311 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1300 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1312 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1301 which was producing problems in the resulting manual.
1313 which was producing problems in the resulting manual.
1302 (magic_whos): improve reporting of instances (show their class,
1314 (magic_whos): improve reporting of instances (show their class,
1303 instead of simply printing 'instance' which isn't terribly
1315 instead of simply printing 'instance' which isn't terribly
1304 informative).
1316 informative).
1305
1317
1306 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1318 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1307 (minor mods) to support network shares under win32.
1319 (minor mods) to support network shares under win32.
1308
1320
1309 * IPython/winconsole.py (get_console_size): add new winconsole
1321 * IPython/winconsole.py (get_console_size): add new winconsole
1310 module and fixes to page_dumb() to improve its behavior under
1322 module and fixes to page_dumb() to improve its behavior under
1311 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1323 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1312
1324
1313 * IPython/Magic.py (Macro): simplified Macro class to just
1325 * IPython/Magic.py (Macro): simplified Macro class to just
1314 subclass list. We've had only 2.2 compatibility for a very long
1326 subclass list. We've had only 2.2 compatibility for a very long
1315 time, yet I was still avoiding subclassing the builtin types. No
1327 time, yet I was still avoiding subclassing the builtin types. No
1316 more (I'm also starting to use properties, though I won't shift to
1328 more (I'm also starting to use properties, though I won't shift to
1317 2.3-specific features quite yet).
1329 2.3-specific features quite yet).
1318 (magic_store): added Ville's patch for lightweight variable
1330 (magic_store): added Ville's patch for lightweight variable
1319 persistence, after a request on the user list by Matt Wilkie
1331 persistence, after a request on the user list by Matt Wilkie
1320 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1332 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1321 details.
1333 details.
1322
1334
1323 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1335 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1324 changed the default logfile name from 'ipython.log' to
1336 changed the default logfile name from 'ipython.log' to
1325 'ipython_log.py'. These logs are real python files, and now that
1337 'ipython_log.py'. These logs are real python files, and now that
1326 we have much better multiline support, people are more likely to
1338 we have much better multiline support, people are more likely to
1327 want to use them as such. Might as well name them correctly.
1339 want to use them as such. Might as well name them correctly.
1328
1340
1329 * IPython/Magic.py: substantial cleanup. While we can't stop
1341 * IPython/Magic.py: substantial cleanup. While we can't stop
1330 using magics as mixins, due to the existing customizations 'out
1342 using magics as mixins, due to the existing customizations 'out
1331 there' which rely on the mixin naming conventions, at least I
1343 there' which rely on the mixin naming conventions, at least I
1332 cleaned out all cross-class name usage. So once we are OK with
1344 cleaned out all cross-class name usage. So once we are OK with
1333 breaking compatibility, the two systems can be separated.
1345 breaking compatibility, the two systems can be separated.
1334
1346
1335 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1347 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1336 anymore, and the class is a fair bit less hideous as well. New
1348 anymore, and the class is a fair bit less hideous as well. New
1337 features were also introduced: timestamping of input, and logging
1349 features were also introduced: timestamping of input, and logging
1338 of output results. These are user-visible with the -t and -o
1350 of output results. These are user-visible with the -t and -o
1339 options to %logstart. Closes
1351 options to %logstart. Closes
1340 http://www.scipy.net/roundup/ipython/issue11 and a request by
1352 http://www.scipy.net/roundup/ipython/issue11 and a request by
1341 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1353 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1342
1354
1343 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1355 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1344
1356
1345 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1357 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1346 better handle backslashes in paths. See the thread 'More Windows
1358 better handle backslashes in paths. See the thread 'More Windows
1347 questions part 2 - \/ characters revisited' on the iypthon user
1359 questions part 2 - \/ characters revisited' on the iypthon user
1348 list:
1360 list:
1349 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1361 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1350
1362
1351 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1363 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1352
1364
1353 (InteractiveShell.__init__): change threaded shells to not use the
1365 (InteractiveShell.__init__): change threaded shells to not use the
1354 ipython crash handler. This was causing more problems than not,
1366 ipython crash handler. This was causing more problems than not,
1355 as exceptions in the main thread (GUI code, typically) would
1367 as exceptions in the main thread (GUI code, typically) would
1356 always show up as a 'crash', when they really weren't.
1368 always show up as a 'crash', when they really weren't.
1357
1369
1358 The colors and exception mode commands (%colors/%xmode) have been
1370 The colors and exception mode commands (%colors/%xmode) have been
1359 synchronized to also take this into account, so users can get
1371 synchronized to also take this into account, so users can get
1360 verbose exceptions for their threaded code as well. I also added
1372 verbose exceptions for their threaded code as well. I also added
1361 support for activating pdb inside this exception handler as well,
1373 support for activating pdb inside this exception handler as well,
1362 so now GUI authors can use IPython's enhanced pdb at runtime.
1374 so now GUI authors can use IPython's enhanced pdb at runtime.
1363
1375
1364 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1376 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1365 true by default, and add it to the shipped ipythonrc file. Since
1377 true by default, and add it to the shipped ipythonrc file. Since
1366 this asks the user before proceeding, I think it's OK to make it
1378 this asks the user before proceeding, I think it's OK to make it
1367 true by default.
1379 true by default.
1368
1380
1369 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1381 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1370 of the previous special-casing of input in the eval loop. I think
1382 of the previous special-casing of input in the eval loop. I think
1371 this is cleaner, as they really are commands and shouldn't have
1383 this is cleaner, as they really are commands and shouldn't have
1372 a special role in the middle of the core code.
1384 a special role in the middle of the core code.
1373
1385
1374 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1386 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1375
1387
1376 * IPython/iplib.py (edit_syntax_error): added support for
1388 * IPython/iplib.py (edit_syntax_error): added support for
1377 automatically reopening the editor if the file had a syntax error
1389 automatically reopening the editor if the file had a syntax error
1378 in it. Thanks to scottt who provided the patch at:
1390 in it. Thanks to scottt who provided the patch at:
1379 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1391 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1380 version committed).
1392 version committed).
1381
1393
1382 * IPython/iplib.py (handle_normal): add suport for multi-line
1394 * IPython/iplib.py (handle_normal): add suport for multi-line
1383 input with emtpy lines. This fixes
1395 input with emtpy lines. This fixes
1384 http://www.scipy.net/roundup/ipython/issue43 and a similar
1396 http://www.scipy.net/roundup/ipython/issue43 and a similar
1385 discussion on the user list.
1397 discussion on the user list.
1386
1398
1387 WARNING: a behavior change is necessarily introduced to support
1399 WARNING: a behavior change is necessarily introduced to support
1388 blank lines: now a single blank line with whitespace does NOT
1400 blank lines: now a single blank line with whitespace does NOT
1389 break the input loop, which means that when autoindent is on, by
1401 break the input loop, which means that when autoindent is on, by
1390 default hitting return on the next (indented) line does NOT exit.
1402 default hitting return on the next (indented) line does NOT exit.
1391
1403
1392 Instead, to exit a multiline input you can either have:
1404 Instead, to exit a multiline input you can either have:
1393
1405
1394 - TWO whitespace lines (just hit return again), or
1406 - TWO whitespace lines (just hit return again), or
1395 - a single whitespace line of a different length than provided
1407 - a single whitespace line of a different length than provided
1396 by the autoindent (add or remove a space).
1408 by the autoindent (add or remove a space).
1397
1409
1398 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1410 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1399 module to better organize all readline-related functionality.
1411 module to better organize all readline-related functionality.
1400 I've deleted FlexCompleter and put all completion clases here.
1412 I've deleted FlexCompleter and put all completion clases here.
1401
1413
1402 * IPython/iplib.py (raw_input): improve indentation management.
1414 * IPython/iplib.py (raw_input): improve indentation management.
1403 It is now possible to paste indented code with autoindent on, and
1415 It is now possible to paste indented code with autoindent on, and
1404 the code is interpreted correctly (though it still looks bad on
1416 the code is interpreted correctly (though it still looks bad on
1405 screen, due to the line-oriented nature of ipython).
1417 screen, due to the line-oriented nature of ipython).
1406 (MagicCompleter.complete): change behavior so that a TAB key on an
1418 (MagicCompleter.complete): change behavior so that a TAB key on an
1407 otherwise empty line actually inserts a tab, instead of completing
1419 otherwise empty line actually inserts a tab, instead of completing
1408 on the entire global namespace. This makes it easier to use the
1420 on the entire global namespace. This makes it easier to use the
1409 TAB key for indentation. After a request by Hans Meine
1421 TAB key for indentation. After a request by Hans Meine
1410 <hans_meine-AT-gmx.net>
1422 <hans_meine-AT-gmx.net>
1411 (_prefilter): add support so that typing plain 'exit' or 'quit'
1423 (_prefilter): add support so that typing plain 'exit' or 'quit'
1412 does a sensible thing. Originally I tried to deviate as little as
1424 does a sensible thing. Originally I tried to deviate as little as
1413 possible from the default python behavior, but even that one may
1425 possible from the default python behavior, but even that one may
1414 change in this direction (thread on python-dev to that effect).
1426 change in this direction (thread on python-dev to that effect).
1415 Regardless, ipython should do the right thing even if CPython's
1427 Regardless, ipython should do the right thing even if CPython's
1416 '>>>' prompt doesn't.
1428 '>>>' prompt doesn't.
1417 (InteractiveShell): removed subclassing code.InteractiveConsole
1429 (InteractiveShell): removed subclassing code.InteractiveConsole
1418 class. By now we'd overridden just about all of its methods: I've
1430 class. By now we'd overridden just about all of its methods: I've
1419 copied the remaining two over, and now ipython is a standalone
1431 copied the remaining two over, and now ipython is a standalone
1420 class. This will provide a clearer picture for the chainsaw
1432 class. This will provide a clearer picture for the chainsaw
1421 branch refactoring.
1433 branch refactoring.
1422
1434
1423 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1435 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1424
1436
1425 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1437 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1426 failures for objects which break when dir() is called on them.
1438 failures for objects which break when dir() is called on them.
1427
1439
1428 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1440 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1429 distinct local and global namespaces in the completer API. This
1441 distinct local and global namespaces in the completer API. This
1430 change allows us to properly handle completion with distinct
1442 change allows us to properly handle completion with distinct
1431 scopes, including in embedded instances (this had never really
1443 scopes, including in embedded instances (this had never really
1432 worked correctly).
1444 worked correctly).
1433
1445
1434 Note: this introduces a change in the constructor for
1446 Note: this introduces a change in the constructor for
1435 MagicCompleter, as a new global_namespace parameter is now the
1447 MagicCompleter, as a new global_namespace parameter is now the
1436 second argument (the others were bumped one position).
1448 second argument (the others were bumped one position).
1437
1449
1438 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1450 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1439
1451
1440 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1452 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1441 embedded instances (which can be done now thanks to Vivian's
1453 embedded instances (which can be done now thanks to Vivian's
1442 frame-handling fixes for pdb).
1454 frame-handling fixes for pdb).
1443 (InteractiveShell.__init__): Fix namespace handling problem in
1455 (InteractiveShell.__init__): Fix namespace handling problem in
1444 embedded instances. We were overwriting __main__ unconditionally,
1456 embedded instances. We were overwriting __main__ unconditionally,
1445 and this should only be done for 'full' (non-embedded) IPython;
1457 and this should only be done for 'full' (non-embedded) IPython;
1446 embedded instances must respect the caller's __main__. Thanks to
1458 embedded instances must respect the caller's __main__. Thanks to
1447 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1459 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1448
1460
1449 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1461 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1450
1462
1451 * setup.py: added download_url to setup(). This registers the
1463 * setup.py: added download_url to setup(). This registers the
1452 download address at PyPI, which is not only useful to humans
1464 download address at PyPI, which is not only useful to humans
1453 browsing the site, but is also picked up by setuptools (the Eggs
1465 browsing the site, but is also picked up by setuptools (the Eggs
1454 machinery). Thanks to Ville and R. Kern for the info/discussion
1466 machinery). Thanks to Ville and R. Kern for the info/discussion
1455 on this.
1467 on this.
1456
1468
1457 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1469 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1458
1470
1459 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1471 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1460 This brings a lot of nice functionality to the pdb mode, which now
1472 This brings a lot of nice functionality to the pdb mode, which now
1461 has tab-completion, syntax highlighting, and better stack handling
1473 has tab-completion, syntax highlighting, and better stack handling
1462 than before. Many thanks to Vivian De Smedt
1474 than before. Many thanks to Vivian De Smedt
1463 <vivian-AT-vdesmedt.com> for the original patches.
1475 <vivian-AT-vdesmedt.com> for the original patches.
1464
1476
1465 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1477 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1466
1478
1467 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1479 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1468 sequence to consistently accept the banner argument. The
1480 sequence to consistently accept the banner argument. The
1469 inconsistency was tripping SAGE, thanks to Gary Zablackis
1481 inconsistency was tripping SAGE, thanks to Gary Zablackis
1470 <gzabl-AT-yahoo.com> for the report.
1482 <gzabl-AT-yahoo.com> for the report.
1471
1483
1472 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1484 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1473
1485
1474 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1486 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1475 Fix bug where a naked 'alias' call in the ipythonrc file would
1487 Fix bug where a naked 'alias' call in the ipythonrc file would
1476 cause a crash. Bug reported by Jorgen Stenarson.
1488 cause a crash. Bug reported by Jorgen Stenarson.
1477
1489
1478 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1490 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1479
1491
1480 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1492 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1481 startup time.
1493 startup time.
1482
1494
1483 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1495 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1484 instances had introduced a bug with globals in normal code. Now
1496 instances had introduced a bug with globals in normal code. Now
1485 it's working in all cases.
1497 it's working in all cases.
1486
1498
1487 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1499 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1488 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1500 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1489 has been introduced to set the default case sensitivity of the
1501 has been introduced to set the default case sensitivity of the
1490 searches. Users can still select either mode at runtime on a
1502 searches. Users can still select either mode at runtime on a
1491 per-search basis.
1503 per-search basis.
1492
1504
1493 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1505 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1494
1506
1495 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1507 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1496 attributes in wildcard searches for subclasses. Modified version
1508 attributes in wildcard searches for subclasses. Modified version
1497 of a patch by Jorgen.
1509 of a patch by Jorgen.
1498
1510
1499 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1511 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1500
1512
1501 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1513 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1502 embedded instances. I added a user_global_ns attribute to the
1514 embedded instances. I added a user_global_ns attribute to the
1503 InteractiveShell class to handle this.
1515 InteractiveShell class to handle this.
1504
1516
1505 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1517 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1506
1518
1507 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1519 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1508 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1520 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1509 (reported under win32, but may happen also in other platforms).
1521 (reported under win32, but may happen also in other platforms).
1510 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1522 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1511
1523
1512 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1524 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1513
1525
1514 * IPython/Magic.py (magic_psearch): new support for wildcard
1526 * IPython/Magic.py (magic_psearch): new support for wildcard
1515 patterns. Now, typing ?a*b will list all names which begin with a
1527 patterns. Now, typing ?a*b will list all names which begin with a
1516 and end in b, for example. The %psearch magic has full
1528 and end in b, for example. The %psearch magic has full
1517 docstrings. Many thanks to JΓΆrgen Stenarson
1529 docstrings. Many thanks to JΓΆrgen Stenarson
1518 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1530 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1519 implementing this functionality.
1531 implementing this functionality.
1520
1532
1521 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1533 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1522
1534
1523 * Manual: fixed long-standing annoyance of double-dashes (as in
1535 * Manual: fixed long-standing annoyance of double-dashes (as in
1524 --prefix=~, for example) being stripped in the HTML version. This
1536 --prefix=~, for example) being stripped in the HTML version. This
1525 is a latex2html bug, but a workaround was provided. Many thanks
1537 is a latex2html bug, but a workaround was provided. Many thanks
1526 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1538 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1527 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1539 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1528 rolling. This seemingly small issue had tripped a number of users
1540 rolling. This seemingly small issue had tripped a number of users
1529 when first installing, so I'm glad to see it gone.
1541 when first installing, so I'm glad to see it gone.
1530
1542
1531 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1543 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1532
1544
1533 * IPython/Extensions/numeric_formats.py: fix missing import,
1545 * IPython/Extensions/numeric_formats.py: fix missing import,
1534 reported by Stephen Walton.
1546 reported by Stephen Walton.
1535
1547
1536 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1548 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1537
1549
1538 * IPython/demo.py: finish demo module, fully documented now.
1550 * IPython/demo.py: finish demo module, fully documented now.
1539
1551
1540 * IPython/genutils.py (file_read): simple little utility to read a
1552 * IPython/genutils.py (file_read): simple little utility to read a
1541 file and ensure it's closed afterwards.
1553 file and ensure it's closed afterwards.
1542
1554
1543 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1555 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1544
1556
1545 * IPython/demo.py (Demo.__init__): added support for individually
1557 * IPython/demo.py (Demo.__init__): added support for individually
1546 tagging blocks for automatic execution.
1558 tagging blocks for automatic execution.
1547
1559
1548 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1560 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1549 syntax-highlighted python sources, requested by John.
1561 syntax-highlighted python sources, requested by John.
1550
1562
1551 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1563 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1552
1564
1553 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1565 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1554 finishing.
1566 finishing.
1555
1567
1556 * IPython/genutils.py (shlex_split): moved from Magic to here,
1568 * IPython/genutils.py (shlex_split): moved from Magic to here,
1557 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1569 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1558
1570
1559 * IPython/demo.py (Demo.__init__): added support for silent
1571 * IPython/demo.py (Demo.__init__): added support for silent
1560 blocks, improved marks as regexps, docstrings written.
1572 blocks, improved marks as regexps, docstrings written.
1561 (Demo.__init__): better docstring, added support for sys.argv.
1573 (Demo.__init__): better docstring, added support for sys.argv.
1562
1574
1563 * IPython/genutils.py (marquee): little utility used by the demo
1575 * IPython/genutils.py (marquee): little utility used by the demo
1564 code, handy in general.
1576 code, handy in general.
1565
1577
1566 * IPython/demo.py (Demo.__init__): new class for interactive
1578 * IPython/demo.py (Demo.__init__): new class for interactive
1567 demos. Not documented yet, I just wrote it in a hurry for
1579 demos. Not documented yet, I just wrote it in a hurry for
1568 scipy'05. Will docstring later.
1580 scipy'05. Will docstring later.
1569
1581
1570 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1582 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1571
1583
1572 * IPython/Shell.py (sigint_handler): Drastic simplification which
1584 * IPython/Shell.py (sigint_handler): Drastic simplification which
1573 also seems to make Ctrl-C work correctly across threads! This is
1585 also seems to make Ctrl-C work correctly across threads! This is
1574 so simple, that I can't beleive I'd missed it before. Needs more
1586 so simple, that I can't beleive I'd missed it before. Needs more
1575 testing, though.
1587 testing, though.
1576 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1588 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1577 like this before...
1589 like this before...
1578
1590
1579 * IPython/genutils.py (get_home_dir): add protection against
1591 * IPython/genutils.py (get_home_dir): add protection against
1580 non-dirs in win32 registry.
1592 non-dirs in win32 registry.
1581
1593
1582 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1594 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1583 bug where dict was mutated while iterating (pysh crash).
1595 bug where dict was mutated while iterating (pysh crash).
1584
1596
1585 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1597 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1586
1598
1587 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1599 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1588 spurious newlines added by this routine. After a report by
1600 spurious newlines added by this routine. After a report by
1589 F. Mantegazza.
1601 F. Mantegazza.
1590
1602
1591 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1603 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1592
1604
1593 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1605 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1594 calls. These were a leftover from the GTK 1.x days, and can cause
1606 calls. These were a leftover from the GTK 1.x days, and can cause
1595 problems in certain cases (after a report by John Hunter).
1607 problems in certain cases (after a report by John Hunter).
1596
1608
1597 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1609 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1598 os.getcwd() fails at init time. Thanks to patch from David Remahl
1610 os.getcwd() fails at init time. Thanks to patch from David Remahl
1599 <chmod007-AT-mac.com>.
1611 <chmod007-AT-mac.com>.
1600 (InteractiveShell.__init__): prevent certain special magics from
1612 (InteractiveShell.__init__): prevent certain special magics from
1601 being shadowed by aliases. Closes
1613 being shadowed by aliases. Closes
1602 http://www.scipy.net/roundup/ipython/issue41.
1614 http://www.scipy.net/roundup/ipython/issue41.
1603
1615
1604 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1616 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1605
1617
1606 * IPython/iplib.py (InteractiveShell.complete): Added new
1618 * IPython/iplib.py (InteractiveShell.complete): Added new
1607 top-level completion method to expose the completion mechanism
1619 top-level completion method to expose the completion mechanism
1608 beyond readline-based environments.
1620 beyond readline-based environments.
1609
1621
1610 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1622 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1611
1623
1612 * tools/ipsvnc (svnversion): fix svnversion capture.
1624 * tools/ipsvnc (svnversion): fix svnversion capture.
1613
1625
1614 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1626 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1615 attribute to self, which was missing. Before, it was set by a
1627 attribute to self, which was missing. Before, it was set by a
1616 routine which in certain cases wasn't being called, so the
1628 routine which in certain cases wasn't being called, so the
1617 instance could end up missing the attribute. This caused a crash.
1629 instance could end up missing the attribute. This caused a crash.
1618 Closes http://www.scipy.net/roundup/ipython/issue40.
1630 Closes http://www.scipy.net/roundup/ipython/issue40.
1619
1631
1620 2005-08-16 Fernando Perez <fperez@colorado.edu>
1632 2005-08-16 Fernando Perez <fperez@colorado.edu>
1621
1633
1622 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1634 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1623 contains non-string attribute. Closes
1635 contains non-string attribute. Closes
1624 http://www.scipy.net/roundup/ipython/issue38.
1636 http://www.scipy.net/roundup/ipython/issue38.
1625
1637
1626 2005-08-14 Fernando Perez <fperez@colorado.edu>
1638 2005-08-14 Fernando Perez <fperez@colorado.edu>
1627
1639
1628 * tools/ipsvnc: Minor improvements, to add changeset info.
1640 * tools/ipsvnc: Minor improvements, to add changeset info.
1629
1641
1630 2005-08-12 Fernando Perez <fperez@colorado.edu>
1642 2005-08-12 Fernando Perez <fperez@colorado.edu>
1631
1643
1632 * IPython/iplib.py (runsource): remove self.code_to_run_src
1644 * IPython/iplib.py (runsource): remove self.code_to_run_src
1633 attribute. I realized this is nothing more than
1645 attribute. I realized this is nothing more than
1634 '\n'.join(self.buffer), and having the same data in two different
1646 '\n'.join(self.buffer), and having the same data in two different
1635 places is just asking for synchronization bugs. This may impact
1647 places is just asking for synchronization bugs. This may impact
1636 people who have custom exception handlers, so I need to warn
1648 people who have custom exception handlers, so I need to warn
1637 ipython-dev about it (F. Mantegazza may use them).
1649 ipython-dev about it (F. Mantegazza may use them).
1638
1650
1639 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1651 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1640
1652
1641 * IPython/genutils.py: fix 2.2 compatibility (generators)
1653 * IPython/genutils.py: fix 2.2 compatibility (generators)
1642
1654
1643 2005-07-18 Fernando Perez <fperez@colorado.edu>
1655 2005-07-18 Fernando Perez <fperez@colorado.edu>
1644
1656
1645 * IPython/genutils.py (get_home_dir): fix to help users with
1657 * IPython/genutils.py (get_home_dir): fix to help users with
1646 invalid $HOME under win32.
1658 invalid $HOME under win32.
1647
1659
1648 2005-07-17 Fernando Perez <fperez@colorado.edu>
1660 2005-07-17 Fernando Perez <fperez@colorado.edu>
1649
1661
1650 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1662 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1651 some old hacks and clean up a bit other routines; code should be
1663 some old hacks and clean up a bit other routines; code should be
1652 simpler and a bit faster.
1664 simpler and a bit faster.
1653
1665
1654 * IPython/iplib.py (interact): removed some last-resort attempts
1666 * IPython/iplib.py (interact): removed some last-resort attempts
1655 to survive broken stdout/stderr. That code was only making it
1667 to survive broken stdout/stderr. That code was only making it
1656 harder to abstract out the i/o (necessary for gui integration),
1668 harder to abstract out the i/o (necessary for gui integration),
1657 and the crashes it could prevent were extremely rare in practice
1669 and the crashes it could prevent were extremely rare in practice
1658 (besides being fully user-induced in a pretty violent manner).
1670 (besides being fully user-induced in a pretty violent manner).
1659
1671
1660 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1672 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1661 Nothing major yet, but the code is simpler to read; this should
1673 Nothing major yet, but the code is simpler to read; this should
1662 make it easier to do more serious modifications in the future.
1674 make it easier to do more serious modifications in the future.
1663
1675
1664 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1676 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1665 which broke in .15 (thanks to a report by Ville).
1677 which broke in .15 (thanks to a report by Ville).
1666
1678
1667 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1679 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1668 be quite correct, I know next to nothing about unicode). This
1680 be quite correct, I know next to nothing about unicode). This
1669 will allow unicode strings to be used in prompts, amongst other
1681 will allow unicode strings to be used in prompts, amongst other
1670 cases. It also will prevent ipython from crashing when unicode
1682 cases. It also will prevent ipython from crashing when unicode
1671 shows up unexpectedly in many places. If ascii encoding fails, we
1683 shows up unexpectedly in many places. If ascii encoding fails, we
1672 assume utf_8. Currently the encoding is not a user-visible
1684 assume utf_8. Currently the encoding is not a user-visible
1673 setting, though it could be made so if there is demand for it.
1685 setting, though it could be made so if there is demand for it.
1674
1686
1675 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1687 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1676
1688
1677 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1689 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1678
1690
1679 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1691 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1680
1692
1681 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1693 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1682 code can work transparently for 2.2/2.3.
1694 code can work transparently for 2.2/2.3.
1683
1695
1684 2005-07-16 Fernando Perez <fperez@colorado.edu>
1696 2005-07-16 Fernando Perez <fperez@colorado.edu>
1685
1697
1686 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1698 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1687 out of the color scheme table used for coloring exception
1699 out of the color scheme table used for coloring exception
1688 tracebacks. This allows user code to add new schemes at runtime.
1700 tracebacks. This allows user code to add new schemes at runtime.
1689 This is a minimally modified version of the patch at
1701 This is a minimally modified version of the patch at
1690 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1702 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1691 for the contribution.
1703 for the contribution.
1692
1704
1693 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1705 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1694 slightly modified version of the patch in
1706 slightly modified version of the patch in
1695 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1707 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1696 to remove the previous try/except solution (which was costlier).
1708 to remove the previous try/except solution (which was costlier).
1697 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1709 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1698
1710
1699 2005-06-08 Fernando Perez <fperez@colorado.edu>
1711 2005-06-08 Fernando Perez <fperez@colorado.edu>
1700
1712
1701 * IPython/iplib.py (write/write_err): Add methods to abstract all
1713 * IPython/iplib.py (write/write_err): Add methods to abstract all
1702 I/O a bit more.
1714 I/O a bit more.
1703
1715
1704 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1716 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1705 warning, reported by Aric Hagberg, fix by JD Hunter.
1717 warning, reported by Aric Hagberg, fix by JD Hunter.
1706
1718
1707 2005-06-02 *** Released version 0.6.15
1719 2005-06-02 *** Released version 0.6.15
1708
1720
1709 2005-06-01 Fernando Perez <fperez@colorado.edu>
1721 2005-06-01 Fernando Perez <fperez@colorado.edu>
1710
1722
1711 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1723 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1712 tab-completion of filenames within open-quoted strings. Note that
1724 tab-completion of filenames within open-quoted strings. Note that
1713 this requires that in ~/.ipython/ipythonrc, users change the
1725 this requires that in ~/.ipython/ipythonrc, users change the
1714 readline delimiters configuration to read:
1726 readline delimiters configuration to read:
1715
1727
1716 readline_remove_delims -/~
1728 readline_remove_delims -/~
1717
1729
1718
1730
1719 2005-05-31 *** Released version 0.6.14
1731 2005-05-31 *** Released version 0.6.14
1720
1732
1721 2005-05-29 Fernando Perez <fperez@colorado.edu>
1733 2005-05-29 Fernando Perez <fperez@colorado.edu>
1722
1734
1723 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1735 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1724 with files not on the filesystem. Reported by Eliyahu Sandler
1736 with files not on the filesystem. Reported by Eliyahu Sandler
1725 <eli@gondolin.net>
1737 <eli@gondolin.net>
1726
1738
1727 2005-05-22 Fernando Perez <fperez@colorado.edu>
1739 2005-05-22 Fernando Perez <fperez@colorado.edu>
1728
1740
1729 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1741 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1730 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1742 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1731
1743
1732 2005-05-19 Fernando Perez <fperez@colorado.edu>
1744 2005-05-19 Fernando Perez <fperez@colorado.edu>
1733
1745
1734 * IPython/iplib.py (safe_execfile): close a file which could be
1746 * IPython/iplib.py (safe_execfile): close a file which could be
1735 left open (causing problems in win32, which locks open files).
1747 left open (causing problems in win32, which locks open files).
1736 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1748 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1737
1749
1738 2005-05-18 Fernando Perez <fperez@colorado.edu>
1750 2005-05-18 Fernando Perez <fperez@colorado.edu>
1739
1751
1740 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1752 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1741 keyword arguments correctly to safe_execfile().
1753 keyword arguments correctly to safe_execfile().
1742
1754
1743 2005-05-13 Fernando Perez <fperez@colorado.edu>
1755 2005-05-13 Fernando Perez <fperez@colorado.edu>
1744
1756
1745 * ipython.1: Added info about Qt to manpage, and threads warning
1757 * ipython.1: Added info about Qt to manpage, and threads warning
1746 to usage page (invoked with --help).
1758 to usage page (invoked with --help).
1747
1759
1748 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1760 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1749 new matcher (it goes at the end of the priority list) to do
1761 new matcher (it goes at the end of the priority list) to do
1750 tab-completion on named function arguments. Submitted by George
1762 tab-completion on named function arguments. Submitted by George
1751 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1763 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1752 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1764 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1753 for more details.
1765 for more details.
1754
1766
1755 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1767 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1756 SystemExit exceptions in the script being run. Thanks to a report
1768 SystemExit exceptions in the script being run. Thanks to a report
1757 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1769 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1758 producing very annoying behavior when running unit tests.
1770 producing very annoying behavior when running unit tests.
1759
1771
1760 2005-05-12 Fernando Perez <fperez@colorado.edu>
1772 2005-05-12 Fernando Perez <fperez@colorado.edu>
1761
1773
1762 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1774 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1763 which I'd broken (again) due to a changed regexp. In the process,
1775 which I'd broken (again) due to a changed regexp. In the process,
1764 added ';' as an escape to auto-quote the whole line without
1776 added ';' as an escape to auto-quote the whole line without
1765 splitting its arguments. Thanks to a report by Jerry McRae
1777 splitting its arguments. Thanks to a report by Jerry McRae
1766 <qrs0xyc02-AT-sneakemail.com>.
1778 <qrs0xyc02-AT-sneakemail.com>.
1767
1779
1768 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1780 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1769 possible crashes caused by a TokenError. Reported by Ed Schofield
1781 possible crashes caused by a TokenError. Reported by Ed Schofield
1770 <schofield-AT-ftw.at>.
1782 <schofield-AT-ftw.at>.
1771
1783
1772 2005-05-06 Fernando Perez <fperez@colorado.edu>
1784 2005-05-06 Fernando Perez <fperez@colorado.edu>
1773
1785
1774 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1786 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1775
1787
1776 2005-04-29 Fernando Perez <fperez@colorado.edu>
1788 2005-04-29 Fernando Perez <fperez@colorado.edu>
1777
1789
1778 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1790 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1779 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1791 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1780 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1792 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1781 which provides support for Qt interactive usage (similar to the
1793 which provides support for Qt interactive usage (similar to the
1782 existing one for WX and GTK). This had been often requested.
1794 existing one for WX and GTK). This had been often requested.
1783
1795
1784 2005-04-14 *** Released version 0.6.13
1796 2005-04-14 *** Released version 0.6.13
1785
1797
1786 2005-04-08 Fernando Perez <fperez@colorado.edu>
1798 2005-04-08 Fernando Perez <fperez@colorado.edu>
1787
1799
1788 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1800 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1789 from _ofind, which gets called on almost every input line. Now,
1801 from _ofind, which gets called on almost every input line. Now,
1790 we only try to get docstrings if they are actually going to be
1802 we only try to get docstrings if they are actually going to be
1791 used (the overhead of fetching unnecessary docstrings can be
1803 used (the overhead of fetching unnecessary docstrings can be
1792 noticeable for certain objects, such as Pyro proxies).
1804 noticeable for certain objects, such as Pyro proxies).
1793
1805
1794 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1806 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1795 for completers. For some reason I had been passing them the state
1807 for completers. For some reason I had been passing them the state
1796 variable, which completers never actually need, and was in
1808 variable, which completers never actually need, and was in
1797 conflict with the rlcompleter API. Custom completers ONLY need to
1809 conflict with the rlcompleter API. Custom completers ONLY need to
1798 take the text parameter.
1810 take the text parameter.
1799
1811
1800 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1812 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1801 work correctly in pysh. I've also moved all the logic which used
1813 work correctly in pysh. I've also moved all the logic which used
1802 to be in pysh.py here, which will prevent problems with future
1814 to be in pysh.py here, which will prevent problems with future
1803 upgrades. However, this time I must warn users to update their
1815 upgrades. However, this time I must warn users to update their
1804 pysh profile to include the line
1816 pysh profile to include the line
1805
1817
1806 import_all IPython.Extensions.InterpreterExec
1818 import_all IPython.Extensions.InterpreterExec
1807
1819
1808 because otherwise things won't work for them. They MUST also
1820 because otherwise things won't work for them. They MUST also
1809 delete pysh.py and the line
1821 delete pysh.py and the line
1810
1822
1811 execfile pysh.py
1823 execfile pysh.py
1812
1824
1813 from their ipythonrc-pysh.
1825 from their ipythonrc-pysh.
1814
1826
1815 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1827 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1816 robust in the face of objects whose dir() returns non-strings
1828 robust in the face of objects whose dir() returns non-strings
1817 (which it shouldn't, but some broken libs like ITK do). Thanks to
1829 (which it shouldn't, but some broken libs like ITK do). Thanks to
1818 a patch by John Hunter (implemented differently, though). Also
1830 a patch by John Hunter (implemented differently, though). Also
1819 minor improvements by using .extend instead of + on lists.
1831 minor improvements by using .extend instead of + on lists.
1820
1832
1821 * pysh.py:
1833 * pysh.py:
1822
1834
1823 2005-04-06 Fernando Perez <fperez@colorado.edu>
1835 2005-04-06 Fernando Perez <fperez@colorado.edu>
1824
1836
1825 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1837 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1826 by default, so that all users benefit from it. Those who don't
1838 by default, so that all users benefit from it. Those who don't
1827 want it can still turn it off.
1839 want it can still turn it off.
1828
1840
1829 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1841 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1830 config file, I'd forgotten about this, so users were getting it
1842 config file, I'd forgotten about this, so users were getting it
1831 off by default.
1843 off by default.
1832
1844
1833 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1845 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1834 consistency. Now magics can be called in multiline statements,
1846 consistency. Now magics can be called in multiline statements,
1835 and python variables can be expanded in magic calls via $var.
1847 and python variables can be expanded in magic calls via $var.
1836 This makes the magic system behave just like aliases or !system
1848 This makes the magic system behave just like aliases or !system
1837 calls.
1849 calls.
1838
1850
1839 2005-03-28 Fernando Perez <fperez@colorado.edu>
1851 2005-03-28 Fernando Perez <fperez@colorado.edu>
1840
1852
1841 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1853 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1842 expensive string additions for building command. Add support for
1854 expensive string additions for building command. Add support for
1843 trailing ';' when autocall is used.
1855 trailing ';' when autocall is used.
1844
1856
1845 2005-03-26 Fernando Perez <fperez@colorado.edu>
1857 2005-03-26 Fernando Perez <fperez@colorado.edu>
1846
1858
1847 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1859 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1848 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1860 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1849 ipython.el robust against prompts with any number of spaces
1861 ipython.el robust against prompts with any number of spaces
1850 (including 0) after the ':' character.
1862 (including 0) after the ':' character.
1851
1863
1852 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1864 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1853 continuation prompt, which misled users to think the line was
1865 continuation prompt, which misled users to think the line was
1854 already indented. Closes debian Bug#300847, reported to me by
1866 already indented. Closes debian Bug#300847, reported to me by
1855 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1867 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1856
1868
1857 2005-03-23 Fernando Perez <fperez@colorado.edu>
1869 2005-03-23 Fernando Perez <fperez@colorado.edu>
1858
1870
1859 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1871 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1860 properly aligned if they have embedded newlines.
1872 properly aligned if they have embedded newlines.
1861
1873
1862 * IPython/iplib.py (runlines): Add a public method to expose
1874 * IPython/iplib.py (runlines): Add a public method to expose
1863 IPython's code execution machinery, so that users can run strings
1875 IPython's code execution machinery, so that users can run strings
1864 as if they had been typed at the prompt interactively.
1876 as if they had been typed at the prompt interactively.
1865 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1877 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1866 methods which can call the system shell, but with python variable
1878 methods which can call the system shell, but with python variable
1867 expansion. The three such methods are: __IPYTHON__.system,
1879 expansion. The three such methods are: __IPYTHON__.system,
1868 .getoutput and .getoutputerror. These need to be documented in a
1880 .getoutput and .getoutputerror. These need to be documented in a
1869 'public API' section (to be written) of the manual.
1881 'public API' section (to be written) of the manual.
1870
1882
1871 2005-03-20 Fernando Perez <fperez@colorado.edu>
1883 2005-03-20 Fernando Perez <fperez@colorado.edu>
1872
1884
1873 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1885 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1874 for custom exception handling. This is quite powerful, and it
1886 for custom exception handling. This is quite powerful, and it
1875 allows for user-installable exception handlers which can trap
1887 allows for user-installable exception handlers which can trap
1876 custom exceptions at runtime and treat them separately from
1888 custom exceptions at runtime and treat them separately from
1877 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1889 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1878 Mantegazza <mantegazza-AT-ill.fr>.
1890 Mantegazza <mantegazza-AT-ill.fr>.
1879 (InteractiveShell.set_custom_completer): public API function to
1891 (InteractiveShell.set_custom_completer): public API function to
1880 add new completers at runtime.
1892 add new completers at runtime.
1881
1893
1882 2005-03-19 Fernando Perez <fperez@colorado.edu>
1894 2005-03-19 Fernando Perez <fperez@colorado.edu>
1883
1895
1884 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1896 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1885 allow objects which provide their docstrings via non-standard
1897 allow objects which provide their docstrings via non-standard
1886 mechanisms (like Pyro proxies) to still be inspected by ipython's
1898 mechanisms (like Pyro proxies) to still be inspected by ipython's
1887 ? system.
1899 ? system.
1888
1900
1889 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1901 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1890 automatic capture system. I tried quite hard to make it work
1902 automatic capture system. I tried quite hard to make it work
1891 reliably, and simply failed. I tried many combinations with the
1903 reliably, and simply failed. I tried many combinations with the
1892 subprocess module, but eventually nothing worked in all needed
1904 subprocess module, but eventually nothing worked in all needed
1893 cases (not blocking stdin for the child, duplicating stdout
1905 cases (not blocking stdin for the child, duplicating stdout
1894 without blocking, etc). The new %sc/%sx still do capture to these
1906 without blocking, etc). The new %sc/%sx still do capture to these
1895 magical list/string objects which make shell use much more
1907 magical list/string objects which make shell use much more
1896 conveninent, so not all is lost.
1908 conveninent, so not all is lost.
1897
1909
1898 XXX - FIX MANUAL for the change above!
1910 XXX - FIX MANUAL for the change above!
1899
1911
1900 (runsource): I copied code.py's runsource() into ipython to modify
1912 (runsource): I copied code.py's runsource() into ipython to modify
1901 it a bit. Now the code object and source to be executed are
1913 it a bit. Now the code object and source to be executed are
1902 stored in ipython. This makes this info accessible to third-party
1914 stored in ipython. This makes this info accessible to third-party
1903 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1915 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1904 Mantegazza <mantegazza-AT-ill.fr>.
1916 Mantegazza <mantegazza-AT-ill.fr>.
1905
1917
1906 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1918 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1907 history-search via readline (like C-p/C-n). I'd wanted this for a
1919 history-search via readline (like C-p/C-n). I'd wanted this for a
1908 long time, but only recently found out how to do it. For users
1920 long time, but only recently found out how to do it. For users
1909 who already have their ipythonrc files made and want this, just
1921 who already have their ipythonrc files made and want this, just
1910 add:
1922 add:
1911
1923
1912 readline_parse_and_bind "\e[A": history-search-backward
1924 readline_parse_and_bind "\e[A": history-search-backward
1913 readline_parse_and_bind "\e[B": history-search-forward
1925 readline_parse_and_bind "\e[B": history-search-forward
1914
1926
1915 2005-03-18 Fernando Perez <fperez@colorado.edu>
1927 2005-03-18 Fernando Perez <fperez@colorado.edu>
1916
1928
1917 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1929 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1918 LSString and SList classes which allow transparent conversions
1930 LSString and SList classes which allow transparent conversions
1919 between list mode and whitespace-separated string.
1931 between list mode and whitespace-separated string.
1920 (magic_r): Fix recursion problem in %r.
1932 (magic_r): Fix recursion problem in %r.
1921
1933
1922 * IPython/genutils.py (LSString): New class to be used for
1934 * IPython/genutils.py (LSString): New class to be used for
1923 automatic storage of the results of all alias/system calls in _o
1935 automatic storage of the results of all alias/system calls in _o
1924 and _e (stdout/err). These provide a .l/.list attribute which
1936 and _e (stdout/err). These provide a .l/.list attribute which
1925 does automatic splitting on newlines. This means that for most
1937 does automatic splitting on newlines. This means that for most
1926 uses, you'll never need to do capturing of output with %sc/%sx
1938 uses, you'll never need to do capturing of output with %sc/%sx
1927 anymore, since ipython keeps this always done for you. Note that
1939 anymore, since ipython keeps this always done for you. Note that
1928 only the LAST results are stored, the _o/e variables are
1940 only the LAST results are stored, the _o/e variables are
1929 overwritten on each call. If you need to save their contents
1941 overwritten on each call. If you need to save their contents
1930 further, simply bind them to any other name.
1942 further, simply bind them to any other name.
1931
1943
1932 2005-03-17 Fernando Perez <fperez@colorado.edu>
1944 2005-03-17 Fernando Perez <fperez@colorado.edu>
1933
1945
1934 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1946 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1935 prompt namespace handling.
1947 prompt namespace handling.
1936
1948
1937 2005-03-16 Fernando Perez <fperez@colorado.edu>
1949 2005-03-16 Fernando Perez <fperez@colorado.edu>
1938
1950
1939 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1951 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1940 classic prompts to be '>>> ' (final space was missing, and it
1952 classic prompts to be '>>> ' (final space was missing, and it
1941 trips the emacs python mode).
1953 trips the emacs python mode).
1942 (BasePrompt.__str__): Added safe support for dynamic prompt
1954 (BasePrompt.__str__): Added safe support for dynamic prompt
1943 strings. Now you can set your prompt string to be '$x', and the
1955 strings. Now you can set your prompt string to be '$x', and the
1944 value of x will be printed from your interactive namespace. The
1956 value of x will be printed from your interactive namespace. The
1945 interpolation syntax includes the full Itpl support, so
1957 interpolation syntax includes the full Itpl support, so
1946 ${foo()+x+bar()} is a valid prompt string now, and the function
1958 ${foo()+x+bar()} is a valid prompt string now, and the function
1947 calls will be made at runtime.
1959 calls will be made at runtime.
1948
1960
1949 2005-03-15 Fernando Perez <fperez@colorado.edu>
1961 2005-03-15 Fernando Perez <fperez@colorado.edu>
1950
1962
1951 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1963 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1952 avoid name clashes in pylab. %hist still works, it just forwards
1964 avoid name clashes in pylab. %hist still works, it just forwards
1953 the call to %history.
1965 the call to %history.
1954
1966
1955 2005-03-02 *** Released version 0.6.12
1967 2005-03-02 *** Released version 0.6.12
1956
1968
1957 2005-03-02 Fernando Perez <fperez@colorado.edu>
1969 2005-03-02 Fernando Perez <fperez@colorado.edu>
1958
1970
1959 * IPython/iplib.py (handle_magic): log magic calls properly as
1971 * IPython/iplib.py (handle_magic): log magic calls properly as
1960 ipmagic() function calls.
1972 ipmagic() function calls.
1961
1973
1962 * IPython/Magic.py (magic_time): Improved %time to support
1974 * IPython/Magic.py (magic_time): Improved %time to support
1963 statements and provide wall-clock as well as CPU time.
1975 statements and provide wall-clock as well as CPU time.
1964
1976
1965 2005-02-27 Fernando Perez <fperez@colorado.edu>
1977 2005-02-27 Fernando Perez <fperez@colorado.edu>
1966
1978
1967 * IPython/hooks.py: New hooks module, to expose user-modifiable
1979 * IPython/hooks.py: New hooks module, to expose user-modifiable
1968 IPython functionality in a clean manner. For now only the editor
1980 IPython functionality in a clean manner. For now only the editor
1969 hook is actually written, and other thigns which I intend to turn
1981 hook is actually written, and other thigns which I intend to turn
1970 into proper hooks aren't yet there. The display and prefilter
1982 into proper hooks aren't yet there. The display and prefilter
1971 stuff, for example, should be hooks. But at least now the
1983 stuff, for example, should be hooks. But at least now the
1972 framework is in place, and the rest can be moved here with more
1984 framework is in place, and the rest can be moved here with more
1973 time later. IPython had had a .hooks variable for a long time for
1985 time later. IPython had had a .hooks variable for a long time for
1974 this purpose, but I'd never actually used it for anything.
1986 this purpose, but I'd never actually used it for anything.
1975
1987
1976 2005-02-26 Fernando Perez <fperez@colorado.edu>
1988 2005-02-26 Fernando Perez <fperez@colorado.edu>
1977
1989
1978 * IPython/ipmaker.py (make_IPython): make the default ipython
1990 * IPython/ipmaker.py (make_IPython): make the default ipython
1979 directory be called _ipython under win32, to follow more the
1991 directory be called _ipython under win32, to follow more the
1980 naming peculiarities of that platform (where buggy software like
1992 naming peculiarities of that platform (where buggy software like
1981 Visual Sourcesafe breaks with .named directories). Reported by
1993 Visual Sourcesafe breaks with .named directories). Reported by
1982 Ville Vainio.
1994 Ville Vainio.
1983
1995
1984 2005-02-23 Fernando Perez <fperez@colorado.edu>
1996 2005-02-23 Fernando Perez <fperez@colorado.edu>
1985
1997
1986 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1998 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1987 auto_aliases for win32 which were causing problems. Users can
1999 auto_aliases for win32 which were causing problems. Users can
1988 define the ones they personally like.
2000 define the ones they personally like.
1989
2001
1990 2005-02-21 Fernando Perez <fperez@colorado.edu>
2002 2005-02-21 Fernando Perez <fperez@colorado.edu>
1991
2003
1992 * IPython/Magic.py (magic_time): new magic to time execution of
2004 * IPython/Magic.py (magic_time): new magic to time execution of
1993 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2005 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1994
2006
1995 2005-02-19 Fernando Perez <fperez@colorado.edu>
2007 2005-02-19 Fernando Perez <fperez@colorado.edu>
1996
2008
1997 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2009 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1998 into keys (for prompts, for example).
2010 into keys (for prompts, for example).
1999
2011
2000 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2012 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2001 prompts in case users want them. This introduces a small behavior
2013 prompts in case users want them. This introduces a small behavior
2002 change: ipython does not automatically add a space to all prompts
2014 change: ipython does not automatically add a space to all prompts
2003 anymore. To get the old prompts with a space, users should add it
2015 anymore. To get the old prompts with a space, users should add it
2004 manually to their ipythonrc file, so for example prompt_in1 should
2016 manually to their ipythonrc file, so for example prompt_in1 should
2005 now read 'In [\#]: ' instead of 'In [\#]:'.
2017 now read 'In [\#]: ' instead of 'In [\#]:'.
2006 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2018 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2007 file) to control left-padding of secondary prompts.
2019 file) to control left-padding of secondary prompts.
2008
2020
2009 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2021 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2010 the profiler can't be imported. Fix for Debian, which removed
2022 the profiler can't be imported. Fix for Debian, which removed
2011 profile.py because of License issues. I applied a slightly
2023 profile.py because of License issues. I applied a slightly
2012 modified version of the original Debian patch at
2024 modified version of the original Debian patch at
2013 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2025 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2014
2026
2015 2005-02-17 Fernando Perez <fperez@colorado.edu>
2027 2005-02-17 Fernando Perez <fperez@colorado.edu>
2016
2028
2017 * IPython/genutils.py (native_line_ends): Fix bug which would
2029 * IPython/genutils.py (native_line_ends): Fix bug which would
2018 cause improper line-ends under win32 b/c I was not opening files
2030 cause improper line-ends under win32 b/c I was not opening files
2019 in binary mode. Bug report and fix thanks to Ville.
2031 in binary mode. Bug report and fix thanks to Ville.
2020
2032
2021 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2033 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2022 trying to catch spurious foo[1] autocalls. My fix actually broke
2034 trying to catch spurious foo[1] autocalls. My fix actually broke
2023 ',/' autoquote/call with explicit escape (bad regexp).
2035 ',/' autoquote/call with explicit escape (bad regexp).
2024
2036
2025 2005-02-15 *** Released version 0.6.11
2037 2005-02-15 *** Released version 0.6.11
2026
2038
2027 2005-02-14 Fernando Perez <fperez@colorado.edu>
2039 2005-02-14 Fernando Perez <fperez@colorado.edu>
2028
2040
2029 * IPython/background_jobs.py: New background job management
2041 * IPython/background_jobs.py: New background job management
2030 subsystem. This is implemented via a new set of classes, and
2042 subsystem. This is implemented via a new set of classes, and
2031 IPython now provides a builtin 'jobs' object for background job
2043 IPython now provides a builtin 'jobs' object for background job
2032 execution. A convenience %bg magic serves as a lightweight
2044 execution. A convenience %bg magic serves as a lightweight
2033 frontend for starting the more common type of calls. This was
2045 frontend for starting the more common type of calls. This was
2034 inspired by discussions with B. Granger and the BackgroundCommand
2046 inspired by discussions with B. Granger and the BackgroundCommand
2035 class described in the book Python Scripting for Computational
2047 class described in the book Python Scripting for Computational
2036 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2048 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2037 (although ultimately no code from this text was used, as IPython's
2049 (although ultimately no code from this text was used, as IPython's
2038 system is a separate implementation).
2050 system is a separate implementation).
2039
2051
2040 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2052 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2041 to control the completion of single/double underscore names
2053 to control the completion of single/double underscore names
2042 separately. As documented in the example ipytonrc file, the
2054 separately. As documented in the example ipytonrc file, the
2043 readline_omit__names variable can now be set to 2, to omit even
2055 readline_omit__names variable can now be set to 2, to omit even
2044 single underscore names. Thanks to a patch by Brian Wong
2056 single underscore names. Thanks to a patch by Brian Wong
2045 <BrianWong-AT-AirgoNetworks.Com>.
2057 <BrianWong-AT-AirgoNetworks.Com>.
2046 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2058 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2047 be autocalled as foo([1]) if foo were callable. A problem for
2059 be autocalled as foo([1]) if foo were callable. A problem for
2048 things which are both callable and implement __getitem__.
2060 things which are both callable and implement __getitem__.
2049 (init_readline): Fix autoindentation for win32. Thanks to a patch
2061 (init_readline): Fix autoindentation for win32. Thanks to a patch
2050 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2062 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2051
2063
2052 2005-02-12 Fernando Perez <fperez@colorado.edu>
2064 2005-02-12 Fernando Perez <fperez@colorado.edu>
2053
2065
2054 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2066 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2055 which I had written long ago to sort out user error messages which
2067 which I had written long ago to sort out user error messages which
2056 may occur during startup. This seemed like a good idea initially,
2068 may occur during startup. This seemed like a good idea initially,
2057 but it has proven a disaster in retrospect. I don't want to
2069 but it has proven a disaster in retrospect. I don't want to
2058 change much code for now, so my fix is to set the internal 'debug'
2070 change much code for now, so my fix is to set the internal 'debug'
2059 flag to true everywhere, whose only job was precisely to control
2071 flag to true everywhere, whose only job was precisely to control
2060 this subsystem. This closes issue 28 (as well as avoiding all
2072 this subsystem. This closes issue 28 (as well as avoiding all
2061 sorts of strange hangups which occur from time to time).
2073 sorts of strange hangups which occur from time to time).
2062
2074
2063 2005-02-07 Fernando Perez <fperez@colorado.edu>
2075 2005-02-07 Fernando Perez <fperez@colorado.edu>
2064
2076
2065 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2077 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2066 previous call produced a syntax error.
2078 previous call produced a syntax error.
2067
2079
2068 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2080 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2069 classes without constructor.
2081 classes without constructor.
2070
2082
2071 2005-02-06 Fernando Perez <fperez@colorado.edu>
2083 2005-02-06 Fernando Perez <fperez@colorado.edu>
2072
2084
2073 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2085 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2074 completions with the results of each matcher, so we return results
2086 completions with the results of each matcher, so we return results
2075 to the user from all namespaces. This breaks with ipython
2087 to the user from all namespaces. This breaks with ipython
2076 tradition, but I think it's a nicer behavior. Now you get all
2088 tradition, but I think it's a nicer behavior. Now you get all
2077 possible completions listed, from all possible namespaces (python,
2089 possible completions listed, from all possible namespaces (python,
2078 filesystem, magics...) After a request by John Hunter
2090 filesystem, magics...) After a request by John Hunter
2079 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2091 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2080
2092
2081 2005-02-05 Fernando Perez <fperez@colorado.edu>
2093 2005-02-05 Fernando Perez <fperez@colorado.edu>
2082
2094
2083 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2095 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2084 the call had quote characters in it (the quotes were stripped).
2096 the call had quote characters in it (the quotes were stripped).
2085
2097
2086 2005-01-31 Fernando Perez <fperez@colorado.edu>
2098 2005-01-31 Fernando Perez <fperez@colorado.edu>
2087
2099
2088 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2100 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2089 Itpl.itpl() to make the code more robust against psyco
2101 Itpl.itpl() to make the code more robust against psyco
2090 optimizations.
2102 optimizations.
2091
2103
2092 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2104 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2093 of causing an exception. Quicker, cleaner.
2105 of causing an exception. Quicker, cleaner.
2094
2106
2095 2005-01-28 Fernando Perez <fperez@colorado.edu>
2107 2005-01-28 Fernando Perez <fperez@colorado.edu>
2096
2108
2097 * scripts/ipython_win_post_install.py (install): hardcode
2109 * scripts/ipython_win_post_install.py (install): hardcode
2098 sys.prefix+'python.exe' as the executable path. It turns out that
2110 sys.prefix+'python.exe' as the executable path. It turns out that
2099 during the post-installation run, sys.executable resolves to the
2111 during the post-installation run, sys.executable resolves to the
2100 name of the binary installer! I should report this as a distutils
2112 name of the binary installer! I should report this as a distutils
2101 bug, I think. I updated the .10 release with this tiny fix, to
2113 bug, I think. I updated the .10 release with this tiny fix, to
2102 avoid annoying the lists further.
2114 avoid annoying the lists further.
2103
2115
2104 2005-01-27 *** Released version 0.6.10
2116 2005-01-27 *** Released version 0.6.10
2105
2117
2106 2005-01-27 Fernando Perez <fperez@colorado.edu>
2118 2005-01-27 Fernando Perez <fperez@colorado.edu>
2107
2119
2108 * IPython/numutils.py (norm): Added 'inf' as optional name for
2120 * IPython/numutils.py (norm): Added 'inf' as optional name for
2109 L-infinity norm, included references to mathworld.com for vector
2121 L-infinity norm, included references to mathworld.com for vector
2110 norm definitions.
2122 norm definitions.
2111 (amin/amax): added amin/amax for array min/max. Similar to what
2123 (amin/amax): added amin/amax for array min/max. Similar to what
2112 pylab ships with after the recent reorganization of names.
2124 pylab ships with after the recent reorganization of names.
2113 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2125 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2114
2126
2115 * ipython.el: committed Alex's recent fixes and improvements.
2127 * ipython.el: committed Alex's recent fixes and improvements.
2116 Tested with python-mode from CVS, and it looks excellent. Since
2128 Tested with python-mode from CVS, and it looks excellent. Since
2117 python-mode hasn't released anything in a while, I'm temporarily
2129 python-mode hasn't released anything in a while, I'm temporarily
2118 putting a copy of today's CVS (v 4.70) of python-mode in:
2130 putting a copy of today's CVS (v 4.70) of python-mode in:
2119 http://ipython.scipy.org/tmp/python-mode.el
2131 http://ipython.scipy.org/tmp/python-mode.el
2120
2132
2121 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2133 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2122 sys.executable for the executable name, instead of assuming it's
2134 sys.executable for the executable name, instead of assuming it's
2123 called 'python.exe' (the post-installer would have produced broken
2135 called 'python.exe' (the post-installer would have produced broken
2124 setups on systems with a differently named python binary).
2136 setups on systems with a differently named python binary).
2125
2137
2126 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2138 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2127 references to os.linesep, to make the code more
2139 references to os.linesep, to make the code more
2128 platform-independent. This is also part of the win32 coloring
2140 platform-independent. This is also part of the win32 coloring
2129 fixes.
2141 fixes.
2130
2142
2131 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2143 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2132 lines, which actually cause coloring bugs because the length of
2144 lines, which actually cause coloring bugs because the length of
2133 the line is very difficult to correctly compute with embedded
2145 the line is very difficult to correctly compute with embedded
2134 escapes. This was the source of all the coloring problems under
2146 escapes. This was the source of all the coloring problems under
2135 Win32. I think that _finally_, Win32 users have a properly
2147 Win32. I think that _finally_, Win32 users have a properly
2136 working ipython in all respects. This would never have happened
2148 working ipython in all respects. This would never have happened
2137 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2149 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2138
2150
2139 2005-01-26 *** Released version 0.6.9
2151 2005-01-26 *** Released version 0.6.9
2140
2152
2141 2005-01-25 Fernando Perez <fperez@colorado.edu>
2153 2005-01-25 Fernando Perez <fperez@colorado.edu>
2142
2154
2143 * setup.py: finally, we have a true Windows installer, thanks to
2155 * setup.py: finally, we have a true Windows installer, thanks to
2144 the excellent work of Viktor Ransmayr
2156 the excellent work of Viktor Ransmayr
2145 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2157 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2146 Windows users. The setup routine is quite a bit cleaner thanks to
2158 Windows users. The setup routine is quite a bit cleaner thanks to
2147 this, and the post-install script uses the proper functions to
2159 this, and the post-install script uses the proper functions to
2148 allow a clean de-installation using the standard Windows Control
2160 allow a clean de-installation using the standard Windows Control
2149 Panel.
2161 Panel.
2150
2162
2151 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2163 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2152 environment variable under all OSes (including win32) if
2164 environment variable under all OSes (including win32) if
2153 available. This will give consistency to win32 users who have set
2165 available. This will give consistency to win32 users who have set
2154 this variable for any reason. If os.environ['HOME'] fails, the
2166 this variable for any reason. If os.environ['HOME'] fails, the
2155 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2167 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2156
2168
2157 2005-01-24 Fernando Perez <fperez@colorado.edu>
2169 2005-01-24 Fernando Perez <fperez@colorado.edu>
2158
2170
2159 * IPython/numutils.py (empty_like): add empty_like(), similar to
2171 * IPython/numutils.py (empty_like): add empty_like(), similar to
2160 zeros_like() but taking advantage of the new empty() Numeric routine.
2172 zeros_like() but taking advantage of the new empty() Numeric routine.
2161
2173
2162 2005-01-23 *** Released version 0.6.8
2174 2005-01-23 *** Released version 0.6.8
2163
2175
2164 2005-01-22 Fernando Perez <fperez@colorado.edu>
2176 2005-01-22 Fernando Perez <fperez@colorado.edu>
2165
2177
2166 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2178 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2167 automatic show() calls. After discussing things with JDH, it
2179 automatic show() calls. After discussing things with JDH, it
2168 turns out there are too many corner cases where this can go wrong.
2180 turns out there are too many corner cases where this can go wrong.
2169 It's best not to try to be 'too smart', and simply have ipython
2181 It's best not to try to be 'too smart', and simply have ipython
2170 reproduce as much as possible the default behavior of a normal
2182 reproduce as much as possible the default behavior of a normal
2171 python shell.
2183 python shell.
2172
2184
2173 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2185 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2174 line-splitting regexp and _prefilter() to avoid calling getattr()
2186 line-splitting regexp and _prefilter() to avoid calling getattr()
2175 on assignments. This closes
2187 on assignments. This closes
2176 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2188 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2177 readline uses getattr(), so a simple <TAB> keypress is still
2189 readline uses getattr(), so a simple <TAB> keypress is still
2178 enough to trigger getattr() calls on an object.
2190 enough to trigger getattr() calls on an object.
2179
2191
2180 2005-01-21 Fernando Perez <fperez@colorado.edu>
2192 2005-01-21 Fernando Perez <fperez@colorado.edu>
2181
2193
2182 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2194 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2183 docstring under pylab so it doesn't mask the original.
2195 docstring under pylab so it doesn't mask the original.
2184
2196
2185 2005-01-21 *** Released version 0.6.7
2197 2005-01-21 *** Released version 0.6.7
2186
2198
2187 2005-01-21 Fernando Perez <fperez@colorado.edu>
2199 2005-01-21 Fernando Perez <fperez@colorado.edu>
2188
2200
2189 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2201 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2190 signal handling for win32 users in multithreaded mode.
2202 signal handling for win32 users in multithreaded mode.
2191
2203
2192 2005-01-17 Fernando Perez <fperez@colorado.edu>
2204 2005-01-17 Fernando Perez <fperez@colorado.edu>
2193
2205
2194 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2206 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2195 instances with no __init__. After a crash report by Norbert Nemec
2207 instances with no __init__. After a crash report by Norbert Nemec
2196 <Norbert-AT-nemec-online.de>.
2208 <Norbert-AT-nemec-online.de>.
2197
2209
2198 2005-01-14 Fernando Perez <fperez@colorado.edu>
2210 2005-01-14 Fernando Perez <fperez@colorado.edu>
2199
2211
2200 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2212 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2201 names for verbose exceptions, when multiple dotted names and the
2213 names for verbose exceptions, when multiple dotted names and the
2202 'parent' object were present on the same line.
2214 'parent' object were present on the same line.
2203
2215
2204 2005-01-11 Fernando Perez <fperez@colorado.edu>
2216 2005-01-11 Fernando Perez <fperez@colorado.edu>
2205
2217
2206 * IPython/genutils.py (flag_calls): new utility to trap and flag
2218 * IPython/genutils.py (flag_calls): new utility to trap and flag
2207 calls in functions. I need it to clean up matplotlib support.
2219 calls in functions. I need it to clean up matplotlib support.
2208 Also removed some deprecated code in genutils.
2220 Also removed some deprecated code in genutils.
2209
2221
2210 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2222 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2211 that matplotlib scripts called with %run, which don't call show()
2223 that matplotlib scripts called with %run, which don't call show()
2212 themselves, still have their plotting windows open.
2224 themselves, still have their plotting windows open.
2213
2225
2214 2005-01-05 Fernando Perez <fperez@colorado.edu>
2226 2005-01-05 Fernando Perez <fperez@colorado.edu>
2215
2227
2216 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2228 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2217 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2229 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2218
2230
2219 2004-12-19 Fernando Perez <fperez@colorado.edu>
2231 2004-12-19 Fernando Perez <fperez@colorado.edu>
2220
2232
2221 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2233 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2222 parent_runcode, which was an eyesore. The same result can be
2234 parent_runcode, which was an eyesore. The same result can be
2223 obtained with Python's regular superclass mechanisms.
2235 obtained with Python's regular superclass mechanisms.
2224
2236
2225 2004-12-17 Fernando Perez <fperez@colorado.edu>
2237 2004-12-17 Fernando Perez <fperez@colorado.edu>
2226
2238
2227 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2239 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2228 reported by Prabhu.
2240 reported by Prabhu.
2229 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2241 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2230 sys.stderr) instead of explicitly calling sys.stderr. This helps
2242 sys.stderr) instead of explicitly calling sys.stderr. This helps
2231 maintain our I/O abstractions clean, for future GUI embeddings.
2243 maintain our I/O abstractions clean, for future GUI embeddings.
2232
2244
2233 * IPython/genutils.py (info): added new utility for sys.stderr
2245 * IPython/genutils.py (info): added new utility for sys.stderr
2234 unified info message handling (thin wrapper around warn()).
2246 unified info message handling (thin wrapper around warn()).
2235
2247
2236 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2248 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2237 composite (dotted) names on verbose exceptions.
2249 composite (dotted) names on verbose exceptions.
2238 (VerboseTB.nullrepr): harden against another kind of errors which
2250 (VerboseTB.nullrepr): harden against another kind of errors which
2239 Python's inspect module can trigger, and which were crashing
2251 Python's inspect module can trigger, and which were crashing
2240 IPython. Thanks to a report by Marco Lombardi
2252 IPython. Thanks to a report by Marco Lombardi
2241 <mlombard-AT-ma010192.hq.eso.org>.
2253 <mlombard-AT-ma010192.hq.eso.org>.
2242
2254
2243 2004-12-13 *** Released version 0.6.6
2255 2004-12-13 *** Released version 0.6.6
2244
2256
2245 2004-12-12 Fernando Perez <fperez@colorado.edu>
2257 2004-12-12 Fernando Perez <fperez@colorado.edu>
2246
2258
2247 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2259 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2248 generated by pygtk upon initialization if it was built without
2260 generated by pygtk upon initialization if it was built without
2249 threads (for matplotlib users). After a crash reported by
2261 threads (for matplotlib users). After a crash reported by
2250 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2262 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2251
2263
2252 * IPython/ipmaker.py (make_IPython): fix small bug in the
2264 * IPython/ipmaker.py (make_IPython): fix small bug in the
2253 import_some parameter for multiple imports.
2265 import_some parameter for multiple imports.
2254
2266
2255 * IPython/iplib.py (ipmagic): simplified the interface of
2267 * IPython/iplib.py (ipmagic): simplified the interface of
2256 ipmagic() to take a single string argument, just as it would be
2268 ipmagic() to take a single string argument, just as it would be
2257 typed at the IPython cmd line.
2269 typed at the IPython cmd line.
2258 (ipalias): Added new ipalias() with an interface identical to
2270 (ipalias): Added new ipalias() with an interface identical to
2259 ipmagic(). This completes exposing a pure python interface to the
2271 ipmagic(). This completes exposing a pure python interface to the
2260 alias and magic system, which can be used in loops or more complex
2272 alias and magic system, which can be used in loops or more complex
2261 code where IPython's automatic line mangling is not active.
2273 code where IPython's automatic line mangling is not active.
2262
2274
2263 * IPython/genutils.py (timing): changed interface of timing to
2275 * IPython/genutils.py (timing): changed interface of timing to
2264 simply run code once, which is the most common case. timings()
2276 simply run code once, which is the most common case. timings()
2265 remains unchanged, for the cases where you want multiple runs.
2277 remains unchanged, for the cases where you want multiple runs.
2266
2278
2267 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2279 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2268 bug where Python2.2 crashes with exec'ing code which does not end
2280 bug where Python2.2 crashes with exec'ing code which does not end
2269 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2281 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2270 before.
2282 before.
2271
2283
2272 2004-12-10 Fernando Perez <fperez@colorado.edu>
2284 2004-12-10 Fernando Perez <fperez@colorado.edu>
2273
2285
2274 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2286 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2275 -t to -T, to accomodate the new -t flag in %run (the %run and
2287 -t to -T, to accomodate the new -t flag in %run (the %run and
2276 %prun options are kind of intermixed, and it's not easy to change
2288 %prun options are kind of intermixed, and it's not easy to change
2277 this with the limitations of python's getopt).
2289 this with the limitations of python's getopt).
2278
2290
2279 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2291 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2280 the execution of scripts. It's not as fine-tuned as timeit.py,
2292 the execution of scripts. It's not as fine-tuned as timeit.py,
2281 but it works from inside ipython (and under 2.2, which lacks
2293 but it works from inside ipython (and under 2.2, which lacks
2282 timeit.py). Optionally a number of runs > 1 can be given for
2294 timeit.py). Optionally a number of runs > 1 can be given for
2283 timing very short-running code.
2295 timing very short-running code.
2284
2296
2285 * IPython/genutils.py (uniq_stable): new routine which returns a
2297 * IPython/genutils.py (uniq_stable): new routine which returns a
2286 list of unique elements in any iterable, but in stable order of
2298 list of unique elements in any iterable, but in stable order of
2287 appearance. I needed this for the ultraTB fixes, and it's a handy
2299 appearance. I needed this for the ultraTB fixes, and it's a handy
2288 utility.
2300 utility.
2289
2301
2290 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2302 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2291 dotted names in Verbose exceptions. This had been broken since
2303 dotted names in Verbose exceptions. This had been broken since
2292 the very start, now x.y will properly be printed in a Verbose
2304 the very start, now x.y will properly be printed in a Verbose
2293 traceback, instead of x being shown and y appearing always as an
2305 traceback, instead of x being shown and y appearing always as an
2294 'undefined global'. Getting this to work was a bit tricky,
2306 'undefined global'. Getting this to work was a bit tricky,
2295 because by default python tokenizers are stateless. Saved by
2307 because by default python tokenizers are stateless. Saved by
2296 python's ability to easily add a bit of state to an arbitrary
2308 python's ability to easily add a bit of state to an arbitrary
2297 function (without needing to build a full-blown callable object).
2309 function (without needing to build a full-blown callable object).
2298
2310
2299 Also big cleanup of this code, which had horrendous runtime
2311 Also big cleanup of this code, which had horrendous runtime
2300 lookups of zillions of attributes for colorization. Moved all
2312 lookups of zillions of attributes for colorization. Moved all
2301 this code into a few templates, which make it cleaner and quicker.
2313 this code into a few templates, which make it cleaner and quicker.
2302
2314
2303 Printout quality was also improved for Verbose exceptions: one
2315 Printout quality was also improved for Verbose exceptions: one
2304 variable per line, and memory addresses are printed (this can be
2316 variable per line, and memory addresses are printed (this can be
2305 quite handy in nasty debugging situations, which is what Verbose
2317 quite handy in nasty debugging situations, which is what Verbose
2306 is for).
2318 is for).
2307
2319
2308 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2320 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2309 the command line as scripts to be loaded by embedded instances.
2321 the command line as scripts to be loaded by embedded instances.
2310 Doing so has the potential for an infinite recursion if there are
2322 Doing so has the potential for an infinite recursion if there are
2311 exceptions thrown in the process. This fixes a strange crash
2323 exceptions thrown in the process. This fixes a strange crash
2312 reported by Philippe MULLER <muller-AT-irit.fr>.
2324 reported by Philippe MULLER <muller-AT-irit.fr>.
2313
2325
2314 2004-12-09 Fernando Perez <fperez@colorado.edu>
2326 2004-12-09 Fernando Perez <fperez@colorado.edu>
2315
2327
2316 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2328 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2317 to reflect new names in matplotlib, which now expose the
2329 to reflect new names in matplotlib, which now expose the
2318 matlab-compatible interface via a pylab module instead of the
2330 matlab-compatible interface via a pylab module instead of the
2319 'matlab' name. The new code is backwards compatible, so users of
2331 'matlab' name. The new code is backwards compatible, so users of
2320 all matplotlib versions are OK. Patch by J. Hunter.
2332 all matplotlib versions are OK. Patch by J. Hunter.
2321
2333
2322 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2334 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2323 of __init__ docstrings for instances (class docstrings are already
2335 of __init__ docstrings for instances (class docstrings are already
2324 automatically printed). Instances with customized docstrings
2336 automatically printed). Instances with customized docstrings
2325 (indep. of the class) are also recognized and all 3 separate
2337 (indep. of the class) are also recognized and all 3 separate
2326 docstrings are printed (instance, class, constructor). After some
2338 docstrings are printed (instance, class, constructor). After some
2327 comments/suggestions by J. Hunter.
2339 comments/suggestions by J. Hunter.
2328
2340
2329 2004-12-05 Fernando Perez <fperez@colorado.edu>
2341 2004-12-05 Fernando Perez <fperez@colorado.edu>
2330
2342
2331 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2343 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2332 warnings when tab-completion fails and triggers an exception.
2344 warnings when tab-completion fails and triggers an exception.
2333
2345
2334 2004-12-03 Fernando Perez <fperez@colorado.edu>
2346 2004-12-03 Fernando Perez <fperez@colorado.edu>
2335
2347
2336 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2348 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2337 be triggered when using 'run -p'. An incorrect option flag was
2349 be triggered when using 'run -p'. An incorrect option flag was
2338 being set ('d' instead of 'D').
2350 being set ('d' instead of 'D').
2339 (manpage): fix missing escaped \- sign.
2351 (manpage): fix missing escaped \- sign.
2340
2352
2341 2004-11-30 *** Released version 0.6.5
2353 2004-11-30 *** Released version 0.6.5
2342
2354
2343 2004-11-30 Fernando Perez <fperez@colorado.edu>
2355 2004-11-30 Fernando Perez <fperez@colorado.edu>
2344
2356
2345 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2357 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2346 setting with -d option.
2358 setting with -d option.
2347
2359
2348 * setup.py (docfiles): Fix problem where the doc glob I was using
2360 * setup.py (docfiles): Fix problem where the doc glob I was using
2349 was COMPLETELY BROKEN. It was giving the right files by pure
2361 was COMPLETELY BROKEN. It was giving the right files by pure
2350 accident, but failed once I tried to include ipython.el. Note:
2362 accident, but failed once I tried to include ipython.el. Note:
2351 glob() does NOT allow you to do exclusion on multiple endings!
2363 glob() does NOT allow you to do exclusion on multiple endings!
2352
2364
2353 2004-11-29 Fernando Perez <fperez@colorado.edu>
2365 2004-11-29 Fernando Perez <fperez@colorado.edu>
2354
2366
2355 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2367 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2356 the manpage as the source. Better formatting & consistency.
2368 the manpage as the source. Better formatting & consistency.
2357
2369
2358 * IPython/Magic.py (magic_run): Added new -d option, to run
2370 * IPython/Magic.py (magic_run): Added new -d option, to run
2359 scripts under the control of the python pdb debugger. Note that
2371 scripts under the control of the python pdb debugger. Note that
2360 this required changing the %prun option -d to -D, to avoid a clash
2372 this required changing the %prun option -d to -D, to avoid a clash
2361 (since %run must pass options to %prun, and getopt is too dumb to
2373 (since %run must pass options to %prun, and getopt is too dumb to
2362 handle options with string values with embedded spaces). Thanks
2374 handle options with string values with embedded spaces). Thanks
2363 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2375 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2364 (magic_who_ls): added type matching to %who and %whos, so that one
2376 (magic_who_ls): added type matching to %who and %whos, so that one
2365 can filter their output to only include variables of certain
2377 can filter their output to only include variables of certain
2366 types. Another suggestion by Matthew.
2378 types. Another suggestion by Matthew.
2367 (magic_whos): Added memory summaries in kb and Mb for arrays.
2379 (magic_whos): Added memory summaries in kb and Mb for arrays.
2368 (magic_who): Improve formatting (break lines every 9 vars).
2380 (magic_who): Improve formatting (break lines every 9 vars).
2369
2381
2370 2004-11-28 Fernando Perez <fperez@colorado.edu>
2382 2004-11-28 Fernando Perez <fperez@colorado.edu>
2371
2383
2372 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2384 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2373 cache when empty lines were present.
2385 cache when empty lines were present.
2374
2386
2375 2004-11-24 Fernando Perez <fperez@colorado.edu>
2387 2004-11-24 Fernando Perez <fperez@colorado.edu>
2376
2388
2377 * IPython/usage.py (__doc__): document the re-activated threading
2389 * IPython/usage.py (__doc__): document the re-activated threading
2378 options for WX and GTK.
2390 options for WX and GTK.
2379
2391
2380 2004-11-23 Fernando Perez <fperez@colorado.edu>
2392 2004-11-23 Fernando Perez <fperez@colorado.edu>
2381
2393
2382 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2394 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2383 the -wthread and -gthread options, along with a new -tk one to try
2395 the -wthread and -gthread options, along with a new -tk one to try
2384 and coordinate Tk threading with wx/gtk. The tk support is very
2396 and coordinate Tk threading with wx/gtk. The tk support is very
2385 platform dependent, since it seems to require Tcl and Tk to be
2397 platform dependent, since it seems to require Tcl and Tk to be
2386 built with threads (Fedora1/2 appears NOT to have it, but in
2398 built with threads (Fedora1/2 appears NOT to have it, but in
2387 Prabhu's Debian boxes it works OK). But even with some Tk
2399 Prabhu's Debian boxes it works OK). But even with some Tk
2388 limitations, this is a great improvement.
2400 limitations, this is a great improvement.
2389
2401
2390 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2402 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2391 info in user prompts. Patch by Prabhu.
2403 info in user prompts. Patch by Prabhu.
2392
2404
2393 2004-11-18 Fernando Perez <fperez@colorado.edu>
2405 2004-11-18 Fernando Perez <fperez@colorado.edu>
2394
2406
2395 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2407 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2396 EOFErrors and bail, to avoid infinite loops if a non-terminating
2408 EOFErrors and bail, to avoid infinite loops if a non-terminating
2397 file is fed into ipython. Patch submitted in issue 19 by user,
2409 file is fed into ipython. Patch submitted in issue 19 by user,
2398 many thanks.
2410 many thanks.
2399
2411
2400 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2412 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2401 autoquote/parens in continuation prompts, which can cause lots of
2413 autoquote/parens in continuation prompts, which can cause lots of
2402 problems. Closes roundup issue 20.
2414 problems. Closes roundup issue 20.
2403
2415
2404 2004-11-17 Fernando Perez <fperez@colorado.edu>
2416 2004-11-17 Fernando Perez <fperez@colorado.edu>
2405
2417
2406 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2418 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2407 reported as debian bug #280505. I'm not sure my local changelog
2419 reported as debian bug #280505. I'm not sure my local changelog
2408 entry has the proper debian format (Jack?).
2420 entry has the proper debian format (Jack?).
2409
2421
2410 2004-11-08 *** Released version 0.6.4
2422 2004-11-08 *** Released version 0.6.4
2411
2423
2412 2004-11-08 Fernando Perez <fperez@colorado.edu>
2424 2004-11-08 Fernando Perez <fperez@colorado.edu>
2413
2425
2414 * IPython/iplib.py (init_readline): Fix exit message for Windows
2426 * IPython/iplib.py (init_readline): Fix exit message for Windows
2415 when readline is active. Thanks to a report by Eric Jones
2427 when readline is active. Thanks to a report by Eric Jones
2416 <eric-AT-enthought.com>.
2428 <eric-AT-enthought.com>.
2417
2429
2418 2004-11-07 Fernando Perez <fperez@colorado.edu>
2430 2004-11-07 Fernando Perez <fperez@colorado.edu>
2419
2431
2420 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2432 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2421 sometimes seen by win2k/cygwin users.
2433 sometimes seen by win2k/cygwin users.
2422
2434
2423 2004-11-06 Fernando Perez <fperez@colorado.edu>
2435 2004-11-06 Fernando Perez <fperez@colorado.edu>
2424
2436
2425 * IPython/iplib.py (interact): Change the handling of %Exit from
2437 * IPython/iplib.py (interact): Change the handling of %Exit from
2426 trying to propagate a SystemExit to an internal ipython flag.
2438 trying to propagate a SystemExit to an internal ipython flag.
2427 This is less elegant than using Python's exception mechanism, but
2439 This is less elegant than using Python's exception mechanism, but
2428 I can't get that to work reliably with threads, so under -pylab
2440 I can't get that to work reliably with threads, so under -pylab
2429 %Exit was hanging IPython. Cross-thread exception handling is
2441 %Exit was hanging IPython. Cross-thread exception handling is
2430 really a bitch. Thaks to a bug report by Stephen Walton
2442 really a bitch. Thaks to a bug report by Stephen Walton
2431 <stephen.walton-AT-csun.edu>.
2443 <stephen.walton-AT-csun.edu>.
2432
2444
2433 2004-11-04 Fernando Perez <fperez@colorado.edu>
2445 2004-11-04 Fernando Perez <fperez@colorado.edu>
2434
2446
2435 * IPython/iplib.py (raw_input_original): store a pointer to the
2447 * IPython/iplib.py (raw_input_original): store a pointer to the
2436 true raw_input to harden against code which can modify it
2448 true raw_input to harden against code which can modify it
2437 (wx.py.PyShell does this and would otherwise crash ipython).
2449 (wx.py.PyShell does this and would otherwise crash ipython).
2438 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2450 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2439
2451
2440 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2452 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2441 Ctrl-C problem, which does not mess up the input line.
2453 Ctrl-C problem, which does not mess up the input line.
2442
2454
2443 2004-11-03 Fernando Perez <fperez@colorado.edu>
2455 2004-11-03 Fernando Perez <fperez@colorado.edu>
2444
2456
2445 * IPython/Release.py: Changed licensing to BSD, in all files.
2457 * IPython/Release.py: Changed licensing to BSD, in all files.
2446 (name): lowercase name for tarball/RPM release.
2458 (name): lowercase name for tarball/RPM release.
2447
2459
2448 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2460 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2449 use throughout ipython.
2461 use throughout ipython.
2450
2462
2451 * IPython/Magic.py (Magic._ofind): Switch to using the new
2463 * IPython/Magic.py (Magic._ofind): Switch to using the new
2452 OInspect.getdoc() function.
2464 OInspect.getdoc() function.
2453
2465
2454 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2466 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2455 of the line currently being canceled via Ctrl-C. It's extremely
2467 of the line currently being canceled via Ctrl-C. It's extremely
2456 ugly, but I don't know how to do it better (the problem is one of
2468 ugly, but I don't know how to do it better (the problem is one of
2457 handling cross-thread exceptions).
2469 handling cross-thread exceptions).
2458
2470
2459 2004-10-28 Fernando Perez <fperez@colorado.edu>
2471 2004-10-28 Fernando Perez <fperez@colorado.edu>
2460
2472
2461 * IPython/Shell.py (signal_handler): add signal handlers to trap
2473 * IPython/Shell.py (signal_handler): add signal handlers to trap
2462 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2474 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2463 report by Francesc Alted.
2475 report by Francesc Alted.
2464
2476
2465 2004-10-21 Fernando Perez <fperez@colorado.edu>
2477 2004-10-21 Fernando Perez <fperez@colorado.edu>
2466
2478
2467 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2479 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2468 to % for pysh syntax extensions.
2480 to % for pysh syntax extensions.
2469
2481
2470 2004-10-09 Fernando Perez <fperez@colorado.edu>
2482 2004-10-09 Fernando Perez <fperez@colorado.edu>
2471
2483
2472 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2484 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2473 arrays to print a more useful summary, without calling str(arr).
2485 arrays to print a more useful summary, without calling str(arr).
2474 This avoids the problem of extremely lengthy computations which
2486 This avoids the problem of extremely lengthy computations which
2475 occur if arr is large, and appear to the user as a system lockup
2487 occur if arr is large, and appear to the user as a system lockup
2476 with 100% cpu activity. After a suggestion by Kristian Sandberg
2488 with 100% cpu activity. After a suggestion by Kristian Sandberg
2477 <Kristian.Sandberg@colorado.edu>.
2489 <Kristian.Sandberg@colorado.edu>.
2478 (Magic.__init__): fix bug in global magic escapes not being
2490 (Magic.__init__): fix bug in global magic escapes not being
2479 correctly set.
2491 correctly set.
2480
2492
2481 2004-10-08 Fernando Perez <fperez@colorado.edu>
2493 2004-10-08 Fernando Perez <fperez@colorado.edu>
2482
2494
2483 * IPython/Magic.py (__license__): change to absolute imports of
2495 * IPython/Magic.py (__license__): change to absolute imports of
2484 ipython's own internal packages, to start adapting to the absolute
2496 ipython's own internal packages, to start adapting to the absolute
2485 import requirement of PEP-328.
2497 import requirement of PEP-328.
2486
2498
2487 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2499 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2488 files, and standardize author/license marks through the Release
2500 files, and standardize author/license marks through the Release
2489 module instead of having per/file stuff (except for files with
2501 module instead of having per/file stuff (except for files with
2490 particular licenses, like the MIT/PSF-licensed codes).
2502 particular licenses, like the MIT/PSF-licensed codes).
2491
2503
2492 * IPython/Debugger.py: remove dead code for python 2.1
2504 * IPython/Debugger.py: remove dead code for python 2.1
2493
2505
2494 2004-10-04 Fernando Perez <fperez@colorado.edu>
2506 2004-10-04 Fernando Perez <fperez@colorado.edu>
2495
2507
2496 * IPython/iplib.py (ipmagic): New function for accessing magics
2508 * IPython/iplib.py (ipmagic): New function for accessing magics
2497 via a normal python function call.
2509 via a normal python function call.
2498
2510
2499 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2511 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2500 from '@' to '%', to accomodate the new @decorator syntax of python
2512 from '@' to '%', to accomodate the new @decorator syntax of python
2501 2.4.
2513 2.4.
2502
2514
2503 2004-09-29 Fernando Perez <fperez@colorado.edu>
2515 2004-09-29 Fernando Perez <fperez@colorado.edu>
2504
2516
2505 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2517 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2506 matplotlib.use to prevent running scripts which try to switch
2518 matplotlib.use to prevent running scripts which try to switch
2507 interactive backends from within ipython. This will just crash
2519 interactive backends from within ipython. This will just crash
2508 the python interpreter, so we can't allow it (but a detailed error
2520 the python interpreter, so we can't allow it (but a detailed error
2509 is given to the user).
2521 is given to the user).
2510
2522
2511 2004-09-28 Fernando Perez <fperez@colorado.edu>
2523 2004-09-28 Fernando Perez <fperez@colorado.edu>
2512
2524
2513 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2525 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2514 matplotlib-related fixes so that using @run with non-matplotlib
2526 matplotlib-related fixes so that using @run with non-matplotlib
2515 scripts doesn't pop up spurious plot windows. This requires
2527 scripts doesn't pop up spurious plot windows. This requires
2516 matplotlib >= 0.63, where I had to make some changes as well.
2528 matplotlib >= 0.63, where I had to make some changes as well.
2517
2529
2518 * IPython/ipmaker.py (make_IPython): update version requirement to
2530 * IPython/ipmaker.py (make_IPython): update version requirement to
2519 python 2.2.
2531 python 2.2.
2520
2532
2521 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2533 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2522 banner arg for embedded customization.
2534 banner arg for embedded customization.
2523
2535
2524 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2536 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2525 explicit uses of __IP as the IPython's instance name. Now things
2537 explicit uses of __IP as the IPython's instance name. Now things
2526 are properly handled via the shell.name value. The actual code
2538 are properly handled via the shell.name value. The actual code
2527 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2539 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2528 is much better than before. I'll clean things completely when the
2540 is much better than before. I'll clean things completely when the
2529 magic stuff gets a real overhaul.
2541 magic stuff gets a real overhaul.
2530
2542
2531 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2543 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2532 minor changes to debian dir.
2544 minor changes to debian dir.
2533
2545
2534 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2546 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2535 pointer to the shell itself in the interactive namespace even when
2547 pointer to the shell itself in the interactive namespace even when
2536 a user-supplied dict is provided. This is needed for embedding
2548 a user-supplied dict is provided. This is needed for embedding
2537 purposes (found by tests with Michel Sanner).
2549 purposes (found by tests with Michel Sanner).
2538
2550
2539 2004-09-27 Fernando Perez <fperez@colorado.edu>
2551 2004-09-27 Fernando Perez <fperez@colorado.edu>
2540
2552
2541 * IPython/UserConfig/ipythonrc: remove []{} from
2553 * IPython/UserConfig/ipythonrc: remove []{} from
2542 readline_remove_delims, so that things like [modname.<TAB> do
2554 readline_remove_delims, so that things like [modname.<TAB> do
2543 proper completion. This disables [].TAB, but that's a less common
2555 proper completion. This disables [].TAB, but that's a less common
2544 case than module names in list comprehensions, for example.
2556 case than module names in list comprehensions, for example.
2545 Thanks to a report by Andrea Riciputi.
2557 Thanks to a report by Andrea Riciputi.
2546
2558
2547 2004-09-09 Fernando Perez <fperez@colorado.edu>
2559 2004-09-09 Fernando Perez <fperez@colorado.edu>
2548
2560
2549 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2561 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2550 blocking problems in win32 and osx. Fix by John.
2562 blocking problems in win32 and osx. Fix by John.
2551
2563
2552 2004-09-08 Fernando Perez <fperez@colorado.edu>
2564 2004-09-08 Fernando Perez <fperez@colorado.edu>
2553
2565
2554 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2566 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2555 for Win32 and OSX. Fix by John Hunter.
2567 for Win32 and OSX. Fix by John Hunter.
2556
2568
2557 2004-08-30 *** Released version 0.6.3
2569 2004-08-30 *** Released version 0.6.3
2558
2570
2559 2004-08-30 Fernando Perez <fperez@colorado.edu>
2571 2004-08-30 Fernando Perez <fperez@colorado.edu>
2560
2572
2561 * setup.py (isfile): Add manpages to list of dependent files to be
2573 * setup.py (isfile): Add manpages to list of dependent files to be
2562 updated.
2574 updated.
2563
2575
2564 2004-08-27 Fernando Perez <fperez@colorado.edu>
2576 2004-08-27 Fernando Perez <fperez@colorado.edu>
2565
2577
2566 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2578 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2567 for now. They don't really work with standalone WX/GTK code
2579 for now. They don't really work with standalone WX/GTK code
2568 (though matplotlib IS working fine with both of those backends).
2580 (though matplotlib IS working fine with both of those backends).
2569 This will neeed much more testing. I disabled most things with
2581 This will neeed much more testing. I disabled most things with
2570 comments, so turning it back on later should be pretty easy.
2582 comments, so turning it back on later should be pretty easy.
2571
2583
2572 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2584 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2573 autocalling of expressions like r'foo', by modifying the line
2585 autocalling of expressions like r'foo', by modifying the line
2574 split regexp. Closes
2586 split regexp. Closes
2575 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2587 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2576 Riley <ipythonbugs-AT-sabi.net>.
2588 Riley <ipythonbugs-AT-sabi.net>.
2577 (InteractiveShell.mainloop): honor --nobanner with banner
2589 (InteractiveShell.mainloop): honor --nobanner with banner
2578 extensions.
2590 extensions.
2579
2591
2580 * IPython/Shell.py: Significant refactoring of all classes, so
2592 * IPython/Shell.py: Significant refactoring of all classes, so
2581 that we can really support ALL matplotlib backends and threading
2593 that we can really support ALL matplotlib backends and threading
2582 models (John spotted a bug with Tk which required this). Now we
2594 models (John spotted a bug with Tk which required this). Now we
2583 should support single-threaded, WX-threads and GTK-threads, both
2595 should support single-threaded, WX-threads and GTK-threads, both
2584 for generic code and for matplotlib.
2596 for generic code and for matplotlib.
2585
2597
2586 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2598 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2587 -pylab, to simplify things for users. Will also remove the pylab
2599 -pylab, to simplify things for users. Will also remove the pylab
2588 profile, since now all of matplotlib configuration is directly
2600 profile, since now all of matplotlib configuration is directly
2589 handled here. This also reduces startup time.
2601 handled here. This also reduces startup time.
2590
2602
2591 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2603 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2592 shell wasn't being correctly called. Also in IPShellWX.
2604 shell wasn't being correctly called. Also in IPShellWX.
2593
2605
2594 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2606 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2595 fine-tune banner.
2607 fine-tune banner.
2596
2608
2597 * IPython/numutils.py (spike): Deprecate these spike functions,
2609 * IPython/numutils.py (spike): Deprecate these spike functions,
2598 delete (long deprecated) gnuplot_exec handler.
2610 delete (long deprecated) gnuplot_exec handler.
2599
2611
2600 2004-08-26 Fernando Perez <fperez@colorado.edu>
2612 2004-08-26 Fernando Perez <fperez@colorado.edu>
2601
2613
2602 * ipython.1: Update for threading options, plus some others which
2614 * ipython.1: Update for threading options, plus some others which
2603 were missing.
2615 were missing.
2604
2616
2605 * IPython/ipmaker.py (__call__): Added -wthread option for
2617 * IPython/ipmaker.py (__call__): Added -wthread option for
2606 wxpython thread handling. Make sure threading options are only
2618 wxpython thread handling. Make sure threading options are only
2607 valid at the command line.
2619 valid at the command line.
2608
2620
2609 * scripts/ipython: moved shell selection into a factory function
2621 * scripts/ipython: moved shell selection into a factory function
2610 in Shell.py, to keep the starter script to a minimum.
2622 in Shell.py, to keep the starter script to a minimum.
2611
2623
2612 2004-08-25 Fernando Perez <fperez@colorado.edu>
2624 2004-08-25 Fernando Perez <fperez@colorado.edu>
2613
2625
2614 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2626 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2615 John. Along with some recent changes he made to matplotlib, the
2627 John. Along with some recent changes he made to matplotlib, the
2616 next versions of both systems should work very well together.
2628 next versions of both systems should work very well together.
2617
2629
2618 2004-08-24 Fernando Perez <fperez@colorado.edu>
2630 2004-08-24 Fernando Perez <fperez@colorado.edu>
2619
2631
2620 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2632 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2621 tried to switch the profiling to using hotshot, but I'm getting
2633 tried to switch the profiling to using hotshot, but I'm getting
2622 strange errors from prof.runctx() there. I may be misreading the
2634 strange errors from prof.runctx() there. I may be misreading the
2623 docs, but it looks weird. For now the profiling code will
2635 docs, but it looks weird. For now the profiling code will
2624 continue to use the standard profiler.
2636 continue to use the standard profiler.
2625
2637
2626 2004-08-23 Fernando Perez <fperez@colorado.edu>
2638 2004-08-23 Fernando Perez <fperez@colorado.edu>
2627
2639
2628 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2640 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2629 threaded shell, by John Hunter. It's not quite ready yet, but
2641 threaded shell, by John Hunter. It's not quite ready yet, but
2630 close.
2642 close.
2631
2643
2632 2004-08-22 Fernando Perez <fperez@colorado.edu>
2644 2004-08-22 Fernando Perez <fperez@colorado.edu>
2633
2645
2634 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2646 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2635 in Magic and ultraTB.
2647 in Magic and ultraTB.
2636
2648
2637 * ipython.1: document threading options in manpage.
2649 * ipython.1: document threading options in manpage.
2638
2650
2639 * scripts/ipython: Changed name of -thread option to -gthread,
2651 * scripts/ipython: Changed name of -thread option to -gthread,
2640 since this is GTK specific. I want to leave the door open for a
2652 since this is GTK specific. I want to leave the door open for a
2641 -wthread option for WX, which will most likely be necessary. This
2653 -wthread option for WX, which will most likely be necessary. This
2642 change affects usage and ipmaker as well.
2654 change affects usage and ipmaker as well.
2643
2655
2644 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2656 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2645 handle the matplotlib shell issues. Code by John Hunter
2657 handle the matplotlib shell issues. Code by John Hunter
2646 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2658 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2647 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2659 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2648 broken (and disabled for end users) for now, but it puts the
2660 broken (and disabled for end users) for now, but it puts the
2649 infrastructure in place.
2661 infrastructure in place.
2650
2662
2651 2004-08-21 Fernando Perez <fperez@colorado.edu>
2663 2004-08-21 Fernando Perez <fperez@colorado.edu>
2652
2664
2653 * ipythonrc-pylab: Add matplotlib support.
2665 * ipythonrc-pylab: Add matplotlib support.
2654
2666
2655 * matplotlib_config.py: new files for matplotlib support, part of
2667 * matplotlib_config.py: new files for matplotlib support, part of
2656 the pylab profile.
2668 the pylab profile.
2657
2669
2658 * IPython/usage.py (__doc__): documented the threading options.
2670 * IPython/usage.py (__doc__): documented the threading options.
2659
2671
2660 2004-08-20 Fernando Perez <fperez@colorado.edu>
2672 2004-08-20 Fernando Perez <fperez@colorado.edu>
2661
2673
2662 * ipython: Modified the main calling routine to handle the -thread
2674 * ipython: Modified the main calling routine to handle the -thread
2663 and -mpthread options. This needs to be done as a top-level hack,
2675 and -mpthread options. This needs to be done as a top-level hack,
2664 because it determines which class to instantiate for IPython
2676 because it determines which class to instantiate for IPython
2665 itself.
2677 itself.
2666
2678
2667 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2679 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2668 classes to support multithreaded GTK operation without blocking,
2680 classes to support multithreaded GTK operation without blocking,
2669 and matplotlib with all backends. This is a lot of still very
2681 and matplotlib with all backends. This is a lot of still very
2670 experimental code, and threads are tricky. So it may still have a
2682 experimental code, and threads are tricky. So it may still have a
2671 few rough edges... This code owes a lot to
2683 few rough edges... This code owes a lot to
2672 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2684 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2673 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2685 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2674 to John Hunter for all the matplotlib work.
2686 to John Hunter for all the matplotlib work.
2675
2687
2676 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2688 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2677 options for gtk thread and matplotlib support.
2689 options for gtk thread and matplotlib support.
2678
2690
2679 2004-08-16 Fernando Perez <fperez@colorado.edu>
2691 2004-08-16 Fernando Perez <fperez@colorado.edu>
2680
2692
2681 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2693 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2682 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2694 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2683 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2695 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2684
2696
2685 2004-08-11 Fernando Perez <fperez@colorado.edu>
2697 2004-08-11 Fernando Perez <fperez@colorado.edu>
2686
2698
2687 * setup.py (isfile): Fix build so documentation gets updated for
2699 * setup.py (isfile): Fix build so documentation gets updated for
2688 rpms (it was only done for .tgz builds).
2700 rpms (it was only done for .tgz builds).
2689
2701
2690 2004-08-10 Fernando Perez <fperez@colorado.edu>
2702 2004-08-10 Fernando Perez <fperez@colorado.edu>
2691
2703
2692 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2704 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2693
2705
2694 * iplib.py : Silence syntax error exceptions in tab-completion.
2706 * iplib.py : Silence syntax error exceptions in tab-completion.
2695
2707
2696 2004-08-05 Fernando Perez <fperez@colorado.edu>
2708 2004-08-05 Fernando Perez <fperez@colorado.edu>
2697
2709
2698 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2710 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2699 'color off' mark for continuation prompts. This was causing long
2711 'color off' mark for continuation prompts. This was causing long
2700 continuation lines to mis-wrap.
2712 continuation lines to mis-wrap.
2701
2713
2702 2004-08-01 Fernando Perez <fperez@colorado.edu>
2714 2004-08-01 Fernando Perez <fperez@colorado.edu>
2703
2715
2704 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2716 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2705 for building ipython to be a parameter. All this is necessary
2717 for building ipython to be a parameter. All this is necessary
2706 right now to have a multithreaded version, but this insane
2718 right now to have a multithreaded version, but this insane
2707 non-design will be cleaned up soon. For now, it's a hack that
2719 non-design will be cleaned up soon. For now, it's a hack that
2708 works.
2720 works.
2709
2721
2710 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2722 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2711 args in various places. No bugs so far, but it's a dangerous
2723 args in various places. No bugs so far, but it's a dangerous
2712 practice.
2724 practice.
2713
2725
2714 2004-07-31 Fernando Perez <fperez@colorado.edu>
2726 2004-07-31 Fernando Perez <fperez@colorado.edu>
2715
2727
2716 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2728 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2717 fix completion of files with dots in their names under most
2729 fix completion of files with dots in their names under most
2718 profiles (pysh was OK because the completion order is different).
2730 profiles (pysh was OK because the completion order is different).
2719
2731
2720 2004-07-27 Fernando Perez <fperez@colorado.edu>
2732 2004-07-27 Fernando Perez <fperez@colorado.edu>
2721
2733
2722 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2734 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2723 keywords manually, b/c the one in keyword.py was removed in python
2735 keywords manually, b/c the one in keyword.py was removed in python
2724 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2736 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2725 This is NOT a bug under python 2.3 and earlier.
2737 This is NOT a bug under python 2.3 and earlier.
2726
2738
2727 2004-07-26 Fernando Perez <fperez@colorado.edu>
2739 2004-07-26 Fernando Perez <fperez@colorado.edu>
2728
2740
2729 * IPython/ultraTB.py (VerboseTB.text): Add another
2741 * IPython/ultraTB.py (VerboseTB.text): Add another
2730 linecache.checkcache() call to try to prevent inspect.py from
2742 linecache.checkcache() call to try to prevent inspect.py from
2731 crashing under python 2.3. I think this fixes
2743 crashing under python 2.3. I think this fixes
2732 http://www.scipy.net/roundup/ipython/issue17.
2744 http://www.scipy.net/roundup/ipython/issue17.
2733
2745
2734 2004-07-26 *** Released version 0.6.2
2746 2004-07-26 *** Released version 0.6.2
2735
2747
2736 2004-07-26 Fernando Perez <fperez@colorado.edu>
2748 2004-07-26 Fernando Perez <fperez@colorado.edu>
2737
2749
2738 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2750 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2739 fail for any number.
2751 fail for any number.
2740 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2752 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2741 empty bookmarks.
2753 empty bookmarks.
2742
2754
2743 2004-07-26 *** Released version 0.6.1
2755 2004-07-26 *** Released version 0.6.1
2744
2756
2745 2004-07-26 Fernando Perez <fperez@colorado.edu>
2757 2004-07-26 Fernando Perez <fperez@colorado.edu>
2746
2758
2747 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2759 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2748
2760
2749 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2761 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2750 escaping '()[]{}' in filenames.
2762 escaping '()[]{}' in filenames.
2751
2763
2752 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2764 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2753 Python 2.2 users who lack a proper shlex.split.
2765 Python 2.2 users who lack a proper shlex.split.
2754
2766
2755 2004-07-19 Fernando Perez <fperez@colorado.edu>
2767 2004-07-19 Fernando Perez <fperez@colorado.edu>
2756
2768
2757 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2769 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2758 for reading readline's init file. I follow the normal chain:
2770 for reading readline's init file. I follow the normal chain:
2759 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2771 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2760 report by Mike Heeter. This closes
2772 report by Mike Heeter. This closes
2761 http://www.scipy.net/roundup/ipython/issue16.
2773 http://www.scipy.net/roundup/ipython/issue16.
2762
2774
2763 2004-07-18 Fernando Perez <fperez@colorado.edu>
2775 2004-07-18 Fernando Perez <fperez@colorado.edu>
2764
2776
2765 * IPython/iplib.py (__init__): Add better handling of '\' under
2777 * IPython/iplib.py (__init__): Add better handling of '\' under
2766 Win32 for filenames. After a patch by Ville.
2778 Win32 for filenames. After a patch by Ville.
2767
2779
2768 2004-07-17 Fernando Perez <fperez@colorado.edu>
2780 2004-07-17 Fernando Perez <fperez@colorado.edu>
2769
2781
2770 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2782 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2771 autocalling would be triggered for 'foo is bar' if foo is
2783 autocalling would be triggered for 'foo is bar' if foo is
2772 callable. I also cleaned up the autocall detection code to use a
2784 callable. I also cleaned up the autocall detection code to use a
2773 regexp, which is faster. Bug reported by Alexander Schmolck.
2785 regexp, which is faster. Bug reported by Alexander Schmolck.
2774
2786
2775 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2787 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2776 '?' in them would confuse the help system. Reported by Alex
2788 '?' in them would confuse the help system. Reported by Alex
2777 Schmolck.
2789 Schmolck.
2778
2790
2779 2004-07-16 Fernando Perez <fperez@colorado.edu>
2791 2004-07-16 Fernando Perez <fperez@colorado.edu>
2780
2792
2781 * IPython/GnuplotInteractive.py (__all__): added plot2.
2793 * IPython/GnuplotInteractive.py (__all__): added plot2.
2782
2794
2783 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2795 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2784 plotting dictionaries, lists or tuples of 1d arrays.
2796 plotting dictionaries, lists or tuples of 1d arrays.
2785
2797
2786 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2798 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2787 optimizations.
2799 optimizations.
2788
2800
2789 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2801 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2790 the information which was there from Janko's original IPP code:
2802 the information which was there from Janko's original IPP code:
2791
2803
2792 03.05.99 20:53 porto.ifm.uni-kiel.de
2804 03.05.99 20:53 porto.ifm.uni-kiel.de
2793 --Started changelog.
2805 --Started changelog.
2794 --make clear do what it say it does
2806 --make clear do what it say it does
2795 --added pretty output of lines from inputcache
2807 --added pretty output of lines from inputcache
2796 --Made Logger a mixin class, simplifies handling of switches
2808 --Made Logger a mixin class, simplifies handling of switches
2797 --Added own completer class. .string<TAB> expands to last history
2809 --Added own completer class. .string<TAB> expands to last history
2798 line which starts with string. The new expansion is also present
2810 line which starts with string. The new expansion is also present
2799 with Ctrl-r from the readline library. But this shows, who this
2811 with Ctrl-r from the readline library. But this shows, who this
2800 can be done for other cases.
2812 can be done for other cases.
2801 --Added convention that all shell functions should accept a
2813 --Added convention that all shell functions should accept a
2802 parameter_string This opens the door for different behaviour for
2814 parameter_string This opens the door for different behaviour for
2803 each function. @cd is a good example of this.
2815 each function. @cd is a good example of this.
2804
2816
2805 04.05.99 12:12 porto.ifm.uni-kiel.de
2817 04.05.99 12:12 porto.ifm.uni-kiel.de
2806 --added logfile rotation
2818 --added logfile rotation
2807 --added new mainloop method which freezes first the namespace
2819 --added new mainloop method which freezes first the namespace
2808
2820
2809 07.05.99 21:24 porto.ifm.uni-kiel.de
2821 07.05.99 21:24 porto.ifm.uni-kiel.de
2810 --added the docreader classes. Now there is a help system.
2822 --added the docreader classes. Now there is a help system.
2811 -This is only a first try. Currently it's not easy to put new
2823 -This is only a first try. Currently it's not easy to put new
2812 stuff in the indices. But this is the way to go. Info would be
2824 stuff in the indices. But this is the way to go. Info would be
2813 better, but HTML is every where and not everybody has an info
2825 better, but HTML is every where and not everybody has an info
2814 system installed and it's not so easy to change html-docs to info.
2826 system installed and it's not so easy to change html-docs to info.
2815 --added global logfile option
2827 --added global logfile option
2816 --there is now a hook for object inspection method pinfo needs to
2828 --there is now a hook for object inspection method pinfo needs to
2817 be provided for this. Can be reached by two '??'.
2829 be provided for this. Can be reached by two '??'.
2818
2830
2819 08.05.99 20:51 porto.ifm.uni-kiel.de
2831 08.05.99 20:51 porto.ifm.uni-kiel.de
2820 --added a README
2832 --added a README
2821 --bug in rc file. Something has changed so functions in the rc
2833 --bug in rc file. Something has changed so functions in the rc
2822 file need to reference the shell and not self. Not clear if it's a
2834 file need to reference the shell and not self. Not clear if it's a
2823 bug or feature.
2835 bug or feature.
2824 --changed rc file for new behavior
2836 --changed rc file for new behavior
2825
2837
2826 2004-07-15 Fernando Perez <fperez@colorado.edu>
2838 2004-07-15 Fernando Perez <fperez@colorado.edu>
2827
2839
2828 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2840 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2829 cache was falling out of sync in bizarre manners when multi-line
2841 cache was falling out of sync in bizarre manners when multi-line
2830 input was present. Minor optimizations and cleanup.
2842 input was present. Minor optimizations and cleanup.
2831
2843
2832 (Logger): Remove old Changelog info for cleanup. This is the
2844 (Logger): Remove old Changelog info for cleanup. This is the
2833 information which was there from Janko's original code:
2845 information which was there from Janko's original code:
2834
2846
2835 Changes to Logger: - made the default log filename a parameter
2847 Changes to Logger: - made the default log filename a parameter
2836
2848
2837 - put a check for lines beginning with !@? in log(). Needed
2849 - put a check for lines beginning with !@? in log(). Needed
2838 (even if the handlers properly log their lines) for mid-session
2850 (even if the handlers properly log their lines) for mid-session
2839 logging activation to work properly. Without this, lines logged
2851 logging activation to work properly. Without this, lines logged
2840 in mid session, which get read from the cache, would end up
2852 in mid session, which get read from the cache, would end up
2841 'bare' (with !@? in the open) in the log. Now they are caught
2853 'bare' (with !@? in the open) in the log. Now they are caught
2842 and prepended with a #.
2854 and prepended with a #.
2843
2855
2844 * IPython/iplib.py (InteractiveShell.init_readline): added check
2856 * IPython/iplib.py (InteractiveShell.init_readline): added check
2845 in case MagicCompleter fails to be defined, so we don't crash.
2857 in case MagicCompleter fails to be defined, so we don't crash.
2846
2858
2847 2004-07-13 Fernando Perez <fperez@colorado.edu>
2859 2004-07-13 Fernando Perez <fperez@colorado.edu>
2848
2860
2849 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2861 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2850 of EPS if the requested filename ends in '.eps'.
2862 of EPS if the requested filename ends in '.eps'.
2851
2863
2852 2004-07-04 Fernando Perez <fperez@colorado.edu>
2864 2004-07-04 Fernando Perez <fperez@colorado.edu>
2853
2865
2854 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2866 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2855 escaping of quotes when calling the shell.
2867 escaping of quotes when calling the shell.
2856
2868
2857 2004-07-02 Fernando Perez <fperez@colorado.edu>
2869 2004-07-02 Fernando Perez <fperez@colorado.edu>
2858
2870
2859 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2871 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2860 gettext not working because we were clobbering '_'. Fixes
2872 gettext not working because we were clobbering '_'. Fixes
2861 http://www.scipy.net/roundup/ipython/issue6.
2873 http://www.scipy.net/roundup/ipython/issue6.
2862
2874
2863 2004-07-01 Fernando Perez <fperez@colorado.edu>
2875 2004-07-01 Fernando Perez <fperez@colorado.edu>
2864
2876
2865 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2877 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2866 into @cd. Patch by Ville.
2878 into @cd. Patch by Ville.
2867
2879
2868 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2880 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2869 new function to store things after ipmaker runs. Patch by Ville.
2881 new function to store things after ipmaker runs. Patch by Ville.
2870 Eventually this will go away once ipmaker is removed and the class
2882 Eventually this will go away once ipmaker is removed and the class
2871 gets cleaned up, but for now it's ok. Key functionality here is
2883 gets cleaned up, but for now it's ok. Key functionality here is
2872 the addition of the persistent storage mechanism, a dict for
2884 the addition of the persistent storage mechanism, a dict for
2873 keeping data across sessions (for now just bookmarks, but more can
2885 keeping data across sessions (for now just bookmarks, but more can
2874 be implemented later).
2886 be implemented later).
2875
2887
2876 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2888 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2877 persistent across sections. Patch by Ville, I modified it
2889 persistent across sections. Patch by Ville, I modified it
2878 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2890 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2879 added a '-l' option to list all bookmarks.
2891 added a '-l' option to list all bookmarks.
2880
2892
2881 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2893 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2882 center for cleanup. Registered with atexit.register(). I moved
2894 center for cleanup. Registered with atexit.register(). I moved
2883 here the old exit_cleanup(). After a patch by Ville.
2895 here the old exit_cleanup(). After a patch by Ville.
2884
2896
2885 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2897 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2886 characters in the hacked shlex_split for python 2.2.
2898 characters in the hacked shlex_split for python 2.2.
2887
2899
2888 * IPython/iplib.py (file_matches): more fixes to filenames with
2900 * IPython/iplib.py (file_matches): more fixes to filenames with
2889 whitespace in them. It's not perfect, but limitations in python's
2901 whitespace in them. It's not perfect, but limitations in python's
2890 readline make it impossible to go further.
2902 readline make it impossible to go further.
2891
2903
2892 2004-06-29 Fernando Perez <fperez@colorado.edu>
2904 2004-06-29 Fernando Perez <fperez@colorado.edu>
2893
2905
2894 * IPython/iplib.py (file_matches): escape whitespace correctly in
2906 * IPython/iplib.py (file_matches): escape whitespace correctly in
2895 filename completions. Bug reported by Ville.
2907 filename completions. Bug reported by Ville.
2896
2908
2897 2004-06-28 Fernando Perez <fperez@colorado.edu>
2909 2004-06-28 Fernando Perez <fperez@colorado.edu>
2898
2910
2899 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2911 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2900 the history file will be called 'history-PROFNAME' (or just
2912 the history file will be called 'history-PROFNAME' (or just
2901 'history' if no profile is loaded). I was getting annoyed at
2913 'history' if no profile is loaded). I was getting annoyed at
2902 getting my Numerical work history clobbered by pysh sessions.
2914 getting my Numerical work history clobbered by pysh sessions.
2903
2915
2904 * IPython/iplib.py (InteractiveShell.__init__): Internal
2916 * IPython/iplib.py (InteractiveShell.__init__): Internal
2905 getoutputerror() function so that we can honor the system_verbose
2917 getoutputerror() function so that we can honor the system_verbose
2906 flag for _all_ system calls. I also added escaping of #
2918 flag for _all_ system calls. I also added escaping of #
2907 characters here to avoid confusing Itpl.
2919 characters here to avoid confusing Itpl.
2908
2920
2909 * IPython/Magic.py (shlex_split): removed call to shell in
2921 * IPython/Magic.py (shlex_split): removed call to shell in
2910 parse_options and replaced it with shlex.split(). The annoying
2922 parse_options and replaced it with shlex.split(). The annoying
2911 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2923 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2912 to backport it from 2.3, with several frail hacks (the shlex
2924 to backport it from 2.3, with several frail hacks (the shlex
2913 module is rather limited in 2.2). Thanks to a suggestion by Ville
2925 module is rather limited in 2.2). Thanks to a suggestion by Ville
2914 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2926 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2915 problem.
2927 problem.
2916
2928
2917 (Magic.magic_system_verbose): new toggle to print the actual
2929 (Magic.magic_system_verbose): new toggle to print the actual
2918 system calls made by ipython. Mainly for debugging purposes.
2930 system calls made by ipython. Mainly for debugging purposes.
2919
2931
2920 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2932 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2921 doesn't support persistence. Reported (and fix suggested) by
2933 doesn't support persistence. Reported (and fix suggested) by
2922 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2934 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2923
2935
2924 2004-06-26 Fernando Perez <fperez@colorado.edu>
2936 2004-06-26 Fernando Perez <fperez@colorado.edu>
2925
2937
2926 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2938 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2927 continue prompts.
2939 continue prompts.
2928
2940
2929 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2941 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2930 function (basically a big docstring) and a few more things here to
2942 function (basically a big docstring) and a few more things here to
2931 speedup startup. pysh.py is now very lightweight. We want because
2943 speedup startup. pysh.py is now very lightweight. We want because
2932 it gets execfile'd, while InterpreterExec gets imported, so
2944 it gets execfile'd, while InterpreterExec gets imported, so
2933 byte-compilation saves time.
2945 byte-compilation saves time.
2934
2946
2935 2004-06-25 Fernando Perez <fperez@colorado.edu>
2947 2004-06-25 Fernando Perez <fperez@colorado.edu>
2936
2948
2937 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2949 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2938 -NUM', which was recently broken.
2950 -NUM', which was recently broken.
2939
2951
2940 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2952 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2941 in multi-line input (but not !!, which doesn't make sense there).
2953 in multi-line input (but not !!, which doesn't make sense there).
2942
2954
2943 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2955 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2944 It's just too useful, and people can turn it off in the less
2956 It's just too useful, and people can turn it off in the less
2945 common cases where it's a problem.
2957 common cases where it's a problem.
2946
2958
2947 2004-06-24 Fernando Perez <fperez@colorado.edu>
2959 2004-06-24 Fernando Perez <fperez@colorado.edu>
2948
2960
2949 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2961 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2950 special syntaxes (like alias calling) is now allied in multi-line
2962 special syntaxes (like alias calling) is now allied in multi-line
2951 input. This is still _very_ experimental, but it's necessary for
2963 input. This is still _very_ experimental, but it's necessary for
2952 efficient shell usage combining python looping syntax with system
2964 efficient shell usage combining python looping syntax with system
2953 calls. For now it's restricted to aliases, I don't think it
2965 calls. For now it's restricted to aliases, I don't think it
2954 really even makes sense to have this for magics.
2966 really even makes sense to have this for magics.
2955
2967
2956 2004-06-23 Fernando Perez <fperez@colorado.edu>
2968 2004-06-23 Fernando Perez <fperez@colorado.edu>
2957
2969
2958 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2970 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2959 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2971 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2960
2972
2961 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2973 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2962 extensions under Windows (after code sent by Gary Bishop). The
2974 extensions under Windows (after code sent by Gary Bishop). The
2963 extensions considered 'executable' are stored in IPython's rc
2975 extensions considered 'executable' are stored in IPython's rc
2964 structure as win_exec_ext.
2976 structure as win_exec_ext.
2965
2977
2966 * IPython/genutils.py (shell): new function, like system() but
2978 * IPython/genutils.py (shell): new function, like system() but
2967 without return value. Very useful for interactive shell work.
2979 without return value. Very useful for interactive shell work.
2968
2980
2969 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2981 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2970 delete aliases.
2982 delete aliases.
2971
2983
2972 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2984 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2973 sure that the alias table doesn't contain python keywords.
2985 sure that the alias table doesn't contain python keywords.
2974
2986
2975 2004-06-21 Fernando Perez <fperez@colorado.edu>
2987 2004-06-21 Fernando Perez <fperez@colorado.edu>
2976
2988
2977 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2989 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2978 non-existent items are found in $PATH. Reported by Thorsten.
2990 non-existent items are found in $PATH. Reported by Thorsten.
2979
2991
2980 2004-06-20 Fernando Perez <fperez@colorado.edu>
2992 2004-06-20 Fernando Perez <fperez@colorado.edu>
2981
2993
2982 * IPython/iplib.py (complete): modified the completer so that the
2994 * IPython/iplib.py (complete): modified the completer so that the
2983 order of priorities can be easily changed at runtime.
2995 order of priorities can be easily changed at runtime.
2984
2996
2985 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2997 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2986 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2998 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2987
2999
2988 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3000 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2989 expand Python variables prepended with $ in all system calls. The
3001 expand Python variables prepended with $ in all system calls. The
2990 same was done to InteractiveShell.handle_shell_escape. Now all
3002 same was done to InteractiveShell.handle_shell_escape. Now all
2991 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3003 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2992 expansion of python variables and expressions according to the
3004 expansion of python variables and expressions according to the
2993 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3005 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2994
3006
2995 Though PEP-215 has been rejected, a similar (but simpler) one
3007 Though PEP-215 has been rejected, a similar (but simpler) one
2996 seems like it will go into Python 2.4, PEP-292 -
3008 seems like it will go into Python 2.4, PEP-292 -
2997 http://www.python.org/peps/pep-0292.html.
3009 http://www.python.org/peps/pep-0292.html.
2998
3010
2999 I'll keep the full syntax of PEP-215, since IPython has since the
3011 I'll keep the full syntax of PEP-215, since IPython has since the
3000 start used Ka-Ping Yee's reference implementation discussed there
3012 start used Ka-Ping Yee's reference implementation discussed there
3001 (Itpl), and I actually like the powerful semantics it offers.
3013 (Itpl), and I actually like the powerful semantics it offers.
3002
3014
3003 In order to access normal shell variables, the $ has to be escaped
3015 In order to access normal shell variables, the $ has to be escaped
3004 via an extra $. For example:
3016 via an extra $. For example:
3005
3017
3006 In [7]: PATH='a python variable'
3018 In [7]: PATH='a python variable'
3007
3019
3008 In [8]: !echo $PATH
3020 In [8]: !echo $PATH
3009 a python variable
3021 a python variable
3010
3022
3011 In [9]: !echo $$PATH
3023 In [9]: !echo $$PATH
3012 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3024 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3013
3025
3014 (Magic.parse_options): escape $ so the shell doesn't evaluate
3026 (Magic.parse_options): escape $ so the shell doesn't evaluate
3015 things prematurely.
3027 things prematurely.
3016
3028
3017 * IPython/iplib.py (InteractiveShell.call_alias): added the
3029 * IPython/iplib.py (InteractiveShell.call_alias): added the
3018 ability for aliases to expand python variables via $.
3030 ability for aliases to expand python variables via $.
3019
3031
3020 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3032 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3021 system, now there's a @rehash/@rehashx pair of magics. These work
3033 system, now there's a @rehash/@rehashx pair of magics. These work
3022 like the csh rehash command, and can be invoked at any time. They
3034 like the csh rehash command, and can be invoked at any time. They
3023 build a table of aliases to everything in the user's $PATH
3035 build a table of aliases to everything in the user's $PATH
3024 (@rehash uses everything, @rehashx is slower but only adds
3036 (@rehash uses everything, @rehashx is slower but only adds
3025 executable files). With this, the pysh.py-based shell profile can
3037 executable files). With this, the pysh.py-based shell profile can
3026 now simply call rehash upon startup, and full access to all
3038 now simply call rehash upon startup, and full access to all
3027 programs in the user's path is obtained.
3039 programs in the user's path is obtained.
3028
3040
3029 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3041 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3030 functionality is now fully in place. I removed the old dynamic
3042 functionality is now fully in place. I removed the old dynamic
3031 code generation based approach, in favor of a much lighter one
3043 code generation based approach, in favor of a much lighter one
3032 based on a simple dict. The advantage is that this allows me to
3044 based on a simple dict. The advantage is that this allows me to
3033 now have thousands of aliases with negligible cost (unthinkable
3045 now have thousands of aliases with negligible cost (unthinkable
3034 with the old system).
3046 with the old system).
3035
3047
3036 2004-06-19 Fernando Perez <fperez@colorado.edu>
3048 2004-06-19 Fernando Perez <fperez@colorado.edu>
3037
3049
3038 * IPython/iplib.py (__init__): extended MagicCompleter class to
3050 * IPython/iplib.py (__init__): extended MagicCompleter class to
3039 also complete (last in priority) on user aliases.
3051 also complete (last in priority) on user aliases.
3040
3052
3041 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3053 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3042 call to eval.
3054 call to eval.
3043 (ItplNS.__init__): Added a new class which functions like Itpl,
3055 (ItplNS.__init__): Added a new class which functions like Itpl,
3044 but allows configuring the namespace for the evaluation to occur
3056 but allows configuring the namespace for the evaluation to occur
3045 in.
3057 in.
3046
3058
3047 2004-06-18 Fernando Perez <fperez@colorado.edu>
3059 2004-06-18 Fernando Perez <fperez@colorado.edu>
3048
3060
3049 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3061 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3050 better message when 'exit' or 'quit' are typed (a common newbie
3062 better message when 'exit' or 'quit' are typed (a common newbie
3051 confusion).
3063 confusion).
3052
3064
3053 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3065 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3054 check for Windows users.
3066 check for Windows users.
3055
3067
3056 * IPython/iplib.py (InteractiveShell.user_setup): removed
3068 * IPython/iplib.py (InteractiveShell.user_setup): removed
3057 disabling of colors for Windows. I'll test at runtime and issue a
3069 disabling of colors for Windows. I'll test at runtime and issue a
3058 warning if Gary's readline isn't found, as to nudge users to
3070 warning if Gary's readline isn't found, as to nudge users to
3059 download it.
3071 download it.
3060
3072
3061 2004-06-16 Fernando Perez <fperez@colorado.edu>
3073 2004-06-16 Fernando Perez <fperez@colorado.edu>
3062
3074
3063 * IPython/genutils.py (Stream.__init__): changed to print errors
3075 * IPython/genutils.py (Stream.__init__): changed to print errors
3064 to sys.stderr. I had a circular dependency here. Now it's
3076 to sys.stderr. I had a circular dependency here. Now it's
3065 possible to run ipython as IDLE's shell (consider this pre-alpha,
3077 possible to run ipython as IDLE's shell (consider this pre-alpha,
3066 since true stdout things end up in the starting terminal instead
3078 since true stdout things end up in the starting terminal instead
3067 of IDLE's out).
3079 of IDLE's out).
3068
3080
3069 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3081 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3070 users who haven't # updated their prompt_in2 definitions. Remove
3082 users who haven't # updated their prompt_in2 definitions. Remove
3071 eventually.
3083 eventually.
3072 (multiple_replace): added credit to original ASPN recipe.
3084 (multiple_replace): added credit to original ASPN recipe.
3073
3085
3074 2004-06-15 Fernando Perez <fperez@colorado.edu>
3086 2004-06-15 Fernando Perez <fperez@colorado.edu>
3075
3087
3076 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3088 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3077 list of auto-defined aliases.
3089 list of auto-defined aliases.
3078
3090
3079 2004-06-13 Fernando Perez <fperez@colorado.edu>
3091 2004-06-13 Fernando Perez <fperez@colorado.edu>
3080
3092
3081 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3093 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3082 install was really requested (so setup.py can be used for other
3094 install was really requested (so setup.py can be used for other
3083 things under Windows).
3095 things under Windows).
3084
3096
3085 2004-06-10 Fernando Perez <fperez@colorado.edu>
3097 2004-06-10 Fernando Perez <fperez@colorado.edu>
3086
3098
3087 * IPython/Logger.py (Logger.create_log): Manually remove any old
3099 * IPython/Logger.py (Logger.create_log): Manually remove any old
3088 backup, since os.remove may fail under Windows. Fixes bug
3100 backup, since os.remove may fail under Windows. Fixes bug
3089 reported by Thorsten.
3101 reported by Thorsten.
3090
3102
3091 2004-06-09 Fernando Perez <fperez@colorado.edu>
3103 2004-06-09 Fernando Perez <fperez@colorado.edu>
3092
3104
3093 * examples/example-embed.py: fixed all references to %n (replaced
3105 * examples/example-embed.py: fixed all references to %n (replaced
3094 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3106 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3095 for all examples and the manual as well.
3107 for all examples and the manual as well.
3096
3108
3097 2004-06-08 Fernando Perez <fperez@colorado.edu>
3109 2004-06-08 Fernando Perez <fperez@colorado.edu>
3098
3110
3099 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3111 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3100 alignment and color management. All 3 prompt subsystems now
3112 alignment and color management. All 3 prompt subsystems now
3101 inherit from BasePrompt.
3113 inherit from BasePrompt.
3102
3114
3103 * tools/release: updates for windows installer build and tag rpms
3115 * tools/release: updates for windows installer build and tag rpms
3104 with python version (since paths are fixed).
3116 with python version (since paths are fixed).
3105
3117
3106 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3118 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3107 which will become eventually obsolete. Also fixed the default
3119 which will become eventually obsolete. Also fixed the default
3108 prompt_in2 to use \D, so at least new users start with the correct
3120 prompt_in2 to use \D, so at least new users start with the correct
3109 defaults.
3121 defaults.
3110 WARNING: Users with existing ipythonrc files will need to apply
3122 WARNING: Users with existing ipythonrc files will need to apply
3111 this fix manually!
3123 this fix manually!
3112
3124
3113 * setup.py: make windows installer (.exe). This is finally the
3125 * setup.py: make windows installer (.exe). This is finally the
3114 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3126 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3115 which I hadn't included because it required Python 2.3 (or recent
3127 which I hadn't included because it required Python 2.3 (or recent
3116 distutils).
3128 distutils).
3117
3129
3118 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3130 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3119 usage of new '\D' escape.
3131 usage of new '\D' escape.
3120
3132
3121 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3133 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3122 lacks os.getuid())
3134 lacks os.getuid())
3123 (CachedOutput.set_colors): Added the ability to turn coloring
3135 (CachedOutput.set_colors): Added the ability to turn coloring
3124 on/off with @colors even for manually defined prompt colors. It
3136 on/off with @colors even for manually defined prompt colors. It
3125 uses a nasty global, but it works safely and via the generic color
3137 uses a nasty global, but it works safely and via the generic color
3126 handling mechanism.
3138 handling mechanism.
3127 (Prompt2.__init__): Introduced new escape '\D' for continuation
3139 (Prompt2.__init__): Introduced new escape '\D' for continuation
3128 prompts. It represents the counter ('\#') as dots.
3140 prompts. It represents the counter ('\#') as dots.
3129 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3141 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3130 need to update their ipythonrc files and replace '%n' with '\D' in
3142 need to update their ipythonrc files and replace '%n' with '\D' in
3131 their prompt_in2 settings everywhere. Sorry, but there's
3143 their prompt_in2 settings everywhere. Sorry, but there's
3132 otherwise no clean way to get all prompts to properly align. The
3144 otherwise no clean way to get all prompts to properly align. The
3133 ipythonrc shipped with IPython has been updated.
3145 ipythonrc shipped with IPython has been updated.
3134
3146
3135 2004-06-07 Fernando Perez <fperez@colorado.edu>
3147 2004-06-07 Fernando Perez <fperez@colorado.edu>
3136
3148
3137 * setup.py (isfile): Pass local_icons option to latex2html, so the
3149 * setup.py (isfile): Pass local_icons option to latex2html, so the
3138 resulting HTML file is self-contained. Thanks to
3150 resulting HTML file is self-contained. Thanks to
3139 dryice-AT-liu.com.cn for the tip.
3151 dryice-AT-liu.com.cn for the tip.
3140
3152
3141 * pysh.py: I created a new profile 'shell', which implements a
3153 * pysh.py: I created a new profile 'shell', which implements a
3142 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3154 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3143 system shell, nor will it become one anytime soon. It's mainly
3155 system shell, nor will it become one anytime soon. It's mainly
3144 meant to illustrate the use of the new flexible bash-like prompts.
3156 meant to illustrate the use of the new flexible bash-like prompts.
3145 I guess it could be used by hardy souls for true shell management,
3157 I guess it could be used by hardy souls for true shell management,
3146 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3158 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3147 profile. This uses the InterpreterExec extension provided by
3159 profile. This uses the InterpreterExec extension provided by
3148 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3160 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3149
3161
3150 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3162 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3151 auto-align itself with the length of the previous input prompt
3163 auto-align itself with the length of the previous input prompt
3152 (taking into account the invisible color escapes).
3164 (taking into account the invisible color escapes).
3153 (CachedOutput.__init__): Large restructuring of this class. Now
3165 (CachedOutput.__init__): Large restructuring of this class. Now
3154 all three prompts (primary1, primary2, output) are proper objects,
3166 all three prompts (primary1, primary2, output) are proper objects,
3155 managed by the 'parent' CachedOutput class. The code is still a
3167 managed by the 'parent' CachedOutput class. The code is still a
3156 bit hackish (all prompts share state via a pointer to the cache),
3168 bit hackish (all prompts share state via a pointer to the cache),
3157 but it's overall far cleaner than before.
3169 but it's overall far cleaner than before.
3158
3170
3159 * IPython/genutils.py (getoutputerror): modified to add verbose,
3171 * IPython/genutils.py (getoutputerror): modified to add verbose,
3160 debug and header options. This makes the interface of all getout*
3172 debug and header options. This makes the interface of all getout*
3161 functions uniform.
3173 functions uniform.
3162 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3174 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3163
3175
3164 * IPython/Magic.py (Magic.default_option): added a function to
3176 * IPython/Magic.py (Magic.default_option): added a function to
3165 allow registering default options for any magic command. This
3177 allow registering default options for any magic command. This
3166 makes it easy to have profiles which customize the magics globally
3178 makes it easy to have profiles which customize the magics globally
3167 for a certain use. The values set through this function are
3179 for a certain use. The values set through this function are
3168 picked up by the parse_options() method, which all magics should
3180 picked up by the parse_options() method, which all magics should
3169 use to parse their options.
3181 use to parse their options.
3170
3182
3171 * IPython/genutils.py (warn): modified the warnings framework to
3183 * IPython/genutils.py (warn): modified the warnings framework to
3172 use the Term I/O class. I'm trying to slowly unify all of
3184 use the Term I/O class. I'm trying to slowly unify all of
3173 IPython's I/O operations to pass through Term.
3185 IPython's I/O operations to pass through Term.
3174
3186
3175 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3187 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3176 the secondary prompt to correctly match the length of the primary
3188 the secondary prompt to correctly match the length of the primary
3177 one for any prompt. Now multi-line code will properly line up
3189 one for any prompt. Now multi-line code will properly line up
3178 even for path dependent prompts, such as the new ones available
3190 even for path dependent prompts, such as the new ones available
3179 via the prompt_specials.
3191 via the prompt_specials.
3180
3192
3181 2004-06-06 Fernando Perez <fperez@colorado.edu>
3193 2004-06-06 Fernando Perez <fperez@colorado.edu>
3182
3194
3183 * IPython/Prompts.py (prompt_specials): Added the ability to have
3195 * IPython/Prompts.py (prompt_specials): Added the ability to have
3184 bash-like special sequences in the prompts, which get
3196 bash-like special sequences in the prompts, which get
3185 automatically expanded. Things like hostname, current working
3197 automatically expanded. Things like hostname, current working
3186 directory and username are implemented already, but it's easy to
3198 directory and username are implemented already, but it's easy to
3187 add more in the future. Thanks to a patch by W.J. van der Laan
3199 add more in the future. Thanks to a patch by W.J. van der Laan
3188 <gnufnork-AT-hetdigitalegat.nl>
3200 <gnufnork-AT-hetdigitalegat.nl>
3189 (prompt_specials): Added color support for prompt strings, so
3201 (prompt_specials): Added color support for prompt strings, so
3190 users can define arbitrary color setups for their prompts.
3202 users can define arbitrary color setups for their prompts.
3191
3203
3192 2004-06-05 Fernando Perez <fperez@colorado.edu>
3204 2004-06-05 Fernando Perez <fperez@colorado.edu>
3193
3205
3194 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3206 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3195 code to load Gary Bishop's readline and configure it
3207 code to load Gary Bishop's readline and configure it
3196 automatically. Thanks to Gary for help on this.
3208 automatically. Thanks to Gary for help on this.
3197
3209
3198 2004-06-01 Fernando Perez <fperez@colorado.edu>
3210 2004-06-01 Fernando Perez <fperez@colorado.edu>
3199
3211
3200 * IPython/Logger.py (Logger.create_log): fix bug for logging
3212 * IPython/Logger.py (Logger.create_log): fix bug for logging
3201 with no filename (previous fix was incomplete).
3213 with no filename (previous fix was incomplete).
3202
3214
3203 2004-05-25 Fernando Perez <fperez@colorado.edu>
3215 2004-05-25 Fernando Perez <fperez@colorado.edu>
3204
3216
3205 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3217 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3206 parens would get passed to the shell.
3218 parens would get passed to the shell.
3207
3219
3208 2004-05-20 Fernando Perez <fperez@colorado.edu>
3220 2004-05-20 Fernando Perez <fperez@colorado.edu>
3209
3221
3210 * IPython/Magic.py (Magic.magic_prun): changed default profile
3222 * IPython/Magic.py (Magic.magic_prun): changed default profile
3211 sort order to 'time' (the more common profiling need).
3223 sort order to 'time' (the more common profiling need).
3212
3224
3213 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3225 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3214 so that source code shown is guaranteed in sync with the file on
3226 so that source code shown is guaranteed in sync with the file on
3215 disk (also changed in psource). Similar fix to the one for
3227 disk (also changed in psource). Similar fix to the one for
3216 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3228 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3217 <yann.ledu-AT-noos.fr>.
3229 <yann.ledu-AT-noos.fr>.
3218
3230
3219 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3231 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3220 with a single option would not be correctly parsed. Closes
3232 with a single option would not be correctly parsed. Closes
3221 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3233 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3222 introduced in 0.6.0 (on 2004-05-06).
3234 introduced in 0.6.0 (on 2004-05-06).
3223
3235
3224 2004-05-13 *** Released version 0.6.0
3236 2004-05-13 *** Released version 0.6.0
3225
3237
3226 2004-05-13 Fernando Perez <fperez@colorado.edu>
3238 2004-05-13 Fernando Perez <fperez@colorado.edu>
3227
3239
3228 * debian/: Added debian/ directory to CVS, so that debian support
3240 * debian/: Added debian/ directory to CVS, so that debian support
3229 is publicly accessible. The debian package is maintained by Jack
3241 is publicly accessible. The debian package is maintained by Jack
3230 Moffit <jack-AT-xiph.org>.
3242 Moffit <jack-AT-xiph.org>.
3231
3243
3232 * Documentation: included the notes about an ipython-based system
3244 * Documentation: included the notes about an ipython-based system
3233 shell (the hypothetical 'pysh') into the new_design.pdf document,
3245 shell (the hypothetical 'pysh') into the new_design.pdf document,
3234 so that these ideas get distributed to users along with the
3246 so that these ideas get distributed to users along with the
3235 official documentation.
3247 official documentation.
3236
3248
3237 2004-05-10 Fernando Perez <fperez@colorado.edu>
3249 2004-05-10 Fernando Perez <fperez@colorado.edu>
3238
3250
3239 * IPython/Logger.py (Logger.create_log): fix recently introduced
3251 * IPython/Logger.py (Logger.create_log): fix recently introduced
3240 bug (misindented line) where logstart would fail when not given an
3252 bug (misindented line) where logstart would fail when not given an
3241 explicit filename.
3253 explicit filename.
3242
3254
3243 2004-05-09 Fernando Perez <fperez@colorado.edu>
3255 2004-05-09 Fernando Perez <fperez@colorado.edu>
3244
3256
3245 * IPython/Magic.py (Magic.parse_options): skip system call when
3257 * IPython/Magic.py (Magic.parse_options): skip system call when
3246 there are no options to look for. Faster, cleaner for the common
3258 there are no options to look for. Faster, cleaner for the common
3247 case.
3259 case.
3248
3260
3249 * Documentation: many updates to the manual: describing Windows
3261 * Documentation: many updates to the manual: describing Windows
3250 support better, Gnuplot updates, credits, misc small stuff. Also
3262 support better, Gnuplot updates, credits, misc small stuff. Also
3251 updated the new_design doc a bit.
3263 updated the new_design doc a bit.
3252
3264
3253 2004-05-06 *** Released version 0.6.0.rc1
3265 2004-05-06 *** Released version 0.6.0.rc1
3254
3266
3255 2004-05-06 Fernando Perez <fperez@colorado.edu>
3267 2004-05-06 Fernando Perez <fperez@colorado.edu>
3256
3268
3257 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3269 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3258 operations to use the vastly more efficient list/''.join() method.
3270 operations to use the vastly more efficient list/''.join() method.
3259 (FormattedTB.text): Fix
3271 (FormattedTB.text): Fix
3260 http://www.scipy.net/roundup/ipython/issue12 - exception source
3272 http://www.scipy.net/roundup/ipython/issue12 - exception source
3261 extract not updated after reload. Thanks to Mike Salib
3273 extract not updated after reload. Thanks to Mike Salib
3262 <msalib-AT-mit.edu> for pinning the source of the problem.
3274 <msalib-AT-mit.edu> for pinning the source of the problem.
3263 Fortunately, the solution works inside ipython and doesn't require
3275 Fortunately, the solution works inside ipython and doesn't require
3264 any changes to python proper.
3276 any changes to python proper.
3265
3277
3266 * IPython/Magic.py (Magic.parse_options): Improved to process the
3278 * IPython/Magic.py (Magic.parse_options): Improved to process the
3267 argument list as a true shell would (by actually using the
3279 argument list as a true shell would (by actually using the
3268 underlying system shell). This way, all @magics automatically get
3280 underlying system shell). This way, all @magics automatically get
3269 shell expansion for variables. Thanks to a comment by Alex
3281 shell expansion for variables. Thanks to a comment by Alex
3270 Schmolck.
3282 Schmolck.
3271
3283
3272 2004-04-04 Fernando Perez <fperez@colorado.edu>
3284 2004-04-04 Fernando Perez <fperez@colorado.edu>
3273
3285
3274 * IPython/iplib.py (InteractiveShell.interact): Added a special
3286 * IPython/iplib.py (InteractiveShell.interact): Added a special
3275 trap for a debugger quit exception, which is basically impossible
3287 trap for a debugger quit exception, which is basically impossible
3276 to handle by normal mechanisms, given what pdb does to the stack.
3288 to handle by normal mechanisms, given what pdb does to the stack.
3277 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3289 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3278
3290
3279 2004-04-03 Fernando Perez <fperez@colorado.edu>
3291 2004-04-03 Fernando Perez <fperez@colorado.edu>
3280
3292
3281 * IPython/genutils.py (Term): Standardized the names of the Term
3293 * IPython/genutils.py (Term): Standardized the names of the Term
3282 class streams to cin/cout/cerr, following C++ naming conventions
3294 class streams to cin/cout/cerr, following C++ naming conventions
3283 (I can't use in/out/err because 'in' is not a valid attribute
3295 (I can't use in/out/err because 'in' is not a valid attribute
3284 name).
3296 name).
3285
3297
3286 * IPython/iplib.py (InteractiveShell.interact): don't increment
3298 * IPython/iplib.py (InteractiveShell.interact): don't increment
3287 the prompt if there's no user input. By Daniel 'Dang' Griffith
3299 the prompt if there's no user input. By Daniel 'Dang' Griffith
3288 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3300 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3289 Francois Pinard.
3301 Francois Pinard.
3290
3302
3291 2004-04-02 Fernando Perez <fperez@colorado.edu>
3303 2004-04-02 Fernando Perez <fperez@colorado.edu>
3292
3304
3293 * IPython/genutils.py (Stream.__init__): Modified to survive at
3305 * IPython/genutils.py (Stream.__init__): Modified to survive at
3294 least importing in contexts where stdin/out/err aren't true file
3306 least importing in contexts where stdin/out/err aren't true file
3295 objects, such as PyCrust (they lack fileno() and mode). However,
3307 objects, such as PyCrust (they lack fileno() and mode). However,
3296 the recovery facilities which rely on these things existing will
3308 the recovery facilities which rely on these things existing will
3297 not work.
3309 not work.
3298
3310
3299 2004-04-01 Fernando Perez <fperez@colorado.edu>
3311 2004-04-01 Fernando Perez <fperez@colorado.edu>
3300
3312
3301 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3313 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3302 use the new getoutputerror() function, so it properly
3314 use the new getoutputerror() function, so it properly
3303 distinguishes stdout/err.
3315 distinguishes stdout/err.
3304
3316
3305 * IPython/genutils.py (getoutputerror): added a function to
3317 * IPython/genutils.py (getoutputerror): added a function to
3306 capture separately the standard output and error of a command.
3318 capture separately the standard output and error of a command.
3307 After a comment from dang on the mailing lists. This code is
3319 After a comment from dang on the mailing lists. This code is
3308 basically a modified version of commands.getstatusoutput(), from
3320 basically a modified version of commands.getstatusoutput(), from
3309 the standard library.
3321 the standard library.
3310
3322
3311 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3323 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3312 '!!' as a special syntax (shorthand) to access @sx.
3324 '!!' as a special syntax (shorthand) to access @sx.
3313
3325
3314 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3326 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3315 command and return its output as a list split on '\n'.
3327 command and return its output as a list split on '\n'.
3316
3328
3317 2004-03-31 Fernando Perez <fperez@colorado.edu>
3329 2004-03-31 Fernando Perez <fperez@colorado.edu>
3318
3330
3319 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3331 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3320 method to dictionaries used as FakeModule instances if they lack
3332 method to dictionaries used as FakeModule instances if they lack
3321 it. At least pydoc in python2.3 breaks for runtime-defined
3333 it. At least pydoc in python2.3 breaks for runtime-defined
3322 functions without this hack. At some point I need to _really_
3334 functions without this hack. At some point I need to _really_
3323 understand what FakeModule is doing, because it's a gross hack.
3335 understand what FakeModule is doing, because it's a gross hack.
3324 But it solves Arnd's problem for now...
3336 But it solves Arnd's problem for now...
3325
3337
3326 2004-02-27 Fernando Perez <fperez@colorado.edu>
3338 2004-02-27 Fernando Perez <fperez@colorado.edu>
3327
3339
3328 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3340 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3329 mode would behave erratically. Also increased the number of
3341 mode would behave erratically. Also increased the number of
3330 possible logs in rotate mod to 999. Thanks to Rod Holland
3342 possible logs in rotate mod to 999. Thanks to Rod Holland
3331 <rhh@StructureLABS.com> for the report and fixes.
3343 <rhh@StructureLABS.com> for the report and fixes.
3332
3344
3333 2004-02-26 Fernando Perez <fperez@colorado.edu>
3345 2004-02-26 Fernando Perez <fperez@colorado.edu>
3334
3346
3335 * IPython/genutils.py (page): Check that the curses module really
3347 * IPython/genutils.py (page): Check that the curses module really
3336 has the initscr attribute before trying to use it. For some
3348 has the initscr attribute before trying to use it. For some
3337 reason, the Solaris curses module is missing this. I think this
3349 reason, the Solaris curses module is missing this. I think this
3338 should be considered a Solaris python bug, but I'm not sure.
3350 should be considered a Solaris python bug, but I'm not sure.
3339
3351
3340 2004-01-17 Fernando Perez <fperez@colorado.edu>
3352 2004-01-17 Fernando Perez <fperez@colorado.edu>
3341
3353
3342 * IPython/genutils.py (Stream.__init__): Changes to try to make
3354 * IPython/genutils.py (Stream.__init__): Changes to try to make
3343 ipython robust against stdin/out/err being closed by the user.
3355 ipython robust against stdin/out/err being closed by the user.
3344 This is 'user error' (and blocks a normal python session, at least
3356 This is 'user error' (and blocks a normal python session, at least
3345 the stdout case). However, Ipython should be able to survive such
3357 the stdout case). However, Ipython should be able to survive such
3346 instances of abuse as gracefully as possible. To simplify the
3358 instances of abuse as gracefully as possible. To simplify the
3347 coding and maintain compatibility with Gary Bishop's Term
3359 coding and maintain compatibility with Gary Bishop's Term
3348 contributions, I've made use of classmethods for this. I think
3360 contributions, I've made use of classmethods for this. I think
3349 this introduces a dependency on python 2.2.
3361 this introduces a dependency on python 2.2.
3350
3362
3351 2004-01-13 Fernando Perez <fperez@colorado.edu>
3363 2004-01-13 Fernando Perez <fperez@colorado.edu>
3352
3364
3353 * IPython/numutils.py (exp_safe): simplified the code a bit and
3365 * IPython/numutils.py (exp_safe): simplified the code a bit and
3354 removed the need for importing the kinds module altogether.
3366 removed the need for importing the kinds module altogether.
3355
3367
3356 2004-01-06 Fernando Perez <fperez@colorado.edu>
3368 2004-01-06 Fernando Perez <fperez@colorado.edu>
3357
3369
3358 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3370 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3359 a magic function instead, after some community feedback. No
3371 a magic function instead, after some community feedback. No
3360 special syntax will exist for it, but its name is deliberately
3372 special syntax will exist for it, but its name is deliberately
3361 very short.
3373 very short.
3362
3374
3363 2003-12-20 Fernando Perez <fperez@colorado.edu>
3375 2003-12-20 Fernando Perez <fperez@colorado.edu>
3364
3376
3365 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3377 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3366 new functionality, to automagically assign the result of a shell
3378 new functionality, to automagically assign the result of a shell
3367 command to a variable. I'll solicit some community feedback on
3379 command to a variable. I'll solicit some community feedback on
3368 this before making it permanent.
3380 this before making it permanent.
3369
3381
3370 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3382 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3371 requested about callables for which inspect couldn't obtain a
3383 requested about callables for which inspect couldn't obtain a
3372 proper argspec. Thanks to a crash report sent by Etienne
3384 proper argspec. Thanks to a crash report sent by Etienne
3373 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3385 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3374
3386
3375 2003-12-09 Fernando Perez <fperez@colorado.edu>
3387 2003-12-09 Fernando Perez <fperez@colorado.edu>
3376
3388
3377 * IPython/genutils.py (page): patch for the pager to work across
3389 * IPython/genutils.py (page): patch for the pager to work across
3378 various versions of Windows. By Gary Bishop.
3390 various versions of Windows. By Gary Bishop.
3379
3391
3380 2003-12-04 Fernando Perez <fperez@colorado.edu>
3392 2003-12-04 Fernando Perez <fperez@colorado.edu>
3381
3393
3382 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3394 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3383 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3395 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3384 While I tested this and it looks ok, there may still be corner
3396 While I tested this and it looks ok, there may still be corner
3385 cases I've missed.
3397 cases I've missed.
3386
3398
3387 2003-12-01 Fernando Perez <fperez@colorado.edu>
3399 2003-12-01 Fernando Perez <fperez@colorado.edu>
3388
3400
3389 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3401 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3390 where a line like 'p,q=1,2' would fail because the automagic
3402 where a line like 'p,q=1,2' would fail because the automagic
3391 system would be triggered for @p.
3403 system would be triggered for @p.
3392
3404
3393 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3405 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3394 cleanups, code unmodified.
3406 cleanups, code unmodified.
3395
3407
3396 * IPython/genutils.py (Term): added a class for IPython to handle
3408 * IPython/genutils.py (Term): added a class for IPython to handle
3397 output. In most cases it will just be a proxy for stdout/err, but
3409 output. In most cases it will just be a proxy for stdout/err, but
3398 having this allows modifications to be made for some platforms,
3410 having this allows modifications to be made for some platforms,
3399 such as handling color escapes under Windows. All of this code
3411 such as handling color escapes under Windows. All of this code
3400 was contributed by Gary Bishop, with minor modifications by me.
3412 was contributed by Gary Bishop, with minor modifications by me.
3401 The actual changes affect many files.
3413 The actual changes affect many files.
3402
3414
3403 2003-11-30 Fernando Perez <fperez@colorado.edu>
3415 2003-11-30 Fernando Perez <fperez@colorado.edu>
3404
3416
3405 * IPython/iplib.py (file_matches): new completion code, courtesy
3417 * IPython/iplib.py (file_matches): new completion code, courtesy
3406 of Jeff Collins. This enables filename completion again under
3418 of Jeff Collins. This enables filename completion again under
3407 python 2.3, which disabled it at the C level.
3419 python 2.3, which disabled it at the C level.
3408
3420
3409 2003-11-11 Fernando Perez <fperez@colorado.edu>
3421 2003-11-11 Fernando Perez <fperez@colorado.edu>
3410
3422
3411 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3423 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3412 for Numeric.array(map(...)), but often convenient.
3424 for Numeric.array(map(...)), but often convenient.
3413
3425
3414 2003-11-05 Fernando Perez <fperez@colorado.edu>
3426 2003-11-05 Fernando Perez <fperez@colorado.edu>
3415
3427
3416 * IPython/numutils.py (frange): Changed a call from int() to
3428 * IPython/numutils.py (frange): Changed a call from int() to
3417 int(round()) to prevent a problem reported with arange() in the
3429 int(round()) to prevent a problem reported with arange() in the
3418 numpy list.
3430 numpy list.
3419
3431
3420 2003-10-06 Fernando Perez <fperez@colorado.edu>
3432 2003-10-06 Fernando Perez <fperez@colorado.edu>
3421
3433
3422 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3434 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3423 prevent crashes if sys lacks an argv attribute (it happens with
3435 prevent crashes if sys lacks an argv attribute (it happens with
3424 embedded interpreters which build a bare-bones sys module).
3436 embedded interpreters which build a bare-bones sys module).
3425 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3437 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3426
3438
3427 2003-09-24 Fernando Perez <fperez@colorado.edu>
3439 2003-09-24 Fernando Perez <fperez@colorado.edu>
3428
3440
3429 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3441 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3430 to protect against poorly written user objects where __getattr__
3442 to protect against poorly written user objects where __getattr__
3431 raises exceptions other than AttributeError. Thanks to a bug
3443 raises exceptions other than AttributeError. Thanks to a bug
3432 report by Oliver Sander <osander-AT-gmx.de>.
3444 report by Oliver Sander <osander-AT-gmx.de>.
3433
3445
3434 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3446 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3435 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3447 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3436
3448
3437 2003-09-09 Fernando Perez <fperez@colorado.edu>
3449 2003-09-09 Fernando Perez <fperez@colorado.edu>
3438
3450
3439 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3451 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3440 unpacking a list whith a callable as first element would
3452 unpacking a list whith a callable as first element would
3441 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3453 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3442 Collins.
3454 Collins.
3443
3455
3444 2003-08-25 *** Released version 0.5.0
3456 2003-08-25 *** Released version 0.5.0
3445
3457
3446 2003-08-22 Fernando Perez <fperez@colorado.edu>
3458 2003-08-22 Fernando Perez <fperez@colorado.edu>
3447
3459
3448 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3460 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3449 improperly defined user exceptions. Thanks to feedback from Mark
3461 improperly defined user exceptions. Thanks to feedback from Mark
3450 Russell <mrussell-AT-verio.net>.
3462 Russell <mrussell-AT-verio.net>.
3451
3463
3452 2003-08-20 Fernando Perez <fperez@colorado.edu>
3464 2003-08-20 Fernando Perez <fperez@colorado.edu>
3453
3465
3454 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3466 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3455 printing so that it would print multi-line string forms starting
3467 printing so that it would print multi-line string forms starting
3456 with a new line. This way the formatting is better respected for
3468 with a new line. This way the formatting is better respected for
3457 objects which work hard to make nice string forms.
3469 objects which work hard to make nice string forms.
3458
3470
3459 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3471 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3460 autocall would overtake data access for objects with both
3472 autocall would overtake data access for objects with both
3461 __getitem__ and __call__.
3473 __getitem__ and __call__.
3462
3474
3463 2003-08-19 *** Released version 0.5.0-rc1
3475 2003-08-19 *** Released version 0.5.0-rc1
3464
3476
3465 2003-08-19 Fernando Perez <fperez@colorado.edu>
3477 2003-08-19 Fernando Perez <fperez@colorado.edu>
3466
3478
3467 * IPython/deep_reload.py (load_tail): single tiny change here
3479 * IPython/deep_reload.py (load_tail): single tiny change here
3468 seems to fix the long-standing bug of dreload() failing to work
3480 seems to fix the long-standing bug of dreload() failing to work
3469 for dotted names. But this module is pretty tricky, so I may have
3481 for dotted names. But this module is pretty tricky, so I may have
3470 missed some subtlety. Needs more testing!.
3482 missed some subtlety. Needs more testing!.
3471
3483
3472 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3484 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3473 exceptions which have badly implemented __str__ methods.
3485 exceptions which have badly implemented __str__ methods.
3474 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3486 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3475 which I've been getting reports about from Python 2.3 users. I
3487 which I've been getting reports about from Python 2.3 users. I
3476 wish I had a simple test case to reproduce the problem, so I could
3488 wish I had a simple test case to reproduce the problem, so I could
3477 either write a cleaner workaround or file a bug report if
3489 either write a cleaner workaround or file a bug report if
3478 necessary.
3490 necessary.
3479
3491
3480 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3492 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3481 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3493 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3482 a bug report by Tjabo Kloppenburg.
3494 a bug report by Tjabo Kloppenburg.
3483
3495
3484 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3496 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3485 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3497 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3486 seems rather unstable. Thanks to a bug report by Tjabo
3498 seems rather unstable. Thanks to a bug report by Tjabo
3487 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3499 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3488
3500
3489 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3501 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3490 this out soon because of the critical fixes in the inner loop for
3502 this out soon because of the critical fixes in the inner loop for
3491 generators.
3503 generators.
3492
3504
3493 * IPython/Magic.py (Magic.getargspec): removed. This (and
3505 * IPython/Magic.py (Magic.getargspec): removed. This (and
3494 _get_def) have been obsoleted by OInspect for a long time, I
3506 _get_def) have been obsoleted by OInspect for a long time, I
3495 hadn't noticed that they were dead code.
3507 hadn't noticed that they were dead code.
3496 (Magic._ofind): restored _ofind functionality for a few literals
3508 (Magic._ofind): restored _ofind functionality for a few literals
3497 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3509 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3498 for things like "hello".capitalize?, since that would require a
3510 for things like "hello".capitalize?, since that would require a
3499 potentially dangerous eval() again.
3511 potentially dangerous eval() again.
3500
3512
3501 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3513 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3502 logic a bit more to clean up the escapes handling and minimize the
3514 logic a bit more to clean up the escapes handling and minimize the
3503 use of _ofind to only necessary cases. The interactive 'feel' of
3515 use of _ofind to only necessary cases. The interactive 'feel' of
3504 IPython should have improved quite a bit with the changes in
3516 IPython should have improved quite a bit with the changes in
3505 _prefilter and _ofind (besides being far safer than before).
3517 _prefilter and _ofind (besides being far safer than before).
3506
3518
3507 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3519 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3508 obscure, never reported). Edit would fail to find the object to
3520 obscure, never reported). Edit would fail to find the object to
3509 edit under some circumstances.
3521 edit under some circumstances.
3510 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3522 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3511 which were causing double-calling of generators. Those eval calls
3523 which were causing double-calling of generators. Those eval calls
3512 were _very_ dangerous, since code with side effects could be
3524 were _very_ dangerous, since code with side effects could be
3513 triggered. As they say, 'eval is evil'... These were the
3525 triggered. As they say, 'eval is evil'... These were the
3514 nastiest evals in IPython. Besides, _ofind is now far simpler,
3526 nastiest evals in IPython. Besides, _ofind is now far simpler,
3515 and it should also be quite a bit faster. Its use of inspect is
3527 and it should also be quite a bit faster. Its use of inspect is
3516 also safer, so perhaps some of the inspect-related crashes I've
3528 also safer, so perhaps some of the inspect-related crashes I've
3517 seen lately with Python 2.3 might be taken care of. That will
3529 seen lately with Python 2.3 might be taken care of. That will
3518 need more testing.
3530 need more testing.
3519
3531
3520 2003-08-17 Fernando Perez <fperez@colorado.edu>
3532 2003-08-17 Fernando Perez <fperez@colorado.edu>
3521
3533
3522 * IPython/iplib.py (InteractiveShell._prefilter): significant
3534 * IPython/iplib.py (InteractiveShell._prefilter): significant
3523 simplifications to the logic for handling user escapes. Faster
3535 simplifications to the logic for handling user escapes. Faster
3524 and simpler code.
3536 and simpler code.
3525
3537
3526 2003-08-14 Fernando Perez <fperez@colorado.edu>
3538 2003-08-14 Fernando Perez <fperez@colorado.edu>
3527
3539
3528 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3540 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3529 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3541 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3530 but it should be quite a bit faster. And the recursive version
3542 but it should be quite a bit faster. And the recursive version
3531 generated O(log N) intermediate storage for all rank>1 arrays,
3543 generated O(log N) intermediate storage for all rank>1 arrays,
3532 even if they were contiguous.
3544 even if they were contiguous.
3533 (l1norm): Added this function.
3545 (l1norm): Added this function.
3534 (norm): Added this function for arbitrary norms (including
3546 (norm): Added this function for arbitrary norms (including
3535 l-infinity). l1 and l2 are still special cases for convenience
3547 l-infinity). l1 and l2 are still special cases for convenience
3536 and speed.
3548 and speed.
3537
3549
3538 2003-08-03 Fernando Perez <fperez@colorado.edu>
3550 2003-08-03 Fernando Perez <fperez@colorado.edu>
3539
3551
3540 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3552 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3541 exceptions, which now raise PendingDeprecationWarnings in Python
3553 exceptions, which now raise PendingDeprecationWarnings in Python
3542 2.3. There were some in Magic and some in Gnuplot2.
3554 2.3. There were some in Magic and some in Gnuplot2.
3543
3555
3544 2003-06-30 Fernando Perez <fperez@colorado.edu>
3556 2003-06-30 Fernando Perez <fperez@colorado.edu>
3545
3557
3546 * IPython/genutils.py (page): modified to call curses only for
3558 * IPython/genutils.py (page): modified to call curses only for
3547 terminals where TERM=='xterm'. After problems under many other
3559 terminals where TERM=='xterm'. After problems under many other
3548 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3560 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3549
3561
3550 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3562 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3551 would be triggered when readline was absent. This was just an old
3563 would be triggered when readline was absent. This was just an old
3552 debugging statement I'd forgotten to take out.
3564 debugging statement I'd forgotten to take out.
3553
3565
3554 2003-06-20 Fernando Perez <fperez@colorado.edu>
3566 2003-06-20 Fernando Perez <fperez@colorado.edu>
3555
3567
3556 * IPython/genutils.py (clock): modified to return only user time
3568 * IPython/genutils.py (clock): modified to return only user time
3557 (not counting system time), after a discussion on scipy. While
3569 (not counting system time), after a discussion on scipy. While
3558 system time may be a useful quantity occasionally, it may much
3570 system time may be a useful quantity occasionally, it may much
3559 more easily be skewed by occasional swapping or other similar
3571 more easily be skewed by occasional swapping or other similar
3560 activity.
3572 activity.
3561
3573
3562 2003-06-05 Fernando Perez <fperez@colorado.edu>
3574 2003-06-05 Fernando Perez <fperez@colorado.edu>
3563
3575
3564 * IPython/numutils.py (identity): new function, for building
3576 * IPython/numutils.py (identity): new function, for building
3565 arbitrary rank Kronecker deltas (mostly backwards compatible with
3577 arbitrary rank Kronecker deltas (mostly backwards compatible with
3566 Numeric.identity)
3578 Numeric.identity)
3567
3579
3568 2003-06-03 Fernando Perez <fperez@colorado.edu>
3580 2003-06-03 Fernando Perez <fperez@colorado.edu>
3569
3581
3570 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3582 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3571 arguments passed to magics with spaces, to allow trailing '\' to
3583 arguments passed to magics with spaces, to allow trailing '\' to
3572 work normally (mainly for Windows users).
3584 work normally (mainly for Windows users).
3573
3585
3574 2003-05-29 Fernando Perez <fperez@colorado.edu>
3586 2003-05-29 Fernando Perez <fperez@colorado.edu>
3575
3587
3576 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3588 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3577 instead of pydoc.help. This fixes a bizarre behavior where
3589 instead of pydoc.help. This fixes a bizarre behavior where
3578 printing '%s' % locals() would trigger the help system. Now
3590 printing '%s' % locals() would trigger the help system. Now
3579 ipython behaves like normal python does.
3591 ipython behaves like normal python does.
3580
3592
3581 Note that if one does 'from pydoc import help', the bizarre
3593 Note that if one does 'from pydoc import help', the bizarre
3582 behavior returns, but this will also happen in normal python, so
3594 behavior returns, but this will also happen in normal python, so
3583 it's not an ipython bug anymore (it has to do with how pydoc.help
3595 it's not an ipython bug anymore (it has to do with how pydoc.help
3584 is implemented).
3596 is implemented).
3585
3597
3586 2003-05-22 Fernando Perez <fperez@colorado.edu>
3598 2003-05-22 Fernando Perez <fperez@colorado.edu>
3587
3599
3588 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3600 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3589 return [] instead of None when nothing matches, also match to end
3601 return [] instead of None when nothing matches, also match to end
3590 of line. Patch by Gary Bishop.
3602 of line. Patch by Gary Bishop.
3591
3603
3592 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3604 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3593 protection as before, for files passed on the command line. This
3605 protection as before, for files passed on the command line. This
3594 prevents the CrashHandler from kicking in if user files call into
3606 prevents the CrashHandler from kicking in if user files call into
3595 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3607 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3596 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3608 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3597
3609
3598 2003-05-20 *** Released version 0.4.0
3610 2003-05-20 *** Released version 0.4.0
3599
3611
3600 2003-05-20 Fernando Perez <fperez@colorado.edu>
3612 2003-05-20 Fernando Perez <fperez@colorado.edu>
3601
3613
3602 * setup.py: added support for manpages. It's a bit hackish b/c of
3614 * setup.py: added support for manpages. It's a bit hackish b/c of
3603 a bug in the way the bdist_rpm distutils target handles gzipped
3615 a bug in the way the bdist_rpm distutils target handles gzipped
3604 manpages, but it works. After a patch by Jack.
3616 manpages, but it works. After a patch by Jack.
3605
3617
3606 2003-05-19 Fernando Perez <fperez@colorado.edu>
3618 2003-05-19 Fernando Perez <fperez@colorado.edu>
3607
3619
3608 * IPython/numutils.py: added a mockup of the kinds module, since
3620 * IPython/numutils.py: added a mockup of the kinds module, since
3609 it was recently removed from Numeric. This way, numutils will
3621 it was recently removed from Numeric. This way, numutils will
3610 work for all users even if they are missing kinds.
3622 work for all users even if they are missing kinds.
3611
3623
3612 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3624 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3613 failure, which can occur with SWIG-wrapped extensions. After a
3625 failure, which can occur with SWIG-wrapped extensions. After a
3614 crash report from Prabhu.
3626 crash report from Prabhu.
3615
3627
3616 2003-05-16 Fernando Perez <fperez@colorado.edu>
3628 2003-05-16 Fernando Perez <fperez@colorado.edu>
3617
3629
3618 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3630 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3619 protect ipython from user code which may call directly
3631 protect ipython from user code which may call directly
3620 sys.excepthook (this looks like an ipython crash to the user, even
3632 sys.excepthook (this looks like an ipython crash to the user, even
3621 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3633 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3622 This is especially important to help users of WxWindows, but may
3634 This is especially important to help users of WxWindows, but may
3623 also be useful in other cases.
3635 also be useful in other cases.
3624
3636
3625 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3637 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3626 an optional tb_offset to be specified, and to preserve exception
3638 an optional tb_offset to be specified, and to preserve exception
3627 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3639 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3628
3640
3629 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3641 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3630
3642
3631 2003-05-15 Fernando Perez <fperez@colorado.edu>
3643 2003-05-15 Fernando Perez <fperez@colorado.edu>
3632
3644
3633 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3645 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3634 installing for a new user under Windows.
3646 installing for a new user under Windows.
3635
3647
3636 2003-05-12 Fernando Perez <fperez@colorado.edu>
3648 2003-05-12 Fernando Perez <fperez@colorado.edu>
3637
3649
3638 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3650 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3639 handler for Emacs comint-based lines. Currently it doesn't do
3651 handler for Emacs comint-based lines. Currently it doesn't do
3640 much (but importantly, it doesn't update the history cache). In
3652 much (but importantly, it doesn't update the history cache). In
3641 the future it may be expanded if Alex needs more functionality
3653 the future it may be expanded if Alex needs more functionality
3642 there.
3654 there.
3643
3655
3644 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3656 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3645 info to crash reports.
3657 info to crash reports.
3646
3658
3647 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3659 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3648 just like Python's -c. Also fixed crash with invalid -color
3660 just like Python's -c. Also fixed crash with invalid -color
3649 option value at startup. Thanks to Will French
3661 option value at startup. Thanks to Will French
3650 <wfrench-AT-bestweb.net> for the bug report.
3662 <wfrench-AT-bestweb.net> for the bug report.
3651
3663
3652 2003-05-09 Fernando Perez <fperez@colorado.edu>
3664 2003-05-09 Fernando Perez <fperez@colorado.edu>
3653
3665
3654 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3666 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3655 to EvalDict (it's a mapping, after all) and simplified its code
3667 to EvalDict (it's a mapping, after all) and simplified its code
3656 quite a bit, after a nice discussion on c.l.py where Gustavo
3668 quite a bit, after a nice discussion on c.l.py where Gustavo
3657 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3669 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3658
3670
3659 2003-04-30 Fernando Perez <fperez@colorado.edu>
3671 2003-04-30 Fernando Perez <fperez@colorado.edu>
3660
3672
3661 * IPython/genutils.py (timings_out): modified it to reduce its
3673 * IPython/genutils.py (timings_out): modified it to reduce its
3662 overhead in the common reps==1 case.
3674 overhead in the common reps==1 case.
3663
3675
3664 2003-04-29 Fernando Perez <fperez@colorado.edu>
3676 2003-04-29 Fernando Perez <fperez@colorado.edu>
3665
3677
3666 * IPython/genutils.py (timings_out): Modified to use the resource
3678 * IPython/genutils.py (timings_out): Modified to use the resource
3667 module, which avoids the wraparound problems of time.clock().
3679 module, which avoids the wraparound problems of time.clock().
3668
3680
3669 2003-04-17 *** Released version 0.2.15pre4
3681 2003-04-17 *** Released version 0.2.15pre4
3670
3682
3671 2003-04-17 Fernando Perez <fperez@colorado.edu>
3683 2003-04-17 Fernando Perez <fperez@colorado.edu>
3672
3684
3673 * setup.py (scriptfiles): Split windows-specific stuff over to a
3685 * setup.py (scriptfiles): Split windows-specific stuff over to a
3674 separate file, in an attempt to have a Windows GUI installer.
3686 separate file, in an attempt to have a Windows GUI installer.
3675 That didn't work, but part of the groundwork is done.
3687 That didn't work, but part of the groundwork is done.
3676
3688
3677 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3689 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3678 indent/unindent with 4 spaces. Particularly useful in combination
3690 indent/unindent with 4 spaces. Particularly useful in combination
3679 with the new auto-indent option.
3691 with the new auto-indent option.
3680
3692
3681 2003-04-16 Fernando Perez <fperez@colorado.edu>
3693 2003-04-16 Fernando Perez <fperez@colorado.edu>
3682
3694
3683 * IPython/Magic.py: various replacements of self.rc for
3695 * IPython/Magic.py: various replacements of self.rc for
3684 self.shell.rc. A lot more remains to be done to fully disentangle
3696 self.shell.rc. A lot more remains to be done to fully disentangle
3685 this class from the main Shell class.
3697 this class from the main Shell class.
3686
3698
3687 * IPython/GnuplotRuntime.py: added checks for mouse support so
3699 * IPython/GnuplotRuntime.py: added checks for mouse support so
3688 that we don't try to enable it if the current gnuplot doesn't
3700 that we don't try to enable it if the current gnuplot doesn't
3689 really support it. Also added checks so that we don't try to
3701 really support it. Also added checks so that we don't try to
3690 enable persist under Windows (where Gnuplot doesn't recognize the
3702 enable persist under Windows (where Gnuplot doesn't recognize the
3691 option).
3703 option).
3692
3704
3693 * IPython/iplib.py (InteractiveShell.interact): Added optional
3705 * IPython/iplib.py (InteractiveShell.interact): Added optional
3694 auto-indenting code, after a patch by King C. Shu
3706 auto-indenting code, after a patch by King C. Shu
3695 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3707 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3696 get along well with pasting indented code. If I ever figure out
3708 get along well with pasting indented code. If I ever figure out
3697 how to make that part go well, it will become on by default.
3709 how to make that part go well, it will become on by default.
3698
3710
3699 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3711 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3700 crash ipython if there was an unmatched '%' in the user's prompt
3712 crash ipython if there was an unmatched '%' in the user's prompt
3701 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3713 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3702
3714
3703 * IPython/iplib.py (InteractiveShell.interact): removed the
3715 * IPython/iplib.py (InteractiveShell.interact): removed the
3704 ability to ask the user whether he wants to crash or not at the
3716 ability to ask the user whether he wants to crash or not at the
3705 'last line' exception handler. Calling functions at that point
3717 'last line' exception handler. Calling functions at that point
3706 changes the stack, and the error reports would have incorrect
3718 changes the stack, and the error reports would have incorrect
3707 tracebacks.
3719 tracebacks.
3708
3720
3709 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3721 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3710 pass through a peger a pretty-printed form of any object. After a
3722 pass through a peger a pretty-printed form of any object. After a
3711 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3723 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3712
3724
3713 2003-04-14 Fernando Perez <fperez@colorado.edu>
3725 2003-04-14 Fernando Perez <fperez@colorado.edu>
3714
3726
3715 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3727 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3716 all files in ~ would be modified at first install (instead of
3728 all files in ~ would be modified at first install (instead of
3717 ~/.ipython). This could be potentially disastrous, as the
3729 ~/.ipython). This could be potentially disastrous, as the
3718 modification (make line-endings native) could damage binary files.
3730 modification (make line-endings native) could damage binary files.
3719
3731
3720 2003-04-10 Fernando Perez <fperez@colorado.edu>
3732 2003-04-10 Fernando Perez <fperez@colorado.edu>
3721
3733
3722 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3734 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3723 handle only lines which are invalid python. This now means that
3735 handle only lines which are invalid python. This now means that
3724 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3736 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3725 for the bug report.
3737 for the bug report.
3726
3738
3727 2003-04-01 Fernando Perez <fperez@colorado.edu>
3739 2003-04-01 Fernando Perez <fperez@colorado.edu>
3728
3740
3729 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3741 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3730 where failing to set sys.last_traceback would crash pdb.pm().
3742 where failing to set sys.last_traceback would crash pdb.pm().
3731 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3743 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3732 report.
3744 report.
3733
3745
3734 2003-03-25 Fernando Perez <fperez@colorado.edu>
3746 2003-03-25 Fernando Perez <fperez@colorado.edu>
3735
3747
3736 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3748 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3737 before printing it (it had a lot of spurious blank lines at the
3749 before printing it (it had a lot of spurious blank lines at the
3738 end).
3750 end).
3739
3751
3740 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3752 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3741 output would be sent 21 times! Obviously people don't use this
3753 output would be sent 21 times! Obviously people don't use this
3742 too often, or I would have heard about it.
3754 too often, or I would have heard about it.
3743
3755
3744 2003-03-24 Fernando Perez <fperez@colorado.edu>
3756 2003-03-24 Fernando Perez <fperez@colorado.edu>
3745
3757
3746 * setup.py (scriptfiles): renamed the data_files parameter from
3758 * setup.py (scriptfiles): renamed the data_files parameter from
3747 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3759 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3748 for the patch.
3760 for the patch.
3749
3761
3750 2003-03-20 Fernando Perez <fperez@colorado.edu>
3762 2003-03-20 Fernando Perez <fperez@colorado.edu>
3751
3763
3752 * IPython/genutils.py (error): added error() and fatal()
3764 * IPython/genutils.py (error): added error() and fatal()
3753 functions.
3765 functions.
3754
3766
3755 2003-03-18 *** Released version 0.2.15pre3
3767 2003-03-18 *** Released version 0.2.15pre3
3756
3768
3757 2003-03-18 Fernando Perez <fperez@colorado.edu>
3769 2003-03-18 Fernando Perez <fperez@colorado.edu>
3758
3770
3759 * setupext/install_data_ext.py
3771 * setupext/install_data_ext.py
3760 (install_data_ext.initialize_options): Class contributed by Jack
3772 (install_data_ext.initialize_options): Class contributed by Jack
3761 Moffit for fixing the old distutils hack. He is sending this to
3773 Moffit for fixing the old distutils hack. He is sending this to
3762 the distutils folks so in the future we may not need it as a
3774 the distutils folks so in the future we may not need it as a
3763 private fix.
3775 private fix.
3764
3776
3765 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3777 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3766 changes for Debian packaging. See his patch for full details.
3778 changes for Debian packaging. See his patch for full details.
3767 The old distutils hack of making the ipythonrc* files carry a
3779 The old distutils hack of making the ipythonrc* files carry a
3768 bogus .py extension is gone, at last. Examples were moved to a
3780 bogus .py extension is gone, at last. Examples were moved to a
3769 separate subdir under doc/, and the separate executable scripts
3781 separate subdir under doc/, and the separate executable scripts
3770 now live in their own directory. Overall a great cleanup. The
3782 now live in their own directory. Overall a great cleanup. The
3771 manual was updated to use the new files, and setup.py has been
3783 manual was updated to use the new files, and setup.py has been
3772 fixed for this setup.
3784 fixed for this setup.
3773
3785
3774 * IPython/PyColorize.py (Parser.usage): made non-executable and
3786 * IPython/PyColorize.py (Parser.usage): made non-executable and
3775 created a pycolor wrapper around it to be included as a script.
3787 created a pycolor wrapper around it to be included as a script.
3776
3788
3777 2003-03-12 *** Released version 0.2.15pre2
3789 2003-03-12 *** Released version 0.2.15pre2
3778
3790
3779 2003-03-12 Fernando Perez <fperez@colorado.edu>
3791 2003-03-12 Fernando Perez <fperez@colorado.edu>
3780
3792
3781 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3793 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3782 long-standing problem with garbage characters in some terminals.
3794 long-standing problem with garbage characters in some terminals.
3783 The issue was really that the \001 and \002 escapes must _only_ be
3795 The issue was really that the \001 and \002 escapes must _only_ be
3784 passed to input prompts (which call readline), but _never_ to
3796 passed to input prompts (which call readline), but _never_ to
3785 normal text to be printed on screen. I changed ColorANSI to have
3797 normal text to be printed on screen. I changed ColorANSI to have
3786 two classes: TermColors and InputTermColors, each with the
3798 two classes: TermColors and InputTermColors, each with the
3787 appropriate escapes for input prompts or normal text. The code in
3799 appropriate escapes for input prompts or normal text. The code in
3788 Prompts.py got slightly more complicated, but this very old and
3800 Prompts.py got slightly more complicated, but this very old and
3789 annoying bug is finally fixed.
3801 annoying bug is finally fixed.
3790
3802
3791 All the credit for nailing down the real origin of this problem
3803 All the credit for nailing down the real origin of this problem
3792 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3804 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3793 *Many* thanks to him for spending quite a bit of effort on this.
3805 *Many* thanks to him for spending quite a bit of effort on this.
3794
3806
3795 2003-03-05 *** Released version 0.2.15pre1
3807 2003-03-05 *** Released version 0.2.15pre1
3796
3808
3797 2003-03-03 Fernando Perez <fperez@colorado.edu>
3809 2003-03-03 Fernando Perez <fperez@colorado.edu>
3798
3810
3799 * IPython/FakeModule.py: Moved the former _FakeModule to a
3811 * IPython/FakeModule.py: Moved the former _FakeModule to a
3800 separate file, because it's also needed by Magic (to fix a similar
3812 separate file, because it's also needed by Magic (to fix a similar
3801 pickle-related issue in @run).
3813 pickle-related issue in @run).
3802
3814
3803 2003-03-02 Fernando Perez <fperez@colorado.edu>
3815 2003-03-02 Fernando Perez <fperez@colorado.edu>
3804
3816
3805 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3817 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3806 the autocall option at runtime.
3818 the autocall option at runtime.
3807 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3819 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3808 across Magic.py to start separating Magic from InteractiveShell.
3820 across Magic.py to start separating Magic from InteractiveShell.
3809 (Magic._ofind): Fixed to return proper namespace for dotted
3821 (Magic._ofind): Fixed to return proper namespace for dotted
3810 names. Before, a dotted name would always return 'not currently
3822 names. Before, a dotted name would always return 'not currently
3811 defined', because it would find the 'parent'. s.x would be found,
3823 defined', because it would find the 'parent'. s.x would be found,
3812 but since 'x' isn't defined by itself, it would get confused.
3824 but since 'x' isn't defined by itself, it would get confused.
3813 (Magic.magic_run): Fixed pickling problems reported by Ralf
3825 (Magic.magic_run): Fixed pickling problems reported by Ralf
3814 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3826 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3815 that I'd used when Mike Heeter reported similar issues at the
3827 that I'd used when Mike Heeter reported similar issues at the
3816 top-level, but now for @run. It boils down to injecting the
3828 top-level, but now for @run. It boils down to injecting the
3817 namespace where code is being executed with something that looks
3829 namespace where code is being executed with something that looks
3818 enough like a module to fool pickle.dump(). Since a pickle stores
3830 enough like a module to fool pickle.dump(). Since a pickle stores
3819 a named reference to the importing module, we need this for
3831 a named reference to the importing module, we need this for
3820 pickles to save something sensible.
3832 pickles to save something sensible.
3821
3833
3822 * IPython/ipmaker.py (make_IPython): added an autocall option.
3834 * IPython/ipmaker.py (make_IPython): added an autocall option.
3823
3835
3824 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3836 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3825 the auto-eval code. Now autocalling is an option, and the code is
3837 the auto-eval code. Now autocalling is an option, and the code is
3826 also vastly safer. There is no more eval() involved at all.
3838 also vastly safer. There is no more eval() involved at all.
3827
3839
3828 2003-03-01 Fernando Perez <fperez@colorado.edu>
3840 2003-03-01 Fernando Perez <fperez@colorado.edu>
3829
3841
3830 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3842 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3831 dict with named keys instead of a tuple.
3843 dict with named keys instead of a tuple.
3832
3844
3833 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3845 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3834
3846
3835 * setup.py (make_shortcut): Fixed message about directories
3847 * setup.py (make_shortcut): Fixed message about directories
3836 created during Windows installation (the directories were ok, just
3848 created during Windows installation (the directories were ok, just
3837 the printed message was misleading). Thanks to Chris Liechti
3849 the printed message was misleading). Thanks to Chris Liechti
3838 <cliechti-AT-gmx.net> for the heads up.
3850 <cliechti-AT-gmx.net> for the heads up.
3839
3851
3840 2003-02-21 Fernando Perez <fperez@colorado.edu>
3852 2003-02-21 Fernando Perez <fperez@colorado.edu>
3841
3853
3842 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3854 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3843 of ValueError exception when checking for auto-execution. This
3855 of ValueError exception when checking for auto-execution. This
3844 one is raised by things like Numeric arrays arr.flat when the
3856 one is raised by things like Numeric arrays arr.flat when the
3845 array is non-contiguous.
3857 array is non-contiguous.
3846
3858
3847 2003-01-31 Fernando Perez <fperez@colorado.edu>
3859 2003-01-31 Fernando Perez <fperez@colorado.edu>
3848
3860
3849 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3861 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3850 not return any value at all (even though the command would get
3862 not return any value at all (even though the command would get
3851 executed).
3863 executed).
3852 (xsys): Flush stdout right after printing the command to ensure
3864 (xsys): Flush stdout right after printing the command to ensure
3853 proper ordering of commands and command output in the total
3865 proper ordering of commands and command output in the total
3854 output.
3866 output.
3855 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3867 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3856 system/getoutput as defaults. The old ones are kept for
3868 system/getoutput as defaults. The old ones are kept for
3857 compatibility reasons, so no code which uses this library needs
3869 compatibility reasons, so no code which uses this library needs
3858 changing.
3870 changing.
3859
3871
3860 2003-01-27 *** Released version 0.2.14
3872 2003-01-27 *** Released version 0.2.14
3861
3873
3862 2003-01-25 Fernando Perez <fperez@colorado.edu>
3874 2003-01-25 Fernando Perez <fperez@colorado.edu>
3863
3875
3864 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3876 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3865 functions defined in previous edit sessions could not be re-edited
3877 functions defined in previous edit sessions could not be re-edited
3866 (because the temp files were immediately removed). Now temp files
3878 (because the temp files were immediately removed). Now temp files
3867 are removed only at IPython's exit.
3879 are removed only at IPython's exit.
3868 (Magic.magic_run): Improved @run to perform shell-like expansions
3880 (Magic.magic_run): Improved @run to perform shell-like expansions
3869 on its arguments (~users and $VARS). With this, @run becomes more
3881 on its arguments (~users and $VARS). With this, @run becomes more
3870 like a normal command-line.
3882 like a normal command-line.
3871
3883
3872 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3884 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3873 bugs related to embedding and cleaned up that code. A fairly
3885 bugs related to embedding and cleaned up that code. A fairly
3874 important one was the impossibility to access the global namespace
3886 important one was the impossibility to access the global namespace
3875 through the embedded IPython (only local variables were visible).
3887 through the embedded IPython (only local variables were visible).
3876
3888
3877 2003-01-14 Fernando Perez <fperez@colorado.edu>
3889 2003-01-14 Fernando Perez <fperez@colorado.edu>
3878
3890
3879 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3891 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3880 auto-calling to be a bit more conservative. Now it doesn't get
3892 auto-calling to be a bit more conservative. Now it doesn't get
3881 triggered if any of '!=()<>' are in the rest of the input line, to
3893 triggered if any of '!=()<>' are in the rest of the input line, to
3882 allow comparing callables. Thanks to Alex for the heads up.
3894 allow comparing callables. Thanks to Alex for the heads up.
3883
3895
3884 2003-01-07 Fernando Perez <fperez@colorado.edu>
3896 2003-01-07 Fernando Perez <fperez@colorado.edu>
3885
3897
3886 * IPython/genutils.py (page): fixed estimation of the number of
3898 * IPython/genutils.py (page): fixed estimation of the number of
3887 lines in a string to be paged to simply count newlines. This
3899 lines in a string to be paged to simply count newlines. This
3888 prevents over-guessing due to embedded escape sequences. A better
3900 prevents over-guessing due to embedded escape sequences. A better
3889 long-term solution would involve stripping out the control chars
3901 long-term solution would involve stripping out the control chars
3890 for the count, but it's potentially so expensive I just don't
3902 for the count, but it's potentially so expensive I just don't
3891 think it's worth doing.
3903 think it's worth doing.
3892
3904
3893 2002-12-19 *** Released version 0.2.14pre50
3905 2002-12-19 *** Released version 0.2.14pre50
3894
3906
3895 2002-12-19 Fernando Perez <fperez@colorado.edu>
3907 2002-12-19 Fernando Perez <fperez@colorado.edu>
3896
3908
3897 * tools/release (version): Changed release scripts to inform
3909 * tools/release (version): Changed release scripts to inform
3898 Andrea and build a NEWS file with a list of recent changes.
3910 Andrea and build a NEWS file with a list of recent changes.
3899
3911
3900 * IPython/ColorANSI.py (__all__): changed terminal detection
3912 * IPython/ColorANSI.py (__all__): changed terminal detection
3901 code. Seems to work better for xterms without breaking
3913 code. Seems to work better for xterms without breaking
3902 konsole. Will need more testing to determine if WinXP and Mac OSX
3914 konsole. Will need more testing to determine if WinXP and Mac OSX
3903 also work ok.
3915 also work ok.
3904
3916
3905 2002-12-18 *** Released version 0.2.14pre49
3917 2002-12-18 *** Released version 0.2.14pre49
3906
3918
3907 2002-12-18 Fernando Perez <fperez@colorado.edu>
3919 2002-12-18 Fernando Perez <fperez@colorado.edu>
3908
3920
3909 * Docs: added new info about Mac OSX, from Andrea.
3921 * Docs: added new info about Mac OSX, from Andrea.
3910
3922
3911 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3923 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3912 allow direct plotting of python strings whose format is the same
3924 allow direct plotting of python strings whose format is the same
3913 of gnuplot data files.
3925 of gnuplot data files.
3914
3926
3915 2002-12-16 Fernando Perez <fperez@colorado.edu>
3927 2002-12-16 Fernando Perez <fperez@colorado.edu>
3916
3928
3917 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3929 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3918 value of exit question to be acknowledged.
3930 value of exit question to be acknowledged.
3919
3931
3920 2002-12-03 Fernando Perez <fperez@colorado.edu>
3932 2002-12-03 Fernando Perez <fperez@colorado.edu>
3921
3933
3922 * IPython/ipmaker.py: removed generators, which had been added
3934 * IPython/ipmaker.py: removed generators, which had been added
3923 by mistake in an earlier debugging run. This was causing trouble
3935 by mistake in an earlier debugging run. This was causing trouble
3924 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3936 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3925 for pointing this out.
3937 for pointing this out.
3926
3938
3927 2002-11-17 Fernando Perez <fperez@colorado.edu>
3939 2002-11-17 Fernando Perez <fperez@colorado.edu>
3928
3940
3929 * Manual: updated the Gnuplot section.
3941 * Manual: updated the Gnuplot section.
3930
3942
3931 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3943 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3932 a much better split of what goes in Runtime and what goes in
3944 a much better split of what goes in Runtime and what goes in
3933 Interactive.
3945 Interactive.
3934
3946
3935 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3947 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3936 being imported from iplib.
3948 being imported from iplib.
3937
3949
3938 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3950 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3939 for command-passing. Now the global Gnuplot instance is called
3951 for command-passing. Now the global Gnuplot instance is called
3940 'gp' instead of 'g', which was really a far too fragile and
3952 'gp' instead of 'g', which was really a far too fragile and
3941 common name.
3953 common name.
3942
3954
3943 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3955 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3944 bounding boxes generated by Gnuplot for square plots.
3956 bounding boxes generated by Gnuplot for square plots.
3945
3957
3946 * IPython/genutils.py (popkey): new function added. I should
3958 * IPython/genutils.py (popkey): new function added. I should
3947 suggest this on c.l.py as a dict method, it seems useful.
3959 suggest this on c.l.py as a dict method, it seems useful.
3948
3960
3949 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3961 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3950 to transparently handle PostScript generation. MUCH better than
3962 to transparently handle PostScript generation. MUCH better than
3951 the previous plot_eps/replot_eps (which I removed now). The code
3963 the previous plot_eps/replot_eps (which I removed now). The code
3952 is also fairly clean and well documented now (including
3964 is also fairly clean and well documented now (including
3953 docstrings).
3965 docstrings).
3954
3966
3955 2002-11-13 Fernando Perez <fperez@colorado.edu>
3967 2002-11-13 Fernando Perez <fperez@colorado.edu>
3956
3968
3957 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3969 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3958 (inconsistent with options).
3970 (inconsistent with options).
3959
3971
3960 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3972 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3961 manually disabled, I don't know why. Fixed it.
3973 manually disabled, I don't know why. Fixed it.
3962 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3974 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3963 eps output.
3975 eps output.
3964
3976
3965 2002-11-12 Fernando Perez <fperez@colorado.edu>
3977 2002-11-12 Fernando Perez <fperez@colorado.edu>
3966
3978
3967 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3979 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3968 don't propagate up to caller. Fixes crash reported by François
3980 don't propagate up to caller. Fixes crash reported by François
3969 Pinard.
3981 Pinard.
3970
3982
3971 2002-11-09 Fernando Perez <fperez@colorado.edu>
3983 2002-11-09 Fernando Perez <fperez@colorado.edu>
3972
3984
3973 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3985 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3974 history file for new users.
3986 history file for new users.
3975 (make_IPython): fixed bug where initial install would leave the
3987 (make_IPython): fixed bug where initial install would leave the
3976 user running in the .ipython dir.
3988 user running in the .ipython dir.
3977 (make_IPython): fixed bug where config dir .ipython would be
3989 (make_IPython): fixed bug where config dir .ipython would be
3978 created regardless of the given -ipythondir option. Thanks to Cory
3990 created regardless of the given -ipythondir option. Thanks to Cory
3979 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3991 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3980
3992
3981 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3993 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3982 type confirmations. Will need to use it in all of IPython's code
3994 type confirmations. Will need to use it in all of IPython's code
3983 consistently.
3995 consistently.
3984
3996
3985 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3997 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3986 context to print 31 lines instead of the default 5. This will make
3998 context to print 31 lines instead of the default 5. This will make
3987 the crash reports extremely detailed in case the problem is in
3999 the crash reports extremely detailed in case the problem is in
3988 libraries I don't have access to.
4000 libraries I don't have access to.
3989
4001
3990 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4002 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3991 line of defense' code to still crash, but giving users fair
4003 line of defense' code to still crash, but giving users fair
3992 warning. I don't want internal errors to go unreported: if there's
4004 warning. I don't want internal errors to go unreported: if there's
3993 an internal problem, IPython should crash and generate a full
4005 an internal problem, IPython should crash and generate a full
3994 report.
4006 report.
3995
4007
3996 2002-11-08 Fernando Perez <fperez@colorado.edu>
4008 2002-11-08 Fernando Perez <fperez@colorado.edu>
3997
4009
3998 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4010 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3999 otherwise uncaught exceptions which can appear if people set
4011 otherwise uncaught exceptions which can appear if people set
4000 sys.stdout to something badly broken. Thanks to a crash report
4012 sys.stdout to something badly broken. Thanks to a crash report
4001 from henni-AT-mail.brainbot.com.
4013 from henni-AT-mail.brainbot.com.
4002
4014
4003 2002-11-04 Fernando Perez <fperez@colorado.edu>
4015 2002-11-04 Fernando Perez <fperez@colorado.edu>
4004
4016
4005 * IPython/iplib.py (InteractiveShell.interact): added
4017 * IPython/iplib.py (InteractiveShell.interact): added
4006 __IPYTHON__active to the builtins. It's a flag which goes on when
4018 __IPYTHON__active to the builtins. It's a flag which goes on when
4007 the interaction starts and goes off again when it stops. This
4019 the interaction starts and goes off again when it stops. This
4008 allows embedding code to detect being inside IPython. Before this
4020 allows embedding code to detect being inside IPython. Before this
4009 was done via __IPYTHON__, but that only shows that an IPython
4021 was done via __IPYTHON__, but that only shows that an IPython
4010 instance has been created.
4022 instance has been created.
4011
4023
4012 * IPython/Magic.py (Magic.magic_env): I realized that in a
4024 * IPython/Magic.py (Magic.magic_env): I realized that in a
4013 UserDict, instance.data holds the data as a normal dict. So I
4025 UserDict, instance.data holds the data as a normal dict. So I
4014 modified @env to return os.environ.data instead of rebuilding a
4026 modified @env to return os.environ.data instead of rebuilding a
4015 dict by hand.
4027 dict by hand.
4016
4028
4017 2002-11-02 Fernando Perez <fperez@colorado.edu>
4029 2002-11-02 Fernando Perez <fperez@colorado.edu>
4018
4030
4019 * IPython/genutils.py (warn): changed so that level 1 prints no
4031 * IPython/genutils.py (warn): changed so that level 1 prints no
4020 header. Level 2 is now the default (with 'WARNING' header, as
4032 header. Level 2 is now the default (with 'WARNING' header, as
4021 before). I think I tracked all places where changes were needed in
4033 before). I think I tracked all places where changes were needed in
4022 IPython, but outside code using the old level numbering may have
4034 IPython, but outside code using the old level numbering may have
4023 broken.
4035 broken.
4024
4036
4025 * IPython/iplib.py (InteractiveShell.runcode): added this to
4037 * IPython/iplib.py (InteractiveShell.runcode): added this to
4026 handle the tracebacks in SystemExit traps correctly. The previous
4038 handle the tracebacks in SystemExit traps correctly. The previous
4027 code (through interact) was printing more of the stack than
4039 code (through interact) was printing more of the stack than
4028 necessary, showing IPython internal code to the user.
4040 necessary, showing IPython internal code to the user.
4029
4041
4030 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4042 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4031 default. Now that the default at the confirmation prompt is yes,
4043 default. Now that the default at the confirmation prompt is yes,
4032 it's not so intrusive. François' argument that ipython sessions
4044 it's not so intrusive. François' argument that ipython sessions
4033 tend to be complex enough not to lose them from an accidental C-d,
4045 tend to be complex enough not to lose them from an accidental C-d,
4034 is a valid one.
4046 is a valid one.
4035
4047
4036 * IPython/iplib.py (InteractiveShell.interact): added a
4048 * IPython/iplib.py (InteractiveShell.interact): added a
4037 showtraceback() call to the SystemExit trap, and modified the exit
4049 showtraceback() call to the SystemExit trap, and modified the exit
4038 confirmation to have yes as the default.
4050 confirmation to have yes as the default.
4039
4051
4040 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4052 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4041 this file. It's been gone from the code for a long time, this was
4053 this file. It's been gone from the code for a long time, this was
4042 simply leftover junk.
4054 simply leftover junk.
4043
4055
4044 2002-11-01 Fernando Perez <fperez@colorado.edu>
4056 2002-11-01 Fernando Perez <fperez@colorado.edu>
4045
4057
4046 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4058 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4047 added. If set, IPython now traps EOF and asks for
4059 added. If set, IPython now traps EOF and asks for
4048 confirmation. After a request by François Pinard.
4060 confirmation. After a request by François Pinard.
4049
4061
4050 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4062 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4051 of @abort, and with a new (better) mechanism for handling the
4063 of @abort, and with a new (better) mechanism for handling the
4052 exceptions.
4064 exceptions.
4053
4065
4054 2002-10-27 Fernando Perez <fperez@colorado.edu>
4066 2002-10-27 Fernando Perez <fperez@colorado.edu>
4055
4067
4056 * IPython/usage.py (__doc__): updated the --help information and
4068 * IPython/usage.py (__doc__): updated the --help information and
4057 the ipythonrc file to indicate that -log generates
4069 the ipythonrc file to indicate that -log generates
4058 ./ipython.log. Also fixed the corresponding info in @logstart.
4070 ./ipython.log. Also fixed the corresponding info in @logstart.
4059 This and several other fixes in the manuals thanks to reports by
4071 This and several other fixes in the manuals thanks to reports by
4060 François Pinard <pinard-AT-iro.umontreal.ca>.
4072 François Pinard <pinard-AT-iro.umontreal.ca>.
4061
4073
4062 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4074 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4063 refer to @logstart (instead of @log, which doesn't exist).
4075 refer to @logstart (instead of @log, which doesn't exist).
4064
4076
4065 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4077 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4066 AttributeError crash. Thanks to Christopher Armstrong
4078 AttributeError crash. Thanks to Christopher Armstrong
4067 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4079 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4068 introduced recently (in 0.2.14pre37) with the fix to the eval
4080 introduced recently (in 0.2.14pre37) with the fix to the eval
4069 problem mentioned below.
4081 problem mentioned below.
4070
4082
4071 2002-10-17 Fernando Perez <fperez@colorado.edu>
4083 2002-10-17 Fernando Perez <fperez@colorado.edu>
4072
4084
4073 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4085 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4074 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4086 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4075
4087
4076 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4088 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4077 this function to fix a problem reported by Alex Schmolck. He saw
4089 this function to fix a problem reported by Alex Schmolck. He saw
4078 it with list comprehensions and generators, which were getting
4090 it with list comprehensions and generators, which were getting
4079 called twice. The real problem was an 'eval' call in testing for
4091 called twice. The real problem was an 'eval' call in testing for
4080 automagic which was evaluating the input line silently.
4092 automagic which was evaluating the input line silently.
4081
4093
4082 This is a potentially very nasty bug, if the input has side
4094 This is a potentially very nasty bug, if the input has side
4083 effects which must not be repeated. The code is much cleaner now,
4095 effects which must not be repeated. The code is much cleaner now,
4084 without any blanket 'except' left and with a regexp test for
4096 without any blanket 'except' left and with a regexp test for
4085 actual function names.
4097 actual function names.
4086
4098
4087 But an eval remains, which I'm not fully comfortable with. I just
4099 But an eval remains, which I'm not fully comfortable with. I just
4088 don't know how to find out if an expression could be a callable in
4100 don't know how to find out if an expression could be a callable in
4089 the user's namespace without doing an eval on the string. However
4101 the user's namespace without doing an eval on the string. However
4090 that string is now much more strictly checked so that no code
4102 that string is now much more strictly checked so that no code
4091 slips by, so the eval should only happen for things that can
4103 slips by, so the eval should only happen for things that can
4092 really be only function/method names.
4104 really be only function/method names.
4093
4105
4094 2002-10-15 Fernando Perez <fperez@colorado.edu>
4106 2002-10-15 Fernando Perez <fperez@colorado.edu>
4095
4107
4096 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4108 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4097 OSX information to main manual, removed README_Mac_OSX file from
4109 OSX information to main manual, removed README_Mac_OSX file from
4098 distribution. Also updated credits for recent additions.
4110 distribution. Also updated credits for recent additions.
4099
4111
4100 2002-10-10 Fernando Perez <fperez@colorado.edu>
4112 2002-10-10 Fernando Perez <fperez@colorado.edu>
4101
4113
4102 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4114 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4103 terminal-related issues. Many thanks to Andrea Riciputi
4115 terminal-related issues. Many thanks to Andrea Riciputi
4104 <andrea.riciputi-AT-libero.it> for writing it.
4116 <andrea.riciputi-AT-libero.it> for writing it.
4105
4117
4106 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4118 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4107 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4119 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4108
4120
4109 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4121 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4110 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4122 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4111 <syver-en-AT-online.no> who both submitted patches for this problem.
4123 <syver-en-AT-online.no> who both submitted patches for this problem.
4112
4124
4113 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4125 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4114 global embedding to make sure that things don't overwrite user
4126 global embedding to make sure that things don't overwrite user
4115 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4127 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4116
4128
4117 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4129 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4118 compatibility. Thanks to Hayden Callow
4130 compatibility. Thanks to Hayden Callow
4119 <h.callow-AT-elec.canterbury.ac.nz>
4131 <h.callow-AT-elec.canterbury.ac.nz>
4120
4132
4121 2002-10-04 Fernando Perez <fperez@colorado.edu>
4133 2002-10-04 Fernando Perez <fperez@colorado.edu>
4122
4134
4123 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4135 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4124 Gnuplot.File objects.
4136 Gnuplot.File objects.
4125
4137
4126 2002-07-23 Fernando Perez <fperez@colorado.edu>
4138 2002-07-23 Fernando Perez <fperez@colorado.edu>
4127
4139
4128 * IPython/genutils.py (timing): Added timings() and timing() for
4140 * IPython/genutils.py (timing): Added timings() and timing() for
4129 quick access to the most commonly needed data, the execution
4141 quick access to the most commonly needed data, the execution
4130 times. Old timing() renamed to timings_out().
4142 times. Old timing() renamed to timings_out().
4131
4143
4132 2002-07-18 Fernando Perez <fperez@colorado.edu>
4144 2002-07-18 Fernando Perez <fperez@colorado.edu>
4133
4145
4134 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4146 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4135 bug with nested instances disrupting the parent's tab completion.
4147 bug with nested instances disrupting the parent's tab completion.
4136
4148
4137 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4149 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4138 all_completions code to begin the emacs integration.
4150 all_completions code to begin the emacs integration.
4139
4151
4140 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4152 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4141 argument to allow titling individual arrays when plotting.
4153 argument to allow titling individual arrays when plotting.
4142
4154
4143 2002-07-15 Fernando Perez <fperez@colorado.edu>
4155 2002-07-15 Fernando Perez <fperez@colorado.edu>
4144
4156
4145 * setup.py (make_shortcut): changed to retrieve the value of
4157 * setup.py (make_shortcut): changed to retrieve the value of
4146 'Program Files' directory from the registry (this value changes in
4158 'Program Files' directory from the registry (this value changes in
4147 non-english versions of Windows). Thanks to Thomas Fanslau
4159 non-english versions of Windows). Thanks to Thomas Fanslau
4148 <tfanslau-AT-gmx.de> for the report.
4160 <tfanslau-AT-gmx.de> for the report.
4149
4161
4150 2002-07-10 Fernando Perez <fperez@colorado.edu>
4162 2002-07-10 Fernando Perez <fperez@colorado.edu>
4151
4163
4152 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4164 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4153 a bug in pdb, which crashes if a line with only whitespace is
4165 a bug in pdb, which crashes if a line with only whitespace is
4154 entered. Bug report submitted to sourceforge.
4166 entered. Bug report submitted to sourceforge.
4155
4167
4156 2002-07-09 Fernando Perez <fperez@colorado.edu>
4168 2002-07-09 Fernando Perez <fperez@colorado.edu>
4157
4169
4158 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4170 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4159 reporting exceptions (it's a bug in inspect.py, I just set a
4171 reporting exceptions (it's a bug in inspect.py, I just set a
4160 workaround).
4172 workaround).
4161
4173
4162 2002-07-08 Fernando Perez <fperez@colorado.edu>
4174 2002-07-08 Fernando Perez <fperez@colorado.edu>
4163
4175
4164 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4176 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4165 __IPYTHON__ in __builtins__ to show up in user_ns.
4177 __IPYTHON__ in __builtins__ to show up in user_ns.
4166
4178
4167 2002-07-03 Fernando Perez <fperez@colorado.edu>
4179 2002-07-03 Fernando Perez <fperez@colorado.edu>
4168
4180
4169 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4181 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4170 name from @gp_set_instance to @gp_set_default.
4182 name from @gp_set_instance to @gp_set_default.
4171
4183
4172 * IPython/ipmaker.py (make_IPython): default editor value set to
4184 * IPython/ipmaker.py (make_IPython): default editor value set to
4173 '0' (a string), to match the rc file. Otherwise will crash when
4185 '0' (a string), to match the rc file. Otherwise will crash when
4174 .strip() is called on it.
4186 .strip() is called on it.
4175
4187
4176
4188
4177 2002-06-28 Fernando Perez <fperez@colorado.edu>
4189 2002-06-28 Fernando Perez <fperez@colorado.edu>
4178
4190
4179 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4191 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4180 of files in current directory when a file is executed via
4192 of files in current directory when a file is executed via
4181 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4193 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4182
4194
4183 * setup.py (manfiles): fix for rpm builds, submitted by RA
4195 * setup.py (manfiles): fix for rpm builds, submitted by RA
4184 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4196 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4185
4197
4186 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4198 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4187 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4199 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4188 string!). A. Schmolck caught this one.
4200 string!). A. Schmolck caught this one.
4189
4201
4190 2002-06-27 Fernando Perez <fperez@colorado.edu>
4202 2002-06-27 Fernando Perez <fperez@colorado.edu>
4191
4203
4192 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4204 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4193 defined files at the cmd line. __name__ wasn't being set to
4205 defined files at the cmd line. __name__ wasn't being set to
4194 __main__.
4206 __main__.
4195
4207
4196 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4208 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4197 regular lists and tuples besides Numeric arrays.
4209 regular lists and tuples besides Numeric arrays.
4198
4210
4199 * IPython/Prompts.py (CachedOutput.__call__): Added output
4211 * IPython/Prompts.py (CachedOutput.__call__): Added output
4200 supression for input ending with ';'. Similar to Mathematica and
4212 supression for input ending with ';'. Similar to Mathematica and
4201 Matlab. The _* vars and Out[] list are still updated, just like
4213 Matlab. The _* vars and Out[] list are still updated, just like
4202 Mathematica behaves.
4214 Mathematica behaves.
4203
4215
4204 2002-06-25 Fernando Perez <fperez@colorado.edu>
4216 2002-06-25 Fernando Perez <fperez@colorado.edu>
4205
4217
4206 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4218 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4207 .ini extensions for profiels under Windows.
4219 .ini extensions for profiels under Windows.
4208
4220
4209 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4221 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4210 string form. Fix contributed by Alexander Schmolck
4222 string form. Fix contributed by Alexander Schmolck
4211 <a.schmolck-AT-gmx.net>
4223 <a.schmolck-AT-gmx.net>
4212
4224
4213 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4225 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4214 pre-configured Gnuplot instance.
4226 pre-configured Gnuplot instance.
4215
4227
4216 2002-06-21 Fernando Perez <fperez@colorado.edu>
4228 2002-06-21 Fernando Perez <fperez@colorado.edu>
4217
4229
4218 * IPython/numutils.py (exp_safe): new function, works around the
4230 * IPython/numutils.py (exp_safe): new function, works around the
4219 underflow problems in Numeric.
4231 underflow problems in Numeric.
4220 (log2): New fn. Safe log in base 2: returns exact integer answer
4232 (log2): New fn. Safe log in base 2: returns exact integer answer
4221 for exact integer powers of 2.
4233 for exact integer powers of 2.
4222
4234
4223 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4235 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4224 properly.
4236 properly.
4225
4237
4226 2002-06-20 Fernando Perez <fperez@colorado.edu>
4238 2002-06-20 Fernando Perez <fperez@colorado.edu>
4227
4239
4228 * IPython/genutils.py (timing): new function like
4240 * IPython/genutils.py (timing): new function like
4229 Mathematica's. Similar to time_test, but returns more info.
4241 Mathematica's. Similar to time_test, but returns more info.
4230
4242
4231 2002-06-18 Fernando Perez <fperez@colorado.edu>
4243 2002-06-18 Fernando Perez <fperez@colorado.edu>
4232
4244
4233 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4245 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4234 according to Mike Heeter's suggestions.
4246 according to Mike Heeter's suggestions.
4235
4247
4236 2002-06-16 Fernando Perez <fperez@colorado.edu>
4248 2002-06-16 Fernando Perez <fperez@colorado.edu>
4237
4249
4238 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4250 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4239 system. GnuplotMagic is gone as a user-directory option. New files
4251 system. GnuplotMagic is gone as a user-directory option. New files
4240 make it easier to use all the gnuplot stuff both from external
4252 make it easier to use all the gnuplot stuff both from external
4241 programs as well as from IPython. Had to rewrite part of
4253 programs as well as from IPython. Had to rewrite part of
4242 hardcopy() b/c of a strange bug: often the ps files simply don't
4254 hardcopy() b/c of a strange bug: often the ps files simply don't
4243 get created, and require a repeat of the command (often several
4255 get created, and require a repeat of the command (often several
4244 times).
4256 times).
4245
4257
4246 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4258 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4247 resolve output channel at call time, so that if sys.stderr has
4259 resolve output channel at call time, so that if sys.stderr has
4248 been redirected by user this gets honored.
4260 been redirected by user this gets honored.
4249
4261
4250 2002-06-13 Fernando Perez <fperez@colorado.edu>
4262 2002-06-13 Fernando Perez <fperez@colorado.edu>
4251
4263
4252 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4264 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4253 IPShell. Kept a copy with the old names to avoid breaking people's
4265 IPShell. Kept a copy with the old names to avoid breaking people's
4254 embedded code.
4266 embedded code.
4255
4267
4256 * IPython/ipython: simplified it to the bare minimum after
4268 * IPython/ipython: simplified it to the bare minimum after
4257 Holger's suggestions. Added info about how to use it in
4269 Holger's suggestions. Added info about how to use it in
4258 PYTHONSTARTUP.
4270 PYTHONSTARTUP.
4259
4271
4260 * IPython/Shell.py (IPythonShell): changed the options passing
4272 * IPython/Shell.py (IPythonShell): changed the options passing
4261 from a string with funky %s replacements to a straight list. Maybe
4273 from a string with funky %s replacements to a straight list. Maybe
4262 a bit more typing, but it follows sys.argv conventions, so there's
4274 a bit more typing, but it follows sys.argv conventions, so there's
4263 less special-casing to remember.
4275 less special-casing to remember.
4264
4276
4265 2002-06-12 Fernando Perez <fperez@colorado.edu>
4277 2002-06-12 Fernando Perez <fperez@colorado.edu>
4266
4278
4267 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4279 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4268 command. Thanks to a suggestion by Mike Heeter.
4280 command. Thanks to a suggestion by Mike Heeter.
4269 (Magic.magic_pfile): added behavior to look at filenames if given
4281 (Magic.magic_pfile): added behavior to look at filenames if given
4270 arg is not a defined object.
4282 arg is not a defined object.
4271 (Magic.magic_save): New @save function to save code snippets. Also
4283 (Magic.magic_save): New @save function to save code snippets. Also
4272 a Mike Heeter idea.
4284 a Mike Heeter idea.
4273
4285
4274 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4286 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4275 plot() and replot(). Much more convenient now, especially for
4287 plot() and replot(). Much more convenient now, especially for
4276 interactive use.
4288 interactive use.
4277
4289
4278 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4290 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4279 filenames.
4291 filenames.
4280
4292
4281 2002-06-02 Fernando Perez <fperez@colorado.edu>
4293 2002-06-02 Fernando Perez <fperez@colorado.edu>
4282
4294
4283 * IPython/Struct.py (Struct.__init__): modified to admit
4295 * IPython/Struct.py (Struct.__init__): modified to admit
4284 initialization via another struct.
4296 initialization via another struct.
4285
4297
4286 * IPython/genutils.py (SystemExec.__init__): New stateful
4298 * IPython/genutils.py (SystemExec.__init__): New stateful
4287 interface to xsys and bq. Useful for writing system scripts.
4299 interface to xsys and bq. Useful for writing system scripts.
4288
4300
4289 2002-05-30 Fernando Perez <fperez@colorado.edu>
4301 2002-05-30 Fernando Perez <fperez@colorado.edu>
4290
4302
4291 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4303 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4292 documents. This will make the user download smaller (it's getting
4304 documents. This will make the user download smaller (it's getting
4293 too big).
4305 too big).
4294
4306
4295 2002-05-29 Fernando Perez <fperez@colorado.edu>
4307 2002-05-29 Fernando Perez <fperez@colorado.edu>
4296
4308
4297 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4309 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4298 fix problems with shelve and pickle. Seems to work, but I don't
4310 fix problems with shelve and pickle. Seems to work, but I don't
4299 know if corner cases break it. Thanks to Mike Heeter
4311 know if corner cases break it. Thanks to Mike Heeter
4300 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4312 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4301
4313
4302 2002-05-24 Fernando Perez <fperez@colorado.edu>
4314 2002-05-24 Fernando Perez <fperez@colorado.edu>
4303
4315
4304 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4316 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4305 macros having broken.
4317 macros having broken.
4306
4318
4307 2002-05-21 Fernando Perez <fperez@colorado.edu>
4319 2002-05-21 Fernando Perez <fperez@colorado.edu>
4308
4320
4309 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4321 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4310 introduced logging bug: all history before logging started was
4322 introduced logging bug: all history before logging started was
4311 being written one character per line! This came from the redesign
4323 being written one character per line! This came from the redesign
4312 of the input history as a special list which slices to strings,
4324 of the input history as a special list which slices to strings,
4313 not to lists.
4325 not to lists.
4314
4326
4315 2002-05-20 Fernando Perez <fperez@colorado.edu>
4327 2002-05-20 Fernando Perez <fperez@colorado.edu>
4316
4328
4317 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4329 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4318 be an attribute of all classes in this module. The design of these
4330 be an attribute of all classes in this module. The design of these
4319 classes needs some serious overhauling.
4331 classes needs some serious overhauling.
4320
4332
4321 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4333 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4322 which was ignoring '_' in option names.
4334 which was ignoring '_' in option names.
4323
4335
4324 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4336 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4325 'Verbose_novars' to 'Context' and made it the new default. It's a
4337 'Verbose_novars' to 'Context' and made it the new default. It's a
4326 bit more readable and also safer than verbose.
4338 bit more readable and also safer than verbose.
4327
4339
4328 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4340 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4329 triple-quoted strings.
4341 triple-quoted strings.
4330
4342
4331 * IPython/OInspect.py (__all__): new module exposing the object
4343 * IPython/OInspect.py (__all__): new module exposing the object
4332 introspection facilities. Now the corresponding magics are dummy
4344 introspection facilities. Now the corresponding magics are dummy
4333 wrappers around this. Having this module will make it much easier
4345 wrappers around this. Having this module will make it much easier
4334 to put these functions into our modified pdb.
4346 to put these functions into our modified pdb.
4335 This new object inspector system uses the new colorizing module,
4347 This new object inspector system uses the new colorizing module,
4336 so source code and other things are nicely syntax highlighted.
4348 so source code and other things are nicely syntax highlighted.
4337
4349
4338 2002-05-18 Fernando Perez <fperez@colorado.edu>
4350 2002-05-18 Fernando Perez <fperez@colorado.edu>
4339
4351
4340 * IPython/ColorANSI.py: Split the coloring tools into a separate
4352 * IPython/ColorANSI.py: Split the coloring tools into a separate
4341 module so I can use them in other code easier (they were part of
4353 module so I can use them in other code easier (they were part of
4342 ultraTB).
4354 ultraTB).
4343
4355
4344 2002-05-17 Fernando Perez <fperez@colorado.edu>
4356 2002-05-17 Fernando Perez <fperez@colorado.edu>
4345
4357
4346 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4358 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4347 fixed it to set the global 'g' also to the called instance, as
4359 fixed it to set the global 'g' also to the called instance, as
4348 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4360 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4349 user's 'g' variables).
4361 user's 'g' variables).
4350
4362
4351 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4363 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4352 global variables (aliases to _ih,_oh) so that users which expect
4364 global variables (aliases to _ih,_oh) so that users which expect
4353 In[5] or Out[7] to work aren't unpleasantly surprised.
4365 In[5] or Out[7] to work aren't unpleasantly surprised.
4354 (InputList.__getslice__): new class to allow executing slices of
4366 (InputList.__getslice__): new class to allow executing slices of
4355 input history directly. Very simple class, complements the use of
4367 input history directly. Very simple class, complements the use of
4356 macros.
4368 macros.
4357
4369
4358 2002-05-16 Fernando Perez <fperez@colorado.edu>
4370 2002-05-16 Fernando Perez <fperez@colorado.edu>
4359
4371
4360 * setup.py (docdirbase): make doc directory be just doc/IPython
4372 * setup.py (docdirbase): make doc directory be just doc/IPython
4361 without version numbers, it will reduce clutter for users.
4373 without version numbers, it will reduce clutter for users.
4362
4374
4363 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4375 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4364 execfile call to prevent possible memory leak. See for details:
4376 execfile call to prevent possible memory leak. See for details:
4365 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4377 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4366
4378
4367 2002-05-15 Fernando Perez <fperez@colorado.edu>
4379 2002-05-15 Fernando Perez <fperez@colorado.edu>
4368
4380
4369 * IPython/Magic.py (Magic.magic_psource): made the object
4381 * IPython/Magic.py (Magic.magic_psource): made the object
4370 introspection names be more standard: pdoc, pdef, pfile and
4382 introspection names be more standard: pdoc, pdef, pfile and
4371 psource. They all print/page their output, and it makes
4383 psource. They all print/page their output, and it makes
4372 remembering them easier. Kept old names for compatibility as
4384 remembering them easier. Kept old names for compatibility as
4373 aliases.
4385 aliases.
4374
4386
4375 2002-05-14 Fernando Perez <fperez@colorado.edu>
4387 2002-05-14 Fernando Perez <fperez@colorado.edu>
4376
4388
4377 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4389 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4378 what the mouse problem was. The trick is to use gnuplot with temp
4390 what the mouse problem was. The trick is to use gnuplot with temp
4379 files and NOT with pipes (for data communication), because having
4391 files and NOT with pipes (for data communication), because having
4380 both pipes and the mouse on is bad news.
4392 both pipes and the mouse on is bad news.
4381
4393
4382 2002-05-13 Fernando Perez <fperez@colorado.edu>
4394 2002-05-13 Fernando Perez <fperez@colorado.edu>
4383
4395
4384 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4396 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4385 bug. Information would be reported about builtins even when
4397 bug. Information would be reported about builtins even when
4386 user-defined functions overrode them.
4398 user-defined functions overrode them.
4387
4399
4388 2002-05-11 Fernando Perez <fperez@colorado.edu>
4400 2002-05-11 Fernando Perez <fperez@colorado.edu>
4389
4401
4390 * IPython/__init__.py (__all__): removed FlexCompleter from
4402 * IPython/__init__.py (__all__): removed FlexCompleter from
4391 __all__ so that things don't fail in platforms without readline.
4403 __all__ so that things don't fail in platforms without readline.
4392
4404
4393 2002-05-10 Fernando Perez <fperez@colorado.edu>
4405 2002-05-10 Fernando Perez <fperez@colorado.edu>
4394
4406
4395 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4407 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4396 it requires Numeric, effectively making Numeric a dependency for
4408 it requires Numeric, effectively making Numeric a dependency for
4397 IPython.
4409 IPython.
4398
4410
4399 * Released 0.2.13
4411 * Released 0.2.13
4400
4412
4401 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4413 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4402 profiler interface. Now all the major options from the profiler
4414 profiler interface. Now all the major options from the profiler
4403 module are directly supported in IPython, both for single
4415 module are directly supported in IPython, both for single
4404 expressions (@prun) and for full programs (@run -p).
4416 expressions (@prun) and for full programs (@run -p).
4405
4417
4406 2002-05-09 Fernando Perez <fperez@colorado.edu>
4418 2002-05-09 Fernando Perez <fperez@colorado.edu>
4407
4419
4408 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4420 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4409 magic properly formatted for screen.
4421 magic properly formatted for screen.
4410
4422
4411 * setup.py (make_shortcut): Changed things to put pdf version in
4423 * setup.py (make_shortcut): Changed things to put pdf version in
4412 doc/ instead of doc/manual (had to change lyxport a bit).
4424 doc/ instead of doc/manual (had to change lyxport a bit).
4413
4425
4414 * IPython/Magic.py (Profile.string_stats): made profile runs go
4426 * IPython/Magic.py (Profile.string_stats): made profile runs go
4415 through pager (they are long and a pager allows searching, saving,
4427 through pager (they are long and a pager allows searching, saving,
4416 etc.)
4428 etc.)
4417
4429
4418 2002-05-08 Fernando Perez <fperez@colorado.edu>
4430 2002-05-08 Fernando Perez <fperez@colorado.edu>
4419
4431
4420 * Released 0.2.12
4432 * Released 0.2.12
4421
4433
4422 2002-05-06 Fernando Perez <fperez@colorado.edu>
4434 2002-05-06 Fernando Perez <fperez@colorado.edu>
4423
4435
4424 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4436 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4425 introduced); 'hist n1 n2' was broken.
4437 introduced); 'hist n1 n2' was broken.
4426 (Magic.magic_pdb): added optional on/off arguments to @pdb
4438 (Magic.magic_pdb): added optional on/off arguments to @pdb
4427 (Magic.magic_run): added option -i to @run, which executes code in
4439 (Magic.magic_run): added option -i to @run, which executes code in
4428 the IPython namespace instead of a clean one. Also added @irun as
4440 the IPython namespace instead of a clean one. Also added @irun as
4429 an alias to @run -i.
4441 an alias to @run -i.
4430
4442
4431 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4443 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4432 fixed (it didn't really do anything, the namespaces were wrong).
4444 fixed (it didn't really do anything, the namespaces were wrong).
4433
4445
4434 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4446 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4435
4447
4436 * IPython/__init__.py (__all__): Fixed package namespace, now
4448 * IPython/__init__.py (__all__): Fixed package namespace, now
4437 'import IPython' does give access to IPython.<all> as
4449 'import IPython' does give access to IPython.<all> as
4438 expected. Also renamed __release__ to Release.
4450 expected. Also renamed __release__ to Release.
4439
4451
4440 * IPython/Debugger.py (__license__): created new Pdb class which
4452 * IPython/Debugger.py (__license__): created new Pdb class which
4441 functions like a drop-in for the normal pdb.Pdb but does NOT
4453 functions like a drop-in for the normal pdb.Pdb but does NOT
4442 import readline by default. This way it doesn't muck up IPython's
4454 import readline by default. This way it doesn't muck up IPython's
4443 readline handling, and now tab-completion finally works in the
4455 readline handling, and now tab-completion finally works in the
4444 debugger -- sort of. It completes things globally visible, but the
4456 debugger -- sort of. It completes things globally visible, but the
4445 completer doesn't track the stack as pdb walks it. That's a bit
4457 completer doesn't track the stack as pdb walks it. That's a bit
4446 tricky, and I'll have to implement it later.
4458 tricky, and I'll have to implement it later.
4447
4459
4448 2002-05-05 Fernando Perez <fperez@colorado.edu>
4460 2002-05-05 Fernando Perez <fperez@colorado.edu>
4449
4461
4450 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4462 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4451 magic docstrings when printed via ? (explicit \'s were being
4463 magic docstrings when printed via ? (explicit \'s were being
4452 printed).
4464 printed).
4453
4465
4454 * IPython/ipmaker.py (make_IPython): fixed namespace
4466 * IPython/ipmaker.py (make_IPython): fixed namespace
4455 identification bug. Now variables loaded via logs or command-line
4467 identification bug. Now variables loaded via logs or command-line
4456 files are recognized in the interactive namespace by @who.
4468 files are recognized in the interactive namespace by @who.
4457
4469
4458 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4470 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4459 log replay system stemming from the string form of Structs.
4471 log replay system stemming from the string form of Structs.
4460
4472
4461 * IPython/Magic.py (Macro.__init__): improved macros to properly
4473 * IPython/Magic.py (Macro.__init__): improved macros to properly
4462 handle magic commands in them.
4474 handle magic commands in them.
4463 (Magic.magic_logstart): usernames are now expanded so 'logstart
4475 (Magic.magic_logstart): usernames are now expanded so 'logstart
4464 ~/mylog' now works.
4476 ~/mylog' now works.
4465
4477
4466 * IPython/iplib.py (complete): fixed bug where paths starting with
4478 * IPython/iplib.py (complete): fixed bug where paths starting with
4467 '/' would be completed as magic names.
4479 '/' would be completed as magic names.
4468
4480
4469 2002-05-04 Fernando Perez <fperez@colorado.edu>
4481 2002-05-04 Fernando Perez <fperez@colorado.edu>
4470
4482
4471 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4483 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4472 allow running full programs under the profiler's control.
4484 allow running full programs under the profiler's control.
4473
4485
4474 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4486 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4475 mode to report exceptions verbosely but without formatting
4487 mode to report exceptions verbosely but without formatting
4476 variables. This addresses the issue of ipython 'freezing' (it's
4488 variables. This addresses the issue of ipython 'freezing' (it's
4477 not frozen, but caught in an expensive formatting loop) when huge
4489 not frozen, but caught in an expensive formatting loop) when huge
4478 variables are in the context of an exception.
4490 variables are in the context of an exception.
4479 (VerboseTB.text): Added '--->' markers at line where exception was
4491 (VerboseTB.text): Added '--->' markers at line where exception was
4480 triggered. Much clearer to read, especially in NoColor modes.
4492 triggered. Much clearer to read, especially in NoColor modes.
4481
4493
4482 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4494 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4483 implemented in reverse when changing to the new parse_options().
4495 implemented in reverse when changing to the new parse_options().
4484
4496
4485 2002-05-03 Fernando Perez <fperez@colorado.edu>
4497 2002-05-03 Fernando Perez <fperez@colorado.edu>
4486
4498
4487 * IPython/Magic.py (Magic.parse_options): new function so that
4499 * IPython/Magic.py (Magic.parse_options): new function so that
4488 magics can parse options easier.
4500 magics can parse options easier.
4489 (Magic.magic_prun): new function similar to profile.run(),
4501 (Magic.magic_prun): new function similar to profile.run(),
4490 suggested by Chris Hart.
4502 suggested by Chris Hart.
4491 (Magic.magic_cd): fixed behavior so that it only changes if
4503 (Magic.magic_cd): fixed behavior so that it only changes if
4492 directory actually is in history.
4504 directory actually is in history.
4493
4505
4494 * IPython/usage.py (__doc__): added information about potential
4506 * IPython/usage.py (__doc__): added information about potential
4495 slowness of Verbose exception mode when there are huge data
4507 slowness of Verbose exception mode when there are huge data
4496 structures to be formatted (thanks to Archie Paulson).
4508 structures to be formatted (thanks to Archie Paulson).
4497
4509
4498 * IPython/ipmaker.py (make_IPython): Changed default logging
4510 * IPython/ipmaker.py (make_IPython): Changed default logging
4499 (when simply called with -log) to use curr_dir/ipython.log in
4511 (when simply called with -log) to use curr_dir/ipython.log in
4500 rotate mode. Fixed crash which was occuring with -log before
4512 rotate mode. Fixed crash which was occuring with -log before
4501 (thanks to Jim Boyle).
4513 (thanks to Jim Boyle).
4502
4514
4503 2002-05-01 Fernando Perez <fperez@colorado.edu>
4515 2002-05-01 Fernando Perez <fperez@colorado.edu>
4504
4516
4505 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4517 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4506 was nasty -- though somewhat of a corner case).
4518 was nasty -- though somewhat of a corner case).
4507
4519
4508 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4520 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4509 text (was a bug).
4521 text (was a bug).
4510
4522
4511 2002-04-30 Fernando Perez <fperez@colorado.edu>
4523 2002-04-30 Fernando Perez <fperez@colorado.edu>
4512
4524
4513 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4525 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4514 a print after ^D or ^C from the user so that the In[] prompt
4526 a print after ^D or ^C from the user so that the In[] prompt
4515 doesn't over-run the gnuplot one.
4527 doesn't over-run the gnuplot one.
4516
4528
4517 2002-04-29 Fernando Perez <fperez@colorado.edu>
4529 2002-04-29 Fernando Perez <fperez@colorado.edu>
4518
4530
4519 * Released 0.2.10
4531 * Released 0.2.10
4520
4532
4521 * IPython/__release__.py (version): get date dynamically.
4533 * IPython/__release__.py (version): get date dynamically.
4522
4534
4523 * Misc. documentation updates thanks to Arnd's comments. Also ran
4535 * Misc. documentation updates thanks to Arnd's comments. Also ran
4524 a full spellcheck on the manual (hadn't been done in a while).
4536 a full spellcheck on the manual (hadn't been done in a while).
4525
4537
4526 2002-04-27 Fernando Perez <fperez@colorado.edu>
4538 2002-04-27 Fernando Perez <fperez@colorado.edu>
4527
4539
4528 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4540 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4529 starting a log in mid-session would reset the input history list.
4541 starting a log in mid-session would reset the input history list.
4530
4542
4531 2002-04-26 Fernando Perez <fperez@colorado.edu>
4543 2002-04-26 Fernando Perez <fperez@colorado.edu>
4532
4544
4533 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4545 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4534 all files were being included in an update. Now anything in
4546 all files were being included in an update. Now anything in
4535 UserConfig that matches [A-Za-z]*.py will go (this excludes
4547 UserConfig that matches [A-Za-z]*.py will go (this excludes
4536 __init__.py)
4548 __init__.py)
4537
4549
4538 2002-04-25 Fernando Perez <fperez@colorado.edu>
4550 2002-04-25 Fernando Perez <fperez@colorado.edu>
4539
4551
4540 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4552 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4541 to __builtins__ so that any form of embedded or imported code can
4553 to __builtins__ so that any form of embedded or imported code can
4542 test for being inside IPython.
4554 test for being inside IPython.
4543
4555
4544 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4556 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4545 changed to GnuplotMagic because it's now an importable module,
4557 changed to GnuplotMagic because it's now an importable module,
4546 this makes the name follow that of the standard Gnuplot module.
4558 this makes the name follow that of the standard Gnuplot module.
4547 GnuplotMagic can now be loaded at any time in mid-session.
4559 GnuplotMagic can now be loaded at any time in mid-session.
4548
4560
4549 2002-04-24 Fernando Perez <fperez@colorado.edu>
4561 2002-04-24 Fernando Perez <fperez@colorado.edu>
4550
4562
4551 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4563 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4552 the globals (IPython has its own namespace) and the
4564 the globals (IPython has its own namespace) and the
4553 PhysicalQuantity stuff is much better anyway.
4565 PhysicalQuantity stuff is much better anyway.
4554
4566
4555 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4567 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4556 embedding example to standard user directory for
4568 embedding example to standard user directory for
4557 distribution. Also put it in the manual.
4569 distribution. Also put it in the manual.
4558
4570
4559 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4571 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4560 instance as first argument (so it doesn't rely on some obscure
4572 instance as first argument (so it doesn't rely on some obscure
4561 hidden global).
4573 hidden global).
4562
4574
4563 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4575 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4564 delimiters. While it prevents ().TAB from working, it allows
4576 delimiters. While it prevents ().TAB from working, it allows
4565 completions in open (... expressions. This is by far a more common
4577 completions in open (... expressions. This is by far a more common
4566 case.
4578 case.
4567
4579
4568 2002-04-23 Fernando Perez <fperez@colorado.edu>
4580 2002-04-23 Fernando Perez <fperez@colorado.edu>
4569
4581
4570 * IPython/Extensions/InterpreterPasteInput.py: new
4582 * IPython/Extensions/InterpreterPasteInput.py: new
4571 syntax-processing module for pasting lines with >>> or ... at the
4583 syntax-processing module for pasting lines with >>> or ... at the
4572 start.
4584 start.
4573
4585
4574 * IPython/Extensions/PhysicalQ_Interactive.py
4586 * IPython/Extensions/PhysicalQ_Interactive.py
4575 (PhysicalQuantityInteractive.__int__): fixed to work with either
4587 (PhysicalQuantityInteractive.__int__): fixed to work with either
4576 Numeric or math.
4588 Numeric or math.
4577
4589
4578 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4590 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4579 provided profiles. Now we have:
4591 provided profiles. Now we have:
4580 -math -> math module as * and cmath with its own namespace.
4592 -math -> math module as * and cmath with its own namespace.
4581 -numeric -> Numeric as *, plus gnuplot & grace
4593 -numeric -> Numeric as *, plus gnuplot & grace
4582 -physics -> same as before
4594 -physics -> same as before
4583
4595
4584 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4596 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4585 user-defined magics wouldn't be found by @magic if they were
4597 user-defined magics wouldn't be found by @magic if they were
4586 defined as class methods. Also cleaned up the namespace search
4598 defined as class methods. Also cleaned up the namespace search
4587 logic and the string building (to use %s instead of many repeated
4599 logic and the string building (to use %s instead of many repeated
4588 string adds).
4600 string adds).
4589
4601
4590 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4602 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4591 of user-defined magics to operate with class methods (cleaner, in
4603 of user-defined magics to operate with class methods (cleaner, in
4592 line with the gnuplot code).
4604 line with the gnuplot code).
4593
4605
4594 2002-04-22 Fernando Perez <fperez@colorado.edu>
4606 2002-04-22 Fernando Perez <fperez@colorado.edu>
4595
4607
4596 * setup.py: updated dependency list so that manual is updated when
4608 * setup.py: updated dependency list so that manual is updated when
4597 all included files change.
4609 all included files change.
4598
4610
4599 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4611 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4600 the delimiter removal option (the fix is ugly right now).
4612 the delimiter removal option (the fix is ugly right now).
4601
4613
4602 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4614 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4603 all of the math profile (quicker loading, no conflict between
4615 all of the math profile (quicker loading, no conflict between
4604 g-9.8 and g-gnuplot).
4616 g-9.8 and g-gnuplot).
4605
4617
4606 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4618 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4607 name of post-mortem files to IPython_crash_report.txt.
4619 name of post-mortem files to IPython_crash_report.txt.
4608
4620
4609 * Cleanup/update of the docs. Added all the new readline info and
4621 * Cleanup/update of the docs. Added all the new readline info and
4610 formatted all lists as 'real lists'.
4622 formatted all lists as 'real lists'.
4611
4623
4612 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4624 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4613 tab-completion options, since the full readline parse_and_bind is
4625 tab-completion options, since the full readline parse_and_bind is
4614 now accessible.
4626 now accessible.
4615
4627
4616 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4628 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4617 handling of readline options. Now users can specify any string to
4629 handling of readline options. Now users can specify any string to
4618 be passed to parse_and_bind(), as well as the delimiters to be
4630 be passed to parse_and_bind(), as well as the delimiters to be
4619 removed.
4631 removed.
4620 (InteractiveShell.__init__): Added __name__ to the global
4632 (InteractiveShell.__init__): Added __name__ to the global
4621 namespace so that things like Itpl which rely on its existence
4633 namespace so that things like Itpl which rely on its existence
4622 don't crash.
4634 don't crash.
4623 (InteractiveShell._prefilter): Defined the default with a _ so
4635 (InteractiveShell._prefilter): Defined the default with a _ so
4624 that prefilter() is easier to override, while the default one
4636 that prefilter() is easier to override, while the default one
4625 remains available.
4637 remains available.
4626
4638
4627 2002-04-18 Fernando Perez <fperez@colorado.edu>
4639 2002-04-18 Fernando Perez <fperez@colorado.edu>
4628
4640
4629 * Added information about pdb in the docs.
4641 * Added information about pdb in the docs.
4630
4642
4631 2002-04-17 Fernando Perez <fperez@colorado.edu>
4643 2002-04-17 Fernando Perez <fperez@colorado.edu>
4632
4644
4633 * IPython/ipmaker.py (make_IPython): added rc_override option to
4645 * IPython/ipmaker.py (make_IPython): added rc_override option to
4634 allow passing config options at creation time which may override
4646 allow passing config options at creation time which may override
4635 anything set in the config files or command line. This is
4647 anything set in the config files or command line. This is
4636 particularly useful for configuring embedded instances.
4648 particularly useful for configuring embedded instances.
4637
4649
4638 2002-04-15 Fernando Perez <fperez@colorado.edu>
4650 2002-04-15 Fernando Perez <fperez@colorado.edu>
4639
4651
4640 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4652 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4641 crash embedded instances because of the input cache falling out of
4653 crash embedded instances because of the input cache falling out of
4642 sync with the output counter.
4654 sync with the output counter.
4643
4655
4644 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4656 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4645 mode which calls pdb after an uncaught exception in IPython itself.
4657 mode which calls pdb after an uncaught exception in IPython itself.
4646
4658
4647 2002-04-14 Fernando Perez <fperez@colorado.edu>
4659 2002-04-14 Fernando Perez <fperez@colorado.edu>
4648
4660
4649 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4661 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4650 readline, fix it back after each call.
4662 readline, fix it back after each call.
4651
4663
4652 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4664 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4653 method to force all access via __call__(), which guarantees that
4665 method to force all access via __call__(), which guarantees that
4654 traceback references are properly deleted.
4666 traceback references are properly deleted.
4655
4667
4656 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4668 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4657 improve printing when pprint is in use.
4669 improve printing when pprint is in use.
4658
4670
4659 2002-04-13 Fernando Perez <fperez@colorado.edu>
4671 2002-04-13 Fernando Perez <fperez@colorado.edu>
4660
4672
4661 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4673 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4662 exceptions aren't caught anymore. If the user triggers one, he
4674 exceptions aren't caught anymore. If the user triggers one, he
4663 should know why he's doing it and it should go all the way up,
4675 should know why he's doing it and it should go all the way up,
4664 just like any other exception. So now @abort will fully kill the
4676 just like any other exception. So now @abort will fully kill the
4665 embedded interpreter and the embedding code (unless that happens
4677 embedded interpreter and the embedding code (unless that happens
4666 to catch SystemExit).
4678 to catch SystemExit).
4667
4679
4668 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4680 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4669 and a debugger() method to invoke the interactive pdb debugger
4681 and a debugger() method to invoke the interactive pdb debugger
4670 after printing exception information. Also added the corresponding
4682 after printing exception information. Also added the corresponding
4671 -pdb option and @pdb magic to control this feature, and updated
4683 -pdb option and @pdb magic to control this feature, and updated
4672 the docs. After a suggestion from Christopher Hart
4684 the docs. After a suggestion from Christopher Hart
4673 (hart-AT-caltech.edu).
4685 (hart-AT-caltech.edu).
4674
4686
4675 2002-04-12 Fernando Perez <fperez@colorado.edu>
4687 2002-04-12 Fernando Perez <fperez@colorado.edu>
4676
4688
4677 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4689 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4678 the exception handlers defined by the user (not the CrashHandler)
4690 the exception handlers defined by the user (not the CrashHandler)
4679 so that user exceptions don't trigger an ipython bug report.
4691 so that user exceptions don't trigger an ipython bug report.
4680
4692
4681 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4693 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4682 configurable (it should have always been so).
4694 configurable (it should have always been so).
4683
4695
4684 2002-03-26 Fernando Perez <fperez@colorado.edu>
4696 2002-03-26 Fernando Perez <fperez@colorado.edu>
4685
4697
4686 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4698 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4687 and there to fix embedding namespace issues. This should all be
4699 and there to fix embedding namespace issues. This should all be
4688 done in a more elegant way.
4700 done in a more elegant way.
4689
4701
4690 2002-03-25 Fernando Perez <fperez@colorado.edu>
4702 2002-03-25 Fernando Perez <fperez@colorado.edu>
4691
4703
4692 * IPython/genutils.py (get_home_dir): Try to make it work under
4704 * IPython/genutils.py (get_home_dir): Try to make it work under
4693 win9x also.
4705 win9x also.
4694
4706
4695 2002-03-20 Fernando Perez <fperez@colorado.edu>
4707 2002-03-20 Fernando Perez <fperez@colorado.edu>
4696
4708
4697 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4709 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4698 sys.displayhook untouched upon __init__.
4710 sys.displayhook untouched upon __init__.
4699
4711
4700 2002-03-19 Fernando Perez <fperez@colorado.edu>
4712 2002-03-19 Fernando Perez <fperez@colorado.edu>
4701
4713
4702 * Released 0.2.9 (for embedding bug, basically).
4714 * Released 0.2.9 (for embedding bug, basically).
4703
4715
4704 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4716 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4705 exceptions so that enclosing shell's state can be restored.
4717 exceptions so that enclosing shell's state can be restored.
4706
4718
4707 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4719 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4708 naming conventions in the .ipython/ dir.
4720 naming conventions in the .ipython/ dir.
4709
4721
4710 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4722 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4711 from delimiters list so filenames with - in them get expanded.
4723 from delimiters list so filenames with - in them get expanded.
4712
4724
4713 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4725 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4714 sys.displayhook not being properly restored after an embedded call.
4726 sys.displayhook not being properly restored after an embedded call.
4715
4727
4716 2002-03-18 Fernando Perez <fperez@colorado.edu>
4728 2002-03-18 Fernando Perez <fperez@colorado.edu>
4717
4729
4718 * Released 0.2.8
4730 * Released 0.2.8
4719
4731
4720 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4732 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4721 some files weren't being included in a -upgrade.
4733 some files weren't being included in a -upgrade.
4722 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4734 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4723 on' so that the first tab completes.
4735 on' so that the first tab completes.
4724 (InteractiveShell.handle_magic): fixed bug with spaces around
4736 (InteractiveShell.handle_magic): fixed bug with spaces around
4725 quotes breaking many magic commands.
4737 quotes breaking many magic commands.
4726
4738
4727 * setup.py: added note about ignoring the syntax error messages at
4739 * setup.py: added note about ignoring the syntax error messages at
4728 installation.
4740 installation.
4729
4741
4730 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4742 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4731 streamlining the gnuplot interface, now there's only one magic @gp.
4743 streamlining the gnuplot interface, now there's only one magic @gp.
4732
4744
4733 2002-03-17 Fernando Perez <fperez@colorado.edu>
4745 2002-03-17 Fernando Perez <fperez@colorado.edu>
4734
4746
4735 * IPython/UserConfig/magic_gnuplot.py: new name for the
4747 * IPython/UserConfig/magic_gnuplot.py: new name for the
4736 example-magic_pm.py file. Much enhanced system, now with a shell
4748 example-magic_pm.py file. Much enhanced system, now with a shell
4737 for communicating directly with gnuplot, one command at a time.
4749 for communicating directly with gnuplot, one command at a time.
4738
4750
4739 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4751 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4740 setting __name__=='__main__'.
4752 setting __name__=='__main__'.
4741
4753
4742 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4754 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4743 mini-shell for accessing gnuplot from inside ipython. Should
4755 mini-shell for accessing gnuplot from inside ipython. Should
4744 extend it later for grace access too. Inspired by Arnd's
4756 extend it later for grace access too. Inspired by Arnd's
4745 suggestion.
4757 suggestion.
4746
4758
4747 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4759 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4748 calling magic functions with () in their arguments. Thanks to Arnd
4760 calling magic functions with () in their arguments. Thanks to Arnd
4749 Baecker for pointing this to me.
4761 Baecker for pointing this to me.
4750
4762
4751 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4763 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4752 infinitely for integer or complex arrays (only worked with floats).
4764 infinitely for integer or complex arrays (only worked with floats).
4753
4765
4754 2002-03-16 Fernando Perez <fperez@colorado.edu>
4766 2002-03-16 Fernando Perez <fperez@colorado.edu>
4755
4767
4756 * setup.py: Merged setup and setup_windows into a single script
4768 * setup.py: Merged setup and setup_windows into a single script
4757 which properly handles things for windows users.
4769 which properly handles things for windows users.
4758
4770
4759 2002-03-15 Fernando Perez <fperez@colorado.edu>
4771 2002-03-15 Fernando Perez <fperez@colorado.edu>
4760
4772
4761 * Big change to the manual: now the magics are all automatically
4773 * Big change to the manual: now the magics are all automatically
4762 documented. This information is generated from their docstrings
4774 documented. This information is generated from their docstrings
4763 and put in a latex file included by the manual lyx file. This way
4775 and put in a latex file included by the manual lyx file. This way
4764 we get always up to date information for the magics. The manual
4776 we get always up to date information for the magics. The manual
4765 now also has proper version information, also auto-synced.
4777 now also has proper version information, also auto-synced.
4766
4778
4767 For this to work, an undocumented --magic_docstrings option was added.
4779 For this to work, an undocumented --magic_docstrings option was added.
4768
4780
4769 2002-03-13 Fernando Perez <fperez@colorado.edu>
4781 2002-03-13 Fernando Perez <fperez@colorado.edu>
4770
4782
4771 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4783 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4772 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4784 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4773
4785
4774 2002-03-12 Fernando Perez <fperez@colorado.edu>
4786 2002-03-12 Fernando Perez <fperez@colorado.edu>
4775
4787
4776 * IPython/ultraTB.py (TermColors): changed color escapes again to
4788 * IPython/ultraTB.py (TermColors): changed color escapes again to
4777 fix the (old, reintroduced) line-wrapping bug. Basically, if
4789 fix the (old, reintroduced) line-wrapping bug. Basically, if
4778 \001..\002 aren't given in the color escapes, lines get wrapped
4790 \001..\002 aren't given in the color escapes, lines get wrapped
4779 weirdly. But giving those screws up old xterms and emacs terms. So
4791 weirdly. But giving those screws up old xterms and emacs terms. So
4780 I added some logic for emacs terms to be ok, but I can't identify old
4792 I added some logic for emacs terms to be ok, but I can't identify old
4781 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4793 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4782
4794
4783 2002-03-10 Fernando Perez <fperez@colorado.edu>
4795 2002-03-10 Fernando Perez <fperez@colorado.edu>
4784
4796
4785 * IPython/usage.py (__doc__): Various documentation cleanups and
4797 * IPython/usage.py (__doc__): Various documentation cleanups and
4786 updates, both in usage docstrings and in the manual.
4798 updates, both in usage docstrings and in the manual.
4787
4799
4788 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4800 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4789 handling of caching. Set minimum acceptabe value for having a
4801 handling of caching. Set minimum acceptabe value for having a
4790 cache at 20 values.
4802 cache at 20 values.
4791
4803
4792 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4804 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4793 install_first_time function to a method, renamed it and added an
4805 install_first_time function to a method, renamed it and added an
4794 'upgrade' mode. Now people can update their config directory with
4806 'upgrade' mode. Now people can update their config directory with
4795 a simple command line switch (-upgrade, also new).
4807 a simple command line switch (-upgrade, also new).
4796
4808
4797 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4809 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4798 @file (convenient for automagic users under Python >= 2.2).
4810 @file (convenient for automagic users under Python >= 2.2).
4799 Removed @files (it seemed more like a plural than an abbrev. of
4811 Removed @files (it seemed more like a plural than an abbrev. of
4800 'file show').
4812 'file show').
4801
4813
4802 * IPython/iplib.py (install_first_time): Fixed crash if there were
4814 * IPython/iplib.py (install_first_time): Fixed crash if there were
4803 backup files ('~') in .ipython/ install directory.
4815 backup files ('~') in .ipython/ install directory.
4804
4816
4805 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4817 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4806 system. Things look fine, but these changes are fairly
4818 system. Things look fine, but these changes are fairly
4807 intrusive. Test them for a few days.
4819 intrusive. Test them for a few days.
4808
4820
4809 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4821 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4810 the prompts system. Now all in/out prompt strings are user
4822 the prompts system. Now all in/out prompt strings are user
4811 controllable. This is particularly useful for embedding, as one
4823 controllable. This is particularly useful for embedding, as one
4812 can tag embedded instances with particular prompts.
4824 can tag embedded instances with particular prompts.
4813
4825
4814 Also removed global use of sys.ps1/2, which now allows nested
4826 Also removed global use of sys.ps1/2, which now allows nested
4815 embeddings without any problems. Added command-line options for
4827 embeddings without any problems. Added command-line options for
4816 the prompt strings.
4828 the prompt strings.
4817
4829
4818 2002-03-08 Fernando Perez <fperez@colorado.edu>
4830 2002-03-08 Fernando Perez <fperez@colorado.edu>
4819
4831
4820 * IPython/UserConfig/example-embed-short.py (ipshell): added
4832 * IPython/UserConfig/example-embed-short.py (ipshell): added
4821 example file with the bare minimum code for embedding.
4833 example file with the bare minimum code for embedding.
4822
4834
4823 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4835 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4824 functionality for the embeddable shell to be activated/deactivated
4836 functionality for the embeddable shell to be activated/deactivated
4825 either globally or at each call.
4837 either globally or at each call.
4826
4838
4827 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4839 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4828 rewriting the prompt with '--->' for auto-inputs with proper
4840 rewriting the prompt with '--->' for auto-inputs with proper
4829 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4841 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4830 this is handled by the prompts class itself, as it should.
4842 this is handled by the prompts class itself, as it should.
4831
4843
4832 2002-03-05 Fernando Perez <fperez@colorado.edu>
4844 2002-03-05 Fernando Perez <fperez@colorado.edu>
4833
4845
4834 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4846 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4835 @logstart to avoid name clashes with the math log function.
4847 @logstart to avoid name clashes with the math log function.
4836
4848
4837 * Big updates to X/Emacs section of the manual.
4849 * Big updates to X/Emacs section of the manual.
4838
4850
4839 * Removed ipython_emacs. Milan explained to me how to pass
4851 * Removed ipython_emacs. Milan explained to me how to pass
4840 arguments to ipython through Emacs. Some day I'm going to end up
4852 arguments to ipython through Emacs. Some day I'm going to end up
4841 learning some lisp...
4853 learning some lisp...
4842
4854
4843 2002-03-04 Fernando Perez <fperez@colorado.edu>
4855 2002-03-04 Fernando Perez <fperez@colorado.edu>
4844
4856
4845 * IPython/ipython_emacs: Created script to be used as the
4857 * IPython/ipython_emacs: Created script to be used as the
4846 py-python-command Emacs variable so we can pass IPython
4858 py-python-command Emacs variable so we can pass IPython
4847 parameters. I can't figure out how to tell Emacs directly to pass
4859 parameters. I can't figure out how to tell Emacs directly to pass
4848 parameters to IPython, so a dummy shell script will do it.
4860 parameters to IPython, so a dummy shell script will do it.
4849
4861
4850 Other enhancements made for things to work better under Emacs'
4862 Other enhancements made for things to work better under Emacs'
4851 various types of terminals. Many thanks to Milan Zamazal
4863 various types of terminals. Many thanks to Milan Zamazal
4852 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4864 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4853
4865
4854 2002-03-01 Fernando Perez <fperez@colorado.edu>
4866 2002-03-01 Fernando Perez <fperez@colorado.edu>
4855
4867
4856 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4868 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4857 that loading of readline is now optional. This gives better
4869 that loading of readline is now optional. This gives better
4858 control to emacs users.
4870 control to emacs users.
4859
4871
4860 * IPython/ultraTB.py (__date__): Modified color escape sequences
4872 * IPython/ultraTB.py (__date__): Modified color escape sequences
4861 and now things work fine under xterm and in Emacs' term buffers
4873 and now things work fine under xterm and in Emacs' term buffers
4862 (though not shell ones). Well, in emacs you get colors, but all
4874 (though not shell ones). Well, in emacs you get colors, but all
4863 seem to be 'light' colors (no difference between dark and light
4875 seem to be 'light' colors (no difference between dark and light
4864 ones). But the garbage chars are gone, and also in xterms. It
4876 ones). But the garbage chars are gone, and also in xterms. It
4865 seems that now I'm using 'cleaner' ansi sequences.
4877 seems that now I'm using 'cleaner' ansi sequences.
4866
4878
4867 2002-02-21 Fernando Perez <fperez@colorado.edu>
4879 2002-02-21 Fernando Perez <fperez@colorado.edu>
4868
4880
4869 * Released 0.2.7 (mainly to publish the scoping fix).
4881 * Released 0.2.7 (mainly to publish the scoping fix).
4870
4882
4871 * IPython/Logger.py (Logger.logstate): added. A corresponding
4883 * IPython/Logger.py (Logger.logstate): added. A corresponding
4872 @logstate magic was created.
4884 @logstate magic was created.
4873
4885
4874 * IPython/Magic.py: fixed nested scoping problem under Python
4886 * IPython/Magic.py: fixed nested scoping problem under Python
4875 2.1.x (automagic wasn't working).
4887 2.1.x (automagic wasn't working).
4876
4888
4877 2002-02-20 Fernando Perez <fperez@colorado.edu>
4889 2002-02-20 Fernando Perez <fperez@colorado.edu>
4878
4890
4879 * Released 0.2.6.
4891 * Released 0.2.6.
4880
4892
4881 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4893 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4882 option so that logs can come out without any headers at all.
4894 option so that logs can come out without any headers at all.
4883
4895
4884 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4896 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4885 SciPy.
4897 SciPy.
4886
4898
4887 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4899 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4888 that embedded IPython calls don't require vars() to be explicitly
4900 that embedded IPython calls don't require vars() to be explicitly
4889 passed. Now they are extracted from the caller's frame (code
4901 passed. Now they are extracted from the caller's frame (code
4890 snatched from Eric Jones' weave). Added better documentation to
4902 snatched from Eric Jones' weave). Added better documentation to
4891 the section on embedding and the example file.
4903 the section on embedding and the example file.
4892
4904
4893 * IPython/genutils.py (page): Changed so that under emacs, it just
4905 * IPython/genutils.py (page): Changed so that under emacs, it just
4894 prints the string. You can then page up and down in the emacs
4906 prints the string. You can then page up and down in the emacs
4895 buffer itself. This is how the builtin help() works.
4907 buffer itself. This is how the builtin help() works.
4896
4908
4897 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4909 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4898 macro scoping: macros need to be executed in the user's namespace
4910 macro scoping: macros need to be executed in the user's namespace
4899 to work as if they had been typed by the user.
4911 to work as if they had been typed by the user.
4900
4912
4901 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4913 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4902 execute automatically (no need to type 'exec...'). They then
4914 execute automatically (no need to type 'exec...'). They then
4903 behave like 'true macros'. The printing system was also modified
4915 behave like 'true macros'. The printing system was also modified
4904 for this to work.
4916 for this to work.
4905
4917
4906 2002-02-19 Fernando Perez <fperez@colorado.edu>
4918 2002-02-19 Fernando Perez <fperez@colorado.edu>
4907
4919
4908 * IPython/genutils.py (page_file): new function for paging files
4920 * IPython/genutils.py (page_file): new function for paging files
4909 in an OS-independent way. Also necessary for file viewing to work
4921 in an OS-independent way. Also necessary for file viewing to work
4910 well inside Emacs buffers.
4922 well inside Emacs buffers.
4911 (page): Added checks for being in an emacs buffer.
4923 (page): Added checks for being in an emacs buffer.
4912 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4924 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4913 same bug in iplib.
4925 same bug in iplib.
4914
4926
4915 2002-02-18 Fernando Perez <fperez@colorado.edu>
4927 2002-02-18 Fernando Perez <fperez@colorado.edu>
4916
4928
4917 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4929 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4918 of readline so that IPython can work inside an Emacs buffer.
4930 of readline so that IPython can work inside an Emacs buffer.
4919
4931
4920 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4932 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4921 method signatures (they weren't really bugs, but it looks cleaner
4933 method signatures (they weren't really bugs, but it looks cleaner
4922 and keeps PyChecker happy).
4934 and keeps PyChecker happy).
4923
4935
4924 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4936 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4925 for implementing various user-defined hooks. Currently only
4937 for implementing various user-defined hooks. Currently only
4926 display is done.
4938 display is done.
4927
4939
4928 * IPython/Prompts.py (CachedOutput._display): changed display
4940 * IPython/Prompts.py (CachedOutput._display): changed display
4929 functions so that they can be dynamically changed by users easily.
4941 functions so that they can be dynamically changed by users easily.
4930
4942
4931 * IPython/Extensions/numeric_formats.py (num_display): added an
4943 * IPython/Extensions/numeric_formats.py (num_display): added an
4932 extension for printing NumPy arrays in flexible manners. It
4944 extension for printing NumPy arrays in flexible manners. It
4933 doesn't do anything yet, but all the structure is in
4945 doesn't do anything yet, but all the structure is in
4934 place. Ultimately the plan is to implement output format control
4946 place. Ultimately the plan is to implement output format control
4935 like in Octave.
4947 like in Octave.
4936
4948
4937 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4949 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4938 methods are found at run-time by all the automatic machinery.
4950 methods are found at run-time by all the automatic machinery.
4939
4951
4940 2002-02-17 Fernando Perez <fperez@colorado.edu>
4952 2002-02-17 Fernando Perez <fperez@colorado.edu>
4941
4953
4942 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4954 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4943 whole file a little.
4955 whole file a little.
4944
4956
4945 * ToDo: closed this document. Now there's a new_design.lyx
4957 * ToDo: closed this document. Now there's a new_design.lyx
4946 document for all new ideas. Added making a pdf of it for the
4958 document for all new ideas. Added making a pdf of it for the
4947 end-user distro.
4959 end-user distro.
4948
4960
4949 * IPython/Logger.py (Logger.switch_log): Created this to replace
4961 * IPython/Logger.py (Logger.switch_log): Created this to replace
4950 logon() and logoff(). It also fixes a nasty crash reported by
4962 logon() and logoff(). It also fixes a nasty crash reported by
4951 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4963 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4952
4964
4953 * IPython/iplib.py (complete): got auto-completion to work with
4965 * IPython/iplib.py (complete): got auto-completion to work with
4954 automagic (I had wanted this for a long time).
4966 automagic (I had wanted this for a long time).
4955
4967
4956 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4968 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4957 to @file, since file() is now a builtin and clashes with automagic
4969 to @file, since file() is now a builtin and clashes with automagic
4958 for @file.
4970 for @file.
4959
4971
4960 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4972 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4961 of this was previously in iplib, which had grown to more than 2000
4973 of this was previously in iplib, which had grown to more than 2000
4962 lines, way too long. No new functionality, but it makes managing
4974 lines, way too long. No new functionality, but it makes managing
4963 the code a bit easier.
4975 the code a bit easier.
4964
4976
4965 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4977 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4966 information to crash reports.
4978 information to crash reports.
4967
4979
4968 2002-02-12 Fernando Perez <fperez@colorado.edu>
4980 2002-02-12 Fernando Perez <fperez@colorado.edu>
4969
4981
4970 * Released 0.2.5.
4982 * Released 0.2.5.
4971
4983
4972 2002-02-11 Fernando Perez <fperez@colorado.edu>
4984 2002-02-11 Fernando Perez <fperez@colorado.edu>
4973
4985
4974 * Wrote a relatively complete Windows installer. It puts
4986 * Wrote a relatively complete Windows installer. It puts
4975 everything in place, creates Start Menu entries and fixes the
4987 everything in place, creates Start Menu entries and fixes the
4976 color issues. Nothing fancy, but it works.
4988 color issues. Nothing fancy, but it works.
4977
4989
4978 2002-02-10 Fernando Perez <fperez@colorado.edu>
4990 2002-02-10 Fernando Perez <fperez@colorado.edu>
4979
4991
4980 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4992 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4981 os.path.expanduser() call so that we can type @run ~/myfile.py and
4993 os.path.expanduser() call so that we can type @run ~/myfile.py and
4982 have thigs work as expected.
4994 have thigs work as expected.
4983
4995
4984 * IPython/genutils.py (page): fixed exception handling so things
4996 * IPython/genutils.py (page): fixed exception handling so things
4985 work both in Unix and Windows correctly. Quitting a pager triggers
4997 work both in Unix and Windows correctly. Quitting a pager triggers
4986 an IOError/broken pipe in Unix, and in windows not finding a pager
4998 an IOError/broken pipe in Unix, and in windows not finding a pager
4987 is also an IOError, so I had to actually look at the return value
4999 is also an IOError, so I had to actually look at the return value
4988 of the exception, not just the exception itself. Should be ok now.
5000 of the exception, not just the exception itself. Should be ok now.
4989
5001
4990 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5002 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4991 modified to allow case-insensitive color scheme changes.
5003 modified to allow case-insensitive color scheme changes.
4992
5004
4993 2002-02-09 Fernando Perez <fperez@colorado.edu>
5005 2002-02-09 Fernando Perez <fperez@colorado.edu>
4994
5006
4995 * IPython/genutils.py (native_line_ends): new function to leave
5007 * IPython/genutils.py (native_line_ends): new function to leave
4996 user config files with os-native line-endings.
5008 user config files with os-native line-endings.
4997
5009
4998 * README and manual updates.
5010 * README and manual updates.
4999
5011
5000 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5012 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5001 instead of StringType to catch Unicode strings.
5013 instead of StringType to catch Unicode strings.
5002
5014
5003 * IPython/genutils.py (filefind): fixed bug for paths with
5015 * IPython/genutils.py (filefind): fixed bug for paths with
5004 embedded spaces (very common in Windows).
5016 embedded spaces (very common in Windows).
5005
5017
5006 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5018 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5007 files under Windows, so that they get automatically associated
5019 files under Windows, so that they get automatically associated
5008 with a text editor. Windows makes it a pain to handle
5020 with a text editor. Windows makes it a pain to handle
5009 extension-less files.
5021 extension-less files.
5010
5022
5011 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5023 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5012 warning about readline only occur for Posix. In Windows there's no
5024 warning about readline only occur for Posix. In Windows there's no
5013 way to get readline, so why bother with the warning.
5025 way to get readline, so why bother with the warning.
5014
5026
5015 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5027 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5016 for __str__ instead of dir(self), since dir() changed in 2.2.
5028 for __str__ instead of dir(self), since dir() changed in 2.2.
5017
5029
5018 * Ported to Windows! Tested on XP, I suspect it should work fine
5030 * Ported to Windows! Tested on XP, I suspect it should work fine
5019 on NT/2000, but I don't think it will work on 98 et al. That
5031 on NT/2000, but I don't think it will work on 98 et al. That
5020 series of Windows is such a piece of junk anyway that I won't try
5032 series of Windows is such a piece of junk anyway that I won't try
5021 porting it there. The XP port was straightforward, showed a few
5033 porting it there. The XP port was straightforward, showed a few
5022 bugs here and there (fixed all), in particular some string
5034 bugs here and there (fixed all), in particular some string
5023 handling stuff which required considering Unicode strings (which
5035 handling stuff which required considering Unicode strings (which
5024 Windows uses). This is good, but hasn't been too tested :) No
5036 Windows uses). This is good, but hasn't been too tested :) No
5025 fancy installer yet, I'll put a note in the manual so people at
5037 fancy installer yet, I'll put a note in the manual so people at
5026 least make manually a shortcut.
5038 least make manually a shortcut.
5027
5039
5028 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5040 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5029 into a single one, "colors". This now controls both prompt and
5041 into a single one, "colors". This now controls both prompt and
5030 exception color schemes, and can be changed both at startup
5042 exception color schemes, and can be changed both at startup
5031 (either via command-line switches or via ipythonrc files) and at
5043 (either via command-line switches or via ipythonrc files) and at
5032 runtime, with @colors.
5044 runtime, with @colors.
5033 (Magic.magic_run): renamed @prun to @run and removed the old
5045 (Magic.magic_run): renamed @prun to @run and removed the old
5034 @run. The two were too similar to warrant keeping both.
5046 @run. The two were too similar to warrant keeping both.
5035
5047
5036 2002-02-03 Fernando Perez <fperez@colorado.edu>
5048 2002-02-03 Fernando Perez <fperez@colorado.edu>
5037
5049
5038 * IPython/iplib.py (install_first_time): Added comment on how to
5050 * IPython/iplib.py (install_first_time): Added comment on how to
5039 configure the color options for first-time users. Put a <return>
5051 configure the color options for first-time users. Put a <return>
5040 request at the end so that small-terminal users get a chance to
5052 request at the end so that small-terminal users get a chance to
5041 read the startup info.
5053 read the startup info.
5042
5054
5043 2002-01-23 Fernando Perez <fperez@colorado.edu>
5055 2002-01-23 Fernando Perez <fperez@colorado.edu>
5044
5056
5045 * IPython/iplib.py (CachedOutput.update): Changed output memory
5057 * IPython/iplib.py (CachedOutput.update): Changed output memory
5046 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5058 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5047 input history we still use _i. Did this b/c these variable are
5059 input history we still use _i. Did this b/c these variable are
5048 very commonly used in interactive work, so the less we need to
5060 very commonly used in interactive work, so the less we need to
5049 type the better off we are.
5061 type the better off we are.
5050 (Magic.magic_prun): updated @prun to better handle the namespaces
5062 (Magic.magic_prun): updated @prun to better handle the namespaces
5051 the file will run in, including a fix for __name__ not being set
5063 the file will run in, including a fix for __name__ not being set
5052 before.
5064 before.
5053
5065
5054 2002-01-20 Fernando Perez <fperez@colorado.edu>
5066 2002-01-20 Fernando Perez <fperez@colorado.edu>
5055
5067
5056 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5068 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5057 extra garbage for Python 2.2. Need to look more carefully into
5069 extra garbage for Python 2.2. Need to look more carefully into
5058 this later.
5070 this later.
5059
5071
5060 2002-01-19 Fernando Perez <fperez@colorado.edu>
5072 2002-01-19 Fernando Perez <fperez@colorado.edu>
5061
5073
5062 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5074 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5063 display SyntaxError exceptions properly formatted when they occur
5075 display SyntaxError exceptions properly formatted when they occur
5064 (they can be triggered by imported code).
5076 (they can be triggered by imported code).
5065
5077
5066 2002-01-18 Fernando Perez <fperez@colorado.edu>
5078 2002-01-18 Fernando Perez <fperez@colorado.edu>
5067
5079
5068 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5080 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5069 SyntaxError exceptions are reported nicely formatted, instead of
5081 SyntaxError exceptions are reported nicely formatted, instead of
5070 spitting out only offset information as before.
5082 spitting out only offset information as before.
5071 (Magic.magic_prun): Added the @prun function for executing
5083 (Magic.magic_prun): Added the @prun function for executing
5072 programs with command line args inside IPython.
5084 programs with command line args inside IPython.
5073
5085
5074 2002-01-16 Fernando Perez <fperez@colorado.edu>
5086 2002-01-16 Fernando Perez <fperez@colorado.edu>
5075
5087
5076 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5088 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5077 to *not* include the last item given in a range. This brings their
5089 to *not* include the last item given in a range. This brings their
5078 behavior in line with Python's slicing:
5090 behavior in line with Python's slicing:
5079 a[n1:n2] -> a[n1]...a[n2-1]
5091 a[n1:n2] -> a[n1]...a[n2-1]
5080 It may be a bit less convenient, but I prefer to stick to Python's
5092 It may be a bit less convenient, but I prefer to stick to Python's
5081 conventions *everywhere*, so users never have to wonder.
5093 conventions *everywhere*, so users never have to wonder.
5082 (Magic.magic_macro): Added @macro function to ease the creation of
5094 (Magic.magic_macro): Added @macro function to ease the creation of
5083 macros.
5095 macros.
5084
5096
5085 2002-01-05 Fernando Perez <fperez@colorado.edu>
5097 2002-01-05 Fernando Perez <fperez@colorado.edu>
5086
5098
5087 * Released 0.2.4.
5099 * Released 0.2.4.
5088
5100
5089 * IPython/iplib.py (Magic.magic_pdef):
5101 * IPython/iplib.py (Magic.magic_pdef):
5090 (InteractiveShell.safe_execfile): report magic lines and error
5102 (InteractiveShell.safe_execfile): report magic lines and error
5091 lines without line numbers so one can easily copy/paste them for
5103 lines without line numbers so one can easily copy/paste them for
5092 re-execution.
5104 re-execution.
5093
5105
5094 * Updated manual with recent changes.
5106 * Updated manual with recent changes.
5095
5107
5096 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5108 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5097 docstring printing when class? is called. Very handy for knowing
5109 docstring printing when class? is called. Very handy for knowing
5098 how to create class instances (as long as __init__ is well
5110 how to create class instances (as long as __init__ is well
5099 documented, of course :)
5111 documented, of course :)
5100 (Magic.magic_doc): print both class and constructor docstrings.
5112 (Magic.magic_doc): print both class and constructor docstrings.
5101 (Magic.magic_pdef): give constructor info if passed a class and
5113 (Magic.magic_pdef): give constructor info if passed a class and
5102 __call__ info for callable object instances.
5114 __call__ info for callable object instances.
5103
5115
5104 2002-01-04 Fernando Perez <fperez@colorado.edu>
5116 2002-01-04 Fernando Perez <fperez@colorado.edu>
5105
5117
5106 * Made deep_reload() off by default. It doesn't always work
5118 * Made deep_reload() off by default. It doesn't always work
5107 exactly as intended, so it's probably safer to have it off. It's
5119 exactly as intended, so it's probably safer to have it off. It's
5108 still available as dreload() anyway, so nothing is lost.
5120 still available as dreload() anyway, so nothing is lost.
5109
5121
5110 2002-01-02 Fernando Perez <fperez@colorado.edu>
5122 2002-01-02 Fernando Perez <fperez@colorado.edu>
5111
5123
5112 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5124 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5113 so I wanted an updated release).
5125 so I wanted an updated release).
5114
5126
5115 2001-12-27 Fernando Perez <fperez@colorado.edu>
5127 2001-12-27 Fernando Perez <fperez@colorado.edu>
5116
5128
5117 * IPython/iplib.py (InteractiveShell.interact): Added the original
5129 * IPython/iplib.py (InteractiveShell.interact): Added the original
5118 code from 'code.py' for this module in order to change the
5130 code from 'code.py' for this module in order to change the
5119 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5131 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5120 the history cache would break when the user hit Ctrl-C, and
5132 the history cache would break when the user hit Ctrl-C, and
5121 interact() offers no way to add any hooks to it.
5133 interact() offers no way to add any hooks to it.
5122
5134
5123 2001-12-23 Fernando Perez <fperez@colorado.edu>
5135 2001-12-23 Fernando Perez <fperez@colorado.edu>
5124
5136
5125 * setup.py: added check for 'MANIFEST' before trying to remove
5137 * setup.py: added check for 'MANIFEST' before trying to remove
5126 it. Thanks to Sean Reifschneider.
5138 it. Thanks to Sean Reifschneider.
5127
5139
5128 2001-12-22 Fernando Perez <fperez@colorado.edu>
5140 2001-12-22 Fernando Perez <fperez@colorado.edu>
5129
5141
5130 * Released 0.2.2.
5142 * Released 0.2.2.
5131
5143
5132 * Finished (reasonably) writing the manual. Later will add the
5144 * Finished (reasonably) writing the manual. Later will add the
5133 python-standard navigation stylesheets, but for the time being
5145 python-standard navigation stylesheets, but for the time being
5134 it's fairly complete. Distribution will include html and pdf
5146 it's fairly complete. Distribution will include html and pdf
5135 versions.
5147 versions.
5136
5148
5137 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5149 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5138 (MayaVi author).
5150 (MayaVi author).
5139
5151
5140 2001-12-21 Fernando Perez <fperez@colorado.edu>
5152 2001-12-21 Fernando Perez <fperez@colorado.edu>
5141
5153
5142 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5154 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5143 good public release, I think (with the manual and the distutils
5155 good public release, I think (with the manual and the distutils
5144 installer). The manual can use some work, but that can go
5156 installer). The manual can use some work, but that can go
5145 slowly. Otherwise I think it's quite nice for end users. Next
5157 slowly. Otherwise I think it's quite nice for end users. Next
5146 summer, rewrite the guts of it...
5158 summer, rewrite the guts of it...
5147
5159
5148 * Changed format of ipythonrc files to use whitespace as the
5160 * Changed format of ipythonrc files to use whitespace as the
5149 separator instead of an explicit '='. Cleaner.
5161 separator instead of an explicit '='. Cleaner.
5150
5162
5151 2001-12-20 Fernando Perez <fperez@colorado.edu>
5163 2001-12-20 Fernando Perez <fperez@colorado.edu>
5152
5164
5153 * Started a manual in LyX. For now it's just a quick merge of the
5165 * Started a manual in LyX. For now it's just a quick merge of the
5154 various internal docstrings and READMEs. Later it may grow into a
5166 various internal docstrings and READMEs. Later it may grow into a
5155 nice, full-blown manual.
5167 nice, full-blown manual.
5156
5168
5157 * Set up a distutils based installer. Installation should now be
5169 * Set up a distutils based installer. Installation should now be
5158 trivially simple for end-users.
5170 trivially simple for end-users.
5159
5171
5160 2001-12-11 Fernando Perez <fperez@colorado.edu>
5172 2001-12-11 Fernando Perez <fperez@colorado.edu>
5161
5173
5162 * Released 0.2.0. First public release, announced it at
5174 * Released 0.2.0. First public release, announced it at
5163 comp.lang.python. From now on, just bugfixes...
5175 comp.lang.python. From now on, just bugfixes...
5164
5176
5165 * Went through all the files, set copyright/license notices and
5177 * Went through all the files, set copyright/license notices and
5166 cleaned up things. Ready for release.
5178 cleaned up things. Ready for release.
5167
5179
5168 2001-12-10 Fernando Perez <fperez@colorado.edu>
5180 2001-12-10 Fernando Perez <fperez@colorado.edu>
5169
5181
5170 * Changed the first-time installer not to use tarfiles. It's more
5182 * Changed the first-time installer not to use tarfiles. It's more
5171 robust now and less unix-dependent. Also makes it easier for
5183 robust now and less unix-dependent. Also makes it easier for
5172 people to later upgrade versions.
5184 people to later upgrade versions.
5173
5185
5174 * Changed @exit to @abort to reflect the fact that it's pretty
5186 * Changed @exit to @abort to reflect the fact that it's pretty
5175 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5187 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5176 becomes significant only when IPyhton is embedded: in that case,
5188 becomes significant only when IPyhton is embedded: in that case,
5177 C-D closes IPython only, but @abort kills the enclosing program
5189 C-D closes IPython only, but @abort kills the enclosing program
5178 too (unless it had called IPython inside a try catching
5190 too (unless it had called IPython inside a try catching
5179 SystemExit).
5191 SystemExit).
5180
5192
5181 * Created Shell module which exposes the actuall IPython Shell
5193 * Created Shell module which exposes the actuall IPython Shell
5182 classes, currently the normal and the embeddable one. This at
5194 classes, currently the normal and the embeddable one. This at
5183 least offers a stable interface we won't need to change when
5195 least offers a stable interface we won't need to change when
5184 (later) the internals are rewritten. That rewrite will be confined
5196 (later) the internals are rewritten. That rewrite will be confined
5185 to iplib and ipmaker, but the Shell interface should remain as is.
5197 to iplib and ipmaker, but the Shell interface should remain as is.
5186
5198
5187 * Added embed module which offers an embeddable IPShell object,
5199 * Added embed module which offers an embeddable IPShell object,
5188 useful to fire up IPython *inside* a running program. Great for
5200 useful to fire up IPython *inside* a running program. Great for
5189 debugging or dynamical data analysis.
5201 debugging or dynamical data analysis.
5190
5202
5191 2001-12-08 Fernando Perez <fperez@colorado.edu>
5203 2001-12-08 Fernando Perez <fperez@colorado.edu>
5192
5204
5193 * Fixed small bug preventing seeing info from methods of defined
5205 * Fixed small bug preventing seeing info from methods of defined
5194 objects (incorrect namespace in _ofind()).
5206 objects (incorrect namespace in _ofind()).
5195
5207
5196 * Documentation cleanup. Moved the main usage docstrings to a
5208 * Documentation cleanup. Moved the main usage docstrings to a
5197 separate file, usage.py (cleaner to maintain, and hopefully in the
5209 separate file, usage.py (cleaner to maintain, and hopefully in the
5198 future some perlpod-like way of producing interactive, man and
5210 future some perlpod-like way of producing interactive, man and
5199 html docs out of it will be found).
5211 html docs out of it will be found).
5200
5212
5201 * Added @profile to see your profile at any time.
5213 * Added @profile to see your profile at any time.
5202
5214
5203 * Added @p as an alias for 'print'. It's especially convenient if
5215 * Added @p as an alias for 'print'. It's especially convenient if
5204 using automagic ('p x' prints x).
5216 using automagic ('p x' prints x).
5205
5217
5206 * Small cleanups and fixes after a pychecker run.
5218 * Small cleanups and fixes after a pychecker run.
5207
5219
5208 * Changed the @cd command to handle @cd - and @cd -<n> for
5220 * Changed the @cd command to handle @cd - and @cd -<n> for
5209 visiting any directory in _dh.
5221 visiting any directory in _dh.
5210
5222
5211 * Introduced _dh, a history of visited directories. @dhist prints
5223 * Introduced _dh, a history of visited directories. @dhist prints
5212 it out with numbers.
5224 it out with numbers.
5213
5225
5214 2001-12-07 Fernando Perez <fperez@colorado.edu>
5226 2001-12-07 Fernando Perez <fperez@colorado.edu>
5215
5227
5216 * Released 0.1.22
5228 * Released 0.1.22
5217
5229
5218 * Made initialization a bit more robust against invalid color
5230 * Made initialization a bit more robust against invalid color
5219 options in user input (exit, not traceback-crash).
5231 options in user input (exit, not traceback-crash).
5220
5232
5221 * Changed the bug crash reporter to write the report only in the
5233 * Changed the bug crash reporter to write the report only in the
5222 user's .ipython directory. That way IPython won't litter people's
5234 user's .ipython directory. That way IPython won't litter people's
5223 hard disks with crash files all over the place. Also print on
5235 hard disks with crash files all over the place. Also print on
5224 screen the necessary mail command.
5236 screen the necessary mail command.
5225
5237
5226 * With the new ultraTB, implemented LightBG color scheme for light
5238 * With the new ultraTB, implemented LightBG color scheme for light
5227 background terminals. A lot of people like white backgrounds, so I
5239 background terminals. A lot of people like white backgrounds, so I
5228 guess we should at least give them something readable.
5240 guess we should at least give them something readable.
5229
5241
5230 2001-12-06 Fernando Perez <fperez@colorado.edu>
5242 2001-12-06 Fernando Perez <fperez@colorado.edu>
5231
5243
5232 * Modified the structure of ultraTB. Now there's a proper class
5244 * Modified the structure of ultraTB. Now there's a proper class
5233 for tables of color schemes which allow adding schemes easily and
5245 for tables of color schemes which allow adding schemes easily and
5234 switching the active scheme without creating a new instance every
5246 switching the active scheme without creating a new instance every
5235 time (which was ridiculous). The syntax for creating new schemes
5247 time (which was ridiculous). The syntax for creating new schemes
5236 is also cleaner. I think ultraTB is finally done, with a clean
5248 is also cleaner. I think ultraTB is finally done, with a clean
5237 class structure. Names are also much cleaner (now there's proper
5249 class structure. Names are also much cleaner (now there's proper
5238 color tables, no need for every variable to also have 'color' in
5250 color tables, no need for every variable to also have 'color' in
5239 its name).
5251 its name).
5240
5252
5241 * Broke down genutils into separate files. Now genutils only
5253 * Broke down genutils into separate files. Now genutils only
5242 contains utility functions, and classes have been moved to their
5254 contains utility functions, and classes have been moved to their
5243 own files (they had enough independent functionality to warrant
5255 own files (they had enough independent functionality to warrant
5244 it): ConfigLoader, OutputTrap, Struct.
5256 it): ConfigLoader, OutputTrap, Struct.
5245
5257
5246 2001-12-05 Fernando Perez <fperez@colorado.edu>
5258 2001-12-05 Fernando Perez <fperez@colorado.edu>
5247
5259
5248 * IPython turns 21! Released version 0.1.21, as a candidate for
5260 * IPython turns 21! Released version 0.1.21, as a candidate for
5249 public consumption. If all goes well, release in a few days.
5261 public consumption. If all goes well, release in a few days.
5250
5262
5251 * Fixed path bug (files in Extensions/ directory wouldn't be found
5263 * Fixed path bug (files in Extensions/ directory wouldn't be found
5252 unless IPython/ was explicitly in sys.path).
5264 unless IPython/ was explicitly in sys.path).
5253
5265
5254 * Extended the FlexCompleter class as MagicCompleter to allow
5266 * Extended the FlexCompleter class as MagicCompleter to allow
5255 completion of @-starting lines.
5267 completion of @-starting lines.
5256
5268
5257 * Created __release__.py file as a central repository for release
5269 * Created __release__.py file as a central repository for release
5258 info that other files can read from.
5270 info that other files can read from.
5259
5271
5260 * Fixed small bug in logging: when logging was turned on in
5272 * Fixed small bug in logging: when logging was turned on in
5261 mid-session, old lines with special meanings (!@?) were being
5273 mid-session, old lines with special meanings (!@?) were being
5262 logged without the prepended comment, which is necessary since
5274 logged without the prepended comment, which is necessary since
5263 they are not truly valid python syntax. This should make session
5275 they are not truly valid python syntax. This should make session
5264 restores produce less errors.
5276 restores produce less errors.
5265
5277
5266 * The namespace cleanup forced me to make a FlexCompleter class
5278 * The namespace cleanup forced me to make a FlexCompleter class
5267 which is nothing but a ripoff of rlcompleter, but with selectable
5279 which is nothing but a ripoff of rlcompleter, but with selectable
5268 namespace (rlcompleter only works in __main__.__dict__). I'll try
5280 namespace (rlcompleter only works in __main__.__dict__). I'll try
5269 to submit a note to the authors to see if this change can be
5281 to submit a note to the authors to see if this change can be
5270 incorporated in future rlcompleter releases (Dec.6: done)
5282 incorporated in future rlcompleter releases (Dec.6: done)
5271
5283
5272 * More fixes to namespace handling. It was a mess! Now all
5284 * More fixes to namespace handling. It was a mess! Now all
5273 explicit references to __main__.__dict__ are gone (except when
5285 explicit references to __main__.__dict__ are gone (except when
5274 really needed) and everything is handled through the namespace
5286 really needed) and everything is handled through the namespace
5275 dicts in the IPython instance. We seem to be getting somewhere
5287 dicts in the IPython instance. We seem to be getting somewhere
5276 with this, finally...
5288 with this, finally...
5277
5289
5278 * Small documentation updates.
5290 * Small documentation updates.
5279
5291
5280 * Created the Extensions directory under IPython (with an
5292 * Created the Extensions directory under IPython (with an
5281 __init__.py). Put the PhysicalQ stuff there. This directory should
5293 __init__.py). Put the PhysicalQ stuff there. This directory should
5282 be used for all special-purpose extensions.
5294 be used for all special-purpose extensions.
5283
5295
5284 * File renaming:
5296 * File renaming:
5285 ipythonlib --> ipmaker
5297 ipythonlib --> ipmaker
5286 ipplib --> iplib
5298 ipplib --> iplib
5287 This makes a bit more sense in terms of what these files actually do.
5299 This makes a bit more sense in terms of what these files actually do.
5288
5300
5289 * Moved all the classes and functions in ipythonlib to ipplib, so
5301 * Moved all the classes and functions in ipythonlib to ipplib, so
5290 now ipythonlib only has make_IPython(). This will ease up its
5302 now ipythonlib only has make_IPython(). This will ease up its
5291 splitting in smaller functional chunks later.
5303 splitting in smaller functional chunks later.
5292
5304
5293 * Cleaned up (done, I think) output of @whos. Better column
5305 * Cleaned up (done, I think) output of @whos. Better column
5294 formatting, and now shows str(var) for as much as it can, which is
5306 formatting, and now shows str(var) for as much as it can, which is
5295 typically what one gets with a 'print var'.
5307 typically what one gets with a 'print var'.
5296
5308
5297 2001-12-04 Fernando Perez <fperez@colorado.edu>
5309 2001-12-04 Fernando Perez <fperez@colorado.edu>
5298
5310
5299 * Fixed namespace problems. Now builtin/IPyhton/user names get
5311 * Fixed namespace problems. Now builtin/IPyhton/user names get
5300 properly reported in their namespace. Internal namespace handling
5312 properly reported in their namespace. Internal namespace handling
5301 is finally getting decent (not perfect yet, but much better than
5313 is finally getting decent (not perfect yet, but much better than
5302 the ad-hoc mess we had).
5314 the ad-hoc mess we had).
5303
5315
5304 * Removed -exit option. If people just want to run a python
5316 * Removed -exit option. If people just want to run a python
5305 script, that's what the normal interpreter is for. Less
5317 script, that's what the normal interpreter is for. Less
5306 unnecessary options, less chances for bugs.
5318 unnecessary options, less chances for bugs.
5307
5319
5308 * Added a crash handler which generates a complete post-mortem if
5320 * Added a crash handler which generates a complete post-mortem if
5309 IPython crashes. This will help a lot in tracking bugs down the
5321 IPython crashes. This will help a lot in tracking bugs down the
5310 road.
5322 road.
5311
5323
5312 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5324 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5313 which were boud to functions being reassigned would bypass the
5325 which were boud to functions being reassigned would bypass the
5314 logger, breaking the sync of _il with the prompt counter. This
5326 logger, breaking the sync of _il with the prompt counter. This
5315 would then crash IPython later when a new line was logged.
5327 would then crash IPython later when a new line was logged.
5316
5328
5317 2001-12-02 Fernando Perez <fperez@colorado.edu>
5329 2001-12-02 Fernando Perez <fperez@colorado.edu>
5318
5330
5319 * Made IPython a package. This means people don't have to clutter
5331 * Made IPython a package. This means people don't have to clutter
5320 their sys.path with yet another directory. Changed the INSTALL
5332 their sys.path with yet another directory. Changed the INSTALL
5321 file accordingly.
5333 file accordingly.
5322
5334
5323 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5335 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5324 sorts its output (so @who shows it sorted) and @whos formats the
5336 sorts its output (so @who shows it sorted) and @whos formats the
5325 table according to the width of the first column. Nicer, easier to
5337 table according to the width of the first column. Nicer, easier to
5326 read. Todo: write a generic table_format() which takes a list of
5338 read. Todo: write a generic table_format() which takes a list of
5327 lists and prints it nicely formatted, with optional row/column
5339 lists and prints it nicely formatted, with optional row/column
5328 separators and proper padding and justification.
5340 separators and proper padding and justification.
5329
5341
5330 * Released 0.1.20
5342 * Released 0.1.20
5331
5343
5332 * Fixed bug in @log which would reverse the inputcache list (a
5344 * Fixed bug in @log which would reverse the inputcache list (a
5333 copy operation was missing).
5345 copy operation was missing).
5334
5346
5335 * Code cleanup. @config was changed to use page(). Better, since
5347 * Code cleanup. @config was changed to use page(). Better, since
5336 its output is always quite long.
5348 its output is always quite long.
5337
5349
5338 * Itpl is back as a dependency. I was having too many problems
5350 * Itpl is back as a dependency. I was having too many problems
5339 getting the parametric aliases to work reliably, and it's just
5351 getting the parametric aliases to work reliably, and it's just
5340 easier to code weird string operations with it than playing %()s
5352 easier to code weird string operations with it than playing %()s
5341 games. It's only ~6k, so I don't think it's too big a deal.
5353 games. It's only ~6k, so I don't think it's too big a deal.
5342
5354
5343 * Found (and fixed) a very nasty bug with history. !lines weren't
5355 * Found (and fixed) a very nasty bug with history. !lines weren't
5344 getting cached, and the out of sync caches would crash
5356 getting cached, and the out of sync caches would crash
5345 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5357 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5346 division of labor a bit better. Bug fixed, cleaner structure.
5358 division of labor a bit better. Bug fixed, cleaner structure.
5347
5359
5348 2001-12-01 Fernando Perez <fperez@colorado.edu>
5360 2001-12-01 Fernando Perez <fperez@colorado.edu>
5349
5361
5350 * Released 0.1.19
5362 * Released 0.1.19
5351
5363
5352 * Added option -n to @hist to prevent line number printing. Much
5364 * Added option -n to @hist to prevent line number printing. Much
5353 easier to copy/paste code this way.
5365 easier to copy/paste code this way.
5354
5366
5355 * Created global _il to hold the input list. Allows easy
5367 * Created global _il to hold the input list. Allows easy
5356 re-execution of blocks of code by slicing it (inspired by Janko's
5368 re-execution of blocks of code by slicing it (inspired by Janko's
5357 comment on 'macros').
5369 comment on 'macros').
5358
5370
5359 * Small fixes and doc updates.
5371 * Small fixes and doc updates.
5360
5372
5361 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5373 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5362 much too fragile with automagic. Handles properly multi-line
5374 much too fragile with automagic. Handles properly multi-line
5363 statements and takes parameters.
5375 statements and takes parameters.
5364
5376
5365 2001-11-30 Fernando Perez <fperez@colorado.edu>
5377 2001-11-30 Fernando Perez <fperez@colorado.edu>
5366
5378
5367 * Version 0.1.18 released.
5379 * Version 0.1.18 released.
5368
5380
5369 * Fixed nasty namespace bug in initial module imports.
5381 * Fixed nasty namespace bug in initial module imports.
5370
5382
5371 * Added copyright/license notes to all code files (except
5383 * Added copyright/license notes to all code files (except
5372 DPyGetOpt). For the time being, LGPL. That could change.
5384 DPyGetOpt). For the time being, LGPL. That could change.
5373
5385
5374 * Rewrote a much nicer README, updated INSTALL, cleaned up
5386 * Rewrote a much nicer README, updated INSTALL, cleaned up
5375 ipythonrc-* samples.
5387 ipythonrc-* samples.
5376
5388
5377 * Overall code/documentation cleanup. Basically ready for
5389 * Overall code/documentation cleanup. Basically ready for
5378 release. Only remaining thing: licence decision (LGPL?).
5390 release. Only remaining thing: licence decision (LGPL?).
5379
5391
5380 * Converted load_config to a class, ConfigLoader. Now recursion
5392 * Converted load_config to a class, ConfigLoader. Now recursion
5381 control is better organized. Doesn't include the same file twice.
5393 control is better organized. Doesn't include the same file twice.
5382
5394
5383 2001-11-29 Fernando Perez <fperez@colorado.edu>
5395 2001-11-29 Fernando Perez <fperez@colorado.edu>
5384
5396
5385 * Got input history working. Changed output history variables from
5397 * Got input history working. Changed output history variables from
5386 _p to _o so that _i is for input and _o for output. Just cleaner
5398 _p to _o so that _i is for input and _o for output. Just cleaner
5387 convention.
5399 convention.
5388
5400
5389 * Implemented parametric aliases. This pretty much allows the
5401 * Implemented parametric aliases. This pretty much allows the
5390 alias system to offer full-blown shell convenience, I think.
5402 alias system to offer full-blown shell convenience, I think.
5391
5403
5392 * Version 0.1.17 released, 0.1.18 opened.
5404 * Version 0.1.17 released, 0.1.18 opened.
5393
5405
5394 * dot_ipython/ipythonrc (alias): added documentation.
5406 * dot_ipython/ipythonrc (alias): added documentation.
5395 (xcolor): Fixed small bug (xcolors -> xcolor)
5407 (xcolor): Fixed small bug (xcolors -> xcolor)
5396
5408
5397 * Changed the alias system. Now alias is a magic command to define
5409 * Changed the alias system. Now alias is a magic command to define
5398 aliases just like the shell. Rationale: the builtin magics should
5410 aliases just like the shell. Rationale: the builtin magics should
5399 be there for things deeply connected to IPython's
5411 be there for things deeply connected to IPython's
5400 architecture. And this is a much lighter system for what I think
5412 architecture. And this is a much lighter system for what I think
5401 is the really important feature: allowing users to define quickly
5413 is the really important feature: allowing users to define quickly
5402 magics that will do shell things for them, so they can customize
5414 magics that will do shell things for them, so they can customize
5403 IPython easily to match their work habits. If someone is really
5415 IPython easily to match their work habits. If someone is really
5404 desperate to have another name for a builtin alias, they can
5416 desperate to have another name for a builtin alias, they can
5405 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5417 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5406 works.
5418 works.
5407
5419
5408 2001-11-28 Fernando Perez <fperez@colorado.edu>
5420 2001-11-28 Fernando Perez <fperez@colorado.edu>
5409
5421
5410 * Changed @file so that it opens the source file at the proper
5422 * Changed @file so that it opens the source file at the proper
5411 line. Since it uses less, if your EDITOR environment is
5423 line. Since it uses less, if your EDITOR environment is
5412 configured, typing v will immediately open your editor of choice
5424 configured, typing v will immediately open your editor of choice
5413 right at the line where the object is defined. Not as quick as
5425 right at the line where the object is defined. Not as quick as
5414 having a direct @edit command, but for all intents and purposes it
5426 having a direct @edit command, but for all intents and purposes it
5415 works. And I don't have to worry about writing @edit to deal with
5427 works. And I don't have to worry about writing @edit to deal with
5416 all the editors, less does that.
5428 all the editors, less does that.
5417
5429
5418 * Version 0.1.16 released, 0.1.17 opened.
5430 * Version 0.1.16 released, 0.1.17 opened.
5419
5431
5420 * Fixed some nasty bugs in the page/page_dumb combo that could
5432 * Fixed some nasty bugs in the page/page_dumb combo that could
5421 crash IPython.
5433 crash IPython.
5422
5434
5423 2001-11-27 Fernando Perez <fperez@colorado.edu>
5435 2001-11-27 Fernando Perez <fperez@colorado.edu>
5424
5436
5425 * Version 0.1.15 released, 0.1.16 opened.
5437 * Version 0.1.15 released, 0.1.16 opened.
5426
5438
5427 * Finally got ? and ?? to work for undefined things: now it's
5439 * Finally got ? and ?? to work for undefined things: now it's
5428 possible to type {}.get? and get information about the get method
5440 possible to type {}.get? and get information about the get method
5429 of dicts, or os.path? even if only os is defined (so technically
5441 of dicts, or os.path? even if only os is defined (so technically
5430 os.path isn't). Works at any level. For example, after import os,
5442 os.path isn't). Works at any level. For example, after import os,
5431 os?, os.path?, os.path.abspath? all work. This is great, took some
5443 os?, os.path?, os.path.abspath? all work. This is great, took some
5432 work in _ofind.
5444 work in _ofind.
5433
5445
5434 * Fixed more bugs with logging. The sanest way to do it was to add
5446 * Fixed more bugs with logging. The sanest way to do it was to add
5435 to @log a 'mode' parameter. Killed two in one shot (this mode
5447 to @log a 'mode' parameter. Killed two in one shot (this mode
5436 option was a request of Janko's). I think it's finally clean
5448 option was a request of Janko's). I think it's finally clean
5437 (famous last words).
5449 (famous last words).
5438
5450
5439 * Added a page_dumb() pager which does a decent job of paging on
5451 * Added a page_dumb() pager which does a decent job of paging on
5440 screen, if better things (like less) aren't available. One less
5452 screen, if better things (like less) aren't available. One less
5441 unix dependency (someday maybe somebody will port this to
5453 unix dependency (someday maybe somebody will port this to
5442 windows).
5454 windows).
5443
5455
5444 * Fixed problem in magic_log: would lock of logging out if log
5456 * Fixed problem in magic_log: would lock of logging out if log
5445 creation failed (because it would still think it had succeeded).
5457 creation failed (because it would still think it had succeeded).
5446
5458
5447 * Improved the page() function using curses to auto-detect screen
5459 * Improved the page() function using curses to auto-detect screen
5448 size. Now it can make a much better decision on whether to print
5460 size. Now it can make a much better decision on whether to print
5449 or page a string. Option screen_length was modified: a value 0
5461 or page a string. Option screen_length was modified: a value 0
5450 means auto-detect, and that's the default now.
5462 means auto-detect, and that's the default now.
5451
5463
5452 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5464 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5453 go out. I'll test it for a few days, then talk to Janko about
5465 go out. I'll test it for a few days, then talk to Janko about
5454 licences and announce it.
5466 licences and announce it.
5455
5467
5456 * Fixed the length of the auto-generated ---> prompt which appears
5468 * Fixed the length of the auto-generated ---> prompt which appears
5457 for auto-parens and auto-quotes. Getting this right isn't trivial,
5469 for auto-parens and auto-quotes. Getting this right isn't trivial,
5458 with all the color escapes, different prompt types and optional
5470 with all the color escapes, different prompt types and optional
5459 separators. But it seems to be working in all the combinations.
5471 separators. But it seems to be working in all the combinations.
5460
5472
5461 2001-11-26 Fernando Perez <fperez@colorado.edu>
5473 2001-11-26 Fernando Perez <fperez@colorado.edu>
5462
5474
5463 * Wrote a regexp filter to get option types from the option names
5475 * Wrote a regexp filter to get option types from the option names
5464 string. This eliminates the need to manually keep two duplicate
5476 string. This eliminates the need to manually keep two duplicate
5465 lists.
5477 lists.
5466
5478
5467 * Removed the unneeded check_option_names. Now options are handled
5479 * Removed the unneeded check_option_names. Now options are handled
5468 in a much saner manner and it's easy to visually check that things
5480 in a much saner manner and it's easy to visually check that things
5469 are ok.
5481 are ok.
5470
5482
5471 * Updated version numbers on all files I modified to carry a
5483 * Updated version numbers on all files I modified to carry a
5472 notice so Janko and Nathan have clear version markers.
5484 notice so Janko and Nathan have clear version markers.
5473
5485
5474 * Updated docstring for ultraTB with my changes. I should send
5486 * Updated docstring for ultraTB with my changes. I should send
5475 this to Nathan.
5487 this to Nathan.
5476
5488
5477 * Lots of small fixes. Ran everything through pychecker again.
5489 * Lots of small fixes. Ran everything through pychecker again.
5478
5490
5479 * Made loading of deep_reload an cmd line option. If it's not too
5491 * Made loading of deep_reload an cmd line option. If it's not too
5480 kosher, now people can just disable it. With -nodeep_reload it's
5492 kosher, now people can just disable it. With -nodeep_reload it's
5481 still available as dreload(), it just won't overwrite reload().
5493 still available as dreload(), it just won't overwrite reload().
5482
5494
5483 * Moved many options to the no| form (-opt and -noopt
5495 * Moved many options to the no| form (-opt and -noopt
5484 accepted). Cleaner.
5496 accepted). Cleaner.
5485
5497
5486 * Changed magic_log so that if called with no parameters, it uses
5498 * Changed magic_log so that if called with no parameters, it uses
5487 'rotate' mode. That way auto-generated logs aren't automatically
5499 'rotate' mode. That way auto-generated logs aren't automatically
5488 over-written. For normal logs, now a backup is made if it exists
5500 over-written. For normal logs, now a backup is made if it exists
5489 (only 1 level of backups). A new 'backup' mode was added to the
5501 (only 1 level of backups). A new 'backup' mode was added to the
5490 Logger class to support this. This was a request by Janko.
5502 Logger class to support this. This was a request by Janko.
5491
5503
5492 * Added @logoff/@logon to stop/restart an active log.
5504 * Added @logoff/@logon to stop/restart an active log.
5493
5505
5494 * Fixed a lot of bugs in log saving/replay. It was pretty
5506 * Fixed a lot of bugs in log saving/replay. It was pretty
5495 broken. Now special lines (!@,/) appear properly in the command
5507 broken. Now special lines (!@,/) appear properly in the command
5496 history after a log replay.
5508 history after a log replay.
5497
5509
5498 * Tried and failed to implement full session saving via pickle. My
5510 * Tried and failed to implement full session saving via pickle. My
5499 idea was to pickle __main__.__dict__, but modules can't be
5511 idea was to pickle __main__.__dict__, but modules can't be
5500 pickled. This would be a better alternative to replaying logs, but
5512 pickled. This would be a better alternative to replaying logs, but
5501 seems quite tricky to get to work. Changed -session to be called
5513 seems quite tricky to get to work. Changed -session to be called
5502 -logplay, which more accurately reflects what it does. And if we
5514 -logplay, which more accurately reflects what it does. And if we
5503 ever get real session saving working, -session is now available.
5515 ever get real session saving working, -session is now available.
5504
5516
5505 * Implemented color schemes for prompts also. As for tracebacks,
5517 * Implemented color schemes for prompts also. As for tracebacks,
5506 currently only NoColor and Linux are supported. But now the
5518 currently only NoColor and Linux are supported. But now the
5507 infrastructure is in place, based on a generic ColorScheme
5519 infrastructure is in place, based on a generic ColorScheme
5508 class. So writing and activating new schemes both for the prompts
5520 class. So writing and activating new schemes both for the prompts
5509 and the tracebacks should be straightforward.
5521 and the tracebacks should be straightforward.
5510
5522
5511 * Version 0.1.13 released, 0.1.14 opened.
5523 * Version 0.1.13 released, 0.1.14 opened.
5512
5524
5513 * Changed handling of options for output cache. Now counter is
5525 * Changed handling of options for output cache. Now counter is
5514 hardwired starting at 1 and one specifies the maximum number of
5526 hardwired starting at 1 and one specifies the maximum number of
5515 entries *in the outcache* (not the max prompt counter). This is
5527 entries *in the outcache* (not the max prompt counter). This is
5516 much better, since many statements won't increase the cache
5528 much better, since many statements won't increase the cache
5517 count. It also eliminated some confusing options, now there's only
5529 count. It also eliminated some confusing options, now there's only
5518 one: cache_size.
5530 one: cache_size.
5519
5531
5520 * Added 'alias' magic function and magic_alias option in the
5532 * Added 'alias' magic function and magic_alias option in the
5521 ipythonrc file. Now the user can easily define whatever names he
5533 ipythonrc file. Now the user can easily define whatever names he
5522 wants for the magic functions without having to play weird
5534 wants for the magic functions without having to play weird
5523 namespace games. This gives IPython a real shell-like feel.
5535 namespace games. This gives IPython a real shell-like feel.
5524
5536
5525 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5537 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5526 @ or not).
5538 @ or not).
5527
5539
5528 This was one of the last remaining 'visible' bugs (that I know
5540 This was one of the last remaining 'visible' bugs (that I know
5529 of). I think if I can clean up the session loading so it works
5541 of). I think if I can clean up the session loading so it works
5530 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5542 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5531 about licensing).
5543 about licensing).
5532
5544
5533 2001-11-25 Fernando Perez <fperez@colorado.edu>
5545 2001-11-25 Fernando Perez <fperez@colorado.edu>
5534
5546
5535 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5547 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5536 there's a cleaner distinction between what ? and ?? show.
5548 there's a cleaner distinction between what ? and ?? show.
5537
5549
5538 * Added screen_length option. Now the user can define his own
5550 * Added screen_length option. Now the user can define his own
5539 screen size for page() operations.
5551 screen size for page() operations.
5540
5552
5541 * Implemented magic shell-like functions with automatic code
5553 * Implemented magic shell-like functions with automatic code
5542 generation. Now adding another function is just a matter of adding
5554 generation. Now adding another function is just a matter of adding
5543 an entry to a dict, and the function is dynamically generated at
5555 an entry to a dict, and the function is dynamically generated at
5544 run-time. Python has some really cool features!
5556 run-time. Python has some really cool features!
5545
5557
5546 * Renamed many options to cleanup conventions a little. Now all
5558 * Renamed many options to cleanup conventions a little. Now all
5547 are lowercase, and only underscores where needed. Also in the code
5559 are lowercase, and only underscores where needed. Also in the code
5548 option name tables are clearer.
5560 option name tables are clearer.
5549
5561
5550 * Changed prompts a little. Now input is 'In [n]:' instead of
5562 * Changed prompts a little. Now input is 'In [n]:' instead of
5551 'In[n]:='. This allows it the numbers to be aligned with the
5563 'In[n]:='. This allows it the numbers to be aligned with the
5552 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5564 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5553 Python (it was a Mathematica thing). The '...' continuation prompt
5565 Python (it was a Mathematica thing). The '...' continuation prompt
5554 was also changed a little to align better.
5566 was also changed a little to align better.
5555
5567
5556 * Fixed bug when flushing output cache. Not all _p<n> variables
5568 * Fixed bug when flushing output cache. Not all _p<n> variables
5557 exist, so their deletion needs to be wrapped in a try:
5569 exist, so their deletion needs to be wrapped in a try:
5558
5570
5559 * Figured out how to properly use inspect.formatargspec() (it
5571 * Figured out how to properly use inspect.formatargspec() (it
5560 requires the args preceded by *). So I removed all the code from
5572 requires the args preceded by *). So I removed all the code from
5561 _get_pdef in Magic, which was just replicating that.
5573 _get_pdef in Magic, which was just replicating that.
5562
5574
5563 * Added test to prefilter to allow redefining magic function names
5575 * Added test to prefilter to allow redefining magic function names
5564 as variables. This is ok, since the @ form is always available,
5576 as variables. This is ok, since the @ form is always available,
5565 but whe should allow the user to define a variable called 'ls' if
5577 but whe should allow the user to define a variable called 'ls' if
5566 he needs it.
5578 he needs it.
5567
5579
5568 * Moved the ToDo information from README into a separate ToDo.
5580 * Moved the ToDo information from README into a separate ToDo.
5569
5581
5570 * General code cleanup and small bugfixes. I think it's close to a
5582 * General code cleanup and small bugfixes. I think it's close to a
5571 state where it can be released, obviously with a big 'beta'
5583 state where it can be released, obviously with a big 'beta'
5572 warning on it.
5584 warning on it.
5573
5585
5574 * Got the magic function split to work. Now all magics are defined
5586 * Got the magic function split to work. Now all magics are defined
5575 in a separate class. It just organizes things a bit, and now
5587 in a separate class. It just organizes things a bit, and now
5576 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5588 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5577 was too long).
5589 was too long).
5578
5590
5579 * Changed @clear to @reset to avoid potential confusions with
5591 * Changed @clear to @reset to avoid potential confusions with
5580 the shell command clear. Also renamed @cl to @clear, which does
5592 the shell command clear. Also renamed @cl to @clear, which does
5581 exactly what people expect it to from their shell experience.
5593 exactly what people expect it to from their shell experience.
5582
5594
5583 Added a check to the @reset command (since it's so
5595 Added a check to the @reset command (since it's so
5584 destructive, it's probably a good idea to ask for confirmation).
5596 destructive, it's probably a good idea to ask for confirmation).
5585 But now reset only works for full namespace resetting. Since the
5597 But now reset only works for full namespace resetting. Since the
5586 del keyword is already there for deleting a few specific
5598 del keyword is already there for deleting a few specific
5587 variables, I don't see the point of having a redundant magic
5599 variables, I don't see the point of having a redundant magic
5588 function for the same task.
5600 function for the same task.
5589
5601
5590 2001-11-24 Fernando Perez <fperez@colorado.edu>
5602 2001-11-24 Fernando Perez <fperez@colorado.edu>
5591
5603
5592 * Updated the builtin docs (esp. the ? ones).
5604 * Updated the builtin docs (esp. the ? ones).
5593
5605
5594 * Ran all the code through pychecker. Not terribly impressed with
5606 * Ran all the code through pychecker. Not terribly impressed with
5595 it: lots of spurious warnings and didn't really find anything of
5607 it: lots of spurious warnings and didn't really find anything of
5596 substance (just a few modules being imported and not used).
5608 substance (just a few modules being imported and not used).
5597
5609
5598 * Implemented the new ultraTB functionality into IPython. New
5610 * Implemented the new ultraTB functionality into IPython. New
5599 option: xcolors. This chooses color scheme. xmode now only selects
5611 option: xcolors. This chooses color scheme. xmode now only selects
5600 between Plain and Verbose. Better orthogonality.
5612 between Plain and Verbose. Better orthogonality.
5601
5613
5602 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5614 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5603 mode and color scheme for the exception handlers. Now it's
5615 mode and color scheme for the exception handlers. Now it's
5604 possible to have the verbose traceback with no coloring.
5616 possible to have the verbose traceback with no coloring.
5605
5617
5606 2001-11-23 Fernando Perez <fperez@colorado.edu>
5618 2001-11-23 Fernando Perez <fperez@colorado.edu>
5607
5619
5608 * Version 0.1.12 released, 0.1.13 opened.
5620 * Version 0.1.12 released, 0.1.13 opened.
5609
5621
5610 * Removed option to set auto-quote and auto-paren escapes by
5622 * Removed option to set auto-quote and auto-paren escapes by
5611 user. The chances of breaking valid syntax are just too high. If
5623 user. The chances of breaking valid syntax are just too high. If
5612 someone *really* wants, they can always dig into the code.
5624 someone *really* wants, they can always dig into the code.
5613
5625
5614 * Made prompt separators configurable.
5626 * Made prompt separators configurable.
5615
5627
5616 2001-11-22 Fernando Perez <fperez@colorado.edu>
5628 2001-11-22 Fernando Perez <fperez@colorado.edu>
5617
5629
5618 * Small bugfixes in many places.
5630 * Small bugfixes in many places.
5619
5631
5620 * Removed the MyCompleter class from ipplib. It seemed redundant
5632 * Removed the MyCompleter class from ipplib. It seemed redundant
5621 with the C-p,C-n history search functionality. Less code to
5633 with the C-p,C-n history search functionality. Less code to
5622 maintain.
5634 maintain.
5623
5635
5624 * Moved all the original ipython.py code into ipythonlib.py. Right
5636 * Moved all the original ipython.py code into ipythonlib.py. Right
5625 now it's just one big dump into a function called make_IPython, so
5637 now it's just one big dump into a function called make_IPython, so
5626 no real modularity has been gained. But at least it makes the
5638 no real modularity has been gained. But at least it makes the
5627 wrapper script tiny, and since ipythonlib is a module, it gets
5639 wrapper script tiny, and since ipythonlib is a module, it gets
5628 compiled and startup is much faster.
5640 compiled and startup is much faster.
5629
5641
5630 This is a reasobably 'deep' change, so we should test it for a
5642 This is a reasobably 'deep' change, so we should test it for a
5631 while without messing too much more with the code.
5643 while without messing too much more with the code.
5632
5644
5633 2001-11-21 Fernando Perez <fperez@colorado.edu>
5645 2001-11-21 Fernando Perez <fperez@colorado.edu>
5634
5646
5635 * Version 0.1.11 released, 0.1.12 opened for further work.
5647 * Version 0.1.11 released, 0.1.12 opened for further work.
5636
5648
5637 * Removed dependency on Itpl. It was only needed in one place. It
5649 * Removed dependency on Itpl. It was only needed in one place. It
5638 would be nice if this became part of python, though. It makes life
5650 would be nice if this became part of python, though. It makes life
5639 *a lot* easier in some cases.
5651 *a lot* easier in some cases.
5640
5652
5641 * Simplified the prefilter code a bit. Now all handlers are
5653 * Simplified the prefilter code a bit. Now all handlers are
5642 expected to explicitly return a value (at least a blank string).
5654 expected to explicitly return a value (at least a blank string).
5643
5655
5644 * Heavy edits in ipplib. Removed the help system altogether. Now
5656 * Heavy edits in ipplib. Removed the help system altogether. Now
5645 obj?/?? is used for inspecting objects, a magic @doc prints
5657 obj?/?? is used for inspecting objects, a magic @doc prints
5646 docstrings, and full-blown Python help is accessed via the 'help'
5658 docstrings, and full-blown Python help is accessed via the 'help'
5647 keyword. This cleans up a lot of code (less to maintain) and does
5659 keyword. This cleans up a lot of code (less to maintain) and does
5648 the job. Since 'help' is now a standard Python component, might as
5660 the job. Since 'help' is now a standard Python component, might as
5649 well use it and remove duplicate functionality.
5661 well use it and remove duplicate functionality.
5650
5662
5651 Also removed the option to use ipplib as a standalone program. By
5663 Also removed the option to use ipplib as a standalone program. By
5652 now it's too dependent on other parts of IPython to function alone.
5664 now it's too dependent on other parts of IPython to function alone.
5653
5665
5654 * Fixed bug in genutils.pager. It would crash if the pager was
5666 * Fixed bug in genutils.pager. It would crash if the pager was
5655 exited immediately after opening (broken pipe).
5667 exited immediately after opening (broken pipe).
5656
5668
5657 * Trimmed down the VerboseTB reporting a little. The header is
5669 * Trimmed down the VerboseTB reporting a little. The header is
5658 much shorter now and the repeated exception arguments at the end
5670 much shorter now and the repeated exception arguments at the end
5659 have been removed. For interactive use the old header seemed a bit
5671 have been removed. For interactive use the old header seemed a bit
5660 excessive.
5672 excessive.
5661
5673
5662 * Fixed small bug in output of @whos for variables with multi-word
5674 * Fixed small bug in output of @whos for variables with multi-word
5663 types (only first word was displayed).
5675 types (only first word was displayed).
5664
5676
5665 2001-11-17 Fernando Perez <fperez@colorado.edu>
5677 2001-11-17 Fernando Perez <fperez@colorado.edu>
5666
5678
5667 * Version 0.1.10 released, 0.1.11 opened for further work.
5679 * Version 0.1.10 released, 0.1.11 opened for further work.
5668
5680
5669 * Modified dirs and friends. dirs now *returns* the stack (not
5681 * Modified dirs and friends. dirs now *returns* the stack (not
5670 prints), so one can manipulate it as a variable. Convenient to
5682 prints), so one can manipulate it as a variable. Convenient to
5671 travel along many directories.
5683 travel along many directories.
5672
5684
5673 * Fixed bug in magic_pdef: would only work with functions with
5685 * Fixed bug in magic_pdef: would only work with functions with
5674 arguments with default values.
5686 arguments with default values.
5675
5687
5676 2001-11-14 Fernando Perez <fperez@colorado.edu>
5688 2001-11-14 Fernando Perez <fperez@colorado.edu>
5677
5689
5678 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5690 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5679 example with IPython. Various other minor fixes and cleanups.
5691 example with IPython. Various other minor fixes and cleanups.
5680
5692
5681 * Version 0.1.9 released, 0.1.10 opened for further work.
5693 * Version 0.1.9 released, 0.1.10 opened for further work.
5682
5694
5683 * Added sys.path to the list of directories searched in the
5695 * Added sys.path to the list of directories searched in the
5684 execfile= option. It used to be the current directory and the
5696 execfile= option. It used to be the current directory and the
5685 user's IPYTHONDIR only.
5697 user's IPYTHONDIR only.
5686
5698
5687 2001-11-13 Fernando Perez <fperez@colorado.edu>
5699 2001-11-13 Fernando Perez <fperez@colorado.edu>
5688
5700
5689 * Reinstated the raw_input/prefilter separation that Janko had
5701 * Reinstated the raw_input/prefilter separation that Janko had
5690 initially. This gives a more convenient setup for extending the
5702 initially. This gives a more convenient setup for extending the
5691 pre-processor from the outside: raw_input always gets a string,
5703 pre-processor from the outside: raw_input always gets a string,
5692 and prefilter has to process it. We can then redefine prefilter
5704 and prefilter has to process it. We can then redefine prefilter
5693 from the outside and implement extensions for special
5705 from the outside and implement extensions for special
5694 purposes.
5706 purposes.
5695
5707
5696 Today I got one for inputting PhysicalQuantity objects
5708 Today I got one for inputting PhysicalQuantity objects
5697 (from Scientific) without needing any function calls at
5709 (from Scientific) without needing any function calls at
5698 all. Extremely convenient, and it's all done as a user-level
5710 all. Extremely convenient, and it's all done as a user-level
5699 extension (no IPython code was touched). Now instead of:
5711 extension (no IPython code was touched). Now instead of:
5700 a = PhysicalQuantity(4.2,'m/s**2')
5712 a = PhysicalQuantity(4.2,'m/s**2')
5701 one can simply say
5713 one can simply say
5702 a = 4.2 m/s**2
5714 a = 4.2 m/s**2
5703 or even
5715 or even
5704 a = 4.2 m/s^2
5716 a = 4.2 m/s^2
5705
5717
5706 I use this, but it's also a proof of concept: IPython really is
5718 I use this, but it's also a proof of concept: IPython really is
5707 fully user-extensible, even at the level of the parsing of the
5719 fully user-extensible, even at the level of the parsing of the
5708 command line. It's not trivial, but it's perfectly doable.
5720 command line. It's not trivial, but it's perfectly doable.
5709
5721
5710 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5722 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5711 the problem of modules being loaded in the inverse order in which
5723 the problem of modules being loaded in the inverse order in which
5712 they were defined in
5724 they were defined in
5713
5725
5714 * Version 0.1.8 released, 0.1.9 opened for further work.
5726 * Version 0.1.8 released, 0.1.9 opened for further work.
5715
5727
5716 * Added magics pdef, source and file. They respectively show the
5728 * Added magics pdef, source and file. They respectively show the
5717 definition line ('prototype' in C), source code and full python
5729 definition line ('prototype' in C), source code and full python
5718 file for any callable object. The object inspector oinfo uses
5730 file for any callable object. The object inspector oinfo uses
5719 these to show the same information.
5731 these to show the same information.
5720
5732
5721 * Version 0.1.7 released, 0.1.8 opened for further work.
5733 * Version 0.1.7 released, 0.1.8 opened for further work.
5722
5734
5723 * Separated all the magic functions into a class called Magic. The
5735 * Separated all the magic functions into a class called Magic. The
5724 InteractiveShell class was becoming too big for Xemacs to handle
5736 InteractiveShell class was becoming too big for Xemacs to handle
5725 (de-indenting a line would lock it up for 10 seconds while it
5737 (de-indenting a line would lock it up for 10 seconds while it
5726 backtracked on the whole class!)
5738 backtracked on the whole class!)
5727
5739
5728 FIXME: didn't work. It can be done, but right now namespaces are
5740 FIXME: didn't work. It can be done, but right now namespaces are
5729 all messed up. Do it later (reverted it for now, so at least
5741 all messed up. Do it later (reverted it for now, so at least
5730 everything works as before).
5742 everything works as before).
5731
5743
5732 * Got the object introspection system (magic_oinfo) working! I
5744 * Got the object introspection system (magic_oinfo) working! I
5733 think this is pretty much ready for release to Janko, so he can
5745 think this is pretty much ready for release to Janko, so he can
5734 test it for a while and then announce it. Pretty much 100% of what
5746 test it for a while and then announce it. Pretty much 100% of what
5735 I wanted for the 'phase 1' release is ready. Happy, tired.
5747 I wanted for the 'phase 1' release is ready. Happy, tired.
5736
5748
5737 2001-11-12 Fernando Perez <fperez@colorado.edu>
5749 2001-11-12 Fernando Perez <fperez@colorado.edu>
5738
5750
5739 * Version 0.1.6 released, 0.1.7 opened for further work.
5751 * Version 0.1.6 released, 0.1.7 opened for further work.
5740
5752
5741 * Fixed bug in printing: it used to test for truth before
5753 * Fixed bug in printing: it used to test for truth before
5742 printing, so 0 wouldn't print. Now checks for None.
5754 printing, so 0 wouldn't print. Now checks for None.
5743
5755
5744 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5756 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5745 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5757 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5746 reaches by hand into the outputcache. Think of a better way to do
5758 reaches by hand into the outputcache. Think of a better way to do
5747 this later.
5759 this later.
5748
5760
5749 * Various small fixes thanks to Nathan's comments.
5761 * Various small fixes thanks to Nathan's comments.
5750
5762
5751 * Changed magic_pprint to magic_Pprint. This way it doesn't
5763 * Changed magic_pprint to magic_Pprint. This way it doesn't
5752 collide with pprint() and the name is consistent with the command
5764 collide with pprint() and the name is consistent with the command
5753 line option.
5765 line option.
5754
5766
5755 * Changed prompt counter behavior to be fully like
5767 * Changed prompt counter behavior to be fully like
5756 Mathematica's. That is, even input that doesn't return a result
5768 Mathematica's. That is, even input that doesn't return a result
5757 raises the prompt counter. The old behavior was kind of confusing
5769 raises the prompt counter. The old behavior was kind of confusing
5758 (getting the same prompt number several times if the operation
5770 (getting the same prompt number several times if the operation
5759 didn't return a result).
5771 didn't return a result).
5760
5772
5761 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5773 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5762
5774
5763 * Fixed -Classic mode (wasn't working anymore).
5775 * Fixed -Classic mode (wasn't working anymore).
5764
5776
5765 * Added colored prompts using Nathan's new code. Colors are
5777 * Added colored prompts using Nathan's new code. Colors are
5766 currently hardwired, they can be user-configurable. For
5778 currently hardwired, they can be user-configurable. For
5767 developers, they can be chosen in file ipythonlib.py, at the
5779 developers, they can be chosen in file ipythonlib.py, at the
5768 beginning of the CachedOutput class def.
5780 beginning of the CachedOutput class def.
5769
5781
5770 2001-11-11 Fernando Perez <fperez@colorado.edu>
5782 2001-11-11 Fernando Perez <fperez@colorado.edu>
5771
5783
5772 * Version 0.1.5 released, 0.1.6 opened for further work.
5784 * Version 0.1.5 released, 0.1.6 opened for further work.
5773
5785
5774 * Changed magic_env to *return* the environment as a dict (not to
5786 * Changed magic_env to *return* the environment as a dict (not to
5775 print it). This way it prints, but it can also be processed.
5787 print it). This way it prints, but it can also be processed.
5776
5788
5777 * Added Verbose exception reporting to interactive
5789 * Added Verbose exception reporting to interactive
5778 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5790 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5779 traceback. Had to make some changes to the ultraTB file. This is
5791 traceback. Had to make some changes to the ultraTB file. This is
5780 probably the last 'big' thing in my mental todo list. This ties
5792 probably the last 'big' thing in my mental todo list. This ties
5781 in with the next entry:
5793 in with the next entry:
5782
5794
5783 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5795 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5784 has to specify is Plain, Color or Verbose for all exception
5796 has to specify is Plain, Color or Verbose for all exception
5785 handling.
5797 handling.
5786
5798
5787 * Removed ShellServices option. All this can really be done via
5799 * Removed ShellServices option. All this can really be done via
5788 the magic system. It's easier to extend, cleaner and has automatic
5800 the magic system. It's easier to extend, cleaner and has automatic
5789 namespace protection and documentation.
5801 namespace protection and documentation.
5790
5802
5791 2001-11-09 Fernando Perez <fperez@colorado.edu>
5803 2001-11-09 Fernando Perez <fperez@colorado.edu>
5792
5804
5793 * Fixed bug in output cache flushing (missing parameter to
5805 * Fixed bug in output cache flushing (missing parameter to
5794 __init__). Other small bugs fixed (found using pychecker).
5806 __init__). Other small bugs fixed (found using pychecker).
5795
5807
5796 * Version 0.1.4 opened for bugfixing.
5808 * Version 0.1.4 opened for bugfixing.
5797
5809
5798 2001-11-07 Fernando Perez <fperez@colorado.edu>
5810 2001-11-07 Fernando Perez <fperez@colorado.edu>
5799
5811
5800 * Version 0.1.3 released, mainly because of the raw_input bug.
5812 * Version 0.1.3 released, mainly because of the raw_input bug.
5801
5813
5802 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5814 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5803 and when testing for whether things were callable, a call could
5815 and when testing for whether things were callable, a call could
5804 actually be made to certain functions. They would get called again
5816 actually be made to certain functions. They would get called again
5805 once 'really' executed, with a resulting double call. A disaster
5817 once 'really' executed, with a resulting double call. A disaster
5806 in many cases (list.reverse() would never work!).
5818 in many cases (list.reverse() would never work!).
5807
5819
5808 * Removed prefilter() function, moved its code to raw_input (which
5820 * Removed prefilter() function, moved its code to raw_input (which
5809 after all was just a near-empty caller for prefilter). This saves
5821 after all was just a near-empty caller for prefilter). This saves
5810 a function call on every prompt, and simplifies the class a tiny bit.
5822 a function call on every prompt, and simplifies the class a tiny bit.
5811
5823
5812 * Fix _ip to __ip name in magic example file.
5824 * Fix _ip to __ip name in magic example file.
5813
5825
5814 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5826 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5815 work with non-gnu versions of tar.
5827 work with non-gnu versions of tar.
5816
5828
5817 2001-11-06 Fernando Perez <fperez@colorado.edu>
5829 2001-11-06 Fernando Perez <fperez@colorado.edu>
5818
5830
5819 * Version 0.1.2. Just to keep track of the recent changes.
5831 * Version 0.1.2. Just to keep track of the recent changes.
5820
5832
5821 * Fixed nasty bug in output prompt routine. It used to check 'if
5833 * Fixed nasty bug in output prompt routine. It used to check 'if
5822 arg != None...'. Problem is, this fails if arg implements a
5834 arg != None...'. Problem is, this fails if arg implements a
5823 special comparison (__cmp__) which disallows comparing to
5835 special comparison (__cmp__) which disallows comparing to
5824 None. Found it when trying to use the PhysicalQuantity module from
5836 None. Found it when trying to use the PhysicalQuantity module from
5825 ScientificPython.
5837 ScientificPython.
5826
5838
5827 2001-11-05 Fernando Perez <fperez@colorado.edu>
5839 2001-11-05 Fernando Perez <fperez@colorado.edu>
5828
5840
5829 * Also added dirs. Now the pushd/popd/dirs family functions
5841 * Also added dirs. Now the pushd/popd/dirs family functions
5830 basically like the shell, with the added convenience of going home
5842 basically like the shell, with the added convenience of going home
5831 when called with no args.
5843 when called with no args.
5832
5844
5833 * pushd/popd slightly modified to mimic shell behavior more
5845 * pushd/popd slightly modified to mimic shell behavior more
5834 closely.
5846 closely.
5835
5847
5836 * Added env,pushd,popd from ShellServices as magic functions. I
5848 * Added env,pushd,popd from ShellServices as magic functions. I
5837 think the cleanest will be to port all desired functions from
5849 think the cleanest will be to port all desired functions from
5838 ShellServices as magics and remove ShellServices altogether. This
5850 ShellServices as magics and remove ShellServices altogether. This
5839 will provide a single, clean way of adding functionality
5851 will provide a single, clean way of adding functionality
5840 (shell-type or otherwise) to IP.
5852 (shell-type or otherwise) to IP.
5841
5853
5842 2001-11-04 Fernando Perez <fperez@colorado.edu>
5854 2001-11-04 Fernando Perez <fperez@colorado.edu>
5843
5855
5844 * Added .ipython/ directory to sys.path. This way users can keep
5856 * Added .ipython/ directory to sys.path. This way users can keep
5845 customizations there and access them via import.
5857 customizations there and access them via import.
5846
5858
5847 2001-11-03 Fernando Perez <fperez@colorado.edu>
5859 2001-11-03 Fernando Perez <fperez@colorado.edu>
5848
5860
5849 * Opened version 0.1.1 for new changes.
5861 * Opened version 0.1.1 for new changes.
5850
5862
5851 * Changed version number to 0.1.0: first 'public' release, sent to
5863 * Changed version number to 0.1.0: first 'public' release, sent to
5852 Nathan and Janko.
5864 Nathan and Janko.
5853
5865
5854 * Lots of small fixes and tweaks.
5866 * Lots of small fixes and tweaks.
5855
5867
5856 * Minor changes to whos format. Now strings are shown, snipped if
5868 * Minor changes to whos format. Now strings are shown, snipped if
5857 too long.
5869 too long.
5858
5870
5859 * Changed ShellServices to work on __main__ so they show up in @who
5871 * Changed ShellServices to work on __main__ so they show up in @who
5860
5872
5861 * Help also works with ? at the end of a line:
5873 * Help also works with ? at the end of a line:
5862 ?sin and sin?
5874 ?sin and sin?
5863 both produce the same effect. This is nice, as often I use the
5875 both produce the same effect. This is nice, as often I use the
5864 tab-complete to find the name of a method, but I used to then have
5876 tab-complete to find the name of a method, but I used to then have
5865 to go to the beginning of the line to put a ? if I wanted more
5877 to go to the beginning of the line to put a ? if I wanted more
5866 info. Now I can just add the ? and hit return. Convenient.
5878 info. Now I can just add the ? and hit return. Convenient.
5867
5879
5868 2001-11-02 Fernando Perez <fperez@colorado.edu>
5880 2001-11-02 Fernando Perez <fperez@colorado.edu>
5869
5881
5870 * Python version check (>=2.1) added.
5882 * Python version check (>=2.1) added.
5871
5883
5872 * Added LazyPython documentation. At this point the docs are quite
5884 * Added LazyPython documentation. At this point the docs are quite
5873 a mess. A cleanup is in order.
5885 a mess. A cleanup is in order.
5874
5886
5875 * Auto-installer created. For some bizarre reason, the zipfiles
5887 * Auto-installer created. For some bizarre reason, the zipfiles
5876 module isn't working on my system. So I made a tar version
5888 module isn't working on my system. So I made a tar version
5877 (hopefully the command line options in various systems won't kill
5889 (hopefully the command line options in various systems won't kill
5878 me).
5890 me).
5879
5891
5880 * Fixes to Struct in genutils. Now all dictionary-like methods are
5892 * Fixes to Struct in genutils. Now all dictionary-like methods are
5881 protected (reasonably).
5893 protected (reasonably).
5882
5894
5883 * Added pager function to genutils and changed ? to print usage
5895 * Added pager function to genutils and changed ? to print usage
5884 note through it (it was too long).
5896 note through it (it was too long).
5885
5897
5886 * Added the LazyPython functionality. Works great! I changed the
5898 * Added the LazyPython functionality. Works great! I changed the
5887 auto-quote escape to ';', it's on home row and next to '. But
5899 auto-quote escape to ';', it's on home row and next to '. But
5888 both auto-quote and auto-paren (still /) escapes are command-line
5900 both auto-quote and auto-paren (still /) escapes are command-line
5889 parameters.
5901 parameters.
5890
5902
5891
5903
5892 2001-11-01 Fernando Perez <fperez@colorado.edu>
5904 2001-11-01 Fernando Perez <fperez@colorado.edu>
5893
5905
5894 * Version changed to 0.0.7. Fairly large change: configuration now
5906 * Version changed to 0.0.7. Fairly large change: configuration now
5895 is all stored in a directory, by default .ipython. There, all
5907 is all stored in a directory, by default .ipython. There, all
5896 config files have normal looking names (not .names)
5908 config files have normal looking names (not .names)
5897
5909
5898 * Version 0.0.6 Released first to Lucas and Archie as a test
5910 * Version 0.0.6 Released first to Lucas and Archie as a test
5899 run. Since it's the first 'semi-public' release, change version to
5911 run. Since it's the first 'semi-public' release, change version to
5900 > 0.0.6 for any changes now.
5912 > 0.0.6 for any changes now.
5901
5913
5902 * Stuff I had put in the ipplib.py changelog:
5914 * Stuff I had put in the ipplib.py changelog:
5903
5915
5904 Changes to InteractiveShell:
5916 Changes to InteractiveShell:
5905
5917
5906 - Made the usage message a parameter.
5918 - Made the usage message a parameter.
5907
5919
5908 - Require the name of the shell variable to be given. It's a bit
5920 - Require the name of the shell variable to be given. It's a bit
5909 of a hack, but allows the name 'shell' not to be hardwired in the
5921 of a hack, but allows the name 'shell' not to be hardwired in the
5910 magic (@) handler, which is problematic b/c it requires
5922 magic (@) handler, which is problematic b/c it requires
5911 polluting the global namespace with 'shell'. This in turn is
5923 polluting the global namespace with 'shell'. This in turn is
5912 fragile: if a user redefines a variable called shell, things
5924 fragile: if a user redefines a variable called shell, things
5913 break.
5925 break.
5914
5926
5915 - magic @: all functions available through @ need to be defined
5927 - magic @: all functions available through @ need to be defined
5916 as magic_<name>, even though they can be called simply as
5928 as magic_<name>, even though they can be called simply as
5917 @<name>. This allows the special command @magic to gather
5929 @<name>. This allows the special command @magic to gather
5918 information automatically about all existing magic functions,
5930 information automatically about all existing magic functions,
5919 even if they are run-time user extensions, by parsing the shell
5931 even if they are run-time user extensions, by parsing the shell
5920 instance __dict__ looking for special magic_ names.
5932 instance __dict__ looking for special magic_ names.
5921
5933
5922 - mainloop: added *two* local namespace parameters. This allows
5934 - mainloop: added *two* local namespace parameters. This allows
5923 the class to differentiate between parameters which were there
5935 the class to differentiate between parameters which were there
5924 before and after command line initialization was processed. This
5936 before and after command line initialization was processed. This
5925 way, later @who can show things loaded at startup by the
5937 way, later @who can show things loaded at startup by the
5926 user. This trick was necessary to make session saving/reloading
5938 user. This trick was necessary to make session saving/reloading
5927 really work: ideally after saving/exiting/reloading a session,
5939 really work: ideally after saving/exiting/reloading a session,
5928 *everything* should look the same, including the output of @who. I
5940 *everything* should look the same, including the output of @who. I
5929 was only able to make this work with this double namespace
5941 was only able to make this work with this double namespace
5930 trick.
5942 trick.
5931
5943
5932 - added a header to the logfile which allows (almost) full
5944 - added a header to the logfile which allows (almost) full
5933 session restoring.
5945 session restoring.
5934
5946
5935 - prepend lines beginning with @ or !, with a and log
5947 - prepend lines beginning with @ or !, with a and log
5936 them. Why? !lines: may be useful to know what you did @lines:
5948 them. Why? !lines: may be useful to know what you did @lines:
5937 they may affect session state. So when restoring a session, at
5949 they may affect session state. So when restoring a session, at
5938 least inform the user of their presence. I couldn't quite get
5950 least inform the user of their presence. I couldn't quite get
5939 them to properly re-execute, but at least the user is warned.
5951 them to properly re-execute, but at least the user is warned.
5940
5952
5941 * Started ChangeLog.
5953 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now