##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,5971 +1,5980 b''
1 2006-11-23 Ville Vainio <vivainio@gmail.com>
2
3 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
4 Qt+IPython+Designer link in documentation.
5
6 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
7 correct Pdb object to %pydb.
8
9
1 2006-11-22 Walter Doerwald <walter@livinglogic.de>
10 2006-11-22 Walter Doerwald <walter@livinglogic.de>
2 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
11 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
3 generic xrepr(), otherwise the list implementation would kick in.
12 generic xrepr(), otherwise the list implementation would kick in.
4
13
5 2006-11-21 Ville Vainio <vivainio@gmail.com>
14 2006-11-21 Ville Vainio <vivainio@gmail.com>
6
15
7 * upgrade_dir.py: Now actually overwrites a nonmodified user file
16 * upgrade_dir.py: Now actually overwrites a nonmodified user file
8 with one from UserConfig.
17 with one from UserConfig.
9
18
10 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
19 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
11 it was missing which broke the sh profile.
20 it was missing which broke the sh profile.
12
21
13 * completer.py: file completer now uses explicit '/' instead
22 * completer.py: file completer now uses explicit '/' instead
14 of os.path.join, expansion of 'foo' was broken on win32
23 of os.path.join, expansion of 'foo' was broken on win32
15 if there was one directory with name 'foobar'.
24 if there was one directory with name 'foobar'.
16
25
17 * A bunch of patches from Kirill Smelkov:
26 * A bunch of patches from Kirill Smelkov:
18
27
19 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
28 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
20
29
21 * [patch 7/9] Implement %page -r (page in raw mode) -
30 * [patch 7/9] Implement %page -r (page in raw mode) -
22
31
23 * [patch 5/9] ScientificPython webpage has moved
32 * [patch 5/9] ScientificPython webpage has moved
24
33
25 * [patch 4/9] The manual mentions %ds, should be %dhist
34 * [patch 4/9] The manual mentions %ds, should be %dhist
26
35
27 * [patch 3/9] Kill old bits from %prun doc.
36 * [patch 3/9] Kill old bits from %prun doc.
28
37
29 * [patch 1/9] Fix typos here and there.
38 * [patch 1/9] Fix typos here and there.
30
39
31 2006-11-08 Ville Vainio <vivainio@gmail.com>
40 2006-11-08 Ville Vainio <vivainio@gmail.com>
32
41
33 * completer.py (attr_matches): catch all exceptions raised
42 * completer.py (attr_matches): catch all exceptions raised
34 by eval of expr with dots.
43 by eval of expr with dots.
35
44
36 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
45 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
37
46
38 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
47 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
39 input if it starts with whitespace. This allows you to paste
48 input if it starts with whitespace. This allows you to paste
40 indented input from any editor without manually having to type in
49 indented input from any editor without manually having to type in
41 the 'if 1:', which is convenient when working interactively.
50 the 'if 1:', which is convenient when working interactively.
42 Slightly modifed version of a patch by Bo Peng
51 Slightly modifed version of a patch by Bo Peng
43 <bpeng-AT-rice.edu>.
52 <bpeng-AT-rice.edu>.
44
53
45 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
54 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
46
55
47 * IPython/irunner.py (main): modified irunner so it automatically
56 * IPython/irunner.py (main): modified irunner so it automatically
48 recognizes the right runner to use based on the extension (.py for
57 recognizes the right runner to use based on the extension (.py for
49 python, .ipy for ipython and .sage for sage).
58 python, .ipy for ipython and .sage for sage).
50
59
51 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
60 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
52 visible in ipapi as ip.config(), to programatically control the
61 visible in ipapi as ip.config(), to programatically control the
53 internal rc object. There's an accompanying %config magic for
62 internal rc object. There's an accompanying %config magic for
54 interactive use, which has been enhanced to match the
63 interactive use, which has been enhanced to match the
55 funtionality in ipconfig.
64 funtionality in ipconfig.
56
65
57 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
66 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
58 so it's not just a toggle, it now takes an argument. Add support
67 so it's not just a toggle, it now takes an argument. Add support
59 for a customizable header when making system calls, as the new
68 for a customizable header when making system calls, as the new
60 system_header variable in the ipythonrc file.
69 system_header variable in the ipythonrc file.
61
70
62 2006-11-03 Walter Doerwald <walter@livinglogic.de>
71 2006-11-03 Walter Doerwald <walter@livinglogic.de>
63
72
64 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
73 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
65 generic functions (using Philip J. Eby's simplegeneric package).
74 generic functions (using Philip J. Eby's simplegeneric package).
66 This makes it possible to customize the display of third-party classes
75 This makes it possible to customize the display of third-party classes
67 without having to monkeypatch them. xiter() no longer supports a mode
76 without having to monkeypatch them. xiter() no longer supports a mode
68 argument and the XMode class has been removed. The same functionality can
77 argument and the XMode class has been removed. The same functionality can
69 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
78 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
70 One consequence of the switch to generic functions is that xrepr() and
79 One consequence of the switch to generic functions is that xrepr() and
71 xattrs() implementation must define the default value for the mode
80 xattrs() implementation must define the default value for the mode
72 argument themselves and xattrs() implementations must return real
81 argument themselves and xattrs() implementations must return real
73 descriptors.
82 descriptors.
74
83
75 * IPython/external: This new subpackage will contain all third-party
84 * IPython/external: This new subpackage will contain all third-party
76 packages that are bundled with IPython. (The first one is simplegeneric).
85 packages that are bundled with IPython. (The first one is simplegeneric).
77
86
78 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
87 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
79 directory which as been dropped in r1703.
88 directory which as been dropped in r1703.
80
89
81 * IPython/Extensions/ipipe.py (iless): Fixed.
90 * IPython/Extensions/ipipe.py (iless): Fixed.
82
91
83 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
92 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
84
93
85 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
94 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
86
95
87 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
96 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
88 handling in variable expansion so that shells and magics recognize
97 handling in variable expansion so that shells and magics recognize
89 function local scopes correctly. Bug reported by Brian.
98 function local scopes correctly. Bug reported by Brian.
90
99
91 * scripts/ipython: remove the very first entry in sys.path which
100 * scripts/ipython: remove the very first entry in sys.path which
92 Python auto-inserts for scripts, so that sys.path under IPython is
101 Python auto-inserts for scripts, so that sys.path under IPython is
93 as similar as possible to that under plain Python.
102 as similar as possible to that under plain Python.
94
103
95 * IPython/completer.py (IPCompleter.file_matches): Fix
104 * IPython/completer.py (IPCompleter.file_matches): Fix
96 tab-completion so that quotes are not closed unless the completion
105 tab-completion so that quotes are not closed unless the completion
97 is unambiguous. After a request by Stefan. Minor cleanups in
106 is unambiguous. After a request by Stefan. Minor cleanups in
98 ipy_stock_completers.
107 ipy_stock_completers.
99
108
100 2006-11-02 Ville Vainio <vivainio@gmail.com>
109 2006-11-02 Ville Vainio <vivainio@gmail.com>
101
110
102 * ipy_stock_completers.py: Add %run and %cd completers.
111 * ipy_stock_completers.py: Add %run and %cd completers.
103
112
104 * completer.py: Try running custom completer for both
113 * completer.py: Try running custom completer for both
105 "foo" and "%foo" if the command is just "foo". Ignore case
114 "foo" and "%foo" if the command is just "foo". Ignore case
106 when filtering possible completions.
115 when filtering possible completions.
107
116
108 * UserConfig/ipy_user_conf.py: install stock completers as default
117 * UserConfig/ipy_user_conf.py: install stock completers as default
109
118
110 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
119 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
111 simplified readline history save / restore through a wrapper
120 simplified readline history save / restore through a wrapper
112 function
121 function
113
122
114
123
115 2006-10-31 Ville Vainio <vivainio@gmail.com>
124 2006-10-31 Ville Vainio <vivainio@gmail.com>
116
125
117 * strdispatch.py, completer.py, ipy_stock_completers.py:
126 * strdispatch.py, completer.py, ipy_stock_completers.py:
118 Allow str_key ("command") in completer hooks. Implement
127 Allow str_key ("command") in completer hooks. Implement
119 trivial completer for 'import' (stdlib modules only). Rename
128 trivial completer for 'import' (stdlib modules only). Rename
120 ipy_linux_package_managers.py to ipy_stock_completers.py.
129 ipy_linux_package_managers.py to ipy_stock_completers.py.
121 SVN completer.
130 SVN completer.
122
131
123 * Extensions/ledit.py: %magic line editor for easily and
132 * Extensions/ledit.py: %magic line editor for easily and
124 incrementally manipulating lists of strings. The magic command
133 incrementally manipulating lists of strings. The magic command
125 name is %led.
134 name is %led.
126
135
127 2006-10-30 Ville Vainio <vivainio@gmail.com>
136 2006-10-30 Ville Vainio <vivainio@gmail.com>
128
137
129 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
138 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
130 Bernsteins's patches for pydb integration.
139 Bernsteins's patches for pydb integration.
131 http://bashdb.sourceforge.net/pydb/
140 http://bashdb.sourceforge.net/pydb/
132
141
133 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
142 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
134 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
143 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
135 custom completer hook to allow the users to implement their own
144 custom completer hook to allow the users to implement their own
136 completers. See ipy_linux_package_managers.py for example. The
145 completers. See ipy_linux_package_managers.py for example. The
137 hook name is 'complete_command'.
146 hook name is 'complete_command'.
138
147
139 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
148 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
140
149
141 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
150 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
142 Numeric leftovers.
151 Numeric leftovers.
143
152
144 * ipython.el (py-execute-region): apply Stefan's patch to fix
153 * ipython.el (py-execute-region): apply Stefan's patch to fix
145 garbled results if the python shell hasn't been previously started.
154 garbled results if the python shell hasn't been previously started.
146
155
147 * IPython/genutils.py (arg_split): moved to genutils, since it's a
156 * IPython/genutils.py (arg_split): moved to genutils, since it's a
148 pretty generic function and useful for other things.
157 pretty generic function and useful for other things.
149
158
150 * IPython/OInspect.py (getsource): Add customizable source
159 * IPython/OInspect.py (getsource): Add customizable source
151 extractor. After a request/patch form W. Stein (SAGE).
160 extractor. After a request/patch form W. Stein (SAGE).
152
161
153 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
162 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
154 window size to a more reasonable value from what pexpect does,
163 window size to a more reasonable value from what pexpect does,
155 since their choice causes wrapping bugs with long input lines.
164 since their choice causes wrapping bugs with long input lines.
156
165
157 2006-10-28 Ville Vainio <vivainio@gmail.com>
166 2006-10-28 Ville Vainio <vivainio@gmail.com>
158
167
159 * Magic.py (%run): Save and restore the readline history from
168 * Magic.py (%run): Save and restore the readline history from
160 file around %run commands to prevent side effects from
169 file around %run commands to prevent side effects from
161 %runned programs that might use readline (e.g. pydb).
170 %runned programs that might use readline (e.g. pydb).
162
171
163 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
172 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
164 invoking the pydb enhanced debugger.
173 invoking the pydb enhanced debugger.
165
174
166 2006-10-23 Walter Doerwald <walter@livinglogic.de>
175 2006-10-23 Walter Doerwald <walter@livinglogic.de>
167
176
168 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
177 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
169 call the base class method and propagate the return value to
178 call the base class method and propagate the return value to
170 ifile. This is now done by path itself.
179 ifile. This is now done by path itself.
171
180
172 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
181 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
173
182
174 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
183 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
175 api: set_crash_handler(), to expose the ability to change the
184 api: set_crash_handler(), to expose the ability to change the
176 internal crash handler.
185 internal crash handler.
177
186
178 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
187 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
179 the various parameters of the crash handler so that apps using
188 the various parameters of the crash handler so that apps using
180 IPython as their engine can customize crash handling. Ipmlemented
189 IPython as their engine can customize crash handling. Ipmlemented
181 at the request of SAGE.
190 at the request of SAGE.
182
191
183 2006-10-14 Ville Vainio <vivainio@gmail.com>
192 2006-10-14 Ville Vainio <vivainio@gmail.com>
184
193
185 * Magic.py, ipython.el: applied first "safe" part of Rocky
194 * Magic.py, ipython.el: applied first "safe" part of Rocky
186 Bernstein's patch set for pydb integration.
195 Bernstein's patch set for pydb integration.
187
196
188 * Magic.py (%unalias, %alias): %store'd aliases can now be
197 * Magic.py (%unalias, %alias): %store'd aliases can now be
189 removed with '%unalias'. %alias w/o args now shows most
198 removed with '%unalias'. %alias w/o args now shows most
190 interesting (stored / manually defined) aliases last
199 interesting (stored / manually defined) aliases last
191 where they catch the eye w/o scrolling.
200 where they catch the eye w/o scrolling.
192
201
193 * Magic.py (%rehashx), ext_rehashdir.py: files with
202 * Magic.py (%rehashx), ext_rehashdir.py: files with
194 'py' extension are always considered executable, even
203 'py' extension are always considered executable, even
195 when not in PATHEXT environment variable.
204 when not in PATHEXT environment variable.
196
205
197 2006-10-12 Ville Vainio <vivainio@gmail.com>
206 2006-10-12 Ville Vainio <vivainio@gmail.com>
198
207
199 * jobctrl.py: Add new "jobctrl" extension for spawning background
208 * jobctrl.py: Add new "jobctrl" extension for spawning background
200 processes with "&find /". 'import jobctrl' to try it out. Requires
209 processes with "&find /". 'import jobctrl' to try it out. Requires
201 'subprocess' module, standard in python 2.4+.
210 'subprocess' module, standard in python 2.4+.
202
211
203 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
212 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
204 so if foo -> bar and bar -> baz, then foo -> baz.
213 so if foo -> bar and bar -> baz, then foo -> baz.
205
214
206 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
215 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
207
216
208 * IPython/Magic.py (Magic.parse_options): add a new posix option
217 * IPython/Magic.py (Magic.parse_options): add a new posix option
209 to allow parsing of input args in magics that doesn't strip quotes
218 to allow parsing of input args in magics that doesn't strip quotes
210 (if posix=False). This also closes %timeit bug reported by
219 (if posix=False). This also closes %timeit bug reported by
211 Stefan.
220 Stefan.
212
221
213 2006-10-03 Ville Vainio <vivainio@gmail.com>
222 2006-10-03 Ville Vainio <vivainio@gmail.com>
214
223
215 * iplib.py (raw_input, interact): Return ValueError catching for
224 * iplib.py (raw_input, interact): Return ValueError catching for
216 raw_input. Fixes infinite loop for sys.stdin.close() or
225 raw_input. Fixes infinite loop for sys.stdin.close() or
217 sys.stdout.close().
226 sys.stdout.close().
218
227
219 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
228 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
220
229
221 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
230 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
222 to help in handling doctests. irunner is now pretty useful for
231 to help in handling doctests. irunner is now pretty useful for
223 running standalone scripts and simulate a full interactive session
232 running standalone scripts and simulate a full interactive session
224 in a format that can be then pasted as a doctest.
233 in a format that can be then pasted as a doctest.
225
234
226 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
235 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
227 on top of the default (useless) ones. This also fixes the nasty
236 on top of the default (useless) ones. This also fixes the nasty
228 way in which 2.5's Quitter() exits (reverted [1785]).
237 way in which 2.5's Quitter() exits (reverted [1785]).
229
238
230 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
239 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
231 2.5.
240 2.5.
232
241
233 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
242 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
234 color scheme is updated as well when color scheme is changed
243 color scheme is updated as well when color scheme is changed
235 interactively.
244 interactively.
236
245
237 2006-09-27 Ville Vainio <vivainio@gmail.com>
246 2006-09-27 Ville Vainio <vivainio@gmail.com>
238
247
239 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
248 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
240 infinite loop and just exit. It's a hack, but will do for a while.
249 infinite loop and just exit. It's a hack, but will do for a while.
241
250
242 2006-08-25 Walter Doerwald <walter@livinglogic.de>
251 2006-08-25 Walter Doerwald <walter@livinglogic.de>
243
252
244 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
253 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
245 the constructor, this makes it possible to get a list of only directories
254 the constructor, this makes it possible to get a list of only directories
246 or only files.
255 or only files.
247
256
248 2006-08-12 Ville Vainio <vivainio@gmail.com>
257 2006-08-12 Ville Vainio <vivainio@gmail.com>
249
258
250 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
259 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
251 they broke unittest
260 they broke unittest
252
261
253 2006-08-11 Ville Vainio <vivainio@gmail.com>
262 2006-08-11 Ville Vainio <vivainio@gmail.com>
254
263
255 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
264 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
256 by resolving issue properly, i.e. by inheriting FakeModule
265 by resolving issue properly, i.e. by inheriting FakeModule
257 from types.ModuleType. Pickling ipython interactive data
266 from types.ModuleType. Pickling ipython interactive data
258 should still work as usual (testing appreciated).
267 should still work as usual (testing appreciated).
259
268
260 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
269 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
261
270
262 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
271 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
263 running under python 2.3 with code from 2.4 to fix a bug with
272 running under python 2.3 with code from 2.4 to fix a bug with
264 help(). Reported by the Debian maintainers, Norbert Tretkowski
273 help(). Reported by the Debian maintainers, Norbert Tretkowski
265 <norbert-AT-tretkowski.de> and Alexandre Fayolle
274 <norbert-AT-tretkowski.de> and Alexandre Fayolle
266 <afayolle-AT-debian.org>.
275 <afayolle-AT-debian.org>.
267
276
268 2006-08-04 Walter Doerwald <walter@livinglogic.de>
277 2006-08-04 Walter Doerwald <walter@livinglogic.de>
269
278
270 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
279 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
271 (which was displaying "quit" twice).
280 (which was displaying "quit" twice).
272
281
273 2006-07-28 Walter Doerwald <walter@livinglogic.de>
282 2006-07-28 Walter Doerwald <walter@livinglogic.de>
274
283
275 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
284 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
276 the mode argument).
285 the mode argument).
277
286
278 2006-07-27 Walter Doerwald <walter@livinglogic.de>
287 2006-07-27 Walter Doerwald <walter@livinglogic.de>
279
288
280 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
289 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
281 not running under IPython.
290 not running under IPython.
282
291
283 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
292 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
284 and make it iterable (iterating over the attribute itself). Add two new
293 and make it iterable (iterating over the attribute itself). Add two new
285 magic strings for __xattrs__(): If the string starts with "-", the attribute
294 magic strings for __xattrs__(): If the string starts with "-", the attribute
286 will not be displayed in ibrowse's detail view (but it can still be
295 will not be displayed in ibrowse's detail view (but it can still be
287 iterated over). This makes it possible to add attributes that are large
296 iterated over). This makes it possible to add attributes that are large
288 lists or generator methods to the detail view. Replace magic attribute names
297 lists or generator methods to the detail view. Replace magic attribute names
289 and _attrname() and _getattr() with "descriptors": For each type of magic
298 and _attrname() and _getattr() with "descriptors": For each type of magic
290 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
299 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
291 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
300 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
292 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
301 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
293 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
302 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
294 are still supported.
303 are still supported.
295
304
296 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
305 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
297 fails in ibrowse.fetch(), the exception object is added as the last item
306 fails in ibrowse.fetch(), the exception object is added as the last item
298 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
307 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
299 a generator throws an exception midway through execution.
308 a generator throws an exception midway through execution.
300
309
301 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
310 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
302 encoding into methods.
311 encoding into methods.
303
312
304 2006-07-26 Ville Vainio <vivainio@gmail.com>
313 2006-07-26 Ville Vainio <vivainio@gmail.com>
305
314
306 * iplib.py: history now stores multiline input as single
315 * iplib.py: history now stores multiline input as single
307 history entries. Patch by Jorgen Cederlof.
316 history entries. Patch by Jorgen Cederlof.
308
317
309 2006-07-18 Walter Doerwald <walter@livinglogic.de>
318 2006-07-18 Walter Doerwald <walter@livinglogic.de>
310
319
311 * IPython/Extensions/ibrowse.py: Make cursor visible over
320 * IPython/Extensions/ibrowse.py: Make cursor visible over
312 non existing attributes.
321 non existing attributes.
313
322
314 2006-07-14 Walter Doerwald <walter@livinglogic.de>
323 2006-07-14 Walter Doerwald <walter@livinglogic.de>
315
324
316 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
325 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
317 error output of the running command doesn't mess up the screen.
326 error output of the running command doesn't mess up the screen.
318
327
319 2006-07-13 Walter Doerwald <walter@livinglogic.de>
328 2006-07-13 Walter Doerwald <walter@livinglogic.de>
320
329
321 * IPython/Extensions/ipipe.py (isort): Make isort usable without
330 * IPython/Extensions/ipipe.py (isort): Make isort usable without
322 argument. This sorts the items themselves.
331 argument. This sorts the items themselves.
323
332
324 2006-07-12 Walter Doerwald <walter@livinglogic.de>
333 2006-07-12 Walter Doerwald <walter@livinglogic.de>
325
334
326 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
335 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
327 Compile expression strings into code objects. This should speed
336 Compile expression strings into code objects. This should speed
328 up ifilter and friends somewhat.
337 up ifilter and friends somewhat.
329
338
330 2006-07-08 Ville Vainio <vivainio@gmail.com>
339 2006-07-08 Ville Vainio <vivainio@gmail.com>
331
340
332 * Magic.py: %cpaste now strips > from the beginning of lines
341 * Magic.py: %cpaste now strips > from the beginning of lines
333 to ease pasting quoted code from emails. Contributed by
342 to ease pasting quoted code from emails. Contributed by
334 Stefan van der Walt.
343 Stefan van der Walt.
335
344
336 2006-06-29 Ville Vainio <vivainio@gmail.com>
345 2006-06-29 Ville Vainio <vivainio@gmail.com>
337
346
338 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
347 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
339 mode, patch contributed by Darren Dale. NEEDS TESTING!
348 mode, patch contributed by Darren Dale. NEEDS TESTING!
340
349
341 2006-06-28 Walter Doerwald <walter@livinglogic.de>
350 2006-06-28 Walter Doerwald <walter@livinglogic.de>
342
351
343 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
352 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
344 a blue background. Fix fetching new display rows when the browser
353 a blue background. Fix fetching new display rows when the browser
345 scrolls more than a screenful (e.g. by using the goto command).
354 scrolls more than a screenful (e.g. by using the goto command).
346
355
347 2006-06-27 Ville Vainio <vivainio@gmail.com>
356 2006-06-27 Ville Vainio <vivainio@gmail.com>
348
357
349 * Magic.py (_inspect, _ofind) Apply David Huard's
358 * Magic.py (_inspect, _ofind) Apply David Huard's
350 patch for displaying the correct docstring for 'property'
359 patch for displaying the correct docstring for 'property'
351 attributes.
360 attributes.
352
361
353 2006-06-23 Walter Doerwald <walter@livinglogic.de>
362 2006-06-23 Walter Doerwald <walter@livinglogic.de>
354
363
355 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
364 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
356 commands into the methods implementing them.
365 commands into the methods implementing them.
357
366
358 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
367 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
359
368
360 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
369 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
361 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
370 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
362 autoindent support was authored by Jin Liu.
371 autoindent support was authored by Jin Liu.
363
372
364 2006-06-22 Walter Doerwald <walter@livinglogic.de>
373 2006-06-22 Walter Doerwald <walter@livinglogic.de>
365
374
366 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
375 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
367 for keymaps with a custom class that simplifies handling.
376 for keymaps with a custom class that simplifies handling.
368
377
369 2006-06-19 Walter Doerwald <walter@livinglogic.de>
378 2006-06-19 Walter Doerwald <walter@livinglogic.de>
370
379
371 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
380 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
372 resizing. This requires Python 2.5 to work.
381 resizing. This requires Python 2.5 to work.
373
382
374 2006-06-16 Walter Doerwald <walter@livinglogic.de>
383 2006-06-16 Walter Doerwald <walter@livinglogic.de>
375
384
376 * IPython/Extensions/ibrowse.py: Add two new commands to
385 * IPython/Extensions/ibrowse.py: Add two new commands to
377 ibrowse: "hideattr" (mapped to "h") hides the attribute under
386 ibrowse: "hideattr" (mapped to "h") hides the attribute under
378 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
387 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
379 attributes again. Remapped the help command to "?". Display
388 attributes again. Remapped the help command to "?". Display
380 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
389 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
381 as keys for the "home" and "end" commands. Add three new commands
390 as keys for the "home" and "end" commands. Add three new commands
382 to the input mode for "find" and friends: "delend" (CTRL-K)
391 to the input mode for "find" and friends: "delend" (CTRL-K)
383 deletes to the end of line. "incsearchup" searches upwards in the
392 deletes to the end of line. "incsearchup" searches upwards in the
384 command history for an input that starts with the text before the cursor.
393 command history for an input that starts with the text before the cursor.
385 "incsearchdown" does the same downwards. Removed a bogus mapping of
394 "incsearchdown" does the same downwards. Removed a bogus mapping of
386 the x key to "delete".
395 the x key to "delete".
387
396
388 2006-06-15 Ville Vainio <vivainio@gmail.com>
397 2006-06-15 Ville Vainio <vivainio@gmail.com>
389
398
390 * iplib.py, hooks.py: Added new generate_prompt hook that can be
399 * iplib.py, hooks.py: Added new generate_prompt hook that can be
391 used to create prompts dynamically, instead of the "old" way of
400 used to create prompts dynamically, instead of the "old" way of
392 assigning "magic" strings to prompt_in1 and prompt_in2. The old
401 assigning "magic" strings to prompt_in1 and prompt_in2. The old
393 way still works (it's invoked by the default hook), of course.
402 way still works (it's invoked by the default hook), of course.
394
403
395 * Prompts.py: added generate_output_prompt hook for altering output
404 * Prompts.py: added generate_output_prompt hook for altering output
396 prompt
405 prompt
397
406
398 * Release.py: Changed version string to 0.7.3.svn.
407 * Release.py: Changed version string to 0.7.3.svn.
399
408
400 2006-06-15 Walter Doerwald <walter@livinglogic.de>
409 2006-06-15 Walter Doerwald <walter@livinglogic.de>
401
410
402 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
411 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
403 the call to fetch() always tries to fetch enough data for at least one
412 the call to fetch() always tries to fetch enough data for at least one
404 full screen. This makes it possible to simply call moveto(0,0,True) in
413 full screen. This makes it possible to simply call moveto(0,0,True) in
405 the constructor. Fix typos and removed the obsolete goto attribute.
414 the constructor. Fix typos and removed the obsolete goto attribute.
406
415
407 2006-06-12 Ville Vainio <vivainio@gmail.com>
416 2006-06-12 Ville Vainio <vivainio@gmail.com>
408
417
409 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
418 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
410 allowing $variable interpolation within multiline statements,
419 allowing $variable interpolation within multiline statements,
411 though so far only with "sh" profile for a testing period.
420 though so far only with "sh" profile for a testing period.
412 The patch also enables splitting long commands with \ but it
421 The patch also enables splitting long commands with \ but it
413 doesn't work properly yet.
422 doesn't work properly yet.
414
423
415 2006-06-12 Walter Doerwald <walter@livinglogic.de>
424 2006-06-12 Walter Doerwald <walter@livinglogic.de>
416
425
417 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
426 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
418 input history and the position of the cursor in the input history for
427 input history and the position of the cursor in the input history for
419 the find, findbackwards and goto command.
428 the find, findbackwards and goto command.
420
429
421 2006-06-10 Walter Doerwald <walter@livinglogic.de>
430 2006-06-10 Walter Doerwald <walter@livinglogic.de>
422
431
423 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
432 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
424 implements the basic functionality of browser commands that require
433 implements the basic functionality of browser commands that require
425 input. Reimplement the goto, find and findbackwards commands as
434 input. Reimplement the goto, find and findbackwards commands as
426 subclasses of _CommandInput. Add an input history and keymaps to those
435 subclasses of _CommandInput. Add an input history and keymaps to those
427 commands. Add "\r" as a keyboard shortcut for the enterdefault and
436 commands. Add "\r" as a keyboard shortcut for the enterdefault and
428 execute commands.
437 execute commands.
429
438
430 2006-06-07 Ville Vainio <vivainio@gmail.com>
439 2006-06-07 Ville Vainio <vivainio@gmail.com>
431
440
432 * iplib.py: ipython mybatch.ipy exits ipython immediately after
441 * iplib.py: ipython mybatch.ipy exits ipython immediately after
433 running the batch files instead of leaving the session open.
442 running the batch files instead of leaving the session open.
434
443
435 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
444 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
436
445
437 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
446 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
438 the original fix was incomplete. Patch submitted by W. Maier.
447 the original fix was incomplete. Patch submitted by W. Maier.
439
448
440 2006-06-07 Ville Vainio <vivainio@gmail.com>
449 2006-06-07 Ville Vainio <vivainio@gmail.com>
441
450
442 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
451 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
443 Confirmation prompts can be supressed by 'quiet' option.
452 Confirmation prompts can be supressed by 'quiet' option.
444 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
453 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
445
454
446 2006-06-06 *** Released version 0.7.2
455 2006-06-06 *** Released version 0.7.2
447
456
448 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
457 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
449
458
450 * IPython/Release.py (version): Made 0.7.2 final for release.
459 * IPython/Release.py (version): Made 0.7.2 final for release.
451 Repo tagged and release cut.
460 Repo tagged and release cut.
452
461
453 2006-06-05 Ville Vainio <vivainio@gmail.com>
462 2006-06-05 Ville Vainio <vivainio@gmail.com>
454
463
455 * Magic.py (magic_rehashx): Honor no_alias list earlier in
464 * Magic.py (magic_rehashx): Honor no_alias list earlier in
456 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
465 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
457
466
458 * upgrade_dir.py: try import 'path' module a bit harder
467 * upgrade_dir.py: try import 'path' module a bit harder
459 (for %upgrade)
468 (for %upgrade)
460
469
461 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
470 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
462
471
463 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
472 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
464 instead of looping 20 times.
473 instead of looping 20 times.
465
474
466 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
475 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
467 correctly at initialization time. Bug reported by Krishna Mohan
476 correctly at initialization time. Bug reported by Krishna Mohan
468 Gundu <gkmohan-AT-gmail.com> on the user list.
477 Gundu <gkmohan-AT-gmail.com> on the user list.
469
478
470 * IPython/Release.py (version): Mark 0.7.2 version to start
479 * IPython/Release.py (version): Mark 0.7.2 version to start
471 testing for release on 06/06.
480 testing for release on 06/06.
472
481
473 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
482 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
474
483
475 * scripts/irunner: thin script interface so users don't have to
484 * scripts/irunner: thin script interface so users don't have to
476 find the module and call it as an executable, since modules rarely
485 find the module and call it as an executable, since modules rarely
477 live in people's PATH.
486 live in people's PATH.
478
487
479 * IPython/irunner.py (InteractiveRunner.__init__): added
488 * IPython/irunner.py (InteractiveRunner.__init__): added
480 delaybeforesend attribute to control delays with newer versions of
489 delaybeforesend attribute to control delays with newer versions of
481 pexpect. Thanks to detailed help from pexpect's author, Noah
490 pexpect. Thanks to detailed help from pexpect's author, Noah
482 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
491 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
483 correctly (it works in NoColor mode).
492 correctly (it works in NoColor mode).
484
493
485 * IPython/iplib.py (handle_normal): fix nasty crash reported on
494 * IPython/iplib.py (handle_normal): fix nasty crash reported on
486 SAGE list, from improper log() calls.
495 SAGE list, from improper log() calls.
487
496
488 2006-05-31 Ville Vainio <vivainio@gmail.com>
497 2006-05-31 Ville Vainio <vivainio@gmail.com>
489
498
490 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
499 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
491 with args in parens to work correctly with dirs that have spaces.
500 with args in parens to work correctly with dirs that have spaces.
492
501
493 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
502 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
494
503
495 * IPython/Logger.py (Logger.logstart): add option to log raw input
504 * IPython/Logger.py (Logger.logstart): add option to log raw input
496 instead of the processed one. A -r flag was added to the
505 instead of the processed one. A -r flag was added to the
497 %logstart magic used for controlling logging.
506 %logstart magic used for controlling logging.
498
507
499 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
508 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
500
509
501 * IPython/iplib.py (InteractiveShell.__init__): add check for the
510 * IPython/iplib.py (InteractiveShell.__init__): add check for the
502 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
511 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
503 recognize the option. After a bug report by Will Maier. This
512 recognize the option. After a bug report by Will Maier. This
504 closes #64 (will do it after confirmation from W. Maier).
513 closes #64 (will do it after confirmation from W. Maier).
505
514
506 * IPython/irunner.py: New module to run scripts as if manually
515 * IPython/irunner.py: New module to run scripts as if manually
507 typed into an interactive environment, based on pexpect. After a
516 typed into an interactive environment, based on pexpect. After a
508 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
517 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
509 ipython-user list. Simple unittests in the tests/ directory.
518 ipython-user list. Simple unittests in the tests/ directory.
510
519
511 * tools/release: add Will Maier, OpenBSD port maintainer, to
520 * tools/release: add Will Maier, OpenBSD port maintainer, to
512 recepients list. We are now officially part of the OpenBSD ports:
521 recepients list. We are now officially part of the OpenBSD ports:
513 http://www.openbsd.org/ports.html ! Many thanks to Will for the
522 http://www.openbsd.org/ports.html ! Many thanks to Will for the
514 work.
523 work.
515
524
516 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
525 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
517
526
518 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
527 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
519 so that it doesn't break tkinter apps.
528 so that it doesn't break tkinter apps.
520
529
521 * IPython/iplib.py (_prefilter): fix bug where aliases would
530 * IPython/iplib.py (_prefilter): fix bug where aliases would
522 shadow variables when autocall was fully off. Reported by SAGE
531 shadow variables when autocall was fully off. Reported by SAGE
523 author William Stein.
532 author William Stein.
524
533
525 * IPython/OInspect.py (Inspector.__init__): add a flag to control
534 * IPython/OInspect.py (Inspector.__init__): add a flag to control
526 at what detail level strings are computed when foo? is requested.
535 at what detail level strings are computed when foo? is requested.
527 This allows users to ask for example that the string form of an
536 This allows users to ask for example that the string form of an
528 object is only computed when foo?? is called, or even never, by
537 object is only computed when foo?? is called, or even never, by
529 setting the object_info_string_level >= 2 in the configuration
538 setting the object_info_string_level >= 2 in the configuration
530 file. This new option has been added and documented. After a
539 file. This new option has been added and documented. After a
531 request by SAGE to be able to control the printing of very large
540 request by SAGE to be able to control the printing of very large
532 objects more easily.
541 objects more easily.
533
542
534 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
543 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
535
544
536 * IPython/ipmaker.py (make_IPython): remove the ipython call path
545 * IPython/ipmaker.py (make_IPython): remove the ipython call path
537 from sys.argv, to be 100% consistent with how Python itself works
546 from sys.argv, to be 100% consistent with how Python itself works
538 (as seen for example with python -i file.py). After a bug report
547 (as seen for example with python -i file.py). After a bug report
539 by Jeffrey Collins.
548 by Jeffrey Collins.
540
549
541 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
550 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
542 nasty bug which was preventing custom namespaces with -pylab,
551 nasty bug which was preventing custom namespaces with -pylab,
543 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
552 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
544 compatibility (long gone from mpl).
553 compatibility (long gone from mpl).
545
554
546 * IPython/ipapi.py (make_session): name change: create->make. We
555 * IPython/ipapi.py (make_session): name change: create->make. We
547 use make in other places (ipmaker,...), it's shorter and easier to
556 use make in other places (ipmaker,...), it's shorter and easier to
548 type and say, etc. I'm trying to clean things before 0.7.2 so
557 type and say, etc. I'm trying to clean things before 0.7.2 so
549 that I can keep things stable wrt to ipapi in the chainsaw branch.
558 that I can keep things stable wrt to ipapi in the chainsaw branch.
550
559
551 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
560 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
552 python-mode recognizes our debugger mode. Add support for
561 python-mode recognizes our debugger mode. Add support for
553 autoindent inside (X)emacs. After a patch sent in by Jin Liu
562 autoindent inside (X)emacs. After a patch sent in by Jin Liu
554 <m.liu.jin-AT-gmail.com> originally written by
563 <m.liu.jin-AT-gmail.com> originally written by
555 doxgen-AT-newsmth.net (with minor modifications for xemacs
564 doxgen-AT-newsmth.net (with minor modifications for xemacs
556 compatibility)
565 compatibility)
557
566
558 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
567 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
559 tracebacks when walking the stack so that the stack tracking system
568 tracebacks when walking the stack so that the stack tracking system
560 in emacs' python-mode can identify the frames correctly.
569 in emacs' python-mode can identify the frames correctly.
561
570
562 * IPython/ipmaker.py (make_IPython): make the internal (and
571 * IPython/ipmaker.py (make_IPython): make the internal (and
563 default config) autoedit_syntax value false by default. Too many
572 default config) autoedit_syntax value false by default. Too many
564 users have complained to me (both on and off-list) about problems
573 users have complained to me (both on and off-list) about problems
565 with this option being on by default, so I'm making it default to
574 with this option being on by default, so I'm making it default to
566 off. It can still be enabled by anyone via the usual mechanisms.
575 off. It can still be enabled by anyone via the usual mechanisms.
567
576
568 * IPython/completer.py (Completer.attr_matches): add support for
577 * IPython/completer.py (Completer.attr_matches): add support for
569 PyCrust-style _getAttributeNames magic method. Patch contributed
578 PyCrust-style _getAttributeNames magic method. Patch contributed
570 by <mscott-AT-goldenspud.com>. Closes #50.
579 by <mscott-AT-goldenspud.com>. Closes #50.
571
580
572 * IPython/iplib.py (InteractiveShell.__init__): remove the
581 * IPython/iplib.py (InteractiveShell.__init__): remove the
573 deletion of exit/quit from __builtin__, which can break
582 deletion of exit/quit from __builtin__, which can break
574 third-party tools like the Zope debugging console. The
583 third-party tools like the Zope debugging console. The
575 %exit/%quit magics remain. In general, it's probably a good idea
584 %exit/%quit magics remain. In general, it's probably a good idea
576 not to delete anything from __builtin__, since we never know what
585 not to delete anything from __builtin__, since we never know what
577 that will break. In any case, python now (for 2.5) will support
586 that will break. In any case, python now (for 2.5) will support
578 'real' exit/quit, so this issue is moot. Closes #55.
587 'real' exit/quit, so this issue is moot. Closes #55.
579
588
580 * IPython/genutils.py (with_obj): rename the 'with' function to
589 * IPython/genutils.py (with_obj): rename the 'with' function to
581 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
590 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
582 becomes a language keyword. Closes #53.
591 becomes a language keyword. Closes #53.
583
592
584 * IPython/FakeModule.py (FakeModule.__init__): add a proper
593 * IPython/FakeModule.py (FakeModule.__init__): add a proper
585 __file__ attribute to this so it fools more things into thinking
594 __file__ attribute to this so it fools more things into thinking
586 it is a real module. Closes #59.
595 it is a real module. Closes #59.
587
596
588 * IPython/Magic.py (magic_edit): add -n option to open the editor
597 * IPython/Magic.py (magic_edit): add -n option to open the editor
589 at a specific line number. After a patch by Stefan van der Walt.
598 at a specific line number. After a patch by Stefan van der Walt.
590
599
591 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
600 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
592
601
593 * IPython/iplib.py (edit_syntax_error): fix crash when for some
602 * IPython/iplib.py (edit_syntax_error): fix crash when for some
594 reason the file could not be opened. After automatic crash
603 reason the file could not be opened. After automatic crash
595 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
604 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
596 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
605 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
597 (_should_recompile): Don't fire editor if using %bg, since there
606 (_should_recompile): Don't fire editor if using %bg, since there
598 is no file in the first place. From the same report as above.
607 is no file in the first place. From the same report as above.
599 (raw_input): protect against faulty third-party prefilters. After
608 (raw_input): protect against faulty third-party prefilters. After
600 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
609 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
601 while running under SAGE.
610 while running under SAGE.
602
611
603 2006-05-23 Ville Vainio <vivainio@gmail.com>
612 2006-05-23 Ville Vainio <vivainio@gmail.com>
604
613
605 * ipapi.py: Stripped down ip.to_user_ns() to work only as
614 * ipapi.py: Stripped down ip.to_user_ns() to work only as
606 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
615 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
607 now returns None (again), unless dummy is specifically allowed by
616 now returns None (again), unless dummy is specifically allowed by
608 ipapi.get(allow_dummy=True).
617 ipapi.get(allow_dummy=True).
609
618
610 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
619 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
611
620
612 * IPython: remove all 2.2-compatibility objects and hacks from
621 * IPython: remove all 2.2-compatibility objects and hacks from
613 everywhere, since we only support 2.3 at this point. Docs
622 everywhere, since we only support 2.3 at this point. Docs
614 updated.
623 updated.
615
624
616 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
625 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
617 Anything requiring extra validation can be turned into a Python
626 Anything requiring extra validation can be turned into a Python
618 property in the future. I used a property for the db one b/c
627 property in the future. I used a property for the db one b/c
619 there was a nasty circularity problem with the initialization
628 there was a nasty circularity problem with the initialization
620 order, which right now I don't have time to clean up.
629 order, which right now I don't have time to clean up.
621
630
622 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
631 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
623 another locking bug reported by Jorgen. I'm not 100% sure though,
632 another locking bug reported by Jorgen. I'm not 100% sure though,
624 so more testing is needed...
633 so more testing is needed...
625
634
626 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
635 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
627
636
628 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
637 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
629 local variables from any routine in user code (typically executed
638 local variables from any routine in user code (typically executed
630 with %run) directly into the interactive namespace. Very useful
639 with %run) directly into the interactive namespace. Very useful
631 when doing complex debugging.
640 when doing complex debugging.
632 (IPythonNotRunning): Changed the default None object to a dummy
641 (IPythonNotRunning): Changed the default None object to a dummy
633 whose attributes can be queried as well as called without
642 whose attributes can be queried as well as called without
634 exploding, to ease writing code which works transparently both in
643 exploding, to ease writing code which works transparently both in
635 and out of ipython and uses some of this API.
644 and out of ipython and uses some of this API.
636
645
637 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
646 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
638
647
639 * IPython/hooks.py (result_display): Fix the fact that our display
648 * IPython/hooks.py (result_display): Fix the fact that our display
640 hook was using str() instead of repr(), as the default python
649 hook was using str() instead of repr(), as the default python
641 console does. This had gone unnoticed b/c it only happened if
650 console does. This had gone unnoticed b/c it only happened if
642 %Pprint was off, but the inconsistency was there.
651 %Pprint was off, but the inconsistency was there.
643
652
644 2006-05-15 Ville Vainio <vivainio@gmail.com>
653 2006-05-15 Ville Vainio <vivainio@gmail.com>
645
654
646 * Oinspect.py: Only show docstring for nonexisting/binary files
655 * Oinspect.py: Only show docstring for nonexisting/binary files
647 when doing object??, closing ticket #62
656 when doing object??, closing ticket #62
648
657
649 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
658 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
650
659
651 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
660 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
652 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
661 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
653 was being released in a routine which hadn't checked if it had
662 was being released in a routine which hadn't checked if it had
654 been the one to acquire it.
663 been the one to acquire it.
655
664
656 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
665 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
657
666
658 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
667 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
659
668
660 2006-04-11 Ville Vainio <vivainio@gmail.com>
669 2006-04-11 Ville Vainio <vivainio@gmail.com>
661
670
662 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
671 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
663 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
672 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
664 prefilters, allowing stuff like magics and aliases in the file.
673 prefilters, allowing stuff like magics and aliases in the file.
665
674
666 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
675 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
667 added. Supported now are "%clear in" and "%clear out" (clear input and
676 added. Supported now are "%clear in" and "%clear out" (clear input and
668 output history, respectively). Also fixed CachedOutput.flush to
677 output history, respectively). Also fixed CachedOutput.flush to
669 properly flush the output cache.
678 properly flush the output cache.
670
679
671 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
680 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
672 half-success (and fail explicitly).
681 half-success (and fail explicitly).
673
682
674 2006-03-28 Ville Vainio <vivainio@gmail.com>
683 2006-03-28 Ville Vainio <vivainio@gmail.com>
675
684
676 * iplib.py: Fix quoting of aliases so that only argless ones
685 * iplib.py: Fix quoting of aliases so that only argless ones
677 are quoted
686 are quoted
678
687
679 2006-03-28 Ville Vainio <vivainio@gmail.com>
688 2006-03-28 Ville Vainio <vivainio@gmail.com>
680
689
681 * iplib.py: Quote aliases with spaces in the name.
690 * iplib.py: Quote aliases with spaces in the name.
682 "c:\program files\blah\bin" is now legal alias target.
691 "c:\program files\blah\bin" is now legal alias target.
683
692
684 * ext_rehashdir.py: Space no longer allowed as arg
693 * ext_rehashdir.py: Space no longer allowed as arg
685 separator, since space is legal in path names.
694 separator, since space is legal in path names.
686
695
687 2006-03-16 Ville Vainio <vivainio@gmail.com>
696 2006-03-16 Ville Vainio <vivainio@gmail.com>
688
697
689 * upgrade_dir.py: Take path.py from Extensions, correcting
698 * upgrade_dir.py: Take path.py from Extensions, correcting
690 %upgrade magic
699 %upgrade magic
691
700
692 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
701 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
693
702
694 * hooks.py: Only enclose editor binary in quotes if legal and
703 * hooks.py: Only enclose editor binary in quotes if legal and
695 necessary (space in the name, and is an existing file). Fixes a bug
704 necessary (space in the name, and is an existing file). Fixes a bug
696 reported by Zachary Pincus.
705 reported by Zachary Pincus.
697
706
698 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
707 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
699
708
700 * Manual: thanks to a tip on proper color handling for Emacs, by
709 * Manual: thanks to a tip on proper color handling for Emacs, by
701 Eric J Haywiser <ejh1-AT-MIT.EDU>.
710 Eric J Haywiser <ejh1-AT-MIT.EDU>.
702
711
703 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
712 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
704 by applying the provided patch. Thanks to Liu Jin
713 by applying the provided patch. Thanks to Liu Jin
705 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
714 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
706 XEmacs/Linux, I'm trusting the submitter that it actually helps
715 XEmacs/Linux, I'm trusting the submitter that it actually helps
707 under win32/GNU Emacs. Will revisit if any problems are reported.
716 under win32/GNU Emacs. Will revisit if any problems are reported.
708
717
709 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
718 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
710
719
711 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
720 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
712 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
721 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
713
722
714 2006-03-12 Ville Vainio <vivainio@gmail.com>
723 2006-03-12 Ville Vainio <vivainio@gmail.com>
715
724
716 * Magic.py (magic_timeit): Added %timeit magic, contributed by
725 * Magic.py (magic_timeit): Added %timeit magic, contributed by
717 Torsten Marek.
726 Torsten Marek.
718
727
719 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
728 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
720
729
721 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
730 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
722 line ranges works again.
731 line ranges works again.
723
732
724 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
733 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
725
734
726 * IPython/iplib.py (showtraceback): add back sys.last_traceback
735 * IPython/iplib.py (showtraceback): add back sys.last_traceback
727 and friends, after a discussion with Zach Pincus on ipython-user.
736 and friends, after a discussion with Zach Pincus on ipython-user.
728 I'm not 100% sure, but after thinking about it quite a bit, it may
737 I'm not 100% sure, but after thinking about it quite a bit, it may
729 be OK. Testing with the multithreaded shells didn't reveal any
738 be OK. Testing with the multithreaded shells didn't reveal any
730 problems, but let's keep an eye out.
739 problems, but let's keep an eye out.
731
740
732 In the process, I fixed a few things which were calling
741 In the process, I fixed a few things which were calling
733 self.InteractiveTB() directly (like safe_execfile), which is a
742 self.InteractiveTB() directly (like safe_execfile), which is a
734 mistake: ALL exception reporting should be done by calling
743 mistake: ALL exception reporting should be done by calling
735 self.showtraceback(), which handles state and tab-completion and
744 self.showtraceback(), which handles state and tab-completion and
736 more.
745 more.
737
746
738 2006-03-01 Ville Vainio <vivainio@gmail.com>
747 2006-03-01 Ville Vainio <vivainio@gmail.com>
739
748
740 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
749 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
741 To use, do "from ipipe import *".
750 To use, do "from ipipe import *".
742
751
743 2006-02-24 Ville Vainio <vivainio@gmail.com>
752 2006-02-24 Ville Vainio <vivainio@gmail.com>
744
753
745 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
754 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
746 "cleanly" and safely than the older upgrade mechanism.
755 "cleanly" and safely than the older upgrade mechanism.
747
756
748 2006-02-21 Ville Vainio <vivainio@gmail.com>
757 2006-02-21 Ville Vainio <vivainio@gmail.com>
749
758
750 * Magic.py: %save works again.
759 * Magic.py: %save works again.
751
760
752 2006-02-15 Ville Vainio <vivainio@gmail.com>
761 2006-02-15 Ville Vainio <vivainio@gmail.com>
753
762
754 * Magic.py: %Pprint works again
763 * Magic.py: %Pprint works again
755
764
756 * Extensions/ipy_sane_defaults.py: Provide everything provided
765 * Extensions/ipy_sane_defaults.py: Provide everything provided
757 in default ipythonrc, to make it possible to have a completely empty
766 in default ipythonrc, to make it possible to have a completely empty
758 ipythonrc (and thus completely rc-file free configuration)
767 ipythonrc (and thus completely rc-file free configuration)
759
768
760 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
769 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
761
770
762 * IPython/hooks.py (editor): quote the call to the editor command,
771 * IPython/hooks.py (editor): quote the call to the editor command,
763 to allow commands with spaces in them. Problem noted by watching
772 to allow commands with spaces in them. Problem noted by watching
764 Ian Oswald's video about textpad under win32 at
773 Ian Oswald's video about textpad under win32 at
765 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
774 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
766
775
767 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
776 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
768 describing magics (we haven't used @ for a loong time).
777 describing magics (we haven't used @ for a loong time).
769
778
770 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
779 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
771 contributed by marienz to close
780 contributed by marienz to close
772 http://www.scipy.net/roundup/ipython/issue53.
781 http://www.scipy.net/roundup/ipython/issue53.
773
782
774 2006-02-10 Ville Vainio <vivainio@gmail.com>
783 2006-02-10 Ville Vainio <vivainio@gmail.com>
775
784
776 * genutils.py: getoutput now works in win32 too
785 * genutils.py: getoutput now works in win32 too
777
786
778 * completer.py: alias and magic completion only invoked
787 * completer.py: alias and magic completion only invoked
779 at the first "item" in the line, to avoid "cd %store"
788 at the first "item" in the line, to avoid "cd %store"
780 nonsense.
789 nonsense.
781
790
782 2006-02-09 Ville Vainio <vivainio@gmail.com>
791 2006-02-09 Ville Vainio <vivainio@gmail.com>
783
792
784 * test/*: Added a unit testing framework (finally).
793 * test/*: Added a unit testing framework (finally).
785 '%run runtests.py' to run test_*.
794 '%run runtests.py' to run test_*.
786
795
787 * ipapi.py: Exposed runlines and set_custom_exc
796 * ipapi.py: Exposed runlines and set_custom_exc
788
797
789 2006-02-07 Ville Vainio <vivainio@gmail.com>
798 2006-02-07 Ville Vainio <vivainio@gmail.com>
790
799
791 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
800 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
792 instead use "f(1 2)" as before.
801 instead use "f(1 2)" as before.
793
802
794 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
803 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
795
804
796 * IPython/demo.py (IPythonDemo): Add new classes to the demo
805 * IPython/demo.py (IPythonDemo): Add new classes to the demo
797 facilities, for demos processed by the IPython input filter
806 facilities, for demos processed by the IPython input filter
798 (IPythonDemo), and for running a script one-line-at-a-time as a
807 (IPythonDemo), and for running a script one-line-at-a-time as a
799 demo, both for pure Python (LineDemo) and for IPython-processed
808 demo, both for pure Python (LineDemo) and for IPython-processed
800 input (IPythonLineDemo). After a request by Dave Kohel, from the
809 input (IPythonLineDemo). After a request by Dave Kohel, from the
801 SAGE team.
810 SAGE team.
802 (Demo.edit): added an edit() method to the demo objects, to edit
811 (Demo.edit): added an edit() method to the demo objects, to edit
803 the in-memory copy of the last executed block.
812 the in-memory copy of the last executed block.
804
813
805 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
814 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
806 processing to %edit, %macro and %save. These commands can now be
815 processing to %edit, %macro and %save. These commands can now be
807 invoked on the unprocessed input as it was typed by the user
816 invoked on the unprocessed input as it was typed by the user
808 (without any prefilters applied). After requests by the SAGE team
817 (without any prefilters applied). After requests by the SAGE team
809 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
818 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
810
819
811 2006-02-01 Ville Vainio <vivainio@gmail.com>
820 2006-02-01 Ville Vainio <vivainio@gmail.com>
812
821
813 * setup.py, eggsetup.py: easy_install ipython==dev works
822 * setup.py, eggsetup.py: easy_install ipython==dev works
814 correctly now (on Linux)
823 correctly now (on Linux)
815
824
816 * ipy_user_conf,ipmaker: user config changes, removed spurious
825 * ipy_user_conf,ipmaker: user config changes, removed spurious
817 warnings
826 warnings
818
827
819 * iplib: if rc.banner is string, use it as is.
828 * iplib: if rc.banner is string, use it as is.
820
829
821 * Magic: %pycat accepts a string argument and pages it's contents.
830 * Magic: %pycat accepts a string argument and pages it's contents.
822
831
823
832
824 2006-01-30 Ville Vainio <vivainio@gmail.com>
833 2006-01-30 Ville Vainio <vivainio@gmail.com>
825
834
826 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
835 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
827 Now %store and bookmarks work through PickleShare, meaning that
836 Now %store and bookmarks work through PickleShare, meaning that
828 concurrent access is possible and all ipython sessions see the
837 concurrent access is possible and all ipython sessions see the
829 same database situation all the time, instead of snapshot of
838 same database situation all the time, instead of snapshot of
830 the situation when the session was started. Hence, %bookmark
839 the situation when the session was started. Hence, %bookmark
831 results are immediately accessible from othes sessions. The database
840 results are immediately accessible from othes sessions. The database
832 is also available for use by user extensions. See:
841 is also available for use by user extensions. See:
833 http://www.python.org/pypi/pickleshare
842 http://www.python.org/pypi/pickleshare
834
843
835 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
844 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
836
845
837 * aliases can now be %store'd
846 * aliases can now be %store'd
838
847
839 * path.py moved to Extensions so that pickleshare does not need
848 * path.py moved to Extensions so that pickleshare does not need
840 IPython-specific import. Extensions added to pythonpath right
849 IPython-specific import. Extensions added to pythonpath right
841 at __init__.
850 at __init__.
842
851
843 * iplib.py: ipalias deprecated/redundant; aliases are converted and
852 * iplib.py: ipalias deprecated/redundant; aliases are converted and
844 called with _ip.system and the pre-transformed command string.
853 called with _ip.system and the pre-transformed command string.
845
854
846 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
855 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
847
856
848 * IPython/iplib.py (interact): Fix that we were not catching
857 * IPython/iplib.py (interact): Fix that we were not catching
849 KeyboardInterrupt exceptions properly. I'm not quite sure why the
858 KeyboardInterrupt exceptions properly. I'm not quite sure why the
850 logic here had to change, but it's fixed now.
859 logic here had to change, but it's fixed now.
851
860
852 2006-01-29 Ville Vainio <vivainio@gmail.com>
861 2006-01-29 Ville Vainio <vivainio@gmail.com>
853
862
854 * iplib.py: Try to import pyreadline on Windows.
863 * iplib.py: Try to import pyreadline on Windows.
855
864
856 2006-01-27 Ville Vainio <vivainio@gmail.com>
865 2006-01-27 Ville Vainio <vivainio@gmail.com>
857
866
858 * iplib.py: Expose ipapi as _ip in builtin namespace.
867 * iplib.py: Expose ipapi as _ip in builtin namespace.
859 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
868 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
860 and ip_set_hook (-> _ip.set_hook) redundant. % and !
869 and ip_set_hook (-> _ip.set_hook) redundant. % and !
861 syntax now produce _ip.* variant of the commands.
870 syntax now produce _ip.* variant of the commands.
862
871
863 * "_ip.options().autoedit_syntax = 2" automatically throws
872 * "_ip.options().autoedit_syntax = 2" automatically throws
864 user to editor for syntax error correction without prompting.
873 user to editor for syntax error correction without prompting.
865
874
866 2006-01-27 Ville Vainio <vivainio@gmail.com>
875 2006-01-27 Ville Vainio <vivainio@gmail.com>
867
876
868 * ipmaker.py: Give "realistic" sys.argv for scripts (without
877 * ipmaker.py: Give "realistic" sys.argv for scripts (without
869 'ipython' at argv[0]) executed through command line.
878 'ipython' at argv[0]) executed through command line.
870 NOTE: this DEPRECATES calling ipython with multiple scripts
879 NOTE: this DEPRECATES calling ipython with multiple scripts
871 ("ipython a.py b.py c.py")
880 ("ipython a.py b.py c.py")
872
881
873 * iplib.py, hooks.py: Added configurable input prefilter,
882 * iplib.py, hooks.py: Added configurable input prefilter,
874 named 'input_prefilter'. See ext_rescapture.py for example
883 named 'input_prefilter'. See ext_rescapture.py for example
875 usage.
884 usage.
876
885
877 * ext_rescapture.py, Magic.py: Better system command output capture
886 * ext_rescapture.py, Magic.py: Better system command output capture
878 through 'var = !ls' (deprecates user-visible %sc). Same notation
887 through 'var = !ls' (deprecates user-visible %sc). Same notation
879 applies for magics, 'var = %alias' assigns alias list to var.
888 applies for magics, 'var = %alias' assigns alias list to var.
880
889
881 * ipapi.py: added meta() for accessing extension-usable data store.
890 * ipapi.py: added meta() for accessing extension-usable data store.
882
891
883 * iplib.py: added InteractiveShell.getapi(). New magics should be
892 * iplib.py: added InteractiveShell.getapi(). New magics should be
884 written doing self.getapi() instead of using the shell directly.
893 written doing self.getapi() instead of using the shell directly.
885
894
886 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
895 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
887 %store foo >> ~/myfoo.txt to store variables to files (in clean
896 %store foo >> ~/myfoo.txt to store variables to files (in clean
888 textual form, not a restorable pickle).
897 textual form, not a restorable pickle).
889
898
890 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
899 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
891
900
892 * usage.py, Magic.py: added %quickref
901 * usage.py, Magic.py: added %quickref
893
902
894 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
903 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
895
904
896 * GetoptErrors when invoking magics etc. with wrong args
905 * GetoptErrors when invoking magics etc. with wrong args
897 are now more helpful:
906 are now more helpful:
898 GetoptError: option -l not recognized (allowed: "qb" )
907 GetoptError: option -l not recognized (allowed: "qb" )
899
908
900 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
909 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
901
910
902 * IPython/demo.py (Demo.show): Flush stdout after each block, so
911 * IPython/demo.py (Demo.show): Flush stdout after each block, so
903 computationally intensive blocks don't appear to stall the demo.
912 computationally intensive blocks don't appear to stall the demo.
904
913
905 2006-01-24 Ville Vainio <vivainio@gmail.com>
914 2006-01-24 Ville Vainio <vivainio@gmail.com>
906
915
907 * iplib.py, hooks.py: 'result_display' hook can return a non-None
916 * iplib.py, hooks.py: 'result_display' hook can return a non-None
908 value to manipulate resulting history entry.
917 value to manipulate resulting history entry.
909
918
910 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
919 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
911 to instance methods of IPApi class, to make extending an embedded
920 to instance methods of IPApi class, to make extending an embedded
912 IPython feasible. See ext_rehashdir.py for example usage.
921 IPython feasible. See ext_rehashdir.py for example usage.
913
922
914 * Merged 1071-1076 from branches/0.7.1
923 * Merged 1071-1076 from branches/0.7.1
915
924
916
925
917 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
926 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
918
927
919 * tools/release (daystamp): Fix build tools to use the new
928 * tools/release (daystamp): Fix build tools to use the new
920 eggsetup.py script to build lightweight eggs.
929 eggsetup.py script to build lightweight eggs.
921
930
922 * Applied changesets 1062 and 1064 before 0.7.1 release.
931 * Applied changesets 1062 and 1064 before 0.7.1 release.
923
932
924 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
933 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
925 see the raw input history (without conversions like %ls ->
934 see the raw input history (without conversions like %ls ->
926 ipmagic("ls")). After a request from W. Stein, SAGE
935 ipmagic("ls")). After a request from W. Stein, SAGE
927 (http://modular.ucsd.edu/sage) developer. This information is
936 (http://modular.ucsd.edu/sage) developer. This information is
928 stored in the input_hist_raw attribute of the IPython instance, so
937 stored in the input_hist_raw attribute of the IPython instance, so
929 developers can access it if needed (it's an InputList instance).
938 developers can access it if needed (it's an InputList instance).
930
939
931 * Versionstring = 0.7.2.svn
940 * Versionstring = 0.7.2.svn
932
941
933 * eggsetup.py: A separate script for constructing eggs, creates
942 * eggsetup.py: A separate script for constructing eggs, creates
934 proper launch scripts even on Windows (an .exe file in
943 proper launch scripts even on Windows (an .exe file in
935 \python24\scripts).
944 \python24\scripts).
936
945
937 * ipapi.py: launch_new_instance, launch entry point needed for the
946 * ipapi.py: launch_new_instance, launch entry point needed for the
938 egg.
947 egg.
939
948
940 2006-01-23 Ville Vainio <vivainio@gmail.com>
949 2006-01-23 Ville Vainio <vivainio@gmail.com>
941
950
942 * Added %cpaste magic for pasting python code
951 * Added %cpaste magic for pasting python code
943
952
944 2006-01-22 Ville Vainio <vivainio@gmail.com>
953 2006-01-22 Ville Vainio <vivainio@gmail.com>
945
954
946 * Merge from branches/0.7.1 into trunk, revs 1052-1057
955 * Merge from branches/0.7.1 into trunk, revs 1052-1057
947
956
948 * Versionstring = 0.7.2.svn
957 * Versionstring = 0.7.2.svn
949
958
950 * eggsetup.py: A separate script for constructing eggs, creates
959 * eggsetup.py: A separate script for constructing eggs, creates
951 proper launch scripts even on Windows (an .exe file in
960 proper launch scripts even on Windows (an .exe file in
952 \python24\scripts).
961 \python24\scripts).
953
962
954 * ipapi.py: launch_new_instance, launch entry point needed for the
963 * ipapi.py: launch_new_instance, launch entry point needed for the
955 egg.
964 egg.
956
965
957 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
966 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
958
967
959 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
968 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
960 %pfile foo would print the file for foo even if it was a binary.
969 %pfile foo would print the file for foo even if it was a binary.
961 Now, extensions '.so' and '.dll' are skipped.
970 Now, extensions '.so' and '.dll' are skipped.
962
971
963 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
972 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
964 bug, where macros would fail in all threaded modes. I'm not 100%
973 bug, where macros would fail in all threaded modes. I'm not 100%
965 sure, so I'm going to put out an rc instead of making a release
974 sure, so I'm going to put out an rc instead of making a release
966 today, and wait for feedback for at least a few days.
975 today, and wait for feedback for at least a few days.
967
976
968 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
977 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
969 it...) the handling of pasting external code with autoindent on.
978 it...) the handling of pasting external code with autoindent on.
970 To get out of a multiline input, the rule will appear for most
979 To get out of a multiline input, the rule will appear for most
971 users unchanged: two blank lines or change the indent level
980 users unchanged: two blank lines or change the indent level
972 proposed by IPython. But there is a twist now: you can
981 proposed by IPython. But there is a twist now: you can
973 add/subtract only *one or two spaces*. If you add/subtract three
982 add/subtract only *one or two spaces*. If you add/subtract three
974 or more (unless you completely delete the line), IPython will
983 or more (unless you completely delete the line), IPython will
975 accept that line, and you'll need to enter a second one of pure
984 accept that line, and you'll need to enter a second one of pure
976 whitespace. I know it sounds complicated, but I can't find a
985 whitespace. I know it sounds complicated, but I can't find a
977 different solution that covers all the cases, with the right
986 different solution that covers all the cases, with the right
978 heuristics. Hopefully in actual use, nobody will really notice
987 heuristics. Hopefully in actual use, nobody will really notice
979 all these strange rules and things will 'just work'.
988 all these strange rules and things will 'just work'.
980
989
981 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
990 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
982
991
983 * IPython/iplib.py (interact): catch exceptions which can be
992 * IPython/iplib.py (interact): catch exceptions which can be
984 triggered asynchronously by signal handlers. Thanks to an
993 triggered asynchronously by signal handlers. Thanks to an
985 automatic crash report, submitted by Colin Kingsley
994 automatic crash report, submitted by Colin Kingsley
986 <tercel-AT-gentoo.org>.
995 <tercel-AT-gentoo.org>.
987
996
988 2006-01-20 Ville Vainio <vivainio@gmail.com>
997 2006-01-20 Ville Vainio <vivainio@gmail.com>
989
998
990 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
999 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
991 (%rehashdir, very useful, try it out) of how to extend ipython
1000 (%rehashdir, very useful, try it out) of how to extend ipython
992 with new magics. Also added Extensions dir to pythonpath to make
1001 with new magics. Also added Extensions dir to pythonpath to make
993 importing extensions easy.
1002 importing extensions easy.
994
1003
995 * %store now complains when trying to store interactively declared
1004 * %store now complains when trying to store interactively declared
996 classes / instances of those classes.
1005 classes / instances of those classes.
997
1006
998 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1007 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
999 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1008 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1000 if they exist, and ipy_user_conf.py with some defaults is created for
1009 if they exist, and ipy_user_conf.py with some defaults is created for
1001 the user.
1010 the user.
1002
1011
1003 * Startup rehashing done by the config file, not InterpreterExec.
1012 * Startup rehashing done by the config file, not InterpreterExec.
1004 This means system commands are available even without selecting the
1013 This means system commands are available even without selecting the
1005 pysh profile. It's the sensible default after all.
1014 pysh profile. It's the sensible default after all.
1006
1015
1007 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1016 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1008
1017
1009 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1018 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1010 multiline code with autoindent on working. But I am really not
1019 multiline code with autoindent on working. But I am really not
1011 sure, so this needs more testing. Will commit a debug-enabled
1020 sure, so this needs more testing. Will commit a debug-enabled
1012 version for now, while I test it some more, so that Ville and
1021 version for now, while I test it some more, so that Ville and
1013 others may also catch any problems. Also made
1022 others may also catch any problems. Also made
1014 self.indent_current_str() a method, to ensure that there's no
1023 self.indent_current_str() a method, to ensure that there's no
1015 chance of the indent space count and the corresponding string
1024 chance of the indent space count and the corresponding string
1016 falling out of sync. All code needing the string should just call
1025 falling out of sync. All code needing the string should just call
1017 the method.
1026 the method.
1018
1027
1019 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1028 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1020
1029
1021 * IPython/Magic.py (magic_edit): fix check for when users don't
1030 * IPython/Magic.py (magic_edit): fix check for when users don't
1022 save their output files, the try/except was in the wrong section.
1031 save their output files, the try/except was in the wrong section.
1023
1032
1024 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1033 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1025
1034
1026 * IPython/Magic.py (magic_run): fix __file__ global missing from
1035 * IPython/Magic.py (magic_run): fix __file__ global missing from
1027 script's namespace when executed via %run. After a report by
1036 script's namespace when executed via %run. After a report by
1028 Vivian.
1037 Vivian.
1029
1038
1030 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1039 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1031 when using python 2.4. The parent constructor changed in 2.4, and
1040 when using python 2.4. The parent constructor changed in 2.4, and
1032 we need to track it directly (we can't call it, as it messes up
1041 we need to track it directly (we can't call it, as it messes up
1033 readline and tab-completion inside our pdb would stop working).
1042 readline and tab-completion inside our pdb would stop working).
1034 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1043 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1035
1044
1036 2006-01-16 Ville Vainio <vivainio@gmail.com>
1045 2006-01-16 Ville Vainio <vivainio@gmail.com>
1037
1046
1038 * Ipython/magic.py: Reverted back to old %edit functionality
1047 * Ipython/magic.py: Reverted back to old %edit functionality
1039 that returns file contents on exit.
1048 that returns file contents on exit.
1040
1049
1041 * IPython/path.py: Added Jason Orendorff's "path" module to
1050 * IPython/path.py: Added Jason Orendorff's "path" module to
1042 IPython tree, http://www.jorendorff.com/articles/python/path/.
1051 IPython tree, http://www.jorendorff.com/articles/python/path/.
1043 You can get path objects conveniently through %sc, and !!, e.g.:
1052 You can get path objects conveniently through %sc, and !!, e.g.:
1044 sc files=ls
1053 sc files=ls
1045 for p in files.paths: # or files.p
1054 for p in files.paths: # or files.p
1046 print p,p.mtime
1055 print p,p.mtime
1047
1056
1048 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1057 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1049 now work again without considering the exclusion regexp -
1058 now work again without considering the exclusion regexp -
1050 hence, things like ',foo my/path' turn to 'foo("my/path")'
1059 hence, things like ',foo my/path' turn to 'foo("my/path")'
1051 instead of syntax error.
1060 instead of syntax error.
1052
1061
1053
1062
1054 2006-01-14 Ville Vainio <vivainio@gmail.com>
1063 2006-01-14 Ville Vainio <vivainio@gmail.com>
1055
1064
1056 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1065 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1057 ipapi decorators for python 2.4 users, options() provides access to rc
1066 ipapi decorators for python 2.4 users, options() provides access to rc
1058 data.
1067 data.
1059
1068
1060 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1069 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1061 as path separators (even on Linux ;-). Space character after
1070 as path separators (even on Linux ;-). Space character after
1062 backslash (as yielded by tab completer) is still space;
1071 backslash (as yielded by tab completer) is still space;
1063 "%cd long\ name" works as expected.
1072 "%cd long\ name" works as expected.
1064
1073
1065 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1074 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1066 as "chain of command", with priority. API stays the same,
1075 as "chain of command", with priority. API stays the same,
1067 TryNext exception raised by a hook function signals that
1076 TryNext exception raised by a hook function signals that
1068 current hook failed and next hook should try handling it, as
1077 current hook failed and next hook should try handling it, as
1069 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1078 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1070 requested configurable display hook, which is now implemented.
1079 requested configurable display hook, which is now implemented.
1071
1080
1072 2006-01-13 Ville Vainio <vivainio@gmail.com>
1081 2006-01-13 Ville Vainio <vivainio@gmail.com>
1073
1082
1074 * IPython/platutils*.py: platform specific utility functions,
1083 * IPython/platutils*.py: platform specific utility functions,
1075 so far only set_term_title is implemented (change terminal
1084 so far only set_term_title is implemented (change terminal
1076 label in windowing systems). %cd now changes the title to
1085 label in windowing systems). %cd now changes the title to
1077 current dir.
1086 current dir.
1078
1087
1079 * IPython/Release.py: Added myself to "authors" list,
1088 * IPython/Release.py: Added myself to "authors" list,
1080 had to create new files.
1089 had to create new files.
1081
1090
1082 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1091 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1083 shell escape; not a known bug but had potential to be one in the
1092 shell escape; not a known bug but had potential to be one in the
1084 future.
1093 future.
1085
1094
1086 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1095 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1087 extension API for IPython! See the module for usage example. Fix
1096 extension API for IPython! See the module for usage example. Fix
1088 OInspect for docstring-less magic functions.
1097 OInspect for docstring-less magic functions.
1089
1098
1090
1099
1091 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1100 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1092
1101
1093 * IPython/iplib.py (raw_input): temporarily deactivate all
1102 * IPython/iplib.py (raw_input): temporarily deactivate all
1094 attempts at allowing pasting of code with autoindent on. It
1103 attempts at allowing pasting of code with autoindent on. It
1095 introduced bugs (reported by Prabhu) and I can't seem to find a
1104 introduced bugs (reported by Prabhu) and I can't seem to find a
1096 robust combination which works in all cases. Will have to revisit
1105 robust combination which works in all cases. Will have to revisit
1097 later.
1106 later.
1098
1107
1099 * IPython/genutils.py: remove isspace() function. We've dropped
1108 * IPython/genutils.py: remove isspace() function. We've dropped
1100 2.2 compatibility, so it's OK to use the string method.
1109 2.2 compatibility, so it's OK to use the string method.
1101
1110
1102 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1111 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1103
1112
1104 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1113 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1105 matching what NOT to autocall on, to include all python binary
1114 matching what NOT to autocall on, to include all python binary
1106 operators (including things like 'and', 'or', 'is' and 'in').
1115 operators (including things like 'and', 'or', 'is' and 'in').
1107 Prompted by a bug report on 'foo & bar', but I realized we had
1116 Prompted by a bug report on 'foo & bar', but I realized we had
1108 many more potential bug cases with other operators. The regexp is
1117 many more potential bug cases with other operators. The regexp is
1109 self.re_exclude_auto, it's fairly commented.
1118 self.re_exclude_auto, it's fairly commented.
1110
1119
1111 2006-01-12 Ville Vainio <vivainio@gmail.com>
1120 2006-01-12 Ville Vainio <vivainio@gmail.com>
1112
1121
1113 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1122 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1114 Prettified and hardened string/backslash quoting with ipsystem(),
1123 Prettified and hardened string/backslash quoting with ipsystem(),
1115 ipalias() and ipmagic(). Now even \ characters are passed to
1124 ipalias() and ipmagic(). Now even \ characters are passed to
1116 %magics, !shell escapes and aliases exactly as they are in the
1125 %magics, !shell escapes and aliases exactly as they are in the
1117 ipython command line. Should improve backslash experience,
1126 ipython command line. Should improve backslash experience,
1118 particularly in Windows (path delimiter for some commands that
1127 particularly in Windows (path delimiter for some commands that
1119 won't understand '/'), but Unix benefits as well (regexps). %cd
1128 won't understand '/'), but Unix benefits as well (regexps). %cd
1120 magic still doesn't support backslash path delimiters, though. Also
1129 magic still doesn't support backslash path delimiters, though. Also
1121 deleted all pretense of supporting multiline command strings in
1130 deleted all pretense of supporting multiline command strings in
1122 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1131 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1123
1132
1124 * doc/build_doc_instructions.txt added. Documentation on how to
1133 * doc/build_doc_instructions.txt added. Documentation on how to
1125 use doc/update_manual.py, added yesterday. Both files contributed
1134 use doc/update_manual.py, added yesterday. Both files contributed
1126 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1135 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1127 doc/*.sh for deprecation at a later date.
1136 doc/*.sh for deprecation at a later date.
1128
1137
1129 * /ipython.py Added ipython.py to root directory for
1138 * /ipython.py Added ipython.py to root directory for
1130 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1139 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1131 ipython.py) and development convenience (no need to keep doing
1140 ipython.py) and development convenience (no need to keep doing
1132 "setup.py install" between changes).
1141 "setup.py install" between changes).
1133
1142
1134 * Made ! and !! shell escapes work (again) in multiline expressions:
1143 * Made ! and !! shell escapes work (again) in multiline expressions:
1135 if 1:
1144 if 1:
1136 !ls
1145 !ls
1137 !!ls
1146 !!ls
1138
1147
1139 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1148 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1140
1149
1141 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1150 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1142 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1151 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1143 module in case-insensitive installation. Was causing crashes
1152 module in case-insensitive installation. Was causing crashes
1144 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1153 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1145
1154
1146 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1155 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1147 <marienz-AT-gentoo.org>, closes
1156 <marienz-AT-gentoo.org>, closes
1148 http://www.scipy.net/roundup/ipython/issue51.
1157 http://www.scipy.net/roundup/ipython/issue51.
1149
1158
1150 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1159 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1151
1160
1152 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1161 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1153 problem of excessive CPU usage under *nix and keyboard lag under
1162 problem of excessive CPU usage under *nix and keyboard lag under
1154 win32.
1163 win32.
1155
1164
1156 2006-01-10 *** Released version 0.7.0
1165 2006-01-10 *** Released version 0.7.0
1157
1166
1158 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1167 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1159
1168
1160 * IPython/Release.py (revision): tag version number to 0.7.0,
1169 * IPython/Release.py (revision): tag version number to 0.7.0,
1161 ready for release.
1170 ready for release.
1162
1171
1163 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1172 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1164 it informs the user of the name of the temp. file used. This can
1173 it informs the user of the name of the temp. file used. This can
1165 help if you decide later to reuse that same file, so you know
1174 help if you decide later to reuse that same file, so you know
1166 where to copy the info from.
1175 where to copy the info from.
1167
1176
1168 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1177 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1169
1178
1170 * setup_bdist_egg.py: little script to build an egg. Added
1179 * setup_bdist_egg.py: little script to build an egg. Added
1171 support in the release tools as well.
1180 support in the release tools as well.
1172
1181
1173 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1182 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1174
1183
1175 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1184 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1176 version selection (new -wxversion command line and ipythonrc
1185 version selection (new -wxversion command line and ipythonrc
1177 parameter). Patch contributed by Arnd Baecker
1186 parameter). Patch contributed by Arnd Baecker
1178 <arnd.baecker-AT-web.de>.
1187 <arnd.baecker-AT-web.de>.
1179
1188
1180 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1189 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1181 embedded instances, for variables defined at the interactive
1190 embedded instances, for variables defined at the interactive
1182 prompt of the embedded ipython. Reported by Arnd.
1191 prompt of the embedded ipython. Reported by Arnd.
1183
1192
1184 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1193 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1185 it can be used as a (stateful) toggle, or with a direct parameter.
1194 it can be used as a (stateful) toggle, or with a direct parameter.
1186
1195
1187 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1196 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1188 could be triggered in certain cases and cause the traceback
1197 could be triggered in certain cases and cause the traceback
1189 printer not to work.
1198 printer not to work.
1190
1199
1191 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1200 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1192
1201
1193 * IPython/iplib.py (_should_recompile): Small fix, closes
1202 * IPython/iplib.py (_should_recompile): Small fix, closes
1194 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1203 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1195
1204
1196 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1205 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1197
1206
1198 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1207 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1199 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1208 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1200 Moad for help with tracking it down.
1209 Moad for help with tracking it down.
1201
1210
1202 * IPython/iplib.py (handle_auto): fix autocall handling for
1211 * IPython/iplib.py (handle_auto): fix autocall handling for
1203 objects which support BOTH __getitem__ and __call__ (so that f [x]
1212 objects which support BOTH __getitem__ and __call__ (so that f [x]
1204 is left alone, instead of becoming f([x]) automatically).
1213 is left alone, instead of becoming f([x]) automatically).
1205
1214
1206 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1215 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1207 Ville's patch.
1216 Ville's patch.
1208
1217
1209 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1218 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1210
1219
1211 * IPython/iplib.py (handle_auto): changed autocall semantics to
1220 * IPython/iplib.py (handle_auto): changed autocall semantics to
1212 include 'smart' mode, where the autocall transformation is NOT
1221 include 'smart' mode, where the autocall transformation is NOT
1213 applied if there are no arguments on the line. This allows you to
1222 applied if there are no arguments on the line. This allows you to
1214 just type 'foo' if foo is a callable to see its internal form,
1223 just type 'foo' if foo is a callable to see its internal form,
1215 instead of having it called with no arguments (typically a
1224 instead of having it called with no arguments (typically a
1216 mistake). The old 'full' autocall still exists: for that, you
1225 mistake). The old 'full' autocall still exists: for that, you
1217 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1226 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1218
1227
1219 * IPython/completer.py (Completer.attr_matches): add
1228 * IPython/completer.py (Completer.attr_matches): add
1220 tab-completion support for Enthoughts' traits. After a report by
1229 tab-completion support for Enthoughts' traits. After a report by
1221 Arnd and a patch by Prabhu.
1230 Arnd and a patch by Prabhu.
1222
1231
1223 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1232 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1224
1233
1225 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1234 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1226 Schmolck's patch to fix inspect.getinnerframes().
1235 Schmolck's patch to fix inspect.getinnerframes().
1227
1236
1228 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1237 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1229 for embedded instances, regarding handling of namespaces and items
1238 for embedded instances, regarding handling of namespaces and items
1230 added to the __builtin__ one. Multiple embedded instances and
1239 added to the __builtin__ one. Multiple embedded instances and
1231 recursive embeddings should work better now (though I'm not sure
1240 recursive embeddings should work better now (though I'm not sure
1232 I've got all the corner cases fixed, that code is a bit of a brain
1241 I've got all the corner cases fixed, that code is a bit of a brain
1233 twister).
1242 twister).
1234
1243
1235 * IPython/Magic.py (magic_edit): added support to edit in-memory
1244 * IPython/Magic.py (magic_edit): added support to edit in-memory
1236 macros (automatically creates the necessary temp files). %edit
1245 macros (automatically creates the necessary temp files). %edit
1237 also doesn't return the file contents anymore, it's just noise.
1246 also doesn't return the file contents anymore, it's just noise.
1238
1247
1239 * IPython/completer.py (Completer.attr_matches): revert change to
1248 * IPython/completer.py (Completer.attr_matches): revert change to
1240 complete only on attributes listed in __all__. I realized it
1249 complete only on attributes listed in __all__. I realized it
1241 cripples the tab-completion system as a tool for exploring the
1250 cripples the tab-completion system as a tool for exploring the
1242 internals of unknown libraries (it renders any non-__all__
1251 internals of unknown libraries (it renders any non-__all__
1243 attribute off-limits). I got bit by this when trying to see
1252 attribute off-limits). I got bit by this when trying to see
1244 something inside the dis module.
1253 something inside the dis module.
1245
1254
1246 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1255 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1247
1256
1248 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1257 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1249 namespace for users and extension writers to hold data in. This
1258 namespace for users and extension writers to hold data in. This
1250 follows the discussion in
1259 follows the discussion in
1251 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1260 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1252
1261
1253 * IPython/completer.py (IPCompleter.complete): small patch to help
1262 * IPython/completer.py (IPCompleter.complete): small patch to help
1254 tab-completion under Emacs, after a suggestion by John Barnard
1263 tab-completion under Emacs, after a suggestion by John Barnard
1255 <barnarj-AT-ccf.org>.
1264 <barnarj-AT-ccf.org>.
1256
1265
1257 * IPython/Magic.py (Magic.extract_input_slices): added support for
1266 * IPython/Magic.py (Magic.extract_input_slices): added support for
1258 the slice notation in magics to use N-M to represent numbers N...M
1267 the slice notation in magics to use N-M to represent numbers N...M
1259 (closed endpoints). This is used by %macro and %save.
1268 (closed endpoints). This is used by %macro and %save.
1260
1269
1261 * IPython/completer.py (Completer.attr_matches): for modules which
1270 * IPython/completer.py (Completer.attr_matches): for modules which
1262 define __all__, complete only on those. After a patch by Jeffrey
1271 define __all__, complete only on those. After a patch by Jeffrey
1263 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1272 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1264 speed up this routine.
1273 speed up this routine.
1265
1274
1266 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1275 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1267 don't know if this is the end of it, but the behavior now is
1276 don't know if this is the end of it, but the behavior now is
1268 certainly much more correct. Note that coupled with macros,
1277 certainly much more correct. Note that coupled with macros,
1269 slightly surprising (at first) behavior may occur: a macro will in
1278 slightly surprising (at first) behavior may occur: a macro will in
1270 general expand to multiple lines of input, so upon exiting, the
1279 general expand to multiple lines of input, so upon exiting, the
1271 in/out counters will both be bumped by the corresponding amount
1280 in/out counters will both be bumped by the corresponding amount
1272 (as if the macro's contents had been typed interactively). Typing
1281 (as if the macro's contents had been typed interactively). Typing
1273 %hist will reveal the intermediate (silently processed) lines.
1282 %hist will reveal the intermediate (silently processed) lines.
1274
1283
1275 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1284 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1276 pickle to fail (%run was overwriting __main__ and not restoring
1285 pickle to fail (%run was overwriting __main__ and not restoring
1277 it, but pickle relies on __main__ to operate).
1286 it, but pickle relies on __main__ to operate).
1278
1287
1279 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1288 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1280 using properties, but forgot to make the main InteractiveShell
1289 using properties, but forgot to make the main InteractiveShell
1281 class a new-style class. Properties fail silently, and
1290 class a new-style class. Properties fail silently, and
1282 mysteriously, with old-style class (getters work, but
1291 mysteriously, with old-style class (getters work, but
1283 setters don't do anything).
1292 setters don't do anything).
1284
1293
1285 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1294 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1286
1295
1287 * IPython/Magic.py (magic_history): fix history reporting bug (I
1296 * IPython/Magic.py (magic_history): fix history reporting bug (I
1288 know some nasties are still there, I just can't seem to find a
1297 know some nasties are still there, I just can't seem to find a
1289 reproducible test case to track them down; the input history is
1298 reproducible test case to track them down; the input history is
1290 falling out of sync...)
1299 falling out of sync...)
1291
1300
1292 * IPython/iplib.py (handle_shell_escape): fix bug where both
1301 * IPython/iplib.py (handle_shell_escape): fix bug where both
1293 aliases and system accesses where broken for indented code (such
1302 aliases and system accesses where broken for indented code (such
1294 as loops).
1303 as loops).
1295
1304
1296 * IPython/genutils.py (shell): fix small but critical bug for
1305 * IPython/genutils.py (shell): fix small but critical bug for
1297 win32 system access.
1306 win32 system access.
1298
1307
1299 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1308 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1300
1309
1301 * IPython/iplib.py (showtraceback): remove use of the
1310 * IPython/iplib.py (showtraceback): remove use of the
1302 sys.last_{type/value/traceback} structures, which are non
1311 sys.last_{type/value/traceback} structures, which are non
1303 thread-safe.
1312 thread-safe.
1304 (_prefilter): change control flow to ensure that we NEVER
1313 (_prefilter): change control flow to ensure that we NEVER
1305 introspect objects when autocall is off. This will guarantee that
1314 introspect objects when autocall is off. This will guarantee that
1306 having an input line of the form 'x.y', where access to attribute
1315 having an input line of the form 'x.y', where access to attribute
1307 'y' has side effects, doesn't trigger the side effect TWICE. It
1316 'y' has side effects, doesn't trigger the side effect TWICE. It
1308 is important to note that, with autocall on, these side effects
1317 is important to note that, with autocall on, these side effects
1309 can still happen.
1318 can still happen.
1310 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1319 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1311 trio. IPython offers these three kinds of special calls which are
1320 trio. IPython offers these three kinds of special calls which are
1312 not python code, and it's a good thing to have their call method
1321 not python code, and it's a good thing to have their call method
1313 be accessible as pure python functions (not just special syntax at
1322 be accessible as pure python functions (not just special syntax at
1314 the command line). It gives us a better internal implementation
1323 the command line). It gives us a better internal implementation
1315 structure, as well as exposing these for user scripting more
1324 structure, as well as exposing these for user scripting more
1316 cleanly.
1325 cleanly.
1317
1326
1318 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1327 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1319 file. Now that they'll be more likely to be used with the
1328 file. Now that they'll be more likely to be used with the
1320 persistance system (%store), I want to make sure their module path
1329 persistance system (%store), I want to make sure their module path
1321 doesn't change in the future, so that we don't break things for
1330 doesn't change in the future, so that we don't break things for
1322 users' persisted data.
1331 users' persisted data.
1323
1332
1324 * IPython/iplib.py (autoindent_update): move indentation
1333 * IPython/iplib.py (autoindent_update): move indentation
1325 management into the _text_ processing loop, not the keyboard
1334 management into the _text_ processing loop, not the keyboard
1326 interactive one. This is necessary to correctly process non-typed
1335 interactive one. This is necessary to correctly process non-typed
1327 multiline input (such as macros).
1336 multiline input (such as macros).
1328
1337
1329 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1338 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1330 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1339 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1331 which was producing problems in the resulting manual.
1340 which was producing problems in the resulting manual.
1332 (magic_whos): improve reporting of instances (show their class,
1341 (magic_whos): improve reporting of instances (show their class,
1333 instead of simply printing 'instance' which isn't terribly
1342 instead of simply printing 'instance' which isn't terribly
1334 informative).
1343 informative).
1335
1344
1336 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1345 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1337 (minor mods) to support network shares under win32.
1346 (minor mods) to support network shares under win32.
1338
1347
1339 * IPython/winconsole.py (get_console_size): add new winconsole
1348 * IPython/winconsole.py (get_console_size): add new winconsole
1340 module and fixes to page_dumb() to improve its behavior under
1349 module and fixes to page_dumb() to improve its behavior under
1341 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1350 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1342
1351
1343 * IPython/Magic.py (Macro): simplified Macro class to just
1352 * IPython/Magic.py (Macro): simplified Macro class to just
1344 subclass list. We've had only 2.2 compatibility for a very long
1353 subclass list. We've had only 2.2 compatibility for a very long
1345 time, yet I was still avoiding subclassing the builtin types. No
1354 time, yet I was still avoiding subclassing the builtin types. No
1346 more (I'm also starting to use properties, though I won't shift to
1355 more (I'm also starting to use properties, though I won't shift to
1347 2.3-specific features quite yet).
1356 2.3-specific features quite yet).
1348 (magic_store): added Ville's patch for lightweight variable
1357 (magic_store): added Ville's patch for lightweight variable
1349 persistence, after a request on the user list by Matt Wilkie
1358 persistence, after a request on the user list by Matt Wilkie
1350 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1359 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1351 details.
1360 details.
1352
1361
1353 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1362 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1354 changed the default logfile name from 'ipython.log' to
1363 changed the default logfile name from 'ipython.log' to
1355 'ipython_log.py'. These logs are real python files, and now that
1364 'ipython_log.py'. These logs are real python files, and now that
1356 we have much better multiline support, people are more likely to
1365 we have much better multiline support, people are more likely to
1357 want to use them as such. Might as well name them correctly.
1366 want to use them as such. Might as well name them correctly.
1358
1367
1359 * IPython/Magic.py: substantial cleanup. While we can't stop
1368 * IPython/Magic.py: substantial cleanup. While we can't stop
1360 using magics as mixins, due to the existing customizations 'out
1369 using magics as mixins, due to the existing customizations 'out
1361 there' which rely on the mixin naming conventions, at least I
1370 there' which rely on the mixin naming conventions, at least I
1362 cleaned out all cross-class name usage. So once we are OK with
1371 cleaned out all cross-class name usage. So once we are OK with
1363 breaking compatibility, the two systems can be separated.
1372 breaking compatibility, the two systems can be separated.
1364
1373
1365 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1374 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1366 anymore, and the class is a fair bit less hideous as well. New
1375 anymore, and the class is a fair bit less hideous as well. New
1367 features were also introduced: timestamping of input, and logging
1376 features were also introduced: timestamping of input, and logging
1368 of output results. These are user-visible with the -t and -o
1377 of output results. These are user-visible with the -t and -o
1369 options to %logstart. Closes
1378 options to %logstart. Closes
1370 http://www.scipy.net/roundup/ipython/issue11 and a request by
1379 http://www.scipy.net/roundup/ipython/issue11 and a request by
1371 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1380 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1372
1381
1373 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1382 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1374
1383
1375 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1384 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1376 better handle backslashes in paths. See the thread 'More Windows
1385 better handle backslashes in paths. See the thread 'More Windows
1377 questions part 2 - \/ characters revisited' on the iypthon user
1386 questions part 2 - \/ characters revisited' on the iypthon user
1378 list:
1387 list:
1379 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1388 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1380
1389
1381 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1390 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1382
1391
1383 (InteractiveShell.__init__): change threaded shells to not use the
1392 (InteractiveShell.__init__): change threaded shells to not use the
1384 ipython crash handler. This was causing more problems than not,
1393 ipython crash handler. This was causing more problems than not,
1385 as exceptions in the main thread (GUI code, typically) would
1394 as exceptions in the main thread (GUI code, typically) would
1386 always show up as a 'crash', when they really weren't.
1395 always show up as a 'crash', when they really weren't.
1387
1396
1388 The colors and exception mode commands (%colors/%xmode) have been
1397 The colors and exception mode commands (%colors/%xmode) have been
1389 synchronized to also take this into account, so users can get
1398 synchronized to also take this into account, so users can get
1390 verbose exceptions for their threaded code as well. I also added
1399 verbose exceptions for their threaded code as well. I also added
1391 support for activating pdb inside this exception handler as well,
1400 support for activating pdb inside this exception handler as well,
1392 so now GUI authors can use IPython's enhanced pdb at runtime.
1401 so now GUI authors can use IPython's enhanced pdb at runtime.
1393
1402
1394 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1403 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1395 true by default, and add it to the shipped ipythonrc file. Since
1404 true by default, and add it to the shipped ipythonrc file. Since
1396 this asks the user before proceeding, I think it's OK to make it
1405 this asks the user before proceeding, I think it's OK to make it
1397 true by default.
1406 true by default.
1398
1407
1399 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1408 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1400 of the previous special-casing of input in the eval loop. I think
1409 of the previous special-casing of input in the eval loop. I think
1401 this is cleaner, as they really are commands and shouldn't have
1410 this is cleaner, as they really are commands and shouldn't have
1402 a special role in the middle of the core code.
1411 a special role in the middle of the core code.
1403
1412
1404 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1413 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1405
1414
1406 * IPython/iplib.py (edit_syntax_error): added support for
1415 * IPython/iplib.py (edit_syntax_error): added support for
1407 automatically reopening the editor if the file had a syntax error
1416 automatically reopening the editor if the file had a syntax error
1408 in it. Thanks to scottt who provided the patch at:
1417 in it. Thanks to scottt who provided the patch at:
1409 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1418 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1410 version committed).
1419 version committed).
1411
1420
1412 * IPython/iplib.py (handle_normal): add suport for multi-line
1421 * IPython/iplib.py (handle_normal): add suport for multi-line
1413 input with emtpy lines. This fixes
1422 input with emtpy lines. This fixes
1414 http://www.scipy.net/roundup/ipython/issue43 and a similar
1423 http://www.scipy.net/roundup/ipython/issue43 and a similar
1415 discussion on the user list.
1424 discussion on the user list.
1416
1425
1417 WARNING: a behavior change is necessarily introduced to support
1426 WARNING: a behavior change is necessarily introduced to support
1418 blank lines: now a single blank line with whitespace does NOT
1427 blank lines: now a single blank line with whitespace does NOT
1419 break the input loop, which means that when autoindent is on, by
1428 break the input loop, which means that when autoindent is on, by
1420 default hitting return on the next (indented) line does NOT exit.
1429 default hitting return on the next (indented) line does NOT exit.
1421
1430
1422 Instead, to exit a multiline input you can either have:
1431 Instead, to exit a multiline input you can either have:
1423
1432
1424 - TWO whitespace lines (just hit return again), or
1433 - TWO whitespace lines (just hit return again), or
1425 - a single whitespace line of a different length than provided
1434 - a single whitespace line of a different length than provided
1426 by the autoindent (add or remove a space).
1435 by the autoindent (add or remove a space).
1427
1436
1428 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1437 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1429 module to better organize all readline-related functionality.
1438 module to better organize all readline-related functionality.
1430 I've deleted FlexCompleter and put all completion clases here.
1439 I've deleted FlexCompleter and put all completion clases here.
1431
1440
1432 * IPython/iplib.py (raw_input): improve indentation management.
1441 * IPython/iplib.py (raw_input): improve indentation management.
1433 It is now possible to paste indented code with autoindent on, and
1442 It is now possible to paste indented code with autoindent on, and
1434 the code is interpreted correctly (though it still looks bad on
1443 the code is interpreted correctly (though it still looks bad on
1435 screen, due to the line-oriented nature of ipython).
1444 screen, due to the line-oriented nature of ipython).
1436 (MagicCompleter.complete): change behavior so that a TAB key on an
1445 (MagicCompleter.complete): change behavior so that a TAB key on an
1437 otherwise empty line actually inserts a tab, instead of completing
1446 otherwise empty line actually inserts a tab, instead of completing
1438 on the entire global namespace. This makes it easier to use the
1447 on the entire global namespace. This makes it easier to use the
1439 TAB key for indentation. After a request by Hans Meine
1448 TAB key for indentation. After a request by Hans Meine
1440 <hans_meine-AT-gmx.net>
1449 <hans_meine-AT-gmx.net>
1441 (_prefilter): add support so that typing plain 'exit' or 'quit'
1450 (_prefilter): add support so that typing plain 'exit' or 'quit'
1442 does a sensible thing. Originally I tried to deviate as little as
1451 does a sensible thing. Originally I tried to deviate as little as
1443 possible from the default python behavior, but even that one may
1452 possible from the default python behavior, but even that one may
1444 change in this direction (thread on python-dev to that effect).
1453 change in this direction (thread on python-dev to that effect).
1445 Regardless, ipython should do the right thing even if CPython's
1454 Regardless, ipython should do the right thing even if CPython's
1446 '>>>' prompt doesn't.
1455 '>>>' prompt doesn't.
1447 (InteractiveShell): removed subclassing code.InteractiveConsole
1456 (InteractiveShell): removed subclassing code.InteractiveConsole
1448 class. By now we'd overridden just about all of its methods: I've
1457 class. By now we'd overridden just about all of its methods: I've
1449 copied the remaining two over, and now ipython is a standalone
1458 copied the remaining two over, and now ipython is a standalone
1450 class. This will provide a clearer picture for the chainsaw
1459 class. This will provide a clearer picture for the chainsaw
1451 branch refactoring.
1460 branch refactoring.
1452
1461
1453 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1462 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1454
1463
1455 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1464 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1456 failures for objects which break when dir() is called on them.
1465 failures for objects which break when dir() is called on them.
1457
1466
1458 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1467 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1459 distinct local and global namespaces in the completer API. This
1468 distinct local and global namespaces in the completer API. This
1460 change allows us to properly handle completion with distinct
1469 change allows us to properly handle completion with distinct
1461 scopes, including in embedded instances (this had never really
1470 scopes, including in embedded instances (this had never really
1462 worked correctly).
1471 worked correctly).
1463
1472
1464 Note: this introduces a change in the constructor for
1473 Note: this introduces a change in the constructor for
1465 MagicCompleter, as a new global_namespace parameter is now the
1474 MagicCompleter, as a new global_namespace parameter is now the
1466 second argument (the others were bumped one position).
1475 second argument (the others were bumped one position).
1467
1476
1468 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1477 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1469
1478
1470 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1479 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1471 embedded instances (which can be done now thanks to Vivian's
1480 embedded instances (which can be done now thanks to Vivian's
1472 frame-handling fixes for pdb).
1481 frame-handling fixes for pdb).
1473 (InteractiveShell.__init__): Fix namespace handling problem in
1482 (InteractiveShell.__init__): Fix namespace handling problem in
1474 embedded instances. We were overwriting __main__ unconditionally,
1483 embedded instances. We were overwriting __main__ unconditionally,
1475 and this should only be done for 'full' (non-embedded) IPython;
1484 and this should only be done for 'full' (non-embedded) IPython;
1476 embedded instances must respect the caller's __main__. Thanks to
1485 embedded instances must respect the caller's __main__. Thanks to
1477 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1486 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1478
1487
1479 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1488 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1480
1489
1481 * setup.py: added download_url to setup(). This registers the
1490 * setup.py: added download_url to setup(). This registers the
1482 download address at PyPI, which is not only useful to humans
1491 download address at PyPI, which is not only useful to humans
1483 browsing the site, but is also picked up by setuptools (the Eggs
1492 browsing the site, but is also picked up by setuptools (the Eggs
1484 machinery). Thanks to Ville and R. Kern for the info/discussion
1493 machinery). Thanks to Ville and R. Kern for the info/discussion
1485 on this.
1494 on this.
1486
1495
1487 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1496 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1488
1497
1489 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1498 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1490 This brings a lot of nice functionality to the pdb mode, which now
1499 This brings a lot of nice functionality to the pdb mode, which now
1491 has tab-completion, syntax highlighting, and better stack handling
1500 has tab-completion, syntax highlighting, and better stack handling
1492 than before. Many thanks to Vivian De Smedt
1501 than before. Many thanks to Vivian De Smedt
1493 <vivian-AT-vdesmedt.com> for the original patches.
1502 <vivian-AT-vdesmedt.com> for the original patches.
1494
1503
1495 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1504 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1496
1505
1497 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1506 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1498 sequence to consistently accept the banner argument. The
1507 sequence to consistently accept the banner argument. The
1499 inconsistency was tripping SAGE, thanks to Gary Zablackis
1508 inconsistency was tripping SAGE, thanks to Gary Zablackis
1500 <gzabl-AT-yahoo.com> for the report.
1509 <gzabl-AT-yahoo.com> for the report.
1501
1510
1502 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1511 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1503
1512
1504 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1513 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1505 Fix bug where a naked 'alias' call in the ipythonrc file would
1514 Fix bug where a naked 'alias' call in the ipythonrc file would
1506 cause a crash. Bug reported by Jorgen Stenarson.
1515 cause a crash. Bug reported by Jorgen Stenarson.
1507
1516
1508 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1517 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1509
1518
1510 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1519 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1511 startup time.
1520 startup time.
1512
1521
1513 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1522 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1514 instances had introduced a bug with globals in normal code. Now
1523 instances had introduced a bug with globals in normal code. Now
1515 it's working in all cases.
1524 it's working in all cases.
1516
1525
1517 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1526 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1518 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1527 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1519 has been introduced to set the default case sensitivity of the
1528 has been introduced to set the default case sensitivity of the
1520 searches. Users can still select either mode at runtime on a
1529 searches. Users can still select either mode at runtime on a
1521 per-search basis.
1530 per-search basis.
1522
1531
1523 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1532 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1524
1533
1525 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1534 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1526 attributes in wildcard searches for subclasses. Modified version
1535 attributes in wildcard searches for subclasses. Modified version
1527 of a patch by Jorgen.
1536 of a patch by Jorgen.
1528
1537
1529 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1538 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1530
1539
1531 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1540 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1532 embedded instances. I added a user_global_ns attribute to the
1541 embedded instances. I added a user_global_ns attribute to the
1533 InteractiveShell class to handle this.
1542 InteractiveShell class to handle this.
1534
1543
1535 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1544 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1536
1545
1537 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1546 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1538 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1547 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1539 (reported under win32, but may happen also in other platforms).
1548 (reported under win32, but may happen also in other platforms).
1540 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1549 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1541
1550
1542 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1551 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1543
1552
1544 * IPython/Magic.py (magic_psearch): new support for wildcard
1553 * IPython/Magic.py (magic_psearch): new support for wildcard
1545 patterns. Now, typing ?a*b will list all names which begin with a
1554 patterns. Now, typing ?a*b will list all names which begin with a
1546 and end in b, for example. The %psearch magic has full
1555 and end in b, for example. The %psearch magic has full
1547 docstrings. Many thanks to JΓΆrgen Stenarson
1556 docstrings. Many thanks to JΓΆrgen Stenarson
1548 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1557 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1549 implementing this functionality.
1558 implementing this functionality.
1550
1559
1551 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1560 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1552
1561
1553 * Manual: fixed long-standing annoyance of double-dashes (as in
1562 * Manual: fixed long-standing annoyance of double-dashes (as in
1554 --prefix=~, for example) being stripped in the HTML version. This
1563 --prefix=~, for example) being stripped in the HTML version. This
1555 is a latex2html bug, but a workaround was provided. Many thanks
1564 is a latex2html bug, but a workaround was provided. Many thanks
1556 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1565 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1557 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1566 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1558 rolling. This seemingly small issue had tripped a number of users
1567 rolling. This seemingly small issue had tripped a number of users
1559 when first installing, so I'm glad to see it gone.
1568 when first installing, so I'm glad to see it gone.
1560
1569
1561 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1570 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1562
1571
1563 * IPython/Extensions/numeric_formats.py: fix missing import,
1572 * IPython/Extensions/numeric_formats.py: fix missing import,
1564 reported by Stephen Walton.
1573 reported by Stephen Walton.
1565
1574
1566 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1575 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1567
1576
1568 * IPython/demo.py: finish demo module, fully documented now.
1577 * IPython/demo.py: finish demo module, fully documented now.
1569
1578
1570 * IPython/genutils.py (file_read): simple little utility to read a
1579 * IPython/genutils.py (file_read): simple little utility to read a
1571 file and ensure it's closed afterwards.
1580 file and ensure it's closed afterwards.
1572
1581
1573 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1582 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1574
1583
1575 * IPython/demo.py (Demo.__init__): added support for individually
1584 * IPython/demo.py (Demo.__init__): added support for individually
1576 tagging blocks for automatic execution.
1585 tagging blocks for automatic execution.
1577
1586
1578 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1587 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1579 syntax-highlighted python sources, requested by John.
1588 syntax-highlighted python sources, requested by John.
1580
1589
1581 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1590 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1582
1591
1583 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1592 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1584 finishing.
1593 finishing.
1585
1594
1586 * IPython/genutils.py (shlex_split): moved from Magic to here,
1595 * IPython/genutils.py (shlex_split): moved from Magic to here,
1587 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1596 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1588
1597
1589 * IPython/demo.py (Demo.__init__): added support for silent
1598 * IPython/demo.py (Demo.__init__): added support for silent
1590 blocks, improved marks as regexps, docstrings written.
1599 blocks, improved marks as regexps, docstrings written.
1591 (Demo.__init__): better docstring, added support for sys.argv.
1600 (Demo.__init__): better docstring, added support for sys.argv.
1592
1601
1593 * IPython/genutils.py (marquee): little utility used by the demo
1602 * IPython/genutils.py (marquee): little utility used by the demo
1594 code, handy in general.
1603 code, handy in general.
1595
1604
1596 * IPython/demo.py (Demo.__init__): new class for interactive
1605 * IPython/demo.py (Demo.__init__): new class for interactive
1597 demos. Not documented yet, I just wrote it in a hurry for
1606 demos. Not documented yet, I just wrote it in a hurry for
1598 scipy'05. Will docstring later.
1607 scipy'05. Will docstring later.
1599
1608
1600 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1609 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1601
1610
1602 * IPython/Shell.py (sigint_handler): Drastic simplification which
1611 * IPython/Shell.py (sigint_handler): Drastic simplification which
1603 also seems to make Ctrl-C work correctly across threads! This is
1612 also seems to make Ctrl-C work correctly across threads! This is
1604 so simple, that I can't beleive I'd missed it before. Needs more
1613 so simple, that I can't beleive I'd missed it before. Needs more
1605 testing, though.
1614 testing, though.
1606 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1615 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1607 like this before...
1616 like this before...
1608
1617
1609 * IPython/genutils.py (get_home_dir): add protection against
1618 * IPython/genutils.py (get_home_dir): add protection against
1610 non-dirs in win32 registry.
1619 non-dirs in win32 registry.
1611
1620
1612 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1621 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1613 bug where dict was mutated while iterating (pysh crash).
1622 bug where dict was mutated while iterating (pysh crash).
1614
1623
1615 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1624 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1616
1625
1617 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1626 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1618 spurious newlines added by this routine. After a report by
1627 spurious newlines added by this routine. After a report by
1619 F. Mantegazza.
1628 F. Mantegazza.
1620
1629
1621 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1630 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1622
1631
1623 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1632 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1624 calls. These were a leftover from the GTK 1.x days, and can cause
1633 calls. These were a leftover from the GTK 1.x days, and can cause
1625 problems in certain cases (after a report by John Hunter).
1634 problems in certain cases (after a report by John Hunter).
1626
1635
1627 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1636 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1628 os.getcwd() fails at init time. Thanks to patch from David Remahl
1637 os.getcwd() fails at init time. Thanks to patch from David Remahl
1629 <chmod007-AT-mac.com>.
1638 <chmod007-AT-mac.com>.
1630 (InteractiveShell.__init__): prevent certain special magics from
1639 (InteractiveShell.__init__): prevent certain special magics from
1631 being shadowed by aliases. Closes
1640 being shadowed by aliases. Closes
1632 http://www.scipy.net/roundup/ipython/issue41.
1641 http://www.scipy.net/roundup/ipython/issue41.
1633
1642
1634 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1643 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1635
1644
1636 * IPython/iplib.py (InteractiveShell.complete): Added new
1645 * IPython/iplib.py (InteractiveShell.complete): Added new
1637 top-level completion method to expose the completion mechanism
1646 top-level completion method to expose the completion mechanism
1638 beyond readline-based environments.
1647 beyond readline-based environments.
1639
1648
1640 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1649 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1641
1650
1642 * tools/ipsvnc (svnversion): fix svnversion capture.
1651 * tools/ipsvnc (svnversion): fix svnversion capture.
1643
1652
1644 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1653 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1645 attribute to self, which was missing. Before, it was set by a
1654 attribute to self, which was missing. Before, it was set by a
1646 routine which in certain cases wasn't being called, so the
1655 routine which in certain cases wasn't being called, so the
1647 instance could end up missing the attribute. This caused a crash.
1656 instance could end up missing the attribute. This caused a crash.
1648 Closes http://www.scipy.net/roundup/ipython/issue40.
1657 Closes http://www.scipy.net/roundup/ipython/issue40.
1649
1658
1650 2005-08-16 Fernando Perez <fperez@colorado.edu>
1659 2005-08-16 Fernando Perez <fperez@colorado.edu>
1651
1660
1652 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1661 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1653 contains non-string attribute. Closes
1662 contains non-string attribute. Closes
1654 http://www.scipy.net/roundup/ipython/issue38.
1663 http://www.scipy.net/roundup/ipython/issue38.
1655
1664
1656 2005-08-14 Fernando Perez <fperez@colorado.edu>
1665 2005-08-14 Fernando Perez <fperez@colorado.edu>
1657
1666
1658 * tools/ipsvnc: Minor improvements, to add changeset info.
1667 * tools/ipsvnc: Minor improvements, to add changeset info.
1659
1668
1660 2005-08-12 Fernando Perez <fperez@colorado.edu>
1669 2005-08-12 Fernando Perez <fperez@colorado.edu>
1661
1670
1662 * IPython/iplib.py (runsource): remove self.code_to_run_src
1671 * IPython/iplib.py (runsource): remove self.code_to_run_src
1663 attribute. I realized this is nothing more than
1672 attribute. I realized this is nothing more than
1664 '\n'.join(self.buffer), and having the same data in two different
1673 '\n'.join(self.buffer), and having the same data in two different
1665 places is just asking for synchronization bugs. This may impact
1674 places is just asking for synchronization bugs. This may impact
1666 people who have custom exception handlers, so I need to warn
1675 people who have custom exception handlers, so I need to warn
1667 ipython-dev about it (F. Mantegazza may use them).
1676 ipython-dev about it (F. Mantegazza may use them).
1668
1677
1669 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1678 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1670
1679
1671 * IPython/genutils.py: fix 2.2 compatibility (generators)
1680 * IPython/genutils.py: fix 2.2 compatibility (generators)
1672
1681
1673 2005-07-18 Fernando Perez <fperez@colorado.edu>
1682 2005-07-18 Fernando Perez <fperez@colorado.edu>
1674
1683
1675 * IPython/genutils.py (get_home_dir): fix to help users with
1684 * IPython/genutils.py (get_home_dir): fix to help users with
1676 invalid $HOME under win32.
1685 invalid $HOME under win32.
1677
1686
1678 2005-07-17 Fernando Perez <fperez@colorado.edu>
1687 2005-07-17 Fernando Perez <fperez@colorado.edu>
1679
1688
1680 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1689 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1681 some old hacks and clean up a bit other routines; code should be
1690 some old hacks and clean up a bit other routines; code should be
1682 simpler and a bit faster.
1691 simpler and a bit faster.
1683
1692
1684 * IPython/iplib.py (interact): removed some last-resort attempts
1693 * IPython/iplib.py (interact): removed some last-resort attempts
1685 to survive broken stdout/stderr. That code was only making it
1694 to survive broken stdout/stderr. That code was only making it
1686 harder to abstract out the i/o (necessary for gui integration),
1695 harder to abstract out the i/o (necessary for gui integration),
1687 and the crashes it could prevent were extremely rare in practice
1696 and the crashes it could prevent were extremely rare in practice
1688 (besides being fully user-induced in a pretty violent manner).
1697 (besides being fully user-induced in a pretty violent manner).
1689
1698
1690 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1699 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1691 Nothing major yet, but the code is simpler to read; this should
1700 Nothing major yet, but the code is simpler to read; this should
1692 make it easier to do more serious modifications in the future.
1701 make it easier to do more serious modifications in the future.
1693
1702
1694 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1703 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1695 which broke in .15 (thanks to a report by Ville).
1704 which broke in .15 (thanks to a report by Ville).
1696
1705
1697 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1706 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1698 be quite correct, I know next to nothing about unicode). This
1707 be quite correct, I know next to nothing about unicode). This
1699 will allow unicode strings to be used in prompts, amongst other
1708 will allow unicode strings to be used in prompts, amongst other
1700 cases. It also will prevent ipython from crashing when unicode
1709 cases. It also will prevent ipython from crashing when unicode
1701 shows up unexpectedly in many places. If ascii encoding fails, we
1710 shows up unexpectedly in many places. If ascii encoding fails, we
1702 assume utf_8. Currently the encoding is not a user-visible
1711 assume utf_8. Currently the encoding is not a user-visible
1703 setting, though it could be made so if there is demand for it.
1712 setting, though it could be made so if there is demand for it.
1704
1713
1705 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1714 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1706
1715
1707 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1716 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1708
1717
1709 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1718 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1710
1719
1711 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1720 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1712 code can work transparently for 2.2/2.3.
1721 code can work transparently for 2.2/2.3.
1713
1722
1714 2005-07-16 Fernando Perez <fperez@colorado.edu>
1723 2005-07-16 Fernando Perez <fperez@colorado.edu>
1715
1724
1716 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1725 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1717 out of the color scheme table used for coloring exception
1726 out of the color scheme table used for coloring exception
1718 tracebacks. This allows user code to add new schemes at runtime.
1727 tracebacks. This allows user code to add new schemes at runtime.
1719 This is a minimally modified version of the patch at
1728 This is a minimally modified version of the patch at
1720 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1729 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1721 for the contribution.
1730 for the contribution.
1722
1731
1723 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1732 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1724 slightly modified version of the patch in
1733 slightly modified version of the patch in
1725 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1734 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1726 to remove the previous try/except solution (which was costlier).
1735 to remove the previous try/except solution (which was costlier).
1727 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1736 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1728
1737
1729 2005-06-08 Fernando Perez <fperez@colorado.edu>
1738 2005-06-08 Fernando Perez <fperez@colorado.edu>
1730
1739
1731 * IPython/iplib.py (write/write_err): Add methods to abstract all
1740 * IPython/iplib.py (write/write_err): Add methods to abstract all
1732 I/O a bit more.
1741 I/O a bit more.
1733
1742
1734 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1743 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1735 warning, reported by Aric Hagberg, fix by JD Hunter.
1744 warning, reported by Aric Hagberg, fix by JD Hunter.
1736
1745
1737 2005-06-02 *** Released version 0.6.15
1746 2005-06-02 *** Released version 0.6.15
1738
1747
1739 2005-06-01 Fernando Perez <fperez@colorado.edu>
1748 2005-06-01 Fernando Perez <fperez@colorado.edu>
1740
1749
1741 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1750 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1742 tab-completion of filenames within open-quoted strings. Note that
1751 tab-completion of filenames within open-quoted strings. Note that
1743 this requires that in ~/.ipython/ipythonrc, users change the
1752 this requires that in ~/.ipython/ipythonrc, users change the
1744 readline delimiters configuration to read:
1753 readline delimiters configuration to read:
1745
1754
1746 readline_remove_delims -/~
1755 readline_remove_delims -/~
1747
1756
1748
1757
1749 2005-05-31 *** Released version 0.6.14
1758 2005-05-31 *** Released version 0.6.14
1750
1759
1751 2005-05-29 Fernando Perez <fperez@colorado.edu>
1760 2005-05-29 Fernando Perez <fperez@colorado.edu>
1752
1761
1753 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1762 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1754 with files not on the filesystem. Reported by Eliyahu Sandler
1763 with files not on the filesystem. Reported by Eliyahu Sandler
1755 <eli@gondolin.net>
1764 <eli@gondolin.net>
1756
1765
1757 2005-05-22 Fernando Perez <fperez@colorado.edu>
1766 2005-05-22 Fernando Perez <fperez@colorado.edu>
1758
1767
1759 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1768 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1760 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1769 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1761
1770
1762 2005-05-19 Fernando Perez <fperez@colorado.edu>
1771 2005-05-19 Fernando Perez <fperez@colorado.edu>
1763
1772
1764 * IPython/iplib.py (safe_execfile): close a file which could be
1773 * IPython/iplib.py (safe_execfile): close a file which could be
1765 left open (causing problems in win32, which locks open files).
1774 left open (causing problems in win32, which locks open files).
1766 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1775 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1767
1776
1768 2005-05-18 Fernando Perez <fperez@colorado.edu>
1777 2005-05-18 Fernando Perez <fperez@colorado.edu>
1769
1778
1770 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1779 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1771 keyword arguments correctly to safe_execfile().
1780 keyword arguments correctly to safe_execfile().
1772
1781
1773 2005-05-13 Fernando Perez <fperez@colorado.edu>
1782 2005-05-13 Fernando Perez <fperez@colorado.edu>
1774
1783
1775 * ipython.1: Added info about Qt to manpage, and threads warning
1784 * ipython.1: Added info about Qt to manpage, and threads warning
1776 to usage page (invoked with --help).
1785 to usage page (invoked with --help).
1777
1786
1778 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1787 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1779 new matcher (it goes at the end of the priority list) to do
1788 new matcher (it goes at the end of the priority list) to do
1780 tab-completion on named function arguments. Submitted by George
1789 tab-completion on named function arguments. Submitted by George
1781 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1790 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1782 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1791 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1783 for more details.
1792 for more details.
1784
1793
1785 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1794 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1786 SystemExit exceptions in the script being run. Thanks to a report
1795 SystemExit exceptions in the script being run. Thanks to a report
1787 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1796 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1788 producing very annoying behavior when running unit tests.
1797 producing very annoying behavior when running unit tests.
1789
1798
1790 2005-05-12 Fernando Perez <fperez@colorado.edu>
1799 2005-05-12 Fernando Perez <fperez@colorado.edu>
1791
1800
1792 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1801 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1793 which I'd broken (again) due to a changed regexp. In the process,
1802 which I'd broken (again) due to a changed regexp. In the process,
1794 added ';' as an escape to auto-quote the whole line without
1803 added ';' as an escape to auto-quote the whole line without
1795 splitting its arguments. Thanks to a report by Jerry McRae
1804 splitting its arguments. Thanks to a report by Jerry McRae
1796 <qrs0xyc02-AT-sneakemail.com>.
1805 <qrs0xyc02-AT-sneakemail.com>.
1797
1806
1798 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1807 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1799 possible crashes caused by a TokenError. Reported by Ed Schofield
1808 possible crashes caused by a TokenError. Reported by Ed Schofield
1800 <schofield-AT-ftw.at>.
1809 <schofield-AT-ftw.at>.
1801
1810
1802 2005-05-06 Fernando Perez <fperez@colorado.edu>
1811 2005-05-06 Fernando Perez <fperez@colorado.edu>
1803
1812
1804 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1813 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1805
1814
1806 2005-04-29 Fernando Perez <fperez@colorado.edu>
1815 2005-04-29 Fernando Perez <fperez@colorado.edu>
1807
1816
1808 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1817 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1809 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1818 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1810 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1819 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1811 which provides support for Qt interactive usage (similar to the
1820 which provides support for Qt interactive usage (similar to the
1812 existing one for WX and GTK). This had been often requested.
1821 existing one for WX and GTK). This had been often requested.
1813
1822
1814 2005-04-14 *** Released version 0.6.13
1823 2005-04-14 *** Released version 0.6.13
1815
1824
1816 2005-04-08 Fernando Perez <fperez@colorado.edu>
1825 2005-04-08 Fernando Perez <fperez@colorado.edu>
1817
1826
1818 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1827 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1819 from _ofind, which gets called on almost every input line. Now,
1828 from _ofind, which gets called on almost every input line. Now,
1820 we only try to get docstrings if they are actually going to be
1829 we only try to get docstrings if they are actually going to be
1821 used (the overhead of fetching unnecessary docstrings can be
1830 used (the overhead of fetching unnecessary docstrings can be
1822 noticeable for certain objects, such as Pyro proxies).
1831 noticeable for certain objects, such as Pyro proxies).
1823
1832
1824 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1833 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1825 for completers. For some reason I had been passing them the state
1834 for completers. For some reason I had been passing them the state
1826 variable, which completers never actually need, and was in
1835 variable, which completers never actually need, and was in
1827 conflict with the rlcompleter API. Custom completers ONLY need to
1836 conflict with the rlcompleter API. Custom completers ONLY need to
1828 take the text parameter.
1837 take the text parameter.
1829
1838
1830 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1839 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1831 work correctly in pysh. I've also moved all the logic which used
1840 work correctly in pysh. I've also moved all the logic which used
1832 to be in pysh.py here, which will prevent problems with future
1841 to be in pysh.py here, which will prevent problems with future
1833 upgrades. However, this time I must warn users to update their
1842 upgrades. However, this time I must warn users to update their
1834 pysh profile to include the line
1843 pysh profile to include the line
1835
1844
1836 import_all IPython.Extensions.InterpreterExec
1845 import_all IPython.Extensions.InterpreterExec
1837
1846
1838 because otherwise things won't work for them. They MUST also
1847 because otherwise things won't work for them. They MUST also
1839 delete pysh.py and the line
1848 delete pysh.py and the line
1840
1849
1841 execfile pysh.py
1850 execfile pysh.py
1842
1851
1843 from their ipythonrc-pysh.
1852 from their ipythonrc-pysh.
1844
1853
1845 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1854 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1846 robust in the face of objects whose dir() returns non-strings
1855 robust in the face of objects whose dir() returns non-strings
1847 (which it shouldn't, but some broken libs like ITK do). Thanks to
1856 (which it shouldn't, but some broken libs like ITK do). Thanks to
1848 a patch by John Hunter (implemented differently, though). Also
1857 a patch by John Hunter (implemented differently, though). Also
1849 minor improvements by using .extend instead of + on lists.
1858 minor improvements by using .extend instead of + on lists.
1850
1859
1851 * pysh.py:
1860 * pysh.py:
1852
1861
1853 2005-04-06 Fernando Perez <fperez@colorado.edu>
1862 2005-04-06 Fernando Perez <fperez@colorado.edu>
1854
1863
1855 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1864 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1856 by default, so that all users benefit from it. Those who don't
1865 by default, so that all users benefit from it. Those who don't
1857 want it can still turn it off.
1866 want it can still turn it off.
1858
1867
1859 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1868 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1860 config file, I'd forgotten about this, so users were getting it
1869 config file, I'd forgotten about this, so users were getting it
1861 off by default.
1870 off by default.
1862
1871
1863 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1872 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1864 consistency. Now magics can be called in multiline statements,
1873 consistency. Now magics can be called in multiline statements,
1865 and python variables can be expanded in magic calls via $var.
1874 and python variables can be expanded in magic calls via $var.
1866 This makes the magic system behave just like aliases or !system
1875 This makes the magic system behave just like aliases or !system
1867 calls.
1876 calls.
1868
1877
1869 2005-03-28 Fernando Perez <fperez@colorado.edu>
1878 2005-03-28 Fernando Perez <fperez@colorado.edu>
1870
1879
1871 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1880 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1872 expensive string additions for building command. Add support for
1881 expensive string additions for building command. Add support for
1873 trailing ';' when autocall is used.
1882 trailing ';' when autocall is used.
1874
1883
1875 2005-03-26 Fernando Perez <fperez@colorado.edu>
1884 2005-03-26 Fernando Perez <fperez@colorado.edu>
1876
1885
1877 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1886 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1878 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1887 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1879 ipython.el robust against prompts with any number of spaces
1888 ipython.el robust against prompts with any number of spaces
1880 (including 0) after the ':' character.
1889 (including 0) after the ':' character.
1881
1890
1882 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1891 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1883 continuation prompt, which misled users to think the line was
1892 continuation prompt, which misled users to think the line was
1884 already indented. Closes debian Bug#300847, reported to me by
1893 already indented. Closes debian Bug#300847, reported to me by
1885 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1894 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1886
1895
1887 2005-03-23 Fernando Perez <fperez@colorado.edu>
1896 2005-03-23 Fernando Perez <fperez@colorado.edu>
1888
1897
1889 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1898 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1890 properly aligned if they have embedded newlines.
1899 properly aligned if they have embedded newlines.
1891
1900
1892 * IPython/iplib.py (runlines): Add a public method to expose
1901 * IPython/iplib.py (runlines): Add a public method to expose
1893 IPython's code execution machinery, so that users can run strings
1902 IPython's code execution machinery, so that users can run strings
1894 as if they had been typed at the prompt interactively.
1903 as if they had been typed at the prompt interactively.
1895 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1904 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1896 methods which can call the system shell, but with python variable
1905 methods which can call the system shell, but with python variable
1897 expansion. The three such methods are: __IPYTHON__.system,
1906 expansion. The three such methods are: __IPYTHON__.system,
1898 .getoutput and .getoutputerror. These need to be documented in a
1907 .getoutput and .getoutputerror. These need to be documented in a
1899 'public API' section (to be written) of the manual.
1908 'public API' section (to be written) of the manual.
1900
1909
1901 2005-03-20 Fernando Perez <fperez@colorado.edu>
1910 2005-03-20 Fernando Perez <fperez@colorado.edu>
1902
1911
1903 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1912 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1904 for custom exception handling. This is quite powerful, and it
1913 for custom exception handling. This is quite powerful, and it
1905 allows for user-installable exception handlers which can trap
1914 allows for user-installable exception handlers which can trap
1906 custom exceptions at runtime and treat them separately from
1915 custom exceptions at runtime and treat them separately from
1907 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1916 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1908 Mantegazza <mantegazza-AT-ill.fr>.
1917 Mantegazza <mantegazza-AT-ill.fr>.
1909 (InteractiveShell.set_custom_completer): public API function to
1918 (InteractiveShell.set_custom_completer): public API function to
1910 add new completers at runtime.
1919 add new completers at runtime.
1911
1920
1912 2005-03-19 Fernando Perez <fperez@colorado.edu>
1921 2005-03-19 Fernando Perez <fperez@colorado.edu>
1913
1922
1914 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1923 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1915 allow objects which provide their docstrings via non-standard
1924 allow objects which provide their docstrings via non-standard
1916 mechanisms (like Pyro proxies) to still be inspected by ipython's
1925 mechanisms (like Pyro proxies) to still be inspected by ipython's
1917 ? system.
1926 ? system.
1918
1927
1919 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1928 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1920 automatic capture system. I tried quite hard to make it work
1929 automatic capture system. I tried quite hard to make it work
1921 reliably, and simply failed. I tried many combinations with the
1930 reliably, and simply failed. I tried many combinations with the
1922 subprocess module, but eventually nothing worked in all needed
1931 subprocess module, but eventually nothing worked in all needed
1923 cases (not blocking stdin for the child, duplicating stdout
1932 cases (not blocking stdin for the child, duplicating stdout
1924 without blocking, etc). The new %sc/%sx still do capture to these
1933 without blocking, etc). The new %sc/%sx still do capture to these
1925 magical list/string objects which make shell use much more
1934 magical list/string objects which make shell use much more
1926 conveninent, so not all is lost.
1935 conveninent, so not all is lost.
1927
1936
1928 XXX - FIX MANUAL for the change above!
1937 XXX - FIX MANUAL for the change above!
1929
1938
1930 (runsource): I copied code.py's runsource() into ipython to modify
1939 (runsource): I copied code.py's runsource() into ipython to modify
1931 it a bit. Now the code object and source to be executed are
1940 it a bit. Now the code object and source to be executed are
1932 stored in ipython. This makes this info accessible to third-party
1941 stored in ipython. This makes this info accessible to third-party
1933 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1942 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1934 Mantegazza <mantegazza-AT-ill.fr>.
1943 Mantegazza <mantegazza-AT-ill.fr>.
1935
1944
1936 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1945 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1937 history-search via readline (like C-p/C-n). I'd wanted this for a
1946 history-search via readline (like C-p/C-n). I'd wanted this for a
1938 long time, but only recently found out how to do it. For users
1947 long time, but only recently found out how to do it. For users
1939 who already have their ipythonrc files made and want this, just
1948 who already have their ipythonrc files made and want this, just
1940 add:
1949 add:
1941
1950
1942 readline_parse_and_bind "\e[A": history-search-backward
1951 readline_parse_and_bind "\e[A": history-search-backward
1943 readline_parse_and_bind "\e[B": history-search-forward
1952 readline_parse_and_bind "\e[B": history-search-forward
1944
1953
1945 2005-03-18 Fernando Perez <fperez@colorado.edu>
1954 2005-03-18 Fernando Perez <fperez@colorado.edu>
1946
1955
1947 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1956 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1948 LSString and SList classes which allow transparent conversions
1957 LSString and SList classes which allow transparent conversions
1949 between list mode and whitespace-separated string.
1958 between list mode and whitespace-separated string.
1950 (magic_r): Fix recursion problem in %r.
1959 (magic_r): Fix recursion problem in %r.
1951
1960
1952 * IPython/genutils.py (LSString): New class to be used for
1961 * IPython/genutils.py (LSString): New class to be used for
1953 automatic storage of the results of all alias/system calls in _o
1962 automatic storage of the results of all alias/system calls in _o
1954 and _e (stdout/err). These provide a .l/.list attribute which
1963 and _e (stdout/err). These provide a .l/.list attribute which
1955 does automatic splitting on newlines. This means that for most
1964 does automatic splitting on newlines. This means that for most
1956 uses, you'll never need to do capturing of output with %sc/%sx
1965 uses, you'll never need to do capturing of output with %sc/%sx
1957 anymore, since ipython keeps this always done for you. Note that
1966 anymore, since ipython keeps this always done for you. Note that
1958 only the LAST results are stored, the _o/e variables are
1967 only the LAST results are stored, the _o/e variables are
1959 overwritten on each call. If you need to save their contents
1968 overwritten on each call. If you need to save their contents
1960 further, simply bind them to any other name.
1969 further, simply bind them to any other name.
1961
1970
1962 2005-03-17 Fernando Perez <fperez@colorado.edu>
1971 2005-03-17 Fernando Perez <fperez@colorado.edu>
1963
1972
1964 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1973 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1965 prompt namespace handling.
1974 prompt namespace handling.
1966
1975
1967 2005-03-16 Fernando Perez <fperez@colorado.edu>
1976 2005-03-16 Fernando Perez <fperez@colorado.edu>
1968
1977
1969 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1978 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1970 classic prompts to be '>>> ' (final space was missing, and it
1979 classic prompts to be '>>> ' (final space was missing, and it
1971 trips the emacs python mode).
1980 trips the emacs python mode).
1972 (BasePrompt.__str__): Added safe support for dynamic prompt
1981 (BasePrompt.__str__): Added safe support for dynamic prompt
1973 strings. Now you can set your prompt string to be '$x', and the
1982 strings. Now you can set your prompt string to be '$x', and the
1974 value of x will be printed from your interactive namespace. The
1983 value of x will be printed from your interactive namespace. The
1975 interpolation syntax includes the full Itpl support, so
1984 interpolation syntax includes the full Itpl support, so
1976 ${foo()+x+bar()} is a valid prompt string now, and the function
1985 ${foo()+x+bar()} is a valid prompt string now, and the function
1977 calls will be made at runtime.
1986 calls will be made at runtime.
1978
1987
1979 2005-03-15 Fernando Perez <fperez@colorado.edu>
1988 2005-03-15 Fernando Perez <fperez@colorado.edu>
1980
1989
1981 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1990 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1982 avoid name clashes in pylab. %hist still works, it just forwards
1991 avoid name clashes in pylab. %hist still works, it just forwards
1983 the call to %history.
1992 the call to %history.
1984
1993
1985 2005-03-02 *** Released version 0.6.12
1994 2005-03-02 *** Released version 0.6.12
1986
1995
1987 2005-03-02 Fernando Perez <fperez@colorado.edu>
1996 2005-03-02 Fernando Perez <fperez@colorado.edu>
1988
1997
1989 * IPython/iplib.py (handle_magic): log magic calls properly as
1998 * IPython/iplib.py (handle_magic): log magic calls properly as
1990 ipmagic() function calls.
1999 ipmagic() function calls.
1991
2000
1992 * IPython/Magic.py (magic_time): Improved %time to support
2001 * IPython/Magic.py (magic_time): Improved %time to support
1993 statements and provide wall-clock as well as CPU time.
2002 statements and provide wall-clock as well as CPU time.
1994
2003
1995 2005-02-27 Fernando Perez <fperez@colorado.edu>
2004 2005-02-27 Fernando Perez <fperez@colorado.edu>
1996
2005
1997 * IPython/hooks.py: New hooks module, to expose user-modifiable
2006 * IPython/hooks.py: New hooks module, to expose user-modifiable
1998 IPython functionality in a clean manner. For now only the editor
2007 IPython functionality in a clean manner. For now only the editor
1999 hook is actually written, and other thigns which I intend to turn
2008 hook is actually written, and other thigns which I intend to turn
2000 into proper hooks aren't yet there. The display and prefilter
2009 into proper hooks aren't yet there. The display and prefilter
2001 stuff, for example, should be hooks. But at least now the
2010 stuff, for example, should be hooks. But at least now the
2002 framework is in place, and the rest can be moved here with more
2011 framework is in place, and the rest can be moved here with more
2003 time later. IPython had had a .hooks variable for a long time for
2012 time later. IPython had had a .hooks variable for a long time for
2004 this purpose, but I'd never actually used it for anything.
2013 this purpose, but I'd never actually used it for anything.
2005
2014
2006 2005-02-26 Fernando Perez <fperez@colorado.edu>
2015 2005-02-26 Fernando Perez <fperez@colorado.edu>
2007
2016
2008 * IPython/ipmaker.py (make_IPython): make the default ipython
2017 * IPython/ipmaker.py (make_IPython): make the default ipython
2009 directory be called _ipython under win32, to follow more the
2018 directory be called _ipython under win32, to follow more the
2010 naming peculiarities of that platform (where buggy software like
2019 naming peculiarities of that platform (where buggy software like
2011 Visual Sourcesafe breaks with .named directories). Reported by
2020 Visual Sourcesafe breaks with .named directories). Reported by
2012 Ville Vainio.
2021 Ville Vainio.
2013
2022
2014 2005-02-23 Fernando Perez <fperez@colorado.edu>
2023 2005-02-23 Fernando Perez <fperez@colorado.edu>
2015
2024
2016 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2025 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2017 auto_aliases for win32 which were causing problems. Users can
2026 auto_aliases for win32 which were causing problems. Users can
2018 define the ones they personally like.
2027 define the ones they personally like.
2019
2028
2020 2005-02-21 Fernando Perez <fperez@colorado.edu>
2029 2005-02-21 Fernando Perez <fperez@colorado.edu>
2021
2030
2022 * IPython/Magic.py (magic_time): new magic to time execution of
2031 * IPython/Magic.py (magic_time): new magic to time execution of
2023 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2032 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2024
2033
2025 2005-02-19 Fernando Perez <fperez@colorado.edu>
2034 2005-02-19 Fernando Perez <fperez@colorado.edu>
2026
2035
2027 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2036 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2028 into keys (for prompts, for example).
2037 into keys (for prompts, for example).
2029
2038
2030 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2039 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2031 prompts in case users want them. This introduces a small behavior
2040 prompts in case users want them. This introduces a small behavior
2032 change: ipython does not automatically add a space to all prompts
2041 change: ipython does not automatically add a space to all prompts
2033 anymore. To get the old prompts with a space, users should add it
2042 anymore. To get the old prompts with a space, users should add it
2034 manually to their ipythonrc file, so for example prompt_in1 should
2043 manually to their ipythonrc file, so for example prompt_in1 should
2035 now read 'In [\#]: ' instead of 'In [\#]:'.
2044 now read 'In [\#]: ' instead of 'In [\#]:'.
2036 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2045 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2037 file) to control left-padding of secondary prompts.
2046 file) to control left-padding of secondary prompts.
2038
2047
2039 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2048 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2040 the profiler can't be imported. Fix for Debian, which removed
2049 the profiler can't be imported. Fix for Debian, which removed
2041 profile.py because of License issues. I applied a slightly
2050 profile.py because of License issues. I applied a slightly
2042 modified version of the original Debian patch at
2051 modified version of the original Debian patch at
2043 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2052 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2044
2053
2045 2005-02-17 Fernando Perez <fperez@colorado.edu>
2054 2005-02-17 Fernando Perez <fperez@colorado.edu>
2046
2055
2047 * IPython/genutils.py (native_line_ends): Fix bug which would
2056 * IPython/genutils.py (native_line_ends): Fix bug which would
2048 cause improper line-ends under win32 b/c I was not opening files
2057 cause improper line-ends under win32 b/c I was not opening files
2049 in binary mode. Bug report and fix thanks to Ville.
2058 in binary mode. Bug report and fix thanks to Ville.
2050
2059
2051 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2060 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2052 trying to catch spurious foo[1] autocalls. My fix actually broke
2061 trying to catch spurious foo[1] autocalls. My fix actually broke
2053 ',/' autoquote/call with explicit escape (bad regexp).
2062 ',/' autoquote/call with explicit escape (bad regexp).
2054
2063
2055 2005-02-15 *** Released version 0.6.11
2064 2005-02-15 *** Released version 0.6.11
2056
2065
2057 2005-02-14 Fernando Perez <fperez@colorado.edu>
2066 2005-02-14 Fernando Perez <fperez@colorado.edu>
2058
2067
2059 * IPython/background_jobs.py: New background job management
2068 * IPython/background_jobs.py: New background job management
2060 subsystem. This is implemented via a new set of classes, and
2069 subsystem. This is implemented via a new set of classes, and
2061 IPython now provides a builtin 'jobs' object for background job
2070 IPython now provides a builtin 'jobs' object for background job
2062 execution. A convenience %bg magic serves as a lightweight
2071 execution. A convenience %bg magic serves as a lightweight
2063 frontend for starting the more common type of calls. This was
2072 frontend for starting the more common type of calls. This was
2064 inspired by discussions with B. Granger and the BackgroundCommand
2073 inspired by discussions with B. Granger and the BackgroundCommand
2065 class described in the book Python Scripting for Computational
2074 class described in the book Python Scripting for Computational
2066 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2075 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2067 (although ultimately no code from this text was used, as IPython's
2076 (although ultimately no code from this text was used, as IPython's
2068 system is a separate implementation).
2077 system is a separate implementation).
2069
2078
2070 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2079 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2071 to control the completion of single/double underscore names
2080 to control the completion of single/double underscore names
2072 separately. As documented in the example ipytonrc file, the
2081 separately. As documented in the example ipytonrc file, the
2073 readline_omit__names variable can now be set to 2, to omit even
2082 readline_omit__names variable can now be set to 2, to omit even
2074 single underscore names. Thanks to a patch by Brian Wong
2083 single underscore names. Thanks to a patch by Brian Wong
2075 <BrianWong-AT-AirgoNetworks.Com>.
2084 <BrianWong-AT-AirgoNetworks.Com>.
2076 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2085 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2077 be autocalled as foo([1]) if foo were callable. A problem for
2086 be autocalled as foo([1]) if foo were callable. A problem for
2078 things which are both callable and implement __getitem__.
2087 things which are both callable and implement __getitem__.
2079 (init_readline): Fix autoindentation for win32. Thanks to a patch
2088 (init_readline): Fix autoindentation for win32. Thanks to a patch
2080 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2089 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2081
2090
2082 2005-02-12 Fernando Perez <fperez@colorado.edu>
2091 2005-02-12 Fernando Perez <fperez@colorado.edu>
2083
2092
2084 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2093 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2085 which I had written long ago to sort out user error messages which
2094 which I had written long ago to sort out user error messages which
2086 may occur during startup. This seemed like a good idea initially,
2095 may occur during startup. This seemed like a good idea initially,
2087 but it has proven a disaster in retrospect. I don't want to
2096 but it has proven a disaster in retrospect. I don't want to
2088 change much code for now, so my fix is to set the internal 'debug'
2097 change much code for now, so my fix is to set the internal 'debug'
2089 flag to true everywhere, whose only job was precisely to control
2098 flag to true everywhere, whose only job was precisely to control
2090 this subsystem. This closes issue 28 (as well as avoiding all
2099 this subsystem. This closes issue 28 (as well as avoiding all
2091 sorts of strange hangups which occur from time to time).
2100 sorts of strange hangups which occur from time to time).
2092
2101
2093 2005-02-07 Fernando Perez <fperez@colorado.edu>
2102 2005-02-07 Fernando Perez <fperez@colorado.edu>
2094
2103
2095 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2104 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2096 previous call produced a syntax error.
2105 previous call produced a syntax error.
2097
2106
2098 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2107 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2099 classes without constructor.
2108 classes without constructor.
2100
2109
2101 2005-02-06 Fernando Perez <fperez@colorado.edu>
2110 2005-02-06 Fernando Perez <fperez@colorado.edu>
2102
2111
2103 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2112 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2104 completions with the results of each matcher, so we return results
2113 completions with the results of each matcher, so we return results
2105 to the user from all namespaces. This breaks with ipython
2114 to the user from all namespaces. This breaks with ipython
2106 tradition, but I think it's a nicer behavior. Now you get all
2115 tradition, but I think it's a nicer behavior. Now you get all
2107 possible completions listed, from all possible namespaces (python,
2116 possible completions listed, from all possible namespaces (python,
2108 filesystem, magics...) After a request by John Hunter
2117 filesystem, magics...) After a request by John Hunter
2109 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2118 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2110
2119
2111 2005-02-05 Fernando Perez <fperez@colorado.edu>
2120 2005-02-05 Fernando Perez <fperez@colorado.edu>
2112
2121
2113 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2122 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2114 the call had quote characters in it (the quotes were stripped).
2123 the call had quote characters in it (the quotes were stripped).
2115
2124
2116 2005-01-31 Fernando Perez <fperez@colorado.edu>
2125 2005-01-31 Fernando Perez <fperez@colorado.edu>
2117
2126
2118 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2127 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2119 Itpl.itpl() to make the code more robust against psyco
2128 Itpl.itpl() to make the code more robust against psyco
2120 optimizations.
2129 optimizations.
2121
2130
2122 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2131 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2123 of causing an exception. Quicker, cleaner.
2132 of causing an exception. Quicker, cleaner.
2124
2133
2125 2005-01-28 Fernando Perez <fperez@colorado.edu>
2134 2005-01-28 Fernando Perez <fperez@colorado.edu>
2126
2135
2127 * scripts/ipython_win_post_install.py (install): hardcode
2136 * scripts/ipython_win_post_install.py (install): hardcode
2128 sys.prefix+'python.exe' as the executable path. It turns out that
2137 sys.prefix+'python.exe' as the executable path. It turns out that
2129 during the post-installation run, sys.executable resolves to the
2138 during the post-installation run, sys.executable resolves to the
2130 name of the binary installer! I should report this as a distutils
2139 name of the binary installer! I should report this as a distutils
2131 bug, I think. I updated the .10 release with this tiny fix, to
2140 bug, I think. I updated the .10 release with this tiny fix, to
2132 avoid annoying the lists further.
2141 avoid annoying the lists further.
2133
2142
2134 2005-01-27 *** Released version 0.6.10
2143 2005-01-27 *** Released version 0.6.10
2135
2144
2136 2005-01-27 Fernando Perez <fperez@colorado.edu>
2145 2005-01-27 Fernando Perez <fperez@colorado.edu>
2137
2146
2138 * IPython/numutils.py (norm): Added 'inf' as optional name for
2147 * IPython/numutils.py (norm): Added 'inf' as optional name for
2139 L-infinity norm, included references to mathworld.com for vector
2148 L-infinity norm, included references to mathworld.com for vector
2140 norm definitions.
2149 norm definitions.
2141 (amin/amax): added amin/amax for array min/max. Similar to what
2150 (amin/amax): added amin/amax for array min/max. Similar to what
2142 pylab ships with after the recent reorganization of names.
2151 pylab ships with after the recent reorganization of names.
2143 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2152 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2144
2153
2145 * ipython.el: committed Alex's recent fixes and improvements.
2154 * ipython.el: committed Alex's recent fixes and improvements.
2146 Tested with python-mode from CVS, and it looks excellent. Since
2155 Tested with python-mode from CVS, and it looks excellent. Since
2147 python-mode hasn't released anything in a while, I'm temporarily
2156 python-mode hasn't released anything in a while, I'm temporarily
2148 putting a copy of today's CVS (v 4.70) of python-mode in:
2157 putting a copy of today's CVS (v 4.70) of python-mode in:
2149 http://ipython.scipy.org/tmp/python-mode.el
2158 http://ipython.scipy.org/tmp/python-mode.el
2150
2159
2151 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2160 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2152 sys.executable for the executable name, instead of assuming it's
2161 sys.executable for the executable name, instead of assuming it's
2153 called 'python.exe' (the post-installer would have produced broken
2162 called 'python.exe' (the post-installer would have produced broken
2154 setups on systems with a differently named python binary).
2163 setups on systems with a differently named python binary).
2155
2164
2156 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2165 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2157 references to os.linesep, to make the code more
2166 references to os.linesep, to make the code more
2158 platform-independent. This is also part of the win32 coloring
2167 platform-independent. This is also part of the win32 coloring
2159 fixes.
2168 fixes.
2160
2169
2161 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2170 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2162 lines, which actually cause coloring bugs because the length of
2171 lines, which actually cause coloring bugs because the length of
2163 the line is very difficult to correctly compute with embedded
2172 the line is very difficult to correctly compute with embedded
2164 escapes. This was the source of all the coloring problems under
2173 escapes. This was the source of all the coloring problems under
2165 Win32. I think that _finally_, Win32 users have a properly
2174 Win32. I think that _finally_, Win32 users have a properly
2166 working ipython in all respects. This would never have happened
2175 working ipython in all respects. This would never have happened
2167 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2176 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2168
2177
2169 2005-01-26 *** Released version 0.6.9
2178 2005-01-26 *** Released version 0.6.9
2170
2179
2171 2005-01-25 Fernando Perez <fperez@colorado.edu>
2180 2005-01-25 Fernando Perez <fperez@colorado.edu>
2172
2181
2173 * setup.py: finally, we have a true Windows installer, thanks to
2182 * setup.py: finally, we have a true Windows installer, thanks to
2174 the excellent work of Viktor Ransmayr
2183 the excellent work of Viktor Ransmayr
2175 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2184 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2176 Windows users. The setup routine is quite a bit cleaner thanks to
2185 Windows users. The setup routine is quite a bit cleaner thanks to
2177 this, and the post-install script uses the proper functions to
2186 this, and the post-install script uses the proper functions to
2178 allow a clean de-installation using the standard Windows Control
2187 allow a clean de-installation using the standard Windows Control
2179 Panel.
2188 Panel.
2180
2189
2181 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2190 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2182 environment variable under all OSes (including win32) if
2191 environment variable under all OSes (including win32) if
2183 available. This will give consistency to win32 users who have set
2192 available. This will give consistency to win32 users who have set
2184 this variable for any reason. If os.environ['HOME'] fails, the
2193 this variable for any reason. If os.environ['HOME'] fails, the
2185 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2194 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2186
2195
2187 2005-01-24 Fernando Perez <fperez@colorado.edu>
2196 2005-01-24 Fernando Perez <fperez@colorado.edu>
2188
2197
2189 * IPython/numutils.py (empty_like): add empty_like(), similar to
2198 * IPython/numutils.py (empty_like): add empty_like(), similar to
2190 zeros_like() but taking advantage of the new empty() Numeric routine.
2199 zeros_like() but taking advantage of the new empty() Numeric routine.
2191
2200
2192 2005-01-23 *** Released version 0.6.8
2201 2005-01-23 *** Released version 0.6.8
2193
2202
2194 2005-01-22 Fernando Perez <fperez@colorado.edu>
2203 2005-01-22 Fernando Perez <fperez@colorado.edu>
2195
2204
2196 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2205 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2197 automatic show() calls. After discussing things with JDH, it
2206 automatic show() calls. After discussing things with JDH, it
2198 turns out there are too many corner cases where this can go wrong.
2207 turns out there are too many corner cases where this can go wrong.
2199 It's best not to try to be 'too smart', and simply have ipython
2208 It's best not to try to be 'too smart', and simply have ipython
2200 reproduce as much as possible the default behavior of a normal
2209 reproduce as much as possible the default behavior of a normal
2201 python shell.
2210 python shell.
2202
2211
2203 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2212 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2204 line-splitting regexp and _prefilter() to avoid calling getattr()
2213 line-splitting regexp and _prefilter() to avoid calling getattr()
2205 on assignments. This closes
2214 on assignments. This closes
2206 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2215 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2207 readline uses getattr(), so a simple <TAB> keypress is still
2216 readline uses getattr(), so a simple <TAB> keypress is still
2208 enough to trigger getattr() calls on an object.
2217 enough to trigger getattr() calls on an object.
2209
2218
2210 2005-01-21 Fernando Perez <fperez@colorado.edu>
2219 2005-01-21 Fernando Perez <fperez@colorado.edu>
2211
2220
2212 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2221 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2213 docstring under pylab so it doesn't mask the original.
2222 docstring under pylab so it doesn't mask the original.
2214
2223
2215 2005-01-21 *** Released version 0.6.7
2224 2005-01-21 *** Released version 0.6.7
2216
2225
2217 2005-01-21 Fernando Perez <fperez@colorado.edu>
2226 2005-01-21 Fernando Perez <fperez@colorado.edu>
2218
2227
2219 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2228 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2220 signal handling for win32 users in multithreaded mode.
2229 signal handling for win32 users in multithreaded mode.
2221
2230
2222 2005-01-17 Fernando Perez <fperez@colorado.edu>
2231 2005-01-17 Fernando Perez <fperez@colorado.edu>
2223
2232
2224 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2233 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2225 instances with no __init__. After a crash report by Norbert Nemec
2234 instances with no __init__. After a crash report by Norbert Nemec
2226 <Norbert-AT-nemec-online.de>.
2235 <Norbert-AT-nemec-online.de>.
2227
2236
2228 2005-01-14 Fernando Perez <fperez@colorado.edu>
2237 2005-01-14 Fernando Perez <fperez@colorado.edu>
2229
2238
2230 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2239 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2231 names for verbose exceptions, when multiple dotted names and the
2240 names for verbose exceptions, when multiple dotted names and the
2232 'parent' object were present on the same line.
2241 'parent' object were present on the same line.
2233
2242
2234 2005-01-11 Fernando Perez <fperez@colorado.edu>
2243 2005-01-11 Fernando Perez <fperez@colorado.edu>
2235
2244
2236 * IPython/genutils.py (flag_calls): new utility to trap and flag
2245 * IPython/genutils.py (flag_calls): new utility to trap and flag
2237 calls in functions. I need it to clean up matplotlib support.
2246 calls in functions. I need it to clean up matplotlib support.
2238 Also removed some deprecated code in genutils.
2247 Also removed some deprecated code in genutils.
2239
2248
2240 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2249 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2241 that matplotlib scripts called with %run, which don't call show()
2250 that matplotlib scripts called with %run, which don't call show()
2242 themselves, still have their plotting windows open.
2251 themselves, still have their plotting windows open.
2243
2252
2244 2005-01-05 Fernando Perez <fperez@colorado.edu>
2253 2005-01-05 Fernando Perez <fperez@colorado.edu>
2245
2254
2246 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2255 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2247 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2256 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2248
2257
2249 2004-12-19 Fernando Perez <fperez@colorado.edu>
2258 2004-12-19 Fernando Perez <fperez@colorado.edu>
2250
2259
2251 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2260 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2252 parent_runcode, which was an eyesore. The same result can be
2261 parent_runcode, which was an eyesore. The same result can be
2253 obtained with Python's regular superclass mechanisms.
2262 obtained with Python's regular superclass mechanisms.
2254
2263
2255 2004-12-17 Fernando Perez <fperez@colorado.edu>
2264 2004-12-17 Fernando Perez <fperez@colorado.edu>
2256
2265
2257 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2266 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2258 reported by Prabhu.
2267 reported by Prabhu.
2259 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2268 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2260 sys.stderr) instead of explicitly calling sys.stderr. This helps
2269 sys.stderr) instead of explicitly calling sys.stderr. This helps
2261 maintain our I/O abstractions clean, for future GUI embeddings.
2270 maintain our I/O abstractions clean, for future GUI embeddings.
2262
2271
2263 * IPython/genutils.py (info): added new utility for sys.stderr
2272 * IPython/genutils.py (info): added new utility for sys.stderr
2264 unified info message handling (thin wrapper around warn()).
2273 unified info message handling (thin wrapper around warn()).
2265
2274
2266 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2275 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2267 composite (dotted) names on verbose exceptions.
2276 composite (dotted) names on verbose exceptions.
2268 (VerboseTB.nullrepr): harden against another kind of errors which
2277 (VerboseTB.nullrepr): harden against another kind of errors which
2269 Python's inspect module can trigger, and which were crashing
2278 Python's inspect module can trigger, and which were crashing
2270 IPython. Thanks to a report by Marco Lombardi
2279 IPython. Thanks to a report by Marco Lombardi
2271 <mlombard-AT-ma010192.hq.eso.org>.
2280 <mlombard-AT-ma010192.hq.eso.org>.
2272
2281
2273 2004-12-13 *** Released version 0.6.6
2282 2004-12-13 *** Released version 0.6.6
2274
2283
2275 2004-12-12 Fernando Perez <fperez@colorado.edu>
2284 2004-12-12 Fernando Perez <fperez@colorado.edu>
2276
2285
2277 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2286 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2278 generated by pygtk upon initialization if it was built without
2287 generated by pygtk upon initialization if it was built without
2279 threads (for matplotlib users). After a crash reported by
2288 threads (for matplotlib users). After a crash reported by
2280 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2289 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2281
2290
2282 * IPython/ipmaker.py (make_IPython): fix small bug in the
2291 * IPython/ipmaker.py (make_IPython): fix small bug in the
2283 import_some parameter for multiple imports.
2292 import_some parameter for multiple imports.
2284
2293
2285 * IPython/iplib.py (ipmagic): simplified the interface of
2294 * IPython/iplib.py (ipmagic): simplified the interface of
2286 ipmagic() to take a single string argument, just as it would be
2295 ipmagic() to take a single string argument, just as it would be
2287 typed at the IPython cmd line.
2296 typed at the IPython cmd line.
2288 (ipalias): Added new ipalias() with an interface identical to
2297 (ipalias): Added new ipalias() with an interface identical to
2289 ipmagic(). This completes exposing a pure python interface to the
2298 ipmagic(). This completes exposing a pure python interface to the
2290 alias and magic system, which can be used in loops or more complex
2299 alias and magic system, which can be used in loops or more complex
2291 code where IPython's automatic line mangling is not active.
2300 code where IPython's automatic line mangling is not active.
2292
2301
2293 * IPython/genutils.py (timing): changed interface of timing to
2302 * IPython/genutils.py (timing): changed interface of timing to
2294 simply run code once, which is the most common case. timings()
2303 simply run code once, which is the most common case. timings()
2295 remains unchanged, for the cases where you want multiple runs.
2304 remains unchanged, for the cases where you want multiple runs.
2296
2305
2297 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2306 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2298 bug where Python2.2 crashes with exec'ing code which does not end
2307 bug where Python2.2 crashes with exec'ing code which does not end
2299 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2308 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2300 before.
2309 before.
2301
2310
2302 2004-12-10 Fernando Perez <fperez@colorado.edu>
2311 2004-12-10 Fernando Perez <fperez@colorado.edu>
2303
2312
2304 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2313 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2305 -t to -T, to accomodate the new -t flag in %run (the %run and
2314 -t to -T, to accomodate the new -t flag in %run (the %run and
2306 %prun options are kind of intermixed, and it's not easy to change
2315 %prun options are kind of intermixed, and it's not easy to change
2307 this with the limitations of python's getopt).
2316 this with the limitations of python's getopt).
2308
2317
2309 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2318 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2310 the execution of scripts. It's not as fine-tuned as timeit.py,
2319 the execution of scripts. It's not as fine-tuned as timeit.py,
2311 but it works from inside ipython (and under 2.2, which lacks
2320 but it works from inside ipython (and under 2.2, which lacks
2312 timeit.py). Optionally a number of runs > 1 can be given for
2321 timeit.py). Optionally a number of runs > 1 can be given for
2313 timing very short-running code.
2322 timing very short-running code.
2314
2323
2315 * IPython/genutils.py (uniq_stable): new routine which returns a
2324 * IPython/genutils.py (uniq_stable): new routine which returns a
2316 list of unique elements in any iterable, but in stable order of
2325 list of unique elements in any iterable, but in stable order of
2317 appearance. I needed this for the ultraTB fixes, and it's a handy
2326 appearance. I needed this for the ultraTB fixes, and it's a handy
2318 utility.
2327 utility.
2319
2328
2320 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2329 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2321 dotted names in Verbose exceptions. This had been broken since
2330 dotted names in Verbose exceptions. This had been broken since
2322 the very start, now x.y will properly be printed in a Verbose
2331 the very start, now x.y will properly be printed in a Verbose
2323 traceback, instead of x being shown and y appearing always as an
2332 traceback, instead of x being shown and y appearing always as an
2324 'undefined global'. Getting this to work was a bit tricky,
2333 'undefined global'. Getting this to work was a bit tricky,
2325 because by default python tokenizers are stateless. Saved by
2334 because by default python tokenizers are stateless. Saved by
2326 python's ability to easily add a bit of state to an arbitrary
2335 python's ability to easily add a bit of state to an arbitrary
2327 function (without needing to build a full-blown callable object).
2336 function (without needing to build a full-blown callable object).
2328
2337
2329 Also big cleanup of this code, which had horrendous runtime
2338 Also big cleanup of this code, which had horrendous runtime
2330 lookups of zillions of attributes for colorization. Moved all
2339 lookups of zillions of attributes for colorization. Moved all
2331 this code into a few templates, which make it cleaner and quicker.
2340 this code into a few templates, which make it cleaner and quicker.
2332
2341
2333 Printout quality was also improved for Verbose exceptions: one
2342 Printout quality was also improved for Verbose exceptions: one
2334 variable per line, and memory addresses are printed (this can be
2343 variable per line, and memory addresses are printed (this can be
2335 quite handy in nasty debugging situations, which is what Verbose
2344 quite handy in nasty debugging situations, which is what Verbose
2336 is for).
2345 is for).
2337
2346
2338 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2347 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2339 the command line as scripts to be loaded by embedded instances.
2348 the command line as scripts to be loaded by embedded instances.
2340 Doing so has the potential for an infinite recursion if there are
2349 Doing so has the potential for an infinite recursion if there are
2341 exceptions thrown in the process. This fixes a strange crash
2350 exceptions thrown in the process. This fixes a strange crash
2342 reported by Philippe MULLER <muller-AT-irit.fr>.
2351 reported by Philippe MULLER <muller-AT-irit.fr>.
2343
2352
2344 2004-12-09 Fernando Perez <fperez@colorado.edu>
2353 2004-12-09 Fernando Perez <fperez@colorado.edu>
2345
2354
2346 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2355 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2347 to reflect new names in matplotlib, which now expose the
2356 to reflect new names in matplotlib, which now expose the
2348 matlab-compatible interface via a pylab module instead of the
2357 matlab-compatible interface via a pylab module instead of the
2349 'matlab' name. The new code is backwards compatible, so users of
2358 'matlab' name. The new code is backwards compatible, so users of
2350 all matplotlib versions are OK. Patch by J. Hunter.
2359 all matplotlib versions are OK. Patch by J. Hunter.
2351
2360
2352 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2361 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2353 of __init__ docstrings for instances (class docstrings are already
2362 of __init__ docstrings for instances (class docstrings are already
2354 automatically printed). Instances with customized docstrings
2363 automatically printed). Instances with customized docstrings
2355 (indep. of the class) are also recognized and all 3 separate
2364 (indep. of the class) are also recognized and all 3 separate
2356 docstrings are printed (instance, class, constructor). After some
2365 docstrings are printed (instance, class, constructor). After some
2357 comments/suggestions by J. Hunter.
2366 comments/suggestions by J. Hunter.
2358
2367
2359 2004-12-05 Fernando Perez <fperez@colorado.edu>
2368 2004-12-05 Fernando Perez <fperez@colorado.edu>
2360
2369
2361 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2370 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2362 warnings when tab-completion fails and triggers an exception.
2371 warnings when tab-completion fails and triggers an exception.
2363
2372
2364 2004-12-03 Fernando Perez <fperez@colorado.edu>
2373 2004-12-03 Fernando Perez <fperez@colorado.edu>
2365
2374
2366 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2375 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2367 be triggered when using 'run -p'. An incorrect option flag was
2376 be triggered when using 'run -p'. An incorrect option flag was
2368 being set ('d' instead of 'D').
2377 being set ('d' instead of 'D').
2369 (manpage): fix missing escaped \- sign.
2378 (manpage): fix missing escaped \- sign.
2370
2379
2371 2004-11-30 *** Released version 0.6.5
2380 2004-11-30 *** Released version 0.6.5
2372
2381
2373 2004-11-30 Fernando Perez <fperez@colorado.edu>
2382 2004-11-30 Fernando Perez <fperez@colorado.edu>
2374
2383
2375 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2384 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2376 setting with -d option.
2385 setting with -d option.
2377
2386
2378 * setup.py (docfiles): Fix problem where the doc glob I was using
2387 * setup.py (docfiles): Fix problem where the doc glob I was using
2379 was COMPLETELY BROKEN. It was giving the right files by pure
2388 was COMPLETELY BROKEN. It was giving the right files by pure
2380 accident, but failed once I tried to include ipython.el. Note:
2389 accident, but failed once I tried to include ipython.el. Note:
2381 glob() does NOT allow you to do exclusion on multiple endings!
2390 glob() does NOT allow you to do exclusion on multiple endings!
2382
2391
2383 2004-11-29 Fernando Perez <fperez@colorado.edu>
2392 2004-11-29 Fernando Perez <fperez@colorado.edu>
2384
2393
2385 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2394 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2386 the manpage as the source. Better formatting & consistency.
2395 the manpage as the source. Better formatting & consistency.
2387
2396
2388 * IPython/Magic.py (magic_run): Added new -d option, to run
2397 * IPython/Magic.py (magic_run): Added new -d option, to run
2389 scripts under the control of the python pdb debugger. Note that
2398 scripts under the control of the python pdb debugger. Note that
2390 this required changing the %prun option -d to -D, to avoid a clash
2399 this required changing the %prun option -d to -D, to avoid a clash
2391 (since %run must pass options to %prun, and getopt is too dumb to
2400 (since %run must pass options to %prun, and getopt is too dumb to
2392 handle options with string values with embedded spaces). Thanks
2401 handle options with string values with embedded spaces). Thanks
2393 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2402 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2394 (magic_who_ls): added type matching to %who and %whos, so that one
2403 (magic_who_ls): added type matching to %who and %whos, so that one
2395 can filter their output to only include variables of certain
2404 can filter their output to only include variables of certain
2396 types. Another suggestion by Matthew.
2405 types. Another suggestion by Matthew.
2397 (magic_whos): Added memory summaries in kb and Mb for arrays.
2406 (magic_whos): Added memory summaries in kb and Mb for arrays.
2398 (magic_who): Improve formatting (break lines every 9 vars).
2407 (magic_who): Improve formatting (break lines every 9 vars).
2399
2408
2400 2004-11-28 Fernando Perez <fperez@colorado.edu>
2409 2004-11-28 Fernando Perez <fperez@colorado.edu>
2401
2410
2402 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2411 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2403 cache when empty lines were present.
2412 cache when empty lines were present.
2404
2413
2405 2004-11-24 Fernando Perez <fperez@colorado.edu>
2414 2004-11-24 Fernando Perez <fperez@colorado.edu>
2406
2415
2407 * IPython/usage.py (__doc__): document the re-activated threading
2416 * IPython/usage.py (__doc__): document the re-activated threading
2408 options for WX and GTK.
2417 options for WX and GTK.
2409
2418
2410 2004-11-23 Fernando Perez <fperez@colorado.edu>
2419 2004-11-23 Fernando Perez <fperez@colorado.edu>
2411
2420
2412 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2421 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2413 the -wthread and -gthread options, along with a new -tk one to try
2422 the -wthread and -gthread options, along with a new -tk one to try
2414 and coordinate Tk threading with wx/gtk. The tk support is very
2423 and coordinate Tk threading with wx/gtk. The tk support is very
2415 platform dependent, since it seems to require Tcl and Tk to be
2424 platform dependent, since it seems to require Tcl and Tk to be
2416 built with threads (Fedora1/2 appears NOT to have it, but in
2425 built with threads (Fedora1/2 appears NOT to have it, but in
2417 Prabhu's Debian boxes it works OK). But even with some Tk
2426 Prabhu's Debian boxes it works OK). But even with some Tk
2418 limitations, this is a great improvement.
2427 limitations, this is a great improvement.
2419
2428
2420 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2429 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2421 info in user prompts. Patch by Prabhu.
2430 info in user prompts. Patch by Prabhu.
2422
2431
2423 2004-11-18 Fernando Perez <fperez@colorado.edu>
2432 2004-11-18 Fernando Perez <fperez@colorado.edu>
2424
2433
2425 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2434 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2426 EOFErrors and bail, to avoid infinite loops if a non-terminating
2435 EOFErrors and bail, to avoid infinite loops if a non-terminating
2427 file is fed into ipython. Patch submitted in issue 19 by user,
2436 file is fed into ipython. Patch submitted in issue 19 by user,
2428 many thanks.
2437 many thanks.
2429
2438
2430 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2439 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2431 autoquote/parens in continuation prompts, which can cause lots of
2440 autoquote/parens in continuation prompts, which can cause lots of
2432 problems. Closes roundup issue 20.
2441 problems. Closes roundup issue 20.
2433
2442
2434 2004-11-17 Fernando Perez <fperez@colorado.edu>
2443 2004-11-17 Fernando Perez <fperez@colorado.edu>
2435
2444
2436 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2445 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2437 reported as debian bug #280505. I'm not sure my local changelog
2446 reported as debian bug #280505. I'm not sure my local changelog
2438 entry has the proper debian format (Jack?).
2447 entry has the proper debian format (Jack?).
2439
2448
2440 2004-11-08 *** Released version 0.6.4
2449 2004-11-08 *** Released version 0.6.4
2441
2450
2442 2004-11-08 Fernando Perez <fperez@colorado.edu>
2451 2004-11-08 Fernando Perez <fperez@colorado.edu>
2443
2452
2444 * IPython/iplib.py (init_readline): Fix exit message for Windows
2453 * IPython/iplib.py (init_readline): Fix exit message for Windows
2445 when readline is active. Thanks to a report by Eric Jones
2454 when readline is active. Thanks to a report by Eric Jones
2446 <eric-AT-enthought.com>.
2455 <eric-AT-enthought.com>.
2447
2456
2448 2004-11-07 Fernando Perez <fperez@colorado.edu>
2457 2004-11-07 Fernando Perez <fperez@colorado.edu>
2449
2458
2450 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2459 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2451 sometimes seen by win2k/cygwin users.
2460 sometimes seen by win2k/cygwin users.
2452
2461
2453 2004-11-06 Fernando Perez <fperez@colorado.edu>
2462 2004-11-06 Fernando Perez <fperez@colorado.edu>
2454
2463
2455 * IPython/iplib.py (interact): Change the handling of %Exit from
2464 * IPython/iplib.py (interact): Change the handling of %Exit from
2456 trying to propagate a SystemExit to an internal ipython flag.
2465 trying to propagate a SystemExit to an internal ipython flag.
2457 This is less elegant than using Python's exception mechanism, but
2466 This is less elegant than using Python's exception mechanism, but
2458 I can't get that to work reliably with threads, so under -pylab
2467 I can't get that to work reliably with threads, so under -pylab
2459 %Exit was hanging IPython. Cross-thread exception handling is
2468 %Exit was hanging IPython. Cross-thread exception handling is
2460 really a bitch. Thaks to a bug report by Stephen Walton
2469 really a bitch. Thaks to a bug report by Stephen Walton
2461 <stephen.walton-AT-csun.edu>.
2470 <stephen.walton-AT-csun.edu>.
2462
2471
2463 2004-11-04 Fernando Perez <fperez@colorado.edu>
2472 2004-11-04 Fernando Perez <fperez@colorado.edu>
2464
2473
2465 * IPython/iplib.py (raw_input_original): store a pointer to the
2474 * IPython/iplib.py (raw_input_original): store a pointer to the
2466 true raw_input to harden against code which can modify it
2475 true raw_input to harden against code which can modify it
2467 (wx.py.PyShell does this and would otherwise crash ipython).
2476 (wx.py.PyShell does this and would otherwise crash ipython).
2468 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2477 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2469
2478
2470 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2479 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2471 Ctrl-C problem, which does not mess up the input line.
2480 Ctrl-C problem, which does not mess up the input line.
2472
2481
2473 2004-11-03 Fernando Perez <fperez@colorado.edu>
2482 2004-11-03 Fernando Perez <fperez@colorado.edu>
2474
2483
2475 * IPython/Release.py: Changed licensing to BSD, in all files.
2484 * IPython/Release.py: Changed licensing to BSD, in all files.
2476 (name): lowercase name for tarball/RPM release.
2485 (name): lowercase name for tarball/RPM release.
2477
2486
2478 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2487 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2479 use throughout ipython.
2488 use throughout ipython.
2480
2489
2481 * IPython/Magic.py (Magic._ofind): Switch to using the new
2490 * IPython/Magic.py (Magic._ofind): Switch to using the new
2482 OInspect.getdoc() function.
2491 OInspect.getdoc() function.
2483
2492
2484 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2493 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2485 of the line currently being canceled via Ctrl-C. It's extremely
2494 of the line currently being canceled via Ctrl-C. It's extremely
2486 ugly, but I don't know how to do it better (the problem is one of
2495 ugly, but I don't know how to do it better (the problem is one of
2487 handling cross-thread exceptions).
2496 handling cross-thread exceptions).
2488
2497
2489 2004-10-28 Fernando Perez <fperez@colorado.edu>
2498 2004-10-28 Fernando Perez <fperez@colorado.edu>
2490
2499
2491 * IPython/Shell.py (signal_handler): add signal handlers to trap
2500 * IPython/Shell.py (signal_handler): add signal handlers to trap
2492 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2501 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2493 report by Francesc Alted.
2502 report by Francesc Alted.
2494
2503
2495 2004-10-21 Fernando Perez <fperez@colorado.edu>
2504 2004-10-21 Fernando Perez <fperez@colorado.edu>
2496
2505
2497 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2506 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2498 to % for pysh syntax extensions.
2507 to % for pysh syntax extensions.
2499
2508
2500 2004-10-09 Fernando Perez <fperez@colorado.edu>
2509 2004-10-09 Fernando Perez <fperez@colorado.edu>
2501
2510
2502 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2511 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2503 arrays to print a more useful summary, without calling str(arr).
2512 arrays to print a more useful summary, without calling str(arr).
2504 This avoids the problem of extremely lengthy computations which
2513 This avoids the problem of extremely lengthy computations which
2505 occur if arr is large, and appear to the user as a system lockup
2514 occur if arr is large, and appear to the user as a system lockup
2506 with 100% cpu activity. After a suggestion by Kristian Sandberg
2515 with 100% cpu activity. After a suggestion by Kristian Sandberg
2507 <Kristian.Sandberg@colorado.edu>.
2516 <Kristian.Sandberg@colorado.edu>.
2508 (Magic.__init__): fix bug in global magic escapes not being
2517 (Magic.__init__): fix bug in global magic escapes not being
2509 correctly set.
2518 correctly set.
2510
2519
2511 2004-10-08 Fernando Perez <fperez@colorado.edu>
2520 2004-10-08 Fernando Perez <fperez@colorado.edu>
2512
2521
2513 * IPython/Magic.py (__license__): change to absolute imports of
2522 * IPython/Magic.py (__license__): change to absolute imports of
2514 ipython's own internal packages, to start adapting to the absolute
2523 ipython's own internal packages, to start adapting to the absolute
2515 import requirement of PEP-328.
2524 import requirement of PEP-328.
2516
2525
2517 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2526 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2518 files, and standardize author/license marks through the Release
2527 files, and standardize author/license marks through the Release
2519 module instead of having per/file stuff (except for files with
2528 module instead of having per/file stuff (except for files with
2520 particular licenses, like the MIT/PSF-licensed codes).
2529 particular licenses, like the MIT/PSF-licensed codes).
2521
2530
2522 * IPython/Debugger.py: remove dead code for python 2.1
2531 * IPython/Debugger.py: remove dead code for python 2.1
2523
2532
2524 2004-10-04 Fernando Perez <fperez@colorado.edu>
2533 2004-10-04 Fernando Perez <fperez@colorado.edu>
2525
2534
2526 * IPython/iplib.py (ipmagic): New function for accessing magics
2535 * IPython/iplib.py (ipmagic): New function for accessing magics
2527 via a normal python function call.
2536 via a normal python function call.
2528
2537
2529 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2538 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2530 from '@' to '%', to accomodate the new @decorator syntax of python
2539 from '@' to '%', to accomodate the new @decorator syntax of python
2531 2.4.
2540 2.4.
2532
2541
2533 2004-09-29 Fernando Perez <fperez@colorado.edu>
2542 2004-09-29 Fernando Perez <fperez@colorado.edu>
2534
2543
2535 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2544 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2536 matplotlib.use to prevent running scripts which try to switch
2545 matplotlib.use to prevent running scripts which try to switch
2537 interactive backends from within ipython. This will just crash
2546 interactive backends from within ipython. This will just crash
2538 the python interpreter, so we can't allow it (but a detailed error
2547 the python interpreter, so we can't allow it (but a detailed error
2539 is given to the user).
2548 is given to the user).
2540
2549
2541 2004-09-28 Fernando Perez <fperez@colorado.edu>
2550 2004-09-28 Fernando Perez <fperez@colorado.edu>
2542
2551
2543 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2552 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2544 matplotlib-related fixes so that using @run with non-matplotlib
2553 matplotlib-related fixes so that using @run with non-matplotlib
2545 scripts doesn't pop up spurious plot windows. This requires
2554 scripts doesn't pop up spurious plot windows. This requires
2546 matplotlib >= 0.63, where I had to make some changes as well.
2555 matplotlib >= 0.63, where I had to make some changes as well.
2547
2556
2548 * IPython/ipmaker.py (make_IPython): update version requirement to
2557 * IPython/ipmaker.py (make_IPython): update version requirement to
2549 python 2.2.
2558 python 2.2.
2550
2559
2551 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2560 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2552 banner arg for embedded customization.
2561 banner arg for embedded customization.
2553
2562
2554 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2563 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2555 explicit uses of __IP as the IPython's instance name. Now things
2564 explicit uses of __IP as the IPython's instance name. Now things
2556 are properly handled via the shell.name value. The actual code
2565 are properly handled via the shell.name value. The actual code
2557 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2566 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2558 is much better than before. I'll clean things completely when the
2567 is much better than before. I'll clean things completely when the
2559 magic stuff gets a real overhaul.
2568 magic stuff gets a real overhaul.
2560
2569
2561 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2570 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2562 minor changes to debian dir.
2571 minor changes to debian dir.
2563
2572
2564 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2573 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2565 pointer to the shell itself in the interactive namespace even when
2574 pointer to the shell itself in the interactive namespace even when
2566 a user-supplied dict is provided. This is needed for embedding
2575 a user-supplied dict is provided. This is needed for embedding
2567 purposes (found by tests with Michel Sanner).
2576 purposes (found by tests with Michel Sanner).
2568
2577
2569 2004-09-27 Fernando Perez <fperez@colorado.edu>
2578 2004-09-27 Fernando Perez <fperez@colorado.edu>
2570
2579
2571 * IPython/UserConfig/ipythonrc: remove []{} from
2580 * IPython/UserConfig/ipythonrc: remove []{} from
2572 readline_remove_delims, so that things like [modname.<TAB> do
2581 readline_remove_delims, so that things like [modname.<TAB> do
2573 proper completion. This disables [].TAB, but that's a less common
2582 proper completion. This disables [].TAB, but that's a less common
2574 case than module names in list comprehensions, for example.
2583 case than module names in list comprehensions, for example.
2575 Thanks to a report by Andrea Riciputi.
2584 Thanks to a report by Andrea Riciputi.
2576
2585
2577 2004-09-09 Fernando Perez <fperez@colorado.edu>
2586 2004-09-09 Fernando Perez <fperez@colorado.edu>
2578
2587
2579 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2588 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2580 blocking problems in win32 and osx. Fix by John.
2589 blocking problems in win32 and osx. Fix by John.
2581
2590
2582 2004-09-08 Fernando Perez <fperez@colorado.edu>
2591 2004-09-08 Fernando Perez <fperez@colorado.edu>
2583
2592
2584 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2593 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2585 for Win32 and OSX. Fix by John Hunter.
2594 for Win32 and OSX. Fix by John Hunter.
2586
2595
2587 2004-08-30 *** Released version 0.6.3
2596 2004-08-30 *** Released version 0.6.3
2588
2597
2589 2004-08-30 Fernando Perez <fperez@colorado.edu>
2598 2004-08-30 Fernando Perez <fperez@colorado.edu>
2590
2599
2591 * setup.py (isfile): Add manpages to list of dependent files to be
2600 * setup.py (isfile): Add manpages to list of dependent files to be
2592 updated.
2601 updated.
2593
2602
2594 2004-08-27 Fernando Perez <fperez@colorado.edu>
2603 2004-08-27 Fernando Perez <fperez@colorado.edu>
2595
2604
2596 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2605 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2597 for now. They don't really work with standalone WX/GTK code
2606 for now. They don't really work with standalone WX/GTK code
2598 (though matplotlib IS working fine with both of those backends).
2607 (though matplotlib IS working fine with both of those backends).
2599 This will neeed much more testing. I disabled most things with
2608 This will neeed much more testing. I disabled most things with
2600 comments, so turning it back on later should be pretty easy.
2609 comments, so turning it back on later should be pretty easy.
2601
2610
2602 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2611 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2603 autocalling of expressions like r'foo', by modifying the line
2612 autocalling of expressions like r'foo', by modifying the line
2604 split regexp. Closes
2613 split regexp. Closes
2605 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2614 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2606 Riley <ipythonbugs-AT-sabi.net>.
2615 Riley <ipythonbugs-AT-sabi.net>.
2607 (InteractiveShell.mainloop): honor --nobanner with banner
2616 (InteractiveShell.mainloop): honor --nobanner with banner
2608 extensions.
2617 extensions.
2609
2618
2610 * IPython/Shell.py: Significant refactoring of all classes, so
2619 * IPython/Shell.py: Significant refactoring of all classes, so
2611 that we can really support ALL matplotlib backends and threading
2620 that we can really support ALL matplotlib backends and threading
2612 models (John spotted a bug with Tk which required this). Now we
2621 models (John spotted a bug with Tk which required this). Now we
2613 should support single-threaded, WX-threads and GTK-threads, both
2622 should support single-threaded, WX-threads and GTK-threads, both
2614 for generic code and for matplotlib.
2623 for generic code and for matplotlib.
2615
2624
2616 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2625 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2617 -pylab, to simplify things for users. Will also remove the pylab
2626 -pylab, to simplify things for users. Will also remove the pylab
2618 profile, since now all of matplotlib configuration is directly
2627 profile, since now all of matplotlib configuration is directly
2619 handled here. This also reduces startup time.
2628 handled here. This also reduces startup time.
2620
2629
2621 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2630 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2622 shell wasn't being correctly called. Also in IPShellWX.
2631 shell wasn't being correctly called. Also in IPShellWX.
2623
2632
2624 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2633 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2625 fine-tune banner.
2634 fine-tune banner.
2626
2635
2627 * IPython/numutils.py (spike): Deprecate these spike functions,
2636 * IPython/numutils.py (spike): Deprecate these spike functions,
2628 delete (long deprecated) gnuplot_exec handler.
2637 delete (long deprecated) gnuplot_exec handler.
2629
2638
2630 2004-08-26 Fernando Perez <fperez@colorado.edu>
2639 2004-08-26 Fernando Perez <fperez@colorado.edu>
2631
2640
2632 * ipython.1: Update for threading options, plus some others which
2641 * ipython.1: Update for threading options, plus some others which
2633 were missing.
2642 were missing.
2634
2643
2635 * IPython/ipmaker.py (__call__): Added -wthread option for
2644 * IPython/ipmaker.py (__call__): Added -wthread option for
2636 wxpython thread handling. Make sure threading options are only
2645 wxpython thread handling. Make sure threading options are only
2637 valid at the command line.
2646 valid at the command line.
2638
2647
2639 * scripts/ipython: moved shell selection into a factory function
2648 * scripts/ipython: moved shell selection into a factory function
2640 in Shell.py, to keep the starter script to a minimum.
2649 in Shell.py, to keep the starter script to a minimum.
2641
2650
2642 2004-08-25 Fernando Perez <fperez@colorado.edu>
2651 2004-08-25 Fernando Perez <fperez@colorado.edu>
2643
2652
2644 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2653 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2645 John. Along with some recent changes he made to matplotlib, the
2654 John. Along with some recent changes he made to matplotlib, the
2646 next versions of both systems should work very well together.
2655 next versions of both systems should work very well together.
2647
2656
2648 2004-08-24 Fernando Perez <fperez@colorado.edu>
2657 2004-08-24 Fernando Perez <fperez@colorado.edu>
2649
2658
2650 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2659 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2651 tried to switch the profiling to using hotshot, but I'm getting
2660 tried to switch the profiling to using hotshot, but I'm getting
2652 strange errors from prof.runctx() there. I may be misreading the
2661 strange errors from prof.runctx() there. I may be misreading the
2653 docs, but it looks weird. For now the profiling code will
2662 docs, but it looks weird. For now the profiling code will
2654 continue to use the standard profiler.
2663 continue to use the standard profiler.
2655
2664
2656 2004-08-23 Fernando Perez <fperez@colorado.edu>
2665 2004-08-23 Fernando Perez <fperez@colorado.edu>
2657
2666
2658 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2667 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2659 threaded shell, by John Hunter. It's not quite ready yet, but
2668 threaded shell, by John Hunter. It's not quite ready yet, but
2660 close.
2669 close.
2661
2670
2662 2004-08-22 Fernando Perez <fperez@colorado.edu>
2671 2004-08-22 Fernando Perez <fperez@colorado.edu>
2663
2672
2664 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2673 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2665 in Magic and ultraTB.
2674 in Magic and ultraTB.
2666
2675
2667 * ipython.1: document threading options in manpage.
2676 * ipython.1: document threading options in manpage.
2668
2677
2669 * scripts/ipython: Changed name of -thread option to -gthread,
2678 * scripts/ipython: Changed name of -thread option to -gthread,
2670 since this is GTK specific. I want to leave the door open for a
2679 since this is GTK specific. I want to leave the door open for a
2671 -wthread option for WX, which will most likely be necessary. This
2680 -wthread option for WX, which will most likely be necessary. This
2672 change affects usage and ipmaker as well.
2681 change affects usage and ipmaker as well.
2673
2682
2674 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2683 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2675 handle the matplotlib shell issues. Code by John Hunter
2684 handle the matplotlib shell issues. Code by John Hunter
2676 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2685 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2677 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2686 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2678 broken (and disabled for end users) for now, but it puts the
2687 broken (and disabled for end users) for now, but it puts the
2679 infrastructure in place.
2688 infrastructure in place.
2680
2689
2681 2004-08-21 Fernando Perez <fperez@colorado.edu>
2690 2004-08-21 Fernando Perez <fperez@colorado.edu>
2682
2691
2683 * ipythonrc-pylab: Add matplotlib support.
2692 * ipythonrc-pylab: Add matplotlib support.
2684
2693
2685 * matplotlib_config.py: new files for matplotlib support, part of
2694 * matplotlib_config.py: new files for matplotlib support, part of
2686 the pylab profile.
2695 the pylab profile.
2687
2696
2688 * IPython/usage.py (__doc__): documented the threading options.
2697 * IPython/usage.py (__doc__): documented the threading options.
2689
2698
2690 2004-08-20 Fernando Perez <fperez@colorado.edu>
2699 2004-08-20 Fernando Perez <fperez@colorado.edu>
2691
2700
2692 * ipython: Modified the main calling routine to handle the -thread
2701 * ipython: Modified the main calling routine to handle the -thread
2693 and -mpthread options. This needs to be done as a top-level hack,
2702 and -mpthread options. This needs to be done as a top-level hack,
2694 because it determines which class to instantiate for IPython
2703 because it determines which class to instantiate for IPython
2695 itself.
2704 itself.
2696
2705
2697 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2706 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2698 classes to support multithreaded GTK operation without blocking,
2707 classes to support multithreaded GTK operation without blocking,
2699 and matplotlib with all backends. This is a lot of still very
2708 and matplotlib with all backends. This is a lot of still very
2700 experimental code, and threads are tricky. So it may still have a
2709 experimental code, and threads are tricky. So it may still have a
2701 few rough edges... This code owes a lot to
2710 few rough edges... This code owes a lot to
2702 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2711 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2703 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2712 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2704 to John Hunter for all the matplotlib work.
2713 to John Hunter for all the matplotlib work.
2705
2714
2706 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2715 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2707 options for gtk thread and matplotlib support.
2716 options for gtk thread and matplotlib support.
2708
2717
2709 2004-08-16 Fernando Perez <fperez@colorado.edu>
2718 2004-08-16 Fernando Perez <fperez@colorado.edu>
2710
2719
2711 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2720 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2712 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2721 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2713 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2722 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2714
2723
2715 2004-08-11 Fernando Perez <fperez@colorado.edu>
2724 2004-08-11 Fernando Perez <fperez@colorado.edu>
2716
2725
2717 * setup.py (isfile): Fix build so documentation gets updated for
2726 * setup.py (isfile): Fix build so documentation gets updated for
2718 rpms (it was only done for .tgz builds).
2727 rpms (it was only done for .tgz builds).
2719
2728
2720 2004-08-10 Fernando Perez <fperez@colorado.edu>
2729 2004-08-10 Fernando Perez <fperez@colorado.edu>
2721
2730
2722 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2731 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2723
2732
2724 * iplib.py : Silence syntax error exceptions in tab-completion.
2733 * iplib.py : Silence syntax error exceptions in tab-completion.
2725
2734
2726 2004-08-05 Fernando Perez <fperez@colorado.edu>
2735 2004-08-05 Fernando Perez <fperez@colorado.edu>
2727
2736
2728 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2737 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2729 'color off' mark for continuation prompts. This was causing long
2738 'color off' mark for continuation prompts. This was causing long
2730 continuation lines to mis-wrap.
2739 continuation lines to mis-wrap.
2731
2740
2732 2004-08-01 Fernando Perez <fperez@colorado.edu>
2741 2004-08-01 Fernando Perez <fperez@colorado.edu>
2733
2742
2734 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2743 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2735 for building ipython to be a parameter. All this is necessary
2744 for building ipython to be a parameter. All this is necessary
2736 right now to have a multithreaded version, but this insane
2745 right now to have a multithreaded version, but this insane
2737 non-design will be cleaned up soon. For now, it's a hack that
2746 non-design will be cleaned up soon. For now, it's a hack that
2738 works.
2747 works.
2739
2748
2740 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2749 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2741 args in various places. No bugs so far, but it's a dangerous
2750 args in various places. No bugs so far, but it's a dangerous
2742 practice.
2751 practice.
2743
2752
2744 2004-07-31 Fernando Perez <fperez@colorado.edu>
2753 2004-07-31 Fernando Perez <fperez@colorado.edu>
2745
2754
2746 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2755 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2747 fix completion of files with dots in their names under most
2756 fix completion of files with dots in their names under most
2748 profiles (pysh was OK because the completion order is different).
2757 profiles (pysh was OK because the completion order is different).
2749
2758
2750 2004-07-27 Fernando Perez <fperez@colorado.edu>
2759 2004-07-27 Fernando Perez <fperez@colorado.edu>
2751
2760
2752 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2761 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2753 keywords manually, b/c the one in keyword.py was removed in python
2762 keywords manually, b/c the one in keyword.py was removed in python
2754 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2763 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2755 This is NOT a bug under python 2.3 and earlier.
2764 This is NOT a bug under python 2.3 and earlier.
2756
2765
2757 2004-07-26 Fernando Perez <fperez@colorado.edu>
2766 2004-07-26 Fernando Perez <fperez@colorado.edu>
2758
2767
2759 * IPython/ultraTB.py (VerboseTB.text): Add another
2768 * IPython/ultraTB.py (VerboseTB.text): Add another
2760 linecache.checkcache() call to try to prevent inspect.py from
2769 linecache.checkcache() call to try to prevent inspect.py from
2761 crashing under python 2.3. I think this fixes
2770 crashing under python 2.3. I think this fixes
2762 http://www.scipy.net/roundup/ipython/issue17.
2771 http://www.scipy.net/roundup/ipython/issue17.
2763
2772
2764 2004-07-26 *** Released version 0.6.2
2773 2004-07-26 *** Released version 0.6.2
2765
2774
2766 2004-07-26 Fernando Perez <fperez@colorado.edu>
2775 2004-07-26 Fernando Perez <fperez@colorado.edu>
2767
2776
2768 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2777 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2769 fail for any number.
2778 fail for any number.
2770 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2779 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2771 empty bookmarks.
2780 empty bookmarks.
2772
2781
2773 2004-07-26 *** Released version 0.6.1
2782 2004-07-26 *** Released version 0.6.1
2774
2783
2775 2004-07-26 Fernando Perez <fperez@colorado.edu>
2784 2004-07-26 Fernando Perez <fperez@colorado.edu>
2776
2785
2777 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2786 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2778
2787
2779 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2788 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2780 escaping '()[]{}' in filenames.
2789 escaping '()[]{}' in filenames.
2781
2790
2782 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2791 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2783 Python 2.2 users who lack a proper shlex.split.
2792 Python 2.2 users who lack a proper shlex.split.
2784
2793
2785 2004-07-19 Fernando Perez <fperez@colorado.edu>
2794 2004-07-19 Fernando Perez <fperez@colorado.edu>
2786
2795
2787 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2796 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2788 for reading readline's init file. I follow the normal chain:
2797 for reading readline's init file. I follow the normal chain:
2789 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2798 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2790 report by Mike Heeter. This closes
2799 report by Mike Heeter. This closes
2791 http://www.scipy.net/roundup/ipython/issue16.
2800 http://www.scipy.net/roundup/ipython/issue16.
2792
2801
2793 2004-07-18 Fernando Perez <fperez@colorado.edu>
2802 2004-07-18 Fernando Perez <fperez@colorado.edu>
2794
2803
2795 * IPython/iplib.py (__init__): Add better handling of '\' under
2804 * IPython/iplib.py (__init__): Add better handling of '\' under
2796 Win32 for filenames. After a patch by Ville.
2805 Win32 for filenames. After a patch by Ville.
2797
2806
2798 2004-07-17 Fernando Perez <fperez@colorado.edu>
2807 2004-07-17 Fernando Perez <fperez@colorado.edu>
2799
2808
2800 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2809 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2801 autocalling would be triggered for 'foo is bar' if foo is
2810 autocalling would be triggered for 'foo is bar' if foo is
2802 callable. I also cleaned up the autocall detection code to use a
2811 callable. I also cleaned up the autocall detection code to use a
2803 regexp, which is faster. Bug reported by Alexander Schmolck.
2812 regexp, which is faster. Bug reported by Alexander Schmolck.
2804
2813
2805 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2814 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2806 '?' in them would confuse the help system. Reported by Alex
2815 '?' in them would confuse the help system. Reported by Alex
2807 Schmolck.
2816 Schmolck.
2808
2817
2809 2004-07-16 Fernando Perez <fperez@colorado.edu>
2818 2004-07-16 Fernando Perez <fperez@colorado.edu>
2810
2819
2811 * IPython/GnuplotInteractive.py (__all__): added plot2.
2820 * IPython/GnuplotInteractive.py (__all__): added plot2.
2812
2821
2813 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2822 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2814 plotting dictionaries, lists or tuples of 1d arrays.
2823 plotting dictionaries, lists or tuples of 1d arrays.
2815
2824
2816 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2825 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2817 optimizations.
2826 optimizations.
2818
2827
2819 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2828 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2820 the information which was there from Janko's original IPP code:
2829 the information which was there from Janko's original IPP code:
2821
2830
2822 03.05.99 20:53 porto.ifm.uni-kiel.de
2831 03.05.99 20:53 porto.ifm.uni-kiel.de
2823 --Started changelog.
2832 --Started changelog.
2824 --make clear do what it say it does
2833 --make clear do what it say it does
2825 --added pretty output of lines from inputcache
2834 --added pretty output of lines from inputcache
2826 --Made Logger a mixin class, simplifies handling of switches
2835 --Made Logger a mixin class, simplifies handling of switches
2827 --Added own completer class. .string<TAB> expands to last history
2836 --Added own completer class. .string<TAB> expands to last history
2828 line which starts with string. The new expansion is also present
2837 line which starts with string. The new expansion is also present
2829 with Ctrl-r from the readline library. But this shows, who this
2838 with Ctrl-r from the readline library. But this shows, who this
2830 can be done for other cases.
2839 can be done for other cases.
2831 --Added convention that all shell functions should accept a
2840 --Added convention that all shell functions should accept a
2832 parameter_string This opens the door for different behaviour for
2841 parameter_string This opens the door for different behaviour for
2833 each function. @cd is a good example of this.
2842 each function. @cd is a good example of this.
2834
2843
2835 04.05.99 12:12 porto.ifm.uni-kiel.de
2844 04.05.99 12:12 porto.ifm.uni-kiel.de
2836 --added logfile rotation
2845 --added logfile rotation
2837 --added new mainloop method which freezes first the namespace
2846 --added new mainloop method which freezes first the namespace
2838
2847
2839 07.05.99 21:24 porto.ifm.uni-kiel.de
2848 07.05.99 21:24 porto.ifm.uni-kiel.de
2840 --added the docreader classes. Now there is a help system.
2849 --added the docreader classes. Now there is a help system.
2841 -This is only a first try. Currently it's not easy to put new
2850 -This is only a first try. Currently it's not easy to put new
2842 stuff in the indices. But this is the way to go. Info would be
2851 stuff in the indices. But this is the way to go. Info would be
2843 better, but HTML is every where and not everybody has an info
2852 better, but HTML is every where and not everybody has an info
2844 system installed and it's not so easy to change html-docs to info.
2853 system installed and it's not so easy to change html-docs to info.
2845 --added global logfile option
2854 --added global logfile option
2846 --there is now a hook for object inspection method pinfo needs to
2855 --there is now a hook for object inspection method pinfo needs to
2847 be provided for this. Can be reached by two '??'.
2856 be provided for this. Can be reached by two '??'.
2848
2857
2849 08.05.99 20:51 porto.ifm.uni-kiel.de
2858 08.05.99 20:51 porto.ifm.uni-kiel.de
2850 --added a README
2859 --added a README
2851 --bug in rc file. Something has changed so functions in the rc
2860 --bug in rc file. Something has changed so functions in the rc
2852 file need to reference the shell and not self. Not clear if it's a
2861 file need to reference the shell and not self. Not clear if it's a
2853 bug or feature.
2862 bug or feature.
2854 --changed rc file for new behavior
2863 --changed rc file for new behavior
2855
2864
2856 2004-07-15 Fernando Perez <fperez@colorado.edu>
2865 2004-07-15 Fernando Perez <fperez@colorado.edu>
2857
2866
2858 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2867 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2859 cache was falling out of sync in bizarre manners when multi-line
2868 cache was falling out of sync in bizarre manners when multi-line
2860 input was present. Minor optimizations and cleanup.
2869 input was present. Minor optimizations and cleanup.
2861
2870
2862 (Logger): Remove old Changelog info for cleanup. This is the
2871 (Logger): Remove old Changelog info for cleanup. This is the
2863 information which was there from Janko's original code:
2872 information which was there from Janko's original code:
2864
2873
2865 Changes to Logger: - made the default log filename a parameter
2874 Changes to Logger: - made the default log filename a parameter
2866
2875
2867 - put a check for lines beginning with !@? in log(). Needed
2876 - put a check for lines beginning with !@? in log(). Needed
2868 (even if the handlers properly log their lines) for mid-session
2877 (even if the handlers properly log their lines) for mid-session
2869 logging activation to work properly. Without this, lines logged
2878 logging activation to work properly. Without this, lines logged
2870 in mid session, which get read from the cache, would end up
2879 in mid session, which get read from the cache, would end up
2871 'bare' (with !@? in the open) in the log. Now they are caught
2880 'bare' (with !@? in the open) in the log. Now they are caught
2872 and prepended with a #.
2881 and prepended with a #.
2873
2882
2874 * IPython/iplib.py (InteractiveShell.init_readline): added check
2883 * IPython/iplib.py (InteractiveShell.init_readline): added check
2875 in case MagicCompleter fails to be defined, so we don't crash.
2884 in case MagicCompleter fails to be defined, so we don't crash.
2876
2885
2877 2004-07-13 Fernando Perez <fperez@colorado.edu>
2886 2004-07-13 Fernando Perez <fperez@colorado.edu>
2878
2887
2879 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2888 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2880 of EPS if the requested filename ends in '.eps'.
2889 of EPS if the requested filename ends in '.eps'.
2881
2890
2882 2004-07-04 Fernando Perez <fperez@colorado.edu>
2891 2004-07-04 Fernando Perez <fperez@colorado.edu>
2883
2892
2884 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2893 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2885 escaping of quotes when calling the shell.
2894 escaping of quotes when calling the shell.
2886
2895
2887 2004-07-02 Fernando Perez <fperez@colorado.edu>
2896 2004-07-02 Fernando Perez <fperez@colorado.edu>
2888
2897
2889 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2898 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2890 gettext not working because we were clobbering '_'. Fixes
2899 gettext not working because we were clobbering '_'. Fixes
2891 http://www.scipy.net/roundup/ipython/issue6.
2900 http://www.scipy.net/roundup/ipython/issue6.
2892
2901
2893 2004-07-01 Fernando Perez <fperez@colorado.edu>
2902 2004-07-01 Fernando Perez <fperez@colorado.edu>
2894
2903
2895 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2904 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2896 into @cd. Patch by Ville.
2905 into @cd. Patch by Ville.
2897
2906
2898 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2907 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2899 new function to store things after ipmaker runs. Patch by Ville.
2908 new function to store things after ipmaker runs. Patch by Ville.
2900 Eventually this will go away once ipmaker is removed and the class
2909 Eventually this will go away once ipmaker is removed and the class
2901 gets cleaned up, but for now it's ok. Key functionality here is
2910 gets cleaned up, but for now it's ok. Key functionality here is
2902 the addition of the persistent storage mechanism, a dict for
2911 the addition of the persistent storage mechanism, a dict for
2903 keeping data across sessions (for now just bookmarks, but more can
2912 keeping data across sessions (for now just bookmarks, but more can
2904 be implemented later).
2913 be implemented later).
2905
2914
2906 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2915 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2907 persistent across sections. Patch by Ville, I modified it
2916 persistent across sections. Patch by Ville, I modified it
2908 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2917 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2909 added a '-l' option to list all bookmarks.
2918 added a '-l' option to list all bookmarks.
2910
2919
2911 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2920 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2912 center for cleanup. Registered with atexit.register(). I moved
2921 center for cleanup. Registered with atexit.register(). I moved
2913 here the old exit_cleanup(). After a patch by Ville.
2922 here the old exit_cleanup(). After a patch by Ville.
2914
2923
2915 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2924 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2916 characters in the hacked shlex_split for python 2.2.
2925 characters in the hacked shlex_split for python 2.2.
2917
2926
2918 * IPython/iplib.py (file_matches): more fixes to filenames with
2927 * IPython/iplib.py (file_matches): more fixes to filenames with
2919 whitespace in them. It's not perfect, but limitations in python's
2928 whitespace in them. It's not perfect, but limitations in python's
2920 readline make it impossible to go further.
2929 readline make it impossible to go further.
2921
2930
2922 2004-06-29 Fernando Perez <fperez@colorado.edu>
2931 2004-06-29 Fernando Perez <fperez@colorado.edu>
2923
2932
2924 * IPython/iplib.py (file_matches): escape whitespace correctly in
2933 * IPython/iplib.py (file_matches): escape whitespace correctly in
2925 filename completions. Bug reported by Ville.
2934 filename completions. Bug reported by Ville.
2926
2935
2927 2004-06-28 Fernando Perez <fperez@colorado.edu>
2936 2004-06-28 Fernando Perez <fperez@colorado.edu>
2928
2937
2929 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2938 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2930 the history file will be called 'history-PROFNAME' (or just
2939 the history file will be called 'history-PROFNAME' (or just
2931 'history' if no profile is loaded). I was getting annoyed at
2940 'history' if no profile is loaded). I was getting annoyed at
2932 getting my Numerical work history clobbered by pysh sessions.
2941 getting my Numerical work history clobbered by pysh sessions.
2933
2942
2934 * IPython/iplib.py (InteractiveShell.__init__): Internal
2943 * IPython/iplib.py (InteractiveShell.__init__): Internal
2935 getoutputerror() function so that we can honor the system_verbose
2944 getoutputerror() function so that we can honor the system_verbose
2936 flag for _all_ system calls. I also added escaping of #
2945 flag for _all_ system calls. I also added escaping of #
2937 characters here to avoid confusing Itpl.
2946 characters here to avoid confusing Itpl.
2938
2947
2939 * IPython/Magic.py (shlex_split): removed call to shell in
2948 * IPython/Magic.py (shlex_split): removed call to shell in
2940 parse_options and replaced it with shlex.split(). The annoying
2949 parse_options and replaced it with shlex.split(). The annoying
2941 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2950 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2942 to backport it from 2.3, with several frail hacks (the shlex
2951 to backport it from 2.3, with several frail hacks (the shlex
2943 module is rather limited in 2.2). Thanks to a suggestion by Ville
2952 module is rather limited in 2.2). Thanks to a suggestion by Ville
2944 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2953 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2945 problem.
2954 problem.
2946
2955
2947 (Magic.magic_system_verbose): new toggle to print the actual
2956 (Magic.magic_system_verbose): new toggle to print the actual
2948 system calls made by ipython. Mainly for debugging purposes.
2957 system calls made by ipython. Mainly for debugging purposes.
2949
2958
2950 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2959 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2951 doesn't support persistence. Reported (and fix suggested) by
2960 doesn't support persistence. Reported (and fix suggested) by
2952 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2961 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2953
2962
2954 2004-06-26 Fernando Perez <fperez@colorado.edu>
2963 2004-06-26 Fernando Perez <fperez@colorado.edu>
2955
2964
2956 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2965 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2957 continue prompts.
2966 continue prompts.
2958
2967
2959 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2968 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2960 function (basically a big docstring) and a few more things here to
2969 function (basically a big docstring) and a few more things here to
2961 speedup startup. pysh.py is now very lightweight. We want because
2970 speedup startup. pysh.py is now very lightweight. We want because
2962 it gets execfile'd, while InterpreterExec gets imported, so
2971 it gets execfile'd, while InterpreterExec gets imported, so
2963 byte-compilation saves time.
2972 byte-compilation saves time.
2964
2973
2965 2004-06-25 Fernando Perez <fperez@colorado.edu>
2974 2004-06-25 Fernando Perez <fperez@colorado.edu>
2966
2975
2967 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2976 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2968 -NUM', which was recently broken.
2977 -NUM', which was recently broken.
2969
2978
2970 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2979 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2971 in multi-line input (but not !!, which doesn't make sense there).
2980 in multi-line input (but not !!, which doesn't make sense there).
2972
2981
2973 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2982 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2974 It's just too useful, and people can turn it off in the less
2983 It's just too useful, and people can turn it off in the less
2975 common cases where it's a problem.
2984 common cases where it's a problem.
2976
2985
2977 2004-06-24 Fernando Perez <fperez@colorado.edu>
2986 2004-06-24 Fernando Perez <fperez@colorado.edu>
2978
2987
2979 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2988 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2980 special syntaxes (like alias calling) is now allied in multi-line
2989 special syntaxes (like alias calling) is now allied in multi-line
2981 input. This is still _very_ experimental, but it's necessary for
2990 input. This is still _very_ experimental, but it's necessary for
2982 efficient shell usage combining python looping syntax with system
2991 efficient shell usage combining python looping syntax with system
2983 calls. For now it's restricted to aliases, I don't think it
2992 calls. For now it's restricted to aliases, I don't think it
2984 really even makes sense to have this for magics.
2993 really even makes sense to have this for magics.
2985
2994
2986 2004-06-23 Fernando Perez <fperez@colorado.edu>
2995 2004-06-23 Fernando Perez <fperez@colorado.edu>
2987
2996
2988 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2997 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2989 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2998 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2990
2999
2991 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3000 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2992 extensions under Windows (after code sent by Gary Bishop). The
3001 extensions under Windows (after code sent by Gary Bishop). The
2993 extensions considered 'executable' are stored in IPython's rc
3002 extensions considered 'executable' are stored in IPython's rc
2994 structure as win_exec_ext.
3003 structure as win_exec_ext.
2995
3004
2996 * IPython/genutils.py (shell): new function, like system() but
3005 * IPython/genutils.py (shell): new function, like system() but
2997 without return value. Very useful for interactive shell work.
3006 without return value. Very useful for interactive shell work.
2998
3007
2999 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3008 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3000 delete aliases.
3009 delete aliases.
3001
3010
3002 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3011 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3003 sure that the alias table doesn't contain python keywords.
3012 sure that the alias table doesn't contain python keywords.
3004
3013
3005 2004-06-21 Fernando Perez <fperez@colorado.edu>
3014 2004-06-21 Fernando Perez <fperez@colorado.edu>
3006
3015
3007 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3016 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3008 non-existent items are found in $PATH. Reported by Thorsten.
3017 non-existent items are found in $PATH. Reported by Thorsten.
3009
3018
3010 2004-06-20 Fernando Perez <fperez@colorado.edu>
3019 2004-06-20 Fernando Perez <fperez@colorado.edu>
3011
3020
3012 * IPython/iplib.py (complete): modified the completer so that the
3021 * IPython/iplib.py (complete): modified the completer so that the
3013 order of priorities can be easily changed at runtime.
3022 order of priorities can be easily changed at runtime.
3014
3023
3015 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3024 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3016 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3025 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3017
3026
3018 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3027 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3019 expand Python variables prepended with $ in all system calls. The
3028 expand Python variables prepended with $ in all system calls. The
3020 same was done to InteractiveShell.handle_shell_escape. Now all
3029 same was done to InteractiveShell.handle_shell_escape. Now all
3021 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3030 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3022 expansion of python variables and expressions according to the
3031 expansion of python variables and expressions according to the
3023 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3032 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3024
3033
3025 Though PEP-215 has been rejected, a similar (but simpler) one
3034 Though PEP-215 has been rejected, a similar (but simpler) one
3026 seems like it will go into Python 2.4, PEP-292 -
3035 seems like it will go into Python 2.4, PEP-292 -
3027 http://www.python.org/peps/pep-0292.html.
3036 http://www.python.org/peps/pep-0292.html.
3028
3037
3029 I'll keep the full syntax of PEP-215, since IPython has since the
3038 I'll keep the full syntax of PEP-215, since IPython has since the
3030 start used Ka-Ping Yee's reference implementation discussed there
3039 start used Ka-Ping Yee's reference implementation discussed there
3031 (Itpl), and I actually like the powerful semantics it offers.
3040 (Itpl), and I actually like the powerful semantics it offers.
3032
3041
3033 In order to access normal shell variables, the $ has to be escaped
3042 In order to access normal shell variables, the $ has to be escaped
3034 via an extra $. For example:
3043 via an extra $. For example:
3035
3044
3036 In [7]: PATH='a python variable'
3045 In [7]: PATH='a python variable'
3037
3046
3038 In [8]: !echo $PATH
3047 In [8]: !echo $PATH
3039 a python variable
3048 a python variable
3040
3049
3041 In [9]: !echo $$PATH
3050 In [9]: !echo $$PATH
3042 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3051 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3043
3052
3044 (Magic.parse_options): escape $ so the shell doesn't evaluate
3053 (Magic.parse_options): escape $ so the shell doesn't evaluate
3045 things prematurely.
3054 things prematurely.
3046
3055
3047 * IPython/iplib.py (InteractiveShell.call_alias): added the
3056 * IPython/iplib.py (InteractiveShell.call_alias): added the
3048 ability for aliases to expand python variables via $.
3057 ability for aliases to expand python variables via $.
3049
3058
3050 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3059 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3051 system, now there's a @rehash/@rehashx pair of magics. These work
3060 system, now there's a @rehash/@rehashx pair of magics. These work
3052 like the csh rehash command, and can be invoked at any time. They
3061 like the csh rehash command, and can be invoked at any time. They
3053 build a table of aliases to everything in the user's $PATH
3062 build a table of aliases to everything in the user's $PATH
3054 (@rehash uses everything, @rehashx is slower but only adds
3063 (@rehash uses everything, @rehashx is slower but only adds
3055 executable files). With this, the pysh.py-based shell profile can
3064 executable files). With this, the pysh.py-based shell profile can
3056 now simply call rehash upon startup, and full access to all
3065 now simply call rehash upon startup, and full access to all
3057 programs in the user's path is obtained.
3066 programs in the user's path is obtained.
3058
3067
3059 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3068 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3060 functionality is now fully in place. I removed the old dynamic
3069 functionality is now fully in place. I removed the old dynamic
3061 code generation based approach, in favor of a much lighter one
3070 code generation based approach, in favor of a much lighter one
3062 based on a simple dict. The advantage is that this allows me to
3071 based on a simple dict. The advantage is that this allows me to
3063 now have thousands of aliases with negligible cost (unthinkable
3072 now have thousands of aliases with negligible cost (unthinkable
3064 with the old system).
3073 with the old system).
3065
3074
3066 2004-06-19 Fernando Perez <fperez@colorado.edu>
3075 2004-06-19 Fernando Perez <fperez@colorado.edu>
3067
3076
3068 * IPython/iplib.py (__init__): extended MagicCompleter class to
3077 * IPython/iplib.py (__init__): extended MagicCompleter class to
3069 also complete (last in priority) on user aliases.
3078 also complete (last in priority) on user aliases.
3070
3079
3071 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3080 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3072 call to eval.
3081 call to eval.
3073 (ItplNS.__init__): Added a new class which functions like Itpl,
3082 (ItplNS.__init__): Added a new class which functions like Itpl,
3074 but allows configuring the namespace for the evaluation to occur
3083 but allows configuring the namespace for the evaluation to occur
3075 in.
3084 in.
3076
3085
3077 2004-06-18 Fernando Perez <fperez@colorado.edu>
3086 2004-06-18 Fernando Perez <fperez@colorado.edu>
3078
3087
3079 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3088 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3080 better message when 'exit' or 'quit' are typed (a common newbie
3089 better message when 'exit' or 'quit' are typed (a common newbie
3081 confusion).
3090 confusion).
3082
3091
3083 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3092 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3084 check for Windows users.
3093 check for Windows users.
3085
3094
3086 * IPython/iplib.py (InteractiveShell.user_setup): removed
3095 * IPython/iplib.py (InteractiveShell.user_setup): removed
3087 disabling of colors for Windows. I'll test at runtime and issue a
3096 disabling of colors for Windows. I'll test at runtime and issue a
3088 warning if Gary's readline isn't found, as to nudge users to
3097 warning if Gary's readline isn't found, as to nudge users to
3089 download it.
3098 download it.
3090
3099
3091 2004-06-16 Fernando Perez <fperez@colorado.edu>
3100 2004-06-16 Fernando Perez <fperez@colorado.edu>
3092
3101
3093 * IPython/genutils.py (Stream.__init__): changed to print errors
3102 * IPython/genutils.py (Stream.__init__): changed to print errors
3094 to sys.stderr. I had a circular dependency here. Now it's
3103 to sys.stderr. I had a circular dependency here. Now it's
3095 possible to run ipython as IDLE's shell (consider this pre-alpha,
3104 possible to run ipython as IDLE's shell (consider this pre-alpha,
3096 since true stdout things end up in the starting terminal instead
3105 since true stdout things end up in the starting terminal instead
3097 of IDLE's out).
3106 of IDLE's out).
3098
3107
3099 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3108 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3100 users who haven't # updated their prompt_in2 definitions. Remove
3109 users who haven't # updated their prompt_in2 definitions. Remove
3101 eventually.
3110 eventually.
3102 (multiple_replace): added credit to original ASPN recipe.
3111 (multiple_replace): added credit to original ASPN recipe.
3103
3112
3104 2004-06-15 Fernando Perez <fperez@colorado.edu>
3113 2004-06-15 Fernando Perez <fperez@colorado.edu>
3105
3114
3106 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3115 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3107 list of auto-defined aliases.
3116 list of auto-defined aliases.
3108
3117
3109 2004-06-13 Fernando Perez <fperez@colorado.edu>
3118 2004-06-13 Fernando Perez <fperez@colorado.edu>
3110
3119
3111 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3120 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3112 install was really requested (so setup.py can be used for other
3121 install was really requested (so setup.py can be used for other
3113 things under Windows).
3122 things under Windows).
3114
3123
3115 2004-06-10 Fernando Perez <fperez@colorado.edu>
3124 2004-06-10 Fernando Perez <fperez@colorado.edu>
3116
3125
3117 * IPython/Logger.py (Logger.create_log): Manually remove any old
3126 * IPython/Logger.py (Logger.create_log): Manually remove any old
3118 backup, since os.remove may fail under Windows. Fixes bug
3127 backup, since os.remove may fail under Windows. Fixes bug
3119 reported by Thorsten.
3128 reported by Thorsten.
3120
3129
3121 2004-06-09 Fernando Perez <fperez@colorado.edu>
3130 2004-06-09 Fernando Perez <fperez@colorado.edu>
3122
3131
3123 * examples/example-embed.py: fixed all references to %n (replaced
3132 * examples/example-embed.py: fixed all references to %n (replaced
3124 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3133 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3125 for all examples and the manual as well.
3134 for all examples and the manual as well.
3126
3135
3127 2004-06-08 Fernando Perez <fperez@colorado.edu>
3136 2004-06-08 Fernando Perez <fperez@colorado.edu>
3128
3137
3129 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3138 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3130 alignment and color management. All 3 prompt subsystems now
3139 alignment and color management. All 3 prompt subsystems now
3131 inherit from BasePrompt.
3140 inherit from BasePrompt.
3132
3141
3133 * tools/release: updates for windows installer build and tag rpms
3142 * tools/release: updates for windows installer build and tag rpms
3134 with python version (since paths are fixed).
3143 with python version (since paths are fixed).
3135
3144
3136 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3145 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3137 which will become eventually obsolete. Also fixed the default
3146 which will become eventually obsolete. Also fixed the default
3138 prompt_in2 to use \D, so at least new users start with the correct
3147 prompt_in2 to use \D, so at least new users start with the correct
3139 defaults.
3148 defaults.
3140 WARNING: Users with existing ipythonrc files will need to apply
3149 WARNING: Users with existing ipythonrc files will need to apply
3141 this fix manually!
3150 this fix manually!
3142
3151
3143 * setup.py: make windows installer (.exe). This is finally the
3152 * setup.py: make windows installer (.exe). This is finally the
3144 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3153 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3145 which I hadn't included because it required Python 2.3 (or recent
3154 which I hadn't included because it required Python 2.3 (or recent
3146 distutils).
3155 distutils).
3147
3156
3148 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3157 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3149 usage of new '\D' escape.
3158 usage of new '\D' escape.
3150
3159
3151 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3160 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3152 lacks os.getuid())
3161 lacks os.getuid())
3153 (CachedOutput.set_colors): Added the ability to turn coloring
3162 (CachedOutput.set_colors): Added the ability to turn coloring
3154 on/off with @colors even for manually defined prompt colors. It
3163 on/off with @colors even for manually defined prompt colors. It
3155 uses a nasty global, but it works safely and via the generic color
3164 uses a nasty global, but it works safely and via the generic color
3156 handling mechanism.
3165 handling mechanism.
3157 (Prompt2.__init__): Introduced new escape '\D' for continuation
3166 (Prompt2.__init__): Introduced new escape '\D' for continuation
3158 prompts. It represents the counter ('\#') as dots.
3167 prompts. It represents the counter ('\#') as dots.
3159 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3168 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3160 need to update their ipythonrc files and replace '%n' with '\D' in
3169 need to update their ipythonrc files and replace '%n' with '\D' in
3161 their prompt_in2 settings everywhere. Sorry, but there's
3170 their prompt_in2 settings everywhere. Sorry, but there's
3162 otherwise no clean way to get all prompts to properly align. The
3171 otherwise no clean way to get all prompts to properly align. The
3163 ipythonrc shipped with IPython has been updated.
3172 ipythonrc shipped with IPython has been updated.
3164
3173
3165 2004-06-07 Fernando Perez <fperez@colorado.edu>
3174 2004-06-07 Fernando Perez <fperez@colorado.edu>
3166
3175
3167 * setup.py (isfile): Pass local_icons option to latex2html, so the
3176 * setup.py (isfile): Pass local_icons option to latex2html, so the
3168 resulting HTML file is self-contained. Thanks to
3177 resulting HTML file is self-contained. Thanks to
3169 dryice-AT-liu.com.cn for the tip.
3178 dryice-AT-liu.com.cn for the tip.
3170
3179
3171 * pysh.py: I created a new profile 'shell', which implements a
3180 * pysh.py: I created a new profile 'shell', which implements a
3172 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3181 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3173 system shell, nor will it become one anytime soon. It's mainly
3182 system shell, nor will it become one anytime soon. It's mainly
3174 meant to illustrate the use of the new flexible bash-like prompts.
3183 meant to illustrate the use of the new flexible bash-like prompts.
3175 I guess it could be used by hardy souls for true shell management,
3184 I guess it could be used by hardy souls for true shell management,
3176 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3185 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3177 profile. This uses the InterpreterExec extension provided by
3186 profile. This uses the InterpreterExec extension provided by
3178 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3187 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3179
3188
3180 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3189 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3181 auto-align itself with the length of the previous input prompt
3190 auto-align itself with the length of the previous input prompt
3182 (taking into account the invisible color escapes).
3191 (taking into account the invisible color escapes).
3183 (CachedOutput.__init__): Large restructuring of this class. Now
3192 (CachedOutput.__init__): Large restructuring of this class. Now
3184 all three prompts (primary1, primary2, output) are proper objects,
3193 all three prompts (primary1, primary2, output) are proper objects,
3185 managed by the 'parent' CachedOutput class. The code is still a
3194 managed by the 'parent' CachedOutput class. The code is still a
3186 bit hackish (all prompts share state via a pointer to the cache),
3195 bit hackish (all prompts share state via a pointer to the cache),
3187 but it's overall far cleaner than before.
3196 but it's overall far cleaner than before.
3188
3197
3189 * IPython/genutils.py (getoutputerror): modified to add verbose,
3198 * IPython/genutils.py (getoutputerror): modified to add verbose,
3190 debug and header options. This makes the interface of all getout*
3199 debug and header options. This makes the interface of all getout*
3191 functions uniform.
3200 functions uniform.
3192 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3201 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3193
3202
3194 * IPython/Magic.py (Magic.default_option): added a function to
3203 * IPython/Magic.py (Magic.default_option): added a function to
3195 allow registering default options for any magic command. This
3204 allow registering default options for any magic command. This
3196 makes it easy to have profiles which customize the magics globally
3205 makes it easy to have profiles which customize the magics globally
3197 for a certain use. The values set through this function are
3206 for a certain use. The values set through this function are
3198 picked up by the parse_options() method, which all magics should
3207 picked up by the parse_options() method, which all magics should
3199 use to parse their options.
3208 use to parse their options.
3200
3209
3201 * IPython/genutils.py (warn): modified the warnings framework to
3210 * IPython/genutils.py (warn): modified the warnings framework to
3202 use the Term I/O class. I'm trying to slowly unify all of
3211 use the Term I/O class. I'm trying to slowly unify all of
3203 IPython's I/O operations to pass through Term.
3212 IPython's I/O operations to pass through Term.
3204
3213
3205 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3214 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3206 the secondary prompt to correctly match the length of the primary
3215 the secondary prompt to correctly match the length of the primary
3207 one for any prompt. Now multi-line code will properly line up
3216 one for any prompt. Now multi-line code will properly line up
3208 even for path dependent prompts, such as the new ones available
3217 even for path dependent prompts, such as the new ones available
3209 via the prompt_specials.
3218 via the prompt_specials.
3210
3219
3211 2004-06-06 Fernando Perez <fperez@colorado.edu>
3220 2004-06-06 Fernando Perez <fperez@colorado.edu>
3212
3221
3213 * IPython/Prompts.py (prompt_specials): Added the ability to have
3222 * IPython/Prompts.py (prompt_specials): Added the ability to have
3214 bash-like special sequences in the prompts, which get
3223 bash-like special sequences in the prompts, which get
3215 automatically expanded. Things like hostname, current working
3224 automatically expanded. Things like hostname, current working
3216 directory and username are implemented already, but it's easy to
3225 directory and username are implemented already, but it's easy to
3217 add more in the future. Thanks to a patch by W.J. van der Laan
3226 add more in the future. Thanks to a patch by W.J. van der Laan
3218 <gnufnork-AT-hetdigitalegat.nl>
3227 <gnufnork-AT-hetdigitalegat.nl>
3219 (prompt_specials): Added color support for prompt strings, so
3228 (prompt_specials): Added color support for prompt strings, so
3220 users can define arbitrary color setups for their prompts.
3229 users can define arbitrary color setups for their prompts.
3221
3230
3222 2004-06-05 Fernando Perez <fperez@colorado.edu>
3231 2004-06-05 Fernando Perez <fperez@colorado.edu>
3223
3232
3224 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3233 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3225 code to load Gary Bishop's readline and configure it
3234 code to load Gary Bishop's readline and configure it
3226 automatically. Thanks to Gary for help on this.
3235 automatically. Thanks to Gary for help on this.
3227
3236
3228 2004-06-01 Fernando Perez <fperez@colorado.edu>
3237 2004-06-01 Fernando Perez <fperez@colorado.edu>
3229
3238
3230 * IPython/Logger.py (Logger.create_log): fix bug for logging
3239 * IPython/Logger.py (Logger.create_log): fix bug for logging
3231 with no filename (previous fix was incomplete).
3240 with no filename (previous fix was incomplete).
3232
3241
3233 2004-05-25 Fernando Perez <fperez@colorado.edu>
3242 2004-05-25 Fernando Perez <fperez@colorado.edu>
3234
3243
3235 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3244 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3236 parens would get passed to the shell.
3245 parens would get passed to the shell.
3237
3246
3238 2004-05-20 Fernando Perez <fperez@colorado.edu>
3247 2004-05-20 Fernando Perez <fperez@colorado.edu>
3239
3248
3240 * IPython/Magic.py (Magic.magic_prun): changed default profile
3249 * IPython/Magic.py (Magic.magic_prun): changed default profile
3241 sort order to 'time' (the more common profiling need).
3250 sort order to 'time' (the more common profiling need).
3242
3251
3243 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3252 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3244 so that source code shown is guaranteed in sync with the file on
3253 so that source code shown is guaranteed in sync with the file on
3245 disk (also changed in psource). Similar fix to the one for
3254 disk (also changed in psource). Similar fix to the one for
3246 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3255 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3247 <yann.ledu-AT-noos.fr>.
3256 <yann.ledu-AT-noos.fr>.
3248
3257
3249 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3258 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3250 with a single option would not be correctly parsed. Closes
3259 with a single option would not be correctly parsed. Closes
3251 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3260 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3252 introduced in 0.6.0 (on 2004-05-06).
3261 introduced in 0.6.0 (on 2004-05-06).
3253
3262
3254 2004-05-13 *** Released version 0.6.0
3263 2004-05-13 *** Released version 0.6.0
3255
3264
3256 2004-05-13 Fernando Perez <fperez@colorado.edu>
3265 2004-05-13 Fernando Perez <fperez@colorado.edu>
3257
3266
3258 * debian/: Added debian/ directory to CVS, so that debian support
3267 * debian/: Added debian/ directory to CVS, so that debian support
3259 is publicly accessible. The debian package is maintained by Jack
3268 is publicly accessible. The debian package is maintained by Jack
3260 Moffit <jack-AT-xiph.org>.
3269 Moffit <jack-AT-xiph.org>.
3261
3270
3262 * Documentation: included the notes about an ipython-based system
3271 * Documentation: included the notes about an ipython-based system
3263 shell (the hypothetical 'pysh') into the new_design.pdf document,
3272 shell (the hypothetical 'pysh') into the new_design.pdf document,
3264 so that these ideas get distributed to users along with the
3273 so that these ideas get distributed to users along with the
3265 official documentation.
3274 official documentation.
3266
3275
3267 2004-05-10 Fernando Perez <fperez@colorado.edu>
3276 2004-05-10 Fernando Perez <fperez@colorado.edu>
3268
3277
3269 * IPython/Logger.py (Logger.create_log): fix recently introduced
3278 * IPython/Logger.py (Logger.create_log): fix recently introduced
3270 bug (misindented line) where logstart would fail when not given an
3279 bug (misindented line) where logstart would fail when not given an
3271 explicit filename.
3280 explicit filename.
3272
3281
3273 2004-05-09 Fernando Perez <fperez@colorado.edu>
3282 2004-05-09 Fernando Perez <fperez@colorado.edu>
3274
3283
3275 * IPython/Magic.py (Magic.parse_options): skip system call when
3284 * IPython/Magic.py (Magic.parse_options): skip system call when
3276 there are no options to look for. Faster, cleaner for the common
3285 there are no options to look for. Faster, cleaner for the common
3277 case.
3286 case.
3278
3287
3279 * Documentation: many updates to the manual: describing Windows
3288 * Documentation: many updates to the manual: describing Windows
3280 support better, Gnuplot updates, credits, misc small stuff. Also
3289 support better, Gnuplot updates, credits, misc small stuff. Also
3281 updated the new_design doc a bit.
3290 updated the new_design doc a bit.
3282
3291
3283 2004-05-06 *** Released version 0.6.0.rc1
3292 2004-05-06 *** Released version 0.6.0.rc1
3284
3293
3285 2004-05-06 Fernando Perez <fperez@colorado.edu>
3294 2004-05-06 Fernando Perez <fperez@colorado.edu>
3286
3295
3287 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3296 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3288 operations to use the vastly more efficient list/''.join() method.
3297 operations to use the vastly more efficient list/''.join() method.
3289 (FormattedTB.text): Fix
3298 (FormattedTB.text): Fix
3290 http://www.scipy.net/roundup/ipython/issue12 - exception source
3299 http://www.scipy.net/roundup/ipython/issue12 - exception source
3291 extract not updated after reload. Thanks to Mike Salib
3300 extract not updated after reload. Thanks to Mike Salib
3292 <msalib-AT-mit.edu> for pinning the source of the problem.
3301 <msalib-AT-mit.edu> for pinning the source of the problem.
3293 Fortunately, the solution works inside ipython and doesn't require
3302 Fortunately, the solution works inside ipython and doesn't require
3294 any changes to python proper.
3303 any changes to python proper.
3295
3304
3296 * IPython/Magic.py (Magic.parse_options): Improved to process the
3305 * IPython/Magic.py (Magic.parse_options): Improved to process the
3297 argument list as a true shell would (by actually using the
3306 argument list as a true shell would (by actually using the
3298 underlying system shell). This way, all @magics automatically get
3307 underlying system shell). This way, all @magics automatically get
3299 shell expansion for variables. Thanks to a comment by Alex
3308 shell expansion for variables. Thanks to a comment by Alex
3300 Schmolck.
3309 Schmolck.
3301
3310
3302 2004-04-04 Fernando Perez <fperez@colorado.edu>
3311 2004-04-04 Fernando Perez <fperez@colorado.edu>
3303
3312
3304 * IPython/iplib.py (InteractiveShell.interact): Added a special
3313 * IPython/iplib.py (InteractiveShell.interact): Added a special
3305 trap for a debugger quit exception, which is basically impossible
3314 trap for a debugger quit exception, which is basically impossible
3306 to handle by normal mechanisms, given what pdb does to the stack.
3315 to handle by normal mechanisms, given what pdb does to the stack.
3307 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3316 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3308
3317
3309 2004-04-03 Fernando Perez <fperez@colorado.edu>
3318 2004-04-03 Fernando Perez <fperez@colorado.edu>
3310
3319
3311 * IPython/genutils.py (Term): Standardized the names of the Term
3320 * IPython/genutils.py (Term): Standardized the names of the Term
3312 class streams to cin/cout/cerr, following C++ naming conventions
3321 class streams to cin/cout/cerr, following C++ naming conventions
3313 (I can't use in/out/err because 'in' is not a valid attribute
3322 (I can't use in/out/err because 'in' is not a valid attribute
3314 name).
3323 name).
3315
3324
3316 * IPython/iplib.py (InteractiveShell.interact): don't increment
3325 * IPython/iplib.py (InteractiveShell.interact): don't increment
3317 the prompt if there's no user input. By Daniel 'Dang' Griffith
3326 the prompt if there's no user input. By Daniel 'Dang' Griffith
3318 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3327 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3319 Francois Pinard.
3328 Francois Pinard.
3320
3329
3321 2004-04-02 Fernando Perez <fperez@colorado.edu>
3330 2004-04-02 Fernando Perez <fperez@colorado.edu>
3322
3331
3323 * IPython/genutils.py (Stream.__init__): Modified to survive at
3332 * IPython/genutils.py (Stream.__init__): Modified to survive at
3324 least importing in contexts where stdin/out/err aren't true file
3333 least importing in contexts where stdin/out/err aren't true file
3325 objects, such as PyCrust (they lack fileno() and mode). However,
3334 objects, such as PyCrust (they lack fileno() and mode). However,
3326 the recovery facilities which rely on these things existing will
3335 the recovery facilities which rely on these things existing will
3327 not work.
3336 not work.
3328
3337
3329 2004-04-01 Fernando Perez <fperez@colorado.edu>
3338 2004-04-01 Fernando Perez <fperez@colorado.edu>
3330
3339
3331 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3340 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3332 use the new getoutputerror() function, so it properly
3341 use the new getoutputerror() function, so it properly
3333 distinguishes stdout/err.
3342 distinguishes stdout/err.
3334
3343
3335 * IPython/genutils.py (getoutputerror): added a function to
3344 * IPython/genutils.py (getoutputerror): added a function to
3336 capture separately the standard output and error of a command.
3345 capture separately the standard output and error of a command.
3337 After a comment from dang on the mailing lists. This code is
3346 After a comment from dang on the mailing lists. This code is
3338 basically a modified version of commands.getstatusoutput(), from
3347 basically a modified version of commands.getstatusoutput(), from
3339 the standard library.
3348 the standard library.
3340
3349
3341 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3350 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3342 '!!' as a special syntax (shorthand) to access @sx.
3351 '!!' as a special syntax (shorthand) to access @sx.
3343
3352
3344 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3353 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3345 command and return its output as a list split on '\n'.
3354 command and return its output as a list split on '\n'.
3346
3355
3347 2004-03-31 Fernando Perez <fperez@colorado.edu>
3356 2004-03-31 Fernando Perez <fperez@colorado.edu>
3348
3357
3349 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3358 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3350 method to dictionaries used as FakeModule instances if they lack
3359 method to dictionaries used as FakeModule instances if they lack
3351 it. At least pydoc in python2.3 breaks for runtime-defined
3360 it. At least pydoc in python2.3 breaks for runtime-defined
3352 functions without this hack. At some point I need to _really_
3361 functions without this hack. At some point I need to _really_
3353 understand what FakeModule is doing, because it's a gross hack.
3362 understand what FakeModule is doing, because it's a gross hack.
3354 But it solves Arnd's problem for now...
3363 But it solves Arnd's problem for now...
3355
3364
3356 2004-02-27 Fernando Perez <fperez@colorado.edu>
3365 2004-02-27 Fernando Perez <fperez@colorado.edu>
3357
3366
3358 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3367 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3359 mode would behave erratically. Also increased the number of
3368 mode would behave erratically. Also increased the number of
3360 possible logs in rotate mod to 999. Thanks to Rod Holland
3369 possible logs in rotate mod to 999. Thanks to Rod Holland
3361 <rhh@StructureLABS.com> for the report and fixes.
3370 <rhh@StructureLABS.com> for the report and fixes.
3362
3371
3363 2004-02-26 Fernando Perez <fperez@colorado.edu>
3372 2004-02-26 Fernando Perez <fperez@colorado.edu>
3364
3373
3365 * IPython/genutils.py (page): Check that the curses module really
3374 * IPython/genutils.py (page): Check that the curses module really
3366 has the initscr attribute before trying to use it. For some
3375 has the initscr attribute before trying to use it. For some
3367 reason, the Solaris curses module is missing this. I think this
3376 reason, the Solaris curses module is missing this. I think this
3368 should be considered a Solaris python bug, but I'm not sure.
3377 should be considered a Solaris python bug, but I'm not sure.
3369
3378
3370 2004-01-17 Fernando Perez <fperez@colorado.edu>
3379 2004-01-17 Fernando Perez <fperez@colorado.edu>
3371
3380
3372 * IPython/genutils.py (Stream.__init__): Changes to try to make
3381 * IPython/genutils.py (Stream.__init__): Changes to try to make
3373 ipython robust against stdin/out/err being closed by the user.
3382 ipython robust against stdin/out/err being closed by the user.
3374 This is 'user error' (and blocks a normal python session, at least
3383 This is 'user error' (and blocks a normal python session, at least
3375 the stdout case). However, Ipython should be able to survive such
3384 the stdout case). However, Ipython should be able to survive such
3376 instances of abuse as gracefully as possible. To simplify the
3385 instances of abuse as gracefully as possible. To simplify the
3377 coding and maintain compatibility with Gary Bishop's Term
3386 coding and maintain compatibility with Gary Bishop's Term
3378 contributions, I've made use of classmethods for this. I think
3387 contributions, I've made use of classmethods for this. I think
3379 this introduces a dependency on python 2.2.
3388 this introduces a dependency on python 2.2.
3380
3389
3381 2004-01-13 Fernando Perez <fperez@colorado.edu>
3390 2004-01-13 Fernando Perez <fperez@colorado.edu>
3382
3391
3383 * IPython/numutils.py (exp_safe): simplified the code a bit and
3392 * IPython/numutils.py (exp_safe): simplified the code a bit and
3384 removed the need for importing the kinds module altogether.
3393 removed the need for importing the kinds module altogether.
3385
3394
3386 2004-01-06 Fernando Perez <fperez@colorado.edu>
3395 2004-01-06 Fernando Perez <fperez@colorado.edu>
3387
3396
3388 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3397 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3389 a magic function instead, after some community feedback. No
3398 a magic function instead, after some community feedback. No
3390 special syntax will exist for it, but its name is deliberately
3399 special syntax will exist for it, but its name is deliberately
3391 very short.
3400 very short.
3392
3401
3393 2003-12-20 Fernando Perez <fperez@colorado.edu>
3402 2003-12-20 Fernando Perez <fperez@colorado.edu>
3394
3403
3395 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3404 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3396 new functionality, to automagically assign the result of a shell
3405 new functionality, to automagically assign the result of a shell
3397 command to a variable. I'll solicit some community feedback on
3406 command to a variable. I'll solicit some community feedback on
3398 this before making it permanent.
3407 this before making it permanent.
3399
3408
3400 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3409 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3401 requested about callables for which inspect couldn't obtain a
3410 requested about callables for which inspect couldn't obtain a
3402 proper argspec. Thanks to a crash report sent by Etienne
3411 proper argspec. Thanks to a crash report sent by Etienne
3403 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3412 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3404
3413
3405 2003-12-09 Fernando Perez <fperez@colorado.edu>
3414 2003-12-09 Fernando Perez <fperez@colorado.edu>
3406
3415
3407 * IPython/genutils.py (page): patch for the pager to work across
3416 * IPython/genutils.py (page): patch for the pager to work across
3408 various versions of Windows. By Gary Bishop.
3417 various versions of Windows. By Gary Bishop.
3409
3418
3410 2003-12-04 Fernando Perez <fperez@colorado.edu>
3419 2003-12-04 Fernando Perez <fperez@colorado.edu>
3411
3420
3412 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3421 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3413 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3422 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3414 While I tested this and it looks ok, there may still be corner
3423 While I tested this and it looks ok, there may still be corner
3415 cases I've missed.
3424 cases I've missed.
3416
3425
3417 2003-12-01 Fernando Perez <fperez@colorado.edu>
3426 2003-12-01 Fernando Perez <fperez@colorado.edu>
3418
3427
3419 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3428 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3420 where a line like 'p,q=1,2' would fail because the automagic
3429 where a line like 'p,q=1,2' would fail because the automagic
3421 system would be triggered for @p.
3430 system would be triggered for @p.
3422
3431
3423 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3432 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3424 cleanups, code unmodified.
3433 cleanups, code unmodified.
3425
3434
3426 * IPython/genutils.py (Term): added a class for IPython to handle
3435 * IPython/genutils.py (Term): added a class for IPython to handle
3427 output. In most cases it will just be a proxy for stdout/err, but
3436 output. In most cases it will just be a proxy for stdout/err, but
3428 having this allows modifications to be made for some platforms,
3437 having this allows modifications to be made for some platforms,
3429 such as handling color escapes under Windows. All of this code
3438 such as handling color escapes under Windows. All of this code
3430 was contributed by Gary Bishop, with minor modifications by me.
3439 was contributed by Gary Bishop, with minor modifications by me.
3431 The actual changes affect many files.
3440 The actual changes affect many files.
3432
3441
3433 2003-11-30 Fernando Perez <fperez@colorado.edu>
3442 2003-11-30 Fernando Perez <fperez@colorado.edu>
3434
3443
3435 * IPython/iplib.py (file_matches): new completion code, courtesy
3444 * IPython/iplib.py (file_matches): new completion code, courtesy
3436 of Jeff Collins. This enables filename completion again under
3445 of Jeff Collins. This enables filename completion again under
3437 python 2.3, which disabled it at the C level.
3446 python 2.3, which disabled it at the C level.
3438
3447
3439 2003-11-11 Fernando Perez <fperez@colorado.edu>
3448 2003-11-11 Fernando Perez <fperez@colorado.edu>
3440
3449
3441 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3450 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3442 for Numeric.array(map(...)), but often convenient.
3451 for Numeric.array(map(...)), but often convenient.
3443
3452
3444 2003-11-05 Fernando Perez <fperez@colorado.edu>
3453 2003-11-05 Fernando Perez <fperez@colorado.edu>
3445
3454
3446 * IPython/numutils.py (frange): Changed a call from int() to
3455 * IPython/numutils.py (frange): Changed a call from int() to
3447 int(round()) to prevent a problem reported with arange() in the
3456 int(round()) to prevent a problem reported with arange() in the
3448 numpy list.
3457 numpy list.
3449
3458
3450 2003-10-06 Fernando Perez <fperez@colorado.edu>
3459 2003-10-06 Fernando Perez <fperez@colorado.edu>
3451
3460
3452 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3461 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3453 prevent crashes if sys lacks an argv attribute (it happens with
3462 prevent crashes if sys lacks an argv attribute (it happens with
3454 embedded interpreters which build a bare-bones sys module).
3463 embedded interpreters which build a bare-bones sys module).
3455 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3464 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3456
3465
3457 2003-09-24 Fernando Perez <fperez@colorado.edu>
3466 2003-09-24 Fernando Perez <fperez@colorado.edu>
3458
3467
3459 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3468 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3460 to protect against poorly written user objects where __getattr__
3469 to protect against poorly written user objects where __getattr__
3461 raises exceptions other than AttributeError. Thanks to a bug
3470 raises exceptions other than AttributeError. Thanks to a bug
3462 report by Oliver Sander <osander-AT-gmx.de>.
3471 report by Oliver Sander <osander-AT-gmx.de>.
3463
3472
3464 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3473 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3465 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3474 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3466
3475
3467 2003-09-09 Fernando Perez <fperez@colorado.edu>
3476 2003-09-09 Fernando Perez <fperez@colorado.edu>
3468
3477
3469 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3478 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3470 unpacking a list whith a callable as first element would
3479 unpacking a list whith a callable as first element would
3471 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3480 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3472 Collins.
3481 Collins.
3473
3482
3474 2003-08-25 *** Released version 0.5.0
3483 2003-08-25 *** Released version 0.5.0
3475
3484
3476 2003-08-22 Fernando Perez <fperez@colorado.edu>
3485 2003-08-22 Fernando Perez <fperez@colorado.edu>
3477
3486
3478 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3487 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3479 improperly defined user exceptions. Thanks to feedback from Mark
3488 improperly defined user exceptions. Thanks to feedback from Mark
3480 Russell <mrussell-AT-verio.net>.
3489 Russell <mrussell-AT-verio.net>.
3481
3490
3482 2003-08-20 Fernando Perez <fperez@colorado.edu>
3491 2003-08-20 Fernando Perez <fperez@colorado.edu>
3483
3492
3484 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3493 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3485 printing so that it would print multi-line string forms starting
3494 printing so that it would print multi-line string forms starting
3486 with a new line. This way the formatting is better respected for
3495 with a new line. This way the formatting is better respected for
3487 objects which work hard to make nice string forms.
3496 objects which work hard to make nice string forms.
3488
3497
3489 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3498 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3490 autocall would overtake data access for objects with both
3499 autocall would overtake data access for objects with both
3491 __getitem__ and __call__.
3500 __getitem__ and __call__.
3492
3501
3493 2003-08-19 *** Released version 0.5.0-rc1
3502 2003-08-19 *** Released version 0.5.0-rc1
3494
3503
3495 2003-08-19 Fernando Perez <fperez@colorado.edu>
3504 2003-08-19 Fernando Perez <fperez@colorado.edu>
3496
3505
3497 * IPython/deep_reload.py (load_tail): single tiny change here
3506 * IPython/deep_reload.py (load_tail): single tiny change here
3498 seems to fix the long-standing bug of dreload() failing to work
3507 seems to fix the long-standing bug of dreload() failing to work
3499 for dotted names. But this module is pretty tricky, so I may have
3508 for dotted names. But this module is pretty tricky, so I may have
3500 missed some subtlety. Needs more testing!.
3509 missed some subtlety. Needs more testing!.
3501
3510
3502 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3511 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3503 exceptions which have badly implemented __str__ methods.
3512 exceptions which have badly implemented __str__ methods.
3504 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3513 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3505 which I've been getting reports about from Python 2.3 users. I
3514 which I've been getting reports about from Python 2.3 users. I
3506 wish I had a simple test case to reproduce the problem, so I could
3515 wish I had a simple test case to reproduce the problem, so I could
3507 either write a cleaner workaround or file a bug report if
3516 either write a cleaner workaround or file a bug report if
3508 necessary.
3517 necessary.
3509
3518
3510 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3519 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3511 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3520 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3512 a bug report by Tjabo Kloppenburg.
3521 a bug report by Tjabo Kloppenburg.
3513
3522
3514 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3523 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3515 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3524 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3516 seems rather unstable. Thanks to a bug report by Tjabo
3525 seems rather unstable. Thanks to a bug report by Tjabo
3517 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3526 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3518
3527
3519 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3528 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3520 this out soon because of the critical fixes in the inner loop for
3529 this out soon because of the critical fixes in the inner loop for
3521 generators.
3530 generators.
3522
3531
3523 * IPython/Magic.py (Magic.getargspec): removed. This (and
3532 * IPython/Magic.py (Magic.getargspec): removed. This (and
3524 _get_def) have been obsoleted by OInspect for a long time, I
3533 _get_def) have been obsoleted by OInspect for a long time, I
3525 hadn't noticed that they were dead code.
3534 hadn't noticed that they were dead code.
3526 (Magic._ofind): restored _ofind functionality for a few literals
3535 (Magic._ofind): restored _ofind functionality for a few literals
3527 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3536 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3528 for things like "hello".capitalize?, since that would require a
3537 for things like "hello".capitalize?, since that would require a
3529 potentially dangerous eval() again.
3538 potentially dangerous eval() again.
3530
3539
3531 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3540 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3532 logic a bit more to clean up the escapes handling and minimize the
3541 logic a bit more to clean up the escapes handling and minimize the
3533 use of _ofind to only necessary cases. The interactive 'feel' of
3542 use of _ofind to only necessary cases. The interactive 'feel' of
3534 IPython should have improved quite a bit with the changes in
3543 IPython should have improved quite a bit with the changes in
3535 _prefilter and _ofind (besides being far safer than before).
3544 _prefilter and _ofind (besides being far safer than before).
3536
3545
3537 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3546 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3538 obscure, never reported). Edit would fail to find the object to
3547 obscure, never reported). Edit would fail to find the object to
3539 edit under some circumstances.
3548 edit under some circumstances.
3540 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3549 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3541 which were causing double-calling of generators. Those eval calls
3550 which were causing double-calling of generators. Those eval calls
3542 were _very_ dangerous, since code with side effects could be
3551 were _very_ dangerous, since code with side effects could be
3543 triggered. As they say, 'eval is evil'... These were the
3552 triggered. As they say, 'eval is evil'... These were the
3544 nastiest evals in IPython. Besides, _ofind is now far simpler,
3553 nastiest evals in IPython. Besides, _ofind is now far simpler,
3545 and it should also be quite a bit faster. Its use of inspect is
3554 and it should also be quite a bit faster. Its use of inspect is
3546 also safer, so perhaps some of the inspect-related crashes I've
3555 also safer, so perhaps some of the inspect-related crashes I've
3547 seen lately with Python 2.3 might be taken care of. That will
3556 seen lately with Python 2.3 might be taken care of. That will
3548 need more testing.
3557 need more testing.
3549
3558
3550 2003-08-17 Fernando Perez <fperez@colorado.edu>
3559 2003-08-17 Fernando Perez <fperez@colorado.edu>
3551
3560
3552 * IPython/iplib.py (InteractiveShell._prefilter): significant
3561 * IPython/iplib.py (InteractiveShell._prefilter): significant
3553 simplifications to the logic for handling user escapes. Faster
3562 simplifications to the logic for handling user escapes. Faster
3554 and simpler code.
3563 and simpler code.
3555
3564
3556 2003-08-14 Fernando Perez <fperez@colorado.edu>
3565 2003-08-14 Fernando Perez <fperez@colorado.edu>
3557
3566
3558 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3567 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3559 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3568 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3560 but it should be quite a bit faster. And the recursive version
3569 but it should be quite a bit faster. And the recursive version
3561 generated O(log N) intermediate storage for all rank>1 arrays,
3570 generated O(log N) intermediate storage for all rank>1 arrays,
3562 even if they were contiguous.
3571 even if they were contiguous.
3563 (l1norm): Added this function.
3572 (l1norm): Added this function.
3564 (norm): Added this function for arbitrary norms (including
3573 (norm): Added this function for arbitrary norms (including
3565 l-infinity). l1 and l2 are still special cases for convenience
3574 l-infinity). l1 and l2 are still special cases for convenience
3566 and speed.
3575 and speed.
3567
3576
3568 2003-08-03 Fernando Perez <fperez@colorado.edu>
3577 2003-08-03 Fernando Perez <fperez@colorado.edu>
3569
3578
3570 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3579 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3571 exceptions, which now raise PendingDeprecationWarnings in Python
3580 exceptions, which now raise PendingDeprecationWarnings in Python
3572 2.3. There were some in Magic and some in Gnuplot2.
3581 2.3. There were some in Magic and some in Gnuplot2.
3573
3582
3574 2003-06-30 Fernando Perez <fperez@colorado.edu>
3583 2003-06-30 Fernando Perez <fperez@colorado.edu>
3575
3584
3576 * IPython/genutils.py (page): modified to call curses only for
3585 * IPython/genutils.py (page): modified to call curses only for
3577 terminals where TERM=='xterm'. After problems under many other
3586 terminals where TERM=='xterm'. After problems under many other
3578 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3587 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3579
3588
3580 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3589 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3581 would be triggered when readline was absent. This was just an old
3590 would be triggered when readline was absent. This was just an old
3582 debugging statement I'd forgotten to take out.
3591 debugging statement I'd forgotten to take out.
3583
3592
3584 2003-06-20 Fernando Perez <fperez@colorado.edu>
3593 2003-06-20 Fernando Perez <fperez@colorado.edu>
3585
3594
3586 * IPython/genutils.py (clock): modified to return only user time
3595 * IPython/genutils.py (clock): modified to return only user time
3587 (not counting system time), after a discussion on scipy. While
3596 (not counting system time), after a discussion on scipy. While
3588 system time may be a useful quantity occasionally, it may much
3597 system time may be a useful quantity occasionally, it may much
3589 more easily be skewed by occasional swapping or other similar
3598 more easily be skewed by occasional swapping or other similar
3590 activity.
3599 activity.
3591
3600
3592 2003-06-05 Fernando Perez <fperez@colorado.edu>
3601 2003-06-05 Fernando Perez <fperez@colorado.edu>
3593
3602
3594 * IPython/numutils.py (identity): new function, for building
3603 * IPython/numutils.py (identity): new function, for building
3595 arbitrary rank Kronecker deltas (mostly backwards compatible with
3604 arbitrary rank Kronecker deltas (mostly backwards compatible with
3596 Numeric.identity)
3605 Numeric.identity)
3597
3606
3598 2003-06-03 Fernando Perez <fperez@colorado.edu>
3607 2003-06-03 Fernando Perez <fperez@colorado.edu>
3599
3608
3600 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3609 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3601 arguments passed to magics with spaces, to allow trailing '\' to
3610 arguments passed to magics with spaces, to allow trailing '\' to
3602 work normally (mainly for Windows users).
3611 work normally (mainly for Windows users).
3603
3612
3604 2003-05-29 Fernando Perez <fperez@colorado.edu>
3613 2003-05-29 Fernando Perez <fperez@colorado.edu>
3605
3614
3606 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3615 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3607 instead of pydoc.help. This fixes a bizarre behavior where
3616 instead of pydoc.help. This fixes a bizarre behavior where
3608 printing '%s' % locals() would trigger the help system. Now
3617 printing '%s' % locals() would trigger the help system. Now
3609 ipython behaves like normal python does.
3618 ipython behaves like normal python does.
3610
3619
3611 Note that if one does 'from pydoc import help', the bizarre
3620 Note that if one does 'from pydoc import help', the bizarre
3612 behavior returns, but this will also happen in normal python, so
3621 behavior returns, but this will also happen in normal python, so
3613 it's not an ipython bug anymore (it has to do with how pydoc.help
3622 it's not an ipython bug anymore (it has to do with how pydoc.help
3614 is implemented).
3623 is implemented).
3615
3624
3616 2003-05-22 Fernando Perez <fperez@colorado.edu>
3625 2003-05-22 Fernando Perez <fperez@colorado.edu>
3617
3626
3618 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3627 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3619 return [] instead of None when nothing matches, also match to end
3628 return [] instead of None when nothing matches, also match to end
3620 of line. Patch by Gary Bishop.
3629 of line. Patch by Gary Bishop.
3621
3630
3622 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3631 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3623 protection as before, for files passed on the command line. This
3632 protection as before, for files passed on the command line. This
3624 prevents the CrashHandler from kicking in if user files call into
3633 prevents the CrashHandler from kicking in if user files call into
3625 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3634 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3626 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3635 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3627
3636
3628 2003-05-20 *** Released version 0.4.0
3637 2003-05-20 *** Released version 0.4.0
3629
3638
3630 2003-05-20 Fernando Perez <fperez@colorado.edu>
3639 2003-05-20 Fernando Perez <fperez@colorado.edu>
3631
3640
3632 * setup.py: added support for manpages. It's a bit hackish b/c of
3641 * setup.py: added support for manpages. It's a bit hackish b/c of
3633 a bug in the way the bdist_rpm distutils target handles gzipped
3642 a bug in the way the bdist_rpm distutils target handles gzipped
3634 manpages, but it works. After a patch by Jack.
3643 manpages, but it works. After a patch by Jack.
3635
3644
3636 2003-05-19 Fernando Perez <fperez@colorado.edu>
3645 2003-05-19 Fernando Perez <fperez@colorado.edu>
3637
3646
3638 * IPython/numutils.py: added a mockup of the kinds module, since
3647 * IPython/numutils.py: added a mockup of the kinds module, since
3639 it was recently removed from Numeric. This way, numutils will
3648 it was recently removed from Numeric. This way, numutils will
3640 work for all users even if they are missing kinds.
3649 work for all users even if they are missing kinds.
3641
3650
3642 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3651 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3643 failure, which can occur with SWIG-wrapped extensions. After a
3652 failure, which can occur with SWIG-wrapped extensions. After a
3644 crash report from Prabhu.
3653 crash report from Prabhu.
3645
3654
3646 2003-05-16 Fernando Perez <fperez@colorado.edu>
3655 2003-05-16 Fernando Perez <fperez@colorado.edu>
3647
3656
3648 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3657 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3649 protect ipython from user code which may call directly
3658 protect ipython from user code which may call directly
3650 sys.excepthook (this looks like an ipython crash to the user, even
3659 sys.excepthook (this looks like an ipython crash to the user, even
3651 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3660 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3652 This is especially important to help users of WxWindows, but may
3661 This is especially important to help users of WxWindows, but may
3653 also be useful in other cases.
3662 also be useful in other cases.
3654
3663
3655 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3664 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3656 an optional tb_offset to be specified, and to preserve exception
3665 an optional tb_offset to be specified, and to preserve exception
3657 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3666 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3658
3667
3659 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3668 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3660
3669
3661 2003-05-15 Fernando Perez <fperez@colorado.edu>
3670 2003-05-15 Fernando Perez <fperez@colorado.edu>
3662
3671
3663 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3672 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3664 installing for a new user under Windows.
3673 installing for a new user under Windows.
3665
3674
3666 2003-05-12 Fernando Perez <fperez@colorado.edu>
3675 2003-05-12 Fernando Perez <fperez@colorado.edu>
3667
3676
3668 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3677 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3669 handler for Emacs comint-based lines. Currently it doesn't do
3678 handler for Emacs comint-based lines. Currently it doesn't do
3670 much (but importantly, it doesn't update the history cache). In
3679 much (but importantly, it doesn't update the history cache). In
3671 the future it may be expanded if Alex needs more functionality
3680 the future it may be expanded if Alex needs more functionality
3672 there.
3681 there.
3673
3682
3674 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3683 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3675 info to crash reports.
3684 info to crash reports.
3676
3685
3677 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3686 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3678 just like Python's -c. Also fixed crash with invalid -color
3687 just like Python's -c. Also fixed crash with invalid -color
3679 option value at startup. Thanks to Will French
3688 option value at startup. Thanks to Will French
3680 <wfrench-AT-bestweb.net> for the bug report.
3689 <wfrench-AT-bestweb.net> for the bug report.
3681
3690
3682 2003-05-09 Fernando Perez <fperez@colorado.edu>
3691 2003-05-09 Fernando Perez <fperez@colorado.edu>
3683
3692
3684 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3693 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3685 to EvalDict (it's a mapping, after all) and simplified its code
3694 to EvalDict (it's a mapping, after all) and simplified its code
3686 quite a bit, after a nice discussion on c.l.py where Gustavo
3695 quite a bit, after a nice discussion on c.l.py where Gustavo
3687 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3696 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3688
3697
3689 2003-04-30 Fernando Perez <fperez@colorado.edu>
3698 2003-04-30 Fernando Perez <fperez@colorado.edu>
3690
3699
3691 * IPython/genutils.py (timings_out): modified it to reduce its
3700 * IPython/genutils.py (timings_out): modified it to reduce its
3692 overhead in the common reps==1 case.
3701 overhead in the common reps==1 case.
3693
3702
3694 2003-04-29 Fernando Perez <fperez@colorado.edu>
3703 2003-04-29 Fernando Perez <fperez@colorado.edu>
3695
3704
3696 * IPython/genutils.py (timings_out): Modified to use the resource
3705 * IPython/genutils.py (timings_out): Modified to use the resource
3697 module, which avoids the wraparound problems of time.clock().
3706 module, which avoids the wraparound problems of time.clock().
3698
3707
3699 2003-04-17 *** Released version 0.2.15pre4
3708 2003-04-17 *** Released version 0.2.15pre4
3700
3709
3701 2003-04-17 Fernando Perez <fperez@colorado.edu>
3710 2003-04-17 Fernando Perez <fperez@colorado.edu>
3702
3711
3703 * setup.py (scriptfiles): Split windows-specific stuff over to a
3712 * setup.py (scriptfiles): Split windows-specific stuff over to a
3704 separate file, in an attempt to have a Windows GUI installer.
3713 separate file, in an attempt to have a Windows GUI installer.
3705 That didn't work, but part of the groundwork is done.
3714 That didn't work, but part of the groundwork is done.
3706
3715
3707 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3716 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3708 indent/unindent with 4 spaces. Particularly useful in combination
3717 indent/unindent with 4 spaces. Particularly useful in combination
3709 with the new auto-indent option.
3718 with the new auto-indent option.
3710
3719
3711 2003-04-16 Fernando Perez <fperez@colorado.edu>
3720 2003-04-16 Fernando Perez <fperez@colorado.edu>
3712
3721
3713 * IPython/Magic.py: various replacements of self.rc for
3722 * IPython/Magic.py: various replacements of self.rc for
3714 self.shell.rc. A lot more remains to be done to fully disentangle
3723 self.shell.rc. A lot more remains to be done to fully disentangle
3715 this class from the main Shell class.
3724 this class from the main Shell class.
3716
3725
3717 * IPython/GnuplotRuntime.py: added checks for mouse support so
3726 * IPython/GnuplotRuntime.py: added checks for mouse support so
3718 that we don't try to enable it if the current gnuplot doesn't
3727 that we don't try to enable it if the current gnuplot doesn't
3719 really support it. Also added checks so that we don't try to
3728 really support it. Also added checks so that we don't try to
3720 enable persist under Windows (where Gnuplot doesn't recognize the
3729 enable persist under Windows (where Gnuplot doesn't recognize the
3721 option).
3730 option).
3722
3731
3723 * IPython/iplib.py (InteractiveShell.interact): Added optional
3732 * IPython/iplib.py (InteractiveShell.interact): Added optional
3724 auto-indenting code, after a patch by King C. Shu
3733 auto-indenting code, after a patch by King C. Shu
3725 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3734 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3726 get along well with pasting indented code. If I ever figure out
3735 get along well with pasting indented code. If I ever figure out
3727 how to make that part go well, it will become on by default.
3736 how to make that part go well, it will become on by default.
3728
3737
3729 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3738 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3730 crash ipython if there was an unmatched '%' in the user's prompt
3739 crash ipython if there was an unmatched '%' in the user's prompt
3731 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3740 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3732
3741
3733 * IPython/iplib.py (InteractiveShell.interact): removed the
3742 * IPython/iplib.py (InteractiveShell.interact): removed the
3734 ability to ask the user whether he wants to crash or not at the
3743 ability to ask the user whether he wants to crash or not at the
3735 'last line' exception handler. Calling functions at that point
3744 'last line' exception handler. Calling functions at that point
3736 changes the stack, and the error reports would have incorrect
3745 changes the stack, and the error reports would have incorrect
3737 tracebacks.
3746 tracebacks.
3738
3747
3739 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3748 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3740 pass through a peger a pretty-printed form of any object. After a
3749 pass through a peger a pretty-printed form of any object. After a
3741 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3750 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3742
3751
3743 2003-04-14 Fernando Perez <fperez@colorado.edu>
3752 2003-04-14 Fernando Perez <fperez@colorado.edu>
3744
3753
3745 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3754 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3746 all files in ~ would be modified at first install (instead of
3755 all files in ~ would be modified at first install (instead of
3747 ~/.ipython). This could be potentially disastrous, as the
3756 ~/.ipython). This could be potentially disastrous, as the
3748 modification (make line-endings native) could damage binary files.
3757 modification (make line-endings native) could damage binary files.
3749
3758
3750 2003-04-10 Fernando Perez <fperez@colorado.edu>
3759 2003-04-10 Fernando Perez <fperez@colorado.edu>
3751
3760
3752 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3761 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3753 handle only lines which are invalid python. This now means that
3762 handle only lines which are invalid python. This now means that
3754 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3763 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3755 for the bug report.
3764 for the bug report.
3756
3765
3757 2003-04-01 Fernando Perez <fperez@colorado.edu>
3766 2003-04-01 Fernando Perez <fperez@colorado.edu>
3758
3767
3759 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3768 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3760 where failing to set sys.last_traceback would crash pdb.pm().
3769 where failing to set sys.last_traceback would crash pdb.pm().
3761 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3770 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3762 report.
3771 report.
3763
3772
3764 2003-03-25 Fernando Perez <fperez@colorado.edu>
3773 2003-03-25 Fernando Perez <fperez@colorado.edu>
3765
3774
3766 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3775 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3767 before printing it (it had a lot of spurious blank lines at the
3776 before printing it (it had a lot of spurious blank lines at the
3768 end).
3777 end).
3769
3778
3770 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3779 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3771 output would be sent 21 times! Obviously people don't use this
3780 output would be sent 21 times! Obviously people don't use this
3772 too often, or I would have heard about it.
3781 too often, or I would have heard about it.
3773
3782
3774 2003-03-24 Fernando Perez <fperez@colorado.edu>
3783 2003-03-24 Fernando Perez <fperez@colorado.edu>
3775
3784
3776 * setup.py (scriptfiles): renamed the data_files parameter from
3785 * setup.py (scriptfiles): renamed the data_files parameter from
3777 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3786 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3778 for the patch.
3787 for the patch.
3779
3788
3780 2003-03-20 Fernando Perez <fperez@colorado.edu>
3789 2003-03-20 Fernando Perez <fperez@colorado.edu>
3781
3790
3782 * IPython/genutils.py (error): added error() and fatal()
3791 * IPython/genutils.py (error): added error() and fatal()
3783 functions.
3792 functions.
3784
3793
3785 2003-03-18 *** Released version 0.2.15pre3
3794 2003-03-18 *** Released version 0.2.15pre3
3786
3795
3787 2003-03-18 Fernando Perez <fperez@colorado.edu>
3796 2003-03-18 Fernando Perez <fperez@colorado.edu>
3788
3797
3789 * setupext/install_data_ext.py
3798 * setupext/install_data_ext.py
3790 (install_data_ext.initialize_options): Class contributed by Jack
3799 (install_data_ext.initialize_options): Class contributed by Jack
3791 Moffit for fixing the old distutils hack. He is sending this to
3800 Moffit for fixing the old distutils hack. He is sending this to
3792 the distutils folks so in the future we may not need it as a
3801 the distutils folks so in the future we may not need it as a
3793 private fix.
3802 private fix.
3794
3803
3795 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3804 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3796 changes for Debian packaging. See his patch for full details.
3805 changes for Debian packaging. See his patch for full details.
3797 The old distutils hack of making the ipythonrc* files carry a
3806 The old distutils hack of making the ipythonrc* files carry a
3798 bogus .py extension is gone, at last. Examples were moved to a
3807 bogus .py extension is gone, at last. Examples were moved to a
3799 separate subdir under doc/, and the separate executable scripts
3808 separate subdir under doc/, and the separate executable scripts
3800 now live in their own directory. Overall a great cleanup. The
3809 now live in their own directory. Overall a great cleanup. The
3801 manual was updated to use the new files, and setup.py has been
3810 manual was updated to use the new files, and setup.py has been
3802 fixed for this setup.
3811 fixed for this setup.
3803
3812
3804 * IPython/PyColorize.py (Parser.usage): made non-executable and
3813 * IPython/PyColorize.py (Parser.usage): made non-executable and
3805 created a pycolor wrapper around it to be included as a script.
3814 created a pycolor wrapper around it to be included as a script.
3806
3815
3807 2003-03-12 *** Released version 0.2.15pre2
3816 2003-03-12 *** Released version 0.2.15pre2
3808
3817
3809 2003-03-12 Fernando Perez <fperez@colorado.edu>
3818 2003-03-12 Fernando Perez <fperez@colorado.edu>
3810
3819
3811 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3820 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3812 long-standing problem with garbage characters in some terminals.
3821 long-standing problem with garbage characters in some terminals.
3813 The issue was really that the \001 and \002 escapes must _only_ be
3822 The issue was really that the \001 and \002 escapes must _only_ be
3814 passed to input prompts (which call readline), but _never_ to
3823 passed to input prompts (which call readline), but _never_ to
3815 normal text to be printed on screen. I changed ColorANSI to have
3824 normal text to be printed on screen. I changed ColorANSI to have
3816 two classes: TermColors and InputTermColors, each with the
3825 two classes: TermColors and InputTermColors, each with the
3817 appropriate escapes for input prompts or normal text. The code in
3826 appropriate escapes for input prompts or normal text. The code in
3818 Prompts.py got slightly more complicated, but this very old and
3827 Prompts.py got slightly more complicated, but this very old and
3819 annoying bug is finally fixed.
3828 annoying bug is finally fixed.
3820
3829
3821 All the credit for nailing down the real origin of this problem
3830 All the credit for nailing down the real origin of this problem
3822 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3831 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3823 *Many* thanks to him for spending quite a bit of effort on this.
3832 *Many* thanks to him for spending quite a bit of effort on this.
3824
3833
3825 2003-03-05 *** Released version 0.2.15pre1
3834 2003-03-05 *** Released version 0.2.15pre1
3826
3835
3827 2003-03-03 Fernando Perez <fperez@colorado.edu>
3836 2003-03-03 Fernando Perez <fperez@colorado.edu>
3828
3837
3829 * IPython/FakeModule.py: Moved the former _FakeModule to a
3838 * IPython/FakeModule.py: Moved the former _FakeModule to a
3830 separate file, because it's also needed by Magic (to fix a similar
3839 separate file, because it's also needed by Magic (to fix a similar
3831 pickle-related issue in @run).
3840 pickle-related issue in @run).
3832
3841
3833 2003-03-02 Fernando Perez <fperez@colorado.edu>
3842 2003-03-02 Fernando Perez <fperez@colorado.edu>
3834
3843
3835 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3844 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3836 the autocall option at runtime.
3845 the autocall option at runtime.
3837 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3846 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3838 across Magic.py to start separating Magic from InteractiveShell.
3847 across Magic.py to start separating Magic from InteractiveShell.
3839 (Magic._ofind): Fixed to return proper namespace for dotted
3848 (Magic._ofind): Fixed to return proper namespace for dotted
3840 names. Before, a dotted name would always return 'not currently
3849 names. Before, a dotted name would always return 'not currently
3841 defined', because it would find the 'parent'. s.x would be found,
3850 defined', because it would find the 'parent'. s.x would be found,
3842 but since 'x' isn't defined by itself, it would get confused.
3851 but since 'x' isn't defined by itself, it would get confused.
3843 (Magic.magic_run): Fixed pickling problems reported by Ralf
3852 (Magic.magic_run): Fixed pickling problems reported by Ralf
3844 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3853 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3845 that I'd used when Mike Heeter reported similar issues at the
3854 that I'd used when Mike Heeter reported similar issues at the
3846 top-level, but now for @run. It boils down to injecting the
3855 top-level, but now for @run. It boils down to injecting the
3847 namespace where code is being executed with something that looks
3856 namespace where code is being executed with something that looks
3848 enough like a module to fool pickle.dump(). Since a pickle stores
3857 enough like a module to fool pickle.dump(). Since a pickle stores
3849 a named reference to the importing module, we need this for
3858 a named reference to the importing module, we need this for
3850 pickles to save something sensible.
3859 pickles to save something sensible.
3851
3860
3852 * IPython/ipmaker.py (make_IPython): added an autocall option.
3861 * IPython/ipmaker.py (make_IPython): added an autocall option.
3853
3862
3854 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3863 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3855 the auto-eval code. Now autocalling is an option, and the code is
3864 the auto-eval code. Now autocalling is an option, and the code is
3856 also vastly safer. There is no more eval() involved at all.
3865 also vastly safer. There is no more eval() involved at all.
3857
3866
3858 2003-03-01 Fernando Perez <fperez@colorado.edu>
3867 2003-03-01 Fernando Perez <fperez@colorado.edu>
3859
3868
3860 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3869 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3861 dict with named keys instead of a tuple.
3870 dict with named keys instead of a tuple.
3862
3871
3863 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3872 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3864
3873
3865 * setup.py (make_shortcut): Fixed message about directories
3874 * setup.py (make_shortcut): Fixed message about directories
3866 created during Windows installation (the directories were ok, just
3875 created during Windows installation (the directories were ok, just
3867 the printed message was misleading). Thanks to Chris Liechti
3876 the printed message was misleading). Thanks to Chris Liechti
3868 <cliechti-AT-gmx.net> for the heads up.
3877 <cliechti-AT-gmx.net> for the heads up.
3869
3878
3870 2003-02-21 Fernando Perez <fperez@colorado.edu>
3879 2003-02-21 Fernando Perez <fperez@colorado.edu>
3871
3880
3872 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3881 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3873 of ValueError exception when checking for auto-execution. This
3882 of ValueError exception when checking for auto-execution. This
3874 one is raised by things like Numeric arrays arr.flat when the
3883 one is raised by things like Numeric arrays arr.flat when the
3875 array is non-contiguous.
3884 array is non-contiguous.
3876
3885
3877 2003-01-31 Fernando Perez <fperez@colorado.edu>
3886 2003-01-31 Fernando Perez <fperez@colorado.edu>
3878
3887
3879 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3888 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3880 not return any value at all (even though the command would get
3889 not return any value at all (even though the command would get
3881 executed).
3890 executed).
3882 (xsys): Flush stdout right after printing the command to ensure
3891 (xsys): Flush stdout right after printing the command to ensure
3883 proper ordering of commands and command output in the total
3892 proper ordering of commands and command output in the total
3884 output.
3893 output.
3885 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3894 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3886 system/getoutput as defaults. The old ones are kept for
3895 system/getoutput as defaults. The old ones are kept for
3887 compatibility reasons, so no code which uses this library needs
3896 compatibility reasons, so no code which uses this library needs
3888 changing.
3897 changing.
3889
3898
3890 2003-01-27 *** Released version 0.2.14
3899 2003-01-27 *** Released version 0.2.14
3891
3900
3892 2003-01-25 Fernando Perez <fperez@colorado.edu>
3901 2003-01-25 Fernando Perez <fperez@colorado.edu>
3893
3902
3894 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3903 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3895 functions defined in previous edit sessions could not be re-edited
3904 functions defined in previous edit sessions could not be re-edited
3896 (because the temp files were immediately removed). Now temp files
3905 (because the temp files were immediately removed). Now temp files
3897 are removed only at IPython's exit.
3906 are removed only at IPython's exit.
3898 (Magic.magic_run): Improved @run to perform shell-like expansions
3907 (Magic.magic_run): Improved @run to perform shell-like expansions
3899 on its arguments (~users and $VARS). With this, @run becomes more
3908 on its arguments (~users and $VARS). With this, @run becomes more
3900 like a normal command-line.
3909 like a normal command-line.
3901
3910
3902 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3911 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3903 bugs related to embedding and cleaned up that code. A fairly
3912 bugs related to embedding and cleaned up that code. A fairly
3904 important one was the impossibility to access the global namespace
3913 important one was the impossibility to access the global namespace
3905 through the embedded IPython (only local variables were visible).
3914 through the embedded IPython (only local variables were visible).
3906
3915
3907 2003-01-14 Fernando Perez <fperez@colorado.edu>
3916 2003-01-14 Fernando Perez <fperez@colorado.edu>
3908
3917
3909 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3918 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3910 auto-calling to be a bit more conservative. Now it doesn't get
3919 auto-calling to be a bit more conservative. Now it doesn't get
3911 triggered if any of '!=()<>' are in the rest of the input line, to
3920 triggered if any of '!=()<>' are in the rest of the input line, to
3912 allow comparing callables. Thanks to Alex for the heads up.
3921 allow comparing callables. Thanks to Alex for the heads up.
3913
3922
3914 2003-01-07 Fernando Perez <fperez@colorado.edu>
3923 2003-01-07 Fernando Perez <fperez@colorado.edu>
3915
3924
3916 * IPython/genutils.py (page): fixed estimation of the number of
3925 * IPython/genutils.py (page): fixed estimation of the number of
3917 lines in a string to be paged to simply count newlines. This
3926 lines in a string to be paged to simply count newlines. This
3918 prevents over-guessing due to embedded escape sequences. A better
3927 prevents over-guessing due to embedded escape sequences. A better
3919 long-term solution would involve stripping out the control chars
3928 long-term solution would involve stripping out the control chars
3920 for the count, but it's potentially so expensive I just don't
3929 for the count, but it's potentially so expensive I just don't
3921 think it's worth doing.
3930 think it's worth doing.
3922
3931
3923 2002-12-19 *** Released version 0.2.14pre50
3932 2002-12-19 *** Released version 0.2.14pre50
3924
3933
3925 2002-12-19 Fernando Perez <fperez@colorado.edu>
3934 2002-12-19 Fernando Perez <fperez@colorado.edu>
3926
3935
3927 * tools/release (version): Changed release scripts to inform
3936 * tools/release (version): Changed release scripts to inform
3928 Andrea and build a NEWS file with a list of recent changes.
3937 Andrea and build a NEWS file with a list of recent changes.
3929
3938
3930 * IPython/ColorANSI.py (__all__): changed terminal detection
3939 * IPython/ColorANSI.py (__all__): changed terminal detection
3931 code. Seems to work better for xterms without breaking
3940 code. Seems to work better for xterms without breaking
3932 konsole. Will need more testing to determine if WinXP and Mac OSX
3941 konsole. Will need more testing to determine if WinXP and Mac OSX
3933 also work ok.
3942 also work ok.
3934
3943
3935 2002-12-18 *** Released version 0.2.14pre49
3944 2002-12-18 *** Released version 0.2.14pre49
3936
3945
3937 2002-12-18 Fernando Perez <fperez@colorado.edu>
3946 2002-12-18 Fernando Perez <fperez@colorado.edu>
3938
3947
3939 * Docs: added new info about Mac OSX, from Andrea.
3948 * Docs: added new info about Mac OSX, from Andrea.
3940
3949
3941 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3950 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3942 allow direct plotting of python strings whose format is the same
3951 allow direct plotting of python strings whose format is the same
3943 of gnuplot data files.
3952 of gnuplot data files.
3944
3953
3945 2002-12-16 Fernando Perez <fperez@colorado.edu>
3954 2002-12-16 Fernando Perez <fperez@colorado.edu>
3946
3955
3947 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3956 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3948 value of exit question to be acknowledged.
3957 value of exit question to be acknowledged.
3949
3958
3950 2002-12-03 Fernando Perez <fperez@colorado.edu>
3959 2002-12-03 Fernando Perez <fperez@colorado.edu>
3951
3960
3952 * IPython/ipmaker.py: removed generators, which had been added
3961 * IPython/ipmaker.py: removed generators, which had been added
3953 by mistake in an earlier debugging run. This was causing trouble
3962 by mistake in an earlier debugging run. This was causing trouble
3954 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3963 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3955 for pointing this out.
3964 for pointing this out.
3956
3965
3957 2002-11-17 Fernando Perez <fperez@colorado.edu>
3966 2002-11-17 Fernando Perez <fperez@colorado.edu>
3958
3967
3959 * Manual: updated the Gnuplot section.
3968 * Manual: updated the Gnuplot section.
3960
3969
3961 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3970 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3962 a much better split of what goes in Runtime and what goes in
3971 a much better split of what goes in Runtime and what goes in
3963 Interactive.
3972 Interactive.
3964
3973
3965 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3974 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3966 being imported from iplib.
3975 being imported from iplib.
3967
3976
3968 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3977 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3969 for command-passing. Now the global Gnuplot instance is called
3978 for command-passing. Now the global Gnuplot instance is called
3970 'gp' instead of 'g', which was really a far too fragile and
3979 'gp' instead of 'g', which was really a far too fragile and
3971 common name.
3980 common name.
3972
3981
3973 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3982 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3974 bounding boxes generated by Gnuplot for square plots.
3983 bounding boxes generated by Gnuplot for square plots.
3975
3984
3976 * IPython/genutils.py (popkey): new function added. I should
3985 * IPython/genutils.py (popkey): new function added. I should
3977 suggest this on c.l.py as a dict method, it seems useful.
3986 suggest this on c.l.py as a dict method, it seems useful.
3978
3987
3979 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3988 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3980 to transparently handle PostScript generation. MUCH better than
3989 to transparently handle PostScript generation. MUCH better than
3981 the previous plot_eps/replot_eps (which I removed now). The code
3990 the previous plot_eps/replot_eps (which I removed now). The code
3982 is also fairly clean and well documented now (including
3991 is also fairly clean and well documented now (including
3983 docstrings).
3992 docstrings).
3984
3993
3985 2002-11-13 Fernando Perez <fperez@colorado.edu>
3994 2002-11-13 Fernando Perez <fperez@colorado.edu>
3986
3995
3987 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3996 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3988 (inconsistent with options).
3997 (inconsistent with options).
3989
3998
3990 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3999 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3991 manually disabled, I don't know why. Fixed it.
4000 manually disabled, I don't know why. Fixed it.
3992 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4001 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3993 eps output.
4002 eps output.
3994
4003
3995 2002-11-12 Fernando Perez <fperez@colorado.edu>
4004 2002-11-12 Fernando Perez <fperez@colorado.edu>
3996
4005
3997 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4006 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3998 don't propagate up to caller. Fixes crash reported by François
4007 don't propagate up to caller. Fixes crash reported by François
3999 Pinard.
4008 Pinard.
4000
4009
4001 2002-11-09 Fernando Perez <fperez@colorado.edu>
4010 2002-11-09 Fernando Perez <fperez@colorado.edu>
4002
4011
4003 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4012 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4004 history file for new users.
4013 history file for new users.
4005 (make_IPython): fixed bug where initial install would leave the
4014 (make_IPython): fixed bug where initial install would leave the
4006 user running in the .ipython dir.
4015 user running in the .ipython dir.
4007 (make_IPython): fixed bug where config dir .ipython would be
4016 (make_IPython): fixed bug where config dir .ipython would be
4008 created regardless of the given -ipythondir option. Thanks to Cory
4017 created regardless of the given -ipythondir option. Thanks to Cory
4009 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4018 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4010
4019
4011 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4020 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4012 type confirmations. Will need to use it in all of IPython's code
4021 type confirmations. Will need to use it in all of IPython's code
4013 consistently.
4022 consistently.
4014
4023
4015 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4024 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4016 context to print 31 lines instead of the default 5. This will make
4025 context to print 31 lines instead of the default 5. This will make
4017 the crash reports extremely detailed in case the problem is in
4026 the crash reports extremely detailed in case the problem is in
4018 libraries I don't have access to.
4027 libraries I don't have access to.
4019
4028
4020 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4029 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4021 line of defense' code to still crash, but giving users fair
4030 line of defense' code to still crash, but giving users fair
4022 warning. I don't want internal errors to go unreported: if there's
4031 warning. I don't want internal errors to go unreported: if there's
4023 an internal problem, IPython should crash and generate a full
4032 an internal problem, IPython should crash and generate a full
4024 report.
4033 report.
4025
4034
4026 2002-11-08 Fernando Perez <fperez@colorado.edu>
4035 2002-11-08 Fernando Perez <fperez@colorado.edu>
4027
4036
4028 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4037 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4029 otherwise uncaught exceptions which can appear if people set
4038 otherwise uncaught exceptions which can appear if people set
4030 sys.stdout to something badly broken. Thanks to a crash report
4039 sys.stdout to something badly broken. Thanks to a crash report
4031 from henni-AT-mail.brainbot.com.
4040 from henni-AT-mail.brainbot.com.
4032
4041
4033 2002-11-04 Fernando Perez <fperez@colorado.edu>
4042 2002-11-04 Fernando Perez <fperez@colorado.edu>
4034
4043
4035 * IPython/iplib.py (InteractiveShell.interact): added
4044 * IPython/iplib.py (InteractiveShell.interact): added
4036 __IPYTHON__active to the builtins. It's a flag which goes on when
4045 __IPYTHON__active to the builtins. It's a flag which goes on when
4037 the interaction starts and goes off again when it stops. This
4046 the interaction starts and goes off again when it stops. This
4038 allows embedding code to detect being inside IPython. Before this
4047 allows embedding code to detect being inside IPython. Before this
4039 was done via __IPYTHON__, but that only shows that an IPython
4048 was done via __IPYTHON__, but that only shows that an IPython
4040 instance has been created.
4049 instance has been created.
4041
4050
4042 * IPython/Magic.py (Magic.magic_env): I realized that in a
4051 * IPython/Magic.py (Magic.magic_env): I realized that in a
4043 UserDict, instance.data holds the data as a normal dict. So I
4052 UserDict, instance.data holds the data as a normal dict. So I
4044 modified @env to return os.environ.data instead of rebuilding a
4053 modified @env to return os.environ.data instead of rebuilding a
4045 dict by hand.
4054 dict by hand.
4046
4055
4047 2002-11-02 Fernando Perez <fperez@colorado.edu>
4056 2002-11-02 Fernando Perez <fperez@colorado.edu>
4048
4057
4049 * IPython/genutils.py (warn): changed so that level 1 prints no
4058 * IPython/genutils.py (warn): changed so that level 1 prints no
4050 header. Level 2 is now the default (with 'WARNING' header, as
4059 header. Level 2 is now the default (with 'WARNING' header, as
4051 before). I think I tracked all places where changes were needed in
4060 before). I think I tracked all places where changes were needed in
4052 IPython, but outside code using the old level numbering may have
4061 IPython, but outside code using the old level numbering may have
4053 broken.
4062 broken.
4054
4063
4055 * IPython/iplib.py (InteractiveShell.runcode): added this to
4064 * IPython/iplib.py (InteractiveShell.runcode): added this to
4056 handle the tracebacks in SystemExit traps correctly. The previous
4065 handle the tracebacks in SystemExit traps correctly. The previous
4057 code (through interact) was printing more of the stack than
4066 code (through interact) was printing more of the stack than
4058 necessary, showing IPython internal code to the user.
4067 necessary, showing IPython internal code to the user.
4059
4068
4060 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4069 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4061 default. Now that the default at the confirmation prompt is yes,
4070 default. Now that the default at the confirmation prompt is yes,
4062 it's not so intrusive. François' argument that ipython sessions
4071 it's not so intrusive. François' argument that ipython sessions
4063 tend to be complex enough not to lose them from an accidental C-d,
4072 tend to be complex enough not to lose them from an accidental C-d,
4064 is a valid one.
4073 is a valid one.
4065
4074
4066 * IPython/iplib.py (InteractiveShell.interact): added a
4075 * IPython/iplib.py (InteractiveShell.interact): added a
4067 showtraceback() call to the SystemExit trap, and modified the exit
4076 showtraceback() call to the SystemExit trap, and modified the exit
4068 confirmation to have yes as the default.
4077 confirmation to have yes as the default.
4069
4078
4070 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4079 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4071 this file. It's been gone from the code for a long time, this was
4080 this file. It's been gone from the code for a long time, this was
4072 simply leftover junk.
4081 simply leftover junk.
4073
4082
4074 2002-11-01 Fernando Perez <fperez@colorado.edu>
4083 2002-11-01 Fernando Perez <fperez@colorado.edu>
4075
4084
4076 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4085 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4077 added. If set, IPython now traps EOF and asks for
4086 added. If set, IPython now traps EOF and asks for
4078 confirmation. After a request by François Pinard.
4087 confirmation. After a request by François Pinard.
4079
4088
4080 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4089 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4081 of @abort, and with a new (better) mechanism for handling the
4090 of @abort, and with a new (better) mechanism for handling the
4082 exceptions.
4091 exceptions.
4083
4092
4084 2002-10-27 Fernando Perez <fperez@colorado.edu>
4093 2002-10-27 Fernando Perez <fperez@colorado.edu>
4085
4094
4086 * IPython/usage.py (__doc__): updated the --help information and
4095 * IPython/usage.py (__doc__): updated the --help information and
4087 the ipythonrc file to indicate that -log generates
4096 the ipythonrc file to indicate that -log generates
4088 ./ipython.log. Also fixed the corresponding info in @logstart.
4097 ./ipython.log. Also fixed the corresponding info in @logstart.
4089 This and several other fixes in the manuals thanks to reports by
4098 This and several other fixes in the manuals thanks to reports by
4090 François Pinard <pinard-AT-iro.umontreal.ca>.
4099 François Pinard <pinard-AT-iro.umontreal.ca>.
4091
4100
4092 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4101 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4093 refer to @logstart (instead of @log, which doesn't exist).
4102 refer to @logstart (instead of @log, which doesn't exist).
4094
4103
4095 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4104 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4096 AttributeError crash. Thanks to Christopher Armstrong
4105 AttributeError crash. Thanks to Christopher Armstrong
4097 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4106 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4098 introduced recently (in 0.2.14pre37) with the fix to the eval
4107 introduced recently (in 0.2.14pre37) with the fix to the eval
4099 problem mentioned below.
4108 problem mentioned below.
4100
4109
4101 2002-10-17 Fernando Perez <fperez@colorado.edu>
4110 2002-10-17 Fernando Perez <fperez@colorado.edu>
4102
4111
4103 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4112 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4104 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4113 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4105
4114
4106 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4115 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4107 this function to fix a problem reported by Alex Schmolck. He saw
4116 this function to fix a problem reported by Alex Schmolck. He saw
4108 it with list comprehensions and generators, which were getting
4117 it with list comprehensions and generators, which were getting
4109 called twice. The real problem was an 'eval' call in testing for
4118 called twice. The real problem was an 'eval' call in testing for
4110 automagic which was evaluating the input line silently.
4119 automagic which was evaluating the input line silently.
4111
4120
4112 This is a potentially very nasty bug, if the input has side
4121 This is a potentially very nasty bug, if the input has side
4113 effects which must not be repeated. The code is much cleaner now,
4122 effects which must not be repeated. The code is much cleaner now,
4114 without any blanket 'except' left and with a regexp test for
4123 without any blanket 'except' left and with a regexp test for
4115 actual function names.
4124 actual function names.
4116
4125
4117 But an eval remains, which I'm not fully comfortable with. I just
4126 But an eval remains, which I'm not fully comfortable with. I just
4118 don't know how to find out if an expression could be a callable in
4127 don't know how to find out if an expression could be a callable in
4119 the user's namespace without doing an eval on the string. However
4128 the user's namespace without doing an eval on the string. However
4120 that string is now much more strictly checked so that no code
4129 that string is now much more strictly checked so that no code
4121 slips by, so the eval should only happen for things that can
4130 slips by, so the eval should only happen for things that can
4122 really be only function/method names.
4131 really be only function/method names.
4123
4132
4124 2002-10-15 Fernando Perez <fperez@colorado.edu>
4133 2002-10-15 Fernando Perez <fperez@colorado.edu>
4125
4134
4126 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4135 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4127 OSX information to main manual, removed README_Mac_OSX file from
4136 OSX information to main manual, removed README_Mac_OSX file from
4128 distribution. Also updated credits for recent additions.
4137 distribution. Also updated credits for recent additions.
4129
4138
4130 2002-10-10 Fernando Perez <fperez@colorado.edu>
4139 2002-10-10 Fernando Perez <fperez@colorado.edu>
4131
4140
4132 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4141 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4133 terminal-related issues. Many thanks to Andrea Riciputi
4142 terminal-related issues. Many thanks to Andrea Riciputi
4134 <andrea.riciputi-AT-libero.it> for writing it.
4143 <andrea.riciputi-AT-libero.it> for writing it.
4135
4144
4136 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4145 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4137 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4146 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4138
4147
4139 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4148 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4140 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4149 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4141 <syver-en-AT-online.no> who both submitted patches for this problem.
4150 <syver-en-AT-online.no> who both submitted patches for this problem.
4142
4151
4143 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4152 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4144 global embedding to make sure that things don't overwrite user
4153 global embedding to make sure that things don't overwrite user
4145 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4154 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4146
4155
4147 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4156 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4148 compatibility. Thanks to Hayden Callow
4157 compatibility. Thanks to Hayden Callow
4149 <h.callow-AT-elec.canterbury.ac.nz>
4158 <h.callow-AT-elec.canterbury.ac.nz>
4150
4159
4151 2002-10-04 Fernando Perez <fperez@colorado.edu>
4160 2002-10-04 Fernando Perez <fperez@colorado.edu>
4152
4161
4153 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4162 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4154 Gnuplot.File objects.
4163 Gnuplot.File objects.
4155
4164
4156 2002-07-23 Fernando Perez <fperez@colorado.edu>
4165 2002-07-23 Fernando Perez <fperez@colorado.edu>
4157
4166
4158 * IPython/genutils.py (timing): Added timings() and timing() for
4167 * IPython/genutils.py (timing): Added timings() and timing() for
4159 quick access to the most commonly needed data, the execution
4168 quick access to the most commonly needed data, the execution
4160 times. Old timing() renamed to timings_out().
4169 times. Old timing() renamed to timings_out().
4161
4170
4162 2002-07-18 Fernando Perez <fperez@colorado.edu>
4171 2002-07-18 Fernando Perez <fperez@colorado.edu>
4163
4172
4164 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4173 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4165 bug with nested instances disrupting the parent's tab completion.
4174 bug with nested instances disrupting the parent's tab completion.
4166
4175
4167 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4176 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4168 all_completions code to begin the emacs integration.
4177 all_completions code to begin the emacs integration.
4169
4178
4170 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4179 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4171 argument to allow titling individual arrays when plotting.
4180 argument to allow titling individual arrays when plotting.
4172
4181
4173 2002-07-15 Fernando Perez <fperez@colorado.edu>
4182 2002-07-15 Fernando Perez <fperez@colorado.edu>
4174
4183
4175 * setup.py (make_shortcut): changed to retrieve the value of
4184 * setup.py (make_shortcut): changed to retrieve the value of
4176 'Program Files' directory from the registry (this value changes in
4185 'Program Files' directory from the registry (this value changes in
4177 non-english versions of Windows). Thanks to Thomas Fanslau
4186 non-english versions of Windows). Thanks to Thomas Fanslau
4178 <tfanslau-AT-gmx.de> for the report.
4187 <tfanslau-AT-gmx.de> for the report.
4179
4188
4180 2002-07-10 Fernando Perez <fperez@colorado.edu>
4189 2002-07-10 Fernando Perez <fperez@colorado.edu>
4181
4190
4182 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4191 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4183 a bug in pdb, which crashes if a line with only whitespace is
4192 a bug in pdb, which crashes if a line with only whitespace is
4184 entered. Bug report submitted to sourceforge.
4193 entered. Bug report submitted to sourceforge.
4185
4194
4186 2002-07-09 Fernando Perez <fperez@colorado.edu>
4195 2002-07-09 Fernando Perez <fperez@colorado.edu>
4187
4196
4188 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4197 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4189 reporting exceptions (it's a bug in inspect.py, I just set a
4198 reporting exceptions (it's a bug in inspect.py, I just set a
4190 workaround).
4199 workaround).
4191
4200
4192 2002-07-08 Fernando Perez <fperez@colorado.edu>
4201 2002-07-08 Fernando Perez <fperez@colorado.edu>
4193
4202
4194 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4203 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4195 __IPYTHON__ in __builtins__ to show up in user_ns.
4204 __IPYTHON__ in __builtins__ to show up in user_ns.
4196
4205
4197 2002-07-03 Fernando Perez <fperez@colorado.edu>
4206 2002-07-03 Fernando Perez <fperez@colorado.edu>
4198
4207
4199 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4208 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4200 name from @gp_set_instance to @gp_set_default.
4209 name from @gp_set_instance to @gp_set_default.
4201
4210
4202 * IPython/ipmaker.py (make_IPython): default editor value set to
4211 * IPython/ipmaker.py (make_IPython): default editor value set to
4203 '0' (a string), to match the rc file. Otherwise will crash when
4212 '0' (a string), to match the rc file. Otherwise will crash when
4204 .strip() is called on it.
4213 .strip() is called on it.
4205
4214
4206
4215
4207 2002-06-28 Fernando Perez <fperez@colorado.edu>
4216 2002-06-28 Fernando Perez <fperez@colorado.edu>
4208
4217
4209 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4218 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4210 of files in current directory when a file is executed via
4219 of files in current directory when a file is executed via
4211 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4220 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4212
4221
4213 * setup.py (manfiles): fix for rpm builds, submitted by RA
4222 * setup.py (manfiles): fix for rpm builds, submitted by RA
4214 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4223 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4215
4224
4216 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4225 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4217 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4226 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4218 string!). A. Schmolck caught this one.
4227 string!). A. Schmolck caught this one.
4219
4228
4220 2002-06-27 Fernando Perez <fperez@colorado.edu>
4229 2002-06-27 Fernando Perez <fperez@colorado.edu>
4221
4230
4222 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4231 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4223 defined files at the cmd line. __name__ wasn't being set to
4232 defined files at the cmd line. __name__ wasn't being set to
4224 __main__.
4233 __main__.
4225
4234
4226 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4235 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4227 regular lists and tuples besides Numeric arrays.
4236 regular lists and tuples besides Numeric arrays.
4228
4237
4229 * IPython/Prompts.py (CachedOutput.__call__): Added output
4238 * IPython/Prompts.py (CachedOutput.__call__): Added output
4230 supression for input ending with ';'. Similar to Mathematica and
4239 supression for input ending with ';'. Similar to Mathematica and
4231 Matlab. The _* vars and Out[] list are still updated, just like
4240 Matlab. The _* vars and Out[] list are still updated, just like
4232 Mathematica behaves.
4241 Mathematica behaves.
4233
4242
4234 2002-06-25 Fernando Perez <fperez@colorado.edu>
4243 2002-06-25 Fernando Perez <fperez@colorado.edu>
4235
4244
4236 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4245 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4237 .ini extensions for profiels under Windows.
4246 .ini extensions for profiels under Windows.
4238
4247
4239 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4248 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4240 string form. Fix contributed by Alexander Schmolck
4249 string form. Fix contributed by Alexander Schmolck
4241 <a.schmolck-AT-gmx.net>
4250 <a.schmolck-AT-gmx.net>
4242
4251
4243 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4252 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4244 pre-configured Gnuplot instance.
4253 pre-configured Gnuplot instance.
4245
4254
4246 2002-06-21 Fernando Perez <fperez@colorado.edu>
4255 2002-06-21 Fernando Perez <fperez@colorado.edu>
4247
4256
4248 * IPython/numutils.py (exp_safe): new function, works around the
4257 * IPython/numutils.py (exp_safe): new function, works around the
4249 underflow problems in Numeric.
4258 underflow problems in Numeric.
4250 (log2): New fn. Safe log in base 2: returns exact integer answer
4259 (log2): New fn. Safe log in base 2: returns exact integer answer
4251 for exact integer powers of 2.
4260 for exact integer powers of 2.
4252
4261
4253 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4262 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4254 properly.
4263 properly.
4255
4264
4256 2002-06-20 Fernando Perez <fperez@colorado.edu>
4265 2002-06-20 Fernando Perez <fperez@colorado.edu>
4257
4266
4258 * IPython/genutils.py (timing): new function like
4267 * IPython/genutils.py (timing): new function like
4259 Mathematica's. Similar to time_test, but returns more info.
4268 Mathematica's. Similar to time_test, but returns more info.
4260
4269
4261 2002-06-18 Fernando Perez <fperez@colorado.edu>
4270 2002-06-18 Fernando Perez <fperez@colorado.edu>
4262
4271
4263 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4272 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4264 according to Mike Heeter's suggestions.
4273 according to Mike Heeter's suggestions.
4265
4274
4266 2002-06-16 Fernando Perez <fperez@colorado.edu>
4275 2002-06-16 Fernando Perez <fperez@colorado.edu>
4267
4276
4268 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4277 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4269 system. GnuplotMagic is gone as a user-directory option. New files
4278 system. GnuplotMagic is gone as a user-directory option. New files
4270 make it easier to use all the gnuplot stuff both from external
4279 make it easier to use all the gnuplot stuff both from external
4271 programs as well as from IPython. Had to rewrite part of
4280 programs as well as from IPython. Had to rewrite part of
4272 hardcopy() b/c of a strange bug: often the ps files simply don't
4281 hardcopy() b/c of a strange bug: often the ps files simply don't
4273 get created, and require a repeat of the command (often several
4282 get created, and require a repeat of the command (often several
4274 times).
4283 times).
4275
4284
4276 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4285 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4277 resolve output channel at call time, so that if sys.stderr has
4286 resolve output channel at call time, so that if sys.stderr has
4278 been redirected by user this gets honored.
4287 been redirected by user this gets honored.
4279
4288
4280 2002-06-13 Fernando Perez <fperez@colorado.edu>
4289 2002-06-13 Fernando Perez <fperez@colorado.edu>
4281
4290
4282 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4291 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4283 IPShell. Kept a copy with the old names to avoid breaking people's
4292 IPShell. Kept a copy with the old names to avoid breaking people's
4284 embedded code.
4293 embedded code.
4285
4294
4286 * IPython/ipython: simplified it to the bare minimum after
4295 * IPython/ipython: simplified it to the bare minimum after
4287 Holger's suggestions. Added info about how to use it in
4296 Holger's suggestions. Added info about how to use it in
4288 PYTHONSTARTUP.
4297 PYTHONSTARTUP.
4289
4298
4290 * IPython/Shell.py (IPythonShell): changed the options passing
4299 * IPython/Shell.py (IPythonShell): changed the options passing
4291 from a string with funky %s replacements to a straight list. Maybe
4300 from a string with funky %s replacements to a straight list. Maybe
4292 a bit more typing, but it follows sys.argv conventions, so there's
4301 a bit more typing, but it follows sys.argv conventions, so there's
4293 less special-casing to remember.
4302 less special-casing to remember.
4294
4303
4295 2002-06-12 Fernando Perez <fperez@colorado.edu>
4304 2002-06-12 Fernando Perez <fperez@colorado.edu>
4296
4305
4297 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4306 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4298 command. Thanks to a suggestion by Mike Heeter.
4307 command. Thanks to a suggestion by Mike Heeter.
4299 (Magic.magic_pfile): added behavior to look at filenames if given
4308 (Magic.magic_pfile): added behavior to look at filenames if given
4300 arg is not a defined object.
4309 arg is not a defined object.
4301 (Magic.magic_save): New @save function to save code snippets. Also
4310 (Magic.magic_save): New @save function to save code snippets. Also
4302 a Mike Heeter idea.
4311 a Mike Heeter idea.
4303
4312
4304 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4313 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4305 plot() and replot(). Much more convenient now, especially for
4314 plot() and replot(). Much more convenient now, especially for
4306 interactive use.
4315 interactive use.
4307
4316
4308 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4317 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4309 filenames.
4318 filenames.
4310
4319
4311 2002-06-02 Fernando Perez <fperez@colorado.edu>
4320 2002-06-02 Fernando Perez <fperez@colorado.edu>
4312
4321
4313 * IPython/Struct.py (Struct.__init__): modified to admit
4322 * IPython/Struct.py (Struct.__init__): modified to admit
4314 initialization via another struct.
4323 initialization via another struct.
4315
4324
4316 * IPython/genutils.py (SystemExec.__init__): New stateful
4325 * IPython/genutils.py (SystemExec.__init__): New stateful
4317 interface to xsys and bq. Useful for writing system scripts.
4326 interface to xsys and bq. Useful for writing system scripts.
4318
4327
4319 2002-05-30 Fernando Perez <fperez@colorado.edu>
4328 2002-05-30 Fernando Perez <fperez@colorado.edu>
4320
4329
4321 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4330 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4322 documents. This will make the user download smaller (it's getting
4331 documents. This will make the user download smaller (it's getting
4323 too big).
4332 too big).
4324
4333
4325 2002-05-29 Fernando Perez <fperez@colorado.edu>
4334 2002-05-29 Fernando Perez <fperez@colorado.edu>
4326
4335
4327 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4336 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4328 fix problems with shelve and pickle. Seems to work, but I don't
4337 fix problems with shelve and pickle. Seems to work, but I don't
4329 know if corner cases break it. Thanks to Mike Heeter
4338 know if corner cases break it. Thanks to Mike Heeter
4330 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4339 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4331
4340
4332 2002-05-24 Fernando Perez <fperez@colorado.edu>
4341 2002-05-24 Fernando Perez <fperez@colorado.edu>
4333
4342
4334 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4343 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4335 macros having broken.
4344 macros having broken.
4336
4345
4337 2002-05-21 Fernando Perez <fperez@colorado.edu>
4346 2002-05-21 Fernando Perez <fperez@colorado.edu>
4338
4347
4339 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4348 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4340 introduced logging bug: all history before logging started was
4349 introduced logging bug: all history before logging started was
4341 being written one character per line! This came from the redesign
4350 being written one character per line! This came from the redesign
4342 of the input history as a special list which slices to strings,
4351 of the input history as a special list which slices to strings,
4343 not to lists.
4352 not to lists.
4344
4353
4345 2002-05-20 Fernando Perez <fperez@colorado.edu>
4354 2002-05-20 Fernando Perez <fperez@colorado.edu>
4346
4355
4347 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4356 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4348 be an attribute of all classes in this module. The design of these
4357 be an attribute of all classes in this module. The design of these
4349 classes needs some serious overhauling.
4358 classes needs some serious overhauling.
4350
4359
4351 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4360 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4352 which was ignoring '_' in option names.
4361 which was ignoring '_' in option names.
4353
4362
4354 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4363 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4355 'Verbose_novars' to 'Context' and made it the new default. It's a
4364 'Verbose_novars' to 'Context' and made it the new default. It's a
4356 bit more readable and also safer than verbose.
4365 bit more readable and also safer than verbose.
4357
4366
4358 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4367 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4359 triple-quoted strings.
4368 triple-quoted strings.
4360
4369
4361 * IPython/OInspect.py (__all__): new module exposing the object
4370 * IPython/OInspect.py (__all__): new module exposing the object
4362 introspection facilities. Now the corresponding magics are dummy
4371 introspection facilities. Now the corresponding magics are dummy
4363 wrappers around this. Having this module will make it much easier
4372 wrappers around this. Having this module will make it much easier
4364 to put these functions into our modified pdb.
4373 to put these functions into our modified pdb.
4365 This new object inspector system uses the new colorizing module,
4374 This new object inspector system uses the new colorizing module,
4366 so source code and other things are nicely syntax highlighted.
4375 so source code and other things are nicely syntax highlighted.
4367
4376
4368 2002-05-18 Fernando Perez <fperez@colorado.edu>
4377 2002-05-18 Fernando Perez <fperez@colorado.edu>
4369
4378
4370 * IPython/ColorANSI.py: Split the coloring tools into a separate
4379 * IPython/ColorANSI.py: Split the coloring tools into a separate
4371 module so I can use them in other code easier (they were part of
4380 module so I can use them in other code easier (they were part of
4372 ultraTB).
4381 ultraTB).
4373
4382
4374 2002-05-17 Fernando Perez <fperez@colorado.edu>
4383 2002-05-17 Fernando Perez <fperez@colorado.edu>
4375
4384
4376 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4385 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4377 fixed it to set the global 'g' also to the called instance, as
4386 fixed it to set the global 'g' also to the called instance, as
4378 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4387 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4379 user's 'g' variables).
4388 user's 'g' variables).
4380
4389
4381 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4390 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4382 global variables (aliases to _ih,_oh) so that users which expect
4391 global variables (aliases to _ih,_oh) so that users which expect
4383 In[5] or Out[7] to work aren't unpleasantly surprised.
4392 In[5] or Out[7] to work aren't unpleasantly surprised.
4384 (InputList.__getslice__): new class to allow executing slices of
4393 (InputList.__getslice__): new class to allow executing slices of
4385 input history directly. Very simple class, complements the use of
4394 input history directly. Very simple class, complements the use of
4386 macros.
4395 macros.
4387
4396
4388 2002-05-16 Fernando Perez <fperez@colorado.edu>
4397 2002-05-16 Fernando Perez <fperez@colorado.edu>
4389
4398
4390 * setup.py (docdirbase): make doc directory be just doc/IPython
4399 * setup.py (docdirbase): make doc directory be just doc/IPython
4391 without version numbers, it will reduce clutter for users.
4400 without version numbers, it will reduce clutter for users.
4392
4401
4393 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4402 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4394 execfile call to prevent possible memory leak. See for details:
4403 execfile call to prevent possible memory leak. See for details:
4395 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4404 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4396
4405
4397 2002-05-15 Fernando Perez <fperez@colorado.edu>
4406 2002-05-15 Fernando Perez <fperez@colorado.edu>
4398
4407
4399 * IPython/Magic.py (Magic.magic_psource): made the object
4408 * IPython/Magic.py (Magic.magic_psource): made the object
4400 introspection names be more standard: pdoc, pdef, pfile and
4409 introspection names be more standard: pdoc, pdef, pfile and
4401 psource. They all print/page their output, and it makes
4410 psource. They all print/page their output, and it makes
4402 remembering them easier. Kept old names for compatibility as
4411 remembering them easier. Kept old names for compatibility as
4403 aliases.
4412 aliases.
4404
4413
4405 2002-05-14 Fernando Perez <fperez@colorado.edu>
4414 2002-05-14 Fernando Perez <fperez@colorado.edu>
4406
4415
4407 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4416 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4408 what the mouse problem was. The trick is to use gnuplot with temp
4417 what the mouse problem was. The trick is to use gnuplot with temp
4409 files and NOT with pipes (for data communication), because having
4418 files and NOT with pipes (for data communication), because having
4410 both pipes and the mouse on is bad news.
4419 both pipes and the mouse on is bad news.
4411
4420
4412 2002-05-13 Fernando Perez <fperez@colorado.edu>
4421 2002-05-13 Fernando Perez <fperez@colorado.edu>
4413
4422
4414 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4423 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4415 bug. Information would be reported about builtins even when
4424 bug. Information would be reported about builtins even when
4416 user-defined functions overrode them.
4425 user-defined functions overrode them.
4417
4426
4418 2002-05-11 Fernando Perez <fperez@colorado.edu>
4427 2002-05-11 Fernando Perez <fperez@colorado.edu>
4419
4428
4420 * IPython/__init__.py (__all__): removed FlexCompleter from
4429 * IPython/__init__.py (__all__): removed FlexCompleter from
4421 __all__ so that things don't fail in platforms without readline.
4430 __all__ so that things don't fail in platforms without readline.
4422
4431
4423 2002-05-10 Fernando Perez <fperez@colorado.edu>
4432 2002-05-10 Fernando Perez <fperez@colorado.edu>
4424
4433
4425 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4434 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4426 it requires Numeric, effectively making Numeric a dependency for
4435 it requires Numeric, effectively making Numeric a dependency for
4427 IPython.
4436 IPython.
4428
4437
4429 * Released 0.2.13
4438 * Released 0.2.13
4430
4439
4431 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4440 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4432 profiler interface. Now all the major options from the profiler
4441 profiler interface. Now all the major options from the profiler
4433 module are directly supported in IPython, both for single
4442 module are directly supported in IPython, both for single
4434 expressions (@prun) and for full programs (@run -p).
4443 expressions (@prun) and for full programs (@run -p).
4435
4444
4436 2002-05-09 Fernando Perez <fperez@colorado.edu>
4445 2002-05-09 Fernando Perez <fperez@colorado.edu>
4437
4446
4438 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4447 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4439 magic properly formatted for screen.
4448 magic properly formatted for screen.
4440
4449
4441 * setup.py (make_shortcut): Changed things to put pdf version in
4450 * setup.py (make_shortcut): Changed things to put pdf version in
4442 doc/ instead of doc/manual (had to change lyxport a bit).
4451 doc/ instead of doc/manual (had to change lyxport a bit).
4443
4452
4444 * IPython/Magic.py (Profile.string_stats): made profile runs go
4453 * IPython/Magic.py (Profile.string_stats): made profile runs go
4445 through pager (they are long and a pager allows searching, saving,
4454 through pager (they are long and a pager allows searching, saving,
4446 etc.)
4455 etc.)
4447
4456
4448 2002-05-08 Fernando Perez <fperez@colorado.edu>
4457 2002-05-08 Fernando Perez <fperez@colorado.edu>
4449
4458
4450 * Released 0.2.12
4459 * Released 0.2.12
4451
4460
4452 2002-05-06 Fernando Perez <fperez@colorado.edu>
4461 2002-05-06 Fernando Perez <fperez@colorado.edu>
4453
4462
4454 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4463 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4455 introduced); 'hist n1 n2' was broken.
4464 introduced); 'hist n1 n2' was broken.
4456 (Magic.magic_pdb): added optional on/off arguments to @pdb
4465 (Magic.magic_pdb): added optional on/off arguments to @pdb
4457 (Magic.magic_run): added option -i to @run, which executes code in
4466 (Magic.magic_run): added option -i to @run, which executes code in
4458 the IPython namespace instead of a clean one. Also added @irun as
4467 the IPython namespace instead of a clean one. Also added @irun as
4459 an alias to @run -i.
4468 an alias to @run -i.
4460
4469
4461 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4470 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4462 fixed (it didn't really do anything, the namespaces were wrong).
4471 fixed (it didn't really do anything, the namespaces were wrong).
4463
4472
4464 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4473 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4465
4474
4466 * IPython/__init__.py (__all__): Fixed package namespace, now
4475 * IPython/__init__.py (__all__): Fixed package namespace, now
4467 'import IPython' does give access to IPython.<all> as
4476 'import IPython' does give access to IPython.<all> as
4468 expected. Also renamed __release__ to Release.
4477 expected. Also renamed __release__ to Release.
4469
4478
4470 * IPython/Debugger.py (__license__): created new Pdb class which
4479 * IPython/Debugger.py (__license__): created new Pdb class which
4471 functions like a drop-in for the normal pdb.Pdb but does NOT
4480 functions like a drop-in for the normal pdb.Pdb but does NOT
4472 import readline by default. This way it doesn't muck up IPython's
4481 import readline by default. This way it doesn't muck up IPython's
4473 readline handling, and now tab-completion finally works in the
4482 readline handling, and now tab-completion finally works in the
4474 debugger -- sort of. It completes things globally visible, but the
4483 debugger -- sort of. It completes things globally visible, but the
4475 completer doesn't track the stack as pdb walks it. That's a bit
4484 completer doesn't track the stack as pdb walks it. That's a bit
4476 tricky, and I'll have to implement it later.
4485 tricky, and I'll have to implement it later.
4477
4486
4478 2002-05-05 Fernando Perez <fperez@colorado.edu>
4487 2002-05-05 Fernando Perez <fperez@colorado.edu>
4479
4488
4480 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4489 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4481 magic docstrings when printed via ? (explicit \'s were being
4490 magic docstrings when printed via ? (explicit \'s were being
4482 printed).
4491 printed).
4483
4492
4484 * IPython/ipmaker.py (make_IPython): fixed namespace
4493 * IPython/ipmaker.py (make_IPython): fixed namespace
4485 identification bug. Now variables loaded via logs or command-line
4494 identification bug. Now variables loaded via logs or command-line
4486 files are recognized in the interactive namespace by @who.
4495 files are recognized in the interactive namespace by @who.
4487
4496
4488 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4497 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4489 log replay system stemming from the string form of Structs.
4498 log replay system stemming from the string form of Structs.
4490
4499
4491 * IPython/Magic.py (Macro.__init__): improved macros to properly
4500 * IPython/Magic.py (Macro.__init__): improved macros to properly
4492 handle magic commands in them.
4501 handle magic commands in them.
4493 (Magic.magic_logstart): usernames are now expanded so 'logstart
4502 (Magic.magic_logstart): usernames are now expanded so 'logstart
4494 ~/mylog' now works.
4503 ~/mylog' now works.
4495
4504
4496 * IPython/iplib.py (complete): fixed bug where paths starting with
4505 * IPython/iplib.py (complete): fixed bug where paths starting with
4497 '/' would be completed as magic names.
4506 '/' would be completed as magic names.
4498
4507
4499 2002-05-04 Fernando Perez <fperez@colorado.edu>
4508 2002-05-04 Fernando Perez <fperez@colorado.edu>
4500
4509
4501 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4510 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4502 allow running full programs under the profiler's control.
4511 allow running full programs under the profiler's control.
4503
4512
4504 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4513 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4505 mode to report exceptions verbosely but without formatting
4514 mode to report exceptions verbosely but without formatting
4506 variables. This addresses the issue of ipython 'freezing' (it's
4515 variables. This addresses the issue of ipython 'freezing' (it's
4507 not frozen, but caught in an expensive formatting loop) when huge
4516 not frozen, but caught in an expensive formatting loop) when huge
4508 variables are in the context of an exception.
4517 variables are in the context of an exception.
4509 (VerboseTB.text): Added '--->' markers at line where exception was
4518 (VerboseTB.text): Added '--->' markers at line where exception was
4510 triggered. Much clearer to read, especially in NoColor modes.
4519 triggered. Much clearer to read, especially in NoColor modes.
4511
4520
4512 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4521 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4513 implemented in reverse when changing to the new parse_options().
4522 implemented in reverse when changing to the new parse_options().
4514
4523
4515 2002-05-03 Fernando Perez <fperez@colorado.edu>
4524 2002-05-03 Fernando Perez <fperez@colorado.edu>
4516
4525
4517 * IPython/Magic.py (Magic.parse_options): new function so that
4526 * IPython/Magic.py (Magic.parse_options): new function so that
4518 magics can parse options easier.
4527 magics can parse options easier.
4519 (Magic.magic_prun): new function similar to profile.run(),
4528 (Magic.magic_prun): new function similar to profile.run(),
4520 suggested by Chris Hart.
4529 suggested by Chris Hart.
4521 (Magic.magic_cd): fixed behavior so that it only changes if
4530 (Magic.magic_cd): fixed behavior so that it only changes if
4522 directory actually is in history.
4531 directory actually is in history.
4523
4532
4524 * IPython/usage.py (__doc__): added information about potential
4533 * IPython/usage.py (__doc__): added information about potential
4525 slowness of Verbose exception mode when there are huge data
4534 slowness of Verbose exception mode when there are huge data
4526 structures to be formatted (thanks to Archie Paulson).
4535 structures to be formatted (thanks to Archie Paulson).
4527
4536
4528 * IPython/ipmaker.py (make_IPython): Changed default logging
4537 * IPython/ipmaker.py (make_IPython): Changed default logging
4529 (when simply called with -log) to use curr_dir/ipython.log in
4538 (when simply called with -log) to use curr_dir/ipython.log in
4530 rotate mode. Fixed crash which was occuring with -log before
4539 rotate mode. Fixed crash which was occuring with -log before
4531 (thanks to Jim Boyle).
4540 (thanks to Jim Boyle).
4532
4541
4533 2002-05-01 Fernando Perez <fperez@colorado.edu>
4542 2002-05-01 Fernando Perez <fperez@colorado.edu>
4534
4543
4535 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4544 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4536 was nasty -- though somewhat of a corner case).
4545 was nasty -- though somewhat of a corner case).
4537
4546
4538 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4547 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4539 text (was a bug).
4548 text (was a bug).
4540
4549
4541 2002-04-30 Fernando Perez <fperez@colorado.edu>
4550 2002-04-30 Fernando Perez <fperez@colorado.edu>
4542
4551
4543 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4552 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4544 a print after ^D or ^C from the user so that the In[] prompt
4553 a print after ^D or ^C from the user so that the In[] prompt
4545 doesn't over-run the gnuplot one.
4554 doesn't over-run the gnuplot one.
4546
4555
4547 2002-04-29 Fernando Perez <fperez@colorado.edu>
4556 2002-04-29 Fernando Perez <fperez@colorado.edu>
4548
4557
4549 * Released 0.2.10
4558 * Released 0.2.10
4550
4559
4551 * IPython/__release__.py (version): get date dynamically.
4560 * IPython/__release__.py (version): get date dynamically.
4552
4561
4553 * Misc. documentation updates thanks to Arnd's comments. Also ran
4562 * Misc. documentation updates thanks to Arnd's comments. Also ran
4554 a full spellcheck on the manual (hadn't been done in a while).
4563 a full spellcheck on the manual (hadn't been done in a while).
4555
4564
4556 2002-04-27 Fernando Perez <fperez@colorado.edu>
4565 2002-04-27 Fernando Perez <fperez@colorado.edu>
4557
4566
4558 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4567 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4559 starting a log in mid-session would reset the input history list.
4568 starting a log in mid-session would reset the input history list.
4560
4569
4561 2002-04-26 Fernando Perez <fperez@colorado.edu>
4570 2002-04-26 Fernando Perez <fperez@colorado.edu>
4562
4571
4563 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4572 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4564 all files were being included in an update. Now anything in
4573 all files were being included in an update. Now anything in
4565 UserConfig that matches [A-Za-z]*.py will go (this excludes
4574 UserConfig that matches [A-Za-z]*.py will go (this excludes
4566 __init__.py)
4575 __init__.py)
4567
4576
4568 2002-04-25 Fernando Perez <fperez@colorado.edu>
4577 2002-04-25 Fernando Perez <fperez@colorado.edu>
4569
4578
4570 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4579 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4571 to __builtins__ so that any form of embedded or imported code can
4580 to __builtins__ so that any form of embedded or imported code can
4572 test for being inside IPython.
4581 test for being inside IPython.
4573
4582
4574 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4583 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4575 changed to GnuplotMagic because it's now an importable module,
4584 changed to GnuplotMagic because it's now an importable module,
4576 this makes the name follow that of the standard Gnuplot module.
4585 this makes the name follow that of the standard Gnuplot module.
4577 GnuplotMagic can now be loaded at any time in mid-session.
4586 GnuplotMagic can now be loaded at any time in mid-session.
4578
4587
4579 2002-04-24 Fernando Perez <fperez@colorado.edu>
4588 2002-04-24 Fernando Perez <fperez@colorado.edu>
4580
4589
4581 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4590 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4582 the globals (IPython has its own namespace) and the
4591 the globals (IPython has its own namespace) and the
4583 PhysicalQuantity stuff is much better anyway.
4592 PhysicalQuantity stuff is much better anyway.
4584
4593
4585 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4594 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4586 embedding example to standard user directory for
4595 embedding example to standard user directory for
4587 distribution. Also put it in the manual.
4596 distribution. Also put it in the manual.
4588
4597
4589 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4598 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4590 instance as first argument (so it doesn't rely on some obscure
4599 instance as first argument (so it doesn't rely on some obscure
4591 hidden global).
4600 hidden global).
4592
4601
4593 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4602 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4594 delimiters. While it prevents ().TAB from working, it allows
4603 delimiters. While it prevents ().TAB from working, it allows
4595 completions in open (... expressions. This is by far a more common
4604 completions in open (... expressions. This is by far a more common
4596 case.
4605 case.
4597
4606
4598 2002-04-23 Fernando Perez <fperez@colorado.edu>
4607 2002-04-23 Fernando Perez <fperez@colorado.edu>
4599
4608
4600 * IPython/Extensions/InterpreterPasteInput.py: new
4609 * IPython/Extensions/InterpreterPasteInput.py: new
4601 syntax-processing module for pasting lines with >>> or ... at the
4610 syntax-processing module for pasting lines with >>> or ... at the
4602 start.
4611 start.
4603
4612
4604 * IPython/Extensions/PhysicalQ_Interactive.py
4613 * IPython/Extensions/PhysicalQ_Interactive.py
4605 (PhysicalQuantityInteractive.__int__): fixed to work with either
4614 (PhysicalQuantityInteractive.__int__): fixed to work with either
4606 Numeric or math.
4615 Numeric or math.
4607
4616
4608 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4617 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4609 provided profiles. Now we have:
4618 provided profiles. Now we have:
4610 -math -> math module as * and cmath with its own namespace.
4619 -math -> math module as * and cmath with its own namespace.
4611 -numeric -> Numeric as *, plus gnuplot & grace
4620 -numeric -> Numeric as *, plus gnuplot & grace
4612 -physics -> same as before
4621 -physics -> same as before
4613
4622
4614 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4623 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4615 user-defined magics wouldn't be found by @magic if they were
4624 user-defined magics wouldn't be found by @magic if they were
4616 defined as class methods. Also cleaned up the namespace search
4625 defined as class methods. Also cleaned up the namespace search
4617 logic and the string building (to use %s instead of many repeated
4626 logic and the string building (to use %s instead of many repeated
4618 string adds).
4627 string adds).
4619
4628
4620 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4629 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4621 of user-defined magics to operate with class methods (cleaner, in
4630 of user-defined magics to operate with class methods (cleaner, in
4622 line with the gnuplot code).
4631 line with the gnuplot code).
4623
4632
4624 2002-04-22 Fernando Perez <fperez@colorado.edu>
4633 2002-04-22 Fernando Perez <fperez@colorado.edu>
4625
4634
4626 * setup.py: updated dependency list so that manual is updated when
4635 * setup.py: updated dependency list so that manual is updated when
4627 all included files change.
4636 all included files change.
4628
4637
4629 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4638 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4630 the delimiter removal option (the fix is ugly right now).
4639 the delimiter removal option (the fix is ugly right now).
4631
4640
4632 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4641 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4633 all of the math profile (quicker loading, no conflict between
4642 all of the math profile (quicker loading, no conflict between
4634 g-9.8 and g-gnuplot).
4643 g-9.8 and g-gnuplot).
4635
4644
4636 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4645 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4637 name of post-mortem files to IPython_crash_report.txt.
4646 name of post-mortem files to IPython_crash_report.txt.
4638
4647
4639 * Cleanup/update of the docs. Added all the new readline info and
4648 * Cleanup/update of the docs. Added all the new readline info and
4640 formatted all lists as 'real lists'.
4649 formatted all lists as 'real lists'.
4641
4650
4642 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4651 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4643 tab-completion options, since the full readline parse_and_bind is
4652 tab-completion options, since the full readline parse_and_bind is
4644 now accessible.
4653 now accessible.
4645
4654
4646 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4655 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4647 handling of readline options. Now users can specify any string to
4656 handling of readline options. Now users can specify any string to
4648 be passed to parse_and_bind(), as well as the delimiters to be
4657 be passed to parse_and_bind(), as well as the delimiters to be
4649 removed.
4658 removed.
4650 (InteractiveShell.__init__): Added __name__ to the global
4659 (InteractiveShell.__init__): Added __name__ to the global
4651 namespace so that things like Itpl which rely on its existence
4660 namespace so that things like Itpl which rely on its existence
4652 don't crash.
4661 don't crash.
4653 (InteractiveShell._prefilter): Defined the default with a _ so
4662 (InteractiveShell._prefilter): Defined the default with a _ so
4654 that prefilter() is easier to override, while the default one
4663 that prefilter() is easier to override, while the default one
4655 remains available.
4664 remains available.
4656
4665
4657 2002-04-18 Fernando Perez <fperez@colorado.edu>
4666 2002-04-18 Fernando Perez <fperez@colorado.edu>
4658
4667
4659 * Added information about pdb in the docs.
4668 * Added information about pdb in the docs.
4660
4669
4661 2002-04-17 Fernando Perez <fperez@colorado.edu>
4670 2002-04-17 Fernando Perez <fperez@colorado.edu>
4662
4671
4663 * IPython/ipmaker.py (make_IPython): added rc_override option to
4672 * IPython/ipmaker.py (make_IPython): added rc_override option to
4664 allow passing config options at creation time which may override
4673 allow passing config options at creation time which may override
4665 anything set in the config files or command line. This is
4674 anything set in the config files or command line. This is
4666 particularly useful for configuring embedded instances.
4675 particularly useful for configuring embedded instances.
4667
4676
4668 2002-04-15 Fernando Perez <fperez@colorado.edu>
4677 2002-04-15 Fernando Perez <fperez@colorado.edu>
4669
4678
4670 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4679 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4671 crash embedded instances because of the input cache falling out of
4680 crash embedded instances because of the input cache falling out of
4672 sync with the output counter.
4681 sync with the output counter.
4673
4682
4674 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4683 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4675 mode which calls pdb after an uncaught exception in IPython itself.
4684 mode which calls pdb after an uncaught exception in IPython itself.
4676
4685
4677 2002-04-14 Fernando Perez <fperez@colorado.edu>
4686 2002-04-14 Fernando Perez <fperez@colorado.edu>
4678
4687
4679 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4688 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4680 readline, fix it back after each call.
4689 readline, fix it back after each call.
4681
4690
4682 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4691 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4683 method to force all access via __call__(), which guarantees that
4692 method to force all access via __call__(), which guarantees that
4684 traceback references are properly deleted.
4693 traceback references are properly deleted.
4685
4694
4686 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4695 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4687 improve printing when pprint is in use.
4696 improve printing when pprint is in use.
4688
4697
4689 2002-04-13 Fernando Perez <fperez@colorado.edu>
4698 2002-04-13 Fernando Perez <fperez@colorado.edu>
4690
4699
4691 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4700 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4692 exceptions aren't caught anymore. If the user triggers one, he
4701 exceptions aren't caught anymore. If the user triggers one, he
4693 should know why he's doing it and it should go all the way up,
4702 should know why he's doing it and it should go all the way up,
4694 just like any other exception. So now @abort will fully kill the
4703 just like any other exception. So now @abort will fully kill the
4695 embedded interpreter and the embedding code (unless that happens
4704 embedded interpreter and the embedding code (unless that happens
4696 to catch SystemExit).
4705 to catch SystemExit).
4697
4706
4698 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4707 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4699 and a debugger() method to invoke the interactive pdb debugger
4708 and a debugger() method to invoke the interactive pdb debugger
4700 after printing exception information. Also added the corresponding
4709 after printing exception information. Also added the corresponding
4701 -pdb option and @pdb magic to control this feature, and updated
4710 -pdb option and @pdb magic to control this feature, and updated
4702 the docs. After a suggestion from Christopher Hart
4711 the docs. After a suggestion from Christopher Hart
4703 (hart-AT-caltech.edu).
4712 (hart-AT-caltech.edu).
4704
4713
4705 2002-04-12 Fernando Perez <fperez@colorado.edu>
4714 2002-04-12 Fernando Perez <fperez@colorado.edu>
4706
4715
4707 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4716 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4708 the exception handlers defined by the user (not the CrashHandler)
4717 the exception handlers defined by the user (not the CrashHandler)
4709 so that user exceptions don't trigger an ipython bug report.
4718 so that user exceptions don't trigger an ipython bug report.
4710
4719
4711 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4720 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4712 configurable (it should have always been so).
4721 configurable (it should have always been so).
4713
4722
4714 2002-03-26 Fernando Perez <fperez@colorado.edu>
4723 2002-03-26 Fernando Perez <fperez@colorado.edu>
4715
4724
4716 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4725 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4717 and there to fix embedding namespace issues. This should all be
4726 and there to fix embedding namespace issues. This should all be
4718 done in a more elegant way.
4727 done in a more elegant way.
4719
4728
4720 2002-03-25 Fernando Perez <fperez@colorado.edu>
4729 2002-03-25 Fernando Perez <fperez@colorado.edu>
4721
4730
4722 * IPython/genutils.py (get_home_dir): Try to make it work under
4731 * IPython/genutils.py (get_home_dir): Try to make it work under
4723 win9x also.
4732 win9x also.
4724
4733
4725 2002-03-20 Fernando Perez <fperez@colorado.edu>
4734 2002-03-20 Fernando Perez <fperez@colorado.edu>
4726
4735
4727 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4736 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4728 sys.displayhook untouched upon __init__.
4737 sys.displayhook untouched upon __init__.
4729
4738
4730 2002-03-19 Fernando Perez <fperez@colorado.edu>
4739 2002-03-19 Fernando Perez <fperez@colorado.edu>
4731
4740
4732 * Released 0.2.9 (for embedding bug, basically).
4741 * Released 0.2.9 (for embedding bug, basically).
4733
4742
4734 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4743 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4735 exceptions so that enclosing shell's state can be restored.
4744 exceptions so that enclosing shell's state can be restored.
4736
4745
4737 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4746 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4738 naming conventions in the .ipython/ dir.
4747 naming conventions in the .ipython/ dir.
4739
4748
4740 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4749 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4741 from delimiters list so filenames with - in them get expanded.
4750 from delimiters list so filenames with - in them get expanded.
4742
4751
4743 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4752 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4744 sys.displayhook not being properly restored after an embedded call.
4753 sys.displayhook not being properly restored after an embedded call.
4745
4754
4746 2002-03-18 Fernando Perez <fperez@colorado.edu>
4755 2002-03-18 Fernando Perez <fperez@colorado.edu>
4747
4756
4748 * Released 0.2.8
4757 * Released 0.2.8
4749
4758
4750 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4759 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4751 some files weren't being included in a -upgrade.
4760 some files weren't being included in a -upgrade.
4752 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4761 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4753 on' so that the first tab completes.
4762 on' so that the first tab completes.
4754 (InteractiveShell.handle_magic): fixed bug with spaces around
4763 (InteractiveShell.handle_magic): fixed bug with spaces around
4755 quotes breaking many magic commands.
4764 quotes breaking many magic commands.
4756
4765
4757 * setup.py: added note about ignoring the syntax error messages at
4766 * setup.py: added note about ignoring the syntax error messages at
4758 installation.
4767 installation.
4759
4768
4760 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4769 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4761 streamlining the gnuplot interface, now there's only one magic @gp.
4770 streamlining the gnuplot interface, now there's only one magic @gp.
4762
4771
4763 2002-03-17 Fernando Perez <fperez@colorado.edu>
4772 2002-03-17 Fernando Perez <fperez@colorado.edu>
4764
4773
4765 * IPython/UserConfig/magic_gnuplot.py: new name for the
4774 * IPython/UserConfig/magic_gnuplot.py: new name for the
4766 example-magic_pm.py file. Much enhanced system, now with a shell
4775 example-magic_pm.py file. Much enhanced system, now with a shell
4767 for communicating directly with gnuplot, one command at a time.
4776 for communicating directly with gnuplot, one command at a time.
4768
4777
4769 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4778 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4770 setting __name__=='__main__'.
4779 setting __name__=='__main__'.
4771
4780
4772 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4781 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4773 mini-shell for accessing gnuplot from inside ipython. Should
4782 mini-shell for accessing gnuplot from inside ipython. Should
4774 extend it later for grace access too. Inspired by Arnd's
4783 extend it later for grace access too. Inspired by Arnd's
4775 suggestion.
4784 suggestion.
4776
4785
4777 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4786 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4778 calling magic functions with () in their arguments. Thanks to Arnd
4787 calling magic functions with () in their arguments. Thanks to Arnd
4779 Baecker for pointing this to me.
4788 Baecker for pointing this to me.
4780
4789
4781 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4790 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4782 infinitely for integer or complex arrays (only worked with floats).
4791 infinitely for integer or complex arrays (only worked with floats).
4783
4792
4784 2002-03-16 Fernando Perez <fperez@colorado.edu>
4793 2002-03-16 Fernando Perez <fperez@colorado.edu>
4785
4794
4786 * setup.py: Merged setup and setup_windows into a single script
4795 * setup.py: Merged setup and setup_windows into a single script
4787 which properly handles things for windows users.
4796 which properly handles things for windows users.
4788
4797
4789 2002-03-15 Fernando Perez <fperez@colorado.edu>
4798 2002-03-15 Fernando Perez <fperez@colorado.edu>
4790
4799
4791 * Big change to the manual: now the magics are all automatically
4800 * Big change to the manual: now the magics are all automatically
4792 documented. This information is generated from their docstrings
4801 documented. This information is generated from their docstrings
4793 and put in a latex file included by the manual lyx file. This way
4802 and put in a latex file included by the manual lyx file. This way
4794 we get always up to date information for the magics. The manual
4803 we get always up to date information for the magics. The manual
4795 now also has proper version information, also auto-synced.
4804 now also has proper version information, also auto-synced.
4796
4805
4797 For this to work, an undocumented --magic_docstrings option was added.
4806 For this to work, an undocumented --magic_docstrings option was added.
4798
4807
4799 2002-03-13 Fernando Perez <fperez@colorado.edu>
4808 2002-03-13 Fernando Perez <fperez@colorado.edu>
4800
4809
4801 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4810 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4802 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4811 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4803
4812
4804 2002-03-12 Fernando Perez <fperez@colorado.edu>
4813 2002-03-12 Fernando Perez <fperez@colorado.edu>
4805
4814
4806 * IPython/ultraTB.py (TermColors): changed color escapes again to
4815 * IPython/ultraTB.py (TermColors): changed color escapes again to
4807 fix the (old, reintroduced) line-wrapping bug. Basically, if
4816 fix the (old, reintroduced) line-wrapping bug. Basically, if
4808 \001..\002 aren't given in the color escapes, lines get wrapped
4817 \001..\002 aren't given in the color escapes, lines get wrapped
4809 weirdly. But giving those screws up old xterms and emacs terms. So
4818 weirdly. But giving those screws up old xterms and emacs terms. So
4810 I added some logic for emacs terms to be ok, but I can't identify old
4819 I added some logic for emacs terms to be ok, but I can't identify old
4811 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4820 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4812
4821
4813 2002-03-10 Fernando Perez <fperez@colorado.edu>
4822 2002-03-10 Fernando Perez <fperez@colorado.edu>
4814
4823
4815 * IPython/usage.py (__doc__): Various documentation cleanups and
4824 * IPython/usage.py (__doc__): Various documentation cleanups and
4816 updates, both in usage docstrings and in the manual.
4825 updates, both in usage docstrings and in the manual.
4817
4826
4818 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4827 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4819 handling of caching. Set minimum acceptabe value for having a
4828 handling of caching. Set minimum acceptabe value for having a
4820 cache at 20 values.
4829 cache at 20 values.
4821
4830
4822 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4831 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4823 install_first_time function to a method, renamed it and added an
4832 install_first_time function to a method, renamed it and added an
4824 'upgrade' mode. Now people can update their config directory with
4833 'upgrade' mode. Now people can update their config directory with
4825 a simple command line switch (-upgrade, also new).
4834 a simple command line switch (-upgrade, also new).
4826
4835
4827 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4836 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4828 @file (convenient for automagic users under Python >= 2.2).
4837 @file (convenient for automagic users under Python >= 2.2).
4829 Removed @files (it seemed more like a plural than an abbrev. of
4838 Removed @files (it seemed more like a plural than an abbrev. of
4830 'file show').
4839 'file show').
4831
4840
4832 * IPython/iplib.py (install_first_time): Fixed crash if there were
4841 * IPython/iplib.py (install_first_time): Fixed crash if there were
4833 backup files ('~') in .ipython/ install directory.
4842 backup files ('~') in .ipython/ install directory.
4834
4843
4835 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4844 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4836 system. Things look fine, but these changes are fairly
4845 system. Things look fine, but these changes are fairly
4837 intrusive. Test them for a few days.
4846 intrusive. Test them for a few days.
4838
4847
4839 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4848 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4840 the prompts system. Now all in/out prompt strings are user
4849 the prompts system. Now all in/out prompt strings are user
4841 controllable. This is particularly useful for embedding, as one
4850 controllable. This is particularly useful for embedding, as one
4842 can tag embedded instances with particular prompts.
4851 can tag embedded instances with particular prompts.
4843
4852
4844 Also removed global use of sys.ps1/2, which now allows nested
4853 Also removed global use of sys.ps1/2, which now allows nested
4845 embeddings without any problems. Added command-line options for
4854 embeddings without any problems. Added command-line options for
4846 the prompt strings.
4855 the prompt strings.
4847
4856
4848 2002-03-08 Fernando Perez <fperez@colorado.edu>
4857 2002-03-08 Fernando Perez <fperez@colorado.edu>
4849
4858
4850 * IPython/UserConfig/example-embed-short.py (ipshell): added
4859 * IPython/UserConfig/example-embed-short.py (ipshell): added
4851 example file with the bare minimum code for embedding.
4860 example file with the bare minimum code for embedding.
4852
4861
4853 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4862 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4854 functionality for the embeddable shell to be activated/deactivated
4863 functionality for the embeddable shell to be activated/deactivated
4855 either globally or at each call.
4864 either globally or at each call.
4856
4865
4857 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4866 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4858 rewriting the prompt with '--->' for auto-inputs with proper
4867 rewriting the prompt with '--->' for auto-inputs with proper
4859 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4868 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4860 this is handled by the prompts class itself, as it should.
4869 this is handled by the prompts class itself, as it should.
4861
4870
4862 2002-03-05 Fernando Perez <fperez@colorado.edu>
4871 2002-03-05 Fernando Perez <fperez@colorado.edu>
4863
4872
4864 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4873 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4865 @logstart to avoid name clashes with the math log function.
4874 @logstart to avoid name clashes with the math log function.
4866
4875
4867 * Big updates to X/Emacs section of the manual.
4876 * Big updates to X/Emacs section of the manual.
4868
4877
4869 * Removed ipython_emacs. Milan explained to me how to pass
4878 * Removed ipython_emacs. Milan explained to me how to pass
4870 arguments to ipython through Emacs. Some day I'm going to end up
4879 arguments to ipython through Emacs. Some day I'm going to end up
4871 learning some lisp...
4880 learning some lisp...
4872
4881
4873 2002-03-04 Fernando Perez <fperez@colorado.edu>
4882 2002-03-04 Fernando Perez <fperez@colorado.edu>
4874
4883
4875 * IPython/ipython_emacs: Created script to be used as the
4884 * IPython/ipython_emacs: Created script to be used as the
4876 py-python-command Emacs variable so we can pass IPython
4885 py-python-command Emacs variable so we can pass IPython
4877 parameters. I can't figure out how to tell Emacs directly to pass
4886 parameters. I can't figure out how to tell Emacs directly to pass
4878 parameters to IPython, so a dummy shell script will do it.
4887 parameters to IPython, so a dummy shell script will do it.
4879
4888
4880 Other enhancements made for things to work better under Emacs'
4889 Other enhancements made for things to work better under Emacs'
4881 various types of terminals. Many thanks to Milan Zamazal
4890 various types of terminals. Many thanks to Milan Zamazal
4882 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4891 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4883
4892
4884 2002-03-01 Fernando Perez <fperez@colorado.edu>
4893 2002-03-01 Fernando Perez <fperez@colorado.edu>
4885
4894
4886 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4895 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4887 that loading of readline is now optional. This gives better
4896 that loading of readline is now optional. This gives better
4888 control to emacs users.
4897 control to emacs users.
4889
4898
4890 * IPython/ultraTB.py (__date__): Modified color escape sequences
4899 * IPython/ultraTB.py (__date__): Modified color escape sequences
4891 and now things work fine under xterm and in Emacs' term buffers
4900 and now things work fine under xterm and in Emacs' term buffers
4892 (though not shell ones). Well, in emacs you get colors, but all
4901 (though not shell ones). Well, in emacs you get colors, but all
4893 seem to be 'light' colors (no difference between dark and light
4902 seem to be 'light' colors (no difference between dark and light
4894 ones). But the garbage chars are gone, and also in xterms. It
4903 ones). But the garbage chars are gone, and also in xterms. It
4895 seems that now I'm using 'cleaner' ansi sequences.
4904 seems that now I'm using 'cleaner' ansi sequences.
4896
4905
4897 2002-02-21 Fernando Perez <fperez@colorado.edu>
4906 2002-02-21 Fernando Perez <fperez@colorado.edu>
4898
4907
4899 * Released 0.2.7 (mainly to publish the scoping fix).
4908 * Released 0.2.7 (mainly to publish the scoping fix).
4900
4909
4901 * IPython/Logger.py (Logger.logstate): added. A corresponding
4910 * IPython/Logger.py (Logger.logstate): added. A corresponding
4902 @logstate magic was created.
4911 @logstate magic was created.
4903
4912
4904 * IPython/Magic.py: fixed nested scoping problem under Python
4913 * IPython/Magic.py: fixed nested scoping problem under Python
4905 2.1.x (automagic wasn't working).
4914 2.1.x (automagic wasn't working).
4906
4915
4907 2002-02-20 Fernando Perez <fperez@colorado.edu>
4916 2002-02-20 Fernando Perez <fperez@colorado.edu>
4908
4917
4909 * Released 0.2.6.
4918 * Released 0.2.6.
4910
4919
4911 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4920 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4912 option so that logs can come out without any headers at all.
4921 option so that logs can come out without any headers at all.
4913
4922
4914 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4923 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4915 SciPy.
4924 SciPy.
4916
4925
4917 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4926 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4918 that embedded IPython calls don't require vars() to be explicitly
4927 that embedded IPython calls don't require vars() to be explicitly
4919 passed. Now they are extracted from the caller's frame (code
4928 passed. Now they are extracted from the caller's frame (code
4920 snatched from Eric Jones' weave). Added better documentation to
4929 snatched from Eric Jones' weave). Added better documentation to
4921 the section on embedding and the example file.
4930 the section on embedding and the example file.
4922
4931
4923 * IPython/genutils.py (page): Changed so that under emacs, it just
4932 * IPython/genutils.py (page): Changed so that under emacs, it just
4924 prints the string. You can then page up and down in the emacs
4933 prints the string. You can then page up and down in the emacs
4925 buffer itself. This is how the builtin help() works.
4934 buffer itself. This is how the builtin help() works.
4926
4935
4927 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4936 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4928 macro scoping: macros need to be executed in the user's namespace
4937 macro scoping: macros need to be executed in the user's namespace
4929 to work as if they had been typed by the user.
4938 to work as if they had been typed by the user.
4930
4939
4931 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4940 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4932 execute automatically (no need to type 'exec...'). They then
4941 execute automatically (no need to type 'exec...'). They then
4933 behave like 'true macros'. The printing system was also modified
4942 behave like 'true macros'. The printing system was also modified
4934 for this to work.
4943 for this to work.
4935
4944
4936 2002-02-19 Fernando Perez <fperez@colorado.edu>
4945 2002-02-19 Fernando Perez <fperez@colorado.edu>
4937
4946
4938 * IPython/genutils.py (page_file): new function for paging files
4947 * IPython/genutils.py (page_file): new function for paging files
4939 in an OS-independent way. Also necessary for file viewing to work
4948 in an OS-independent way. Also necessary for file viewing to work
4940 well inside Emacs buffers.
4949 well inside Emacs buffers.
4941 (page): Added checks for being in an emacs buffer.
4950 (page): Added checks for being in an emacs buffer.
4942 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4951 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4943 same bug in iplib.
4952 same bug in iplib.
4944
4953
4945 2002-02-18 Fernando Perez <fperez@colorado.edu>
4954 2002-02-18 Fernando Perez <fperez@colorado.edu>
4946
4955
4947 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4956 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4948 of readline so that IPython can work inside an Emacs buffer.
4957 of readline so that IPython can work inside an Emacs buffer.
4949
4958
4950 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4959 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4951 method signatures (they weren't really bugs, but it looks cleaner
4960 method signatures (they weren't really bugs, but it looks cleaner
4952 and keeps PyChecker happy).
4961 and keeps PyChecker happy).
4953
4962
4954 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4963 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4955 for implementing various user-defined hooks. Currently only
4964 for implementing various user-defined hooks. Currently only
4956 display is done.
4965 display is done.
4957
4966
4958 * IPython/Prompts.py (CachedOutput._display): changed display
4967 * IPython/Prompts.py (CachedOutput._display): changed display
4959 functions so that they can be dynamically changed by users easily.
4968 functions so that they can be dynamically changed by users easily.
4960
4969
4961 * IPython/Extensions/numeric_formats.py (num_display): added an
4970 * IPython/Extensions/numeric_formats.py (num_display): added an
4962 extension for printing NumPy arrays in flexible manners. It
4971 extension for printing NumPy arrays in flexible manners. It
4963 doesn't do anything yet, but all the structure is in
4972 doesn't do anything yet, but all the structure is in
4964 place. Ultimately the plan is to implement output format control
4973 place. Ultimately the plan is to implement output format control
4965 like in Octave.
4974 like in Octave.
4966
4975
4967 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4976 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4968 methods are found at run-time by all the automatic machinery.
4977 methods are found at run-time by all the automatic machinery.
4969
4978
4970 2002-02-17 Fernando Perez <fperez@colorado.edu>
4979 2002-02-17 Fernando Perez <fperez@colorado.edu>
4971
4980
4972 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4981 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4973 whole file a little.
4982 whole file a little.
4974
4983
4975 * ToDo: closed this document. Now there's a new_design.lyx
4984 * ToDo: closed this document. Now there's a new_design.lyx
4976 document for all new ideas. Added making a pdf of it for the
4985 document for all new ideas. Added making a pdf of it for the
4977 end-user distro.
4986 end-user distro.
4978
4987
4979 * IPython/Logger.py (Logger.switch_log): Created this to replace
4988 * IPython/Logger.py (Logger.switch_log): Created this to replace
4980 logon() and logoff(). It also fixes a nasty crash reported by
4989 logon() and logoff(). It also fixes a nasty crash reported by
4981 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4990 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4982
4991
4983 * IPython/iplib.py (complete): got auto-completion to work with
4992 * IPython/iplib.py (complete): got auto-completion to work with
4984 automagic (I had wanted this for a long time).
4993 automagic (I had wanted this for a long time).
4985
4994
4986 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4995 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4987 to @file, since file() is now a builtin and clashes with automagic
4996 to @file, since file() is now a builtin and clashes with automagic
4988 for @file.
4997 for @file.
4989
4998
4990 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4999 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4991 of this was previously in iplib, which had grown to more than 2000
5000 of this was previously in iplib, which had grown to more than 2000
4992 lines, way too long. No new functionality, but it makes managing
5001 lines, way too long. No new functionality, but it makes managing
4993 the code a bit easier.
5002 the code a bit easier.
4994
5003
4995 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5004 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4996 information to crash reports.
5005 information to crash reports.
4997
5006
4998 2002-02-12 Fernando Perez <fperez@colorado.edu>
5007 2002-02-12 Fernando Perez <fperez@colorado.edu>
4999
5008
5000 * Released 0.2.5.
5009 * Released 0.2.5.
5001
5010
5002 2002-02-11 Fernando Perez <fperez@colorado.edu>
5011 2002-02-11 Fernando Perez <fperez@colorado.edu>
5003
5012
5004 * Wrote a relatively complete Windows installer. It puts
5013 * Wrote a relatively complete Windows installer. It puts
5005 everything in place, creates Start Menu entries and fixes the
5014 everything in place, creates Start Menu entries and fixes the
5006 color issues. Nothing fancy, but it works.
5015 color issues. Nothing fancy, but it works.
5007
5016
5008 2002-02-10 Fernando Perez <fperez@colorado.edu>
5017 2002-02-10 Fernando Perez <fperez@colorado.edu>
5009
5018
5010 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5019 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5011 os.path.expanduser() call so that we can type @run ~/myfile.py and
5020 os.path.expanduser() call so that we can type @run ~/myfile.py and
5012 have thigs work as expected.
5021 have thigs work as expected.
5013
5022
5014 * IPython/genutils.py (page): fixed exception handling so things
5023 * IPython/genutils.py (page): fixed exception handling so things
5015 work both in Unix and Windows correctly. Quitting a pager triggers
5024 work both in Unix and Windows correctly. Quitting a pager triggers
5016 an IOError/broken pipe in Unix, and in windows not finding a pager
5025 an IOError/broken pipe in Unix, and in windows not finding a pager
5017 is also an IOError, so I had to actually look at the return value
5026 is also an IOError, so I had to actually look at the return value
5018 of the exception, not just the exception itself. Should be ok now.
5027 of the exception, not just the exception itself. Should be ok now.
5019
5028
5020 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5029 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5021 modified to allow case-insensitive color scheme changes.
5030 modified to allow case-insensitive color scheme changes.
5022
5031
5023 2002-02-09 Fernando Perez <fperez@colorado.edu>
5032 2002-02-09 Fernando Perez <fperez@colorado.edu>
5024
5033
5025 * IPython/genutils.py (native_line_ends): new function to leave
5034 * IPython/genutils.py (native_line_ends): new function to leave
5026 user config files with os-native line-endings.
5035 user config files with os-native line-endings.
5027
5036
5028 * README and manual updates.
5037 * README and manual updates.
5029
5038
5030 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5039 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5031 instead of StringType to catch Unicode strings.
5040 instead of StringType to catch Unicode strings.
5032
5041
5033 * IPython/genutils.py (filefind): fixed bug for paths with
5042 * IPython/genutils.py (filefind): fixed bug for paths with
5034 embedded spaces (very common in Windows).
5043 embedded spaces (very common in Windows).
5035
5044
5036 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5045 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5037 files under Windows, so that they get automatically associated
5046 files under Windows, so that they get automatically associated
5038 with a text editor. Windows makes it a pain to handle
5047 with a text editor. Windows makes it a pain to handle
5039 extension-less files.
5048 extension-less files.
5040
5049
5041 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5050 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5042 warning about readline only occur for Posix. In Windows there's no
5051 warning about readline only occur for Posix. In Windows there's no
5043 way to get readline, so why bother with the warning.
5052 way to get readline, so why bother with the warning.
5044
5053
5045 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5054 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5046 for __str__ instead of dir(self), since dir() changed in 2.2.
5055 for __str__ instead of dir(self), since dir() changed in 2.2.
5047
5056
5048 * Ported to Windows! Tested on XP, I suspect it should work fine
5057 * Ported to Windows! Tested on XP, I suspect it should work fine
5049 on NT/2000, but I don't think it will work on 98 et al. That
5058 on NT/2000, but I don't think it will work on 98 et al. That
5050 series of Windows is such a piece of junk anyway that I won't try
5059 series of Windows is such a piece of junk anyway that I won't try
5051 porting it there. The XP port was straightforward, showed a few
5060 porting it there. The XP port was straightforward, showed a few
5052 bugs here and there (fixed all), in particular some string
5061 bugs here and there (fixed all), in particular some string
5053 handling stuff which required considering Unicode strings (which
5062 handling stuff which required considering Unicode strings (which
5054 Windows uses). This is good, but hasn't been too tested :) No
5063 Windows uses). This is good, but hasn't been too tested :) No
5055 fancy installer yet, I'll put a note in the manual so people at
5064 fancy installer yet, I'll put a note in the manual so people at
5056 least make manually a shortcut.
5065 least make manually a shortcut.
5057
5066
5058 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5067 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5059 into a single one, "colors". This now controls both prompt and
5068 into a single one, "colors". This now controls both prompt and
5060 exception color schemes, and can be changed both at startup
5069 exception color schemes, and can be changed both at startup
5061 (either via command-line switches or via ipythonrc files) and at
5070 (either via command-line switches or via ipythonrc files) and at
5062 runtime, with @colors.
5071 runtime, with @colors.
5063 (Magic.magic_run): renamed @prun to @run and removed the old
5072 (Magic.magic_run): renamed @prun to @run and removed the old
5064 @run. The two were too similar to warrant keeping both.
5073 @run. The two were too similar to warrant keeping both.
5065
5074
5066 2002-02-03 Fernando Perez <fperez@colorado.edu>
5075 2002-02-03 Fernando Perez <fperez@colorado.edu>
5067
5076
5068 * IPython/iplib.py (install_first_time): Added comment on how to
5077 * IPython/iplib.py (install_first_time): Added comment on how to
5069 configure the color options for first-time users. Put a <return>
5078 configure the color options for first-time users. Put a <return>
5070 request at the end so that small-terminal users get a chance to
5079 request at the end so that small-terminal users get a chance to
5071 read the startup info.
5080 read the startup info.
5072
5081
5073 2002-01-23 Fernando Perez <fperez@colorado.edu>
5082 2002-01-23 Fernando Perez <fperez@colorado.edu>
5074
5083
5075 * IPython/iplib.py (CachedOutput.update): Changed output memory
5084 * IPython/iplib.py (CachedOutput.update): Changed output memory
5076 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5085 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5077 input history we still use _i. Did this b/c these variable are
5086 input history we still use _i. Did this b/c these variable are
5078 very commonly used in interactive work, so the less we need to
5087 very commonly used in interactive work, so the less we need to
5079 type the better off we are.
5088 type the better off we are.
5080 (Magic.magic_prun): updated @prun to better handle the namespaces
5089 (Magic.magic_prun): updated @prun to better handle the namespaces
5081 the file will run in, including a fix for __name__ not being set
5090 the file will run in, including a fix for __name__ not being set
5082 before.
5091 before.
5083
5092
5084 2002-01-20 Fernando Perez <fperez@colorado.edu>
5093 2002-01-20 Fernando Perez <fperez@colorado.edu>
5085
5094
5086 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5095 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5087 extra garbage for Python 2.2. Need to look more carefully into
5096 extra garbage for Python 2.2. Need to look more carefully into
5088 this later.
5097 this later.
5089
5098
5090 2002-01-19 Fernando Perez <fperez@colorado.edu>
5099 2002-01-19 Fernando Perez <fperez@colorado.edu>
5091
5100
5092 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5101 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5093 display SyntaxError exceptions properly formatted when they occur
5102 display SyntaxError exceptions properly formatted when they occur
5094 (they can be triggered by imported code).
5103 (they can be triggered by imported code).
5095
5104
5096 2002-01-18 Fernando Perez <fperez@colorado.edu>
5105 2002-01-18 Fernando Perez <fperez@colorado.edu>
5097
5106
5098 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5107 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5099 SyntaxError exceptions are reported nicely formatted, instead of
5108 SyntaxError exceptions are reported nicely formatted, instead of
5100 spitting out only offset information as before.
5109 spitting out only offset information as before.
5101 (Magic.magic_prun): Added the @prun function for executing
5110 (Magic.magic_prun): Added the @prun function for executing
5102 programs with command line args inside IPython.
5111 programs with command line args inside IPython.
5103
5112
5104 2002-01-16 Fernando Perez <fperez@colorado.edu>
5113 2002-01-16 Fernando Perez <fperez@colorado.edu>
5105
5114
5106 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5115 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5107 to *not* include the last item given in a range. This brings their
5116 to *not* include the last item given in a range. This brings their
5108 behavior in line with Python's slicing:
5117 behavior in line with Python's slicing:
5109 a[n1:n2] -> a[n1]...a[n2-1]
5118 a[n1:n2] -> a[n1]...a[n2-1]
5110 It may be a bit less convenient, but I prefer to stick to Python's
5119 It may be a bit less convenient, but I prefer to stick to Python's
5111 conventions *everywhere*, so users never have to wonder.
5120 conventions *everywhere*, so users never have to wonder.
5112 (Magic.magic_macro): Added @macro function to ease the creation of
5121 (Magic.magic_macro): Added @macro function to ease the creation of
5113 macros.
5122 macros.
5114
5123
5115 2002-01-05 Fernando Perez <fperez@colorado.edu>
5124 2002-01-05 Fernando Perez <fperez@colorado.edu>
5116
5125
5117 * Released 0.2.4.
5126 * Released 0.2.4.
5118
5127
5119 * IPython/iplib.py (Magic.magic_pdef):
5128 * IPython/iplib.py (Magic.magic_pdef):
5120 (InteractiveShell.safe_execfile): report magic lines and error
5129 (InteractiveShell.safe_execfile): report magic lines and error
5121 lines without line numbers so one can easily copy/paste them for
5130 lines without line numbers so one can easily copy/paste them for
5122 re-execution.
5131 re-execution.
5123
5132
5124 * Updated manual with recent changes.
5133 * Updated manual with recent changes.
5125
5134
5126 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5135 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5127 docstring printing when class? is called. Very handy for knowing
5136 docstring printing when class? is called. Very handy for knowing
5128 how to create class instances (as long as __init__ is well
5137 how to create class instances (as long as __init__ is well
5129 documented, of course :)
5138 documented, of course :)
5130 (Magic.magic_doc): print both class and constructor docstrings.
5139 (Magic.magic_doc): print both class and constructor docstrings.
5131 (Magic.magic_pdef): give constructor info if passed a class and
5140 (Magic.magic_pdef): give constructor info if passed a class and
5132 __call__ info for callable object instances.
5141 __call__ info for callable object instances.
5133
5142
5134 2002-01-04 Fernando Perez <fperez@colorado.edu>
5143 2002-01-04 Fernando Perez <fperez@colorado.edu>
5135
5144
5136 * Made deep_reload() off by default. It doesn't always work
5145 * Made deep_reload() off by default. It doesn't always work
5137 exactly as intended, so it's probably safer to have it off. It's
5146 exactly as intended, so it's probably safer to have it off. It's
5138 still available as dreload() anyway, so nothing is lost.
5147 still available as dreload() anyway, so nothing is lost.
5139
5148
5140 2002-01-02 Fernando Perez <fperez@colorado.edu>
5149 2002-01-02 Fernando Perez <fperez@colorado.edu>
5141
5150
5142 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5151 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5143 so I wanted an updated release).
5152 so I wanted an updated release).
5144
5153
5145 2001-12-27 Fernando Perez <fperez@colorado.edu>
5154 2001-12-27 Fernando Perez <fperez@colorado.edu>
5146
5155
5147 * IPython/iplib.py (InteractiveShell.interact): Added the original
5156 * IPython/iplib.py (InteractiveShell.interact): Added the original
5148 code from 'code.py' for this module in order to change the
5157 code from 'code.py' for this module in order to change the
5149 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5158 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5150 the history cache would break when the user hit Ctrl-C, and
5159 the history cache would break when the user hit Ctrl-C, and
5151 interact() offers no way to add any hooks to it.
5160 interact() offers no way to add any hooks to it.
5152
5161
5153 2001-12-23 Fernando Perez <fperez@colorado.edu>
5162 2001-12-23 Fernando Perez <fperez@colorado.edu>
5154
5163
5155 * setup.py: added check for 'MANIFEST' before trying to remove
5164 * setup.py: added check for 'MANIFEST' before trying to remove
5156 it. Thanks to Sean Reifschneider.
5165 it. Thanks to Sean Reifschneider.
5157
5166
5158 2001-12-22 Fernando Perez <fperez@colorado.edu>
5167 2001-12-22 Fernando Perez <fperez@colorado.edu>
5159
5168
5160 * Released 0.2.2.
5169 * Released 0.2.2.
5161
5170
5162 * Finished (reasonably) writing the manual. Later will add the
5171 * Finished (reasonably) writing the manual. Later will add the
5163 python-standard navigation stylesheets, but for the time being
5172 python-standard navigation stylesheets, but for the time being
5164 it's fairly complete. Distribution will include html and pdf
5173 it's fairly complete. Distribution will include html and pdf
5165 versions.
5174 versions.
5166
5175
5167 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5176 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5168 (MayaVi author).
5177 (MayaVi author).
5169
5178
5170 2001-12-21 Fernando Perez <fperez@colorado.edu>
5179 2001-12-21 Fernando Perez <fperez@colorado.edu>
5171
5180
5172 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5181 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5173 good public release, I think (with the manual and the distutils
5182 good public release, I think (with the manual and the distutils
5174 installer). The manual can use some work, but that can go
5183 installer). The manual can use some work, but that can go
5175 slowly. Otherwise I think it's quite nice for end users. Next
5184 slowly. Otherwise I think it's quite nice for end users. Next
5176 summer, rewrite the guts of it...
5185 summer, rewrite the guts of it...
5177
5186
5178 * Changed format of ipythonrc files to use whitespace as the
5187 * Changed format of ipythonrc files to use whitespace as the
5179 separator instead of an explicit '='. Cleaner.
5188 separator instead of an explicit '='. Cleaner.
5180
5189
5181 2001-12-20 Fernando Perez <fperez@colorado.edu>
5190 2001-12-20 Fernando Perez <fperez@colorado.edu>
5182
5191
5183 * Started a manual in LyX. For now it's just a quick merge of the
5192 * Started a manual in LyX. For now it's just a quick merge of the
5184 various internal docstrings and READMEs. Later it may grow into a
5193 various internal docstrings and READMEs. Later it may grow into a
5185 nice, full-blown manual.
5194 nice, full-blown manual.
5186
5195
5187 * Set up a distutils based installer. Installation should now be
5196 * Set up a distutils based installer. Installation should now be
5188 trivially simple for end-users.
5197 trivially simple for end-users.
5189
5198
5190 2001-12-11 Fernando Perez <fperez@colorado.edu>
5199 2001-12-11 Fernando Perez <fperez@colorado.edu>
5191
5200
5192 * Released 0.2.0. First public release, announced it at
5201 * Released 0.2.0. First public release, announced it at
5193 comp.lang.python. From now on, just bugfixes...
5202 comp.lang.python. From now on, just bugfixes...
5194
5203
5195 * Went through all the files, set copyright/license notices and
5204 * Went through all the files, set copyright/license notices and
5196 cleaned up things. Ready for release.
5205 cleaned up things. Ready for release.
5197
5206
5198 2001-12-10 Fernando Perez <fperez@colorado.edu>
5207 2001-12-10 Fernando Perez <fperez@colorado.edu>
5199
5208
5200 * Changed the first-time installer not to use tarfiles. It's more
5209 * Changed the first-time installer not to use tarfiles. It's more
5201 robust now and less unix-dependent. Also makes it easier for
5210 robust now and less unix-dependent. Also makes it easier for
5202 people to later upgrade versions.
5211 people to later upgrade versions.
5203
5212
5204 * Changed @exit to @abort to reflect the fact that it's pretty
5213 * Changed @exit to @abort to reflect the fact that it's pretty
5205 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5214 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5206 becomes significant only when IPyhton is embedded: in that case,
5215 becomes significant only when IPyhton is embedded: in that case,
5207 C-D closes IPython only, but @abort kills the enclosing program
5216 C-D closes IPython only, but @abort kills the enclosing program
5208 too (unless it had called IPython inside a try catching
5217 too (unless it had called IPython inside a try catching
5209 SystemExit).
5218 SystemExit).
5210
5219
5211 * Created Shell module which exposes the actuall IPython Shell
5220 * Created Shell module which exposes the actuall IPython Shell
5212 classes, currently the normal and the embeddable one. This at
5221 classes, currently the normal and the embeddable one. This at
5213 least offers a stable interface we won't need to change when
5222 least offers a stable interface we won't need to change when
5214 (later) the internals are rewritten. That rewrite will be confined
5223 (later) the internals are rewritten. That rewrite will be confined
5215 to iplib and ipmaker, but the Shell interface should remain as is.
5224 to iplib and ipmaker, but the Shell interface should remain as is.
5216
5225
5217 * Added embed module which offers an embeddable IPShell object,
5226 * Added embed module which offers an embeddable IPShell object,
5218 useful to fire up IPython *inside* a running program. Great for
5227 useful to fire up IPython *inside* a running program. Great for
5219 debugging or dynamical data analysis.
5228 debugging or dynamical data analysis.
5220
5229
5221 2001-12-08 Fernando Perez <fperez@colorado.edu>
5230 2001-12-08 Fernando Perez <fperez@colorado.edu>
5222
5231
5223 * Fixed small bug preventing seeing info from methods of defined
5232 * Fixed small bug preventing seeing info from methods of defined
5224 objects (incorrect namespace in _ofind()).
5233 objects (incorrect namespace in _ofind()).
5225
5234
5226 * Documentation cleanup. Moved the main usage docstrings to a
5235 * Documentation cleanup. Moved the main usage docstrings to a
5227 separate file, usage.py (cleaner to maintain, and hopefully in the
5236 separate file, usage.py (cleaner to maintain, and hopefully in the
5228 future some perlpod-like way of producing interactive, man and
5237 future some perlpod-like way of producing interactive, man and
5229 html docs out of it will be found).
5238 html docs out of it will be found).
5230
5239
5231 * Added @profile to see your profile at any time.
5240 * Added @profile to see your profile at any time.
5232
5241
5233 * Added @p as an alias for 'print'. It's especially convenient if
5242 * Added @p as an alias for 'print'. It's especially convenient if
5234 using automagic ('p x' prints x).
5243 using automagic ('p x' prints x).
5235
5244
5236 * Small cleanups and fixes after a pychecker run.
5245 * Small cleanups and fixes after a pychecker run.
5237
5246
5238 * Changed the @cd command to handle @cd - and @cd -<n> for
5247 * Changed the @cd command to handle @cd - and @cd -<n> for
5239 visiting any directory in _dh.
5248 visiting any directory in _dh.
5240
5249
5241 * Introduced _dh, a history of visited directories. @dhist prints
5250 * Introduced _dh, a history of visited directories. @dhist prints
5242 it out with numbers.
5251 it out with numbers.
5243
5252
5244 2001-12-07 Fernando Perez <fperez@colorado.edu>
5253 2001-12-07 Fernando Perez <fperez@colorado.edu>
5245
5254
5246 * Released 0.1.22
5255 * Released 0.1.22
5247
5256
5248 * Made initialization a bit more robust against invalid color
5257 * Made initialization a bit more robust against invalid color
5249 options in user input (exit, not traceback-crash).
5258 options in user input (exit, not traceback-crash).
5250
5259
5251 * Changed the bug crash reporter to write the report only in the
5260 * Changed the bug crash reporter to write the report only in the
5252 user's .ipython directory. That way IPython won't litter people's
5261 user's .ipython directory. That way IPython won't litter people's
5253 hard disks with crash files all over the place. Also print on
5262 hard disks with crash files all over the place. Also print on
5254 screen the necessary mail command.
5263 screen the necessary mail command.
5255
5264
5256 * With the new ultraTB, implemented LightBG color scheme for light
5265 * With the new ultraTB, implemented LightBG color scheme for light
5257 background terminals. A lot of people like white backgrounds, so I
5266 background terminals. A lot of people like white backgrounds, so I
5258 guess we should at least give them something readable.
5267 guess we should at least give them something readable.
5259
5268
5260 2001-12-06 Fernando Perez <fperez@colorado.edu>
5269 2001-12-06 Fernando Perez <fperez@colorado.edu>
5261
5270
5262 * Modified the structure of ultraTB. Now there's a proper class
5271 * Modified the structure of ultraTB. Now there's a proper class
5263 for tables of color schemes which allow adding schemes easily and
5272 for tables of color schemes which allow adding schemes easily and
5264 switching the active scheme without creating a new instance every
5273 switching the active scheme without creating a new instance every
5265 time (which was ridiculous). The syntax for creating new schemes
5274 time (which was ridiculous). The syntax for creating new schemes
5266 is also cleaner. I think ultraTB is finally done, with a clean
5275 is also cleaner. I think ultraTB is finally done, with a clean
5267 class structure. Names are also much cleaner (now there's proper
5276 class structure. Names are also much cleaner (now there's proper
5268 color tables, no need for every variable to also have 'color' in
5277 color tables, no need for every variable to also have 'color' in
5269 its name).
5278 its name).
5270
5279
5271 * Broke down genutils into separate files. Now genutils only
5280 * Broke down genutils into separate files. Now genutils only
5272 contains utility functions, and classes have been moved to their
5281 contains utility functions, and classes have been moved to their
5273 own files (they had enough independent functionality to warrant
5282 own files (they had enough independent functionality to warrant
5274 it): ConfigLoader, OutputTrap, Struct.
5283 it): ConfigLoader, OutputTrap, Struct.
5275
5284
5276 2001-12-05 Fernando Perez <fperez@colorado.edu>
5285 2001-12-05 Fernando Perez <fperez@colorado.edu>
5277
5286
5278 * IPython turns 21! Released version 0.1.21, as a candidate for
5287 * IPython turns 21! Released version 0.1.21, as a candidate for
5279 public consumption. If all goes well, release in a few days.
5288 public consumption. If all goes well, release in a few days.
5280
5289
5281 * Fixed path bug (files in Extensions/ directory wouldn't be found
5290 * Fixed path bug (files in Extensions/ directory wouldn't be found
5282 unless IPython/ was explicitly in sys.path).
5291 unless IPython/ was explicitly in sys.path).
5283
5292
5284 * Extended the FlexCompleter class as MagicCompleter to allow
5293 * Extended the FlexCompleter class as MagicCompleter to allow
5285 completion of @-starting lines.
5294 completion of @-starting lines.
5286
5295
5287 * Created __release__.py file as a central repository for release
5296 * Created __release__.py file as a central repository for release
5288 info that other files can read from.
5297 info that other files can read from.
5289
5298
5290 * Fixed small bug in logging: when logging was turned on in
5299 * Fixed small bug in logging: when logging was turned on in
5291 mid-session, old lines with special meanings (!@?) were being
5300 mid-session, old lines with special meanings (!@?) were being
5292 logged without the prepended comment, which is necessary since
5301 logged without the prepended comment, which is necessary since
5293 they are not truly valid python syntax. This should make session
5302 they are not truly valid python syntax. This should make session
5294 restores produce less errors.
5303 restores produce less errors.
5295
5304
5296 * The namespace cleanup forced me to make a FlexCompleter class
5305 * The namespace cleanup forced me to make a FlexCompleter class
5297 which is nothing but a ripoff of rlcompleter, but with selectable
5306 which is nothing but a ripoff of rlcompleter, but with selectable
5298 namespace (rlcompleter only works in __main__.__dict__). I'll try
5307 namespace (rlcompleter only works in __main__.__dict__). I'll try
5299 to submit a note to the authors to see if this change can be
5308 to submit a note to the authors to see if this change can be
5300 incorporated in future rlcompleter releases (Dec.6: done)
5309 incorporated in future rlcompleter releases (Dec.6: done)
5301
5310
5302 * More fixes to namespace handling. It was a mess! Now all
5311 * More fixes to namespace handling. It was a mess! Now all
5303 explicit references to __main__.__dict__ are gone (except when
5312 explicit references to __main__.__dict__ are gone (except when
5304 really needed) and everything is handled through the namespace
5313 really needed) and everything is handled through the namespace
5305 dicts in the IPython instance. We seem to be getting somewhere
5314 dicts in the IPython instance. We seem to be getting somewhere
5306 with this, finally...
5315 with this, finally...
5307
5316
5308 * Small documentation updates.
5317 * Small documentation updates.
5309
5318
5310 * Created the Extensions directory under IPython (with an
5319 * Created the Extensions directory under IPython (with an
5311 __init__.py). Put the PhysicalQ stuff there. This directory should
5320 __init__.py). Put the PhysicalQ stuff there. This directory should
5312 be used for all special-purpose extensions.
5321 be used for all special-purpose extensions.
5313
5322
5314 * File renaming:
5323 * File renaming:
5315 ipythonlib --> ipmaker
5324 ipythonlib --> ipmaker
5316 ipplib --> iplib
5325 ipplib --> iplib
5317 This makes a bit more sense in terms of what these files actually do.
5326 This makes a bit more sense in terms of what these files actually do.
5318
5327
5319 * Moved all the classes and functions in ipythonlib to ipplib, so
5328 * Moved all the classes and functions in ipythonlib to ipplib, so
5320 now ipythonlib only has make_IPython(). This will ease up its
5329 now ipythonlib only has make_IPython(). This will ease up its
5321 splitting in smaller functional chunks later.
5330 splitting in smaller functional chunks later.
5322
5331
5323 * Cleaned up (done, I think) output of @whos. Better column
5332 * Cleaned up (done, I think) output of @whos. Better column
5324 formatting, and now shows str(var) for as much as it can, which is
5333 formatting, and now shows str(var) for as much as it can, which is
5325 typically what one gets with a 'print var'.
5334 typically what one gets with a 'print var'.
5326
5335
5327 2001-12-04 Fernando Perez <fperez@colorado.edu>
5336 2001-12-04 Fernando Perez <fperez@colorado.edu>
5328
5337
5329 * Fixed namespace problems. Now builtin/IPyhton/user names get
5338 * Fixed namespace problems. Now builtin/IPyhton/user names get
5330 properly reported in their namespace. Internal namespace handling
5339 properly reported in their namespace. Internal namespace handling
5331 is finally getting decent (not perfect yet, but much better than
5340 is finally getting decent (not perfect yet, but much better than
5332 the ad-hoc mess we had).
5341 the ad-hoc mess we had).
5333
5342
5334 * Removed -exit option. If people just want to run a python
5343 * Removed -exit option. If people just want to run a python
5335 script, that's what the normal interpreter is for. Less
5344 script, that's what the normal interpreter is for. Less
5336 unnecessary options, less chances for bugs.
5345 unnecessary options, less chances for bugs.
5337
5346
5338 * Added a crash handler which generates a complete post-mortem if
5347 * Added a crash handler which generates a complete post-mortem if
5339 IPython crashes. This will help a lot in tracking bugs down the
5348 IPython crashes. This will help a lot in tracking bugs down the
5340 road.
5349 road.
5341
5350
5342 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5351 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5343 which were boud to functions being reassigned would bypass the
5352 which were boud to functions being reassigned would bypass the
5344 logger, breaking the sync of _il with the prompt counter. This
5353 logger, breaking the sync of _il with the prompt counter. This
5345 would then crash IPython later when a new line was logged.
5354 would then crash IPython later when a new line was logged.
5346
5355
5347 2001-12-02 Fernando Perez <fperez@colorado.edu>
5356 2001-12-02 Fernando Perez <fperez@colorado.edu>
5348
5357
5349 * Made IPython a package. This means people don't have to clutter
5358 * Made IPython a package. This means people don't have to clutter
5350 their sys.path with yet another directory. Changed the INSTALL
5359 their sys.path with yet another directory. Changed the INSTALL
5351 file accordingly.
5360 file accordingly.
5352
5361
5353 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5362 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5354 sorts its output (so @who shows it sorted) and @whos formats the
5363 sorts its output (so @who shows it sorted) and @whos formats the
5355 table according to the width of the first column. Nicer, easier to
5364 table according to the width of the first column. Nicer, easier to
5356 read. Todo: write a generic table_format() which takes a list of
5365 read. Todo: write a generic table_format() which takes a list of
5357 lists and prints it nicely formatted, with optional row/column
5366 lists and prints it nicely formatted, with optional row/column
5358 separators and proper padding and justification.
5367 separators and proper padding and justification.
5359
5368
5360 * Released 0.1.20
5369 * Released 0.1.20
5361
5370
5362 * Fixed bug in @log which would reverse the inputcache list (a
5371 * Fixed bug in @log which would reverse the inputcache list (a
5363 copy operation was missing).
5372 copy operation was missing).
5364
5373
5365 * Code cleanup. @config was changed to use page(). Better, since
5374 * Code cleanup. @config was changed to use page(). Better, since
5366 its output is always quite long.
5375 its output is always quite long.
5367
5376
5368 * Itpl is back as a dependency. I was having too many problems
5377 * Itpl is back as a dependency. I was having too many problems
5369 getting the parametric aliases to work reliably, and it's just
5378 getting the parametric aliases to work reliably, and it's just
5370 easier to code weird string operations with it than playing %()s
5379 easier to code weird string operations with it than playing %()s
5371 games. It's only ~6k, so I don't think it's too big a deal.
5380 games. It's only ~6k, so I don't think it's too big a deal.
5372
5381
5373 * Found (and fixed) a very nasty bug with history. !lines weren't
5382 * Found (and fixed) a very nasty bug with history. !lines weren't
5374 getting cached, and the out of sync caches would crash
5383 getting cached, and the out of sync caches would crash
5375 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5384 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5376 division of labor a bit better. Bug fixed, cleaner structure.
5385 division of labor a bit better. Bug fixed, cleaner structure.
5377
5386
5378 2001-12-01 Fernando Perez <fperez@colorado.edu>
5387 2001-12-01 Fernando Perez <fperez@colorado.edu>
5379
5388
5380 * Released 0.1.19
5389 * Released 0.1.19
5381
5390
5382 * Added option -n to @hist to prevent line number printing. Much
5391 * Added option -n to @hist to prevent line number printing. Much
5383 easier to copy/paste code this way.
5392 easier to copy/paste code this way.
5384
5393
5385 * Created global _il to hold the input list. Allows easy
5394 * Created global _il to hold the input list. Allows easy
5386 re-execution of blocks of code by slicing it (inspired by Janko's
5395 re-execution of blocks of code by slicing it (inspired by Janko's
5387 comment on 'macros').
5396 comment on 'macros').
5388
5397
5389 * Small fixes and doc updates.
5398 * Small fixes and doc updates.
5390
5399
5391 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5400 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5392 much too fragile with automagic. Handles properly multi-line
5401 much too fragile with automagic. Handles properly multi-line
5393 statements and takes parameters.
5402 statements and takes parameters.
5394
5403
5395 2001-11-30 Fernando Perez <fperez@colorado.edu>
5404 2001-11-30 Fernando Perez <fperez@colorado.edu>
5396
5405
5397 * Version 0.1.18 released.
5406 * Version 0.1.18 released.
5398
5407
5399 * Fixed nasty namespace bug in initial module imports.
5408 * Fixed nasty namespace bug in initial module imports.
5400
5409
5401 * Added copyright/license notes to all code files (except
5410 * Added copyright/license notes to all code files (except
5402 DPyGetOpt). For the time being, LGPL. That could change.
5411 DPyGetOpt). For the time being, LGPL. That could change.
5403
5412
5404 * Rewrote a much nicer README, updated INSTALL, cleaned up
5413 * Rewrote a much nicer README, updated INSTALL, cleaned up
5405 ipythonrc-* samples.
5414 ipythonrc-* samples.
5406
5415
5407 * Overall code/documentation cleanup. Basically ready for
5416 * Overall code/documentation cleanup. Basically ready for
5408 release. Only remaining thing: licence decision (LGPL?).
5417 release. Only remaining thing: licence decision (LGPL?).
5409
5418
5410 * Converted load_config to a class, ConfigLoader. Now recursion
5419 * Converted load_config to a class, ConfigLoader. Now recursion
5411 control is better organized. Doesn't include the same file twice.
5420 control is better organized. Doesn't include the same file twice.
5412
5421
5413 2001-11-29 Fernando Perez <fperez@colorado.edu>
5422 2001-11-29 Fernando Perez <fperez@colorado.edu>
5414
5423
5415 * Got input history working. Changed output history variables from
5424 * Got input history working. Changed output history variables from
5416 _p to _o so that _i is for input and _o for output. Just cleaner
5425 _p to _o so that _i is for input and _o for output. Just cleaner
5417 convention.
5426 convention.
5418
5427
5419 * Implemented parametric aliases. This pretty much allows the
5428 * Implemented parametric aliases. This pretty much allows the
5420 alias system to offer full-blown shell convenience, I think.
5429 alias system to offer full-blown shell convenience, I think.
5421
5430
5422 * Version 0.1.17 released, 0.1.18 opened.
5431 * Version 0.1.17 released, 0.1.18 opened.
5423
5432
5424 * dot_ipython/ipythonrc (alias): added documentation.
5433 * dot_ipython/ipythonrc (alias): added documentation.
5425 (xcolor): Fixed small bug (xcolors -> xcolor)
5434 (xcolor): Fixed small bug (xcolors -> xcolor)
5426
5435
5427 * Changed the alias system. Now alias is a magic command to define
5436 * Changed the alias system. Now alias is a magic command to define
5428 aliases just like the shell. Rationale: the builtin magics should
5437 aliases just like the shell. Rationale: the builtin magics should
5429 be there for things deeply connected to IPython's
5438 be there for things deeply connected to IPython's
5430 architecture. And this is a much lighter system for what I think
5439 architecture. And this is a much lighter system for what I think
5431 is the really important feature: allowing users to define quickly
5440 is the really important feature: allowing users to define quickly
5432 magics that will do shell things for them, so they can customize
5441 magics that will do shell things for them, so they can customize
5433 IPython easily to match their work habits. If someone is really
5442 IPython easily to match their work habits. If someone is really
5434 desperate to have another name for a builtin alias, they can
5443 desperate to have another name for a builtin alias, they can
5435 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5444 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5436 works.
5445 works.
5437
5446
5438 2001-11-28 Fernando Perez <fperez@colorado.edu>
5447 2001-11-28 Fernando Perez <fperez@colorado.edu>
5439
5448
5440 * Changed @file so that it opens the source file at the proper
5449 * Changed @file so that it opens the source file at the proper
5441 line. Since it uses less, if your EDITOR environment is
5450 line. Since it uses less, if your EDITOR environment is
5442 configured, typing v will immediately open your editor of choice
5451 configured, typing v will immediately open your editor of choice
5443 right at the line where the object is defined. Not as quick as
5452 right at the line where the object is defined. Not as quick as
5444 having a direct @edit command, but for all intents and purposes it
5453 having a direct @edit command, but for all intents and purposes it
5445 works. And I don't have to worry about writing @edit to deal with
5454 works. And I don't have to worry about writing @edit to deal with
5446 all the editors, less does that.
5455 all the editors, less does that.
5447
5456
5448 * Version 0.1.16 released, 0.1.17 opened.
5457 * Version 0.1.16 released, 0.1.17 opened.
5449
5458
5450 * Fixed some nasty bugs in the page/page_dumb combo that could
5459 * Fixed some nasty bugs in the page/page_dumb combo that could
5451 crash IPython.
5460 crash IPython.
5452
5461
5453 2001-11-27 Fernando Perez <fperez@colorado.edu>
5462 2001-11-27 Fernando Perez <fperez@colorado.edu>
5454
5463
5455 * Version 0.1.15 released, 0.1.16 opened.
5464 * Version 0.1.15 released, 0.1.16 opened.
5456
5465
5457 * Finally got ? and ?? to work for undefined things: now it's
5466 * Finally got ? and ?? to work for undefined things: now it's
5458 possible to type {}.get? and get information about the get method
5467 possible to type {}.get? and get information about the get method
5459 of dicts, or os.path? even if only os is defined (so technically
5468 of dicts, or os.path? even if only os is defined (so technically
5460 os.path isn't). Works at any level. For example, after import os,
5469 os.path isn't). Works at any level. For example, after import os,
5461 os?, os.path?, os.path.abspath? all work. This is great, took some
5470 os?, os.path?, os.path.abspath? all work. This is great, took some
5462 work in _ofind.
5471 work in _ofind.
5463
5472
5464 * Fixed more bugs with logging. The sanest way to do it was to add
5473 * Fixed more bugs with logging. The sanest way to do it was to add
5465 to @log a 'mode' parameter. Killed two in one shot (this mode
5474 to @log a 'mode' parameter. Killed two in one shot (this mode
5466 option was a request of Janko's). I think it's finally clean
5475 option was a request of Janko's). I think it's finally clean
5467 (famous last words).
5476 (famous last words).
5468
5477
5469 * Added a page_dumb() pager which does a decent job of paging on
5478 * Added a page_dumb() pager which does a decent job of paging on
5470 screen, if better things (like less) aren't available. One less
5479 screen, if better things (like less) aren't available. One less
5471 unix dependency (someday maybe somebody will port this to
5480 unix dependency (someday maybe somebody will port this to
5472 windows).
5481 windows).
5473
5482
5474 * Fixed problem in magic_log: would lock of logging out if log
5483 * Fixed problem in magic_log: would lock of logging out if log
5475 creation failed (because it would still think it had succeeded).
5484 creation failed (because it would still think it had succeeded).
5476
5485
5477 * Improved the page() function using curses to auto-detect screen
5486 * Improved the page() function using curses to auto-detect screen
5478 size. Now it can make a much better decision on whether to print
5487 size. Now it can make a much better decision on whether to print
5479 or page a string. Option screen_length was modified: a value 0
5488 or page a string. Option screen_length was modified: a value 0
5480 means auto-detect, and that's the default now.
5489 means auto-detect, and that's the default now.
5481
5490
5482 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5491 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5483 go out. I'll test it for a few days, then talk to Janko about
5492 go out. I'll test it for a few days, then talk to Janko about
5484 licences and announce it.
5493 licences and announce it.
5485
5494
5486 * Fixed the length of the auto-generated ---> prompt which appears
5495 * Fixed the length of the auto-generated ---> prompt which appears
5487 for auto-parens and auto-quotes. Getting this right isn't trivial,
5496 for auto-parens and auto-quotes. Getting this right isn't trivial,
5488 with all the color escapes, different prompt types and optional
5497 with all the color escapes, different prompt types and optional
5489 separators. But it seems to be working in all the combinations.
5498 separators. But it seems to be working in all the combinations.
5490
5499
5491 2001-11-26 Fernando Perez <fperez@colorado.edu>
5500 2001-11-26 Fernando Perez <fperez@colorado.edu>
5492
5501
5493 * Wrote a regexp filter to get option types from the option names
5502 * Wrote a regexp filter to get option types from the option names
5494 string. This eliminates the need to manually keep two duplicate
5503 string. This eliminates the need to manually keep two duplicate
5495 lists.
5504 lists.
5496
5505
5497 * Removed the unneeded check_option_names. Now options are handled
5506 * Removed the unneeded check_option_names. Now options are handled
5498 in a much saner manner and it's easy to visually check that things
5507 in a much saner manner and it's easy to visually check that things
5499 are ok.
5508 are ok.
5500
5509
5501 * Updated version numbers on all files I modified to carry a
5510 * Updated version numbers on all files I modified to carry a
5502 notice so Janko and Nathan have clear version markers.
5511 notice so Janko and Nathan have clear version markers.
5503
5512
5504 * Updated docstring for ultraTB with my changes. I should send
5513 * Updated docstring for ultraTB with my changes. I should send
5505 this to Nathan.
5514 this to Nathan.
5506
5515
5507 * Lots of small fixes. Ran everything through pychecker again.
5516 * Lots of small fixes. Ran everything through pychecker again.
5508
5517
5509 * Made loading of deep_reload an cmd line option. If it's not too
5518 * Made loading of deep_reload an cmd line option. If it's not too
5510 kosher, now people can just disable it. With -nodeep_reload it's
5519 kosher, now people can just disable it. With -nodeep_reload it's
5511 still available as dreload(), it just won't overwrite reload().
5520 still available as dreload(), it just won't overwrite reload().
5512
5521
5513 * Moved many options to the no| form (-opt and -noopt
5522 * Moved many options to the no| form (-opt and -noopt
5514 accepted). Cleaner.
5523 accepted). Cleaner.
5515
5524
5516 * Changed magic_log so that if called with no parameters, it uses
5525 * Changed magic_log so that if called with no parameters, it uses
5517 'rotate' mode. That way auto-generated logs aren't automatically
5526 'rotate' mode. That way auto-generated logs aren't automatically
5518 over-written. For normal logs, now a backup is made if it exists
5527 over-written. For normal logs, now a backup is made if it exists
5519 (only 1 level of backups). A new 'backup' mode was added to the
5528 (only 1 level of backups). A new 'backup' mode was added to the
5520 Logger class to support this. This was a request by Janko.
5529 Logger class to support this. This was a request by Janko.
5521
5530
5522 * Added @logoff/@logon to stop/restart an active log.
5531 * Added @logoff/@logon to stop/restart an active log.
5523
5532
5524 * Fixed a lot of bugs in log saving/replay. It was pretty
5533 * Fixed a lot of bugs in log saving/replay. It was pretty
5525 broken. Now special lines (!@,/) appear properly in the command
5534 broken. Now special lines (!@,/) appear properly in the command
5526 history after a log replay.
5535 history after a log replay.
5527
5536
5528 * Tried and failed to implement full session saving via pickle. My
5537 * Tried and failed to implement full session saving via pickle. My
5529 idea was to pickle __main__.__dict__, but modules can't be
5538 idea was to pickle __main__.__dict__, but modules can't be
5530 pickled. This would be a better alternative to replaying logs, but
5539 pickled. This would be a better alternative to replaying logs, but
5531 seems quite tricky to get to work. Changed -session to be called
5540 seems quite tricky to get to work. Changed -session to be called
5532 -logplay, which more accurately reflects what it does. And if we
5541 -logplay, which more accurately reflects what it does. And if we
5533 ever get real session saving working, -session is now available.
5542 ever get real session saving working, -session is now available.
5534
5543
5535 * Implemented color schemes for prompts also. As for tracebacks,
5544 * Implemented color schemes for prompts also. As for tracebacks,
5536 currently only NoColor and Linux are supported. But now the
5545 currently only NoColor and Linux are supported. But now the
5537 infrastructure is in place, based on a generic ColorScheme
5546 infrastructure is in place, based on a generic ColorScheme
5538 class. So writing and activating new schemes both for the prompts
5547 class. So writing and activating new schemes both for the prompts
5539 and the tracebacks should be straightforward.
5548 and the tracebacks should be straightforward.
5540
5549
5541 * Version 0.1.13 released, 0.1.14 opened.
5550 * Version 0.1.13 released, 0.1.14 opened.
5542
5551
5543 * Changed handling of options for output cache. Now counter is
5552 * Changed handling of options for output cache. Now counter is
5544 hardwired starting at 1 and one specifies the maximum number of
5553 hardwired starting at 1 and one specifies the maximum number of
5545 entries *in the outcache* (not the max prompt counter). This is
5554 entries *in the outcache* (not the max prompt counter). This is
5546 much better, since many statements won't increase the cache
5555 much better, since many statements won't increase the cache
5547 count. It also eliminated some confusing options, now there's only
5556 count. It also eliminated some confusing options, now there's only
5548 one: cache_size.
5557 one: cache_size.
5549
5558
5550 * Added 'alias' magic function and magic_alias option in the
5559 * Added 'alias' magic function and magic_alias option in the
5551 ipythonrc file. Now the user can easily define whatever names he
5560 ipythonrc file. Now the user can easily define whatever names he
5552 wants for the magic functions without having to play weird
5561 wants for the magic functions without having to play weird
5553 namespace games. This gives IPython a real shell-like feel.
5562 namespace games. This gives IPython a real shell-like feel.
5554
5563
5555 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5564 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5556 @ or not).
5565 @ or not).
5557
5566
5558 This was one of the last remaining 'visible' bugs (that I know
5567 This was one of the last remaining 'visible' bugs (that I know
5559 of). I think if I can clean up the session loading so it works
5568 of). I think if I can clean up the session loading so it works
5560 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5569 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5561 about licensing).
5570 about licensing).
5562
5571
5563 2001-11-25 Fernando Perez <fperez@colorado.edu>
5572 2001-11-25 Fernando Perez <fperez@colorado.edu>
5564
5573
5565 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5574 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5566 there's a cleaner distinction between what ? and ?? show.
5575 there's a cleaner distinction between what ? and ?? show.
5567
5576
5568 * Added screen_length option. Now the user can define his own
5577 * Added screen_length option. Now the user can define his own
5569 screen size for page() operations.
5578 screen size for page() operations.
5570
5579
5571 * Implemented magic shell-like functions with automatic code
5580 * Implemented magic shell-like functions with automatic code
5572 generation. Now adding another function is just a matter of adding
5581 generation. Now adding another function is just a matter of adding
5573 an entry to a dict, and the function is dynamically generated at
5582 an entry to a dict, and the function is dynamically generated at
5574 run-time. Python has some really cool features!
5583 run-time. Python has some really cool features!
5575
5584
5576 * Renamed many options to cleanup conventions a little. Now all
5585 * Renamed many options to cleanup conventions a little. Now all
5577 are lowercase, and only underscores where needed. Also in the code
5586 are lowercase, and only underscores where needed. Also in the code
5578 option name tables are clearer.
5587 option name tables are clearer.
5579
5588
5580 * Changed prompts a little. Now input is 'In [n]:' instead of
5589 * Changed prompts a little. Now input is 'In [n]:' instead of
5581 'In[n]:='. This allows it the numbers to be aligned with the
5590 'In[n]:='. This allows it the numbers to be aligned with the
5582 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5591 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5583 Python (it was a Mathematica thing). The '...' continuation prompt
5592 Python (it was a Mathematica thing). The '...' continuation prompt
5584 was also changed a little to align better.
5593 was also changed a little to align better.
5585
5594
5586 * Fixed bug when flushing output cache. Not all _p<n> variables
5595 * Fixed bug when flushing output cache. Not all _p<n> variables
5587 exist, so their deletion needs to be wrapped in a try:
5596 exist, so their deletion needs to be wrapped in a try:
5588
5597
5589 * Figured out how to properly use inspect.formatargspec() (it
5598 * Figured out how to properly use inspect.formatargspec() (it
5590 requires the args preceded by *). So I removed all the code from
5599 requires the args preceded by *). So I removed all the code from
5591 _get_pdef in Magic, which was just replicating that.
5600 _get_pdef in Magic, which was just replicating that.
5592
5601
5593 * Added test to prefilter to allow redefining magic function names
5602 * Added test to prefilter to allow redefining magic function names
5594 as variables. This is ok, since the @ form is always available,
5603 as variables. This is ok, since the @ form is always available,
5595 but whe should allow the user to define a variable called 'ls' if
5604 but whe should allow the user to define a variable called 'ls' if
5596 he needs it.
5605 he needs it.
5597
5606
5598 * Moved the ToDo information from README into a separate ToDo.
5607 * Moved the ToDo information from README into a separate ToDo.
5599
5608
5600 * General code cleanup and small bugfixes. I think it's close to a
5609 * General code cleanup and small bugfixes. I think it's close to a
5601 state where it can be released, obviously with a big 'beta'
5610 state where it can be released, obviously with a big 'beta'
5602 warning on it.
5611 warning on it.
5603
5612
5604 * Got the magic function split to work. Now all magics are defined
5613 * Got the magic function split to work. Now all magics are defined
5605 in a separate class. It just organizes things a bit, and now
5614 in a separate class. It just organizes things a bit, and now
5606 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5615 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5607 was too long).
5616 was too long).
5608
5617
5609 * Changed @clear to @reset to avoid potential confusions with
5618 * Changed @clear to @reset to avoid potential confusions with
5610 the shell command clear. Also renamed @cl to @clear, which does
5619 the shell command clear. Also renamed @cl to @clear, which does
5611 exactly what people expect it to from their shell experience.
5620 exactly what people expect it to from their shell experience.
5612
5621
5613 Added a check to the @reset command (since it's so
5622 Added a check to the @reset command (since it's so
5614 destructive, it's probably a good idea to ask for confirmation).
5623 destructive, it's probably a good idea to ask for confirmation).
5615 But now reset only works for full namespace resetting. Since the
5624 But now reset only works for full namespace resetting. Since the
5616 del keyword is already there for deleting a few specific
5625 del keyword is already there for deleting a few specific
5617 variables, I don't see the point of having a redundant magic
5626 variables, I don't see the point of having a redundant magic
5618 function for the same task.
5627 function for the same task.
5619
5628
5620 2001-11-24 Fernando Perez <fperez@colorado.edu>
5629 2001-11-24 Fernando Perez <fperez@colorado.edu>
5621
5630
5622 * Updated the builtin docs (esp. the ? ones).
5631 * Updated the builtin docs (esp. the ? ones).
5623
5632
5624 * Ran all the code through pychecker. Not terribly impressed with
5633 * Ran all the code through pychecker. Not terribly impressed with
5625 it: lots of spurious warnings and didn't really find anything of
5634 it: lots of spurious warnings and didn't really find anything of
5626 substance (just a few modules being imported and not used).
5635 substance (just a few modules being imported and not used).
5627
5636
5628 * Implemented the new ultraTB functionality into IPython. New
5637 * Implemented the new ultraTB functionality into IPython. New
5629 option: xcolors. This chooses color scheme. xmode now only selects
5638 option: xcolors. This chooses color scheme. xmode now only selects
5630 between Plain and Verbose. Better orthogonality.
5639 between Plain and Verbose. Better orthogonality.
5631
5640
5632 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5641 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5633 mode and color scheme for the exception handlers. Now it's
5642 mode and color scheme for the exception handlers. Now it's
5634 possible to have the verbose traceback with no coloring.
5643 possible to have the verbose traceback with no coloring.
5635
5644
5636 2001-11-23 Fernando Perez <fperez@colorado.edu>
5645 2001-11-23 Fernando Perez <fperez@colorado.edu>
5637
5646
5638 * Version 0.1.12 released, 0.1.13 opened.
5647 * Version 0.1.12 released, 0.1.13 opened.
5639
5648
5640 * Removed option to set auto-quote and auto-paren escapes by
5649 * Removed option to set auto-quote and auto-paren escapes by
5641 user. The chances of breaking valid syntax are just too high. If
5650 user. The chances of breaking valid syntax are just too high. If
5642 someone *really* wants, they can always dig into the code.
5651 someone *really* wants, they can always dig into the code.
5643
5652
5644 * Made prompt separators configurable.
5653 * Made prompt separators configurable.
5645
5654
5646 2001-11-22 Fernando Perez <fperez@colorado.edu>
5655 2001-11-22 Fernando Perez <fperez@colorado.edu>
5647
5656
5648 * Small bugfixes in many places.
5657 * Small bugfixes in many places.
5649
5658
5650 * Removed the MyCompleter class from ipplib. It seemed redundant
5659 * Removed the MyCompleter class from ipplib. It seemed redundant
5651 with the C-p,C-n history search functionality. Less code to
5660 with the C-p,C-n history search functionality. Less code to
5652 maintain.
5661 maintain.
5653
5662
5654 * Moved all the original ipython.py code into ipythonlib.py. Right
5663 * Moved all the original ipython.py code into ipythonlib.py. Right
5655 now it's just one big dump into a function called make_IPython, so
5664 now it's just one big dump into a function called make_IPython, so
5656 no real modularity has been gained. But at least it makes the
5665 no real modularity has been gained. But at least it makes the
5657 wrapper script tiny, and since ipythonlib is a module, it gets
5666 wrapper script tiny, and since ipythonlib is a module, it gets
5658 compiled and startup is much faster.
5667 compiled and startup is much faster.
5659
5668
5660 This is a reasobably 'deep' change, so we should test it for a
5669 This is a reasobably 'deep' change, so we should test it for a
5661 while without messing too much more with the code.
5670 while without messing too much more with the code.
5662
5671
5663 2001-11-21 Fernando Perez <fperez@colorado.edu>
5672 2001-11-21 Fernando Perez <fperez@colorado.edu>
5664
5673
5665 * Version 0.1.11 released, 0.1.12 opened for further work.
5674 * Version 0.1.11 released, 0.1.12 opened for further work.
5666
5675
5667 * Removed dependency on Itpl. It was only needed in one place. It
5676 * Removed dependency on Itpl. It was only needed in one place. It
5668 would be nice if this became part of python, though. It makes life
5677 would be nice if this became part of python, though. It makes life
5669 *a lot* easier in some cases.
5678 *a lot* easier in some cases.
5670
5679
5671 * Simplified the prefilter code a bit. Now all handlers are
5680 * Simplified the prefilter code a bit. Now all handlers are
5672 expected to explicitly return a value (at least a blank string).
5681 expected to explicitly return a value (at least a blank string).
5673
5682
5674 * Heavy edits in ipplib. Removed the help system altogether. Now
5683 * Heavy edits in ipplib. Removed the help system altogether. Now
5675 obj?/?? is used for inspecting objects, a magic @doc prints
5684 obj?/?? is used for inspecting objects, a magic @doc prints
5676 docstrings, and full-blown Python help is accessed via the 'help'
5685 docstrings, and full-blown Python help is accessed via the 'help'
5677 keyword. This cleans up a lot of code (less to maintain) and does
5686 keyword. This cleans up a lot of code (less to maintain) and does
5678 the job. Since 'help' is now a standard Python component, might as
5687 the job. Since 'help' is now a standard Python component, might as
5679 well use it and remove duplicate functionality.
5688 well use it and remove duplicate functionality.
5680
5689
5681 Also removed the option to use ipplib as a standalone program. By
5690 Also removed the option to use ipplib as a standalone program. By
5682 now it's too dependent on other parts of IPython to function alone.
5691 now it's too dependent on other parts of IPython to function alone.
5683
5692
5684 * Fixed bug in genutils.pager. It would crash if the pager was
5693 * Fixed bug in genutils.pager. It would crash if the pager was
5685 exited immediately after opening (broken pipe).
5694 exited immediately after opening (broken pipe).
5686
5695
5687 * Trimmed down the VerboseTB reporting a little. The header is
5696 * Trimmed down the VerboseTB reporting a little. The header is
5688 much shorter now and the repeated exception arguments at the end
5697 much shorter now and the repeated exception arguments at the end
5689 have been removed. For interactive use the old header seemed a bit
5698 have been removed. For interactive use the old header seemed a bit
5690 excessive.
5699 excessive.
5691
5700
5692 * Fixed small bug in output of @whos for variables with multi-word
5701 * Fixed small bug in output of @whos for variables with multi-word
5693 types (only first word was displayed).
5702 types (only first word was displayed).
5694
5703
5695 2001-11-17 Fernando Perez <fperez@colorado.edu>
5704 2001-11-17 Fernando Perez <fperez@colorado.edu>
5696
5705
5697 * Version 0.1.10 released, 0.1.11 opened for further work.
5706 * Version 0.1.10 released, 0.1.11 opened for further work.
5698
5707
5699 * Modified dirs and friends. dirs now *returns* the stack (not
5708 * Modified dirs and friends. dirs now *returns* the stack (not
5700 prints), so one can manipulate it as a variable. Convenient to
5709 prints), so one can manipulate it as a variable. Convenient to
5701 travel along many directories.
5710 travel along many directories.
5702
5711
5703 * Fixed bug in magic_pdef: would only work with functions with
5712 * Fixed bug in magic_pdef: would only work with functions with
5704 arguments with default values.
5713 arguments with default values.
5705
5714
5706 2001-11-14 Fernando Perez <fperez@colorado.edu>
5715 2001-11-14 Fernando Perez <fperez@colorado.edu>
5707
5716
5708 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5717 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5709 example with IPython. Various other minor fixes and cleanups.
5718 example with IPython. Various other minor fixes and cleanups.
5710
5719
5711 * Version 0.1.9 released, 0.1.10 opened for further work.
5720 * Version 0.1.9 released, 0.1.10 opened for further work.
5712
5721
5713 * Added sys.path to the list of directories searched in the
5722 * Added sys.path to the list of directories searched in the
5714 execfile= option. It used to be the current directory and the
5723 execfile= option. It used to be the current directory and the
5715 user's IPYTHONDIR only.
5724 user's IPYTHONDIR only.
5716
5725
5717 2001-11-13 Fernando Perez <fperez@colorado.edu>
5726 2001-11-13 Fernando Perez <fperez@colorado.edu>
5718
5727
5719 * Reinstated the raw_input/prefilter separation that Janko had
5728 * Reinstated the raw_input/prefilter separation that Janko had
5720 initially. This gives a more convenient setup for extending the
5729 initially. This gives a more convenient setup for extending the
5721 pre-processor from the outside: raw_input always gets a string,
5730 pre-processor from the outside: raw_input always gets a string,
5722 and prefilter has to process it. We can then redefine prefilter
5731 and prefilter has to process it. We can then redefine prefilter
5723 from the outside and implement extensions for special
5732 from the outside and implement extensions for special
5724 purposes.
5733 purposes.
5725
5734
5726 Today I got one for inputting PhysicalQuantity objects
5735 Today I got one for inputting PhysicalQuantity objects
5727 (from Scientific) without needing any function calls at
5736 (from Scientific) without needing any function calls at
5728 all. Extremely convenient, and it's all done as a user-level
5737 all. Extremely convenient, and it's all done as a user-level
5729 extension (no IPython code was touched). Now instead of:
5738 extension (no IPython code was touched). Now instead of:
5730 a = PhysicalQuantity(4.2,'m/s**2')
5739 a = PhysicalQuantity(4.2,'m/s**2')
5731 one can simply say
5740 one can simply say
5732 a = 4.2 m/s**2
5741 a = 4.2 m/s**2
5733 or even
5742 or even
5734 a = 4.2 m/s^2
5743 a = 4.2 m/s^2
5735
5744
5736 I use this, but it's also a proof of concept: IPython really is
5745 I use this, but it's also a proof of concept: IPython really is
5737 fully user-extensible, even at the level of the parsing of the
5746 fully user-extensible, even at the level of the parsing of the
5738 command line. It's not trivial, but it's perfectly doable.
5747 command line. It's not trivial, but it's perfectly doable.
5739
5748
5740 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5749 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5741 the problem of modules being loaded in the inverse order in which
5750 the problem of modules being loaded in the inverse order in which
5742 they were defined in
5751 they were defined in
5743
5752
5744 * Version 0.1.8 released, 0.1.9 opened for further work.
5753 * Version 0.1.8 released, 0.1.9 opened for further work.
5745
5754
5746 * Added magics pdef, source and file. They respectively show the
5755 * Added magics pdef, source and file. They respectively show the
5747 definition line ('prototype' in C), source code and full python
5756 definition line ('prototype' in C), source code and full python
5748 file for any callable object. The object inspector oinfo uses
5757 file for any callable object. The object inspector oinfo uses
5749 these to show the same information.
5758 these to show the same information.
5750
5759
5751 * Version 0.1.7 released, 0.1.8 opened for further work.
5760 * Version 0.1.7 released, 0.1.8 opened for further work.
5752
5761
5753 * Separated all the magic functions into a class called Magic. The
5762 * Separated all the magic functions into a class called Magic. The
5754 InteractiveShell class was becoming too big for Xemacs to handle
5763 InteractiveShell class was becoming too big for Xemacs to handle
5755 (de-indenting a line would lock it up for 10 seconds while it
5764 (de-indenting a line would lock it up for 10 seconds while it
5756 backtracked on the whole class!)
5765 backtracked on the whole class!)
5757
5766
5758 FIXME: didn't work. It can be done, but right now namespaces are
5767 FIXME: didn't work. It can be done, but right now namespaces are
5759 all messed up. Do it later (reverted it for now, so at least
5768 all messed up. Do it later (reverted it for now, so at least
5760 everything works as before).
5769 everything works as before).
5761
5770
5762 * Got the object introspection system (magic_oinfo) working! I
5771 * Got the object introspection system (magic_oinfo) working! I
5763 think this is pretty much ready for release to Janko, so he can
5772 think this is pretty much ready for release to Janko, so he can
5764 test it for a while and then announce it. Pretty much 100% of what
5773 test it for a while and then announce it. Pretty much 100% of what
5765 I wanted for the 'phase 1' release is ready. Happy, tired.
5774 I wanted for the 'phase 1' release is ready. Happy, tired.
5766
5775
5767 2001-11-12 Fernando Perez <fperez@colorado.edu>
5776 2001-11-12 Fernando Perez <fperez@colorado.edu>
5768
5777
5769 * Version 0.1.6 released, 0.1.7 opened for further work.
5778 * Version 0.1.6 released, 0.1.7 opened for further work.
5770
5779
5771 * Fixed bug in printing: it used to test for truth before
5780 * Fixed bug in printing: it used to test for truth before
5772 printing, so 0 wouldn't print. Now checks for None.
5781 printing, so 0 wouldn't print. Now checks for None.
5773
5782
5774 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5783 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5775 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5784 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5776 reaches by hand into the outputcache. Think of a better way to do
5785 reaches by hand into the outputcache. Think of a better way to do
5777 this later.
5786 this later.
5778
5787
5779 * Various small fixes thanks to Nathan's comments.
5788 * Various small fixes thanks to Nathan's comments.
5780
5789
5781 * Changed magic_pprint to magic_Pprint. This way it doesn't
5790 * Changed magic_pprint to magic_Pprint. This way it doesn't
5782 collide with pprint() and the name is consistent with the command
5791 collide with pprint() and the name is consistent with the command
5783 line option.
5792 line option.
5784
5793
5785 * Changed prompt counter behavior to be fully like
5794 * Changed prompt counter behavior to be fully like
5786 Mathematica's. That is, even input that doesn't return a result
5795 Mathematica's. That is, even input that doesn't return a result
5787 raises the prompt counter. The old behavior was kind of confusing
5796 raises the prompt counter. The old behavior was kind of confusing
5788 (getting the same prompt number several times if the operation
5797 (getting the same prompt number several times if the operation
5789 didn't return a result).
5798 didn't return a result).
5790
5799
5791 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5800 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5792
5801
5793 * Fixed -Classic mode (wasn't working anymore).
5802 * Fixed -Classic mode (wasn't working anymore).
5794
5803
5795 * Added colored prompts using Nathan's new code. Colors are
5804 * Added colored prompts using Nathan's new code. Colors are
5796 currently hardwired, they can be user-configurable. For
5805 currently hardwired, they can be user-configurable. For
5797 developers, they can be chosen in file ipythonlib.py, at the
5806 developers, they can be chosen in file ipythonlib.py, at the
5798 beginning of the CachedOutput class def.
5807 beginning of the CachedOutput class def.
5799
5808
5800 2001-11-11 Fernando Perez <fperez@colorado.edu>
5809 2001-11-11 Fernando Perez <fperez@colorado.edu>
5801
5810
5802 * Version 0.1.5 released, 0.1.6 opened for further work.
5811 * Version 0.1.5 released, 0.1.6 opened for further work.
5803
5812
5804 * Changed magic_env to *return* the environment as a dict (not to
5813 * Changed magic_env to *return* the environment as a dict (not to
5805 print it). This way it prints, but it can also be processed.
5814 print it). This way it prints, but it can also be processed.
5806
5815
5807 * Added Verbose exception reporting to interactive
5816 * Added Verbose exception reporting to interactive
5808 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5817 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5809 traceback. Had to make some changes to the ultraTB file. This is
5818 traceback. Had to make some changes to the ultraTB file. This is
5810 probably the last 'big' thing in my mental todo list. This ties
5819 probably the last 'big' thing in my mental todo list. This ties
5811 in with the next entry:
5820 in with the next entry:
5812
5821
5813 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5822 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5814 has to specify is Plain, Color or Verbose for all exception
5823 has to specify is Plain, Color or Verbose for all exception
5815 handling.
5824 handling.
5816
5825
5817 * Removed ShellServices option. All this can really be done via
5826 * Removed ShellServices option. All this can really be done via
5818 the magic system. It's easier to extend, cleaner and has automatic
5827 the magic system. It's easier to extend, cleaner and has automatic
5819 namespace protection and documentation.
5828 namespace protection and documentation.
5820
5829
5821 2001-11-09 Fernando Perez <fperez@colorado.edu>
5830 2001-11-09 Fernando Perez <fperez@colorado.edu>
5822
5831
5823 * Fixed bug in output cache flushing (missing parameter to
5832 * Fixed bug in output cache flushing (missing parameter to
5824 __init__). Other small bugs fixed (found using pychecker).
5833 __init__). Other small bugs fixed (found using pychecker).
5825
5834
5826 * Version 0.1.4 opened for bugfixing.
5835 * Version 0.1.4 opened for bugfixing.
5827
5836
5828 2001-11-07 Fernando Perez <fperez@colorado.edu>
5837 2001-11-07 Fernando Perez <fperez@colorado.edu>
5829
5838
5830 * Version 0.1.3 released, mainly because of the raw_input bug.
5839 * Version 0.1.3 released, mainly because of the raw_input bug.
5831
5840
5832 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5841 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5833 and when testing for whether things were callable, a call could
5842 and when testing for whether things were callable, a call could
5834 actually be made to certain functions. They would get called again
5843 actually be made to certain functions. They would get called again
5835 once 'really' executed, with a resulting double call. A disaster
5844 once 'really' executed, with a resulting double call. A disaster
5836 in many cases (list.reverse() would never work!).
5845 in many cases (list.reverse() would never work!).
5837
5846
5838 * Removed prefilter() function, moved its code to raw_input (which
5847 * Removed prefilter() function, moved its code to raw_input (which
5839 after all was just a near-empty caller for prefilter). This saves
5848 after all was just a near-empty caller for prefilter). This saves
5840 a function call on every prompt, and simplifies the class a tiny bit.
5849 a function call on every prompt, and simplifies the class a tiny bit.
5841
5850
5842 * Fix _ip to __ip name in magic example file.
5851 * Fix _ip to __ip name in magic example file.
5843
5852
5844 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5853 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5845 work with non-gnu versions of tar.
5854 work with non-gnu versions of tar.
5846
5855
5847 2001-11-06 Fernando Perez <fperez@colorado.edu>
5856 2001-11-06 Fernando Perez <fperez@colorado.edu>
5848
5857
5849 * Version 0.1.2. Just to keep track of the recent changes.
5858 * Version 0.1.2. Just to keep track of the recent changes.
5850
5859
5851 * Fixed nasty bug in output prompt routine. It used to check 'if
5860 * Fixed nasty bug in output prompt routine. It used to check 'if
5852 arg != None...'. Problem is, this fails if arg implements a
5861 arg != None...'. Problem is, this fails if arg implements a
5853 special comparison (__cmp__) which disallows comparing to
5862 special comparison (__cmp__) which disallows comparing to
5854 None. Found it when trying to use the PhysicalQuantity module from
5863 None. Found it when trying to use the PhysicalQuantity module from
5855 ScientificPython.
5864 ScientificPython.
5856
5865
5857 2001-11-05 Fernando Perez <fperez@colorado.edu>
5866 2001-11-05 Fernando Perez <fperez@colorado.edu>
5858
5867
5859 * Also added dirs. Now the pushd/popd/dirs family functions
5868 * Also added dirs. Now the pushd/popd/dirs family functions
5860 basically like the shell, with the added convenience of going home
5869 basically like the shell, with the added convenience of going home
5861 when called with no args.
5870 when called with no args.
5862
5871
5863 * pushd/popd slightly modified to mimic shell behavior more
5872 * pushd/popd slightly modified to mimic shell behavior more
5864 closely.
5873 closely.
5865
5874
5866 * Added env,pushd,popd from ShellServices as magic functions. I
5875 * Added env,pushd,popd from ShellServices as magic functions. I
5867 think the cleanest will be to port all desired functions from
5876 think the cleanest will be to port all desired functions from
5868 ShellServices as magics and remove ShellServices altogether. This
5877 ShellServices as magics and remove ShellServices altogether. This
5869 will provide a single, clean way of adding functionality
5878 will provide a single, clean way of adding functionality
5870 (shell-type or otherwise) to IP.
5879 (shell-type or otherwise) to IP.
5871
5880
5872 2001-11-04 Fernando Perez <fperez@colorado.edu>
5881 2001-11-04 Fernando Perez <fperez@colorado.edu>
5873
5882
5874 * Added .ipython/ directory to sys.path. This way users can keep
5883 * Added .ipython/ directory to sys.path. This way users can keep
5875 customizations there and access them via import.
5884 customizations there and access them via import.
5876
5885
5877 2001-11-03 Fernando Perez <fperez@colorado.edu>
5886 2001-11-03 Fernando Perez <fperez@colorado.edu>
5878
5887
5879 * Opened version 0.1.1 for new changes.
5888 * Opened version 0.1.1 for new changes.
5880
5889
5881 * Changed version number to 0.1.0: first 'public' release, sent to
5890 * Changed version number to 0.1.0: first 'public' release, sent to
5882 Nathan and Janko.
5891 Nathan and Janko.
5883
5892
5884 * Lots of small fixes and tweaks.
5893 * Lots of small fixes and tweaks.
5885
5894
5886 * Minor changes to whos format. Now strings are shown, snipped if
5895 * Minor changes to whos format. Now strings are shown, snipped if
5887 too long.
5896 too long.
5888
5897
5889 * Changed ShellServices to work on __main__ so they show up in @who
5898 * Changed ShellServices to work on __main__ so they show up in @who
5890
5899
5891 * Help also works with ? at the end of a line:
5900 * Help also works with ? at the end of a line:
5892 ?sin and sin?
5901 ?sin and sin?
5893 both produce the same effect. This is nice, as often I use the
5902 both produce the same effect. This is nice, as often I use the
5894 tab-complete to find the name of a method, but I used to then have
5903 tab-complete to find the name of a method, but I used to then have
5895 to go to the beginning of the line to put a ? if I wanted more
5904 to go to the beginning of the line to put a ? if I wanted more
5896 info. Now I can just add the ? and hit return. Convenient.
5905 info. Now I can just add the ? and hit return. Convenient.
5897
5906
5898 2001-11-02 Fernando Perez <fperez@colorado.edu>
5907 2001-11-02 Fernando Perez <fperez@colorado.edu>
5899
5908
5900 * Python version check (>=2.1) added.
5909 * Python version check (>=2.1) added.
5901
5910
5902 * Added LazyPython documentation. At this point the docs are quite
5911 * Added LazyPython documentation. At this point the docs are quite
5903 a mess. A cleanup is in order.
5912 a mess. A cleanup is in order.
5904
5913
5905 * Auto-installer created. For some bizarre reason, the zipfiles
5914 * Auto-installer created. For some bizarre reason, the zipfiles
5906 module isn't working on my system. So I made a tar version
5915 module isn't working on my system. So I made a tar version
5907 (hopefully the command line options in various systems won't kill
5916 (hopefully the command line options in various systems won't kill
5908 me).
5917 me).
5909
5918
5910 * Fixes to Struct in genutils. Now all dictionary-like methods are
5919 * Fixes to Struct in genutils. Now all dictionary-like methods are
5911 protected (reasonably).
5920 protected (reasonably).
5912
5921
5913 * Added pager function to genutils and changed ? to print usage
5922 * Added pager function to genutils and changed ? to print usage
5914 note through it (it was too long).
5923 note through it (it was too long).
5915
5924
5916 * Added the LazyPython functionality. Works great! I changed the
5925 * Added the LazyPython functionality. Works great! I changed the
5917 auto-quote escape to ';', it's on home row and next to '. But
5926 auto-quote escape to ';', it's on home row and next to '. But
5918 both auto-quote and auto-paren (still /) escapes are command-line
5927 both auto-quote and auto-paren (still /) escapes are command-line
5919 parameters.
5928 parameters.
5920
5929
5921
5930
5922 2001-11-01 Fernando Perez <fperez@colorado.edu>
5931 2001-11-01 Fernando Perez <fperez@colorado.edu>
5923
5932
5924 * Version changed to 0.0.7. Fairly large change: configuration now
5933 * Version changed to 0.0.7. Fairly large change: configuration now
5925 is all stored in a directory, by default .ipython. There, all
5934 is all stored in a directory, by default .ipython. There, all
5926 config files have normal looking names (not .names)
5935 config files have normal looking names (not .names)
5927
5936
5928 * Version 0.0.6 Released first to Lucas and Archie as a test
5937 * Version 0.0.6 Released first to Lucas and Archie as a test
5929 run. Since it's the first 'semi-public' release, change version to
5938 run. Since it's the first 'semi-public' release, change version to
5930 > 0.0.6 for any changes now.
5939 > 0.0.6 for any changes now.
5931
5940
5932 * Stuff I had put in the ipplib.py changelog:
5941 * Stuff I had put in the ipplib.py changelog:
5933
5942
5934 Changes to InteractiveShell:
5943 Changes to InteractiveShell:
5935
5944
5936 - Made the usage message a parameter.
5945 - Made the usage message a parameter.
5937
5946
5938 - Require the name of the shell variable to be given. It's a bit
5947 - Require the name of the shell variable to be given. It's a bit
5939 of a hack, but allows the name 'shell' not to be hardwired in the
5948 of a hack, but allows the name 'shell' not to be hardwired in the
5940 magic (@) handler, which is problematic b/c it requires
5949 magic (@) handler, which is problematic b/c it requires
5941 polluting the global namespace with 'shell'. This in turn is
5950 polluting the global namespace with 'shell'. This in turn is
5942 fragile: if a user redefines a variable called shell, things
5951 fragile: if a user redefines a variable called shell, things
5943 break.
5952 break.
5944
5953
5945 - magic @: all functions available through @ need to be defined
5954 - magic @: all functions available through @ need to be defined
5946 as magic_<name>, even though they can be called simply as
5955 as magic_<name>, even though they can be called simply as
5947 @<name>. This allows the special command @magic to gather
5956 @<name>. This allows the special command @magic to gather
5948 information automatically about all existing magic functions,
5957 information automatically about all existing magic functions,
5949 even if they are run-time user extensions, by parsing the shell
5958 even if they are run-time user extensions, by parsing the shell
5950 instance __dict__ looking for special magic_ names.
5959 instance __dict__ looking for special magic_ names.
5951
5960
5952 - mainloop: added *two* local namespace parameters. This allows
5961 - mainloop: added *two* local namespace parameters. This allows
5953 the class to differentiate between parameters which were there
5962 the class to differentiate between parameters which were there
5954 before and after command line initialization was processed. This
5963 before and after command line initialization was processed. This
5955 way, later @who can show things loaded at startup by the
5964 way, later @who can show things loaded at startup by the
5956 user. This trick was necessary to make session saving/reloading
5965 user. This trick was necessary to make session saving/reloading
5957 really work: ideally after saving/exiting/reloading a session,
5966 really work: ideally after saving/exiting/reloading a session,
5958 *everything* should look the same, including the output of @who. I
5967 *everything* should look the same, including the output of @who. I
5959 was only able to make this work with this double namespace
5968 was only able to make this work with this double namespace
5960 trick.
5969 trick.
5961
5970
5962 - added a header to the logfile which allows (almost) full
5971 - added a header to the logfile which allows (almost) full
5963 session restoring.
5972 session restoring.
5964
5973
5965 - prepend lines beginning with @ or !, with a and log
5974 - prepend lines beginning with @ or !, with a and log
5966 them. Why? !lines: may be useful to know what you did @lines:
5975 them. Why? !lines: may be useful to know what you did @lines:
5967 they may affect session state. So when restoring a session, at
5976 they may affect session state. So when restoring a session, at
5968 least inform the user of their presence. I couldn't quite get
5977 least inform the user of their presence. I couldn't quite get
5969 them to properly re-execute, but at least the user is warned.
5978 them to properly re-execute, but at least the user is warned.
5970
5979
5971 * Started ChangeLog.
5980 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now