##// END OF EJS Templates
changelog"
vivainio -
Show More
@@ -1,6935 +1,6940 b''
1 2007-08-06 Ville Vainio <vivainio@gmail.com>
2
3 * ipmaker.py: fix bug where user_config_ns didn't exist at all
4 before all the config files were handled.
5
1 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
6 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
2
7
3 * IPython/irunner.py (RunnerFactory): Add new factory class for
8 * IPython/irunner.py (RunnerFactory): Add new factory class for
4 creating reusable runners based on filenames.
9 creating reusable runners based on filenames.
5
10
6 * IPython/Extensions/ipy_profile_doctest.py: New profile for
11 * IPython/Extensions/ipy_profile_doctest.py: New profile for
7 doctest support. It sets prompts/exceptions as similar to
12 doctest support. It sets prompts/exceptions as similar to
8 standard Python as possible, so that ipython sessions in this
13 standard Python as possible, so that ipython sessions in this
9 profile can be easily pasted as doctests with minimal
14 profile can be easily pasted as doctests with minimal
10 modifications. It also enables pasting of doctests from external
15 modifications. It also enables pasting of doctests from external
11 sources (even if they have leading whitespace), so that you can
16 sources (even if they have leading whitespace), so that you can
12 rerun doctests from existing sources.
17 rerun doctests from existing sources.
13
18
14 * IPython/iplib.py (_prefilter): fix a buglet where after entering
19 * IPython/iplib.py (_prefilter): fix a buglet where after entering
15 some whitespace, the prompt would become a continuation prompt
20 some whitespace, the prompt would become a continuation prompt
16 with no way of exiting it other than Ctrl-C. This fix brings us
21 with no way of exiting it other than Ctrl-C. This fix brings us
17 into conformity with how the default python prompt works.
22 into conformity with how the default python prompt works.
18
23
19 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
24 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
20 Add support for pasting not only lines that start with '>>>', but
25 Add support for pasting not only lines that start with '>>>', but
21 also with ' >>>'. That is, arbitrary whitespace can now precede
26 also with ' >>>'. That is, arbitrary whitespace can now precede
22 the prompts. This makes the system useful for pasting doctests
27 the prompts. This makes the system useful for pasting doctests
23 from docstrings back into a normal session.
28 from docstrings back into a normal session.
24
29
25 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
30 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
26
31
27 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
32 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
28 r1357, which had killed multiple invocations of an embedded
33 r1357, which had killed multiple invocations of an embedded
29 ipython (this means that example-embed has been broken for over 1
34 ipython (this means that example-embed has been broken for over 1
30 year!!!). Rather than possibly breaking the batch stuff for which
35 year!!!). Rather than possibly breaking the batch stuff for which
31 the code in iplib.py/interact was introduced, I worked around the
36 the code in iplib.py/interact was introduced, I worked around the
32 problem in the embedding class in Shell.py. We really need a
37 problem in the embedding class in Shell.py. We really need a
33 bloody test suite for this code, I'm sick of finding stuff that
38 bloody test suite for this code, I'm sick of finding stuff that
34 used to work breaking left and right every time I use an old
39 used to work breaking left and right every time I use an old
35 feature I hadn't touched in a few months.
40 feature I hadn't touched in a few months.
36 (kill_embedded): Add a new magic that only shows up in embedded
41 (kill_embedded): Add a new magic that only shows up in embedded
37 mode, to allow users to permanently deactivate an embedded instance.
42 mode, to allow users to permanently deactivate an embedded instance.
38
43
39 2007-08-01 Ville Vainio <vivainio@gmail.com>
44 2007-08-01 Ville Vainio <vivainio@gmail.com>
40
45
41 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
46 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
42 history gets out of sync on runlines (e.g. when running macros).
47 history gets out of sync on runlines (e.g. when running macros).
43
48
44 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
49 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
45
50
46 * IPython/Magic.py (magic_colors): fix win32-related error message
51 * IPython/Magic.py (magic_colors): fix win32-related error message
47 that could appear under *nix when readline was missing. Patch by
52 that could appear under *nix when readline was missing. Patch by
48 Scott Jackson, closes #175.
53 Scott Jackson, closes #175.
49
54
50 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
55 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
51
56
52 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
57 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
53 completer that it traits-aware, so that traits objects don't show
58 completer that it traits-aware, so that traits objects don't show
54 all of their internal attributes all the time.
59 all of their internal attributes all the time.
55
60
56 * IPython/genutils.py (dir2): moved this code from inside
61 * IPython/genutils.py (dir2): moved this code from inside
57 completer.py to expose it publicly, so I could use it in the
62 completer.py to expose it publicly, so I could use it in the
58 wildcards bugfix.
63 wildcards bugfix.
59
64
60 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
65 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
61 Stefan with Traits.
66 Stefan with Traits.
62
67
63 * IPython/completer.py (Completer.attr_matches): change internal
68 * IPython/completer.py (Completer.attr_matches): change internal
64 var name from 'object' to 'obj', since 'object' is now a builtin
69 var name from 'object' to 'obj', since 'object' is now a builtin
65 and this can lead to weird bugs if reusing this code elsewhere.
70 and this can lead to weird bugs if reusing this code elsewhere.
66
71
67 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
72 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
68
73
69 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
74 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
70 'foo?' and update the code to prevent printing of default
75 'foo?' and update the code to prevent printing of default
71 docstrings that started appearing after I added support for
76 docstrings that started appearing after I added support for
72 new-style classes. The approach I'm using isn't ideal (I just
77 new-style classes. The approach I'm using isn't ideal (I just
73 special-case those strings) but I'm not sure how to more robustly
78 special-case those strings) but I'm not sure how to more robustly
74 differentiate between truly user-written strings and Python's
79 differentiate between truly user-written strings and Python's
75 automatic ones.
80 automatic ones.
76
81
77 2007-07-09 Ville Vainio <vivainio@gmail.com>
82 2007-07-09 Ville Vainio <vivainio@gmail.com>
78
83
79 * completer.py: Applied Matthew Neeley's patch:
84 * completer.py: Applied Matthew Neeley's patch:
80 Dynamic attributes from trait_names and _getAttributeNames are added
85 Dynamic attributes from trait_names and _getAttributeNames are added
81 to the list of tab completions, but when this happens, the attribute
86 to the list of tab completions, but when this happens, the attribute
82 list is turned into a set, so the attributes are unordered when
87 list is turned into a set, so the attributes are unordered when
83 printed, which makes it hard to find the right completion. This patch
88 printed, which makes it hard to find the right completion. This patch
84 turns this set back into a list and sort it.
89 turns this set back into a list and sort it.
85
90
86 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
91 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
87
92
88 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
93 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
89 classes in various inspector functions.
94 classes in various inspector functions.
90
95
91 2007-06-28 Ville Vainio <vivainio@gmail.com>
96 2007-06-28 Ville Vainio <vivainio@gmail.com>
92
97
93 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
98 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
94 Implement "shadow" namespace, and callable aliases that reside there.
99 Implement "shadow" namespace, and callable aliases that reside there.
95 Use them by:
100 Use them by:
96
101
97 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
102 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
98
103
99 foo hello world
104 foo hello world
100 (gets translated to:)
105 (gets translated to:)
101 _sh.foo(r"""hello world""")
106 _sh.foo(r"""hello world""")
102
107
103 In practice, this kind of alias can take the role of a magic function
108 In practice, this kind of alias can take the role of a magic function
104
109
105 * New generic inspect_object, called on obj? and obj??
110 * New generic inspect_object, called on obj? and obj??
106
111
107 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
112 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
108
113
109 * IPython/ultraTB.py (findsource): fix a problem with
114 * IPython/ultraTB.py (findsource): fix a problem with
110 inspect.getfile that can cause crashes during traceback construction.
115 inspect.getfile that can cause crashes during traceback construction.
111
116
112 2007-06-14 Ville Vainio <vivainio@gmail.com>
117 2007-06-14 Ville Vainio <vivainio@gmail.com>
113
118
114 * iplib.py (handle_auto): Try to use ascii for printing "--->"
119 * iplib.py (handle_auto): Try to use ascii for printing "--->"
115 autocall rewrite indication, becausesometimes unicode fails to print
120 autocall rewrite indication, becausesometimes unicode fails to print
116 properly (and you get ' - - - '). Use plain uncoloured ---> for
121 properly (and you get ' - - - '). Use plain uncoloured ---> for
117 unicode.
122 unicode.
118
123
119 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
124 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
120
125
121 . pickleshare 'hash' commands (hget, hset, hcompress,
126 . pickleshare 'hash' commands (hget, hset, hcompress,
122 hdict) for efficient shadow history storage.
127 hdict) for efficient shadow history storage.
123
128
124 2007-06-13 Ville Vainio <vivainio@gmail.com>
129 2007-06-13 Ville Vainio <vivainio@gmail.com>
125
130
126 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
131 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
127 Added kw arg 'interactive', tell whether vars should be visible
132 Added kw arg 'interactive', tell whether vars should be visible
128 with %whos.
133 with %whos.
129
134
130 2007-06-11 Ville Vainio <vivainio@gmail.com>
135 2007-06-11 Ville Vainio <vivainio@gmail.com>
131
136
132 * pspersistence.py, Magic.py, iplib.py: directory history now saved
137 * pspersistence.py, Magic.py, iplib.py: directory history now saved
133 to db
138 to db
134
139
135 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
140 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
136 Also, it exits IPython immediately after evaluating the command (just like
141 Also, it exits IPython immediately after evaluating the command (just like
137 std python)
142 std python)
138
143
139 2007-06-05 Walter Doerwald <walter@livinglogic.de>
144 2007-06-05 Walter Doerwald <walter@livinglogic.de>
140
145
141 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
146 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
142 Python string and captures the output. (Idea and original patch by
147 Python string and captures the output. (Idea and original patch by
143 StοΏ½fan van der Walt)
148 StοΏ½fan van der Walt)
144
149
145 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
150 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
146
151
147 * IPython/ultraTB.py (VerboseTB.text): update printing of
152 * IPython/ultraTB.py (VerboseTB.text): update printing of
148 exception types for Python 2.5 (now all exceptions in the stdlib
153 exception types for Python 2.5 (now all exceptions in the stdlib
149 are new-style classes).
154 are new-style classes).
150
155
151 2007-05-31 Walter Doerwald <walter@livinglogic.de>
156 2007-05-31 Walter Doerwald <walter@livinglogic.de>
152
157
153 * IPython/Extensions/igrid.py: Add new commands refresh and
158 * IPython/Extensions/igrid.py: Add new commands refresh and
154 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
159 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
155 the iterator once (refresh) or after every x seconds (refresh_timer).
160 the iterator once (refresh) or after every x seconds (refresh_timer).
156 Add a working implementation of "searchexpression", where the text
161 Add a working implementation of "searchexpression", where the text
157 entered is not the text to search for, but an expression that must
162 entered is not the text to search for, but an expression that must
158 be true. Added display of shortcuts to the menu. Added commands "pickinput"
163 be true. Added display of shortcuts to the menu. Added commands "pickinput"
159 and "pickinputattr" that put the object or attribute under the cursor
164 and "pickinputattr" that put the object or attribute under the cursor
160 in the input line. Split the statusbar to be able to display the currently
165 in the input line. Split the statusbar to be able to display the currently
161 active refresh interval. (Patch by Nik Tautenhahn)
166 active refresh interval. (Patch by Nik Tautenhahn)
162
167
163 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
168 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
164
169
165 * fixing set_term_title to use ctypes as default
170 * fixing set_term_title to use ctypes as default
166
171
167 * fixing set_term_title fallback to work when curent dir
172 * fixing set_term_title fallback to work when curent dir
168 is on a windows network share
173 is on a windows network share
169
174
170 2007-05-28 Ville Vainio <vivainio@gmail.com>
175 2007-05-28 Ville Vainio <vivainio@gmail.com>
171
176
172 * %cpaste: strip + with > from left (diffs).
177 * %cpaste: strip + with > from left (diffs).
173
178
174 * iplib.py: Fix crash when readline not installed
179 * iplib.py: Fix crash when readline not installed
175
180
176 2007-05-26 Ville Vainio <vivainio@gmail.com>
181 2007-05-26 Ville Vainio <vivainio@gmail.com>
177
182
178 * generics.py: intruduce easy to extend result_display generic
183 * generics.py: intruduce easy to extend result_display generic
179 function (using simplegeneric.py).
184 function (using simplegeneric.py).
180
185
181 * Fixed the append functionality of %set.
186 * Fixed the append functionality of %set.
182
187
183 2007-05-25 Ville Vainio <vivainio@gmail.com>
188 2007-05-25 Ville Vainio <vivainio@gmail.com>
184
189
185 * New magic: %rep (fetch / run old commands from history)
190 * New magic: %rep (fetch / run old commands from history)
186
191
187 * New extension: mglob (%mglob magic), for powerful glob / find /filter
192 * New extension: mglob (%mglob magic), for powerful glob / find /filter
188 like functionality
193 like functionality
189
194
190 % maghistory.py: %hist -g PATTERM greps the history for pattern
195 % maghistory.py: %hist -g PATTERM greps the history for pattern
191
196
192 2007-05-24 Walter Doerwald <walter@livinglogic.de>
197 2007-05-24 Walter Doerwald <walter@livinglogic.de>
193
198
194 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
199 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
195 browse the IPython input history
200 browse the IPython input history
196
201
197 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
202 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
198 (mapped to "i") can be used to put the object under the curser in the input
203 (mapped to "i") can be used to put the object under the curser in the input
199 line. pickinputattr (mapped to "I") does the same for the attribute under
204 line. pickinputattr (mapped to "I") does the same for the attribute under
200 the cursor.
205 the cursor.
201
206
202 2007-05-24 Ville Vainio <vivainio@gmail.com>
207 2007-05-24 Ville Vainio <vivainio@gmail.com>
203
208
204 * Grand magic cleansing (changeset [2380]):
209 * Grand magic cleansing (changeset [2380]):
205
210
206 * Introduce ipy_legacy.py where the following magics were
211 * Introduce ipy_legacy.py where the following magics were
207 moved:
212 moved:
208
213
209 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
214 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
210
215
211 If you need them, either use default profile or "import ipy_legacy"
216 If you need them, either use default profile or "import ipy_legacy"
212 in your ipy_user_conf.py
217 in your ipy_user_conf.py
213
218
214 * Move sh and scipy profile to Extensions from UserConfig. this implies
219 * Move sh and scipy profile to Extensions from UserConfig. this implies
215 you should not edit them, but you don't need to run %upgrade when
220 you should not edit them, but you don't need to run %upgrade when
216 upgrading IPython anymore.
221 upgrading IPython anymore.
217
222
218 * %hist/%history now operates in "raw" mode by default. To get the old
223 * %hist/%history now operates in "raw" mode by default. To get the old
219 behaviour, run '%hist -n' (native mode).
224 behaviour, run '%hist -n' (native mode).
220
225
221 * split ipy_stock_completers.py to ipy_stock_completers.py and
226 * split ipy_stock_completers.py to ipy_stock_completers.py and
222 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
227 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
223 installed as default.
228 installed as default.
224
229
225 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
230 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
226 handling.
231 handling.
227
232
228 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
233 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
229 input if readline is available.
234 input if readline is available.
230
235
231 2007-05-23 Ville Vainio <vivainio@gmail.com>
236 2007-05-23 Ville Vainio <vivainio@gmail.com>
232
237
233 * macro.py: %store uses __getstate__ properly
238 * macro.py: %store uses __getstate__ properly
234
239
235 * exesetup.py: added new setup script for creating
240 * exesetup.py: added new setup script for creating
236 standalone IPython executables with py2exe (i.e.
241 standalone IPython executables with py2exe (i.e.
237 no python installation required).
242 no python installation required).
238
243
239 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
244 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
240 its place.
245 its place.
241
246
242 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
247 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
243
248
244 2007-05-21 Ville Vainio <vivainio@gmail.com>
249 2007-05-21 Ville Vainio <vivainio@gmail.com>
245
250
246 * platutil_win32.py (set_term_title): handle
251 * platutil_win32.py (set_term_title): handle
247 failure of 'title' system call properly.
252 failure of 'title' system call properly.
248
253
249 2007-05-17 Walter Doerwald <walter@livinglogic.de>
254 2007-05-17 Walter Doerwald <walter@livinglogic.de>
250
255
251 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
256 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
252 (Bug detected by Paul Mueller).
257 (Bug detected by Paul Mueller).
253
258
254 2007-05-16 Ville Vainio <vivainio@gmail.com>
259 2007-05-16 Ville Vainio <vivainio@gmail.com>
255
260
256 * ipy_profile_sci.py, ipython_win_post_install.py: Create
261 * ipy_profile_sci.py, ipython_win_post_install.py: Create
257 new "sci" profile, effectively a modern version of the old
262 new "sci" profile, effectively a modern version of the old
258 "scipy" profile (which is now slated for deprecation).
263 "scipy" profile (which is now slated for deprecation).
259
264
260 2007-05-15 Ville Vainio <vivainio@gmail.com>
265 2007-05-15 Ville Vainio <vivainio@gmail.com>
261
266
262 * pycolorize.py, pycolor.1: Paul Mueller's patches that
267 * pycolorize.py, pycolor.1: Paul Mueller's patches that
263 make pycolorize read input from stdin when run without arguments.
268 make pycolorize read input from stdin when run without arguments.
264
269
265 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
270 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
266
271
267 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
272 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
268 it in sh profile (instead of ipy_system_conf.py).
273 it in sh profile (instead of ipy_system_conf.py).
269
274
270 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
275 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
271 aliases are now lower case on windows (MyCommand.exe => mycommand).
276 aliases are now lower case on windows (MyCommand.exe => mycommand).
272
277
273 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
278 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
274 Macros are now callable objects that inherit from ipapi.IPyAutocall,
279 Macros are now callable objects that inherit from ipapi.IPyAutocall,
275 i.e. get autocalled regardless of system autocall setting.
280 i.e. get autocalled regardless of system autocall setting.
276
281
277 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
282 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
278
283
279 * IPython/rlineimpl.py: check for clear_history in readline and
284 * IPython/rlineimpl.py: check for clear_history in readline and
280 make it a dummy no-op if not available. This function isn't
285 make it a dummy no-op if not available. This function isn't
281 guaranteed to be in the API and appeared in Python 2.4, so we need
286 guaranteed to be in the API and appeared in Python 2.4, so we need
282 to check it ourselves. Also, clean up this file quite a bit.
287 to check it ourselves. Also, clean up this file quite a bit.
283
288
284 * ipython.1: update man page and full manual with information
289 * ipython.1: update man page and full manual with information
285 about threads (remove outdated warning). Closes #151.
290 about threads (remove outdated warning). Closes #151.
286
291
287 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
292 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
288
293
289 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
294 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
290 in trunk (note that this made it into the 0.8.1 release already,
295 in trunk (note that this made it into the 0.8.1 release already,
291 but the changelogs didn't get coordinated). Many thanks to Gael
296 but the changelogs didn't get coordinated). Many thanks to Gael
292 Varoquaux <gael.varoquaux-AT-normalesup.org>
297 Varoquaux <gael.varoquaux-AT-normalesup.org>
293
298
294 2007-05-09 *** Released version 0.8.1
299 2007-05-09 *** Released version 0.8.1
295
300
296 2007-05-10 Walter Doerwald <walter@livinglogic.de>
301 2007-05-10 Walter Doerwald <walter@livinglogic.de>
297
302
298 * IPython/Extensions/igrid.py: Incorporate html help into
303 * IPython/Extensions/igrid.py: Incorporate html help into
299 the module, so we don't have to search for the file.
304 the module, so we don't have to search for the file.
300
305
301 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
306 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
302
307
303 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
308 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
304
309
305 2007-04-30 Ville Vainio <vivainio@gmail.com>
310 2007-04-30 Ville Vainio <vivainio@gmail.com>
306
311
307 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
312 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
308 user has illegal (non-ascii) home directory name
313 user has illegal (non-ascii) home directory name
309
314
310 2007-04-27 Ville Vainio <vivainio@gmail.com>
315 2007-04-27 Ville Vainio <vivainio@gmail.com>
311
316
312 * platutils_win32.py: implement set_term_title for windows
317 * platutils_win32.py: implement set_term_title for windows
313
318
314 * Update version number
319 * Update version number
315
320
316 * ipy_profile_sh.py: more informative prompt (2 dir levels)
321 * ipy_profile_sh.py: more informative prompt (2 dir levels)
317
322
318 2007-04-26 Walter Doerwald <walter@livinglogic.de>
323 2007-04-26 Walter Doerwald <walter@livinglogic.de>
319
324
320 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
325 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
321 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
326 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
322 bug discovered by Ville).
327 bug discovered by Ville).
323
328
324 2007-04-26 Ville Vainio <vivainio@gmail.com>
329 2007-04-26 Ville Vainio <vivainio@gmail.com>
325
330
326 * Extensions/ipy_completers.py: Olivier's module completer now
331 * Extensions/ipy_completers.py: Olivier's module completer now
327 saves the list of root modules if it takes > 4 secs on the first run.
332 saves the list of root modules if it takes > 4 secs on the first run.
328
333
329 * Magic.py (%rehashx): %rehashx now clears the completer cache
334 * Magic.py (%rehashx): %rehashx now clears the completer cache
330
335
331
336
332 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
337 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
333
338
334 * ipython.el: fix incorrect color scheme, reported by Stefan.
339 * ipython.el: fix incorrect color scheme, reported by Stefan.
335 Closes #149.
340 Closes #149.
336
341
337 * IPython/PyColorize.py (Parser.format2): fix state-handling
342 * IPython/PyColorize.py (Parser.format2): fix state-handling
338 logic. I still don't like how that code handles state, but at
343 logic. I still don't like how that code handles state, but at
339 least now it should be correct, if inelegant. Closes #146.
344 least now it should be correct, if inelegant. Closes #146.
340
345
341 2007-04-25 Ville Vainio <vivainio@gmail.com>
346 2007-04-25 Ville Vainio <vivainio@gmail.com>
342
347
343 * Extensions/ipy_which.py: added extension for %which magic, works
348 * Extensions/ipy_which.py: added extension for %which magic, works
344 a lot like unix 'which' but also finds and expands aliases, and
349 a lot like unix 'which' but also finds and expands aliases, and
345 allows wildcards.
350 allows wildcards.
346
351
347 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
352 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
348 as opposed to returning nothing.
353 as opposed to returning nothing.
349
354
350 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
355 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
351 ipy_stock_completers on default profile, do import on sh profile.
356 ipy_stock_completers on default profile, do import on sh profile.
352
357
353 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
358 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
354
359
355 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
360 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
356 like ipython.py foo.py which raised a IndexError.
361 like ipython.py foo.py which raised a IndexError.
357
362
358 2007-04-21 Ville Vainio <vivainio@gmail.com>
363 2007-04-21 Ville Vainio <vivainio@gmail.com>
359
364
360 * Extensions/ipy_extutil.py: added extension to manage other ipython
365 * Extensions/ipy_extutil.py: added extension to manage other ipython
361 extensions. Now only supports 'ls' == list extensions.
366 extensions. Now only supports 'ls' == list extensions.
362
367
363 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
368 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
364
369
365 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
370 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
366 would prevent use of the exception system outside of a running
371 would prevent use of the exception system outside of a running
367 IPython instance.
372 IPython instance.
368
373
369 2007-04-20 Ville Vainio <vivainio@gmail.com>
374 2007-04-20 Ville Vainio <vivainio@gmail.com>
370
375
371 * Extensions/ipy_render.py: added extension for easy
376 * Extensions/ipy_render.py: added extension for easy
372 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
377 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
373 'Iptl' template notation,
378 'Iptl' template notation,
374
379
375 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
380 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
376 safer & faster 'import' completer.
381 safer & faster 'import' completer.
377
382
378 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
383 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
379 and _ip.defalias(name, command).
384 and _ip.defalias(name, command).
380
385
381 * Extensions/ipy_exportdb.py: New extension for exporting all the
386 * Extensions/ipy_exportdb.py: New extension for exporting all the
382 %store'd data in a portable format (normal ipapi calls like
387 %store'd data in a portable format (normal ipapi calls like
383 defmacro() etc.)
388 defmacro() etc.)
384
389
385 2007-04-19 Ville Vainio <vivainio@gmail.com>
390 2007-04-19 Ville Vainio <vivainio@gmail.com>
386
391
387 * upgrade_dir.py: skip junk files like *.pyc
392 * upgrade_dir.py: skip junk files like *.pyc
388
393
389 * Release.py: version number to 0.8.1
394 * Release.py: version number to 0.8.1
390
395
391 2007-04-18 Ville Vainio <vivainio@gmail.com>
396 2007-04-18 Ville Vainio <vivainio@gmail.com>
392
397
393 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
398 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
394 and later on win32.
399 and later on win32.
395
400
396 2007-04-16 Ville Vainio <vivainio@gmail.com>
401 2007-04-16 Ville Vainio <vivainio@gmail.com>
397
402
398 * iplib.py (showtraceback): Do not crash when running w/o readline.
403 * iplib.py (showtraceback): Do not crash when running w/o readline.
399
404
400 2007-04-12 Walter Doerwald <walter@livinglogic.de>
405 2007-04-12 Walter Doerwald <walter@livinglogic.de>
401
406
402 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
407 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
403 sorted (case sensitive with files and dirs mixed).
408 sorted (case sensitive with files and dirs mixed).
404
409
405 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
410 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
406
411
407 * IPython/Release.py (version): Open trunk for 0.8.1 development.
412 * IPython/Release.py (version): Open trunk for 0.8.1 development.
408
413
409 2007-04-10 *** Released version 0.8.0
414 2007-04-10 *** Released version 0.8.0
410
415
411 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
416 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
412
417
413 * Tag 0.8.0 for release.
418 * Tag 0.8.0 for release.
414
419
415 * IPython/iplib.py (reloadhist): add API function to cleanly
420 * IPython/iplib.py (reloadhist): add API function to cleanly
416 reload the readline history, which was growing inappropriately on
421 reload the readline history, which was growing inappropriately on
417 every %run call.
422 every %run call.
418
423
419 * win32_manual_post_install.py (run): apply last part of Nicolas
424 * win32_manual_post_install.py (run): apply last part of Nicolas
420 Pernetty's patch (I'd accidentally applied it in a different
425 Pernetty's patch (I'd accidentally applied it in a different
421 directory and this particular file didn't get patched).
426 directory and this particular file didn't get patched).
422
427
423 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
428 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
424
429
425 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
430 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
426 find the main thread id and use the proper API call. Thanks to
431 find the main thread id and use the proper API call. Thanks to
427 Stefan for the fix.
432 Stefan for the fix.
428
433
429 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
434 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
430 unit tests to reflect fixed ticket #52, and add more tests sent by
435 unit tests to reflect fixed ticket #52, and add more tests sent by
431 him.
436 him.
432
437
433 * IPython/iplib.py (raw_input): restore the readline completer
438 * IPython/iplib.py (raw_input): restore the readline completer
434 state on every input, in case third-party code messed it up.
439 state on every input, in case third-party code messed it up.
435 (_prefilter): revert recent addition of early-escape checks which
440 (_prefilter): revert recent addition of early-escape checks which
436 prevent many valid alias calls from working.
441 prevent many valid alias calls from working.
437
442
438 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
443 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
439 flag for sigint handler so we don't run a full signal() call on
444 flag for sigint handler so we don't run a full signal() call on
440 each runcode access.
445 each runcode access.
441
446
442 * IPython/Magic.py (magic_whos): small improvement to diagnostic
447 * IPython/Magic.py (magic_whos): small improvement to diagnostic
443 message.
448 message.
444
449
445 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
450 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
446
451
447 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
452 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
448 asynchronous exceptions working, i.e., Ctrl-C can actually
453 asynchronous exceptions working, i.e., Ctrl-C can actually
449 interrupt long-running code in the multithreaded shells.
454 interrupt long-running code in the multithreaded shells.
450
455
451 This is using Tomer Filiba's great ctypes-based trick:
456 This is using Tomer Filiba's great ctypes-based trick:
452 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
457 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
453 this in the past, but hadn't been able to make it work before. So
458 this in the past, but hadn't been able to make it work before. So
454 far it looks like it's actually running, but this needs more
459 far it looks like it's actually running, but this needs more
455 testing. If it really works, I'll be *very* happy, and we'll owe
460 testing. If it really works, I'll be *very* happy, and we'll owe
456 a huge thank you to Tomer. My current implementation is ugly,
461 a huge thank you to Tomer. My current implementation is ugly,
457 hackish and uses nasty globals, but I don't want to try and clean
462 hackish and uses nasty globals, but I don't want to try and clean
458 anything up until we know if it actually works.
463 anything up until we know if it actually works.
459
464
460 NOTE: this feature needs ctypes to work. ctypes is included in
465 NOTE: this feature needs ctypes to work. ctypes is included in
461 Python2.5, but 2.4 users will need to manually install it. This
466 Python2.5, but 2.4 users will need to manually install it. This
462 feature makes multi-threaded shells so much more usable that it's
467 feature makes multi-threaded shells so much more usable that it's
463 a minor price to pay (ctypes is very easy to install, already a
468 a minor price to pay (ctypes is very easy to install, already a
464 requirement for win32 and available in major linux distros).
469 requirement for win32 and available in major linux distros).
465
470
466 2007-04-04 Ville Vainio <vivainio@gmail.com>
471 2007-04-04 Ville Vainio <vivainio@gmail.com>
467
472
468 * Extensions/ipy_completers.py, ipy_stock_completers.py:
473 * Extensions/ipy_completers.py, ipy_stock_completers.py:
469 Moved implementations of 'bundled' completers to ipy_completers.py,
474 Moved implementations of 'bundled' completers to ipy_completers.py,
470 they are only enabled in ipy_stock_completers.py.
475 they are only enabled in ipy_stock_completers.py.
471
476
472 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
477 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
473
478
474 * IPython/PyColorize.py (Parser.format2): Fix identation of
479 * IPython/PyColorize.py (Parser.format2): Fix identation of
475 colorzied output and return early if color scheme is NoColor, to
480 colorzied output and return early if color scheme is NoColor, to
476 avoid unnecessary and expensive tokenization. Closes #131.
481 avoid unnecessary and expensive tokenization. Closes #131.
477
482
478 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
483 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
479
484
480 * IPython/Debugger.py: disable the use of pydb version 1.17. It
485 * IPython/Debugger.py: disable the use of pydb version 1.17. It
481 has a critical bug (a missing import that makes post-mortem not
486 has a critical bug (a missing import that makes post-mortem not
482 work at all). Unfortunately as of this time, this is the version
487 work at all). Unfortunately as of this time, this is the version
483 shipped with Ubuntu Edgy, so quite a few people have this one. I
488 shipped with Ubuntu Edgy, so quite a few people have this one. I
484 hope Edgy will update to a more recent package.
489 hope Edgy will update to a more recent package.
485
490
486 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
491 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
487
492
488 * IPython/iplib.py (_prefilter): close #52, second part of a patch
493 * IPython/iplib.py (_prefilter): close #52, second part of a patch
489 set by Stefan (only the first part had been applied before).
494 set by Stefan (only the first part had been applied before).
490
495
491 * IPython/Extensions/ipy_stock_completers.py (module_completer):
496 * IPython/Extensions/ipy_stock_completers.py (module_completer):
492 remove usage of the dangerous pkgutil.walk_packages(). See
497 remove usage of the dangerous pkgutil.walk_packages(). See
493 details in comments left in the code.
498 details in comments left in the code.
494
499
495 * IPython/Magic.py (magic_whos): add support for numpy arrays
500 * IPython/Magic.py (magic_whos): add support for numpy arrays
496 similar to what we had for Numeric.
501 similar to what we had for Numeric.
497
502
498 * IPython/completer.py (IPCompleter.complete): extend the
503 * IPython/completer.py (IPCompleter.complete): extend the
499 complete() call API to support completions by other mechanisms
504 complete() call API to support completions by other mechanisms
500 than readline. Closes #109.
505 than readline. Closes #109.
501
506
502 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
507 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
503 protect against a bug in Python's execfile(). Closes #123.
508 protect against a bug in Python's execfile(). Closes #123.
504
509
505 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
510 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
506
511
507 * IPython/iplib.py (split_user_input): ensure that when splitting
512 * IPython/iplib.py (split_user_input): ensure that when splitting
508 user input, the part that can be treated as a python name is pure
513 user input, the part that can be treated as a python name is pure
509 ascii (Python identifiers MUST be pure ascii). Part of the
514 ascii (Python identifiers MUST be pure ascii). Part of the
510 ongoing Unicode support work.
515 ongoing Unicode support work.
511
516
512 * IPython/Prompts.py (prompt_specials_color): Add \N for the
517 * IPython/Prompts.py (prompt_specials_color): Add \N for the
513 actual prompt number, without any coloring. This allows users to
518 actual prompt number, without any coloring. This allows users to
514 produce numbered prompts with their own colors. Added after a
519 produce numbered prompts with their own colors. Added after a
515 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
520 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
516
521
517 2007-03-31 Walter Doerwald <walter@livinglogic.de>
522 2007-03-31 Walter Doerwald <walter@livinglogic.de>
518
523
519 * IPython/Extensions/igrid.py: Map the return key
524 * IPython/Extensions/igrid.py: Map the return key
520 to enter() and shift-return to enterattr().
525 to enter() and shift-return to enterattr().
521
526
522 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
527 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
523
528
524 * IPython/Magic.py (magic_psearch): add unicode support by
529 * IPython/Magic.py (magic_psearch): add unicode support by
525 encoding to ascii the input, since this routine also only deals
530 encoding to ascii the input, since this routine also only deals
526 with valid Python names. Fixes a bug reported by Stefan.
531 with valid Python names. Fixes a bug reported by Stefan.
527
532
528 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
533 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
529
534
530 * IPython/Magic.py (_inspect): convert unicode input into ascii
535 * IPython/Magic.py (_inspect): convert unicode input into ascii
531 before trying to evaluate it as a Python identifier. This fixes a
536 before trying to evaluate it as a Python identifier. This fixes a
532 problem that the new unicode support had introduced when analyzing
537 problem that the new unicode support had introduced when analyzing
533 long definition lines for functions.
538 long definition lines for functions.
534
539
535 2007-03-24 Walter Doerwald <walter@livinglogic.de>
540 2007-03-24 Walter Doerwald <walter@livinglogic.de>
536
541
537 * IPython/Extensions/igrid.py: Fix picking. Using
542 * IPython/Extensions/igrid.py: Fix picking. Using
538 igrid with wxPython 2.6 and -wthread should work now.
543 igrid with wxPython 2.6 and -wthread should work now.
539 igrid.display() simply tries to create a frame without
544 igrid.display() simply tries to create a frame without
540 an application. Only if this fails an application is created.
545 an application. Only if this fails an application is created.
541
546
542 2007-03-23 Walter Doerwald <walter@livinglogic.de>
547 2007-03-23 Walter Doerwald <walter@livinglogic.de>
543
548
544 * IPython/Extensions/path.py: Updated to version 2.2.
549 * IPython/Extensions/path.py: Updated to version 2.2.
545
550
546 2007-03-23 Ville Vainio <vivainio@gmail.com>
551 2007-03-23 Ville Vainio <vivainio@gmail.com>
547
552
548 * iplib.py: recursive alias expansion now works better, so that
553 * iplib.py: recursive alias expansion now works better, so that
549 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
554 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
550 doesn't trip up the process, if 'd' has been aliased to 'ls'.
555 doesn't trip up the process, if 'd' has been aliased to 'ls'.
551
556
552 * Extensions/ipy_gnuglobal.py added, provides %global magic
557 * Extensions/ipy_gnuglobal.py added, provides %global magic
553 for users of http://www.gnu.org/software/global
558 for users of http://www.gnu.org/software/global
554
559
555 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
560 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
556 Closes #52. Patch by Stefan van der Walt.
561 Closes #52. Patch by Stefan van der Walt.
557
562
558 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
563 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
559
564
560 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
565 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
561 respect the __file__ attribute when using %run. Thanks to a bug
566 respect the __file__ attribute when using %run. Thanks to a bug
562 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
567 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
563
568
564 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
569 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
565
570
566 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
571 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
567 input. Patch sent by Stefan.
572 input. Patch sent by Stefan.
568
573
569 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
574 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
570 * IPython/Extensions/ipy_stock_completer.py
575 * IPython/Extensions/ipy_stock_completer.py
571 shlex_split, fix bug in shlex_split. len function
576 shlex_split, fix bug in shlex_split. len function
572 call was missing an if statement. Caused shlex_split to
577 call was missing an if statement. Caused shlex_split to
573 sometimes return "" as last element.
578 sometimes return "" as last element.
574
579
575 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
580 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
576
581
577 * IPython/completer.py
582 * IPython/completer.py
578 (IPCompleter.file_matches.single_dir_expand): fix a problem
583 (IPCompleter.file_matches.single_dir_expand): fix a problem
579 reported by Stefan, where directories containign a single subdir
584 reported by Stefan, where directories containign a single subdir
580 would be completed too early.
585 would be completed too early.
581
586
582 * IPython/Shell.py (_load_pylab): Make the execution of 'from
587 * IPython/Shell.py (_load_pylab): Make the execution of 'from
583 pylab import *' when -pylab is given be optional. A new flag,
588 pylab import *' when -pylab is given be optional. A new flag,
584 pylab_import_all controls this behavior, the default is True for
589 pylab_import_all controls this behavior, the default is True for
585 backwards compatibility.
590 backwards compatibility.
586
591
587 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
592 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
588 modified) R. Bernstein's patch for fully syntax highlighted
593 modified) R. Bernstein's patch for fully syntax highlighted
589 tracebacks. The functionality is also available under ultraTB for
594 tracebacks. The functionality is also available under ultraTB for
590 non-ipython users (someone using ultraTB but outside an ipython
595 non-ipython users (someone using ultraTB but outside an ipython
591 session). They can select the color scheme by setting the
596 session). They can select the color scheme by setting the
592 module-level global DEFAULT_SCHEME. The highlight functionality
597 module-level global DEFAULT_SCHEME. The highlight functionality
593 also works when debugging.
598 also works when debugging.
594
599
595 * IPython/genutils.py (IOStream.close): small patch by
600 * IPython/genutils.py (IOStream.close): small patch by
596 R. Bernstein for improved pydb support.
601 R. Bernstein for improved pydb support.
597
602
598 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
603 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
599 DaveS <davls@telus.net> to improve support of debugging under
604 DaveS <davls@telus.net> to improve support of debugging under
600 NTEmacs, including improved pydb behavior.
605 NTEmacs, including improved pydb behavior.
601
606
602 * IPython/Magic.py (magic_prun): Fix saving of profile info for
607 * IPython/Magic.py (magic_prun): Fix saving of profile info for
603 Python 2.5, where the stats object API changed a little. Thanks
608 Python 2.5, where the stats object API changed a little. Thanks
604 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
609 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
605
610
606 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
611 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
607 Pernetty's patch to improve support for (X)Emacs under Win32.
612 Pernetty's patch to improve support for (X)Emacs under Win32.
608
613
609 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
614 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
610
615
611 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
616 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
612 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
617 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
613 a report by Nik Tautenhahn.
618 a report by Nik Tautenhahn.
614
619
615 2007-03-16 Walter Doerwald <walter@livinglogic.de>
620 2007-03-16 Walter Doerwald <walter@livinglogic.de>
616
621
617 * setup.py: Add the igrid help files to the list of data files
622 * setup.py: Add the igrid help files to the list of data files
618 to be installed alongside igrid.
623 to be installed alongside igrid.
619 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
624 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
620 Show the input object of the igrid browser as the window tile.
625 Show the input object of the igrid browser as the window tile.
621 Show the object the cursor is on in the statusbar.
626 Show the object the cursor is on in the statusbar.
622
627
623 2007-03-15 Ville Vainio <vivainio@gmail.com>
628 2007-03-15 Ville Vainio <vivainio@gmail.com>
624
629
625 * Extensions/ipy_stock_completers.py: Fixed exception
630 * Extensions/ipy_stock_completers.py: Fixed exception
626 on mismatching quotes in %run completer. Patch by
631 on mismatching quotes in %run completer. Patch by
627 JοΏ½rgen Stenarson. Closes #127.
632 JοΏ½rgen Stenarson. Closes #127.
628
633
629 2007-03-14 Ville Vainio <vivainio@gmail.com>
634 2007-03-14 Ville Vainio <vivainio@gmail.com>
630
635
631 * Extensions/ext_rehashdir.py: Do not do auto_alias
636 * Extensions/ext_rehashdir.py: Do not do auto_alias
632 in %rehashdir, it clobbers %store'd aliases.
637 in %rehashdir, it clobbers %store'd aliases.
633
638
634 * UserConfig/ipy_profile_sh.py: envpersist.py extension
639 * UserConfig/ipy_profile_sh.py: envpersist.py extension
635 (beefed up %env) imported for sh profile.
640 (beefed up %env) imported for sh profile.
636
641
637 2007-03-10 Walter Doerwald <walter@livinglogic.de>
642 2007-03-10 Walter Doerwald <walter@livinglogic.de>
638
643
639 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
644 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
640 as the default browser.
645 as the default browser.
641 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
646 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
642 As igrid displays all attributes it ever encounters, fetch() (which has
647 As igrid displays all attributes it ever encounters, fetch() (which has
643 been renamed to _fetch()) doesn't have to recalculate the display attributes
648 been renamed to _fetch()) doesn't have to recalculate the display attributes
644 every time a new item is fetched. This should speed up scrolling.
649 every time a new item is fetched. This should speed up scrolling.
645
650
646 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
651 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
647
652
648 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
653 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
649 Schmolck's recently reported tab-completion bug (my previous one
654 Schmolck's recently reported tab-completion bug (my previous one
650 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
655 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
651
656
652 2007-03-09 Walter Doerwald <walter@livinglogic.de>
657 2007-03-09 Walter Doerwald <walter@livinglogic.de>
653
658
654 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
659 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
655 Close help window if exiting igrid.
660 Close help window if exiting igrid.
656
661
657 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
662 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
658
663
659 * IPython/Extensions/ipy_defaults.py: Check if readline is available
664 * IPython/Extensions/ipy_defaults.py: Check if readline is available
660 before calling functions from readline.
665 before calling functions from readline.
661
666
662 2007-03-02 Walter Doerwald <walter@livinglogic.de>
667 2007-03-02 Walter Doerwald <walter@livinglogic.de>
663
668
664 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
669 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
665 igrid is a wxPython-based display object for ipipe. If your system has
670 igrid is a wxPython-based display object for ipipe. If your system has
666 wx installed igrid will be the default display. Without wx ipipe falls
671 wx installed igrid will be the default display. Without wx ipipe falls
667 back to ibrowse (which needs curses). If no curses is installed ipipe
672 back to ibrowse (which needs curses). If no curses is installed ipipe
668 falls back to idump.
673 falls back to idump.
669
674
670 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
675 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
671
676
672 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
677 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
673 my changes from yesterday, they introduced bugs. Will reactivate
678 my changes from yesterday, they introduced bugs. Will reactivate
674 once I get a correct solution, which will be much easier thanks to
679 once I get a correct solution, which will be much easier thanks to
675 Dan Milstein's new prefilter test suite.
680 Dan Milstein's new prefilter test suite.
676
681
677 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
682 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
678
683
679 * IPython/iplib.py (split_user_input): fix input splitting so we
684 * IPython/iplib.py (split_user_input): fix input splitting so we
680 don't attempt attribute accesses on things that can't possibly be
685 don't attempt attribute accesses on things that can't possibly be
681 valid Python attributes. After a bug report by Alex Schmolck.
686 valid Python attributes. After a bug report by Alex Schmolck.
682 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
687 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
683 %magic with explicit % prefix.
688 %magic with explicit % prefix.
684
689
685 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
690 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
686
691
687 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
692 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
688 avoid a DeprecationWarning from GTK.
693 avoid a DeprecationWarning from GTK.
689
694
690 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
695 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
691
696
692 * IPython/genutils.py (clock): I modified clock() to return total
697 * IPython/genutils.py (clock): I modified clock() to return total
693 time, user+system. This is a more commonly needed metric. I also
698 time, user+system. This is a more commonly needed metric. I also
694 introduced the new clocku/clocks to get only user/system time if
699 introduced the new clocku/clocks to get only user/system time if
695 one wants those instead.
700 one wants those instead.
696
701
697 ***WARNING: API CHANGE*** clock() used to return only user time,
702 ***WARNING: API CHANGE*** clock() used to return only user time,
698 so if you want exactly the same results as before, use clocku
703 so if you want exactly the same results as before, use clocku
699 instead.
704 instead.
700
705
701 2007-02-22 Ville Vainio <vivainio@gmail.com>
706 2007-02-22 Ville Vainio <vivainio@gmail.com>
702
707
703 * IPython/Extensions/ipy_p4.py: Extension for improved
708 * IPython/Extensions/ipy_p4.py: Extension for improved
704 p4 (perforce version control system) experience.
709 p4 (perforce version control system) experience.
705 Adds %p4 magic with p4 command completion and
710 Adds %p4 magic with p4 command completion and
706 automatic -G argument (marshall output as python dict)
711 automatic -G argument (marshall output as python dict)
707
712
708 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
713 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
709
714
710 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
715 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
711 stop marks.
716 stop marks.
712 (ClearingMixin): a simple mixin to easily make a Demo class clear
717 (ClearingMixin): a simple mixin to easily make a Demo class clear
713 the screen in between blocks and have empty marquees. The
718 the screen in between blocks and have empty marquees. The
714 ClearDemo and ClearIPDemo classes that use it are included.
719 ClearDemo and ClearIPDemo classes that use it are included.
715
720
716 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
721 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
717
722
718 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
723 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
719 protect against exceptions at Python shutdown time. Patch
724 protect against exceptions at Python shutdown time. Patch
720 sumbmitted to upstream.
725 sumbmitted to upstream.
721
726
722 2007-02-14 Walter Doerwald <walter@livinglogic.de>
727 2007-02-14 Walter Doerwald <walter@livinglogic.de>
723
728
724 * IPython/Extensions/ibrowse.py: If entering the first object level
729 * IPython/Extensions/ibrowse.py: If entering the first object level
725 (i.e. the object for which the browser has been started) fails,
730 (i.e. the object for which the browser has been started) fails,
726 now the error is raised directly (aborting the browser) instead of
731 now the error is raised directly (aborting the browser) instead of
727 running into an empty levels list later.
732 running into an empty levels list later.
728
733
729 2007-02-03 Walter Doerwald <walter@livinglogic.de>
734 2007-02-03 Walter Doerwald <walter@livinglogic.de>
730
735
731 * IPython/Extensions/ipipe.py: Add an xrepr implementation
736 * IPython/Extensions/ipipe.py: Add an xrepr implementation
732 for the noitem object.
737 for the noitem object.
733
738
734 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
739 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
735
740
736 * IPython/completer.py (Completer.attr_matches): Fix small
741 * IPython/completer.py (Completer.attr_matches): Fix small
737 tab-completion bug with Enthought Traits objects with units.
742 tab-completion bug with Enthought Traits objects with units.
738 Thanks to a bug report by Tom Denniston
743 Thanks to a bug report by Tom Denniston
739 <tom.denniston-AT-alum.dartmouth.org>.
744 <tom.denniston-AT-alum.dartmouth.org>.
740
745
741 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
746 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
742
747
743 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
748 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
744 bug where only .ipy or .py would be completed. Once the first
749 bug where only .ipy or .py would be completed. Once the first
745 argument to %run has been given, all completions are valid because
750 argument to %run has been given, all completions are valid because
746 they are the arguments to the script, which may well be non-python
751 they are the arguments to the script, which may well be non-python
747 filenames.
752 filenames.
748
753
749 * IPython/irunner.py (InteractiveRunner.run_source): major updates
754 * IPython/irunner.py (InteractiveRunner.run_source): major updates
750 to irunner to allow it to correctly support real doctesting of
755 to irunner to allow it to correctly support real doctesting of
751 out-of-process ipython code.
756 out-of-process ipython code.
752
757
753 * IPython/Magic.py (magic_cd): Make the setting of the terminal
758 * IPython/Magic.py (magic_cd): Make the setting of the terminal
754 title an option (-noterm_title) because it completely breaks
759 title an option (-noterm_title) because it completely breaks
755 doctesting.
760 doctesting.
756
761
757 * IPython/demo.py: fix IPythonDemo class that was not actually working.
762 * IPython/demo.py: fix IPythonDemo class that was not actually working.
758
763
759 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
764 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
760
765
761 * IPython/irunner.py (main): fix small bug where extensions were
766 * IPython/irunner.py (main): fix small bug where extensions were
762 not being correctly recognized.
767 not being correctly recognized.
763
768
764 2007-01-23 Walter Doerwald <walter@livinglogic.de>
769 2007-01-23 Walter Doerwald <walter@livinglogic.de>
765
770
766 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
771 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
767 a string containing a single line yields the string itself as the
772 a string containing a single line yields the string itself as the
768 only item.
773 only item.
769
774
770 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
775 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
771 object if it's the same as the one on the last level (This avoids
776 object if it's the same as the one on the last level (This avoids
772 infinite recursion for one line strings).
777 infinite recursion for one line strings).
773
778
774 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
779 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
775
780
776 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
781 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
777 all output streams before printing tracebacks. This ensures that
782 all output streams before printing tracebacks. This ensures that
778 user output doesn't end up interleaved with traceback output.
783 user output doesn't end up interleaved with traceback output.
779
784
780 2007-01-10 Ville Vainio <vivainio@gmail.com>
785 2007-01-10 Ville Vainio <vivainio@gmail.com>
781
786
782 * Extensions/envpersist.py: Turbocharged %env that remembers
787 * Extensions/envpersist.py: Turbocharged %env that remembers
783 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
788 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
784 "%env VISUAL=jed".
789 "%env VISUAL=jed".
785
790
786 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
791 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
787
792
788 * IPython/iplib.py (showtraceback): ensure that we correctly call
793 * IPython/iplib.py (showtraceback): ensure that we correctly call
789 custom handlers in all cases (some with pdb were slipping through,
794 custom handlers in all cases (some with pdb were slipping through,
790 but I'm not exactly sure why).
795 but I'm not exactly sure why).
791
796
792 * IPython/Debugger.py (Tracer.__init__): added new class to
797 * IPython/Debugger.py (Tracer.__init__): added new class to
793 support set_trace-like usage of IPython's enhanced debugger.
798 support set_trace-like usage of IPython's enhanced debugger.
794
799
795 2006-12-24 Ville Vainio <vivainio@gmail.com>
800 2006-12-24 Ville Vainio <vivainio@gmail.com>
796
801
797 * ipmaker.py: more informative message when ipy_user_conf
802 * ipmaker.py: more informative message when ipy_user_conf
798 import fails (suggest running %upgrade).
803 import fails (suggest running %upgrade).
799
804
800 * tools/run_ipy_in_profiler.py: Utility to see where
805 * tools/run_ipy_in_profiler.py: Utility to see where
801 the time during IPython startup is spent.
806 the time during IPython startup is spent.
802
807
803 2006-12-20 Ville Vainio <vivainio@gmail.com>
808 2006-12-20 Ville Vainio <vivainio@gmail.com>
804
809
805 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
810 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
806
811
807 * ipapi.py: Add new ipapi method, expand_alias.
812 * ipapi.py: Add new ipapi method, expand_alias.
808
813
809 * Release.py: Bump up version to 0.7.4.svn
814 * Release.py: Bump up version to 0.7.4.svn
810
815
811 2006-12-17 Ville Vainio <vivainio@gmail.com>
816 2006-12-17 Ville Vainio <vivainio@gmail.com>
812
817
813 * Extensions/jobctrl.py: Fixed &cmd arg arg...
818 * Extensions/jobctrl.py: Fixed &cmd arg arg...
814 to work properly on posix too
819 to work properly on posix too
815
820
816 * Release.py: Update revnum (version is still just 0.7.3).
821 * Release.py: Update revnum (version is still just 0.7.3).
817
822
818 2006-12-15 Ville Vainio <vivainio@gmail.com>
823 2006-12-15 Ville Vainio <vivainio@gmail.com>
819
824
820 * scripts/ipython_win_post_install: create ipython.py in
825 * scripts/ipython_win_post_install: create ipython.py in
821 prefix + "/scripts".
826 prefix + "/scripts".
822
827
823 * Release.py: Update version to 0.7.3.
828 * Release.py: Update version to 0.7.3.
824
829
825 2006-12-14 Ville Vainio <vivainio@gmail.com>
830 2006-12-14 Ville Vainio <vivainio@gmail.com>
826
831
827 * scripts/ipython_win_post_install: Overwrite old shortcuts
832 * scripts/ipython_win_post_install: Overwrite old shortcuts
828 if they already exist
833 if they already exist
829
834
830 * Release.py: release 0.7.3rc2
835 * Release.py: release 0.7.3rc2
831
836
832 2006-12-13 Ville Vainio <vivainio@gmail.com>
837 2006-12-13 Ville Vainio <vivainio@gmail.com>
833
838
834 * Branch and update Release.py for 0.7.3rc1
839 * Branch and update Release.py for 0.7.3rc1
835
840
836 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
841 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
837
842
838 * IPython/Shell.py (IPShellWX): update for current WX naming
843 * IPython/Shell.py (IPShellWX): update for current WX naming
839 conventions, to avoid a deprecation warning with current WX
844 conventions, to avoid a deprecation warning with current WX
840 versions. Thanks to a report by Danny Shevitz.
845 versions. Thanks to a report by Danny Shevitz.
841
846
842 2006-12-12 Ville Vainio <vivainio@gmail.com>
847 2006-12-12 Ville Vainio <vivainio@gmail.com>
843
848
844 * ipmaker.py: apply david cournapeau's patch to make
849 * ipmaker.py: apply david cournapeau's patch to make
845 import_some work properly even when ipythonrc does
850 import_some work properly even when ipythonrc does
846 import_some on empty list (it was an old bug!).
851 import_some on empty list (it was an old bug!).
847
852
848 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
853 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
849 Add deprecation note to ipythonrc and a url to wiki
854 Add deprecation note to ipythonrc and a url to wiki
850 in ipy_user_conf.py
855 in ipy_user_conf.py
851
856
852
857
853 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
858 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
854 as if it was typed on IPython command prompt, i.e.
859 as if it was typed on IPython command prompt, i.e.
855 as IPython script.
860 as IPython script.
856
861
857 * example-magic.py, magic_grepl.py: remove outdated examples
862 * example-magic.py, magic_grepl.py: remove outdated examples
858
863
859 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
864 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
860
865
861 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
866 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
862 is called before any exception has occurred.
867 is called before any exception has occurred.
863
868
864 2006-12-08 Ville Vainio <vivainio@gmail.com>
869 2006-12-08 Ville Vainio <vivainio@gmail.com>
865
870
866 * Extensions/ipy_stock_completers.py: fix cd completer
871 * Extensions/ipy_stock_completers.py: fix cd completer
867 to translate /'s to \'s again.
872 to translate /'s to \'s again.
868
873
869 * completer.py: prevent traceback on file completions w/
874 * completer.py: prevent traceback on file completions w/
870 backslash.
875 backslash.
871
876
872 * Release.py: Update release number to 0.7.3b3 for release
877 * Release.py: Update release number to 0.7.3b3 for release
873
878
874 2006-12-07 Ville Vainio <vivainio@gmail.com>
879 2006-12-07 Ville Vainio <vivainio@gmail.com>
875
880
876 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
881 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
877 while executing external code. Provides more shell-like behaviour
882 while executing external code. Provides more shell-like behaviour
878 and overall better response to ctrl + C / ctrl + break.
883 and overall better response to ctrl + C / ctrl + break.
879
884
880 * tools/make_tarball.py: new script to create tarball straight from svn
885 * tools/make_tarball.py: new script to create tarball straight from svn
881 (setup.py sdist doesn't work on win32).
886 (setup.py sdist doesn't work on win32).
882
887
883 * Extensions/ipy_stock_completers.py: fix cd completer to give up
888 * Extensions/ipy_stock_completers.py: fix cd completer to give up
884 on dirnames with spaces and use the default completer instead.
889 on dirnames with spaces and use the default completer instead.
885
890
886 * Revision.py: Change version to 0.7.3b2 for release.
891 * Revision.py: Change version to 0.7.3b2 for release.
887
892
888 2006-12-05 Ville Vainio <vivainio@gmail.com>
893 2006-12-05 Ville Vainio <vivainio@gmail.com>
889
894
890 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
895 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
891 pydb patch 4 (rm debug printing, py 2.5 checking)
896 pydb patch 4 (rm debug printing, py 2.5 checking)
892
897
893 2006-11-30 Walter Doerwald <walter@livinglogic.de>
898 2006-11-30 Walter Doerwald <walter@livinglogic.de>
894 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
899 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
895 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
900 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
896 "refreshfind" (mapped to "R") does the same but tries to go back to the same
901 "refreshfind" (mapped to "R") does the same but tries to go back to the same
897 object the cursor was on before the refresh. The command "markrange" is
902 object the cursor was on before the refresh. The command "markrange" is
898 mapped to "%" now.
903 mapped to "%" now.
899 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
904 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
900
905
901 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
906 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
902
907
903 * IPython/Magic.py (magic_debug): new %debug magic to activate the
908 * IPython/Magic.py (magic_debug): new %debug magic to activate the
904 interactive debugger on the last traceback, without having to call
909 interactive debugger on the last traceback, without having to call
905 %pdb and rerun your code. Made minor changes in various modules,
910 %pdb and rerun your code. Made minor changes in various modules,
906 should automatically recognize pydb if available.
911 should automatically recognize pydb if available.
907
912
908 2006-11-28 Ville Vainio <vivainio@gmail.com>
913 2006-11-28 Ville Vainio <vivainio@gmail.com>
909
914
910 * completer.py: If the text start with !, show file completions
915 * completer.py: If the text start with !, show file completions
911 properly. This helps when trying to complete command name
916 properly. This helps when trying to complete command name
912 for shell escapes.
917 for shell escapes.
913
918
914 2006-11-27 Ville Vainio <vivainio@gmail.com>
919 2006-11-27 Ville Vainio <vivainio@gmail.com>
915
920
916 * ipy_stock_completers.py: bzr completer submitted by Stefan van
921 * ipy_stock_completers.py: bzr completer submitted by Stefan van
917 der Walt. Clean up svn and hg completers by using a common
922 der Walt. Clean up svn and hg completers by using a common
918 vcs_completer.
923 vcs_completer.
919
924
920 2006-11-26 Ville Vainio <vivainio@gmail.com>
925 2006-11-26 Ville Vainio <vivainio@gmail.com>
921
926
922 * Remove ipconfig and %config; you should use _ip.options structure
927 * Remove ipconfig and %config; you should use _ip.options structure
923 directly instead!
928 directly instead!
924
929
925 * genutils.py: add wrap_deprecated function for deprecating callables
930 * genutils.py: add wrap_deprecated function for deprecating callables
926
931
927 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
932 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
928 _ip.system instead. ipalias is redundant.
933 _ip.system instead. ipalias is redundant.
929
934
930 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
935 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
931 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
936 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
932 explicit.
937 explicit.
933
938
934 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
939 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
935 completer. Try it by entering 'hg ' and pressing tab.
940 completer. Try it by entering 'hg ' and pressing tab.
936
941
937 * macro.py: Give Macro a useful __repr__ method
942 * macro.py: Give Macro a useful __repr__ method
938
943
939 * Magic.py: %whos abbreviates the typename of Macro for brevity.
944 * Magic.py: %whos abbreviates the typename of Macro for brevity.
940
945
941 2006-11-24 Walter Doerwald <walter@livinglogic.de>
946 2006-11-24 Walter Doerwald <walter@livinglogic.de>
942 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
947 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
943 we don't get a duplicate ipipe module, where registration of the xrepr
948 we don't get a duplicate ipipe module, where registration of the xrepr
944 implementation for Text is useless.
949 implementation for Text is useless.
945
950
946 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
951 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
947
952
948 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
953 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
949
954
950 2006-11-24 Ville Vainio <vivainio@gmail.com>
955 2006-11-24 Ville Vainio <vivainio@gmail.com>
951
956
952 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
957 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
953 try to use "cProfile" instead of the slower pure python
958 try to use "cProfile" instead of the slower pure python
954 "profile"
959 "profile"
955
960
956 2006-11-23 Ville Vainio <vivainio@gmail.com>
961 2006-11-23 Ville Vainio <vivainio@gmail.com>
957
962
958 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
963 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
959 Qt+IPython+Designer link in documentation.
964 Qt+IPython+Designer link in documentation.
960
965
961 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
966 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
962 correct Pdb object to %pydb.
967 correct Pdb object to %pydb.
963
968
964
969
965 2006-11-22 Walter Doerwald <walter@livinglogic.de>
970 2006-11-22 Walter Doerwald <walter@livinglogic.de>
966 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
971 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
967 generic xrepr(), otherwise the list implementation would kick in.
972 generic xrepr(), otherwise the list implementation would kick in.
968
973
969 2006-11-21 Ville Vainio <vivainio@gmail.com>
974 2006-11-21 Ville Vainio <vivainio@gmail.com>
970
975
971 * upgrade_dir.py: Now actually overwrites a nonmodified user file
976 * upgrade_dir.py: Now actually overwrites a nonmodified user file
972 with one from UserConfig.
977 with one from UserConfig.
973
978
974 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
979 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
975 it was missing which broke the sh profile.
980 it was missing which broke the sh profile.
976
981
977 * completer.py: file completer now uses explicit '/' instead
982 * completer.py: file completer now uses explicit '/' instead
978 of os.path.join, expansion of 'foo' was broken on win32
983 of os.path.join, expansion of 'foo' was broken on win32
979 if there was one directory with name 'foobar'.
984 if there was one directory with name 'foobar'.
980
985
981 * A bunch of patches from Kirill Smelkov:
986 * A bunch of patches from Kirill Smelkov:
982
987
983 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
988 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
984
989
985 * [patch 7/9] Implement %page -r (page in raw mode) -
990 * [patch 7/9] Implement %page -r (page in raw mode) -
986
991
987 * [patch 5/9] ScientificPython webpage has moved
992 * [patch 5/9] ScientificPython webpage has moved
988
993
989 * [patch 4/9] The manual mentions %ds, should be %dhist
994 * [patch 4/9] The manual mentions %ds, should be %dhist
990
995
991 * [patch 3/9] Kill old bits from %prun doc.
996 * [patch 3/9] Kill old bits from %prun doc.
992
997
993 * [patch 1/9] Fix typos here and there.
998 * [patch 1/9] Fix typos here and there.
994
999
995 2006-11-08 Ville Vainio <vivainio@gmail.com>
1000 2006-11-08 Ville Vainio <vivainio@gmail.com>
996
1001
997 * completer.py (attr_matches): catch all exceptions raised
1002 * completer.py (attr_matches): catch all exceptions raised
998 by eval of expr with dots.
1003 by eval of expr with dots.
999
1004
1000 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1005 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1001
1006
1002 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1007 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1003 input if it starts with whitespace. This allows you to paste
1008 input if it starts with whitespace. This allows you to paste
1004 indented input from any editor without manually having to type in
1009 indented input from any editor without manually having to type in
1005 the 'if 1:', which is convenient when working interactively.
1010 the 'if 1:', which is convenient when working interactively.
1006 Slightly modifed version of a patch by Bo Peng
1011 Slightly modifed version of a patch by Bo Peng
1007 <bpeng-AT-rice.edu>.
1012 <bpeng-AT-rice.edu>.
1008
1013
1009 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1014 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1010
1015
1011 * IPython/irunner.py (main): modified irunner so it automatically
1016 * IPython/irunner.py (main): modified irunner so it automatically
1012 recognizes the right runner to use based on the extension (.py for
1017 recognizes the right runner to use based on the extension (.py for
1013 python, .ipy for ipython and .sage for sage).
1018 python, .ipy for ipython and .sage for sage).
1014
1019
1015 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1020 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1016 visible in ipapi as ip.config(), to programatically control the
1021 visible in ipapi as ip.config(), to programatically control the
1017 internal rc object. There's an accompanying %config magic for
1022 internal rc object. There's an accompanying %config magic for
1018 interactive use, which has been enhanced to match the
1023 interactive use, which has been enhanced to match the
1019 funtionality in ipconfig.
1024 funtionality in ipconfig.
1020
1025
1021 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1026 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1022 so it's not just a toggle, it now takes an argument. Add support
1027 so it's not just a toggle, it now takes an argument. Add support
1023 for a customizable header when making system calls, as the new
1028 for a customizable header when making system calls, as the new
1024 system_header variable in the ipythonrc file.
1029 system_header variable in the ipythonrc file.
1025
1030
1026 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1031 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1027
1032
1028 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1033 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1029 generic functions (using Philip J. Eby's simplegeneric package).
1034 generic functions (using Philip J. Eby's simplegeneric package).
1030 This makes it possible to customize the display of third-party classes
1035 This makes it possible to customize the display of third-party classes
1031 without having to monkeypatch them. xiter() no longer supports a mode
1036 without having to monkeypatch them. xiter() no longer supports a mode
1032 argument and the XMode class has been removed. The same functionality can
1037 argument and the XMode class has been removed. The same functionality can
1033 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1038 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1034 One consequence of the switch to generic functions is that xrepr() and
1039 One consequence of the switch to generic functions is that xrepr() and
1035 xattrs() implementation must define the default value for the mode
1040 xattrs() implementation must define the default value for the mode
1036 argument themselves and xattrs() implementations must return real
1041 argument themselves and xattrs() implementations must return real
1037 descriptors.
1042 descriptors.
1038
1043
1039 * IPython/external: This new subpackage will contain all third-party
1044 * IPython/external: This new subpackage will contain all third-party
1040 packages that are bundled with IPython. (The first one is simplegeneric).
1045 packages that are bundled with IPython. (The first one is simplegeneric).
1041
1046
1042 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1047 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1043 directory which as been dropped in r1703.
1048 directory which as been dropped in r1703.
1044
1049
1045 * IPython/Extensions/ipipe.py (iless): Fixed.
1050 * IPython/Extensions/ipipe.py (iless): Fixed.
1046
1051
1047 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1052 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1048
1053
1049 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1054 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1050
1055
1051 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1056 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1052 handling in variable expansion so that shells and magics recognize
1057 handling in variable expansion so that shells and magics recognize
1053 function local scopes correctly. Bug reported by Brian.
1058 function local scopes correctly. Bug reported by Brian.
1054
1059
1055 * scripts/ipython: remove the very first entry in sys.path which
1060 * scripts/ipython: remove the very first entry in sys.path which
1056 Python auto-inserts for scripts, so that sys.path under IPython is
1061 Python auto-inserts for scripts, so that sys.path under IPython is
1057 as similar as possible to that under plain Python.
1062 as similar as possible to that under plain Python.
1058
1063
1059 * IPython/completer.py (IPCompleter.file_matches): Fix
1064 * IPython/completer.py (IPCompleter.file_matches): Fix
1060 tab-completion so that quotes are not closed unless the completion
1065 tab-completion so that quotes are not closed unless the completion
1061 is unambiguous. After a request by Stefan. Minor cleanups in
1066 is unambiguous. After a request by Stefan. Minor cleanups in
1062 ipy_stock_completers.
1067 ipy_stock_completers.
1063
1068
1064 2006-11-02 Ville Vainio <vivainio@gmail.com>
1069 2006-11-02 Ville Vainio <vivainio@gmail.com>
1065
1070
1066 * ipy_stock_completers.py: Add %run and %cd completers.
1071 * ipy_stock_completers.py: Add %run and %cd completers.
1067
1072
1068 * completer.py: Try running custom completer for both
1073 * completer.py: Try running custom completer for both
1069 "foo" and "%foo" if the command is just "foo". Ignore case
1074 "foo" and "%foo" if the command is just "foo". Ignore case
1070 when filtering possible completions.
1075 when filtering possible completions.
1071
1076
1072 * UserConfig/ipy_user_conf.py: install stock completers as default
1077 * UserConfig/ipy_user_conf.py: install stock completers as default
1073
1078
1074 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1079 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1075 simplified readline history save / restore through a wrapper
1080 simplified readline history save / restore through a wrapper
1076 function
1081 function
1077
1082
1078
1083
1079 2006-10-31 Ville Vainio <vivainio@gmail.com>
1084 2006-10-31 Ville Vainio <vivainio@gmail.com>
1080
1085
1081 * strdispatch.py, completer.py, ipy_stock_completers.py:
1086 * strdispatch.py, completer.py, ipy_stock_completers.py:
1082 Allow str_key ("command") in completer hooks. Implement
1087 Allow str_key ("command") in completer hooks. Implement
1083 trivial completer for 'import' (stdlib modules only). Rename
1088 trivial completer for 'import' (stdlib modules only). Rename
1084 ipy_linux_package_managers.py to ipy_stock_completers.py.
1089 ipy_linux_package_managers.py to ipy_stock_completers.py.
1085 SVN completer.
1090 SVN completer.
1086
1091
1087 * Extensions/ledit.py: %magic line editor for easily and
1092 * Extensions/ledit.py: %magic line editor for easily and
1088 incrementally manipulating lists of strings. The magic command
1093 incrementally manipulating lists of strings. The magic command
1089 name is %led.
1094 name is %led.
1090
1095
1091 2006-10-30 Ville Vainio <vivainio@gmail.com>
1096 2006-10-30 Ville Vainio <vivainio@gmail.com>
1092
1097
1093 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1098 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1094 Bernsteins's patches for pydb integration.
1099 Bernsteins's patches for pydb integration.
1095 http://bashdb.sourceforge.net/pydb/
1100 http://bashdb.sourceforge.net/pydb/
1096
1101
1097 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1102 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1098 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1103 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1099 custom completer hook to allow the users to implement their own
1104 custom completer hook to allow the users to implement their own
1100 completers. See ipy_linux_package_managers.py for example. The
1105 completers. See ipy_linux_package_managers.py for example. The
1101 hook name is 'complete_command'.
1106 hook name is 'complete_command'.
1102
1107
1103 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1108 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1104
1109
1105 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1110 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1106 Numeric leftovers.
1111 Numeric leftovers.
1107
1112
1108 * ipython.el (py-execute-region): apply Stefan's patch to fix
1113 * ipython.el (py-execute-region): apply Stefan's patch to fix
1109 garbled results if the python shell hasn't been previously started.
1114 garbled results if the python shell hasn't been previously started.
1110
1115
1111 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1116 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1112 pretty generic function and useful for other things.
1117 pretty generic function and useful for other things.
1113
1118
1114 * IPython/OInspect.py (getsource): Add customizable source
1119 * IPython/OInspect.py (getsource): Add customizable source
1115 extractor. After a request/patch form W. Stein (SAGE).
1120 extractor. After a request/patch form W. Stein (SAGE).
1116
1121
1117 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1122 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1118 window size to a more reasonable value from what pexpect does,
1123 window size to a more reasonable value from what pexpect does,
1119 since their choice causes wrapping bugs with long input lines.
1124 since their choice causes wrapping bugs with long input lines.
1120
1125
1121 2006-10-28 Ville Vainio <vivainio@gmail.com>
1126 2006-10-28 Ville Vainio <vivainio@gmail.com>
1122
1127
1123 * Magic.py (%run): Save and restore the readline history from
1128 * Magic.py (%run): Save and restore the readline history from
1124 file around %run commands to prevent side effects from
1129 file around %run commands to prevent side effects from
1125 %runned programs that might use readline (e.g. pydb).
1130 %runned programs that might use readline (e.g. pydb).
1126
1131
1127 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1132 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1128 invoking the pydb enhanced debugger.
1133 invoking the pydb enhanced debugger.
1129
1134
1130 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1135 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1131
1136
1132 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1137 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1133 call the base class method and propagate the return value to
1138 call the base class method and propagate the return value to
1134 ifile. This is now done by path itself.
1139 ifile. This is now done by path itself.
1135
1140
1136 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1141 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1137
1142
1138 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1143 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1139 api: set_crash_handler(), to expose the ability to change the
1144 api: set_crash_handler(), to expose the ability to change the
1140 internal crash handler.
1145 internal crash handler.
1141
1146
1142 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1147 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1143 the various parameters of the crash handler so that apps using
1148 the various parameters of the crash handler so that apps using
1144 IPython as their engine can customize crash handling. Ipmlemented
1149 IPython as their engine can customize crash handling. Ipmlemented
1145 at the request of SAGE.
1150 at the request of SAGE.
1146
1151
1147 2006-10-14 Ville Vainio <vivainio@gmail.com>
1152 2006-10-14 Ville Vainio <vivainio@gmail.com>
1148
1153
1149 * Magic.py, ipython.el: applied first "safe" part of Rocky
1154 * Magic.py, ipython.el: applied first "safe" part of Rocky
1150 Bernstein's patch set for pydb integration.
1155 Bernstein's patch set for pydb integration.
1151
1156
1152 * Magic.py (%unalias, %alias): %store'd aliases can now be
1157 * Magic.py (%unalias, %alias): %store'd aliases can now be
1153 removed with '%unalias'. %alias w/o args now shows most
1158 removed with '%unalias'. %alias w/o args now shows most
1154 interesting (stored / manually defined) aliases last
1159 interesting (stored / manually defined) aliases last
1155 where they catch the eye w/o scrolling.
1160 where they catch the eye w/o scrolling.
1156
1161
1157 * Magic.py (%rehashx), ext_rehashdir.py: files with
1162 * Magic.py (%rehashx), ext_rehashdir.py: files with
1158 'py' extension are always considered executable, even
1163 'py' extension are always considered executable, even
1159 when not in PATHEXT environment variable.
1164 when not in PATHEXT environment variable.
1160
1165
1161 2006-10-12 Ville Vainio <vivainio@gmail.com>
1166 2006-10-12 Ville Vainio <vivainio@gmail.com>
1162
1167
1163 * jobctrl.py: Add new "jobctrl" extension for spawning background
1168 * jobctrl.py: Add new "jobctrl" extension for spawning background
1164 processes with "&find /". 'import jobctrl' to try it out. Requires
1169 processes with "&find /". 'import jobctrl' to try it out. Requires
1165 'subprocess' module, standard in python 2.4+.
1170 'subprocess' module, standard in python 2.4+.
1166
1171
1167 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1172 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1168 so if foo -> bar and bar -> baz, then foo -> baz.
1173 so if foo -> bar and bar -> baz, then foo -> baz.
1169
1174
1170 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1175 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1171
1176
1172 * IPython/Magic.py (Magic.parse_options): add a new posix option
1177 * IPython/Magic.py (Magic.parse_options): add a new posix option
1173 to allow parsing of input args in magics that doesn't strip quotes
1178 to allow parsing of input args in magics that doesn't strip quotes
1174 (if posix=False). This also closes %timeit bug reported by
1179 (if posix=False). This also closes %timeit bug reported by
1175 Stefan.
1180 Stefan.
1176
1181
1177 2006-10-03 Ville Vainio <vivainio@gmail.com>
1182 2006-10-03 Ville Vainio <vivainio@gmail.com>
1178
1183
1179 * iplib.py (raw_input, interact): Return ValueError catching for
1184 * iplib.py (raw_input, interact): Return ValueError catching for
1180 raw_input. Fixes infinite loop for sys.stdin.close() or
1185 raw_input. Fixes infinite loop for sys.stdin.close() or
1181 sys.stdout.close().
1186 sys.stdout.close().
1182
1187
1183 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1188 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1184
1189
1185 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1190 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1186 to help in handling doctests. irunner is now pretty useful for
1191 to help in handling doctests. irunner is now pretty useful for
1187 running standalone scripts and simulate a full interactive session
1192 running standalone scripts and simulate a full interactive session
1188 in a format that can be then pasted as a doctest.
1193 in a format that can be then pasted as a doctest.
1189
1194
1190 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1195 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1191 on top of the default (useless) ones. This also fixes the nasty
1196 on top of the default (useless) ones. This also fixes the nasty
1192 way in which 2.5's Quitter() exits (reverted [1785]).
1197 way in which 2.5's Quitter() exits (reverted [1785]).
1193
1198
1194 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1199 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1195 2.5.
1200 2.5.
1196
1201
1197 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1202 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1198 color scheme is updated as well when color scheme is changed
1203 color scheme is updated as well when color scheme is changed
1199 interactively.
1204 interactively.
1200
1205
1201 2006-09-27 Ville Vainio <vivainio@gmail.com>
1206 2006-09-27 Ville Vainio <vivainio@gmail.com>
1202
1207
1203 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1208 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1204 infinite loop and just exit. It's a hack, but will do for a while.
1209 infinite loop and just exit. It's a hack, but will do for a while.
1205
1210
1206 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1211 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1207
1212
1208 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1213 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1209 the constructor, this makes it possible to get a list of only directories
1214 the constructor, this makes it possible to get a list of only directories
1210 or only files.
1215 or only files.
1211
1216
1212 2006-08-12 Ville Vainio <vivainio@gmail.com>
1217 2006-08-12 Ville Vainio <vivainio@gmail.com>
1213
1218
1214 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1219 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1215 they broke unittest
1220 they broke unittest
1216
1221
1217 2006-08-11 Ville Vainio <vivainio@gmail.com>
1222 2006-08-11 Ville Vainio <vivainio@gmail.com>
1218
1223
1219 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1224 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1220 by resolving issue properly, i.e. by inheriting FakeModule
1225 by resolving issue properly, i.e. by inheriting FakeModule
1221 from types.ModuleType. Pickling ipython interactive data
1226 from types.ModuleType. Pickling ipython interactive data
1222 should still work as usual (testing appreciated).
1227 should still work as usual (testing appreciated).
1223
1228
1224 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1229 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1225
1230
1226 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1231 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1227 running under python 2.3 with code from 2.4 to fix a bug with
1232 running under python 2.3 with code from 2.4 to fix a bug with
1228 help(). Reported by the Debian maintainers, Norbert Tretkowski
1233 help(). Reported by the Debian maintainers, Norbert Tretkowski
1229 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1234 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1230 <afayolle-AT-debian.org>.
1235 <afayolle-AT-debian.org>.
1231
1236
1232 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1237 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1233
1238
1234 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1239 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1235 (which was displaying "quit" twice).
1240 (which was displaying "quit" twice).
1236
1241
1237 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1242 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1238
1243
1239 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1244 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1240 the mode argument).
1245 the mode argument).
1241
1246
1242 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1247 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1243
1248
1244 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1249 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1245 not running under IPython.
1250 not running under IPython.
1246
1251
1247 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1252 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1248 and make it iterable (iterating over the attribute itself). Add two new
1253 and make it iterable (iterating over the attribute itself). Add two new
1249 magic strings for __xattrs__(): If the string starts with "-", the attribute
1254 magic strings for __xattrs__(): If the string starts with "-", the attribute
1250 will not be displayed in ibrowse's detail view (but it can still be
1255 will not be displayed in ibrowse's detail view (but it can still be
1251 iterated over). This makes it possible to add attributes that are large
1256 iterated over). This makes it possible to add attributes that are large
1252 lists or generator methods to the detail view. Replace magic attribute names
1257 lists or generator methods to the detail view. Replace magic attribute names
1253 and _attrname() and _getattr() with "descriptors": For each type of magic
1258 and _attrname() and _getattr() with "descriptors": For each type of magic
1254 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1259 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1255 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1260 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1256 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1261 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1257 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1262 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1258 are still supported.
1263 are still supported.
1259
1264
1260 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1265 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1261 fails in ibrowse.fetch(), the exception object is added as the last item
1266 fails in ibrowse.fetch(), the exception object is added as the last item
1262 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1267 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1263 a generator throws an exception midway through execution.
1268 a generator throws an exception midway through execution.
1264
1269
1265 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1270 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1266 encoding into methods.
1271 encoding into methods.
1267
1272
1268 2006-07-26 Ville Vainio <vivainio@gmail.com>
1273 2006-07-26 Ville Vainio <vivainio@gmail.com>
1269
1274
1270 * iplib.py: history now stores multiline input as single
1275 * iplib.py: history now stores multiline input as single
1271 history entries. Patch by Jorgen Cederlof.
1276 history entries. Patch by Jorgen Cederlof.
1272
1277
1273 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1278 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1274
1279
1275 * IPython/Extensions/ibrowse.py: Make cursor visible over
1280 * IPython/Extensions/ibrowse.py: Make cursor visible over
1276 non existing attributes.
1281 non existing attributes.
1277
1282
1278 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1283 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1279
1284
1280 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1285 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1281 error output of the running command doesn't mess up the screen.
1286 error output of the running command doesn't mess up the screen.
1282
1287
1283 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1288 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1284
1289
1285 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1290 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1286 argument. This sorts the items themselves.
1291 argument. This sorts the items themselves.
1287
1292
1288 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1293 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1289
1294
1290 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1295 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1291 Compile expression strings into code objects. This should speed
1296 Compile expression strings into code objects. This should speed
1292 up ifilter and friends somewhat.
1297 up ifilter and friends somewhat.
1293
1298
1294 2006-07-08 Ville Vainio <vivainio@gmail.com>
1299 2006-07-08 Ville Vainio <vivainio@gmail.com>
1295
1300
1296 * Magic.py: %cpaste now strips > from the beginning of lines
1301 * Magic.py: %cpaste now strips > from the beginning of lines
1297 to ease pasting quoted code from emails. Contributed by
1302 to ease pasting quoted code from emails. Contributed by
1298 Stefan van der Walt.
1303 Stefan van der Walt.
1299
1304
1300 2006-06-29 Ville Vainio <vivainio@gmail.com>
1305 2006-06-29 Ville Vainio <vivainio@gmail.com>
1301
1306
1302 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1307 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1303 mode, patch contributed by Darren Dale. NEEDS TESTING!
1308 mode, patch contributed by Darren Dale. NEEDS TESTING!
1304
1309
1305 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1310 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1306
1311
1307 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1312 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1308 a blue background. Fix fetching new display rows when the browser
1313 a blue background. Fix fetching new display rows when the browser
1309 scrolls more than a screenful (e.g. by using the goto command).
1314 scrolls more than a screenful (e.g. by using the goto command).
1310
1315
1311 2006-06-27 Ville Vainio <vivainio@gmail.com>
1316 2006-06-27 Ville Vainio <vivainio@gmail.com>
1312
1317
1313 * Magic.py (_inspect, _ofind) Apply David Huard's
1318 * Magic.py (_inspect, _ofind) Apply David Huard's
1314 patch for displaying the correct docstring for 'property'
1319 patch for displaying the correct docstring for 'property'
1315 attributes.
1320 attributes.
1316
1321
1317 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1322 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1318
1323
1319 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1324 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1320 commands into the methods implementing them.
1325 commands into the methods implementing them.
1321
1326
1322 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1327 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1323
1328
1324 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1329 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1325 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1330 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1326 autoindent support was authored by Jin Liu.
1331 autoindent support was authored by Jin Liu.
1327
1332
1328 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1333 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1329
1334
1330 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1335 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1331 for keymaps with a custom class that simplifies handling.
1336 for keymaps with a custom class that simplifies handling.
1332
1337
1333 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1338 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1334
1339
1335 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1340 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1336 resizing. This requires Python 2.5 to work.
1341 resizing. This requires Python 2.5 to work.
1337
1342
1338 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1343 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1339
1344
1340 * IPython/Extensions/ibrowse.py: Add two new commands to
1345 * IPython/Extensions/ibrowse.py: Add two new commands to
1341 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1346 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1342 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1347 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1343 attributes again. Remapped the help command to "?". Display
1348 attributes again. Remapped the help command to "?". Display
1344 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1349 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1345 as keys for the "home" and "end" commands. Add three new commands
1350 as keys for the "home" and "end" commands. Add three new commands
1346 to the input mode for "find" and friends: "delend" (CTRL-K)
1351 to the input mode for "find" and friends: "delend" (CTRL-K)
1347 deletes to the end of line. "incsearchup" searches upwards in the
1352 deletes to the end of line. "incsearchup" searches upwards in the
1348 command history for an input that starts with the text before the cursor.
1353 command history for an input that starts with the text before the cursor.
1349 "incsearchdown" does the same downwards. Removed a bogus mapping of
1354 "incsearchdown" does the same downwards. Removed a bogus mapping of
1350 the x key to "delete".
1355 the x key to "delete".
1351
1356
1352 2006-06-15 Ville Vainio <vivainio@gmail.com>
1357 2006-06-15 Ville Vainio <vivainio@gmail.com>
1353
1358
1354 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1359 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1355 used to create prompts dynamically, instead of the "old" way of
1360 used to create prompts dynamically, instead of the "old" way of
1356 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1361 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1357 way still works (it's invoked by the default hook), of course.
1362 way still works (it's invoked by the default hook), of course.
1358
1363
1359 * Prompts.py: added generate_output_prompt hook for altering output
1364 * Prompts.py: added generate_output_prompt hook for altering output
1360 prompt
1365 prompt
1361
1366
1362 * Release.py: Changed version string to 0.7.3.svn.
1367 * Release.py: Changed version string to 0.7.3.svn.
1363
1368
1364 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1369 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1365
1370
1366 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1371 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1367 the call to fetch() always tries to fetch enough data for at least one
1372 the call to fetch() always tries to fetch enough data for at least one
1368 full screen. This makes it possible to simply call moveto(0,0,True) in
1373 full screen. This makes it possible to simply call moveto(0,0,True) in
1369 the constructor. Fix typos and removed the obsolete goto attribute.
1374 the constructor. Fix typos and removed the obsolete goto attribute.
1370
1375
1371 2006-06-12 Ville Vainio <vivainio@gmail.com>
1376 2006-06-12 Ville Vainio <vivainio@gmail.com>
1372
1377
1373 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1378 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1374 allowing $variable interpolation within multiline statements,
1379 allowing $variable interpolation within multiline statements,
1375 though so far only with "sh" profile for a testing period.
1380 though so far only with "sh" profile for a testing period.
1376 The patch also enables splitting long commands with \ but it
1381 The patch also enables splitting long commands with \ but it
1377 doesn't work properly yet.
1382 doesn't work properly yet.
1378
1383
1379 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1384 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1380
1385
1381 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1386 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1382 input history and the position of the cursor in the input history for
1387 input history and the position of the cursor in the input history for
1383 the find, findbackwards and goto command.
1388 the find, findbackwards and goto command.
1384
1389
1385 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1390 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1386
1391
1387 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1392 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1388 implements the basic functionality of browser commands that require
1393 implements the basic functionality of browser commands that require
1389 input. Reimplement the goto, find and findbackwards commands as
1394 input. Reimplement the goto, find and findbackwards commands as
1390 subclasses of _CommandInput. Add an input history and keymaps to those
1395 subclasses of _CommandInput. Add an input history and keymaps to those
1391 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1396 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1392 execute commands.
1397 execute commands.
1393
1398
1394 2006-06-07 Ville Vainio <vivainio@gmail.com>
1399 2006-06-07 Ville Vainio <vivainio@gmail.com>
1395
1400
1396 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1401 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1397 running the batch files instead of leaving the session open.
1402 running the batch files instead of leaving the session open.
1398
1403
1399 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1404 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1400
1405
1401 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1406 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1402 the original fix was incomplete. Patch submitted by W. Maier.
1407 the original fix was incomplete. Patch submitted by W. Maier.
1403
1408
1404 2006-06-07 Ville Vainio <vivainio@gmail.com>
1409 2006-06-07 Ville Vainio <vivainio@gmail.com>
1405
1410
1406 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1411 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1407 Confirmation prompts can be supressed by 'quiet' option.
1412 Confirmation prompts can be supressed by 'quiet' option.
1408 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1413 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1409
1414
1410 2006-06-06 *** Released version 0.7.2
1415 2006-06-06 *** Released version 0.7.2
1411
1416
1412 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1417 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1413
1418
1414 * IPython/Release.py (version): Made 0.7.2 final for release.
1419 * IPython/Release.py (version): Made 0.7.2 final for release.
1415 Repo tagged and release cut.
1420 Repo tagged and release cut.
1416
1421
1417 2006-06-05 Ville Vainio <vivainio@gmail.com>
1422 2006-06-05 Ville Vainio <vivainio@gmail.com>
1418
1423
1419 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1424 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1420 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1425 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1421
1426
1422 * upgrade_dir.py: try import 'path' module a bit harder
1427 * upgrade_dir.py: try import 'path' module a bit harder
1423 (for %upgrade)
1428 (for %upgrade)
1424
1429
1425 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1430 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1426
1431
1427 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1432 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1428 instead of looping 20 times.
1433 instead of looping 20 times.
1429
1434
1430 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1435 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1431 correctly at initialization time. Bug reported by Krishna Mohan
1436 correctly at initialization time. Bug reported by Krishna Mohan
1432 Gundu <gkmohan-AT-gmail.com> on the user list.
1437 Gundu <gkmohan-AT-gmail.com> on the user list.
1433
1438
1434 * IPython/Release.py (version): Mark 0.7.2 version to start
1439 * IPython/Release.py (version): Mark 0.7.2 version to start
1435 testing for release on 06/06.
1440 testing for release on 06/06.
1436
1441
1437 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1442 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1438
1443
1439 * scripts/irunner: thin script interface so users don't have to
1444 * scripts/irunner: thin script interface so users don't have to
1440 find the module and call it as an executable, since modules rarely
1445 find the module and call it as an executable, since modules rarely
1441 live in people's PATH.
1446 live in people's PATH.
1442
1447
1443 * IPython/irunner.py (InteractiveRunner.__init__): added
1448 * IPython/irunner.py (InteractiveRunner.__init__): added
1444 delaybeforesend attribute to control delays with newer versions of
1449 delaybeforesend attribute to control delays with newer versions of
1445 pexpect. Thanks to detailed help from pexpect's author, Noah
1450 pexpect. Thanks to detailed help from pexpect's author, Noah
1446 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1451 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1447 correctly (it works in NoColor mode).
1452 correctly (it works in NoColor mode).
1448
1453
1449 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1454 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1450 SAGE list, from improper log() calls.
1455 SAGE list, from improper log() calls.
1451
1456
1452 2006-05-31 Ville Vainio <vivainio@gmail.com>
1457 2006-05-31 Ville Vainio <vivainio@gmail.com>
1453
1458
1454 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1459 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1455 with args in parens to work correctly with dirs that have spaces.
1460 with args in parens to work correctly with dirs that have spaces.
1456
1461
1457 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1462 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1458
1463
1459 * IPython/Logger.py (Logger.logstart): add option to log raw input
1464 * IPython/Logger.py (Logger.logstart): add option to log raw input
1460 instead of the processed one. A -r flag was added to the
1465 instead of the processed one. A -r flag was added to the
1461 %logstart magic used for controlling logging.
1466 %logstart magic used for controlling logging.
1462
1467
1463 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1468 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1464
1469
1465 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1470 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1466 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1471 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1467 recognize the option. After a bug report by Will Maier. This
1472 recognize the option. After a bug report by Will Maier. This
1468 closes #64 (will do it after confirmation from W. Maier).
1473 closes #64 (will do it after confirmation from W. Maier).
1469
1474
1470 * IPython/irunner.py: New module to run scripts as if manually
1475 * IPython/irunner.py: New module to run scripts as if manually
1471 typed into an interactive environment, based on pexpect. After a
1476 typed into an interactive environment, based on pexpect. After a
1472 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1477 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1473 ipython-user list. Simple unittests in the tests/ directory.
1478 ipython-user list. Simple unittests in the tests/ directory.
1474
1479
1475 * tools/release: add Will Maier, OpenBSD port maintainer, to
1480 * tools/release: add Will Maier, OpenBSD port maintainer, to
1476 recepients list. We are now officially part of the OpenBSD ports:
1481 recepients list. We are now officially part of the OpenBSD ports:
1477 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1482 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1478 work.
1483 work.
1479
1484
1480 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1485 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1481
1486
1482 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1487 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1483 so that it doesn't break tkinter apps.
1488 so that it doesn't break tkinter apps.
1484
1489
1485 * IPython/iplib.py (_prefilter): fix bug where aliases would
1490 * IPython/iplib.py (_prefilter): fix bug where aliases would
1486 shadow variables when autocall was fully off. Reported by SAGE
1491 shadow variables when autocall was fully off. Reported by SAGE
1487 author William Stein.
1492 author William Stein.
1488
1493
1489 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1494 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1490 at what detail level strings are computed when foo? is requested.
1495 at what detail level strings are computed when foo? is requested.
1491 This allows users to ask for example that the string form of an
1496 This allows users to ask for example that the string form of an
1492 object is only computed when foo?? is called, or even never, by
1497 object is only computed when foo?? is called, or even never, by
1493 setting the object_info_string_level >= 2 in the configuration
1498 setting the object_info_string_level >= 2 in the configuration
1494 file. This new option has been added and documented. After a
1499 file. This new option has been added and documented. After a
1495 request by SAGE to be able to control the printing of very large
1500 request by SAGE to be able to control the printing of very large
1496 objects more easily.
1501 objects more easily.
1497
1502
1498 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1503 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1499
1504
1500 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1505 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1501 from sys.argv, to be 100% consistent with how Python itself works
1506 from sys.argv, to be 100% consistent with how Python itself works
1502 (as seen for example with python -i file.py). After a bug report
1507 (as seen for example with python -i file.py). After a bug report
1503 by Jeffrey Collins.
1508 by Jeffrey Collins.
1504
1509
1505 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1510 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1506 nasty bug which was preventing custom namespaces with -pylab,
1511 nasty bug which was preventing custom namespaces with -pylab,
1507 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1512 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1508 compatibility (long gone from mpl).
1513 compatibility (long gone from mpl).
1509
1514
1510 * IPython/ipapi.py (make_session): name change: create->make. We
1515 * IPython/ipapi.py (make_session): name change: create->make. We
1511 use make in other places (ipmaker,...), it's shorter and easier to
1516 use make in other places (ipmaker,...), it's shorter and easier to
1512 type and say, etc. I'm trying to clean things before 0.7.2 so
1517 type and say, etc. I'm trying to clean things before 0.7.2 so
1513 that I can keep things stable wrt to ipapi in the chainsaw branch.
1518 that I can keep things stable wrt to ipapi in the chainsaw branch.
1514
1519
1515 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1520 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1516 python-mode recognizes our debugger mode. Add support for
1521 python-mode recognizes our debugger mode. Add support for
1517 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1522 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1518 <m.liu.jin-AT-gmail.com> originally written by
1523 <m.liu.jin-AT-gmail.com> originally written by
1519 doxgen-AT-newsmth.net (with minor modifications for xemacs
1524 doxgen-AT-newsmth.net (with minor modifications for xemacs
1520 compatibility)
1525 compatibility)
1521
1526
1522 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1527 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1523 tracebacks when walking the stack so that the stack tracking system
1528 tracebacks when walking the stack so that the stack tracking system
1524 in emacs' python-mode can identify the frames correctly.
1529 in emacs' python-mode can identify the frames correctly.
1525
1530
1526 * IPython/ipmaker.py (make_IPython): make the internal (and
1531 * IPython/ipmaker.py (make_IPython): make the internal (and
1527 default config) autoedit_syntax value false by default. Too many
1532 default config) autoedit_syntax value false by default. Too many
1528 users have complained to me (both on and off-list) about problems
1533 users have complained to me (both on and off-list) about problems
1529 with this option being on by default, so I'm making it default to
1534 with this option being on by default, so I'm making it default to
1530 off. It can still be enabled by anyone via the usual mechanisms.
1535 off. It can still be enabled by anyone via the usual mechanisms.
1531
1536
1532 * IPython/completer.py (Completer.attr_matches): add support for
1537 * IPython/completer.py (Completer.attr_matches): add support for
1533 PyCrust-style _getAttributeNames magic method. Patch contributed
1538 PyCrust-style _getAttributeNames magic method. Patch contributed
1534 by <mscott-AT-goldenspud.com>. Closes #50.
1539 by <mscott-AT-goldenspud.com>. Closes #50.
1535
1540
1536 * IPython/iplib.py (InteractiveShell.__init__): remove the
1541 * IPython/iplib.py (InteractiveShell.__init__): remove the
1537 deletion of exit/quit from __builtin__, which can break
1542 deletion of exit/quit from __builtin__, which can break
1538 third-party tools like the Zope debugging console. The
1543 third-party tools like the Zope debugging console. The
1539 %exit/%quit magics remain. In general, it's probably a good idea
1544 %exit/%quit magics remain. In general, it's probably a good idea
1540 not to delete anything from __builtin__, since we never know what
1545 not to delete anything from __builtin__, since we never know what
1541 that will break. In any case, python now (for 2.5) will support
1546 that will break. In any case, python now (for 2.5) will support
1542 'real' exit/quit, so this issue is moot. Closes #55.
1547 'real' exit/quit, so this issue is moot. Closes #55.
1543
1548
1544 * IPython/genutils.py (with_obj): rename the 'with' function to
1549 * IPython/genutils.py (with_obj): rename the 'with' function to
1545 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1550 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1546 becomes a language keyword. Closes #53.
1551 becomes a language keyword. Closes #53.
1547
1552
1548 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1553 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1549 __file__ attribute to this so it fools more things into thinking
1554 __file__ attribute to this so it fools more things into thinking
1550 it is a real module. Closes #59.
1555 it is a real module. Closes #59.
1551
1556
1552 * IPython/Magic.py (magic_edit): add -n option to open the editor
1557 * IPython/Magic.py (magic_edit): add -n option to open the editor
1553 at a specific line number. After a patch by Stefan van der Walt.
1558 at a specific line number. After a patch by Stefan van der Walt.
1554
1559
1555 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1560 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1556
1561
1557 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1562 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1558 reason the file could not be opened. After automatic crash
1563 reason the file could not be opened. After automatic crash
1559 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1564 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1560 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1565 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1561 (_should_recompile): Don't fire editor if using %bg, since there
1566 (_should_recompile): Don't fire editor if using %bg, since there
1562 is no file in the first place. From the same report as above.
1567 is no file in the first place. From the same report as above.
1563 (raw_input): protect against faulty third-party prefilters. After
1568 (raw_input): protect against faulty third-party prefilters. After
1564 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1569 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1565 while running under SAGE.
1570 while running under SAGE.
1566
1571
1567 2006-05-23 Ville Vainio <vivainio@gmail.com>
1572 2006-05-23 Ville Vainio <vivainio@gmail.com>
1568
1573
1569 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1574 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1570 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1575 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1571 now returns None (again), unless dummy is specifically allowed by
1576 now returns None (again), unless dummy is specifically allowed by
1572 ipapi.get(allow_dummy=True).
1577 ipapi.get(allow_dummy=True).
1573
1578
1574 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1579 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1575
1580
1576 * IPython: remove all 2.2-compatibility objects and hacks from
1581 * IPython: remove all 2.2-compatibility objects and hacks from
1577 everywhere, since we only support 2.3 at this point. Docs
1582 everywhere, since we only support 2.3 at this point. Docs
1578 updated.
1583 updated.
1579
1584
1580 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1585 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1581 Anything requiring extra validation can be turned into a Python
1586 Anything requiring extra validation can be turned into a Python
1582 property in the future. I used a property for the db one b/c
1587 property in the future. I used a property for the db one b/c
1583 there was a nasty circularity problem with the initialization
1588 there was a nasty circularity problem with the initialization
1584 order, which right now I don't have time to clean up.
1589 order, which right now I don't have time to clean up.
1585
1590
1586 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1591 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1587 another locking bug reported by Jorgen. I'm not 100% sure though,
1592 another locking bug reported by Jorgen. I'm not 100% sure though,
1588 so more testing is needed...
1593 so more testing is needed...
1589
1594
1590 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1595 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1591
1596
1592 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1597 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1593 local variables from any routine in user code (typically executed
1598 local variables from any routine in user code (typically executed
1594 with %run) directly into the interactive namespace. Very useful
1599 with %run) directly into the interactive namespace. Very useful
1595 when doing complex debugging.
1600 when doing complex debugging.
1596 (IPythonNotRunning): Changed the default None object to a dummy
1601 (IPythonNotRunning): Changed the default None object to a dummy
1597 whose attributes can be queried as well as called without
1602 whose attributes can be queried as well as called without
1598 exploding, to ease writing code which works transparently both in
1603 exploding, to ease writing code which works transparently both in
1599 and out of ipython and uses some of this API.
1604 and out of ipython and uses some of this API.
1600
1605
1601 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1606 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1602
1607
1603 * IPython/hooks.py (result_display): Fix the fact that our display
1608 * IPython/hooks.py (result_display): Fix the fact that our display
1604 hook was using str() instead of repr(), as the default python
1609 hook was using str() instead of repr(), as the default python
1605 console does. This had gone unnoticed b/c it only happened if
1610 console does. This had gone unnoticed b/c it only happened if
1606 %Pprint was off, but the inconsistency was there.
1611 %Pprint was off, but the inconsistency was there.
1607
1612
1608 2006-05-15 Ville Vainio <vivainio@gmail.com>
1613 2006-05-15 Ville Vainio <vivainio@gmail.com>
1609
1614
1610 * Oinspect.py: Only show docstring for nonexisting/binary files
1615 * Oinspect.py: Only show docstring for nonexisting/binary files
1611 when doing object??, closing ticket #62
1616 when doing object??, closing ticket #62
1612
1617
1613 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1618 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1614
1619
1615 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1620 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1616 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1621 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1617 was being released in a routine which hadn't checked if it had
1622 was being released in a routine which hadn't checked if it had
1618 been the one to acquire it.
1623 been the one to acquire it.
1619
1624
1620 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1625 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1621
1626
1622 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1627 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1623
1628
1624 2006-04-11 Ville Vainio <vivainio@gmail.com>
1629 2006-04-11 Ville Vainio <vivainio@gmail.com>
1625
1630
1626 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1631 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1627 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1632 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1628 prefilters, allowing stuff like magics and aliases in the file.
1633 prefilters, allowing stuff like magics and aliases in the file.
1629
1634
1630 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1635 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1631 added. Supported now are "%clear in" and "%clear out" (clear input and
1636 added. Supported now are "%clear in" and "%clear out" (clear input and
1632 output history, respectively). Also fixed CachedOutput.flush to
1637 output history, respectively). Also fixed CachedOutput.flush to
1633 properly flush the output cache.
1638 properly flush the output cache.
1634
1639
1635 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1640 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1636 half-success (and fail explicitly).
1641 half-success (and fail explicitly).
1637
1642
1638 2006-03-28 Ville Vainio <vivainio@gmail.com>
1643 2006-03-28 Ville Vainio <vivainio@gmail.com>
1639
1644
1640 * iplib.py: Fix quoting of aliases so that only argless ones
1645 * iplib.py: Fix quoting of aliases so that only argless ones
1641 are quoted
1646 are quoted
1642
1647
1643 2006-03-28 Ville Vainio <vivainio@gmail.com>
1648 2006-03-28 Ville Vainio <vivainio@gmail.com>
1644
1649
1645 * iplib.py: Quote aliases with spaces in the name.
1650 * iplib.py: Quote aliases with spaces in the name.
1646 "c:\program files\blah\bin" is now legal alias target.
1651 "c:\program files\blah\bin" is now legal alias target.
1647
1652
1648 * ext_rehashdir.py: Space no longer allowed as arg
1653 * ext_rehashdir.py: Space no longer allowed as arg
1649 separator, since space is legal in path names.
1654 separator, since space is legal in path names.
1650
1655
1651 2006-03-16 Ville Vainio <vivainio@gmail.com>
1656 2006-03-16 Ville Vainio <vivainio@gmail.com>
1652
1657
1653 * upgrade_dir.py: Take path.py from Extensions, correcting
1658 * upgrade_dir.py: Take path.py from Extensions, correcting
1654 %upgrade magic
1659 %upgrade magic
1655
1660
1656 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1661 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1657
1662
1658 * hooks.py: Only enclose editor binary in quotes if legal and
1663 * hooks.py: Only enclose editor binary in quotes if legal and
1659 necessary (space in the name, and is an existing file). Fixes a bug
1664 necessary (space in the name, and is an existing file). Fixes a bug
1660 reported by Zachary Pincus.
1665 reported by Zachary Pincus.
1661
1666
1662 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1667 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1663
1668
1664 * Manual: thanks to a tip on proper color handling for Emacs, by
1669 * Manual: thanks to a tip on proper color handling for Emacs, by
1665 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1670 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1666
1671
1667 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1672 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1668 by applying the provided patch. Thanks to Liu Jin
1673 by applying the provided patch. Thanks to Liu Jin
1669 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1674 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1670 XEmacs/Linux, I'm trusting the submitter that it actually helps
1675 XEmacs/Linux, I'm trusting the submitter that it actually helps
1671 under win32/GNU Emacs. Will revisit if any problems are reported.
1676 under win32/GNU Emacs. Will revisit if any problems are reported.
1672
1677
1673 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1678 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1674
1679
1675 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1680 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1676 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1681 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1677
1682
1678 2006-03-12 Ville Vainio <vivainio@gmail.com>
1683 2006-03-12 Ville Vainio <vivainio@gmail.com>
1679
1684
1680 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1685 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1681 Torsten Marek.
1686 Torsten Marek.
1682
1687
1683 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1688 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1684
1689
1685 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1690 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1686 line ranges works again.
1691 line ranges works again.
1687
1692
1688 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1693 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1689
1694
1690 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1695 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1691 and friends, after a discussion with Zach Pincus on ipython-user.
1696 and friends, after a discussion with Zach Pincus on ipython-user.
1692 I'm not 100% sure, but after thinking about it quite a bit, it may
1697 I'm not 100% sure, but after thinking about it quite a bit, it may
1693 be OK. Testing with the multithreaded shells didn't reveal any
1698 be OK. Testing with the multithreaded shells didn't reveal any
1694 problems, but let's keep an eye out.
1699 problems, but let's keep an eye out.
1695
1700
1696 In the process, I fixed a few things which were calling
1701 In the process, I fixed a few things which were calling
1697 self.InteractiveTB() directly (like safe_execfile), which is a
1702 self.InteractiveTB() directly (like safe_execfile), which is a
1698 mistake: ALL exception reporting should be done by calling
1703 mistake: ALL exception reporting should be done by calling
1699 self.showtraceback(), which handles state and tab-completion and
1704 self.showtraceback(), which handles state and tab-completion and
1700 more.
1705 more.
1701
1706
1702 2006-03-01 Ville Vainio <vivainio@gmail.com>
1707 2006-03-01 Ville Vainio <vivainio@gmail.com>
1703
1708
1704 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1709 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1705 To use, do "from ipipe import *".
1710 To use, do "from ipipe import *".
1706
1711
1707 2006-02-24 Ville Vainio <vivainio@gmail.com>
1712 2006-02-24 Ville Vainio <vivainio@gmail.com>
1708
1713
1709 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1714 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1710 "cleanly" and safely than the older upgrade mechanism.
1715 "cleanly" and safely than the older upgrade mechanism.
1711
1716
1712 2006-02-21 Ville Vainio <vivainio@gmail.com>
1717 2006-02-21 Ville Vainio <vivainio@gmail.com>
1713
1718
1714 * Magic.py: %save works again.
1719 * Magic.py: %save works again.
1715
1720
1716 2006-02-15 Ville Vainio <vivainio@gmail.com>
1721 2006-02-15 Ville Vainio <vivainio@gmail.com>
1717
1722
1718 * Magic.py: %Pprint works again
1723 * Magic.py: %Pprint works again
1719
1724
1720 * Extensions/ipy_sane_defaults.py: Provide everything provided
1725 * Extensions/ipy_sane_defaults.py: Provide everything provided
1721 in default ipythonrc, to make it possible to have a completely empty
1726 in default ipythonrc, to make it possible to have a completely empty
1722 ipythonrc (and thus completely rc-file free configuration)
1727 ipythonrc (and thus completely rc-file free configuration)
1723
1728
1724 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1729 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1725
1730
1726 * IPython/hooks.py (editor): quote the call to the editor command,
1731 * IPython/hooks.py (editor): quote the call to the editor command,
1727 to allow commands with spaces in them. Problem noted by watching
1732 to allow commands with spaces in them. Problem noted by watching
1728 Ian Oswald's video about textpad under win32 at
1733 Ian Oswald's video about textpad under win32 at
1729 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1734 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1730
1735
1731 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1736 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1732 describing magics (we haven't used @ for a loong time).
1737 describing magics (we haven't used @ for a loong time).
1733
1738
1734 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1739 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1735 contributed by marienz to close
1740 contributed by marienz to close
1736 http://www.scipy.net/roundup/ipython/issue53.
1741 http://www.scipy.net/roundup/ipython/issue53.
1737
1742
1738 2006-02-10 Ville Vainio <vivainio@gmail.com>
1743 2006-02-10 Ville Vainio <vivainio@gmail.com>
1739
1744
1740 * genutils.py: getoutput now works in win32 too
1745 * genutils.py: getoutput now works in win32 too
1741
1746
1742 * completer.py: alias and magic completion only invoked
1747 * completer.py: alias and magic completion only invoked
1743 at the first "item" in the line, to avoid "cd %store"
1748 at the first "item" in the line, to avoid "cd %store"
1744 nonsense.
1749 nonsense.
1745
1750
1746 2006-02-09 Ville Vainio <vivainio@gmail.com>
1751 2006-02-09 Ville Vainio <vivainio@gmail.com>
1747
1752
1748 * test/*: Added a unit testing framework (finally).
1753 * test/*: Added a unit testing framework (finally).
1749 '%run runtests.py' to run test_*.
1754 '%run runtests.py' to run test_*.
1750
1755
1751 * ipapi.py: Exposed runlines and set_custom_exc
1756 * ipapi.py: Exposed runlines and set_custom_exc
1752
1757
1753 2006-02-07 Ville Vainio <vivainio@gmail.com>
1758 2006-02-07 Ville Vainio <vivainio@gmail.com>
1754
1759
1755 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1760 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1756 instead use "f(1 2)" as before.
1761 instead use "f(1 2)" as before.
1757
1762
1758 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1763 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1759
1764
1760 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1765 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1761 facilities, for demos processed by the IPython input filter
1766 facilities, for demos processed by the IPython input filter
1762 (IPythonDemo), and for running a script one-line-at-a-time as a
1767 (IPythonDemo), and for running a script one-line-at-a-time as a
1763 demo, both for pure Python (LineDemo) and for IPython-processed
1768 demo, both for pure Python (LineDemo) and for IPython-processed
1764 input (IPythonLineDemo). After a request by Dave Kohel, from the
1769 input (IPythonLineDemo). After a request by Dave Kohel, from the
1765 SAGE team.
1770 SAGE team.
1766 (Demo.edit): added an edit() method to the demo objects, to edit
1771 (Demo.edit): added an edit() method to the demo objects, to edit
1767 the in-memory copy of the last executed block.
1772 the in-memory copy of the last executed block.
1768
1773
1769 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1774 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1770 processing to %edit, %macro and %save. These commands can now be
1775 processing to %edit, %macro and %save. These commands can now be
1771 invoked on the unprocessed input as it was typed by the user
1776 invoked on the unprocessed input as it was typed by the user
1772 (without any prefilters applied). After requests by the SAGE team
1777 (without any prefilters applied). After requests by the SAGE team
1773 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1778 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1774
1779
1775 2006-02-01 Ville Vainio <vivainio@gmail.com>
1780 2006-02-01 Ville Vainio <vivainio@gmail.com>
1776
1781
1777 * setup.py, eggsetup.py: easy_install ipython==dev works
1782 * setup.py, eggsetup.py: easy_install ipython==dev works
1778 correctly now (on Linux)
1783 correctly now (on Linux)
1779
1784
1780 * ipy_user_conf,ipmaker: user config changes, removed spurious
1785 * ipy_user_conf,ipmaker: user config changes, removed spurious
1781 warnings
1786 warnings
1782
1787
1783 * iplib: if rc.banner is string, use it as is.
1788 * iplib: if rc.banner is string, use it as is.
1784
1789
1785 * Magic: %pycat accepts a string argument and pages it's contents.
1790 * Magic: %pycat accepts a string argument and pages it's contents.
1786
1791
1787
1792
1788 2006-01-30 Ville Vainio <vivainio@gmail.com>
1793 2006-01-30 Ville Vainio <vivainio@gmail.com>
1789
1794
1790 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1795 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1791 Now %store and bookmarks work through PickleShare, meaning that
1796 Now %store and bookmarks work through PickleShare, meaning that
1792 concurrent access is possible and all ipython sessions see the
1797 concurrent access is possible and all ipython sessions see the
1793 same database situation all the time, instead of snapshot of
1798 same database situation all the time, instead of snapshot of
1794 the situation when the session was started. Hence, %bookmark
1799 the situation when the session was started. Hence, %bookmark
1795 results are immediately accessible from othes sessions. The database
1800 results are immediately accessible from othes sessions. The database
1796 is also available for use by user extensions. See:
1801 is also available for use by user extensions. See:
1797 http://www.python.org/pypi/pickleshare
1802 http://www.python.org/pypi/pickleshare
1798
1803
1799 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1804 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1800
1805
1801 * aliases can now be %store'd
1806 * aliases can now be %store'd
1802
1807
1803 * path.py moved to Extensions so that pickleshare does not need
1808 * path.py moved to Extensions so that pickleshare does not need
1804 IPython-specific import. Extensions added to pythonpath right
1809 IPython-specific import. Extensions added to pythonpath right
1805 at __init__.
1810 at __init__.
1806
1811
1807 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1812 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1808 called with _ip.system and the pre-transformed command string.
1813 called with _ip.system and the pre-transformed command string.
1809
1814
1810 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1815 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1811
1816
1812 * IPython/iplib.py (interact): Fix that we were not catching
1817 * IPython/iplib.py (interact): Fix that we were not catching
1813 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1818 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1814 logic here had to change, but it's fixed now.
1819 logic here had to change, but it's fixed now.
1815
1820
1816 2006-01-29 Ville Vainio <vivainio@gmail.com>
1821 2006-01-29 Ville Vainio <vivainio@gmail.com>
1817
1822
1818 * iplib.py: Try to import pyreadline on Windows.
1823 * iplib.py: Try to import pyreadline on Windows.
1819
1824
1820 2006-01-27 Ville Vainio <vivainio@gmail.com>
1825 2006-01-27 Ville Vainio <vivainio@gmail.com>
1821
1826
1822 * iplib.py: Expose ipapi as _ip in builtin namespace.
1827 * iplib.py: Expose ipapi as _ip in builtin namespace.
1823 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1828 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1824 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1829 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1825 syntax now produce _ip.* variant of the commands.
1830 syntax now produce _ip.* variant of the commands.
1826
1831
1827 * "_ip.options().autoedit_syntax = 2" automatically throws
1832 * "_ip.options().autoedit_syntax = 2" automatically throws
1828 user to editor for syntax error correction without prompting.
1833 user to editor for syntax error correction without prompting.
1829
1834
1830 2006-01-27 Ville Vainio <vivainio@gmail.com>
1835 2006-01-27 Ville Vainio <vivainio@gmail.com>
1831
1836
1832 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1837 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1833 'ipython' at argv[0]) executed through command line.
1838 'ipython' at argv[0]) executed through command line.
1834 NOTE: this DEPRECATES calling ipython with multiple scripts
1839 NOTE: this DEPRECATES calling ipython with multiple scripts
1835 ("ipython a.py b.py c.py")
1840 ("ipython a.py b.py c.py")
1836
1841
1837 * iplib.py, hooks.py: Added configurable input prefilter,
1842 * iplib.py, hooks.py: Added configurable input prefilter,
1838 named 'input_prefilter'. See ext_rescapture.py for example
1843 named 'input_prefilter'. See ext_rescapture.py for example
1839 usage.
1844 usage.
1840
1845
1841 * ext_rescapture.py, Magic.py: Better system command output capture
1846 * ext_rescapture.py, Magic.py: Better system command output capture
1842 through 'var = !ls' (deprecates user-visible %sc). Same notation
1847 through 'var = !ls' (deprecates user-visible %sc). Same notation
1843 applies for magics, 'var = %alias' assigns alias list to var.
1848 applies for magics, 'var = %alias' assigns alias list to var.
1844
1849
1845 * ipapi.py: added meta() for accessing extension-usable data store.
1850 * ipapi.py: added meta() for accessing extension-usable data store.
1846
1851
1847 * iplib.py: added InteractiveShell.getapi(). New magics should be
1852 * iplib.py: added InteractiveShell.getapi(). New magics should be
1848 written doing self.getapi() instead of using the shell directly.
1853 written doing self.getapi() instead of using the shell directly.
1849
1854
1850 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1855 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1851 %store foo >> ~/myfoo.txt to store variables to files (in clean
1856 %store foo >> ~/myfoo.txt to store variables to files (in clean
1852 textual form, not a restorable pickle).
1857 textual form, not a restorable pickle).
1853
1858
1854 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1859 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1855
1860
1856 * usage.py, Magic.py: added %quickref
1861 * usage.py, Magic.py: added %quickref
1857
1862
1858 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1863 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1859
1864
1860 * GetoptErrors when invoking magics etc. with wrong args
1865 * GetoptErrors when invoking magics etc. with wrong args
1861 are now more helpful:
1866 are now more helpful:
1862 GetoptError: option -l not recognized (allowed: "qb" )
1867 GetoptError: option -l not recognized (allowed: "qb" )
1863
1868
1864 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1869 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1865
1870
1866 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1871 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1867 computationally intensive blocks don't appear to stall the demo.
1872 computationally intensive blocks don't appear to stall the demo.
1868
1873
1869 2006-01-24 Ville Vainio <vivainio@gmail.com>
1874 2006-01-24 Ville Vainio <vivainio@gmail.com>
1870
1875
1871 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1876 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1872 value to manipulate resulting history entry.
1877 value to manipulate resulting history entry.
1873
1878
1874 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1879 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1875 to instance methods of IPApi class, to make extending an embedded
1880 to instance methods of IPApi class, to make extending an embedded
1876 IPython feasible. See ext_rehashdir.py for example usage.
1881 IPython feasible. See ext_rehashdir.py for example usage.
1877
1882
1878 * Merged 1071-1076 from branches/0.7.1
1883 * Merged 1071-1076 from branches/0.7.1
1879
1884
1880
1885
1881 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1886 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1882
1887
1883 * tools/release (daystamp): Fix build tools to use the new
1888 * tools/release (daystamp): Fix build tools to use the new
1884 eggsetup.py script to build lightweight eggs.
1889 eggsetup.py script to build lightweight eggs.
1885
1890
1886 * Applied changesets 1062 and 1064 before 0.7.1 release.
1891 * Applied changesets 1062 and 1064 before 0.7.1 release.
1887
1892
1888 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1893 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1889 see the raw input history (without conversions like %ls ->
1894 see the raw input history (without conversions like %ls ->
1890 ipmagic("ls")). After a request from W. Stein, SAGE
1895 ipmagic("ls")). After a request from W. Stein, SAGE
1891 (http://modular.ucsd.edu/sage) developer. This information is
1896 (http://modular.ucsd.edu/sage) developer. This information is
1892 stored in the input_hist_raw attribute of the IPython instance, so
1897 stored in the input_hist_raw attribute of the IPython instance, so
1893 developers can access it if needed (it's an InputList instance).
1898 developers can access it if needed (it's an InputList instance).
1894
1899
1895 * Versionstring = 0.7.2.svn
1900 * Versionstring = 0.7.2.svn
1896
1901
1897 * eggsetup.py: A separate script for constructing eggs, creates
1902 * eggsetup.py: A separate script for constructing eggs, creates
1898 proper launch scripts even on Windows (an .exe file in
1903 proper launch scripts even on Windows (an .exe file in
1899 \python24\scripts).
1904 \python24\scripts).
1900
1905
1901 * ipapi.py: launch_new_instance, launch entry point needed for the
1906 * ipapi.py: launch_new_instance, launch entry point needed for the
1902 egg.
1907 egg.
1903
1908
1904 2006-01-23 Ville Vainio <vivainio@gmail.com>
1909 2006-01-23 Ville Vainio <vivainio@gmail.com>
1905
1910
1906 * Added %cpaste magic for pasting python code
1911 * Added %cpaste magic for pasting python code
1907
1912
1908 2006-01-22 Ville Vainio <vivainio@gmail.com>
1913 2006-01-22 Ville Vainio <vivainio@gmail.com>
1909
1914
1910 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1915 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1911
1916
1912 * Versionstring = 0.7.2.svn
1917 * Versionstring = 0.7.2.svn
1913
1918
1914 * eggsetup.py: A separate script for constructing eggs, creates
1919 * eggsetup.py: A separate script for constructing eggs, creates
1915 proper launch scripts even on Windows (an .exe file in
1920 proper launch scripts even on Windows (an .exe file in
1916 \python24\scripts).
1921 \python24\scripts).
1917
1922
1918 * ipapi.py: launch_new_instance, launch entry point needed for the
1923 * ipapi.py: launch_new_instance, launch entry point needed for the
1919 egg.
1924 egg.
1920
1925
1921 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1926 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1922
1927
1923 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1928 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1924 %pfile foo would print the file for foo even if it was a binary.
1929 %pfile foo would print the file for foo even if it was a binary.
1925 Now, extensions '.so' and '.dll' are skipped.
1930 Now, extensions '.so' and '.dll' are skipped.
1926
1931
1927 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1932 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1928 bug, where macros would fail in all threaded modes. I'm not 100%
1933 bug, where macros would fail in all threaded modes. I'm not 100%
1929 sure, so I'm going to put out an rc instead of making a release
1934 sure, so I'm going to put out an rc instead of making a release
1930 today, and wait for feedback for at least a few days.
1935 today, and wait for feedback for at least a few days.
1931
1936
1932 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1937 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1933 it...) the handling of pasting external code with autoindent on.
1938 it...) the handling of pasting external code with autoindent on.
1934 To get out of a multiline input, the rule will appear for most
1939 To get out of a multiline input, the rule will appear for most
1935 users unchanged: two blank lines or change the indent level
1940 users unchanged: two blank lines or change the indent level
1936 proposed by IPython. But there is a twist now: you can
1941 proposed by IPython. But there is a twist now: you can
1937 add/subtract only *one or two spaces*. If you add/subtract three
1942 add/subtract only *one or two spaces*. If you add/subtract three
1938 or more (unless you completely delete the line), IPython will
1943 or more (unless you completely delete the line), IPython will
1939 accept that line, and you'll need to enter a second one of pure
1944 accept that line, and you'll need to enter a second one of pure
1940 whitespace. I know it sounds complicated, but I can't find a
1945 whitespace. I know it sounds complicated, but I can't find a
1941 different solution that covers all the cases, with the right
1946 different solution that covers all the cases, with the right
1942 heuristics. Hopefully in actual use, nobody will really notice
1947 heuristics. Hopefully in actual use, nobody will really notice
1943 all these strange rules and things will 'just work'.
1948 all these strange rules and things will 'just work'.
1944
1949
1945 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1950 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1946
1951
1947 * IPython/iplib.py (interact): catch exceptions which can be
1952 * IPython/iplib.py (interact): catch exceptions which can be
1948 triggered asynchronously by signal handlers. Thanks to an
1953 triggered asynchronously by signal handlers. Thanks to an
1949 automatic crash report, submitted by Colin Kingsley
1954 automatic crash report, submitted by Colin Kingsley
1950 <tercel-AT-gentoo.org>.
1955 <tercel-AT-gentoo.org>.
1951
1956
1952 2006-01-20 Ville Vainio <vivainio@gmail.com>
1957 2006-01-20 Ville Vainio <vivainio@gmail.com>
1953
1958
1954 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1959 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1955 (%rehashdir, very useful, try it out) of how to extend ipython
1960 (%rehashdir, very useful, try it out) of how to extend ipython
1956 with new magics. Also added Extensions dir to pythonpath to make
1961 with new magics. Also added Extensions dir to pythonpath to make
1957 importing extensions easy.
1962 importing extensions easy.
1958
1963
1959 * %store now complains when trying to store interactively declared
1964 * %store now complains when trying to store interactively declared
1960 classes / instances of those classes.
1965 classes / instances of those classes.
1961
1966
1962 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1967 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1963 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1968 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1964 if they exist, and ipy_user_conf.py with some defaults is created for
1969 if they exist, and ipy_user_conf.py with some defaults is created for
1965 the user.
1970 the user.
1966
1971
1967 * Startup rehashing done by the config file, not InterpreterExec.
1972 * Startup rehashing done by the config file, not InterpreterExec.
1968 This means system commands are available even without selecting the
1973 This means system commands are available even without selecting the
1969 pysh profile. It's the sensible default after all.
1974 pysh profile. It's the sensible default after all.
1970
1975
1971 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1976 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1972
1977
1973 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1978 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1974 multiline code with autoindent on working. But I am really not
1979 multiline code with autoindent on working. But I am really not
1975 sure, so this needs more testing. Will commit a debug-enabled
1980 sure, so this needs more testing. Will commit a debug-enabled
1976 version for now, while I test it some more, so that Ville and
1981 version for now, while I test it some more, so that Ville and
1977 others may also catch any problems. Also made
1982 others may also catch any problems. Also made
1978 self.indent_current_str() a method, to ensure that there's no
1983 self.indent_current_str() a method, to ensure that there's no
1979 chance of the indent space count and the corresponding string
1984 chance of the indent space count and the corresponding string
1980 falling out of sync. All code needing the string should just call
1985 falling out of sync. All code needing the string should just call
1981 the method.
1986 the method.
1982
1987
1983 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1988 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1984
1989
1985 * IPython/Magic.py (magic_edit): fix check for when users don't
1990 * IPython/Magic.py (magic_edit): fix check for when users don't
1986 save their output files, the try/except was in the wrong section.
1991 save their output files, the try/except was in the wrong section.
1987
1992
1988 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1993 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1989
1994
1990 * IPython/Magic.py (magic_run): fix __file__ global missing from
1995 * IPython/Magic.py (magic_run): fix __file__ global missing from
1991 script's namespace when executed via %run. After a report by
1996 script's namespace when executed via %run. After a report by
1992 Vivian.
1997 Vivian.
1993
1998
1994 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1999 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1995 when using python 2.4. The parent constructor changed in 2.4, and
2000 when using python 2.4. The parent constructor changed in 2.4, and
1996 we need to track it directly (we can't call it, as it messes up
2001 we need to track it directly (we can't call it, as it messes up
1997 readline and tab-completion inside our pdb would stop working).
2002 readline and tab-completion inside our pdb would stop working).
1998 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2003 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1999
2004
2000 2006-01-16 Ville Vainio <vivainio@gmail.com>
2005 2006-01-16 Ville Vainio <vivainio@gmail.com>
2001
2006
2002 * Ipython/magic.py: Reverted back to old %edit functionality
2007 * Ipython/magic.py: Reverted back to old %edit functionality
2003 that returns file contents on exit.
2008 that returns file contents on exit.
2004
2009
2005 * IPython/path.py: Added Jason Orendorff's "path" module to
2010 * IPython/path.py: Added Jason Orendorff's "path" module to
2006 IPython tree, http://www.jorendorff.com/articles/python/path/.
2011 IPython tree, http://www.jorendorff.com/articles/python/path/.
2007 You can get path objects conveniently through %sc, and !!, e.g.:
2012 You can get path objects conveniently through %sc, and !!, e.g.:
2008 sc files=ls
2013 sc files=ls
2009 for p in files.paths: # or files.p
2014 for p in files.paths: # or files.p
2010 print p,p.mtime
2015 print p,p.mtime
2011
2016
2012 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2017 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2013 now work again without considering the exclusion regexp -
2018 now work again without considering the exclusion regexp -
2014 hence, things like ',foo my/path' turn to 'foo("my/path")'
2019 hence, things like ',foo my/path' turn to 'foo("my/path")'
2015 instead of syntax error.
2020 instead of syntax error.
2016
2021
2017
2022
2018 2006-01-14 Ville Vainio <vivainio@gmail.com>
2023 2006-01-14 Ville Vainio <vivainio@gmail.com>
2019
2024
2020 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2025 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2021 ipapi decorators for python 2.4 users, options() provides access to rc
2026 ipapi decorators for python 2.4 users, options() provides access to rc
2022 data.
2027 data.
2023
2028
2024 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2029 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2025 as path separators (even on Linux ;-). Space character after
2030 as path separators (even on Linux ;-). Space character after
2026 backslash (as yielded by tab completer) is still space;
2031 backslash (as yielded by tab completer) is still space;
2027 "%cd long\ name" works as expected.
2032 "%cd long\ name" works as expected.
2028
2033
2029 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2034 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2030 as "chain of command", with priority. API stays the same,
2035 as "chain of command", with priority. API stays the same,
2031 TryNext exception raised by a hook function signals that
2036 TryNext exception raised by a hook function signals that
2032 current hook failed and next hook should try handling it, as
2037 current hook failed and next hook should try handling it, as
2033 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2038 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2034 requested configurable display hook, which is now implemented.
2039 requested configurable display hook, which is now implemented.
2035
2040
2036 2006-01-13 Ville Vainio <vivainio@gmail.com>
2041 2006-01-13 Ville Vainio <vivainio@gmail.com>
2037
2042
2038 * IPython/platutils*.py: platform specific utility functions,
2043 * IPython/platutils*.py: platform specific utility functions,
2039 so far only set_term_title is implemented (change terminal
2044 so far only set_term_title is implemented (change terminal
2040 label in windowing systems). %cd now changes the title to
2045 label in windowing systems). %cd now changes the title to
2041 current dir.
2046 current dir.
2042
2047
2043 * IPython/Release.py: Added myself to "authors" list,
2048 * IPython/Release.py: Added myself to "authors" list,
2044 had to create new files.
2049 had to create new files.
2045
2050
2046 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2051 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2047 shell escape; not a known bug but had potential to be one in the
2052 shell escape; not a known bug but had potential to be one in the
2048 future.
2053 future.
2049
2054
2050 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2055 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2051 extension API for IPython! See the module for usage example. Fix
2056 extension API for IPython! See the module for usage example. Fix
2052 OInspect for docstring-less magic functions.
2057 OInspect for docstring-less magic functions.
2053
2058
2054
2059
2055 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2060 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2056
2061
2057 * IPython/iplib.py (raw_input): temporarily deactivate all
2062 * IPython/iplib.py (raw_input): temporarily deactivate all
2058 attempts at allowing pasting of code with autoindent on. It
2063 attempts at allowing pasting of code with autoindent on. It
2059 introduced bugs (reported by Prabhu) and I can't seem to find a
2064 introduced bugs (reported by Prabhu) and I can't seem to find a
2060 robust combination which works in all cases. Will have to revisit
2065 robust combination which works in all cases. Will have to revisit
2061 later.
2066 later.
2062
2067
2063 * IPython/genutils.py: remove isspace() function. We've dropped
2068 * IPython/genutils.py: remove isspace() function. We've dropped
2064 2.2 compatibility, so it's OK to use the string method.
2069 2.2 compatibility, so it's OK to use the string method.
2065
2070
2066 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2071 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2067
2072
2068 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2073 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2069 matching what NOT to autocall on, to include all python binary
2074 matching what NOT to autocall on, to include all python binary
2070 operators (including things like 'and', 'or', 'is' and 'in').
2075 operators (including things like 'and', 'or', 'is' and 'in').
2071 Prompted by a bug report on 'foo & bar', but I realized we had
2076 Prompted by a bug report on 'foo & bar', but I realized we had
2072 many more potential bug cases with other operators. The regexp is
2077 many more potential bug cases with other operators. The regexp is
2073 self.re_exclude_auto, it's fairly commented.
2078 self.re_exclude_auto, it's fairly commented.
2074
2079
2075 2006-01-12 Ville Vainio <vivainio@gmail.com>
2080 2006-01-12 Ville Vainio <vivainio@gmail.com>
2076
2081
2077 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2082 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2078 Prettified and hardened string/backslash quoting with ipsystem(),
2083 Prettified and hardened string/backslash quoting with ipsystem(),
2079 ipalias() and ipmagic(). Now even \ characters are passed to
2084 ipalias() and ipmagic(). Now even \ characters are passed to
2080 %magics, !shell escapes and aliases exactly as they are in the
2085 %magics, !shell escapes and aliases exactly as they are in the
2081 ipython command line. Should improve backslash experience,
2086 ipython command line. Should improve backslash experience,
2082 particularly in Windows (path delimiter for some commands that
2087 particularly in Windows (path delimiter for some commands that
2083 won't understand '/'), but Unix benefits as well (regexps). %cd
2088 won't understand '/'), but Unix benefits as well (regexps). %cd
2084 magic still doesn't support backslash path delimiters, though. Also
2089 magic still doesn't support backslash path delimiters, though. Also
2085 deleted all pretense of supporting multiline command strings in
2090 deleted all pretense of supporting multiline command strings in
2086 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2091 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2087
2092
2088 * doc/build_doc_instructions.txt added. Documentation on how to
2093 * doc/build_doc_instructions.txt added. Documentation on how to
2089 use doc/update_manual.py, added yesterday. Both files contributed
2094 use doc/update_manual.py, added yesterday. Both files contributed
2090 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2095 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2091 doc/*.sh for deprecation at a later date.
2096 doc/*.sh for deprecation at a later date.
2092
2097
2093 * /ipython.py Added ipython.py to root directory for
2098 * /ipython.py Added ipython.py to root directory for
2094 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2099 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2095 ipython.py) and development convenience (no need to keep doing
2100 ipython.py) and development convenience (no need to keep doing
2096 "setup.py install" between changes).
2101 "setup.py install" between changes).
2097
2102
2098 * Made ! and !! shell escapes work (again) in multiline expressions:
2103 * Made ! and !! shell escapes work (again) in multiline expressions:
2099 if 1:
2104 if 1:
2100 !ls
2105 !ls
2101 !!ls
2106 !!ls
2102
2107
2103 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2108 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2104
2109
2105 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2110 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2106 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2111 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2107 module in case-insensitive installation. Was causing crashes
2112 module in case-insensitive installation. Was causing crashes
2108 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2113 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2109
2114
2110 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2115 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2111 <marienz-AT-gentoo.org>, closes
2116 <marienz-AT-gentoo.org>, closes
2112 http://www.scipy.net/roundup/ipython/issue51.
2117 http://www.scipy.net/roundup/ipython/issue51.
2113
2118
2114 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2119 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2115
2120
2116 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2121 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2117 problem of excessive CPU usage under *nix and keyboard lag under
2122 problem of excessive CPU usage under *nix and keyboard lag under
2118 win32.
2123 win32.
2119
2124
2120 2006-01-10 *** Released version 0.7.0
2125 2006-01-10 *** Released version 0.7.0
2121
2126
2122 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2127 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2123
2128
2124 * IPython/Release.py (revision): tag version number to 0.7.0,
2129 * IPython/Release.py (revision): tag version number to 0.7.0,
2125 ready for release.
2130 ready for release.
2126
2131
2127 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2132 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2128 it informs the user of the name of the temp. file used. This can
2133 it informs the user of the name of the temp. file used. This can
2129 help if you decide later to reuse that same file, so you know
2134 help if you decide later to reuse that same file, so you know
2130 where to copy the info from.
2135 where to copy the info from.
2131
2136
2132 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2137 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2133
2138
2134 * setup_bdist_egg.py: little script to build an egg. Added
2139 * setup_bdist_egg.py: little script to build an egg. Added
2135 support in the release tools as well.
2140 support in the release tools as well.
2136
2141
2137 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2142 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2138
2143
2139 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2144 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2140 version selection (new -wxversion command line and ipythonrc
2145 version selection (new -wxversion command line and ipythonrc
2141 parameter). Patch contributed by Arnd Baecker
2146 parameter). Patch contributed by Arnd Baecker
2142 <arnd.baecker-AT-web.de>.
2147 <arnd.baecker-AT-web.de>.
2143
2148
2144 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2149 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2145 embedded instances, for variables defined at the interactive
2150 embedded instances, for variables defined at the interactive
2146 prompt of the embedded ipython. Reported by Arnd.
2151 prompt of the embedded ipython. Reported by Arnd.
2147
2152
2148 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2153 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2149 it can be used as a (stateful) toggle, or with a direct parameter.
2154 it can be used as a (stateful) toggle, or with a direct parameter.
2150
2155
2151 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2156 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2152 could be triggered in certain cases and cause the traceback
2157 could be triggered in certain cases and cause the traceback
2153 printer not to work.
2158 printer not to work.
2154
2159
2155 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2160 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2156
2161
2157 * IPython/iplib.py (_should_recompile): Small fix, closes
2162 * IPython/iplib.py (_should_recompile): Small fix, closes
2158 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2163 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2159
2164
2160 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2165 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2161
2166
2162 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2167 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2163 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2168 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2164 Moad for help with tracking it down.
2169 Moad for help with tracking it down.
2165
2170
2166 * IPython/iplib.py (handle_auto): fix autocall handling for
2171 * IPython/iplib.py (handle_auto): fix autocall handling for
2167 objects which support BOTH __getitem__ and __call__ (so that f [x]
2172 objects which support BOTH __getitem__ and __call__ (so that f [x]
2168 is left alone, instead of becoming f([x]) automatically).
2173 is left alone, instead of becoming f([x]) automatically).
2169
2174
2170 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2175 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2171 Ville's patch.
2176 Ville's patch.
2172
2177
2173 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2178 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2174
2179
2175 * IPython/iplib.py (handle_auto): changed autocall semantics to
2180 * IPython/iplib.py (handle_auto): changed autocall semantics to
2176 include 'smart' mode, where the autocall transformation is NOT
2181 include 'smart' mode, where the autocall transformation is NOT
2177 applied if there are no arguments on the line. This allows you to
2182 applied if there are no arguments on the line. This allows you to
2178 just type 'foo' if foo is a callable to see its internal form,
2183 just type 'foo' if foo is a callable to see its internal form,
2179 instead of having it called with no arguments (typically a
2184 instead of having it called with no arguments (typically a
2180 mistake). The old 'full' autocall still exists: for that, you
2185 mistake). The old 'full' autocall still exists: for that, you
2181 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2186 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2182
2187
2183 * IPython/completer.py (Completer.attr_matches): add
2188 * IPython/completer.py (Completer.attr_matches): add
2184 tab-completion support for Enthoughts' traits. After a report by
2189 tab-completion support for Enthoughts' traits. After a report by
2185 Arnd and a patch by Prabhu.
2190 Arnd and a patch by Prabhu.
2186
2191
2187 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2192 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2188
2193
2189 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2194 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2190 Schmolck's patch to fix inspect.getinnerframes().
2195 Schmolck's patch to fix inspect.getinnerframes().
2191
2196
2192 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2197 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2193 for embedded instances, regarding handling of namespaces and items
2198 for embedded instances, regarding handling of namespaces and items
2194 added to the __builtin__ one. Multiple embedded instances and
2199 added to the __builtin__ one. Multiple embedded instances and
2195 recursive embeddings should work better now (though I'm not sure
2200 recursive embeddings should work better now (though I'm not sure
2196 I've got all the corner cases fixed, that code is a bit of a brain
2201 I've got all the corner cases fixed, that code is a bit of a brain
2197 twister).
2202 twister).
2198
2203
2199 * IPython/Magic.py (magic_edit): added support to edit in-memory
2204 * IPython/Magic.py (magic_edit): added support to edit in-memory
2200 macros (automatically creates the necessary temp files). %edit
2205 macros (automatically creates the necessary temp files). %edit
2201 also doesn't return the file contents anymore, it's just noise.
2206 also doesn't return the file contents anymore, it's just noise.
2202
2207
2203 * IPython/completer.py (Completer.attr_matches): revert change to
2208 * IPython/completer.py (Completer.attr_matches): revert change to
2204 complete only on attributes listed in __all__. I realized it
2209 complete only on attributes listed in __all__. I realized it
2205 cripples the tab-completion system as a tool for exploring the
2210 cripples the tab-completion system as a tool for exploring the
2206 internals of unknown libraries (it renders any non-__all__
2211 internals of unknown libraries (it renders any non-__all__
2207 attribute off-limits). I got bit by this when trying to see
2212 attribute off-limits). I got bit by this when trying to see
2208 something inside the dis module.
2213 something inside the dis module.
2209
2214
2210 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2215 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2211
2216
2212 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2217 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2213 namespace for users and extension writers to hold data in. This
2218 namespace for users and extension writers to hold data in. This
2214 follows the discussion in
2219 follows the discussion in
2215 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2220 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2216
2221
2217 * IPython/completer.py (IPCompleter.complete): small patch to help
2222 * IPython/completer.py (IPCompleter.complete): small patch to help
2218 tab-completion under Emacs, after a suggestion by John Barnard
2223 tab-completion under Emacs, after a suggestion by John Barnard
2219 <barnarj-AT-ccf.org>.
2224 <barnarj-AT-ccf.org>.
2220
2225
2221 * IPython/Magic.py (Magic.extract_input_slices): added support for
2226 * IPython/Magic.py (Magic.extract_input_slices): added support for
2222 the slice notation in magics to use N-M to represent numbers N...M
2227 the slice notation in magics to use N-M to represent numbers N...M
2223 (closed endpoints). This is used by %macro and %save.
2228 (closed endpoints). This is used by %macro and %save.
2224
2229
2225 * IPython/completer.py (Completer.attr_matches): for modules which
2230 * IPython/completer.py (Completer.attr_matches): for modules which
2226 define __all__, complete only on those. After a patch by Jeffrey
2231 define __all__, complete only on those. After a patch by Jeffrey
2227 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2232 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2228 speed up this routine.
2233 speed up this routine.
2229
2234
2230 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2235 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2231 don't know if this is the end of it, but the behavior now is
2236 don't know if this is the end of it, but the behavior now is
2232 certainly much more correct. Note that coupled with macros,
2237 certainly much more correct. Note that coupled with macros,
2233 slightly surprising (at first) behavior may occur: a macro will in
2238 slightly surprising (at first) behavior may occur: a macro will in
2234 general expand to multiple lines of input, so upon exiting, the
2239 general expand to multiple lines of input, so upon exiting, the
2235 in/out counters will both be bumped by the corresponding amount
2240 in/out counters will both be bumped by the corresponding amount
2236 (as if the macro's contents had been typed interactively). Typing
2241 (as if the macro's contents had been typed interactively). Typing
2237 %hist will reveal the intermediate (silently processed) lines.
2242 %hist will reveal the intermediate (silently processed) lines.
2238
2243
2239 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2244 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2240 pickle to fail (%run was overwriting __main__ and not restoring
2245 pickle to fail (%run was overwriting __main__ and not restoring
2241 it, but pickle relies on __main__ to operate).
2246 it, but pickle relies on __main__ to operate).
2242
2247
2243 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2248 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2244 using properties, but forgot to make the main InteractiveShell
2249 using properties, but forgot to make the main InteractiveShell
2245 class a new-style class. Properties fail silently, and
2250 class a new-style class. Properties fail silently, and
2246 mysteriously, with old-style class (getters work, but
2251 mysteriously, with old-style class (getters work, but
2247 setters don't do anything).
2252 setters don't do anything).
2248
2253
2249 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2254 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2250
2255
2251 * IPython/Magic.py (magic_history): fix history reporting bug (I
2256 * IPython/Magic.py (magic_history): fix history reporting bug (I
2252 know some nasties are still there, I just can't seem to find a
2257 know some nasties are still there, I just can't seem to find a
2253 reproducible test case to track them down; the input history is
2258 reproducible test case to track them down; the input history is
2254 falling out of sync...)
2259 falling out of sync...)
2255
2260
2256 * IPython/iplib.py (handle_shell_escape): fix bug where both
2261 * IPython/iplib.py (handle_shell_escape): fix bug where both
2257 aliases and system accesses where broken for indented code (such
2262 aliases and system accesses where broken for indented code (such
2258 as loops).
2263 as loops).
2259
2264
2260 * IPython/genutils.py (shell): fix small but critical bug for
2265 * IPython/genutils.py (shell): fix small but critical bug for
2261 win32 system access.
2266 win32 system access.
2262
2267
2263 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2268 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2264
2269
2265 * IPython/iplib.py (showtraceback): remove use of the
2270 * IPython/iplib.py (showtraceback): remove use of the
2266 sys.last_{type/value/traceback} structures, which are non
2271 sys.last_{type/value/traceback} structures, which are non
2267 thread-safe.
2272 thread-safe.
2268 (_prefilter): change control flow to ensure that we NEVER
2273 (_prefilter): change control flow to ensure that we NEVER
2269 introspect objects when autocall is off. This will guarantee that
2274 introspect objects when autocall is off. This will guarantee that
2270 having an input line of the form 'x.y', where access to attribute
2275 having an input line of the form 'x.y', where access to attribute
2271 'y' has side effects, doesn't trigger the side effect TWICE. It
2276 'y' has side effects, doesn't trigger the side effect TWICE. It
2272 is important to note that, with autocall on, these side effects
2277 is important to note that, with autocall on, these side effects
2273 can still happen.
2278 can still happen.
2274 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2279 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2275 trio. IPython offers these three kinds of special calls which are
2280 trio. IPython offers these three kinds of special calls which are
2276 not python code, and it's a good thing to have their call method
2281 not python code, and it's a good thing to have their call method
2277 be accessible as pure python functions (not just special syntax at
2282 be accessible as pure python functions (not just special syntax at
2278 the command line). It gives us a better internal implementation
2283 the command line). It gives us a better internal implementation
2279 structure, as well as exposing these for user scripting more
2284 structure, as well as exposing these for user scripting more
2280 cleanly.
2285 cleanly.
2281
2286
2282 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2287 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2283 file. Now that they'll be more likely to be used with the
2288 file. Now that they'll be more likely to be used with the
2284 persistance system (%store), I want to make sure their module path
2289 persistance system (%store), I want to make sure their module path
2285 doesn't change in the future, so that we don't break things for
2290 doesn't change in the future, so that we don't break things for
2286 users' persisted data.
2291 users' persisted data.
2287
2292
2288 * IPython/iplib.py (autoindent_update): move indentation
2293 * IPython/iplib.py (autoindent_update): move indentation
2289 management into the _text_ processing loop, not the keyboard
2294 management into the _text_ processing loop, not the keyboard
2290 interactive one. This is necessary to correctly process non-typed
2295 interactive one. This is necessary to correctly process non-typed
2291 multiline input (such as macros).
2296 multiline input (such as macros).
2292
2297
2293 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2298 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2294 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2299 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2295 which was producing problems in the resulting manual.
2300 which was producing problems in the resulting manual.
2296 (magic_whos): improve reporting of instances (show their class,
2301 (magic_whos): improve reporting of instances (show their class,
2297 instead of simply printing 'instance' which isn't terribly
2302 instead of simply printing 'instance' which isn't terribly
2298 informative).
2303 informative).
2299
2304
2300 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2305 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2301 (minor mods) to support network shares under win32.
2306 (minor mods) to support network shares under win32.
2302
2307
2303 * IPython/winconsole.py (get_console_size): add new winconsole
2308 * IPython/winconsole.py (get_console_size): add new winconsole
2304 module and fixes to page_dumb() to improve its behavior under
2309 module and fixes to page_dumb() to improve its behavior under
2305 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2310 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2306
2311
2307 * IPython/Magic.py (Macro): simplified Macro class to just
2312 * IPython/Magic.py (Macro): simplified Macro class to just
2308 subclass list. We've had only 2.2 compatibility for a very long
2313 subclass list. We've had only 2.2 compatibility for a very long
2309 time, yet I was still avoiding subclassing the builtin types. No
2314 time, yet I was still avoiding subclassing the builtin types. No
2310 more (I'm also starting to use properties, though I won't shift to
2315 more (I'm also starting to use properties, though I won't shift to
2311 2.3-specific features quite yet).
2316 2.3-specific features quite yet).
2312 (magic_store): added Ville's patch for lightweight variable
2317 (magic_store): added Ville's patch for lightweight variable
2313 persistence, after a request on the user list by Matt Wilkie
2318 persistence, after a request on the user list by Matt Wilkie
2314 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2319 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2315 details.
2320 details.
2316
2321
2317 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2322 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2318 changed the default logfile name from 'ipython.log' to
2323 changed the default logfile name from 'ipython.log' to
2319 'ipython_log.py'. These logs are real python files, and now that
2324 'ipython_log.py'. These logs are real python files, and now that
2320 we have much better multiline support, people are more likely to
2325 we have much better multiline support, people are more likely to
2321 want to use them as such. Might as well name them correctly.
2326 want to use them as such. Might as well name them correctly.
2322
2327
2323 * IPython/Magic.py: substantial cleanup. While we can't stop
2328 * IPython/Magic.py: substantial cleanup. While we can't stop
2324 using magics as mixins, due to the existing customizations 'out
2329 using magics as mixins, due to the existing customizations 'out
2325 there' which rely on the mixin naming conventions, at least I
2330 there' which rely on the mixin naming conventions, at least I
2326 cleaned out all cross-class name usage. So once we are OK with
2331 cleaned out all cross-class name usage. So once we are OK with
2327 breaking compatibility, the two systems can be separated.
2332 breaking compatibility, the two systems can be separated.
2328
2333
2329 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2334 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2330 anymore, and the class is a fair bit less hideous as well. New
2335 anymore, and the class is a fair bit less hideous as well. New
2331 features were also introduced: timestamping of input, and logging
2336 features were also introduced: timestamping of input, and logging
2332 of output results. These are user-visible with the -t and -o
2337 of output results. These are user-visible with the -t and -o
2333 options to %logstart. Closes
2338 options to %logstart. Closes
2334 http://www.scipy.net/roundup/ipython/issue11 and a request by
2339 http://www.scipy.net/roundup/ipython/issue11 and a request by
2335 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2340 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2336
2341
2337 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2342 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2338
2343
2339 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2344 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2340 better handle backslashes in paths. See the thread 'More Windows
2345 better handle backslashes in paths. See the thread 'More Windows
2341 questions part 2 - \/ characters revisited' on the iypthon user
2346 questions part 2 - \/ characters revisited' on the iypthon user
2342 list:
2347 list:
2343 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2348 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2344
2349
2345 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2350 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2346
2351
2347 (InteractiveShell.__init__): change threaded shells to not use the
2352 (InteractiveShell.__init__): change threaded shells to not use the
2348 ipython crash handler. This was causing more problems than not,
2353 ipython crash handler. This was causing more problems than not,
2349 as exceptions in the main thread (GUI code, typically) would
2354 as exceptions in the main thread (GUI code, typically) would
2350 always show up as a 'crash', when they really weren't.
2355 always show up as a 'crash', when they really weren't.
2351
2356
2352 The colors and exception mode commands (%colors/%xmode) have been
2357 The colors and exception mode commands (%colors/%xmode) have been
2353 synchronized to also take this into account, so users can get
2358 synchronized to also take this into account, so users can get
2354 verbose exceptions for their threaded code as well. I also added
2359 verbose exceptions for their threaded code as well. I also added
2355 support for activating pdb inside this exception handler as well,
2360 support for activating pdb inside this exception handler as well,
2356 so now GUI authors can use IPython's enhanced pdb at runtime.
2361 so now GUI authors can use IPython's enhanced pdb at runtime.
2357
2362
2358 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2363 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2359 true by default, and add it to the shipped ipythonrc file. Since
2364 true by default, and add it to the shipped ipythonrc file. Since
2360 this asks the user before proceeding, I think it's OK to make it
2365 this asks the user before proceeding, I think it's OK to make it
2361 true by default.
2366 true by default.
2362
2367
2363 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2368 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2364 of the previous special-casing of input in the eval loop. I think
2369 of the previous special-casing of input in the eval loop. I think
2365 this is cleaner, as they really are commands and shouldn't have
2370 this is cleaner, as they really are commands and shouldn't have
2366 a special role in the middle of the core code.
2371 a special role in the middle of the core code.
2367
2372
2368 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2373 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2369
2374
2370 * IPython/iplib.py (edit_syntax_error): added support for
2375 * IPython/iplib.py (edit_syntax_error): added support for
2371 automatically reopening the editor if the file had a syntax error
2376 automatically reopening the editor if the file had a syntax error
2372 in it. Thanks to scottt who provided the patch at:
2377 in it. Thanks to scottt who provided the patch at:
2373 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2378 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2374 version committed).
2379 version committed).
2375
2380
2376 * IPython/iplib.py (handle_normal): add suport for multi-line
2381 * IPython/iplib.py (handle_normal): add suport for multi-line
2377 input with emtpy lines. This fixes
2382 input with emtpy lines. This fixes
2378 http://www.scipy.net/roundup/ipython/issue43 and a similar
2383 http://www.scipy.net/roundup/ipython/issue43 and a similar
2379 discussion on the user list.
2384 discussion on the user list.
2380
2385
2381 WARNING: a behavior change is necessarily introduced to support
2386 WARNING: a behavior change is necessarily introduced to support
2382 blank lines: now a single blank line with whitespace does NOT
2387 blank lines: now a single blank line with whitespace does NOT
2383 break the input loop, which means that when autoindent is on, by
2388 break the input loop, which means that when autoindent is on, by
2384 default hitting return on the next (indented) line does NOT exit.
2389 default hitting return on the next (indented) line does NOT exit.
2385
2390
2386 Instead, to exit a multiline input you can either have:
2391 Instead, to exit a multiline input you can either have:
2387
2392
2388 - TWO whitespace lines (just hit return again), or
2393 - TWO whitespace lines (just hit return again), or
2389 - a single whitespace line of a different length than provided
2394 - a single whitespace line of a different length than provided
2390 by the autoindent (add or remove a space).
2395 by the autoindent (add or remove a space).
2391
2396
2392 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2397 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2393 module to better organize all readline-related functionality.
2398 module to better organize all readline-related functionality.
2394 I've deleted FlexCompleter and put all completion clases here.
2399 I've deleted FlexCompleter and put all completion clases here.
2395
2400
2396 * IPython/iplib.py (raw_input): improve indentation management.
2401 * IPython/iplib.py (raw_input): improve indentation management.
2397 It is now possible to paste indented code with autoindent on, and
2402 It is now possible to paste indented code with autoindent on, and
2398 the code is interpreted correctly (though it still looks bad on
2403 the code is interpreted correctly (though it still looks bad on
2399 screen, due to the line-oriented nature of ipython).
2404 screen, due to the line-oriented nature of ipython).
2400 (MagicCompleter.complete): change behavior so that a TAB key on an
2405 (MagicCompleter.complete): change behavior so that a TAB key on an
2401 otherwise empty line actually inserts a tab, instead of completing
2406 otherwise empty line actually inserts a tab, instead of completing
2402 on the entire global namespace. This makes it easier to use the
2407 on the entire global namespace. This makes it easier to use the
2403 TAB key for indentation. After a request by Hans Meine
2408 TAB key for indentation. After a request by Hans Meine
2404 <hans_meine-AT-gmx.net>
2409 <hans_meine-AT-gmx.net>
2405 (_prefilter): add support so that typing plain 'exit' or 'quit'
2410 (_prefilter): add support so that typing plain 'exit' or 'quit'
2406 does a sensible thing. Originally I tried to deviate as little as
2411 does a sensible thing. Originally I tried to deviate as little as
2407 possible from the default python behavior, but even that one may
2412 possible from the default python behavior, but even that one may
2408 change in this direction (thread on python-dev to that effect).
2413 change in this direction (thread on python-dev to that effect).
2409 Regardless, ipython should do the right thing even if CPython's
2414 Regardless, ipython should do the right thing even if CPython's
2410 '>>>' prompt doesn't.
2415 '>>>' prompt doesn't.
2411 (InteractiveShell): removed subclassing code.InteractiveConsole
2416 (InteractiveShell): removed subclassing code.InteractiveConsole
2412 class. By now we'd overridden just about all of its methods: I've
2417 class. By now we'd overridden just about all of its methods: I've
2413 copied the remaining two over, and now ipython is a standalone
2418 copied the remaining two over, and now ipython is a standalone
2414 class. This will provide a clearer picture for the chainsaw
2419 class. This will provide a clearer picture for the chainsaw
2415 branch refactoring.
2420 branch refactoring.
2416
2421
2417 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2422 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2418
2423
2419 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2424 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2420 failures for objects which break when dir() is called on them.
2425 failures for objects which break when dir() is called on them.
2421
2426
2422 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2427 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2423 distinct local and global namespaces in the completer API. This
2428 distinct local and global namespaces in the completer API. This
2424 change allows us to properly handle completion with distinct
2429 change allows us to properly handle completion with distinct
2425 scopes, including in embedded instances (this had never really
2430 scopes, including in embedded instances (this had never really
2426 worked correctly).
2431 worked correctly).
2427
2432
2428 Note: this introduces a change in the constructor for
2433 Note: this introduces a change in the constructor for
2429 MagicCompleter, as a new global_namespace parameter is now the
2434 MagicCompleter, as a new global_namespace parameter is now the
2430 second argument (the others were bumped one position).
2435 second argument (the others were bumped one position).
2431
2436
2432 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2437 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2433
2438
2434 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2439 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2435 embedded instances (which can be done now thanks to Vivian's
2440 embedded instances (which can be done now thanks to Vivian's
2436 frame-handling fixes for pdb).
2441 frame-handling fixes for pdb).
2437 (InteractiveShell.__init__): Fix namespace handling problem in
2442 (InteractiveShell.__init__): Fix namespace handling problem in
2438 embedded instances. We were overwriting __main__ unconditionally,
2443 embedded instances. We were overwriting __main__ unconditionally,
2439 and this should only be done for 'full' (non-embedded) IPython;
2444 and this should only be done for 'full' (non-embedded) IPython;
2440 embedded instances must respect the caller's __main__. Thanks to
2445 embedded instances must respect the caller's __main__. Thanks to
2441 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2446 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2442
2447
2443 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2448 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2444
2449
2445 * setup.py: added download_url to setup(). This registers the
2450 * setup.py: added download_url to setup(). This registers the
2446 download address at PyPI, which is not only useful to humans
2451 download address at PyPI, which is not only useful to humans
2447 browsing the site, but is also picked up by setuptools (the Eggs
2452 browsing the site, but is also picked up by setuptools (the Eggs
2448 machinery). Thanks to Ville and R. Kern for the info/discussion
2453 machinery). Thanks to Ville and R. Kern for the info/discussion
2449 on this.
2454 on this.
2450
2455
2451 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2456 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2452
2457
2453 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2458 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2454 This brings a lot of nice functionality to the pdb mode, which now
2459 This brings a lot of nice functionality to the pdb mode, which now
2455 has tab-completion, syntax highlighting, and better stack handling
2460 has tab-completion, syntax highlighting, and better stack handling
2456 than before. Many thanks to Vivian De Smedt
2461 than before. Many thanks to Vivian De Smedt
2457 <vivian-AT-vdesmedt.com> for the original patches.
2462 <vivian-AT-vdesmedt.com> for the original patches.
2458
2463
2459 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2464 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2460
2465
2461 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2466 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2462 sequence to consistently accept the banner argument. The
2467 sequence to consistently accept the banner argument. The
2463 inconsistency was tripping SAGE, thanks to Gary Zablackis
2468 inconsistency was tripping SAGE, thanks to Gary Zablackis
2464 <gzabl-AT-yahoo.com> for the report.
2469 <gzabl-AT-yahoo.com> for the report.
2465
2470
2466 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2471 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2467
2472
2468 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2473 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2469 Fix bug where a naked 'alias' call in the ipythonrc file would
2474 Fix bug where a naked 'alias' call in the ipythonrc file would
2470 cause a crash. Bug reported by Jorgen Stenarson.
2475 cause a crash. Bug reported by Jorgen Stenarson.
2471
2476
2472 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2477 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2473
2478
2474 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2479 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2475 startup time.
2480 startup time.
2476
2481
2477 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2482 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2478 instances had introduced a bug with globals in normal code. Now
2483 instances had introduced a bug with globals in normal code. Now
2479 it's working in all cases.
2484 it's working in all cases.
2480
2485
2481 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2486 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2482 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2487 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2483 has been introduced to set the default case sensitivity of the
2488 has been introduced to set the default case sensitivity of the
2484 searches. Users can still select either mode at runtime on a
2489 searches. Users can still select either mode at runtime on a
2485 per-search basis.
2490 per-search basis.
2486
2491
2487 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2492 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2488
2493
2489 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2494 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2490 attributes in wildcard searches for subclasses. Modified version
2495 attributes in wildcard searches for subclasses. Modified version
2491 of a patch by Jorgen.
2496 of a patch by Jorgen.
2492
2497
2493 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2498 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2494
2499
2495 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2500 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2496 embedded instances. I added a user_global_ns attribute to the
2501 embedded instances. I added a user_global_ns attribute to the
2497 InteractiveShell class to handle this.
2502 InteractiveShell class to handle this.
2498
2503
2499 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2504 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2500
2505
2501 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2506 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2502 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2507 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2503 (reported under win32, but may happen also in other platforms).
2508 (reported under win32, but may happen also in other platforms).
2504 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2509 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2505
2510
2506 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2511 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2507
2512
2508 * IPython/Magic.py (magic_psearch): new support for wildcard
2513 * IPython/Magic.py (magic_psearch): new support for wildcard
2509 patterns. Now, typing ?a*b will list all names which begin with a
2514 patterns. Now, typing ?a*b will list all names which begin with a
2510 and end in b, for example. The %psearch magic has full
2515 and end in b, for example. The %psearch magic has full
2511 docstrings. Many thanks to JΓΆrgen Stenarson
2516 docstrings. Many thanks to JΓΆrgen Stenarson
2512 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2517 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2513 implementing this functionality.
2518 implementing this functionality.
2514
2519
2515 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2520 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2516
2521
2517 * Manual: fixed long-standing annoyance of double-dashes (as in
2522 * Manual: fixed long-standing annoyance of double-dashes (as in
2518 --prefix=~, for example) being stripped in the HTML version. This
2523 --prefix=~, for example) being stripped in the HTML version. This
2519 is a latex2html bug, but a workaround was provided. Many thanks
2524 is a latex2html bug, but a workaround was provided. Many thanks
2520 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2525 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2521 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2526 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2522 rolling. This seemingly small issue had tripped a number of users
2527 rolling. This seemingly small issue had tripped a number of users
2523 when first installing, so I'm glad to see it gone.
2528 when first installing, so I'm glad to see it gone.
2524
2529
2525 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2530 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2526
2531
2527 * IPython/Extensions/numeric_formats.py: fix missing import,
2532 * IPython/Extensions/numeric_formats.py: fix missing import,
2528 reported by Stephen Walton.
2533 reported by Stephen Walton.
2529
2534
2530 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2535 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2531
2536
2532 * IPython/demo.py: finish demo module, fully documented now.
2537 * IPython/demo.py: finish demo module, fully documented now.
2533
2538
2534 * IPython/genutils.py (file_read): simple little utility to read a
2539 * IPython/genutils.py (file_read): simple little utility to read a
2535 file and ensure it's closed afterwards.
2540 file and ensure it's closed afterwards.
2536
2541
2537 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2542 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2538
2543
2539 * IPython/demo.py (Demo.__init__): added support for individually
2544 * IPython/demo.py (Demo.__init__): added support for individually
2540 tagging blocks for automatic execution.
2545 tagging blocks for automatic execution.
2541
2546
2542 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2547 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2543 syntax-highlighted python sources, requested by John.
2548 syntax-highlighted python sources, requested by John.
2544
2549
2545 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2550 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2546
2551
2547 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2552 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2548 finishing.
2553 finishing.
2549
2554
2550 * IPython/genutils.py (shlex_split): moved from Magic to here,
2555 * IPython/genutils.py (shlex_split): moved from Magic to here,
2551 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2556 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2552
2557
2553 * IPython/demo.py (Demo.__init__): added support for silent
2558 * IPython/demo.py (Demo.__init__): added support for silent
2554 blocks, improved marks as regexps, docstrings written.
2559 blocks, improved marks as regexps, docstrings written.
2555 (Demo.__init__): better docstring, added support for sys.argv.
2560 (Demo.__init__): better docstring, added support for sys.argv.
2556
2561
2557 * IPython/genutils.py (marquee): little utility used by the demo
2562 * IPython/genutils.py (marquee): little utility used by the demo
2558 code, handy in general.
2563 code, handy in general.
2559
2564
2560 * IPython/demo.py (Demo.__init__): new class for interactive
2565 * IPython/demo.py (Demo.__init__): new class for interactive
2561 demos. Not documented yet, I just wrote it in a hurry for
2566 demos. Not documented yet, I just wrote it in a hurry for
2562 scipy'05. Will docstring later.
2567 scipy'05. Will docstring later.
2563
2568
2564 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2569 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2565
2570
2566 * IPython/Shell.py (sigint_handler): Drastic simplification which
2571 * IPython/Shell.py (sigint_handler): Drastic simplification which
2567 also seems to make Ctrl-C work correctly across threads! This is
2572 also seems to make Ctrl-C work correctly across threads! This is
2568 so simple, that I can't beleive I'd missed it before. Needs more
2573 so simple, that I can't beleive I'd missed it before. Needs more
2569 testing, though.
2574 testing, though.
2570 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2575 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2571 like this before...
2576 like this before...
2572
2577
2573 * IPython/genutils.py (get_home_dir): add protection against
2578 * IPython/genutils.py (get_home_dir): add protection against
2574 non-dirs in win32 registry.
2579 non-dirs in win32 registry.
2575
2580
2576 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2581 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2577 bug where dict was mutated while iterating (pysh crash).
2582 bug where dict was mutated while iterating (pysh crash).
2578
2583
2579 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2584 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2580
2585
2581 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2586 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2582 spurious newlines added by this routine. After a report by
2587 spurious newlines added by this routine. After a report by
2583 F. Mantegazza.
2588 F. Mantegazza.
2584
2589
2585 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2590 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2586
2591
2587 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2592 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2588 calls. These were a leftover from the GTK 1.x days, and can cause
2593 calls. These were a leftover from the GTK 1.x days, and can cause
2589 problems in certain cases (after a report by John Hunter).
2594 problems in certain cases (after a report by John Hunter).
2590
2595
2591 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2596 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2592 os.getcwd() fails at init time. Thanks to patch from David Remahl
2597 os.getcwd() fails at init time. Thanks to patch from David Remahl
2593 <chmod007-AT-mac.com>.
2598 <chmod007-AT-mac.com>.
2594 (InteractiveShell.__init__): prevent certain special magics from
2599 (InteractiveShell.__init__): prevent certain special magics from
2595 being shadowed by aliases. Closes
2600 being shadowed by aliases. Closes
2596 http://www.scipy.net/roundup/ipython/issue41.
2601 http://www.scipy.net/roundup/ipython/issue41.
2597
2602
2598 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2603 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2599
2604
2600 * IPython/iplib.py (InteractiveShell.complete): Added new
2605 * IPython/iplib.py (InteractiveShell.complete): Added new
2601 top-level completion method to expose the completion mechanism
2606 top-level completion method to expose the completion mechanism
2602 beyond readline-based environments.
2607 beyond readline-based environments.
2603
2608
2604 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2609 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2605
2610
2606 * tools/ipsvnc (svnversion): fix svnversion capture.
2611 * tools/ipsvnc (svnversion): fix svnversion capture.
2607
2612
2608 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2613 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2609 attribute to self, which was missing. Before, it was set by a
2614 attribute to self, which was missing. Before, it was set by a
2610 routine which in certain cases wasn't being called, so the
2615 routine which in certain cases wasn't being called, so the
2611 instance could end up missing the attribute. This caused a crash.
2616 instance could end up missing the attribute. This caused a crash.
2612 Closes http://www.scipy.net/roundup/ipython/issue40.
2617 Closes http://www.scipy.net/roundup/ipython/issue40.
2613
2618
2614 2005-08-16 Fernando Perez <fperez@colorado.edu>
2619 2005-08-16 Fernando Perez <fperez@colorado.edu>
2615
2620
2616 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2621 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2617 contains non-string attribute. Closes
2622 contains non-string attribute. Closes
2618 http://www.scipy.net/roundup/ipython/issue38.
2623 http://www.scipy.net/roundup/ipython/issue38.
2619
2624
2620 2005-08-14 Fernando Perez <fperez@colorado.edu>
2625 2005-08-14 Fernando Perez <fperez@colorado.edu>
2621
2626
2622 * tools/ipsvnc: Minor improvements, to add changeset info.
2627 * tools/ipsvnc: Minor improvements, to add changeset info.
2623
2628
2624 2005-08-12 Fernando Perez <fperez@colorado.edu>
2629 2005-08-12 Fernando Perez <fperez@colorado.edu>
2625
2630
2626 * IPython/iplib.py (runsource): remove self.code_to_run_src
2631 * IPython/iplib.py (runsource): remove self.code_to_run_src
2627 attribute. I realized this is nothing more than
2632 attribute. I realized this is nothing more than
2628 '\n'.join(self.buffer), and having the same data in two different
2633 '\n'.join(self.buffer), and having the same data in two different
2629 places is just asking for synchronization bugs. This may impact
2634 places is just asking for synchronization bugs. This may impact
2630 people who have custom exception handlers, so I need to warn
2635 people who have custom exception handlers, so I need to warn
2631 ipython-dev about it (F. Mantegazza may use them).
2636 ipython-dev about it (F. Mantegazza may use them).
2632
2637
2633 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2638 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2634
2639
2635 * IPython/genutils.py: fix 2.2 compatibility (generators)
2640 * IPython/genutils.py: fix 2.2 compatibility (generators)
2636
2641
2637 2005-07-18 Fernando Perez <fperez@colorado.edu>
2642 2005-07-18 Fernando Perez <fperez@colorado.edu>
2638
2643
2639 * IPython/genutils.py (get_home_dir): fix to help users with
2644 * IPython/genutils.py (get_home_dir): fix to help users with
2640 invalid $HOME under win32.
2645 invalid $HOME under win32.
2641
2646
2642 2005-07-17 Fernando Perez <fperez@colorado.edu>
2647 2005-07-17 Fernando Perez <fperez@colorado.edu>
2643
2648
2644 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2649 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2645 some old hacks and clean up a bit other routines; code should be
2650 some old hacks and clean up a bit other routines; code should be
2646 simpler and a bit faster.
2651 simpler and a bit faster.
2647
2652
2648 * IPython/iplib.py (interact): removed some last-resort attempts
2653 * IPython/iplib.py (interact): removed some last-resort attempts
2649 to survive broken stdout/stderr. That code was only making it
2654 to survive broken stdout/stderr. That code was only making it
2650 harder to abstract out the i/o (necessary for gui integration),
2655 harder to abstract out the i/o (necessary for gui integration),
2651 and the crashes it could prevent were extremely rare in practice
2656 and the crashes it could prevent were extremely rare in practice
2652 (besides being fully user-induced in a pretty violent manner).
2657 (besides being fully user-induced in a pretty violent manner).
2653
2658
2654 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2659 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2655 Nothing major yet, but the code is simpler to read; this should
2660 Nothing major yet, but the code is simpler to read; this should
2656 make it easier to do more serious modifications in the future.
2661 make it easier to do more serious modifications in the future.
2657
2662
2658 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2663 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2659 which broke in .15 (thanks to a report by Ville).
2664 which broke in .15 (thanks to a report by Ville).
2660
2665
2661 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2666 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2662 be quite correct, I know next to nothing about unicode). This
2667 be quite correct, I know next to nothing about unicode). This
2663 will allow unicode strings to be used in prompts, amongst other
2668 will allow unicode strings to be used in prompts, amongst other
2664 cases. It also will prevent ipython from crashing when unicode
2669 cases. It also will prevent ipython from crashing when unicode
2665 shows up unexpectedly in many places. If ascii encoding fails, we
2670 shows up unexpectedly in many places. If ascii encoding fails, we
2666 assume utf_8. Currently the encoding is not a user-visible
2671 assume utf_8. Currently the encoding is not a user-visible
2667 setting, though it could be made so if there is demand for it.
2672 setting, though it could be made so if there is demand for it.
2668
2673
2669 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2674 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2670
2675
2671 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2676 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2672
2677
2673 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2678 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2674
2679
2675 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2680 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2676 code can work transparently for 2.2/2.3.
2681 code can work transparently for 2.2/2.3.
2677
2682
2678 2005-07-16 Fernando Perez <fperez@colorado.edu>
2683 2005-07-16 Fernando Perez <fperez@colorado.edu>
2679
2684
2680 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2685 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2681 out of the color scheme table used for coloring exception
2686 out of the color scheme table used for coloring exception
2682 tracebacks. This allows user code to add new schemes at runtime.
2687 tracebacks. This allows user code to add new schemes at runtime.
2683 This is a minimally modified version of the patch at
2688 This is a minimally modified version of the patch at
2684 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2689 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2685 for the contribution.
2690 for the contribution.
2686
2691
2687 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2692 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2688 slightly modified version of the patch in
2693 slightly modified version of the patch in
2689 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2694 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2690 to remove the previous try/except solution (which was costlier).
2695 to remove the previous try/except solution (which was costlier).
2691 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2696 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2692
2697
2693 2005-06-08 Fernando Perez <fperez@colorado.edu>
2698 2005-06-08 Fernando Perez <fperez@colorado.edu>
2694
2699
2695 * IPython/iplib.py (write/write_err): Add methods to abstract all
2700 * IPython/iplib.py (write/write_err): Add methods to abstract all
2696 I/O a bit more.
2701 I/O a bit more.
2697
2702
2698 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2703 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2699 warning, reported by Aric Hagberg, fix by JD Hunter.
2704 warning, reported by Aric Hagberg, fix by JD Hunter.
2700
2705
2701 2005-06-02 *** Released version 0.6.15
2706 2005-06-02 *** Released version 0.6.15
2702
2707
2703 2005-06-01 Fernando Perez <fperez@colorado.edu>
2708 2005-06-01 Fernando Perez <fperez@colorado.edu>
2704
2709
2705 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2710 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2706 tab-completion of filenames within open-quoted strings. Note that
2711 tab-completion of filenames within open-quoted strings. Note that
2707 this requires that in ~/.ipython/ipythonrc, users change the
2712 this requires that in ~/.ipython/ipythonrc, users change the
2708 readline delimiters configuration to read:
2713 readline delimiters configuration to read:
2709
2714
2710 readline_remove_delims -/~
2715 readline_remove_delims -/~
2711
2716
2712
2717
2713 2005-05-31 *** Released version 0.6.14
2718 2005-05-31 *** Released version 0.6.14
2714
2719
2715 2005-05-29 Fernando Perez <fperez@colorado.edu>
2720 2005-05-29 Fernando Perez <fperez@colorado.edu>
2716
2721
2717 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2722 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2718 with files not on the filesystem. Reported by Eliyahu Sandler
2723 with files not on the filesystem. Reported by Eliyahu Sandler
2719 <eli@gondolin.net>
2724 <eli@gondolin.net>
2720
2725
2721 2005-05-22 Fernando Perez <fperez@colorado.edu>
2726 2005-05-22 Fernando Perez <fperez@colorado.edu>
2722
2727
2723 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2728 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2724 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2729 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2725
2730
2726 2005-05-19 Fernando Perez <fperez@colorado.edu>
2731 2005-05-19 Fernando Perez <fperez@colorado.edu>
2727
2732
2728 * IPython/iplib.py (safe_execfile): close a file which could be
2733 * IPython/iplib.py (safe_execfile): close a file which could be
2729 left open (causing problems in win32, which locks open files).
2734 left open (causing problems in win32, which locks open files).
2730 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2735 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2731
2736
2732 2005-05-18 Fernando Perez <fperez@colorado.edu>
2737 2005-05-18 Fernando Perez <fperez@colorado.edu>
2733
2738
2734 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2739 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2735 keyword arguments correctly to safe_execfile().
2740 keyword arguments correctly to safe_execfile().
2736
2741
2737 2005-05-13 Fernando Perez <fperez@colorado.edu>
2742 2005-05-13 Fernando Perez <fperez@colorado.edu>
2738
2743
2739 * ipython.1: Added info about Qt to manpage, and threads warning
2744 * ipython.1: Added info about Qt to manpage, and threads warning
2740 to usage page (invoked with --help).
2745 to usage page (invoked with --help).
2741
2746
2742 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2747 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2743 new matcher (it goes at the end of the priority list) to do
2748 new matcher (it goes at the end of the priority list) to do
2744 tab-completion on named function arguments. Submitted by George
2749 tab-completion on named function arguments. Submitted by George
2745 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2750 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2746 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2751 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2747 for more details.
2752 for more details.
2748
2753
2749 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2754 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2750 SystemExit exceptions in the script being run. Thanks to a report
2755 SystemExit exceptions in the script being run. Thanks to a report
2751 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2756 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2752 producing very annoying behavior when running unit tests.
2757 producing very annoying behavior when running unit tests.
2753
2758
2754 2005-05-12 Fernando Perez <fperez@colorado.edu>
2759 2005-05-12 Fernando Perez <fperez@colorado.edu>
2755
2760
2756 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2761 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2757 which I'd broken (again) due to a changed regexp. In the process,
2762 which I'd broken (again) due to a changed regexp. In the process,
2758 added ';' as an escape to auto-quote the whole line without
2763 added ';' as an escape to auto-quote the whole line without
2759 splitting its arguments. Thanks to a report by Jerry McRae
2764 splitting its arguments. Thanks to a report by Jerry McRae
2760 <qrs0xyc02-AT-sneakemail.com>.
2765 <qrs0xyc02-AT-sneakemail.com>.
2761
2766
2762 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2767 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2763 possible crashes caused by a TokenError. Reported by Ed Schofield
2768 possible crashes caused by a TokenError. Reported by Ed Schofield
2764 <schofield-AT-ftw.at>.
2769 <schofield-AT-ftw.at>.
2765
2770
2766 2005-05-06 Fernando Perez <fperez@colorado.edu>
2771 2005-05-06 Fernando Perez <fperez@colorado.edu>
2767
2772
2768 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2773 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2769
2774
2770 2005-04-29 Fernando Perez <fperez@colorado.edu>
2775 2005-04-29 Fernando Perez <fperez@colorado.edu>
2771
2776
2772 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2777 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2773 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2778 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2774 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2779 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2775 which provides support for Qt interactive usage (similar to the
2780 which provides support for Qt interactive usage (similar to the
2776 existing one for WX and GTK). This had been often requested.
2781 existing one for WX and GTK). This had been often requested.
2777
2782
2778 2005-04-14 *** Released version 0.6.13
2783 2005-04-14 *** Released version 0.6.13
2779
2784
2780 2005-04-08 Fernando Perez <fperez@colorado.edu>
2785 2005-04-08 Fernando Perez <fperez@colorado.edu>
2781
2786
2782 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2787 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2783 from _ofind, which gets called on almost every input line. Now,
2788 from _ofind, which gets called on almost every input line. Now,
2784 we only try to get docstrings if they are actually going to be
2789 we only try to get docstrings if they are actually going to be
2785 used (the overhead of fetching unnecessary docstrings can be
2790 used (the overhead of fetching unnecessary docstrings can be
2786 noticeable for certain objects, such as Pyro proxies).
2791 noticeable for certain objects, such as Pyro proxies).
2787
2792
2788 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2793 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2789 for completers. For some reason I had been passing them the state
2794 for completers. For some reason I had been passing them the state
2790 variable, which completers never actually need, and was in
2795 variable, which completers never actually need, and was in
2791 conflict with the rlcompleter API. Custom completers ONLY need to
2796 conflict with the rlcompleter API. Custom completers ONLY need to
2792 take the text parameter.
2797 take the text parameter.
2793
2798
2794 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2799 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2795 work correctly in pysh. I've also moved all the logic which used
2800 work correctly in pysh. I've also moved all the logic which used
2796 to be in pysh.py here, which will prevent problems with future
2801 to be in pysh.py here, which will prevent problems with future
2797 upgrades. However, this time I must warn users to update their
2802 upgrades. However, this time I must warn users to update their
2798 pysh profile to include the line
2803 pysh profile to include the line
2799
2804
2800 import_all IPython.Extensions.InterpreterExec
2805 import_all IPython.Extensions.InterpreterExec
2801
2806
2802 because otherwise things won't work for them. They MUST also
2807 because otherwise things won't work for them. They MUST also
2803 delete pysh.py and the line
2808 delete pysh.py and the line
2804
2809
2805 execfile pysh.py
2810 execfile pysh.py
2806
2811
2807 from their ipythonrc-pysh.
2812 from their ipythonrc-pysh.
2808
2813
2809 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2814 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2810 robust in the face of objects whose dir() returns non-strings
2815 robust in the face of objects whose dir() returns non-strings
2811 (which it shouldn't, but some broken libs like ITK do). Thanks to
2816 (which it shouldn't, but some broken libs like ITK do). Thanks to
2812 a patch by John Hunter (implemented differently, though). Also
2817 a patch by John Hunter (implemented differently, though). Also
2813 minor improvements by using .extend instead of + on lists.
2818 minor improvements by using .extend instead of + on lists.
2814
2819
2815 * pysh.py:
2820 * pysh.py:
2816
2821
2817 2005-04-06 Fernando Perez <fperez@colorado.edu>
2822 2005-04-06 Fernando Perez <fperez@colorado.edu>
2818
2823
2819 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2824 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2820 by default, so that all users benefit from it. Those who don't
2825 by default, so that all users benefit from it. Those who don't
2821 want it can still turn it off.
2826 want it can still turn it off.
2822
2827
2823 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2828 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2824 config file, I'd forgotten about this, so users were getting it
2829 config file, I'd forgotten about this, so users were getting it
2825 off by default.
2830 off by default.
2826
2831
2827 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2832 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2828 consistency. Now magics can be called in multiline statements,
2833 consistency. Now magics can be called in multiline statements,
2829 and python variables can be expanded in magic calls via $var.
2834 and python variables can be expanded in magic calls via $var.
2830 This makes the magic system behave just like aliases or !system
2835 This makes the magic system behave just like aliases or !system
2831 calls.
2836 calls.
2832
2837
2833 2005-03-28 Fernando Perez <fperez@colorado.edu>
2838 2005-03-28 Fernando Perez <fperez@colorado.edu>
2834
2839
2835 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2840 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2836 expensive string additions for building command. Add support for
2841 expensive string additions for building command. Add support for
2837 trailing ';' when autocall is used.
2842 trailing ';' when autocall is used.
2838
2843
2839 2005-03-26 Fernando Perez <fperez@colorado.edu>
2844 2005-03-26 Fernando Perez <fperez@colorado.edu>
2840
2845
2841 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2846 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2842 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2847 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2843 ipython.el robust against prompts with any number of spaces
2848 ipython.el robust against prompts with any number of spaces
2844 (including 0) after the ':' character.
2849 (including 0) after the ':' character.
2845
2850
2846 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2851 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2847 continuation prompt, which misled users to think the line was
2852 continuation prompt, which misled users to think the line was
2848 already indented. Closes debian Bug#300847, reported to me by
2853 already indented. Closes debian Bug#300847, reported to me by
2849 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2854 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2850
2855
2851 2005-03-23 Fernando Perez <fperez@colorado.edu>
2856 2005-03-23 Fernando Perez <fperez@colorado.edu>
2852
2857
2853 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2858 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2854 properly aligned if they have embedded newlines.
2859 properly aligned if they have embedded newlines.
2855
2860
2856 * IPython/iplib.py (runlines): Add a public method to expose
2861 * IPython/iplib.py (runlines): Add a public method to expose
2857 IPython's code execution machinery, so that users can run strings
2862 IPython's code execution machinery, so that users can run strings
2858 as if they had been typed at the prompt interactively.
2863 as if they had been typed at the prompt interactively.
2859 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2864 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2860 methods which can call the system shell, but with python variable
2865 methods which can call the system shell, but with python variable
2861 expansion. The three such methods are: __IPYTHON__.system,
2866 expansion. The three such methods are: __IPYTHON__.system,
2862 .getoutput and .getoutputerror. These need to be documented in a
2867 .getoutput and .getoutputerror. These need to be documented in a
2863 'public API' section (to be written) of the manual.
2868 'public API' section (to be written) of the manual.
2864
2869
2865 2005-03-20 Fernando Perez <fperez@colorado.edu>
2870 2005-03-20 Fernando Perez <fperez@colorado.edu>
2866
2871
2867 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2872 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2868 for custom exception handling. This is quite powerful, and it
2873 for custom exception handling. This is quite powerful, and it
2869 allows for user-installable exception handlers which can trap
2874 allows for user-installable exception handlers which can trap
2870 custom exceptions at runtime and treat them separately from
2875 custom exceptions at runtime and treat them separately from
2871 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2876 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2872 Mantegazza <mantegazza-AT-ill.fr>.
2877 Mantegazza <mantegazza-AT-ill.fr>.
2873 (InteractiveShell.set_custom_completer): public API function to
2878 (InteractiveShell.set_custom_completer): public API function to
2874 add new completers at runtime.
2879 add new completers at runtime.
2875
2880
2876 2005-03-19 Fernando Perez <fperez@colorado.edu>
2881 2005-03-19 Fernando Perez <fperez@colorado.edu>
2877
2882
2878 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2883 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2879 allow objects which provide their docstrings via non-standard
2884 allow objects which provide their docstrings via non-standard
2880 mechanisms (like Pyro proxies) to still be inspected by ipython's
2885 mechanisms (like Pyro proxies) to still be inspected by ipython's
2881 ? system.
2886 ? system.
2882
2887
2883 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2888 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2884 automatic capture system. I tried quite hard to make it work
2889 automatic capture system. I tried quite hard to make it work
2885 reliably, and simply failed. I tried many combinations with the
2890 reliably, and simply failed. I tried many combinations with the
2886 subprocess module, but eventually nothing worked in all needed
2891 subprocess module, but eventually nothing worked in all needed
2887 cases (not blocking stdin for the child, duplicating stdout
2892 cases (not blocking stdin for the child, duplicating stdout
2888 without blocking, etc). The new %sc/%sx still do capture to these
2893 without blocking, etc). The new %sc/%sx still do capture to these
2889 magical list/string objects which make shell use much more
2894 magical list/string objects which make shell use much more
2890 conveninent, so not all is lost.
2895 conveninent, so not all is lost.
2891
2896
2892 XXX - FIX MANUAL for the change above!
2897 XXX - FIX MANUAL for the change above!
2893
2898
2894 (runsource): I copied code.py's runsource() into ipython to modify
2899 (runsource): I copied code.py's runsource() into ipython to modify
2895 it a bit. Now the code object and source to be executed are
2900 it a bit. Now the code object and source to be executed are
2896 stored in ipython. This makes this info accessible to third-party
2901 stored in ipython. This makes this info accessible to third-party
2897 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2902 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2898 Mantegazza <mantegazza-AT-ill.fr>.
2903 Mantegazza <mantegazza-AT-ill.fr>.
2899
2904
2900 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2905 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2901 history-search via readline (like C-p/C-n). I'd wanted this for a
2906 history-search via readline (like C-p/C-n). I'd wanted this for a
2902 long time, but only recently found out how to do it. For users
2907 long time, but only recently found out how to do it. For users
2903 who already have their ipythonrc files made and want this, just
2908 who already have their ipythonrc files made and want this, just
2904 add:
2909 add:
2905
2910
2906 readline_parse_and_bind "\e[A": history-search-backward
2911 readline_parse_and_bind "\e[A": history-search-backward
2907 readline_parse_and_bind "\e[B": history-search-forward
2912 readline_parse_and_bind "\e[B": history-search-forward
2908
2913
2909 2005-03-18 Fernando Perez <fperez@colorado.edu>
2914 2005-03-18 Fernando Perez <fperez@colorado.edu>
2910
2915
2911 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2916 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2912 LSString and SList classes which allow transparent conversions
2917 LSString and SList classes which allow transparent conversions
2913 between list mode and whitespace-separated string.
2918 between list mode and whitespace-separated string.
2914 (magic_r): Fix recursion problem in %r.
2919 (magic_r): Fix recursion problem in %r.
2915
2920
2916 * IPython/genutils.py (LSString): New class to be used for
2921 * IPython/genutils.py (LSString): New class to be used for
2917 automatic storage of the results of all alias/system calls in _o
2922 automatic storage of the results of all alias/system calls in _o
2918 and _e (stdout/err). These provide a .l/.list attribute which
2923 and _e (stdout/err). These provide a .l/.list attribute which
2919 does automatic splitting on newlines. This means that for most
2924 does automatic splitting on newlines. This means that for most
2920 uses, you'll never need to do capturing of output with %sc/%sx
2925 uses, you'll never need to do capturing of output with %sc/%sx
2921 anymore, since ipython keeps this always done for you. Note that
2926 anymore, since ipython keeps this always done for you. Note that
2922 only the LAST results are stored, the _o/e variables are
2927 only the LAST results are stored, the _o/e variables are
2923 overwritten on each call. If you need to save their contents
2928 overwritten on each call. If you need to save their contents
2924 further, simply bind them to any other name.
2929 further, simply bind them to any other name.
2925
2930
2926 2005-03-17 Fernando Perez <fperez@colorado.edu>
2931 2005-03-17 Fernando Perez <fperez@colorado.edu>
2927
2932
2928 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2933 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2929 prompt namespace handling.
2934 prompt namespace handling.
2930
2935
2931 2005-03-16 Fernando Perez <fperez@colorado.edu>
2936 2005-03-16 Fernando Perez <fperez@colorado.edu>
2932
2937
2933 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2938 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2934 classic prompts to be '>>> ' (final space was missing, and it
2939 classic prompts to be '>>> ' (final space was missing, and it
2935 trips the emacs python mode).
2940 trips the emacs python mode).
2936 (BasePrompt.__str__): Added safe support for dynamic prompt
2941 (BasePrompt.__str__): Added safe support for dynamic prompt
2937 strings. Now you can set your prompt string to be '$x', and the
2942 strings. Now you can set your prompt string to be '$x', and the
2938 value of x will be printed from your interactive namespace. The
2943 value of x will be printed from your interactive namespace. The
2939 interpolation syntax includes the full Itpl support, so
2944 interpolation syntax includes the full Itpl support, so
2940 ${foo()+x+bar()} is a valid prompt string now, and the function
2945 ${foo()+x+bar()} is a valid prompt string now, and the function
2941 calls will be made at runtime.
2946 calls will be made at runtime.
2942
2947
2943 2005-03-15 Fernando Perez <fperez@colorado.edu>
2948 2005-03-15 Fernando Perez <fperez@colorado.edu>
2944
2949
2945 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2950 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2946 avoid name clashes in pylab. %hist still works, it just forwards
2951 avoid name clashes in pylab. %hist still works, it just forwards
2947 the call to %history.
2952 the call to %history.
2948
2953
2949 2005-03-02 *** Released version 0.6.12
2954 2005-03-02 *** Released version 0.6.12
2950
2955
2951 2005-03-02 Fernando Perez <fperez@colorado.edu>
2956 2005-03-02 Fernando Perez <fperez@colorado.edu>
2952
2957
2953 * IPython/iplib.py (handle_magic): log magic calls properly as
2958 * IPython/iplib.py (handle_magic): log magic calls properly as
2954 ipmagic() function calls.
2959 ipmagic() function calls.
2955
2960
2956 * IPython/Magic.py (magic_time): Improved %time to support
2961 * IPython/Magic.py (magic_time): Improved %time to support
2957 statements and provide wall-clock as well as CPU time.
2962 statements and provide wall-clock as well as CPU time.
2958
2963
2959 2005-02-27 Fernando Perez <fperez@colorado.edu>
2964 2005-02-27 Fernando Perez <fperez@colorado.edu>
2960
2965
2961 * IPython/hooks.py: New hooks module, to expose user-modifiable
2966 * IPython/hooks.py: New hooks module, to expose user-modifiable
2962 IPython functionality in a clean manner. For now only the editor
2967 IPython functionality in a clean manner. For now only the editor
2963 hook is actually written, and other thigns which I intend to turn
2968 hook is actually written, and other thigns which I intend to turn
2964 into proper hooks aren't yet there. The display and prefilter
2969 into proper hooks aren't yet there. The display and prefilter
2965 stuff, for example, should be hooks. But at least now the
2970 stuff, for example, should be hooks. But at least now the
2966 framework is in place, and the rest can be moved here with more
2971 framework is in place, and the rest can be moved here with more
2967 time later. IPython had had a .hooks variable for a long time for
2972 time later. IPython had had a .hooks variable for a long time for
2968 this purpose, but I'd never actually used it for anything.
2973 this purpose, but I'd never actually used it for anything.
2969
2974
2970 2005-02-26 Fernando Perez <fperez@colorado.edu>
2975 2005-02-26 Fernando Perez <fperez@colorado.edu>
2971
2976
2972 * IPython/ipmaker.py (make_IPython): make the default ipython
2977 * IPython/ipmaker.py (make_IPython): make the default ipython
2973 directory be called _ipython under win32, to follow more the
2978 directory be called _ipython under win32, to follow more the
2974 naming peculiarities of that platform (where buggy software like
2979 naming peculiarities of that platform (where buggy software like
2975 Visual Sourcesafe breaks with .named directories). Reported by
2980 Visual Sourcesafe breaks with .named directories). Reported by
2976 Ville Vainio.
2981 Ville Vainio.
2977
2982
2978 2005-02-23 Fernando Perez <fperez@colorado.edu>
2983 2005-02-23 Fernando Perez <fperez@colorado.edu>
2979
2984
2980 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2985 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2981 auto_aliases for win32 which were causing problems. Users can
2986 auto_aliases for win32 which were causing problems. Users can
2982 define the ones they personally like.
2987 define the ones they personally like.
2983
2988
2984 2005-02-21 Fernando Perez <fperez@colorado.edu>
2989 2005-02-21 Fernando Perez <fperez@colorado.edu>
2985
2990
2986 * IPython/Magic.py (magic_time): new magic to time execution of
2991 * IPython/Magic.py (magic_time): new magic to time execution of
2987 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2992 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2988
2993
2989 2005-02-19 Fernando Perez <fperez@colorado.edu>
2994 2005-02-19 Fernando Perez <fperez@colorado.edu>
2990
2995
2991 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2996 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2992 into keys (for prompts, for example).
2997 into keys (for prompts, for example).
2993
2998
2994 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2999 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2995 prompts in case users want them. This introduces a small behavior
3000 prompts in case users want them. This introduces a small behavior
2996 change: ipython does not automatically add a space to all prompts
3001 change: ipython does not automatically add a space to all prompts
2997 anymore. To get the old prompts with a space, users should add it
3002 anymore. To get the old prompts with a space, users should add it
2998 manually to their ipythonrc file, so for example prompt_in1 should
3003 manually to their ipythonrc file, so for example prompt_in1 should
2999 now read 'In [\#]: ' instead of 'In [\#]:'.
3004 now read 'In [\#]: ' instead of 'In [\#]:'.
3000 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3005 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3001 file) to control left-padding of secondary prompts.
3006 file) to control left-padding of secondary prompts.
3002
3007
3003 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3008 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3004 the profiler can't be imported. Fix for Debian, which removed
3009 the profiler can't be imported. Fix for Debian, which removed
3005 profile.py because of License issues. I applied a slightly
3010 profile.py because of License issues. I applied a slightly
3006 modified version of the original Debian patch at
3011 modified version of the original Debian patch at
3007 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3012 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3008
3013
3009 2005-02-17 Fernando Perez <fperez@colorado.edu>
3014 2005-02-17 Fernando Perez <fperez@colorado.edu>
3010
3015
3011 * IPython/genutils.py (native_line_ends): Fix bug which would
3016 * IPython/genutils.py (native_line_ends): Fix bug which would
3012 cause improper line-ends under win32 b/c I was not opening files
3017 cause improper line-ends under win32 b/c I was not opening files
3013 in binary mode. Bug report and fix thanks to Ville.
3018 in binary mode. Bug report and fix thanks to Ville.
3014
3019
3015 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3020 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3016 trying to catch spurious foo[1] autocalls. My fix actually broke
3021 trying to catch spurious foo[1] autocalls. My fix actually broke
3017 ',/' autoquote/call with explicit escape (bad regexp).
3022 ',/' autoquote/call with explicit escape (bad regexp).
3018
3023
3019 2005-02-15 *** Released version 0.6.11
3024 2005-02-15 *** Released version 0.6.11
3020
3025
3021 2005-02-14 Fernando Perez <fperez@colorado.edu>
3026 2005-02-14 Fernando Perez <fperez@colorado.edu>
3022
3027
3023 * IPython/background_jobs.py: New background job management
3028 * IPython/background_jobs.py: New background job management
3024 subsystem. This is implemented via a new set of classes, and
3029 subsystem. This is implemented via a new set of classes, and
3025 IPython now provides a builtin 'jobs' object for background job
3030 IPython now provides a builtin 'jobs' object for background job
3026 execution. A convenience %bg magic serves as a lightweight
3031 execution. A convenience %bg magic serves as a lightweight
3027 frontend for starting the more common type of calls. This was
3032 frontend for starting the more common type of calls. This was
3028 inspired by discussions with B. Granger and the BackgroundCommand
3033 inspired by discussions with B. Granger and the BackgroundCommand
3029 class described in the book Python Scripting for Computational
3034 class described in the book Python Scripting for Computational
3030 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3035 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3031 (although ultimately no code from this text was used, as IPython's
3036 (although ultimately no code from this text was used, as IPython's
3032 system is a separate implementation).
3037 system is a separate implementation).
3033
3038
3034 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3039 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3035 to control the completion of single/double underscore names
3040 to control the completion of single/double underscore names
3036 separately. As documented in the example ipytonrc file, the
3041 separately. As documented in the example ipytonrc file, the
3037 readline_omit__names variable can now be set to 2, to omit even
3042 readline_omit__names variable can now be set to 2, to omit even
3038 single underscore names. Thanks to a patch by Brian Wong
3043 single underscore names. Thanks to a patch by Brian Wong
3039 <BrianWong-AT-AirgoNetworks.Com>.
3044 <BrianWong-AT-AirgoNetworks.Com>.
3040 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3045 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3041 be autocalled as foo([1]) if foo were callable. A problem for
3046 be autocalled as foo([1]) if foo were callable. A problem for
3042 things which are both callable and implement __getitem__.
3047 things which are both callable and implement __getitem__.
3043 (init_readline): Fix autoindentation for win32. Thanks to a patch
3048 (init_readline): Fix autoindentation for win32. Thanks to a patch
3044 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3049 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3045
3050
3046 2005-02-12 Fernando Perez <fperez@colorado.edu>
3051 2005-02-12 Fernando Perez <fperez@colorado.edu>
3047
3052
3048 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3053 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3049 which I had written long ago to sort out user error messages which
3054 which I had written long ago to sort out user error messages which
3050 may occur during startup. This seemed like a good idea initially,
3055 may occur during startup. This seemed like a good idea initially,
3051 but it has proven a disaster in retrospect. I don't want to
3056 but it has proven a disaster in retrospect. I don't want to
3052 change much code for now, so my fix is to set the internal 'debug'
3057 change much code for now, so my fix is to set the internal 'debug'
3053 flag to true everywhere, whose only job was precisely to control
3058 flag to true everywhere, whose only job was precisely to control
3054 this subsystem. This closes issue 28 (as well as avoiding all
3059 this subsystem. This closes issue 28 (as well as avoiding all
3055 sorts of strange hangups which occur from time to time).
3060 sorts of strange hangups which occur from time to time).
3056
3061
3057 2005-02-07 Fernando Perez <fperez@colorado.edu>
3062 2005-02-07 Fernando Perez <fperez@colorado.edu>
3058
3063
3059 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3064 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3060 previous call produced a syntax error.
3065 previous call produced a syntax error.
3061
3066
3062 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3067 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3063 classes without constructor.
3068 classes without constructor.
3064
3069
3065 2005-02-06 Fernando Perez <fperez@colorado.edu>
3070 2005-02-06 Fernando Perez <fperez@colorado.edu>
3066
3071
3067 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3072 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3068 completions with the results of each matcher, so we return results
3073 completions with the results of each matcher, so we return results
3069 to the user from all namespaces. This breaks with ipython
3074 to the user from all namespaces. This breaks with ipython
3070 tradition, but I think it's a nicer behavior. Now you get all
3075 tradition, but I think it's a nicer behavior. Now you get all
3071 possible completions listed, from all possible namespaces (python,
3076 possible completions listed, from all possible namespaces (python,
3072 filesystem, magics...) After a request by John Hunter
3077 filesystem, magics...) After a request by John Hunter
3073 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3078 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3074
3079
3075 2005-02-05 Fernando Perez <fperez@colorado.edu>
3080 2005-02-05 Fernando Perez <fperez@colorado.edu>
3076
3081
3077 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3082 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3078 the call had quote characters in it (the quotes were stripped).
3083 the call had quote characters in it (the quotes were stripped).
3079
3084
3080 2005-01-31 Fernando Perez <fperez@colorado.edu>
3085 2005-01-31 Fernando Perez <fperez@colorado.edu>
3081
3086
3082 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3087 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3083 Itpl.itpl() to make the code more robust against psyco
3088 Itpl.itpl() to make the code more robust against psyco
3084 optimizations.
3089 optimizations.
3085
3090
3086 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3091 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3087 of causing an exception. Quicker, cleaner.
3092 of causing an exception. Quicker, cleaner.
3088
3093
3089 2005-01-28 Fernando Perez <fperez@colorado.edu>
3094 2005-01-28 Fernando Perez <fperez@colorado.edu>
3090
3095
3091 * scripts/ipython_win_post_install.py (install): hardcode
3096 * scripts/ipython_win_post_install.py (install): hardcode
3092 sys.prefix+'python.exe' as the executable path. It turns out that
3097 sys.prefix+'python.exe' as the executable path. It turns out that
3093 during the post-installation run, sys.executable resolves to the
3098 during the post-installation run, sys.executable resolves to the
3094 name of the binary installer! I should report this as a distutils
3099 name of the binary installer! I should report this as a distutils
3095 bug, I think. I updated the .10 release with this tiny fix, to
3100 bug, I think. I updated the .10 release with this tiny fix, to
3096 avoid annoying the lists further.
3101 avoid annoying the lists further.
3097
3102
3098 2005-01-27 *** Released version 0.6.10
3103 2005-01-27 *** Released version 0.6.10
3099
3104
3100 2005-01-27 Fernando Perez <fperez@colorado.edu>
3105 2005-01-27 Fernando Perez <fperez@colorado.edu>
3101
3106
3102 * IPython/numutils.py (norm): Added 'inf' as optional name for
3107 * IPython/numutils.py (norm): Added 'inf' as optional name for
3103 L-infinity norm, included references to mathworld.com for vector
3108 L-infinity norm, included references to mathworld.com for vector
3104 norm definitions.
3109 norm definitions.
3105 (amin/amax): added amin/amax for array min/max. Similar to what
3110 (amin/amax): added amin/amax for array min/max. Similar to what
3106 pylab ships with after the recent reorganization of names.
3111 pylab ships with after the recent reorganization of names.
3107 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3112 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3108
3113
3109 * ipython.el: committed Alex's recent fixes and improvements.
3114 * ipython.el: committed Alex's recent fixes and improvements.
3110 Tested with python-mode from CVS, and it looks excellent. Since
3115 Tested with python-mode from CVS, and it looks excellent. Since
3111 python-mode hasn't released anything in a while, I'm temporarily
3116 python-mode hasn't released anything in a while, I'm temporarily
3112 putting a copy of today's CVS (v 4.70) of python-mode in:
3117 putting a copy of today's CVS (v 4.70) of python-mode in:
3113 http://ipython.scipy.org/tmp/python-mode.el
3118 http://ipython.scipy.org/tmp/python-mode.el
3114
3119
3115 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3120 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3116 sys.executable for the executable name, instead of assuming it's
3121 sys.executable for the executable name, instead of assuming it's
3117 called 'python.exe' (the post-installer would have produced broken
3122 called 'python.exe' (the post-installer would have produced broken
3118 setups on systems with a differently named python binary).
3123 setups on systems with a differently named python binary).
3119
3124
3120 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3125 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3121 references to os.linesep, to make the code more
3126 references to os.linesep, to make the code more
3122 platform-independent. This is also part of the win32 coloring
3127 platform-independent. This is also part of the win32 coloring
3123 fixes.
3128 fixes.
3124
3129
3125 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3130 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3126 lines, which actually cause coloring bugs because the length of
3131 lines, which actually cause coloring bugs because the length of
3127 the line is very difficult to correctly compute with embedded
3132 the line is very difficult to correctly compute with embedded
3128 escapes. This was the source of all the coloring problems under
3133 escapes. This was the source of all the coloring problems under
3129 Win32. I think that _finally_, Win32 users have a properly
3134 Win32. I think that _finally_, Win32 users have a properly
3130 working ipython in all respects. This would never have happened
3135 working ipython in all respects. This would never have happened
3131 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3136 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3132
3137
3133 2005-01-26 *** Released version 0.6.9
3138 2005-01-26 *** Released version 0.6.9
3134
3139
3135 2005-01-25 Fernando Perez <fperez@colorado.edu>
3140 2005-01-25 Fernando Perez <fperez@colorado.edu>
3136
3141
3137 * setup.py: finally, we have a true Windows installer, thanks to
3142 * setup.py: finally, we have a true Windows installer, thanks to
3138 the excellent work of Viktor Ransmayr
3143 the excellent work of Viktor Ransmayr
3139 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3144 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3140 Windows users. The setup routine is quite a bit cleaner thanks to
3145 Windows users. The setup routine is quite a bit cleaner thanks to
3141 this, and the post-install script uses the proper functions to
3146 this, and the post-install script uses the proper functions to
3142 allow a clean de-installation using the standard Windows Control
3147 allow a clean de-installation using the standard Windows Control
3143 Panel.
3148 Panel.
3144
3149
3145 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3150 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3146 environment variable under all OSes (including win32) if
3151 environment variable under all OSes (including win32) if
3147 available. This will give consistency to win32 users who have set
3152 available. This will give consistency to win32 users who have set
3148 this variable for any reason. If os.environ['HOME'] fails, the
3153 this variable for any reason. If os.environ['HOME'] fails, the
3149 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3154 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3150
3155
3151 2005-01-24 Fernando Perez <fperez@colorado.edu>
3156 2005-01-24 Fernando Perez <fperez@colorado.edu>
3152
3157
3153 * IPython/numutils.py (empty_like): add empty_like(), similar to
3158 * IPython/numutils.py (empty_like): add empty_like(), similar to
3154 zeros_like() but taking advantage of the new empty() Numeric routine.
3159 zeros_like() but taking advantage of the new empty() Numeric routine.
3155
3160
3156 2005-01-23 *** Released version 0.6.8
3161 2005-01-23 *** Released version 0.6.8
3157
3162
3158 2005-01-22 Fernando Perez <fperez@colorado.edu>
3163 2005-01-22 Fernando Perez <fperez@colorado.edu>
3159
3164
3160 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3165 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3161 automatic show() calls. After discussing things with JDH, it
3166 automatic show() calls. After discussing things with JDH, it
3162 turns out there are too many corner cases where this can go wrong.
3167 turns out there are too many corner cases where this can go wrong.
3163 It's best not to try to be 'too smart', and simply have ipython
3168 It's best not to try to be 'too smart', and simply have ipython
3164 reproduce as much as possible the default behavior of a normal
3169 reproduce as much as possible the default behavior of a normal
3165 python shell.
3170 python shell.
3166
3171
3167 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3172 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3168 line-splitting regexp and _prefilter() to avoid calling getattr()
3173 line-splitting regexp and _prefilter() to avoid calling getattr()
3169 on assignments. This closes
3174 on assignments. This closes
3170 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3175 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3171 readline uses getattr(), so a simple <TAB> keypress is still
3176 readline uses getattr(), so a simple <TAB> keypress is still
3172 enough to trigger getattr() calls on an object.
3177 enough to trigger getattr() calls on an object.
3173
3178
3174 2005-01-21 Fernando Perez <fperez@colorado.edu>
3179 2005-01-21 Fernando Perez <fperez@colorado.edu>
3175
3180
3176 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3181 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3177 docstring under pylab so it doesn't mask the original.
3182 docstring under pylab so it doesn't mask the original.
3178
3183
3179 2005-01-21 *** Released version 0.6.7
3184 2005-01-21 *** Released version 0.6.7
3180
3185
3181 2005-01-21 Fernando Perez <fperez@colorado.edu>
3186 2005-01-21 Fernando Perez <fperez@colorado.edu>
3182
3187
3183 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3188 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3184 signal handling for win32 users in multithreaded mode.
3189 signal handling for win32 users in multithreaded mode.
3185
3190
3186 2005-01-17 Fernando Perez <fperez@colorado.edu>
3191 2005-01-17 Fernando Perez <fperez@colorado.edu>
3187
3192
3188 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3193 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3189 instances with no __init__. After a crash report by Norbert Nemec
3194 instances with no __init__. After a crash report by Norbert Nemec
3190 <Norbert-AT-nemec-online.de>.
3195 <Norbert-AT-nemec-online.de>.
3191
3196
3192 2005-01-14 Fernando Perez <fperez@colorado.edu>
3197 2005-01-14 Fernando Perez <fperez@colorado.edu>
3193
3198
3194 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3199 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3195 names for verbose exceptions, when multiple dotted names and the
3200 names for verbose exceptions, when multiple dotted names and the
3196 'parent' object were present on the same line.
3201 'parent' object were present on the same line.
3197
3202
3198 2005-01-11 Fernando Perez <fperez@colorado.edu>
3203 2005-01-11 Fernando Perez <fperez@colorado.edu>
3199
3204
3200 * IPython/genutils.py (flag_calls): new utility to trap and flag
3205 * IPython/genutils.py (flag_calls): new utility to trap and flag
3201 calls in functions. I need it to clean up matplotlib support.
3206 calls in functions. I need it to clean up matplotlib support.
3202 Also removed some deprecated code in genutils.
3207 Also removed some deprecated code in genutils.
3203
3208
3204 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3209 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3205 that matplotlib scripts called with %run, which don't call show()
3210 that matplotlib scripts called with %run, which don't call show()
3206 themselves, still have their plotting windows open.
3211 themselves, still have their plotting windows open.
3207
3212
3208 2005-01-05 Fernando Perez <fperez@colorado.edu>
3213 2005-01-05 Fernando Perez <fperez@colorado.edu>
3209
3214
3210 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3215 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3211 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3216 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3212
3217
3213 2004-12-19 Fernando Perez <fperez@colorado.edu>
3218 2004-12-19 Fernando Perez <fperez@colorado.edu>
3214
3219
3215 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3220 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3216 parent_runcode, which was an eyesore. The same result can be
3221 parent_runcode, which was an eyesore. The same result can be
3217 obtained with Python's regular superclass mechanisms.
3222 obtained with Python's regular superclass mechanisms.
3218
3223
3219 2004-12-17 Fernando Perez <fperez@colorado.edu>
3224 2004-12-17 Fernando Perez <fperez@colorado.edu>
3220
3225
3221 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3226 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3222 reported by Prabhu.
3227 reported by Prabhu.
3223 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3228 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3224 sys.stderr) instead of explicitly calling sys.stderr. This helps
3229 sys.stderr) instead of explicitly calling sys.stderr. This helps
3225 maintain our I/O abstractions clean, for future GUI embeddings.
3230 maintain our I/O abstractions clean, for future GUI embeddings.
3226
3231
3227 * IPython/genutils.py (info): added new utility for sys.stderr
3232 * IPython/genutils.py (info): added new utility for sys.stderr
3228 unified info message handling (thin wrapper around warn()).
3233 unified info message handling (thin wrapper around warn()).
3229
3234
3230 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3235 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3231 composite (dotted) names on verbose exceptions.
3236 composite (dotted) names on verbose exceptions.
3232 (VerboseTB.nullrepr): harden against another kind of errors which
3237 (VerboseTB.nullrepr): harden against another kind of errors which
3233 Python's inspect module can trigger, and which were crashing
3238 Python's inspect module can trigger, and which were crashing
3234 IPython. Thanks to a report by Marco Lombardi
3239 IPython. Thanks to a report by Marco Lombardi
3235 <mlombard-AT-ma010192.hq.eso.org>.
3240 <mlombard-AT-ma010192.hq.eso.org>.
3236
3241
3237 2004-12-13 *** Released version 0.6.6
3242 2004-12-13 *** Released version 0.6.6
3238
3243
3239 2004-12-12 Fernando Perez <fperez@colorado.edu>
3244 2004-12-12 Fernando Perez <fperez@colorado.edu>
3240
3245
3241 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3246 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3242 generated by pygtk upon initialization if it was built without
3247 generated by pygtk upon initialization if it was built without
3243 threads (for matplotlib users). After a crash reported by
3248 threads (for matplotlib users). After a crash reported by
3244 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3249 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3245
3250
3246 * IPython/ipmaker.py (make_IPython): fix small bug in the
3251 * IPython/ipmaker.py (make_IPython): fix small bug in the
3247 import_some parameter for multiple imports.
3252 import_some parameter for multiple imports.
3248
3253
3249 * IPython/iplib.py (ipmagic): simplified the interface of
3254 * IPython/iplib.py (ipmagic): simplified the interface of
3250 ipmagic() to take a single string argument, just as it would be
3255 ipmagic() to take a single string argument, just as it would be
3251 typed at the IPython cmd line.
3256 typed at the IPython cmd line.
3252 (ipalias): Added new ipalias() with an interface identical to
3257 (ipalias): Added new ipalias() with an interface identical to
3253 ipmagic(). This completes exposing a pure python interface to the
3258 ipmagic(). This completes exposing a pure python interface to the
3254 alias and magic system, which can be used in loops or more complex
3259 alias and magic system, which can be used in loops or more complex
3255 code where IPython's automatic line mangling is not active.
3260 code where IPython's automatic line mangling is not active.
3256
3261
3257 * IPython/genutils.py (timing): changed interface of timing to
3262 * IPython/genutils.py (timing): changed interface of timing to
3258 simply run code once, which is the most common case. timings()
3263 simply run code once, which is the most common case. timings()
3259 remains unchanged, for the cases where you want multiple runs.
3264 remains unchanged, for the cases where you want multiple runs.
3260
3265
3261 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3266 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3262 bug where Python2.2 crashes with exec'ing code which does not end
3267 bug where Python2.2 crashes with exec'ing code which does not end
3263 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3268 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3264 before.
3269 before.
3265
3270
3266 2004-12-10 Fernando Perez <fperez@colorado.edu>
3271 2004-12-10 Fernando Perez <fperez@colorado.edu>
3267
3272
3268 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3273 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3269 -t to -T, to accomodate the new -t flag in %run (the %run and
3274 -t to -T, to accomodate the new -t flag in %run (the %run and
3270 %prun options are kind of intermixed, and it's not easy to change
3275 %prun options are kind of intermixed, and it's not easy to change
3271 this with the limitations of python's getopt).
3276 this with the limitations of python's getopt).
3272
3277
3273 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3278 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3274 the execution of scripts. It's not as fine-tuned as timeit.py,
3279 the execution of scripts. It's not as fine-tuned as timeit.py,
3275 but it works from inside ipython (and under 2.2, which lacks
3280 but it works from inside ipython (and under 2.2, which lacks
3276 timeit.py). Optionally a number of runs > 1 can be given for
3281 timeit.py). Optionally a number of runs > 1 can be given for
3277 timing very short-running code.
3282 timing very short-running code.
3278
3283
3279 * IPython/genutils.py (uniq_stable): new routine which returns a
3284 * IPython/genutils.py (uniq_stable): new routine which returns a
3280 list of unique elements in any iterable, but in stable order of
3285 list of unique elements in any iterable, but in stable order of
3281 appearance. I needed this for the ultraTB fixes, and it's a handy
3286 appearance. I needed this for the ultraTB fixes, and it's a handy
3282 utility.
3287 utility.
3283
3288
3284 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3289 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3285 dotted names in Verbose exceptions. This had been broken since
3290 dotted names in Verbose exceptions. This had been broken since
3286 the very start, now x.y will properly be printed in a Verbose
3291 the very start, now x.y will properly be printed in a Verbose
3287 traceback, instead of x being shown and y appearing always as an
3292 traceback, instead of x being shown and y appearing always as an
3288 'undefined global'. Getting this to work was a bit tricky,
3293 'undefined global'. Getting this to work was a bit tricky,
3289 because by default python tokenizers are stateless. Saved by
3294 because by default python tokenizers are stateless. Saved by
3290 python's ability to easily add a bit of state to an arbitrary
3295 python's ability to easily add a bit of state to an arbitrary
3291 function (without needing to build a full-blown callable object).
3296 function (without needing to build a full-blown callable object).
3292
3297
3293 Also big cleanup of this code, which had horrendous runtime
3298 Also big cleanup of this code, which had horrendous runtime
3294 lookups of zillions of attributes for colorization. Moved all
3299 lookups of zillions of attributes for colorization. Moved all
3295 this code into a few templates, which make it cleaner and quicker.
3300 this code into a few templates, which make it cleaner and quicker.
3296
3301
3297 Printout quality was also improved for Verbose exceptions: one
3302 Printout quality was also improved for Verbose exceptions: one
3298 variable per line, and memory addresses are printed (this can be
3303 variable per line, and memory addresses are printed (this can be
3299 quite handy in nasty debugging situations, which is what Verbose
3304 quite handy in nasty debugging situations, which is what Verbose
3300 is for).
3305 is for).
3301
3306
3302 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3307 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3303 the command line as scripts to be loaded by embedded instances.
3308 the command line as scripts to be loaded by embedded instances.
3304 Doing so has the potential for an infinite recursion if there are
3309 Doing so has the potential for an infinite recursion if there are
3305 exceptions thrown in the process. This fixes a strange crash
3310 exceptions thrown in the process. This fixes a strange crash
3306 reported by Philippe MULLER <muller-AT-irit.fr>.
3311 reported by Philippe MULLER <muller-AT-irit.fr>.
3307
3312
3308 2004-12-09 Fernando Perez <fperez@colorado.edu>
3313 2004-12-09 Fernando Perez <fperez@colorado.edu>
3309
3314
3310 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3315 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3311 to reflect new names in matplotlib, which now expose the
3316 to reflect new names in matplotlib, which now expose the
3312 matlab-compatible interface via a pylab module instead of the
3317 matlab-compatible interface via a pylab module instead of the
3313 'matlab' name. The new code is backwards compatible, so users of
3318 'matlab' name. The new code is backwards compatible, so users of
3314 all matplotlib versions are OK. Patch by J. Hunter.
3319 all matplotlib versions are OK. Patch by J. Hunter.
3315
3320
3316 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3321 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3317 of __init__ docstrings for instances (class docstrings are already
3322 of __init__ docstrings for instances (class docstrings are already
3318 automatically printed). Instances with customized docstrings
3323 automatically printed). Instances with customized docstrings
3319 (indep. of the class) are also recognized and all 3 separate
3324 (indep. of the class) are also recognized and all 3 separate
3320 docstrings are printed (instance, class, constructor). After some
3325 docstrings are printed (instance, class, constructor). After some
3321 comments/suggestions by J. Hunter.
3326 comments/suggestions by J. Hunter.
3322
3327
3323 2004-12-05 Fernando Perez <fperez@colorado.edu>
3328 2004-12-05 Fernando Perez <fperez@colorado.edu>
3324
3329
3325 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3330 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3326 warnings when tab-completion fails and triggers an exception.
3331 warnings when tab-completion fails and triggers an exception.
3327
3332
3328 2004-12-03 Fernando Perez <fperez@colorado.edu>
3333 2004-12-03 Fernando Perez <fperez@colorado.edu>
3329
3334
3330 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3335 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3331 be triggered when using 'run -p'. An incorrect option flag was
3336 be triggered when using 'run -p'. An incorrect option flag was
3332 being set ('d' instead of 'D').
3337 being set ('d' instead of 'D').
3333 (manpage): fix missing escaped \- sign.
3338 (manpage): fix missing escaped \- sign.
3334
3339
3335 2004-11-30 *** Released version 0.6.5
3340 2004-11-30 *** Released version 0.6.5
3336
3341
3337 2004-11-30 Fernando Perez <fperez@colorado.edu>
3342 2004-11-30 Fernando Perez <fperez@colorado.edu>
3338
3343
3339 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3344 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3340 setting with -d option.
3345 setting with -d option.
3341
3346
3342 * setup.py (docfiles): Fix problem where the doc glob I was using
3347 * setup.py (docfiles): Fix problem where the doc glob I was using
3343 was COMPLETELY BROKEN. It was giving the right files by pure
3348 was COMPLETELY BROKEN. It was giving the right files by pure
3344 accident, but failed once I tried to include ipython.el. Note:
3349 accident, but failed once I tried to include ipython.el. Note:
3345 glob() does NOT allow you to do exclusion on multiple endings!
3350 glob() does NOT allow you to do exclusion on multiple endings!
3346
3351
3347 2004-11-29 Fernando Perez <fperez@colorado.edu>
3352 2004-11-29 Fernando Perez <fperez@colorado.edu>
3348
3353
3349 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3354 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3350 the manpage as the source. Better formatting & consistency.
3355 the manpage as the source. Better formatting & consistency.
3351
3356
3352 * IPython/Magic.py (magic_run): Added new -d option, to run
3357 * IPython/Magic.py (magic_run): Added new -d option, to run
3353 scripts under the control of the python pdb debugger. Note that
3358 scripts under the control of the python pdb debugger. Note that
3354 this required changing the %prun option -d to -D, to avoid a clash
3359 this required changing the %prun option -d to -D, to avoid a clash
3355 (since %run must pass options to %prun, and getopt is too dumb to
3360 (since %run must pass options to %prun, and getopt is too dumb to
3356 handle options with string values with embedded spaces). Thanks
3361 handle options with string values with embedded spaces). Thanks
3357 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3362 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3358 (magic_who_ls): added type matching to %who and %whos, so that one
3363 (magic_who_ls): added type matching to %who and %whos, so that one
3359 can filter their output to only include variables of certain
3364 can filter their output to only include variables of certain
3360 types. Another suggestion by Matthew.
3365 types. Another suggestion by Matthew.
3361 (magic_whos): Added memory summaries in kb and Mb for arrays.
3366 (magic_whos): Added memory summaries in kb and Mb for arrays.
3362 (magic_who): Improve formatting (break lines every 9 vars).
3367 (magic_who): Improve formatting (break lines every 9 vars).
3363
3368
3364 2004-11-28 Fernando Perez <fperez@colorado.edu>
3369 2004-11-28 Fernando Perez <fperez@colorado.edu>
3365
3370
3366 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3371 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3367 cache when empty lines were present.
3372 cache when empty lines were present.
3368
3373
3369 2004-11-24 Fernando Perez <fperez@colorado.edu>
3374 2004-11-24 Fernando Perez <fperez@colorado.edu>
3370
3375
3371 * IPython/usage.py (__doc__): document the re-activated threading
3376 * IPython/usage.py (__doc__): document the re-activated threading
3372 options for WX and GTK.
3377 options for WX and GTK.
3373
3378
3374 2004-11-23 Fernando Perez <fperez@colorado.edu>
3379 2004-11-23 Fernando Perez <fperez@colorado.edu>
3375
3380
3376 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3381 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3377 the -wthread and -gthread options, along with a new -tk one to try
3382 the -wthread and -gthread options, along with a new -tk one to try
3378 and coordinate Tk threading with wx/gtk. The tk support is very
3383 and coordinate Tk threading with wx/gtk. The tk support is very
3379 platform dependent, since it seems to require Tcl and Tk to be
3384 platform dependent, since it seems to require Tcl and Tk to be
3380 built with threads (Fedora1/2 appears NOT to have it, but in
3385 built with threads (Fedora1/2 appears NOT to have it, but in
3381 Prabhu's Debian boxes it works OK). But even with some Tk
3386 Prabhu's Debian boxes it works OK). But even with some Tk
3382 limitations, this is a great improvement.
3387 limitations, this is a great improvement.
3383
3388
3384 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3389 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3385 info in user prompts. Patch by Prabhu.
3390 info in user prompts. Patch by Prabhu.
3386
3391
3387 2004-11-18 Fernando Perez <fperez@colorado.edu>
3392 2004-11-18 Fernando Perez <fperez@colorado.edu>
3388
3393
3389 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3394 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3390 EOFErrors and bail, to avoid infinite loops if a non-terminating
3395 EOFErrors and bail, to avoid infinite loops if a non-terminating
3391 file is fed into ipython. Patch submitted in issue 19 by user,
3396 file is fed into ipython. Patch submitted in issue 19 by user,
3392 many thanks.
3397 many thanks.
3393
3398
3394 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3399 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3395 autoquote/parens in continuation prompts, which can cause lots of
3400 autoquote/parens in continuation prompts, which can cause lots of
3396 problems. Closes roundup issue 20.
3401 problems. Closes roundup issue 20.
3397
3402
3398 2004-11-17 Fernando Perez <fperez@colorado.edu>
3403 2004-11-17 Fernando Perez <fperez@colorado.edu>
3399
3404
3400 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3405 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3401 reported as debian bug #280505. I'm not sure my local changelog
3406 reported as debian bug #280505. I'm not sure my local changelog
3402 entry has the proper debian format (Jack?).
3407 entry has the proper debian format (Jack?).
3403
3408
3404 2004-11-08 *** Released version 0.6.4
3409 2004-11-08 *** Released version 0.6.4
3405
3410
3406 2004-11-08 Fernando Perez <fperez@colorado.edu>
3411 2004-11-08 Fernando Perez <fperez@colorado.edu>
3407
3412
3408 * IPython/iplib.py (init_readline): Fix exit message for Windows
3413 * IPython/iplib.py (init_readline): Fix exit message for Windows
3409 when readline is active. Thanks to a report by Eric Jones
3414 when readline is active. Thanks to a report by Eric Jones
3410 <eric-AT-enthought.com>.
3415 <eric-AT-enthought.com>.
3411
3416
3412 2004-11-07 Fernando Perez <fperez@colorado.edu>
3417 2004-11-07 Fernando Perez <fperez@colorado.edu>
3413
3418
3414 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3419 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3415 sometimes seen by win2k/cygwin users.
3420 sometimes seen by win2k/cygwin users.
3416
3421
3417 2004-11-06 Fernando Perez <fperez@colorado.edu>
3422 2004-11-06 Fernando Perez <fperez@colorado.edu>
3418
3423
3419 * IPython/iplib.py (interact): Change the handling of %Exit from
3424 * IPython/iplib.py (interact): Change the handling of %Exit from
3420 trying to propagate a SystemExit to an internal ipython flag.
3425 trying to propagate a SystemExit to an internal ipython flag.
3421 This is less elegant than using Python's exception mechanism, but
3426 This is less elegant than using Python's exception mechanism, but
3422 I can't get that to work reliably with threads, so under -pylab
3427 I can't get that to work reliably with threads, so under -pylab
3423 %Exit was hanging IPython. Cross-thread exception handling is
3428 %Exit was hanging IPython. Cross-thread exception handling is
3424 really a bitch. Thaks to a bug report by Stephen Walton
3429 really a bitch. Thaks to a bug report by Stephen Walton
3425 <stephen.walton-AT-csun.edu>.
3430 <stephen.walton-AT-csun.edu>.
3426
3431
3427 2004-11-04 Fernando Perez <fperez@colorado.edu>
3432 2004-11-04 Fernando Perez <fperez@colorado.edu>
3428
3433
3429 * IPython/iplib.py (raw_input_original): store a pointer to the
3434 * IPython/iplib.py (raw_input_original): store a pointer to the
3430 true raw_input to harden against code which can modify it
3435 true raw_input to harden against code which can modify it
3431 (wx.py.PyShell does this and would otherwise crash ipython).
3436 (wx.py.PyShell does this and would otherwise crash ipython).
3432 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3437 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3433
3438
3434 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3439 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3435 Ctrl-C problem, which does not mess up the input line.
3440 Ctrl-C problem, which does not mess up the input line.
3436
3441
3437 2004-11-03 Fernando Perez <fperez@colorado.edu>
3442 2004-11-03 Fernando Perez <fperez@colorado.edu>
3438
3443
3439 * IPython/Release.py: Changed licensing to BSD, in all files.
3444 * IPython/Release.py: Changed licensing to BSD, in all files.
3440 (name): lowercase name for tarball/RPM release.
3445 (name): lowercase name for tarball/RPM release.
3441
3446
3442 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3447 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3443 use throughout ipython.
3448 use throughout ipython.
3444
3449
3445 * IPython/Magic.py (Magic._ofind): Switch to using the new
3450 * IPython/Magic.py (Magic._ofind): Switch to using the new
3446 OInspect.getdoc() function.
3451 OInspect.getdoc() function.
3447
3452
3448 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3453 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3449 of the line currently being canceled via Ctrl-C. It's extremely
3454 of the line currently being canceled via Ctrl-C. It's extremely
3450 ugly, but I don't know how to do it better (the problem is one of
3455 ugly, but I don't know how to do it better (the problem is one of
3451 handling cross-thread exceptions).
3456 handling cross-thread exceptions).
3452
3457
3453 2004-10-28 Fernando Perez <fperez@colorado.edu>
3458 2004-10-28 Fernando Perez <fperez@colorado.edu>
3454
3459
3455 * IPython/Shell.py (signal_handler): add signal handlers to trap
3460 * IPython/Shell.py (signal_handler): add signal handlers to trap
3456 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3461 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3457 report by Francesc Alted.
3462 report by Francesc Alted.
3458
3463
3459 2004-10-21 Fernando Perez <fperez@colorado.edu>
3464 2004-10-21 Fernando Perez <fperez@colorado.edu>
3460
3465
3461 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3466 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3462 to % for pysh syntax extensions.
3467 to % for pysh syntax extensions.
3463
3468
3464 2004-10-09 Fernando Perez <fperez@colorado.edu>
3469 2004-10-09 Fernando Perez <fperez@colorado.edu>
3465
3470
3466 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3471 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3467 arrays to print a more useful summary, without calling str(arr).
3472 arrays to print a more useful summary, without calling str(arr).
3468 This avoids the problem of extremely lengthy computations which
3473 This avoids the problem of extremely lengthy computations which
3469 occur if arr is large, and appear to the user as a system lockup
3474 occur if arr is large, and appear to the user as a system lockup
3470 with 100% cpu activity. After a suggestion by Kristian Sandberg
3475 with 100% cpu activity. After a suggestion by Kristian Sandberg
3471 <Kristian.Sandberg@colorado.edu>.
3476 <Kristian.Sandberg@colorado.edu>.
3472 (Magic.__init__): fix bug in global magic escapes not being
3477 (Magic.__init__): fix bug in global magic escapes not being
3473 correctly set.
3478 correctly set.
3474
3479
3475 2004-10-08 Fernando Perez <fperez@colorado.edu>
3480 2004-10-08 Fernando Perez <fperez@colorado.edu>
3476
3481
3477 * IPython/Magic.py (__license__): change to absolute imports of
3482 * IPython/Magic.py (__license__): change to absolute imports of
3478 ipython's own internal packages, to start adapting to the absolute
3483 ipython's own internal packages, to start adapting to the absolute
3479 import requirement of PEP-328.
3484 import requirement of PEP-328.
3480
3485
3481 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3486 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3482 files, and standardize author/license marks through the Release
3487 files, and standardize author/license marks through the Release
3483 module instead of having per/file stuff (except for files with
3488 module instead of having per/file stuff (except for files with
3484 particular licenses, like the MIT/PSF-licensed codes).
3489 particular licenses, like the MIT/PSF-licensed codes).
3485
3490
3486 * IPython/Debugger.py: remove dead code for python 2.1
3491 * IPython/Debugger.py: remove dead code for python 2.1
3487
3492
3488 2004-10-04 Fernando Perez <fperez@colorado.edu>
3493 2004-10-04 Fernando Perez <fperez@colorado.edu>
3489
3494
3490 * IPython/iplib.py (ipmagic): New function for accessing magics
3495 * IPython/iplib.py (ipmagic): New function for accessing magics
3491 via a normal python function call.
3496 via a normal python function call.
3492
3497
3493 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3498 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3494 from '@' to '%', to accomodate the new @decorator syntax of python
3499 from '@' to '%', to accomodate the new @decorator syntax of python
3495 2.4.
3500 2.4.
3496
3501
3497 2004-09-29 Fernando Perez <fperez@colorado.edu>
3502 2004-09-29 Fernando Perez <fperez@colorado.edu>
3498
3503
3499 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3504 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3500 matplotlib.use to prevent running scripts which try to switch
3505 matplotlib.use to prevent running scripts which try to switch
3501 interactive backends from within ipython. This will just crash
3506 interactive backends from within ipython. This will just crash
3502 the python interpreter, so we can't allow it (but a detailed error
3507 the python interpreter, so we can't allow it (but a detailed error
3503 is given to the user).
3508 is given to the user).
3504
3509
3505 2004-09-28 Fernando Perez <fperez@colorado.edu>
3510 2004-09-28 Fernando Perez <fperez@colorado.edu>
3506
3511
3507 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3512 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3508 matplotlib-related fixes so that using @run with non-matplotlib
3513 matplotlib-related fixes so that using @run with non-matplotlib
3509 scripts doesn't pop up spurious plot windows. This requires
3514 scripts doesn't pop up spurious plot windows. This requires
3510 matplotlib >= 0.63, where I had to make some changes as well.
3515 matplotlib >= 0.63, where I had to make some changes as well.
3511
3516
3512 * IPython/ipmaker.py (make_IPython): update version requirement to
3517 * IPython/ipmaker.py (make_IPython): update version requirement to
3513 python 2.2.
3518 python 2.2.
3514
3519
3515 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3520 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3516 banner arg for embedded customization.
3521 banner arg for embedded customization.
3517
3522
3518 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3523 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3519 explicit uses of __IP as the IPython's instance name. Now things
3524 explicit uses of __IP as the IPython's instance name. Now things
3520 are properly handled via the shell.name value. The actual code
3525 are properly handled via the shell.name value. The actual code
3521 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3526 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3522 is much better than before. I'll clean things completely when the
3527 is much better than before. I'll clean things completely when the
3523 magic stuff gets a real overhaul.
3528 magic stuff gets a real overhaul.
3524
3529
3525 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3530 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3526 minor changes to debian dir.
3531 minor changes to debian dir.
3527
3532
3528 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3533 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3529 pointer to the shell itself in the interactive namespace even when
3534 pointer to the shell itself in the interactive namespace even when
3530 a user-supplied dict is provided. This is needed for embedding
3535 a user-supplied dict is provided. This is needed for embedding
3531 purposes (found by tests with Michel Sanner).
3536 purposes (found by tests with Michel Sanner).
3532
3537
3533 2004-09-27 Fernando Perez <fperez@colorado.edu>
3538 2004-09-27 Fernando Perez <fperez@colorado.edu>
3534
3539
3535 * IPython/UserConfig/ipythonrc: remove []{} from
3540 * IPython/UserConfig/ipythonrc: remove []{} from
3536 readline_remove_delims, so that things like [modname.<TAB> do
3541 readline_remove_delims, so that things like [modname.<TAB> do
3537 proper completion. This disables [].TAB, but that's a less common
3542 proper completion. This disables [].TAB, but that's a less common
3538 case than module names in list comprehensions, for example.
3543 case than module names in list comprehensions, for example.
3539 Thanks to a report by Andrea Riciputi.
3544 Thanks to a report by Andrea Riciputi.
3540
3545
3541 2004-09-09 Fernando Perez <fperez@colorado.edu>
3546 2004-09-09 Fernando Perez <fperez@colorado.edu>
3542
3547
3543 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3548 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3544 blocking problems in win32 and osx. Fix by John.
3549 blocking problems in win32 and osx. Fix by John.
3545
3550
3546 2004-09-08 Fernando Perez <fperez@colorado.edu>
3551 2004-09-08 Fernando Perez <fperez@colorado.edu>
3547
3552
3548 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3553 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3549 for Win32 and OSX. Fix by John Hunter.
3554 for Win32 and OSX. Fix by John Hunter.
3550
3555
3551 2004-08-30 *** Released version 0.6.3
3556 2004-08-30 *** Released version 0.6.3
3552
3557
3553 2004-08-30 Fernando Perez <fperez@colorado.edu>
3558 2004-08-30 Fernando Perez <fperez@colorado.edu>
3554
3559
3555 * setup.py (isfile): Add manpages to list of dependent files to be
3560 * setup.py (isfile): Add manpages to list of dependent files to be
3556 updated.
3561 updated.
3557
3562
3558 2004-08-27 Fernando Perez <fperez@colorado.edu>
3563 2004-08-27 Fernando Perez <fperez@colorado.edu>
3559
3564
3560 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3565 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3561 for now. They don't really work with standalone WX/GTK code
3566 for now. They don't really work with standalone WX/GTK code
3562 (though matplotlib IS working fine with both of those backends).
3567 (though matplotlib IS working fine with both of those backends).
3563 This will neeed much more testing. I disabled most things with
3568 This will neeed much more testing. I disabled most things with
3564 comments, so turning it back on later should be pretty easy.
3569 comments, so turning it back on later should be pretty easy.
3565
3570
3566 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3571 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3567 autocalling of expressions like r'foo', by modifying the line
3572 autocalling of expressions like r'foo', by modifying the line
3568 split regexp. Closes
3573 split regexp. Closes
3569 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3574 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3570 Riley <ipythonbugs-AT-sabi.net>.
3575 Riley <ipythonbugs-AT-sabi.net>.
3571 (InteractiveShell.mainloop): honor --nobanner with banner
3576 (InteractiveShell.mainloop): honor --nobanner with banner
3572 extensions.
3577 extensions.
3573
3578
3574 * IPython/Shell.py: Significant refactoring of all classes, so
3579 * IPython/Shell.py: Significant refactoring of all classes, so
3575 that we can really support ALL matplotlib backends and threading
3580 that we can really support ALL matplotlib backends and threading
3576 models (John spotted a bug with Tk which required this). Now we
3581 models (John spotted a bug with Tk which required this). Now we
3577 should support single-threaded, WX-threads and GTK-threads, both
3582 should support single-threaded, WX-threads and GTK-threads, both
3578 for generic code and for matplotlib.
3583 for generic code and for matplotlib.
3579
3584
3580 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3585 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3581 -pylab, to simplify things for users. Will also remove the pylab
3586 -pylab, to simplify things for users. Will also remove the pylab
3582 profile, since now all of matplotlib configuration is directly
3587 profile, since now all of matplotlib configuration is directly
3583 handled here. This also reduces startup time.
3588 handled here. This also reduces startup time.
3584
3589
3585 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3590 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3586 shell wasn't being correctly called. Also in IPShellWX.
3591 shell wasn't being correctly called. Also in IPShellWX.
3587
3592
3588 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3593 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3589 fine-tune banner.
3594 fine-tune banner.
3590
3595
3591 * IPython/numutils.py (spike): Deprecate these spike functions,
3596 * IPython/numutils.py (spike): Deprecate these spike functions,
3592 delete (long deprecated) gnuplot_exec handler.
3597 delete (long deprecated) gnuplot_exec handler.
3593
3598
3594 2004-08-26 Fernando Perez <fperez@colorado.edu>
3599 2004-08-26 Fernando Perez <fperez@colorado.edu>
3595
3600
3596 * ipython.1: Update for threading options, plus some others which
3601 * ipython.1: Update for threading options, plus some others which
3597 were missing.
3602 were missing.
3598
3603
3599 * IPython/ipmaker.py (__call__): Added -wthread option for
3604 * IPython/ipmaker.py (__call__): Added -wthread option for
3600 wxpython thread handling. Make sure threading options are only
3605 wxpython thread handling. Make sure threading options are only
3601 valid at the command line.
3606 valid at the command line.
3602
3607
3603 * scripts/ipython: moved shell selection into a factory function
3608 * scripts/ipython: moved shell selection into a factory function
3604 in Shell.py, to keep the starter script to a minimum.
3609 in Shell.py, to keep the starter script to a minimum.
3605
3610
3606 2004-08-25 Fernando Perez <fperez@colorado.edu>
3611 2004-08-25 Fernando Perez <fperez@colorado.edu>
3607
3612
3608 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3613 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3609 John. Along with some recent changes he made to matplotlib, the
3614 John. Along with some recent changes he made to matplotlib, the
3610 next versions of both systems should work very well together.
3615 next versions of both systems should work very well together.
3611
3616
3612 2004-08-24 Fernando Perez <fperez@colorado.edu>
3617 2004-08-24 Fernando Perez <fperez@colorado.edu>
3613
3618
3614 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3619 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3615 tried to switch the profiling to using hotshot, but I'm getting
3620 tried to switch the profiling to using hotshot, but I'm getting
3616 strange errors from prof.runctx() there. I may be misreading the
3621 strange errors from prof.runctx() there. I may be misreading the
3617 docs, but it looks weird. For now the profiling code will
3622 docs, but it looks weird. For now the profiling code will
3618 continue to use the standard profiler.
3623 continue to use the standard profiler.
3619
3624
3620 2004-08-23 Fernando Perez <fperez@colorado.edu>
3625 2004-08-23 Fernando Perez <fperez@colorado.edu>
3621
3626
3622 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3627 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3623 threaded shell, by John Hunter. It's not quite ready yet, but
3628 threaded shell, by John Hunter. It's not quite ready yet, but
3624 close.
3629 close.
3625
3630
3626 2004-08-22 Fernando Perez <fperez@colorado.edu>
3631 2004-08-22 Fernando Perez <fperez@colorado.edu>
3627
3632
3628 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3633 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3629 in Magic and ultraTB.
3634 in Magic and ultraTB.
3630
3635
3631 * ipython.1: document threading options in manpage.
3636 * ipython.1: document threading options in manpage.
3632
3637
3633 * scripts/ipython: Changed name of -thread option to -gthread,
3638 * scripts/ipython: Changed name of -thread option to -gthread,
3634 since this is GTK specific. I want to leave the door open for a
3639 since this is GTK specific. I want to leave the door open for a
3635 -wthread option for WX, which will most likely be necessary. This
3640 -wthread option for WX, which will most likely be necessary. This
3636 change affects usage and ipmaker as well.
3641 change affects usage and ipmaker as well.
3637
3642
3638 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3643 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3639 handle the matplotlib shell issues. Code by John Hunter
3644 handle the matplotlib shell issues. Code by John Hunter
3640 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3645 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3641 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3646 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3642 broken (and disabled for end users) for now, but it puts the
3647 broken (and disabled for end users) for now, but it puts the
3643 infrastructure in place.
3648 infrastructure in place.
3644
3649
3645 2004-08-21 Fernando Perez <fperez@colorado.edu>
3650 2004-08-21 Fernando Perez <fperez@colorado.edu>
3646
3651
3647 * ipythonrc-pylab: Add matplotlib support.
3652 * ipythonrc-pylab: Add matplotlib support.
3648
3653
3649 * matplotlib_config.py: new files for matplotlib support, part of
3654 * matplotlib_config.py: new files for matplotlib support, part of
3650 the pylab profile.
3655 the pylab profile.
3651
3656
3652 * IPython/usage.py (__doc__): documented the threading options.
3657 * IPython/usage.py (__doc__): documented the threading options.
3653
3658
3654 2004-08-20 Fernando Perez <fperez@colorado.edu>
3659 2004-08-20 Fernando Perez <fperez@colorado.edu>
3655
3660
3656 * ipython: Modified the main calling routine to handle the -thread
3661 * ipython: Modified the main calling routine to handle the -thread
3657 and -mpthread options. This needs to be done as a top-level hack,
3662 and -mpthread options. This needs to be done as a top-level hack,
3658 because it determines which class to instantiate for IPython
3663 because it determines which class to instantiate for IPython
3659 itself.
3664 itself.
3660
3665
3661 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3666 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3662 classes to support multithreaded GTK operation without blocking,
3667 classes to support multithreaded GTK operation without blocking,
3663 and matplotlib with all backends. This is a lot of still very
3668 and matplotlib with all backends. This is a lot of still very
3664 experimental code, and threads are tricky. So it may still have a
3669 experimental code, and threads are tricky. So it may still have a
3665 few rough edges... This code owes a lot to
3670 few rough edges... This code owes a lot to
3666 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3671 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3667 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3672 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3668 to John Hunter for all the matplotlib work.
3673 to John Hunter for all the matplotlib work.
3669
3674
3670 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3675 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3671 options for gtk thread and matplotlib support.
3676 options for gtk thread and matplotlib support.
3672
3677
3673 2004-08-16 Fernando Perez <fperez@colorado.edu>
3678 2004-08-16 Fernando Perez <fperez@colorado.edu>
3674
3679
3675 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3680 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3676 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3681 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3677 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3682 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3678
3683
3679 2004-08-11 Fernando Perez <fperez@colorado.edu>
3684 2004-08-11 Fernando Perez <fperez@colorado.edu>
3680
3685
3681 * setup.py (isfile): Fix build so documentation gets updated for
3686 * setup.py (isfile): Fix build so documentation gets updated for
3682 rpms (it was only done for .tgz builds).
3687 rpms (it was only done for .tgz builds).
3683
3688
3684 2004-08-10 Fernando Perez <fperez@colorado.edu>
3689 2004-08-10 Fernando Perez <fperez@colorado.edu>
3685
3690
3686 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3691 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3687
3692
3688 * iplib.py : Silence syntax error exceptions in tab-completion.
3693 * iplib.py : Silence syntax error exceptions in tab-completion.
3689
3694
3690 2004-08-05 Fernando Perez <fperez@colorado.edu>
3695 2004-08-05 Fernando Perez <fperez@colorado.edu>
3691
3696
3692 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3697 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3693 'color off' mark for continuation prompts. This was causing long
3698 'color off' mark for continuation prompts. This was causing long
3694 continuation lines to mis-wrap.
3699 continuation lines to mis-wrap.
3695
3700
3696 2004-08-01 Fernando Perez <fperez@colorado.edu>
3701 2004-08-01 Fernando Perez <fperez@colorado.edu>
3697
3702
3698 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3703 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3699 for building ipython to be a parameter. All this is necessary
3704 for building ipython to be a parameter. All this is necessary
3700 right now to have a multithreaded version, but this insane
3705 right now to have a multithreaded version, but this insane
3701 non-design will be cleaned up soon. For now, it's a hack that
3706 non-design will be cleaned up soon. For now, it's a hack that
3702 works.
3707 works.
3703
3708
3704 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3709 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3705 args in various places. No bugs so far, but it's a dangerous
3710 args in various places. No bugs so far, but it's a dangerous
3706 practice.
3711 practice.
3707
3712
3708 2004-07-31 Fernando Perez <fperez@colorado.edu>
3713 2004-07-31 Fernando Perez <fperez@colorado.edu>
3709
3714
3710 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3715 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3711 fix completion of files with dots in their names under most
3716 fix completion of files with dots in their names under most
3712 profiles (pysh was OK because the completion order is different).
3717 profiles (pysh was OK because the completion order is different).
3713
3718
3714 2004-07-27 Fernando Perez <fperez@colorado.edu>
3719 2004-07-27 Fernando Perez <fperez@colorado.edu>
3715
3720
3716 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3721 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3717 keywords manually, b/c the one in keyword.py was removed in python
3722 keywords manually, b/c the one in keyword.py was removed in python
3718 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3723 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3719 This is NOT a bug under python 2.3 and earlier.
3724 This is NOT a bug under python 2.3 and earlier.
3720
3725
3721 2004-07-26 Fernando Perez <fperez@colorado.edu>
3726 2004-07-26 Fernando Perez <fperez@colorado.edu>
3722
3727
3723 * IPython/ultraTB.py (VerboseTB.text): Add another
3728 * IPython/ultraTB.py (VerboseTB.text): Add another
3724 linecache.checkcache() call to try to prevent inspect.py from
3729 linecache.checkcache() call to try to prevent inspect.py from
3725 crashing under python 2.3. I think this fixes
3730 crashing under python 2.3. I think this fixes
3726 http://www.scipy.net/roundup/ipython/issue17.
3731 http://www.scipy.net/roundup/ipython/issue17.
3727
3732
3728 2004-07-26 *** Released version 0.6.2
3733 2004-07-26 *** Released version 0.6.2
3729
3734
3730 2004-07-26 Fernando Perez <fperez@colorado.edu>
3735 2004-07-26 Fernando Perez <fperez@colorado.edu>
3731
3736
3732 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3737 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3733 fail for any number.
3738 fail for any number.
3734 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3739 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3735 empty bookmarks.
3740 empty bookmarks.
3736
3741
3737 2004-07-26 *** Released version 0.6.1
3742 2004-07-26 *** Released version 0.6.1
3738
3743
3739 2004-07-26 Fernando Perez <fperez@colorado.edu>
3744 2004-07-26 Fernando Perez <fperez@colorado.edu>
3740
3745
3741 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3746 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3742
3747
3743 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3748 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3744 escaping '()[]{}' in filenames.
3749 escaping '()[]{}' in filenames.
3745
3750
3746 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3751 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3747 Python 2.2 users who lack a proper shlex.split.
3752 Python 2.2 users who lack a proper shlex.split.
3748
3753
3749 2004-07-19 Fernando Perez <fperez@colorado.edu>
3754 2004-07-19 Fernando Perez <fperez@colorado.edu>
3750
3755
3751 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3756 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3752 for reading readline's init file. I follow the normal chain:
3757 for reading readline's init file. I follow the normal chain:
3753 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3758 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3754 report by Mike Heeter. This closes
3759 report by Mike Heeter. This closes
3755 http://www.scipy.net/roundup/ipython/issue16.
3760 http://www.scipy.net/roundup/ipython/issue16.
3756
3761
3757 2004-07-18 Fernando Perez <fperez@colorado.edu>
3762 2004-07-18 Fernando Perez <fperez@colorado.edu>
3758
3763
3759 * IPython/iplib.py (__init__): Add better handling of '\' under
3764 * IPython/iplib.py (__init__): Add better handling of '\' under
3760 Win32 for filenames. After a patch by Ville.
3765 Win32 for filenames. After a patch by Ville.
3761
3766
3762 2004-07-17 Fernando Perez <fperez@colorado.edu>
3767 2004-07-17 Fernando Perez <fperez@colorado.edu>
3763
3768
3764 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3769 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3765 autocalling would be triggered for 'foo is bar' if foo is
3770 autocalling would be triggered for 'foo is bar' if foo is
3766 callable. I also cleaned up the autocall detection code to use a
3771 callable. I also cleaned up the autocall detection code to use a
3767 regexp, which is faster. Bug reported by Alexander Schmolck.
3772 regexp, which is faster. Bug reported by Alexander Schmolck.
3768
3773
3769 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3774 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3770 '?' in them would confuse the help system. Reported by Alex
3775 '?' in them would confuse the help system. Reported by Alex
3771 Schmolck.
3776 Schmolck.
3772
3777
3773 2004-07-16 Fernando Perez <fperez@colorado.edu>
3778 2004-07-16 Fernando Perez <fperez@colorado.edu>
3774
3779
3775 * IPython/GnuplotInteractive.py (__all__): added plot2.
3780 * IPython/GnuplotInteractive.py (__all__): added plot2.
3776
3781
3777 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3782 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3778 plotting dictionaries, lists or tuples of 1d arrays.
3783 plotting dictionaries, lists or tuples of 1d arrays.
3779
3784
3780 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3785 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3781 optimizations.
3786 optimizations.
3782
3787
3783 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3788 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3784 the information which was there from Janko's original IPP code:
3789 the information which was there from Janko's original IPP code:
3785
3790
3786 03.05.99 20:53 porto.ifm.uni-kiel.de
3791 03.05.99 20:53 porto.ifm.uni-kiel.de
3787 --Started changelog.
3792 --Started changelog.
3788 --make clear do what it say it does
3793 --make clear do what it say it does
3789 --added pretty output of lines from inputcache
3794 --added pretty output of lines from inputcache
3790 --Made Logger a mixin class, simplifies handling of switches
3795 --Made Logger a mixin class, simplifies handling of switches
3791 --Added own completer class. .string<TAB> expands to last history
3796 --Added own completer class. .string<TAB> expands to last history
3792 line which starts with string. The new expansion is also present
3797 line which starts with string. The new expansion is also present
3793 with Ctrl-r from the readline library. But this shows, who this
3798 with Ctrl-r from the readline library. But this shows, who this
3794 can be done for other cases.
3799 can be done for other cases.
3795 --Added convention that all shell functions should accept a
3800 --Added convention that all shell functions should accept a
3796 parameter_string This opens the door for different behaviour for
3801 parameter_string This opens the door for different behaviour for
3797 each function. @cd is a good example of this.
3802 each function. @cd is a good example of this.
3798
3803
3799 04.05.99 12:12 porto.ifm.uni-kiel.de
3804 04.05.99 12:12 porto.ifm.uni-kiel.de
3800 --added logfile rotation
3805 --added logfile rotation
3801 --added new mainloop method which freezes first the namespace
3806 --added new mainloop method which freezes first the namespace
3802
3807
3803 07.05.99 21:24 porto.ifm.uni-kiel.de
3808 07.05.99 21:24 porto.ifm.uni-kiel.de
3804 --added the docreader classes. Now there is a help system.
3809 --added the docreader classes. Now there is a help system.
3805 -This is only a first try. Currently it's not easy to put new
3810 -This is only a first try. Currently it's not easy to put new
3806 stuff in the indices. But this is the way to go. Info would be
3811 stuff in the indices. But this is the way to go. Info would be
3807 better, but HTML is every where and not everybody has an info
3812 better, but HTML is every where and not everybody has an info
3808 system installed and it's not so easy to change html-docs to info.
3813 system installed and it's not so easy to change html-docs to info.
3809 --added global logfile option
3814 --added global logfile option
3810 --there is now a hook for object inspection method pinfo needs to
3815 --there is now a hook for object inspection method pinfo needs to
3811 be provided for this. Can be reached by two '??'.
3816 be provided for this. Can be reached by two '??'.
3812
3817
3813 08.05.99 20:51 porto.ifm.uni-kiel.de
3818 08.05.99 20:51 porto.ifm.uni-kiel.de
3814 --added a README
3819 --added a README
3815 --bug in rc file. Something has changed so functions in the rc
3820 --bug in rc file. Something has changed so functions in the rc
3816 file need to reference the shell and not self. Not clear if it's a
3821 file need to reference the shell and not self. Not clear if it's a
3817 bug or feature.
3822 bug or feature.
3818 --changed rc file for new behavior
3823 --changed rc file for new behavior
3819
3824
3820 2004-07-15 Fernando Perez <fperez@colorado.edu>
3825 2004-07-15 Fernando Perez <fperez@colorado.edu>
3821
3826
3822 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3827 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3823 cache was falling out of sync in bizarre manners when multi-line
3828 cache was falling out of sync in bizarre manners when multi-line
3824 input was present. Minor optimizations and cleanup.
3829 input was present. Minor optimizations and cleanup.
3825
3830
3826 (Logger): Remove old Changelog info for cleanup. This is the
3831 (Logger): Remove old Changelog info for cleanup. This is the
3827 information which was there from Janko's original code:
3832 information which was there from Janko's original code:
3828
3833
3829 Changes to Logger: - made the default log filename a parameter
3834 Changes to Logger: - made the default log filename a parameter
3830
3835
3831 - put a check for lines beginning with !@? in log(). Needed
3836 - put a check for lines beginning with !@? in log(). Needed
3832 (even if the handlers properly log their lines) for mid-session
3837 (even if the handlers properly log their lines) for mid-session
3833 logging activation to work properly. Without this, lines logged
3838 logging activation to work properly. Without this, lines logged
3834 in mid session, which get read from the cache, would end up
3839 in mid session, which get read from the cache, would end up
3835 'bare' (with !@? in the open) in the log. Now they are caught
3840 'bare' (with !@? in the open) in the log. Now they are caught
3836 and prepended with a #.
3841 and prepended with a #.
3837
3842
3838 * IPython/iplib.py (InteractiveShell.init_readline): added check
3843 * IPython/iplib.py (InteractiveShell.init_readline): added check
3839 in case MagicCompleter fails to be defined, so we don't crash.
3844 in case MagicCompleter fails to be defined, so we don't crash.
3840
3845
3841 2004-07-13 Fernando Perez <fperez@colorado.edu>
3846 2004-07-13 Fernando Perez <fperez@colorado.edu>
3842
3847
3843 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3848 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3844 of EPS if the requested filename ends in '.eps'.
3849 of EPS if the requested filename ends in '.eps'.
3845
3850
3846 2004-07-04 Fernando Perez <fperez@colorado.edu>
3851 2004-07-04 Fernando Perez <fperez@colorado.edu>
3847
3852
3848 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3853 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3849 escaping of quotes when calling the shell.
3854 escaping of quotes when calling the shell.
3850
3855
3851 2004-07-02 Fernando Perez <fperez@colorado.edu>
3856 2004-07-02 Fernando Perez <fperez@colorado.edu>
3852
3857
3853 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3858 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3854 gettext not working because we were clobbering '_'. Fixes
3859 gettext not working because we were clobbering '_'. Fixes
3855 http://www.scipy.net/roundup/ipython/issue6.
3860 http://www.scipy.net/roundup/ipython/issue6.
3856
3861
3857 2004-07-01 Fernando Perez <fperez@colorado.edu>
3862 2004-07-01 Fernando Perez <fperez@colorado.edu>
3858
3863
3859 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3864 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3860 into @cd. Patch by Ville.
3865 into @cd. Patch by Ville.
3861
3866
3862 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3867 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3863 new function to store things after ipmaker runs. Patch by Ville.
3868 new function to store things after ipmaker runs. Patch by Ville.
3864 Eventually this will go away once ipmaker is removed and the class
3869 Eventually this will go away once ipmaker is removed and the class
3865 gets cleaned up, but for now it's ok. Key functionality here is
3870 gets cleaned up, but for now it's ok. Key functionality here is
3866 the addition of the persistent storage mechanism, a dict for
3871 the addition of the persistent storage mechanism, a dict for
3867 keeping data across sessions (for now just bookmarks, but more can
3872 keeping data across sessions (for now just bookmarks, but more can
3868 be implemented later).
3873 be implemented later).
3869
3874
3870 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3875 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3871 persistent across sections. Patch by Ville, I modified it
3876 persistent across sections. Patch by Ville, I modified it
3872 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3877 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3873 added a '-l' option to list all bookmarks.
3878 added a '-l' option to list all bookmarks.
3874
3879
3875 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3880 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3876 center for cleanup. Registered with atexit.register(). I moved
3881 center for cleanup. Registered with atexit.register(). I moved
3877 here the old exit_cleanup(). After a patch by Ville.
3882 here the old exit_cleanup(). After a patch by Ville.
3878
3883
3879 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3884 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3880 characters in the hacked shlex_split for python 2.2.
3885 characters in the hacked shlex_split for python 2.2.
3881
3886
3882 * IPython/iplib.py (file_matches): more fixes to filenames with
3887 * IPython/iplib.py (file_matches): more fixes to filenames with
3883 whitespace in them. It's not perfect, but limitations in python's
3888 whitespace in them. It's not perfect, but limitations in python's
3884 readline make it impossible to go further.
3889 readline make it impossible to go further.
3885
3890
3886 2004-06-29 Fernando Perez <fperez@colorado.edu>
3891 2004-06-29 Fernando Perez <fperez@colorado.edu>
3887
3892
3888 * IPython/iplib.py (file_matches): escape whitespace correctly in
3893 * IPython/iplib.py (file_matches): escape whitespace correctly in
3889 filename completions. Bug reported by Ville.
3894 filename completions. Bug reported by Ville.
3890
3895
3891 2004-06-28 Fernando Perez <fperez@colorado.edu>
3896 2004-06-28 Fernando Perez <fperez@colorado.edu>
3892
3897
3893 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3898 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3894 the history file will be called 'history-PROFNAME' (or just
3899 the history file will be called 'history-PROFNAME' (or just
3895 'history' if no profile is loaded). I was getting annoyed at
3900 'history' if no profile is loaded). I was getting annoyed at
3896 getting my Numerical work history clobbered by pysh sessions.
3901 getting my Numerical work history clobbered by pysh sessions.
3897
3902
3898 * IPython/iplib.py (InteractiveShell.__init__): Internal
3903 * IPython/iplib.py (InteractiveShell.__init__): Internal
3899 getoutputerror() function so that we can honor the system_verbose
3904 getoutputerror() function so that we can honor the system_verbose
3900 flag for _all_ system calls. I also added escaping of #
3905 flag for _all_ system calls. I also added escaping of #
3901 characters here to avoid confusing Itpl.
3906 characters here to avoid confusing Itpl.
3902
3907
3903 * IPython/Magic.py (shlex_split): removed call to shell in
3908 * IPython/Magic.py (shlex_split): removed call to shell in
3904 parse_options and replaced it with shlex.split(). The annoying
3909 parse_options and replaced it with shlex.split(). The annoying
3905 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3910 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3906 to backport it from 2.3, with several frail hacks (the shlex
3911 to backport it from 2.3, with several frail hacks (the shlex
3907 module is rather limited in 2.2). Thanks to a suggestion by Ville
3912 module is rather limited in 2.2). Thanks to a suggestion by Ville
3908 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3913 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3909 problem.
3914 problem.
3910
3915
3911 (Magic.magic_system_verbose): new toggle to print the actual
3916 (Magic.magic_system_verbose): new toggle to print the actual
3912 system calls made by ipython. Mainly for debugging purposes.
3917 system calls made by ipython. Mainly for debugging purposes.
3913
3918
3914 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3919 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3915 doesn't support persistence. Reported (and fix suggested) by
3920 doesn't support persistence. Reported (and fix suggested) by
3916 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3921 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3917
3922
3918 2004-06-26 Fernando Perez <fperez@colorado.edu>
3923 2004-06-26 Fernando Perez <fperez@colorado.edu>
3919
3924
3920 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3925 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3921 continue prompts.
3926 continue prompts.
3922
3927
3923 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3928 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3924 function (basically a big docstring) and a few more things here to
3929 function (basically a big docstring) and a few more things here to
3925 speedup startup. pysh.py is now very lightweight. We want because
3930 speedup startup. pysh.py is now very lightweight. We want because
3926 it gets execfile'd, while InterpreterExec gets imported, so
3931 it gets execfile'd, while InterpreterExec gets imported, so
3927 byte-compilation saves time.
3932 byte-compilation saves time.
3928
3933
3929 2004-06-25 Fernando Perez <fperez@colorado.edu>
3934 2004-06-25 Fernando Perez <fperez@colorado.edu>
3930
3935
3931 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3936 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3932 -NUM', which was recently broken.
3937 -NUM', which was recently broken.
3933
3938
3934 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3939 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3935 in multi-line input (but not !!, which doesn't make sense there).
3940 in multi-line input (but not !!, which doesn't make sense there).
3936
3941
3937 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3942 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3938 It's just too useful, and people can turn it off in the less
3943 It's just too useful, and people can turn it off in the less
3939 common cases where it's a problem.
3944 common cases where it's a problem.
3940
3945
3941 2004-06-24 Fernando Perez <fperez@colorado.edu>
3946 2004-06-24 Fernando Perez <fperez@colorado.edu>
3942
3947
3943 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3948 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3944 special syntaxes (like alias calling) is now allied in multi-line
3949 special syntaxes (like alias calling) is now allied in multi-line
3945 input. This is still _very_ experimental, but it's necessary for
3950 input. This is still _very_ experimental, but it's necessary for
3946 efficient shell usage combining python looping syntax with system
3951 efficient shell usage combining python looping syntax with system
3947 calls. For now it's restricted to aliases, I don't think it
3952 calls. For now it's restricted to aliases, I don't think it
3948 really even makes sense to have this for magics.
3953 really even makes sense to have this for magics.
3949
3954
3950 2004-06-23 Fernando Perez <fperez@colorado.edu>
3955 2004-06-23 Fernando Perez <fperez@colorado.edu>
3951
3956
3952 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3957 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3953 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3958 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3954
3959
3955 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3960 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3956 extensions under Windows (after code sent by Gary Bishop). The
3961 extensions under Windows (after code sent by Gary Bishop). The
3957 extensions considered 'executable' are stored in IPython's rc
3962 extensions considered 'executable' are stored in IPython's rc
3958 structure as win_exec_ext.
3963 structure as win_exec_ext.
3959
3964
3960 * IPython/genutils.py (shell): new function, like system() but
3965 * IPython/genutils.py (shell): new function, like system() but
3961 without return value. Very useful for interactive shell work.
3966 without return value. Very useful for interactive shell work.
3962
3967
3963 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3968 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3964 delete aliases.
3969 delete aliases.
3965
3970
3966 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3971 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3967 sure that the alias table doesn't contain python keywords.
3972 sure that the alias table doesn't contain python keywords.
3968
3973
3969 2004-06-21 Fernando Perez <fperez@colorado.edu>
3974 2004-06-21 Fernando Perez <fperez@colorado.edu>
3970
3975
3971 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3976 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3972 non-existent items are found in $PATH. Reported by Thorsten.
3977 non-existent items are found in $PATH. Reported by Thorsten.
3973
3978
3974 2004-06-20 Fernando Perez <fperez@colorado.edu>
3979 2004-06-20 Fernando Perez <fperez@colorado.edu>
3975
3980
3976 * IPython/iplib.py (complete): modified the completer so that the
3981 * IPython/iplib.py (complete): modified the completer so that the
3977 order of priorities can be easily changed at runtime.
3982 order of priorities can be easily changed at runtime.
3978
3983
3979 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3984 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3980 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3985 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3981
3986
3982 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3987 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3983 expand Python variables prepended with $ in all system calls. The
3988 expand Python variables prepended with $ in all system calls. The
3984 same was done to InteractiveShell.handle_shell_escape. Now all
3989 same was done to InteractiveShell.handle_shell_escape. Now all
3985 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3990 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3986 expansion of python variables and expressions according to the
3991 expansion of python variables and expressions according to the
3987 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3992 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3988
3993
3989 Though PEP-215 has been rejected, a similar (but simpler) one
3994 Though PEP-215 has been rejected, a similar (but simpler) one
3990 seems like it will go into Python 2.4, PEP-292 -
3995 seems like it will go into Python 2.4, PEP-292 -
3991 http://www.python.org/peps/pep-0292.html.
3996 http://www.python.org/peps/pep-0292.html.
3992
3997
3993 I'll keep the full syntax of PEP-215, since IPython has since the
3998 I'll keep the full syntax of PEP-215, since IPython has since the
3994 start used Ka-Ping Yee's reference implementation discussed there
3999 start used Ka-Ping Yee's reference implementation discussed there
3995 (Itpl), and I actually like the powerful semantics it offers.
4000 (Itpl), and I actually like the powerful semantics it offers.
3996
4001
3997 In order to access normal shell variables, the $ has to be escaped
4002 In order to access normal shell variables, the $ has to be escaped
3998 via an extra $. For example:
4003 via an extra $. For example:
3999
4004
4000 In [7]: PATH='a python variable'
4005 In [7]: PATH='a python variable'
4001
4006
4002 In [8]: !echo $PATH
4007 In [8]: !echo $PATH
4003 a python variable
4008 a python variable
4004
4009
4005 In [9]: !echo $$PATH
4010 In [9]: !echo $$PATH
4006 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4011 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4007
4012
4008 (Magic.parse_options): escape $ so the shell doesn't evaluate
4013 (Magic.parse_options): escape $ so the shell doesn't evaluate
4009 things prematurely.
4014 things prematurely.
4010
4015
4011 * IPython/iplib.py (InteractiveShell.call_alias): added the
4016 * IPython/iplib.py (InteractiveShell.call_alias): added the
4012 ability for aliases to expand python variables via $.
4017 ability for aliases to expand python variables via $.
4013
4018
4014 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4019 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4015 system, now there's a @rehash/@rehashx pair of magics. These work
4020 system, now there's a @rehash/@rehashx pair of magics. These work
4016 like the csh rehash command, and can be invoked at any time. They
4021 like the csh rehash command, and can be invoked at any time. They
4017 build a table of aliases to everything in the user's $PATH
4022 build a table of aliases to everything in the user's $PATH
4018 (@rehash uses everything, @rehashx is slower but only adds
4023 (@rehash uses everything, @rehashx is slower but only adds
4019 executable files). With this, the pysh.py-based shell profile can
4024 executable files). With this, the pysh.py-based shell profile can
4020 now simply call rehash upon startup, and full access to all
4025 now simply call rehash upon startup, and full access to all
4021 programs in the user's path is obtained.
4026 programs in the user's path is obtained.
4022
4027
4023 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4028 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4024 functionality is now fully in place. I removed the old dynamic
4029 functionality is now fully in place. I removed the old dynamic
4025 code generation based approach, in favor of a much lighter one
4030 code generation based approach, in favor of a much lighter one
4026 based on a simple dict. The advantage is that this allows me to
4031 based on a simple dict. The advantage is that this allows me to
4027 now have thousands of aliases with negligible cost (unthinkable
4032 now have thousands of aliases with negligible cost (unthinkable
4028 with the old system).
4033 with the old system).
4029
4034
4030 2004-06-19 Fernando Perez <fperez@colorado.edu>
4035 2004-06-19 Fernando Perez <fperez@colorado.edu>
4031
4036
4032 * IPython/iplib.py (__init__): extended MagicCompleter class to
4037 * IPython/iplib.py (__init__): extended MagicCompleter class to
4033 also complete (last in priority) on user aliases.
4038 also complete (last in priority) on user aliases.
4034
4039
4035 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4040 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4036 call to eval.
4041 call to eval.
4037 (ItplNS.__init__): Added a new class which functions like Itpl,
4042 (ItplNS.__init__): Added a new class which functions like Itpl,
4038 but allows configuring the namespace for the evaluation to occur
4043 but allows configuring the namespace for the evaluation to occur
4039 in.
4044 in.
4040
4045
4041 2004-06-18 Fernando Perez <fperez@colorado.edu>
4046 2004-06-18 Fernando Perez <fperez@colorado.edu>
4042
4047
4043 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4048 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4044 better message when 'exit' or 'quit' are typed (a common newbie
4049 better message when 'exit' or 'quit' are typed (a common newbie
4045 confusion).
4050 confusion).
4046
4051
4047 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4052 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4048 check for Windows users.
4053 check for Windows users.
4049
4054
4050 * IPython/iplib.py (InteractiveShell.user_setup): removed
4055 * IPython/iplib.py (InteractiveShell.user_setup): removed
4051 disabling of colors for Windows. I'll test at runtime and issue a
4056 disabling of colors for Windows. I'll test at runtime and issue a
4052 warning if Gary's readline isn't found, as to nudge users to
4057 warning if Gary's readline isn't found, as to nudge users to
4053 download it.
4058 download it.
4054
4059
4055 2004-06-16 Fernando Perez <fperez@colorado.edu>
4060 2004-06-16 Fernando Perez <fperez@colorado.edu>
4056
4061
4057 * IPython/genutils.py (Stream.__init__): changed to print errors
4062 * IPython/genutils.py (Stream.__init__): changed to print errors
4058 to sys.stderr. I had a circular dependency here. Now it's
4063 to sys.stderr. I had a circular dependency here. Now it's
4059 possible to run ipython as IDLE's shell (consider this pre-alpha,
4064 possible to run ipython as IDLE's shell (consider this pre-alpha,
4060 since true stdout things end up in the starting terminal instead
4065 since true stdout things end up in the starting terminal instead
4061 of IDLE's out).
4066 of IDLE's out).
4062
4067
4063 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4068 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4064 users who haven't # updated their prompt_in2 definitions. Remove
4069 users who haven't # updated their prompt_in2 definitions. Remove
4065 eventually.
4070 eventually.
4066 (multiple_replace): added credit to original ASPN recipe.
4071 (multiple_replace): added credit to original ASPN recipe.
4067
4072
4068 2004-06-15 Fernando Perez <fperez@colorado.edu>
4073 2004-06-15 Fernando Perez <fperez@colorado.edu>
4069
4074
4070 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4075 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4071 list of auto-defined aliases.
4076 list of auto-defined aliases.
4072
4077
4073 2004-06-13 Fernando Perez <fperez@colorado.edu>
4078 2004-06-13 Fernando Perez <fperez@colorado.edu>
4074
4079
4075 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4080 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4076 install was really requested (so setup.py can be used for other
4081 install was really requested (so setup.py can be used for other
4077 things under Windows).
4082 things under Windows).
4078
4083
4079 2004-06-10 Fernando Perez <fperez@colorado.edu>
4084 2004-06-10 Fernando Perez <fperez@colorado.edu>
4080
4085
4081 * IPython/Logger.py (Logger.create_log): Manually remove any old
4086 * IPython/Logger.py (Logger.create_log): Manually remove any old
4082 backup, since os.remove may fail under Windows. Fixes bug
4087 backup, since os.remove may fail under Windows. Fixes bug
4083 reported by Thorsten.
4088 reported by Thorsten.
4084
4089
4085 2004-06-09 Fernando Perez <fperez@colorado.edu>
4090 2004-06-09 Fernando Perez <fperez@colorado.edu>
4086
4091
4087 * examples/example-embed.py: fixed all references to %n (replaced
4092 * examples/example-embed.py: fixed all references to %n (replaced
4088 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4093 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4089 for all examples and the manual as well.
4094 for all examples and the manual as well.
4090
4095
4091 2004-06-08 Fernando Perez <fperez@colorado.edu>
4096 2004-06-08 Fernando Perez <fperez@colorado.edu>
4092
4097
4093 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4098 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4094 alignment and color management. All 3 prompt subsystems now
4099 alignment and color management. All 3 prompt subsystems now
4095 inherit from BasePrompt.
4100 inherit from BasePrompt.
4096
4101
4097 * tools/release: updates for windows installer build and tag rpms
4102 * tools/release: updates for windows installer build and tag rpms
4098 with python version (since paths are fixed).
4103 with python version (since paths are fixed).
4099
4104
4100 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4105 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4101 which will become eventually obsolete. Also fixed the default
4106 which will become eventually obsolete. Also fixed the default
4102 prompt_in2 to use \D, so at least new users start with the correct
4107 prompt_in2 to use \D, so at least new users start with the correct
4103 defaults.
4108 defaults.
4104 WARNING: Users with existing ipythonrc files will need to apply
4109 WARNING: Users with existing ipythonrc files will need to apply
4105 this fix manually!
4110 this fix manually!
4106
4111
4107 * setup.py: make windows installer (.exe). This is finally the
4112 * setup.py: make windows installer (.exe). This is finally the
4108 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4113 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4109 which I hadn't included because it required Python 2.3 (or recent
4114 which I hadn't included because it required Python 2.3 (or recent
4110 distutils).
4115 distutils).
4111
4116
4112 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4117 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4113 usage of new '\D' escape.
4118 usage of new '\D' escape.
4114
4119
4115 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4120 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4116 lacks os.getuid())
4121 lacks os.getuid())
4117 (CachedOutput.set_colors): Added the ability to turn coloring
4122 (CachedOutput.set_colors): Added the ability to turn coloring
4118 on/off with @colors even for manually defined prompt colors. It
4123 on/off with @colors even for manually defined prompt colors. It
4119 uses a nasty global, but it works safely and via the generic color
4124 uses a nasty global, but it works safely and via the generic color
4120 handling mechanism.
4125 handling mechanism.
4121 (Prompt2.__init__): Introduced new escape '\D' for continuation
4126 (Prompt2.__init__): Introduced new escape '\D' for continuation
4122 prompts. It represents the counter ('\#') as dots.
4127 prompts. It represents the counter ('\#') as dots.
4123 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4128 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4124 need to update their ipythonrc files and replace '%n' with '\D' in
4129 need to update their ipythonrc files and replace '%n' with '\D' in
4125 their prompt_in2 settings everywhere. Sorry, but there's
4130 their prompt_in2 settings everywhere. Sorry, but there's
4126 otherwise no clean way to get all prompts to properly align. The
4131 otherwise no clean way to get all prompts to properly align. The
4127 ipythonrc shipped with IPython has been updated.
4132 ipythonrc shipped with IPython has been updated.
4128
4133
4129 2004-06-07 Fernando Perez <fperez@colorado.edu>
4134 2004-06-07 Fernando Perez <fperez@colorado.edu>
4130
4135
4131 * setup.py (isfile): Pass local_icons option to latex2html, so the
4136 * setup.py (isfile): Pass local_icons option to latex2html, so the
4132 resulting HTML file is self-contained. Thanks to
4137 resulting HTML file is self-contained. Thanks to
4133 dryice-AT-liu.com.cn for the tip.
4138 dryice-AT-liu.com.cn for the tip.
4134
4139
4135 * pysh.py: I created a new profile 'shell', which implements a
4140 * pysh.py: I created a new profile 'shell', which implements a
4136 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4141 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4137 system shell, nor will it become one anytime soon. It's mainly
4142 system shell, nor will it become one anytime soon. It's mainly
4138 meant to illustrate the use of the new flexible bash-like prompts.
4143 meant to illustrate the use of the new flexible bash-like prompts.
4139 I guess it could be used by hardy souls for true shell management,
4144 I guess it could be used by hardy souls for true shell management,
4140 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4145 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4141 profile. This uses the InterpreterExec extension provided by
4146 profile. This uses the InterpreterExec extension provided by
4142 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4147 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4143
4148
4144 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4149 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4145 auto-align itself with the length of the previous input prompt
4150 auto-align itself with the length of the previous input prompt
4146 (taking into account the invisible color escapes).
4151 (taking into account the invisible color escapes).
4147 (CachedOutput.__init__): Large restructuring of this class. Now
4152 (CachedOutput.__init__): Large restructuring of this class. Now
4148 all three prompts (primary1, primary2, output) are proper objects,
4153 all three prompts (primary1, primary2, output) are proper objects,
4149 managed by the 'parent' CachedOutput class. The code is still a
4154 managed by the 'parent' CachedOutput class. The code is still a
4150 bit hackish (all prompts share state via a pointer to the cache),
4155 bit hackish (all prompts share state via a pointer to the cache),
4151 but it's overall far cleaner than before.
4156 but it's overall far cleaner than before.
4152
4157
4153 * IPython/genutils.py (getoutputerror): modified to add verbose,
4158 * IPython/genutils.py (getoutputerror): modified to add verbose,
4154 debug and header options. This makes the interface of all getout*
4159 debug and header options. This makes the interface of all getout*
4155 functions uniform.
4160 functions uniform.
4156 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4161 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4157
4162
4158 * IPython/Magic.py (Magic.default_option): added a function to
4163 * IPython/Magic.py (Magic.default_option): added a function to
4159 allow registering default options for any magic command. This
4164 allow registering default options for any magic command. This
4160 makes it easy to have profiles which customize the magics globally
4165 makes it easy to have profiles which customize the magics globally
4161 for a certain use. The values set through this function are
4166 for a certain use. The values set through this function are
4162 picked up by the parse_options() method, which all magics should
4167 picked up by the parse_options() method, which all magics should
4163 use to parse their options.
4168 use to parse their options.
4164
4169
4165 * IPython/genutils.py (warn): modified the warnings framework to
4170 * IPython/genutils.py (warn): modified the warnings framework to
4166 use the Term I/O class. I'm trying to slowly unify all of
4171 use the Term I/O class. I'm trying to slowly unify all of
4167 IPython's I/O operations to pass through Term.
4172 IPython's I/O operations to pass through Term.
4168
4173
4169 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4174 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4170 the secondary prompt to correctly match the length of the primary
4175 the secondary prompt to correctly match the length of the primary
4171 one for any prompt. Now multi-line code will properly line up
4176 one for any prompt. Now multi-line code will properly line up
4172 even for path dependent prompts, such as the new ones available
4177 even for path dependent prompts, such as the new ones available
4173 via the prompt_specials.
4178 via the prompt_specials.
4174
4179
4175 2004-06-06 Fernando Perez <fperez@colorado.edu>
4180 2004-06-06 Fernando Perez <fperez@colorado.edu>
4176
4181
4177 * IPython/Prompts.py (prompt_specials): Added the ability to have
4182 * IPython/Prompts.py (prompt_specials): Added the ability to have
4178 bash-like special sequences in the prompts, which get
4183 bash-like special sequences in the prompts, which get
4179 automatically expanded. Things like hostname, current working
4184 automatically expanded. Things like hostname, current working
4180 directory and username are implemented already, but it's easy to
4185 directory and username are implemented already, but it's easy to
4181 add more in the future. Thanks to a patch by W.J. van der Laan
4186 add more in the future. Thanks to a patch by W.J. van der Laan
4182 <gnufnork-AT-hetdigitalegat.nl>
4187 <gnufnork-AT-hetdigitalegat.nl>
4183 (prompt_specials): Added color support for prompt strings, so
4188 (prompt_specials): Added color support for prompt strings, so
4184 users can define arbitrary color setups for their prompts.
4189 users can define arbitrary color setups for their prompts.
4185
4190
4186 2004-06-05 Fernando Perez <fperez@colorado.edu>
4191 2004-06-05 Fernando Perez <fperez@colorado.edu>
4187
4192
4188 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4193 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4189 code to load Gary Bishop's readline and configure it
4194 code to load Gary Bishop's readline and configure it
4190 automatically. Thanks to Gary for help on this.
4195 automatically. Thanks to Gary for help on this.
4191
4196
4192 2004-06-01 Fernando Perez <fperez@colorado.edu>
4197 2004-06-01 Fernando Perez <fperez@colorado.edu>
4193
4198
4194 * IPython/Logger.py (Logger.create_log): fix bug for logging
4199 * IPython/Logger.py (Logger.create_log): fix bug for logging
4195 with no filename (previous fix was incomplete).
4200 with no filename (previous fix was incomplete).
4196
4201
4197 2004-05-25 Fernando Perez <fperez@colorado.edu>
4202 2004-05-25 Fernando Perez <fperez@colorado.edu>
4198
4203
4199 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4204 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4200 parens would get passed to the shell.
4205 parens would get passed to the shell.
4201
4206
4202 2004-05-20 Fernando Perez <fperez@colorado.edu>
4207 2004-05-20 Fernando Perez <fperez@colorado.edu>
4203
4208
4204 * IPython/Magic.py (Magic.magic_prun): changed default profile
4209 * IPython/Magic.py (Magic.magic_prun): changed default profile
4205 sort order to 'time' (the more common profiling need).
4210 sort order to 'time' (the more common profiling need).
4206
4211
4207 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4212 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4208 so that source code shown is guaranteed in sync with the file on
4213 so that source code shown is guaranteed in sync with the file on
4209 disk (also changed in psource). Similar fix to the one for
4214 disk (also changed in psource). Similar fix to the one for
4210 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4215 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4211 <yann.ledu-AT-noos.fr>.
4216 <yann.ledu-AT-noos.fr>.
4212
4217
4213 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4218 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4214 with a single option would not be correctly parsed. Closes
4219 with a single option would not be correctly parsed. Closes
4215 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4220 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4216 introduced in 0.6.0 (on 2004-05-06).
4221 introduced in 0.6.0 (on 2004-05-06).
4217
4222
4218 2004-05-13 *** Released version 0.6.0
4223 2004-05-13 *** Released version 0.6.0
4219
4224
4220 2004-05-13 Fernando Perez <fperez@colorado.edu>
4225 2004-05-13 Fernando Perez <fperez@colorado.edu>
4221
4226
4222 * debian/: Added debian/ directory to CVS, so that debian support
4227 * debian/: Added debian/ directory to CVS, so that debian support
4223 is publicly accessible. The debian package is maintained by Jack
4228 is publicly accessible. The debian package is maintained by Jack
4224 Moffit <jack-AT-xiph.org>.
4229 Moffit <jack-AT-xiph.org>.
4225
4230
4226 * Documentation: included the notes about an ipython-based system
4231 * Documentation: included the notes about an ipython-based system
4227 shell (the hypothetical 'pysh') into the new_design.pdf document,
4232 shell (the hypothetical 'pysh') into the new_design.pdf document,
4228 so that these ideas get distributed to users along with the
4233 so that these ideas get distributed to users along with the
4229 official documentation.
4234 official documentation.
4230
4235
4231 2004-05-10 Fernando Perez <fperez@colorado.edu>
4236 2004-05-10 Fernando Perez <fperez@colorado.edu>
4232
4237
4233 * IPython/Logger.py (Logger.create_log): fix recently introduced
4238 * IPython/Logger.py (Logger.create_log): fix recently introduced
4234 bug (misindented line) where logstart would fail when not given an
4239 bug (misindented line) where logstart would fail when not given an
4235 explicit filename.
4240 explicit filename.
4236
4241
4237 2004-05-09 Fernando Perez <fperez@colorado.edu>
4242 2004-05-09 Fernando Perez <fperez@colorado.edu>
4238
4243
4239 * IPython/Magic.py (Magic.parse_options): skip system call when
4244 * IPython/Magic.py (Magic.parse_options): skip system call when
4240 there are no options to look for. Faster, cleaner for the common
4245 there are no options to look for. Faster, cleaner for the common
4241 case.
4246 case.
4242
4247
4243 * Documentation: many updates to the manual: describing Windows
4248 * Documentation: many updates to the manual: describing Windows
4244 support better, Gnuplot updates, credits, misc small stuff. Also
4249 support better, Gnuplot updates, credits, misc small stuff. Also
4245 updated the new_design doc a bit.
4250 updated the new_design doc a bit.
4246
4251
4247 2004-05-06 *** Released version 0.6.0.rc1
4252 2004-05-06 *** Released version 0.6.0.rc1
4248
4253
4249 2004-05-06 Fernando Perez <fperez@colorado.edu>
4254 2004-05-06 Fernando Perez <fperez@colorado.edu>
4250
4255
4251 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4256 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4252 operations to use the vastly more efficient list/''.join() method.
4257 operations to use the vastly more efficient list/''.join() method.
4253 (FormattedTB.text): Fix
4258 (FormattedTB.text): Fix
4254 http://www.scipy.net/roundup/ipython/issue12 - exception source
4259 http://www.scipy.net/roundup/ipython/issue12 - exception source
4255 extract not updated after reload. Thanks to Mike Salib
4260 extract not updated after reload. Thanks to Mike Salib
4256 <msalib-AT-mit.edu> for pinning the source of the problem.
4261 <msalib-AT-mit.edu> for pinning the source of the problem.
4257 Fortunately, the solution works inside ipython and doesn't require
4262 Fortunately, the solution works inside ipython and doesn't require
4258 any changes to python proper.
4263 any changes to python proper.
4259
4264
4260 * IPython/Magic.py (Magic.parse_options): Improved to process the
4265 * IPython/Magic.py (Magic.parse_options): Improved to process the
4261 argument list as a true shell would (by actually using the
4266 argument list as a true shell would (by actually using the
4262 underlying system shell). This way, all @magics automatically get
4267 underlying system shell). This way, all @magics automatically get
4263 shell expansion for variables. Thanks to a comment by Alex
4268 shell expansion for variables. Thanks to a comment by Alex
4264 Schmolck.
4269 Schmolck.
4265
4270
4266 2004-04-04 Fernando Perez <fperez@colorado.edu>
4271 2004-04-04 Fernando Perez <fperez@colorado.edu>
4267
4272
4268 * IPython/iplib.py (InteractiveShell.interact): Added a special
4273 * IPython/iplib.py (InteractiveShell.interact): Added a special
4269 trap for a debugger quit exception, which is basically impossible
4274 trap for a debugger quit exception, which is basically impossible
4270 to handle by normal mechanisms, given what pdb does to the stack.
4275 to handle by normal mechanisms, given what pdb does to the stack.
4271 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4276 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4272
4277
4273 2004-04-03 Fernando Perez <fperez@colorado.edu>
4278 2004-04-03 Fernando Perez <fperez@colorado.edu>
4274
4279
4275 * IPython/genutils.py (Term): Standardized the names of the Term
4280 * IPython/genutils.py (Term): Standardized the names of the Term
4276 class streams to cin/cout/cerr, following C++ naming conventions
4281 class streams to cin/cout/cerr, following C++ naming conventions
4277 (I can't use in/out/err because 'in' is not a valid attribute
4282 (I can't use in/out/err because 'in' is not a valid attribute
4278 name).
4283 name).
4279
4284
4280 * IPython/iplib.py (InteractiveShell.interact): don't increment
4285 * IPython/iplib.py (InteractiveShell.interact): don't increment
4281 the prompt if there's no user input. By Daniel 'Dang' Griffith
4286 the prompt if there's no user input. By Daniel 'Dang' Griffith
4282 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4287 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4283 Francois Pinard.
4288 Francois Pinard.
4284
4289
4285 2004-04-02 Fernando Perez <fperez@colorado.edu>
4290 2004-04-02 Fernando Perez <fperez@colorado.edu>
4286
4291
4287 * IPython/genutils.py (Stream.__init__): Modified to survive at
4292 * IPython/genutils.py (Stream.__init__): Modified to survive at
4288 least importing in contexts where stdin/out/err aren't true file
4293 least importing in contexts where stdin/out/err aren't true file
4289 objects, such as PyCrust (they lack fileno() and mode). However,
4294 objects, such as PyCrust (they lack fileno() and mode). However,
4290 the recovery facilities which rely on these things existing will
4295 the recovery facilities which rely on these things existing will
4291 not work.
4296 not work.
4292
4297
4293 2004-04-01 Fernando Perez <fperez@colorado.edu>
4298 2004-04-01 Fernando Perez <fperez@colorado.edu>
4294
4299
4295 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4300 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4296 use the new getoutputerror() function, so it properly
4301 use the new getoutputerror() function, so it properly
4297 distinguishes stdout/err.
4302 distinguishes stdout/err.
4298
4303
4299 * IPython/genutils.py (getoutputerror): added a function to
4304 * IPython/genutils.py (getoutputerror): added a function to
4300 capture separately the standard output and error of a command.
4305 capture separately the standard output and error of a command.
4301 After a comment from dang on the mailing lists. This code is
4306 After a comment from dang on the mailing lists. This code is
4302 basically a modified version of commands.getstatusoutput(), from
4307 basically a modified version of commands.getstatusoutput(), from
4303 the standard library.
4308 the standard library.
4304
4309
4305 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4310 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4306 '!!' as a special syntax (shorthand) to access @sx.
4311 '!!' as a special syntax (shorthand) to access @sx.
4307
4312
4308 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4313 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4309 command and return its output as a list split on '\n'.
4314 command and return its output as a list split on '\n'.
4310
4315
4311 2004-03-31 Fernando Perez <fperez@colorado.edu>
4316 2004-03-31 Fernando Perez <fperez@colorado.edu>
4312
4317
4313 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4318 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4314 method to dictionaries used as FakeModule instances if they lack
4319 method to dictionaries used as FakeModule instances if they lack
4315 it. At least pydoc in python2.3 breaks for runtime-defined
4320 it. At least pydoc in python2.3 breaks for runtime-defined
4316 functions without this hack. At some point I need to _really_
4321 functions without this hack. At some point I need to _really_
4317 understand what FakeModule is doing, because it's a gross hack.
4322 understand what FakeModule is doing, because it's a gross hack.
4318 But it solves Arnd's problem for now...
4323 But it solves Arnd's problem for now...
4319
4324
4320 2004-02-27 Fernando Perez <fperez@colorado.edu>
4325 2004-02-27 Fernando Perez <fperez@colorado.edu>
4321
4326
4322 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4327 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4323 mode would behave erratically. Also increased the number of
4328 mode would behave erratically. Also increased the number of
4324 possible logs in rotate mod to 999. Thanks to Rod Holland
4329 possible logs in rotate mod to 999. Thanks to Rod Holland
4325 <rhh@StructureLABS.com> for the report and fixes.
4330 <rhh@StructureLABS.com> for the report and fixes.
4326
4331
4327 2004-02-26 Fernando Perez <fperez@colorado.edu>
4332 2004-02-26 Fernando Perez <fperez@colorado.edu>
4328
4333
4329 * IPython/genutils.py (page): Check that the curses module really
4334 * IPython/genutils.py (page): Check that the curses module really
4330 has the initscr attribute before trying to use it. For some
4335 has the initscr attribute before trying to use it. For some
4331 reason, the Solaris curses module is missing this. I think this
4336 reason, the Solaris curses module is missing this. I think this
4332 should be considered a Solaris python bug, but I'm not sure.
4337 should be considered a Solaris python bug, but I'm not sure.
4333
4338
4334 2004-01-17 Fernando Perez <fperez@colorado.edu>
4339 2004-01-17 Fernando Perez <fperez@colorado.edu>
4335
4340
4336 * IPython/genutils.py (Stream.__init__): Changes to try to make
4341 * IPython/genutils.py (Stream.__init__): Changes to try to make
4337 ipython robust against stdin/out/err being closed by the user.
4342 ipython robust against stdin/out/err being closed by the user.
4338 This is 'user error' (and blocks a normal python session, at least
4343 This is 'user error' (and blocks a normal python session, at least
4339 the stdout case). However, Ipython should be able to survive such
4344 the stdout case). However, Ipython should be able to survive such
4340 instances of abuse as gracefully as possible. To simplify the
4345 instances of abuse as gracefully as possible. To simplify the
4341 coding and maintain compatibility with Gary Bishop's Term
4346 coding and maintain compatibility with Gary Bishop's Term
4342 contributions, I've made use of classmethods for this. I think
4347 contributions, I've made use of classmethods for this. I think
4343 this introduces a dependency on python 2.2.
4348 this introduces a dependency on python 2.2.
4344
4349
4345 2004-01-13 Fernando Perez <fperez@colorado.edu>
4350 2004-01-13 Fernando Perez <fperez@colorado.edu>
4346
4351
4347 * IPython/numutils.py (exp_safe): simplified the code a bit and
4352 * IPython/numutils.py (exp_safe): simplified the code a bit and
4348 removed the need for importing the kinds module altogether.
4353 removed the need for importing the kinds module altogether.
4349
4354
4350 2004-01-06 Fernando Perez <fperez@colorado.edu>
4355 2004-01-06 Fernando Perez <fperez@colorado.edu>
4351
4356
4352 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4357 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4353 a magic function instead, after some community feedback. No
4358 a magic function instead, after some community feedback. No
4354 special syntax will exist for it, but its name is deliberately
4359 special syntax will exist for it, but its name is deliberately
4355 very short.
4360 very short.
4356
4361
4357 2003-12-20 Fernando Perez <fperez@colorado.edu>
4362 2003-12-20 Fernando Perez <fperez@colorado.edu>
4358
4363
4359 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4364 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4360 new functionality, to automagically assign the result of a shell
4365 new functionality, to automagically assign the result of a shell
4361 command to a variable. I'll solicit some community feedback on
4366 command to a variable. I'll solicit some community feedback on
4362 this before making it permanent.
4367 this before making it permanent.
4363
4368
4364 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4369 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4365 requested about callables for which inspect couldn't obtain a
4370 requested about callables for which inspect couldn't obtain a
4366 proper argspec. Thanks to a crash report sent by Etienne
4371 proper argspec. Thanks to a crash report sent by Etienne
4367 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4372 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4368
4373
4369 2003-12-09 Fernando Perez <fperez@colorado.edu>
4374 2003-12-09 Fernando Perez <fperez@colorado.edu>
4370
4375
4371 * IPython/genutils.py (page): patch for the pager to work across
4376 * IPython/genutils.py (page): patch for the pager to work across
4372 various versions of Windows. By Gary Bishop.
4377 various versions of Windows. By Gary Bishop.
4373
4378
4374 2003-12-04 Fernando Perez <fperez@colorado.edu>
4379 2003-12-04 Fernando Perez <fperez@colorado.edu>
4375
4380
4376 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4381 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4377 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4382 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4378 While I tested this and it looks ok, there may still be corner
4383 While I tested this and it looks ok, there may still be corner
4379 cases I've missed.
4384 cases I've missed.
4380
4385
4381 2003-12-01 Fernando Perez <fperez@colorado.edu>
4386 2003-12-01 Fernando Perez <fperez@colorado.edu>
4382
4387
4383 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4388 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4384 where a line like 'p,q=1,2' would fail because the automagic
4389 where a line like 'p,q=1,2' would fail because the automagic
4385 system would be triggered for @p.
4390 system would be triggered for @p.
4386
4391
4387 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4392 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4388 cleanups, code unmodified.
4393 cleanups, code unmodified.
4389
4394
4390 * IPython/genutils.py (Term): added a class for IPython to handle
4395 * IPython/genutils.py (Term): added a class for IPython to handle
4391 output. In most cases it will just be a proxy for stdout/err, but
4396 output. In most cases it will just be a proxy for stdout/err, but
4392 having this allows modifications to be made for some platforms,
4397 having this allows modifications to be made for some platforms,
4393 such as handling color escapes under Windows. All of this code
4398 such as handling color escapes under Windows. All of this code
4394 was contributed by Gary Bishop, with minor modifications by me.
4399 was contributed by Gary Bishop, with minor modifications by me.
4395 The actual changes affect many files.
4400 The actual changes affect many files.
4396
4401
4397 2003-11-30 Fernando Perez <fperez@colorado.edu>
4402 2003-11-30 Fernando Perez <fperez@colorado.edu>
4398
4403
4399 * IPython/iplib.py (file_matches): new completion code, courtesy
4404 * IPython/iplib.py (file_matches): new completion code, courtesy
4400 of Jeff Collins. This enables filename completion again under
4405 of Jeff Collins. This enables filename completion again under
4401 python 2.3, which disabled it at the C level.
4406 python 2.3, which disabled it at the C level.
4402
4407
4403 2003-11-11 Fernando Perez <fperez@colorado.edu>
4408 2003-11-11 Fernando Perez <fperez@colorado.edu>
4404
4409
4405 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4410 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4406 for Numeric.array(map(...)), but often convenient.
4411 for Numeric.array(map(...)), but often convenient.
4407
4412
4408 2003-11-05 Fernando Perez <fperez@colorado.edu>
4413 2003-11-05 Fernando Perez <fperez@colorado.edu>
4409
4414
4410 * IPython/numutils.py (frange): Changed a call from int() to
4415 * IPython/numutils.py (frange): Changed a call from int() to
4411 int(round()) to prevent a problem reported with arange() in the
4416 int(round()) to prevent a problem reported with arange() in the
4412 numpy list.
4417 numpy list.
4413
4418
4414 2003-10-06 Fernando Perez <fperez@colorado.edu>
4419 2003-10-06 Fernando Perez <fperez@colorado.edu>
4415
4420
4416 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4421 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4417 prevent crashes if sys lacks an argv attribute (it happens with
4422 prevent crashes if sys lacks an argv attribute (it happens with
4418 embedded interpreters which build a bare-bones sys module).
4423 embedded interpreters which build a bare-bones sys module).
4419 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4424 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4420
4425
4421 2003-09-24 Fernando Perez <fperez@colorado.edu>
4426 2003-09-24 Fernando Perez <fperez@colorado.edu>
4422
4427
4423 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4428 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4424 to protect against poorly written user objects where __getattr__
4429 to protect against poorly written user objects where __getattr__
4425 raises exceptions other than AttributeError. Thanks to a bug
4430 raises exceptions other than AttributeError. Thanks to a bug
4426 report by Oliver Sander <osander-AT-gmx.de>.
4431 report by Oliver Sander <osander-AT-gmx.de>.
4427
4432
4428 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4433 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4429 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4434 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4430
4435
4431 2003-09-09 Fernando Perez <fperez@colorado.edu>
4436 2003-09-09 Fernando Perez <fperez@colorado.edu>
4432
4437
4433 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4438 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4434 unpacking a list whith a callable as first element would
4439 unpacking a list whith a callable as first element would
4435 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4440 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4436 Collins.
4441 Collins.
4437
4442
4438 2003-08-25 *** Released version 0.5.0
4443 2003-08-25 *** Released version 0.5.0
4439
4444
4440 2003-08-22 Fernando Perez <fperez@colorado.edu>
4445 2003-08-22 Fernando Perez <fperez@colorado.edu>
4441
4446
4442 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4447 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4443 improperly defined user exceptions. Thanks to feedback from Mark
4448 improperly defined user exceptions. Thanks to feedback from Mark
4444 Russell <mrussell-AT-verio.net>.
4449 Russell <mrussell-AT-verio.net>.
4445
4450
4446 2003-08-20 Fernando Perez <fperez@colorado.edu>
4451 2003-08-20 Fernando Perez <fperez@colorado.edu>
4447
4452
4448 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4453 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4449 printing so that it would print multi-line string forms starting
4454 printing so that it would print multi-line string forms starting
4450 with a new line. This way the formatting is better respected for
4455 with a new line. This way the formatting is better respected for
4451 objects which work hard to make nice string forms.
4456 objects which work hard to make nice string forms.
4452
4457
4453 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4458 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4454 autocall would overtake data access for objects with both
4459 autocall would overtake data access for objects with both
4455 __getitem__ and __call__.
4460 __getitem__ and __call__.
4456
4461
4457 2003-08-19 *** Released version 0.5.0-rc1
4462 2003-08-19 *** Released version 0.5.0-rc1
4458
4463
4459 2003-08-19 Fernando Perez <fperez@colorado.edu>
4464 2003-08-19 Fernando Perez <fperez@colorado.edu>
4460
4465
4461 * IPython/deep_reload.py (load_tail): single tiny change here
4466 * IPython/deep_reload.py (load_tail): single tiny change here
4462 seems to fix the long-standing bug of dreload() failing to work
4467 seems to fix the long-standing bug of dreload() failing to work
4463 for dotted names. But this module is pretty tricky, so I may have
4468 for dotted names. But this module is pretty tricky, so I may have
4464 missed some subtlety. Needs more testing!.
4469 missed some subtlety. Needs more testing!.
4465
4470
4466 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4471 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4467 exceptions which have badly implemented __str__ methods.
4472 exceptions which have badly implemented __str__ methods.
4468 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4473 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4469 which I've been getting reports about from Python 2.3 users. I
4474 which I've been getting reports about from Python 2.3 users. I
4470 wish I had a simple test case to reproduce the problem, so I could
4475 wish I had a simple test case to reproduce the problem, so I could
4471 either write a cleaner workaround or file a bug report if
4476 either write a cleaner workaround or file a bug report if
4472 necessary.
4477 necessary.
4473
4478
4474 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4479 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4475 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4480 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4476 a bug report by Tjabo Kloppenburg.
4481 a bug report by Tjabo Kloppenburg.
4477
4482
4478 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4483 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4479 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4484 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4480 seems rather unstable. Thanks to a bug report by Tjabo
4485 seems rather unstable. Thanks to a bug report by Tjabo
4481 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4486 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4482
4487
4483 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4488 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4484 this out soon because of the critical fixes in the inner loop for
4489 this out soon because of the critical fixes in the inner loop for
4485 generators.
4490 generators.
4486
4491
4487 * IPython/Magic.py (Magic.getargspec): removed. This (and
4492 * IPython/Magic.py (Magic.getargspec): removed. This (and
4488 _get_def) have been obsoleted by OInspect for a long time, I
4493 _get_def) have been obsoleted by OInspect for a long time, I
4489 hadn't noticed that they were dead code.
4494 hadn't noticed that they were dead code.
4490 (Magic._ofind): restored _ofind functionality for a few literals
4495 (Magic._ofind): restored _ofind functionality for a few literals
4491 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4496 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4492 for things like "hello".capitalize?, since that would require a
4497 for things like "hello".capitalize?, since that would require a
4493 potentially dangerous eval() again.
4498 potentially dangerous eval() again.
4494
4499
4495 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4500 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4496 logic a bit more to clean up the escapes handling and minimize the
4501 logic a bit more to clean up the escapes handling and minimize the
4497 use of _ofind to only necessary cases. The interactive 'feel' of
4502 use of _ofind to only necessary cases. The interactive 'feel' of
4498 IPython should have improved quite a bit with the changes in
4503 IPython should have improved quite a bit with the changes in
4499 _prefilter and _ofind (besides being far safer than before).
4504 _prefilter and _ofind (besides being far safer than before).
4500
4505
4501 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4506 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4502 obscure, never reported). Edit would fail to find the object to
4507 obscure, never reported). Edit would fail to find the object to
4503 edit under some circumstances.
4508 edit under some circumstances.
4504 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4509 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4505 which were causing double-calling of generators. Those eval calls
4510 which were causing double-calling of generators. Those eval calls
4506 were _very_ dangerous, since code with side effects could be
4511 were _very_ dangerous, since code with side effects could be
4507 triggered. As they say, 'eval is evil'... These were the
4512 triggered. As they say, 'eval is evil'... These were the
4508 nastiest evals in IPython. Besides, _ofind is now far simpler,
4513 nastiest evals in IPython. Besides, _ofind is now far simpler,
4509 and it should also be quite a bit faster. Its use of inspect is
4514 and it should also be quite a bit faster. Its use of inspect is
4510 also safer, so perhaps some of the inspect-related crashes I've
4515 also safer, so perhaps some of the inspect-related crashes I've
4511 seen lately with Python 2.3 might be taken care of. That will
4516 seen lately with Python 2.3 might be taken care of. That will
4512 need more testing.
4517 need more testing.
4513
4518
4514 2003-08-17 Fernando Perez <fperez@colorado.edu>
4519 2003-08-17 Fernando Perez <fperez@colorado.edu>
4515
4520
4516 * IPython/iplib.py (InteractiveShell._prefilter): significant
4521 * IPython/iplib.py (InteractiveShell._prefilter): significant
4517 simplifications to the logic for handling user escapes. Faster
4522 simplifications to the logic for handling user escapes. Faster
4518 and simpler code.
4523 and simpler code.
4519
4524
4520 2003-08-14 Fernando Perez <fperez@colorado.edu>
4525 2003-08-14 Fernando Perez <fperez@colorado.edu>
4521
4526
4522 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4527 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4523 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4528 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4524 but it should be quite a bit faster. And the recursive version
4529 but it should be quite a bit faster. And the recursive version
4525 generated O(log N) intermediate storage for all rank>1 arrays,
4530 generated O(log N) intermediate storage for all rank>1 arrays,
4526 even if they were contiguous.
4531 even if they were contiguous.
4527 (l1norm): Added this function.
4532 (l1norm): Added this function.
4528 (norm): Added this function for arbitrary norms (including
4533 (norm): Added this function for arbitrary norms (including
4529 l-infinity). l1 and l2 are still special cases for convenience
4534 l-infinity). l1 and l2 are still special cases for convenience
4530 and speed.
4535 and speed.
4531
4536
4532 2003-08-03 Fernando Perez <fperez@colorado.edu>
4537 2003-08-03 Fernando Perez <fperez@colorado.edu>
4533
4538
4534 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4539 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4535 exceptions, which now raise PendingDeprecationWarnings in Python
4540 exceptions, which now raise PendingDeprecationWarnings in Python
4536 2.3. There were some in Magic and some in Gnuplot2.
4541 2.3. There were some in Magic and some in Gnuplot2.
4537
4542
4538 2003-06-30 Fernando Perez <fperez@colorado.edu>
4543 2003-06-30 Fernando Perez <fperez@colorado.edu>
4539
4544
4540 * IPython/genutils.py (page): modified to call curses only for
4545 * IPython/genutils.py (page): modified to call curses only for
4541 terminals where TERM=='xterm'. After problems under many other
4546 terminals where TERM=='xterm'. After problems under many other
4542 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4547 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4543
4548
4544 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4549 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4545 would be triggered when readline was absent. This was just an old
4550 would be triggered when readline was absent. This was just an old
4546 debugging statement I'd forgotten to take out.
4551 debugging statement I'd forgotten to take out.
4547
4552
4548 2003-06-20 Fernando Perez <fperez@colorado.edu>
4553 2003-06-20 Fernando Perez <fperez@colorado.edu>
4549
4554
4550 * IPython/genutils.py (clock): modified to return only user time
4555 * IPython/genutils.py (clock): modified to return only user time
4551 (not counting system time), after a discussion on scipy. While
4556 (not counting system time), after a discussion on scipy. While
4552 system time may be a useful quantity occasionally, it may much
4557 system time may be a useful quantity occasionally, it may much
4553 more easily be skewed by occasional swapping or other similar
4558 more easily be skewed by occasional swapping or other similar
4554 activity.
4559 activity.
4555
4560
4556 2003-06-05 Fernando Perez <fperez@colorado.edu>
4561 2003-06-05 Fernando Perez <fperez@colorado.edu>
4557
4562
4558 * IPython/numutils.py (identity): new function, for building
4563 * IPython/numutils.py (identity): new function, for building
4559 arbitrary rank Kronecker deltas (mostly backwards compatible with
4564 arbitrary rank Kronecker deltas (mostly backwards compatible with
4560 Numeric.identity)
4565 Numeric.identity)
4561
4566
4562 2003-06-03 Fernando Perez <fperez@colorado.edu>
4567 2003-06-03 Fernando Perez <fperez@colorado.edu>
4563
4568
4564 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4569 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4565 arguments passed to magics with spaces, to allow trailing '\' to
4570 arguments passed to magics with spaces, to allow trailing '\' to
4566 work normally (mainly for Windows users).
4571 work normally (mainly for Windows users).
4567
4572
4568 2003-05-29 Fernando Perez <fperez@colorado.edu>
4573 2003-05-29 Fernando Perez <fperez@colorado.edu>
4569
4574
4570 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4575 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4571 instead of pydoc.help. This fixes a bizarre behavior where
4576 instead of pydoc.help. This fixes a bizarre behavior where
4572 printing '%s' % locals() would trigger the help system. Now
4577 printing '%s' % locals() would trigger the help system. Now
4573 ipython behaves like normal python does.
4578 ipython behaves like normal python does.
4574
4579
4575 Note that if one does 'from pydoc import help', the bizarre
4580 Note that if one does 'from pydoc import help', the bizarre
4576 behavior returns, but this will also happen in normal python, so
4581 behavior returns, but this will also happen in normal python, so
4577 it's not an ipython bug anymore (it has to do with how pydoc.help
4582 it's not an ipython bug anymore (it has to do with how pydoc.help
4578 is implemented).
4583 is implemented).
4579
4584
4580 2003-05-22 Fernando Perez <fperez@colorado.edu>
4585 2003-05-22 Fernando Perez <fperez@colorado.edu>
4581
4586
4582 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4587 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4583 return [] instead of None when nothing matches, also match to end
4588 return [] instead of None when nothing matches, also match to end
4584 of line. Patch by Gary Bishop.
4589 of line. Patch by Gary Bishop.
4585
4590
4586 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4591 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4587 protection as before, for files passed on the command line. This
4592 protection as before, for files passed on the command line. This
4588 prevents the CrashHandler from kicking in if user files call into
4593 prevents the CrashHandler from kicking in if user files call into
4589 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4594 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4590 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4595 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4591
4596
4592 2003-05-20 *** Released version 0.4.0
4597 2003-05-20 *** Released version 0.4.0
4593
4598
4594 2003-05-20 Fernando Perez <fperez@colorado.edu>
4599 2003-05-20 Fernando Perez <fperez@colorado.edu>
4595
4600
4596 * setup.py: added support for manpages. It's a bit hackish b/c of
4601 * setup.py: added support for manpages. It's a bit hackish b/c of
4597 a bug in the way the bdist_rpm distutils target handles gzipped
4602 a bug in the way the bdist_rpm distutils target handles gzipped
4598 manpages, but it works. After a patch by Jack.
4603 manpages, but it works. After a patch by Jack.
4599
4604
4600 2003-05-19 Fernando Perez <fperez@colorado.edu>
4605 2003-05-19 Fernando Perez <fperez@colorado.edu>
4601
4606
4602 * IPython/numutils.py: added a mockup of the kinds module, since
4607 * IPython/numutils.py: added a mockup of the kinds module, since
4603 it was recently removed from Numeric. This way, numutils will
4608 it was recently removed from Numeric. This way, numutils will
4604 work for all users even if they are missing kinds.
4609 work for all users even if they are missing kinds.
4605
4610
4606 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4611 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4607 failure, which can occur with SWIG-wrapped extensions. After a
4612 failure, which can occur with SWIG-wrapped extensions. After a
4608 crash report from Prabhu.
4613 crash report from Prabhu.
4609
4614
4610 2003-05-16 Fernando Perez <fperez@colorado.edu>
4615 2003-05-16 Fernando Perez <fperez@colorado.edu>
4611
4616
4612 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4617 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4613 protect ipython from user code which may call directly
4618 protect ipython from user code which may call directly
4614 sys.excepthook (this looks like an ipython crash to the user, even
4619 sys.excepthook (this looks like an ipython crash to the user, even
4615 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4620 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4616 This is especially important to help users of WxWindows, but may
4621 This is especially important to help users of WxWindows, but may
4617 also be useful in other cases.
4622 also be useful in other cases.
4618
4623
4619 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4624 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4620 an optional tb_offset to be specified, and to preserve exception
4625 an optional tb_offset to be specified, and to preserve exception
4621 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4626 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4622
4627
4623 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4628 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4624
4629
4625 2003-05-15 Fernando Perez <fperez@colorado.edu>
4630 2003-05-15 Fernando Perez <fperez@colorado.edu>
4626
4631
4627 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4632 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4628 installing for a new user under Windows.
4633 installing for a new user under Windows.
4629
4634
4630 2003-05-12 Fernando Perez <fperez@colorado.edu>
4635 2003-05-12 Fernando Perez <fperez@colorado.edu>
4631
4636
4632 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4637 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4633 handler for Emacs comint-based lines. Currently it doesn't do
4638 handler for Emacs comint-based lines. Currently it doesn't do
4634 much (but importantly, it doesn't update the history cache). In
4639 much (but importantly, it doesn't update the history cache). In
4635 the future it may be expanded if Alex needs more functionality
4640 the future it may be expanded if Alex needs more functionality
4636 there.
4641 there.
4637
4642
4638 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4643 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4639 info to crash reports.
4644 info to crash reports.
4640
4645
4641 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4646 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4642 just like Python's -c. Also fixed crash with invalid -color
4647 just like Python's -c. Also fixed crash with invalid -color
4643 option value at startup. Thanks to Will French
4648 option value at startup. Thanks to Will French
4644 <wfrench-AT-bestweb.net> for the bug report.
4649 <wfrench-AT-bestweb.net> for the bug report.
4645
4650
4646 2003-05-09 Fernando Perez <fperez@colorado.edu>
4651 2003-05-09 Fernando Perez <fperez@colorado.edu>
4647
4652
4648 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4653 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4649 to EvalDict (it's a mapping, after all) and simplified its code
4654 to EvalDict (it's a mapping, after all) and simplified its code
4650 quite a bit, after a nice discussion on c.l.py where Gustavo
4655 quite a bit, after a nice discussion on c.l.py where Gustavo
4651 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4656 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4652
4657
4653 2003-04-30 Fernando Perez <fperez@colorado.edu>
4658 2003-04-30 Fernando Perez <fperez@colorado.edu>
4654
4659
4655 * IPython/genutils.py (timings_out): modified it to reduce its
4660 * IPython/genutils.py (timings_out): modified it to reduce its
4656 overhead in the common reps==1 case.
4661 overhead in the common reps==1 case.
4657
4662
4658 2003-04-29 Fernando Perez <fperez@colorado.edu>
4663 2003-04-29 Fernando Perez <fperez@colorado.edu>
4659
4664
4660 * IPython/genutils.py (timings_out): Modified to use the resource
4665 * IPython/genutils.py (timings_out): Modified to use the resource
4661 module, which avoids the wraparound problems of time.clock().
4666 module, which avoids the wraparound problems of time.clock().
4662
4667
4663 2003-04-17 *** Released version 0.2.15pre4
4668 2003-04-17 *** Released version 0.2.15pre4
4664
4669
4665 2003-04-17 Fernando Perez <fperez@colorado.edu>
4670 2003-04-17 Fernando Perez <fperez@colorado.edu>
4666
4671
4667 * setup.py (scriptfiles): Split windows-specific stuff over to a
4672 * setup.py (scriptfiles): Split windows-specific stuff over to a
4668 separate file, in an attempt to have a Windows GUI installer.
4673 separate file, in an attempt to have a Windows GUI installer.
4669 That didn't work, but part of the groundwork is done.
4674 That didn't work, but part of the groundwork is done.
4670
4675
4671 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4676 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4672 indent/unindent with 4 spaces. Particularly useful in combination
4677 indent/unindent with 4 spaces. Particularly useful in combination
4673 with the new auto-indent option.
4678 with the new auto-indent option.
4674
4679
4675 2003-04-16 Fernando Perez <fperez@colorado.edu>
4680 2003-04-16 Fernando Perez <fperez@colorado.edu>
4676
4681
4677 * IPython/Magic.py: various replacements of self.rc for
4682 * IPython/Magic.py: various replacements of self.rc for
4678 self.shell.rc. A lot more remains to be done to fully disentangle
4683 self.shell.rc. A lot more remains to be done to fully disentangle
4679 this class from the main Shell class.
4684 this class from the main Shell class.
4680
4685
4681 * IPython/GnuplotRuntime.py: added checks for mouse support so
4686 * IPython/GnuplotRuntime.py: added checks for mouse support so
4682 that we don't try to enable it if the current gnuplot doesn't
4687 that we don't try to enable it if the current gnuplot doesn't
4683 really support it. Also added checks so that we don't try to
4688 really support it. Also added checks so that we don't try to
4684 enable persist under Windows (where Gnuplot doesn't recognize the
4689 enable persist under Windows (where Gnuplot doesn't recognize the
4685 option).
4690 option).
4686
4691
4687 * IPython/iplib.py (InteractiveShell.interact): Added optional
4692 * IPython/iplib.py (InteractiveShell.interact): Added optional
4688 auto-indenting code, after a patch by King C. Shu
4693 auto-indenting code, after a patch by King C. Shu
4689 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4694 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4690 get along well with pasting indented code. If I ever figure out
4695 get along well with pasting indented code. If I ever figure out
4691 how to make that part go well, it will become on by default.
4696 how to make that part go well, it will become on by default.
4692
4697
4693 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4698 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4694 crash ipython if there was an unmatched '%' in the user's prompt
4699 crash ipython if there was an unmatched '%' in the user's prompt
4695 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4700 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4696
4701
4697 * IPython/iplib.py (InteractiveShell.interact): removed the
4702 * IPython/iplib.py (InteractiveShell.interact): removed the
4698 ability to ask the user whether he wants to crash or not at the
4703 ability to ask the user whether he wants to crash or not at the
4699 'last line' exception handler. Calling functions at that point
4704 'last line' exception handler. Calling functions at that point
4700 changes the stack, and the error reports would have incorrect
4705 changes the stack, and the error reports would have incorrect
4701 tracebacks.
4706 tracebacks.
4702
4707
4703 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4708 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4704 pass through a peger a pretty-printed form of any object. After a
4709 pass through a peger a pretty-printed form of any object. After a
4705 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4710 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4706
4711
4707 2003-04-14 Fernando Perez <fperez@colorado.edu>
4712 2003-04-14 Fernando Perez <fperez@colorado.edu>
4708
4713
4709 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4714 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4710 all files in ~ would be modified at first install (instead of
4715 all files in ~ would be modified at first install (instead of
4711 ~/.ipython). This could be potentially disastrous, as the
4716 ~/.ipython). This could be potentially disastrous, as the
4712 modification (make line-endings native) could damage binary files.
4717 modification (make line-endings native) could damage binary files.
4713
4718
4714 2003-04-10 Fernando Perez <fperez@colorado.edu>
4719 2003-04-10 Fernando Perez <fperez@colorado.edu>
4715
4720
4716 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4721 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4717 handle only lines which are invalid python. This now means that
4722 handle only lines which are invalid python. This now means that
4718 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4723 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4719 for the bug report.
4724 for the bug report.
4720
4725
4721 2003-04-01 Fernando Perez <fperez@colorado.edu>
4726 2003-04-01 Fernando Perez <fperez@colorado.edu>
4722
4727
4723 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4728 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4724 where failing to set sys.last_traceback would crash pdb.pm().
4729 where failing to set sys.last_traceback would crash pdb.pm().
4725 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4730 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4726 report.
4731 report.
4727
4732
4728 2003-03-25 Fernando Perez <fperez@colorado.edu>
4733 2003-03-25 Fernando Perez <fperez@colorado.edu>
4729
4734
4730 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4735 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4731 before printing it (it had a lot of spurious blank lines at the
4736 before printing it (it had a lot of spurious blank lines at the
4732 end).
4737 end).
4733
4738
4734 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4739 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4735 output would be sent 21 times! Obviously people don't use this
4740 output would be sent 21 times! Obviously people don't use this
4736 too often, or I would have heard about it.
4741 too often, or I would have heard about it.
4737
4742
4738 2003-03-24 Fernando Perez <fperez@colorado.edu>
4743 2003-03-24 Fernando Perez <fperez@colorado.edu>
4739
4744
4740 * setup.py (scriptfiles): renamed the data_files parameter from
4745 * setup.py (scriptfiles): renamed the data_files parameter from
4741 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4746 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4742 for the patch.
4747 for the patch.
4743
4748
4744 2003-03-20 Fernando Perez <fperez@colorado.edu>
4749 2003-03-20 Fernando Perez <fperez@colorado.edu>
4745
4750
4746 * IPython/genutils.py (error): added error() and fatal()
4751 * IPython/genutils.py (error): added error() and fatal()
4747 functions.
4752 functions.
4748
4753
4749 2003-03-18 *** Released version 0.2.15pre3
4754 2003-03-18 *** Released version 0.2.15pre3
4750
4755
4751 2003-03-18 Fernando Perez <fperez@colorado.edu>
4756 2003-03-18 Fernando Perez <fperez@colorado.edu>
4752
4757
4753 * setupext/install_data_ext.py
4758 * setupext/install_data_ext.py
4754 (install_data_ext.initialize_options): Class contributed by Jack
4759 (install_data_ext.initialize_options): Class contributed by Jack
4755 Moffit for fixing the old distutils hack. He is sending this to
4760 Moffit for fixing the old distutils hack. He is sending this to
4756 the distutils folks so in the future we may not need it as a
4761 the distutils folks so in the future we may not need it as a
4757 private fix.
4762 private fix.
4758
4763
4759 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4764 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4760 changes for Debian packaging. See his patch for full details.
4765 changes for Debian packaging. See his patch for full details.
4761 The old distutils hack of making the ipythonrc* files carry a
4766 The old distutils hack of making the ipythonrc* files carry a
4762 bogus .py extension is gone, at last. Examples were moved to a
4767 bogus .py extension is gone, at last. Examples were moved to a
4763 separate subdir under doc/, and the separate executable scripts
4768 separate subdir under doc/, and the separate executable scripts
4764 now live in their own directory. Overall a great cleanup. The
4769 now live in their own directory. Overall a great cleanup. The
4765 manual was updated to use the new files, and setup.py has been
4770 manual was updated to use the new files, and setup.py has been
4766 fixed for this setup.
4771 fixed for this setup.
4767
4772
4768 * IPython/PyColorize.py (Parser.usage): made non-executable and
4773 * IPython/PyColorize.py (Parser.usage): made non-executable and
4769 created a pycolor wrapper around it to be included as a script.
4774 created a pycolor wrapper around it to be included as a script.
4770
4775
4771 2003-03-12 *** Released version 0.2.15pre2
4776 2003-03-12 *** Released version 0.2.15pre2
4772
4777
4773 2003-03-12 Fernando Perez <fperez@colorado.edu>
4778 2003-03-12 Fernando Perez <fperez@colorado.edu>
4774
4779
4775 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4780 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4776 long-standing problem with garbage characters in some terminals.
4781 long-standing problem with garbage characters in some terminals.
4777 The issue was really that the \001 and \002 escapes must _only_ be
4782 The issue was really that the \001 and \002 escapes must _only_ be
4778 passed to input prompts (which call readline), but _never_ to
4783 passed to input prompts (which call readline), but _never_ to
4779 normal text to be printed on screen. I changed ColorANSI to have
4784 normal text to be printed on screen. I changed ColorANSI to have
4780 two classes: TermColors and InputTermColors, each with the
4785 two classes: TermColors and InputTermColors, each with the
4781 appropriate escapes for input prompts or normal text. The code in
4786 appropriate escapes for input prompts or normal text. The code in
4782 Prompts.py got slightly more complicated, but this very old and
4787 Prompts.py got slightly more complicated, but this very old and
4783 annoying bug is finally fixed.
4788 annoying bug is finally fixed.
4784
4789
4785 All the credit for nailing down the real origin of this problem
4790 All the credit for nailing down the real origin of this problem
4786 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4791 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4787 *Many* thanks to him for spending quite a bit of effort on this.
4792 *Many* thanks to him for spending quite a bit of effort on this.
4788
4793
4789 2003-03-05 *** Released version 0.2.15pre1
4794 2003-03-05 *** Released version 0.2.15pre1
4790
4795
4791 2003-03-03 Fernando Perez <fperez@colorado.edu>
4796 2003-03-03 Fernando Perez <fperez@colorado.edu>
4792
4797
4793 * IPython/FakeModule.py: Moved the former _FakeModule to a
4798 * IPython/FakeModule.py: Moved the former _FakeModule to a
4794 separate file, because it's also needed by Magic (to fix a similar
4799 separate file, because it's also needed by Magic (to fix a similar
4795 pickle-related issue in @run).
4800 pickle-related issue in @run).
4796
4801
4797 2003-03-02 Fernando Perez <fperez@colorado.edu>
4802 2003-03-02 Fernando Perez <fperez@colorado.edu>
4798
4803
4799 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4804 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4800 the autocall option at runtime.
4805 the autocall option at runtime.
4801 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4806 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4802 across Magic.py to start separating Magic from InteractiveShell.
4807 across Magic.py to start separating Magic from InteractiveShell.
4803 (Magic._ofind): Fixed to return proper namespace for dotted
4808 (Magic._ofind): Fixed to return proper namespace for dotted
4804 names. Before, a dotted name would always return 'not currently
4809 names. Before, a dotted name would always return 'not currently
4805 defined', because it would find the 'parent'. s.x would be found,
4810 defined', because it would find the 'parent'. s.x would be found,
4806 but since 'x' isn't defined by itself, it would get confused.
4811 but since 'x' isn't defined by itself, it would get confused.
4807 (Magic.magic_run): Fixed pickling problems reported by Ralf
4812 (Magic.magic_run): Fixed pickling problems reported by Ralf
4808 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4813 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4809 that I'd used when Mike Heeter reported similar issues at the
4814 that I'd used when Mike Heeter reported similar issues at the
4810 top-level, but now for @run. It boils down to injecting the
4815 top-level, but now for @run. It boils down to injecting the
4811 namespace where code is being executed with something that looks
4816 namespace where code is being executed with something that looks
4812 enough like a module to fool pickle.dump(). Since a pickle stores
4817 enough like a module to fool pickle.dump(). Since a pickle stores
4813 a named reference to the importing module, we need this for
4818 a named reference to the importing module, we need this for
4814 pickles to save something sensible.
4819 pickles to save something sensible.
4815
4820
4816 * IPython/ipmaker.py (make_IPython): added an autocall option.
4821 * IPython/ipmaker.py (make_IPython): added an autocall option.
4817
4822
4818 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4823 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4819 the auto-eval code. Now autocalling is an option, and the code is
4824 the auto-eval code. Now autocalling is an option, and the code is
4820 also vastly safer. There is no more eval() involved at all.
4825 also vastly safer. There is no more eval() involved at all.
4821
4826
4822 2003-03-01 Fernando Perez <fperez@colorado.edu>
4827 2003-03-01 Fernando Perez <fperez@colorado.edu>
4823
4828
4824 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4829 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4825 dict with named keys instead of a tuple.
4830 dict with named keys instead of a tuple.
4826
4831
4827 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4832 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4828
4833
4829 * setup.py (make_shortcut): Fixed message about directories
4834 * setup.py (make_shortcut): Fixed message about directories
4830 created during Windows installation (the directories were ok, just
4835 created during Windows installation (the directories were ok, just
4831 the printed message was misleading). Thanks to Chris Liechti
4836 the printed message was misleading). Thanks to Chris Liechti
4832 <cliechti-AT-gmx.net> for the heads up.
4837 <cliechti-AT-gmx.net> for the heads up.
4833
4838
4834 2003-02-21 Fernando Perez <fperez@colorado.edu>
4839 2003-02-21 Fernando Perez <fperez@colorado.edu>
4835
4840
4836 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4841 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4837 of ValueError exception when checking for auto-execution. This
4842 of ValueError exception when checking for auto-execution. This
4838 one is raised by things like Numeric arrays arr.flat when the
4843 one is raised by things like Numeric arrays arr.flat when the
4839 array is non-contiguous.
4844 array is non-contiguous.
4840
4845
4841 2003-01-31 Fernando Perez <fperez@colorado.edu>
4846 2003-01-31 Fernando Perez <fperez@colorado.edu>
4842
4847
4843 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4848 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4844 not return any value at all (even though the command would get
4849 not return any value at all (even though the command would get
4845 executed).
4850 executed).
4846 (xsys): Flush stdout right after printing the command to ensure
4851 (xsys): Flush stdout right after printing the command to ensure
4847 proper ordering of commands and command output in the total
4852 proper ordering of commands and command output in the total
4848 output.
4853 output.
4849 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4854 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4850 system/getoutput as defaults. The old ones are kept for
4855 system/getoutput as defaults. The old ones are kept for
4851 compatibility reasons, so no code which uses this library needs
4856 compatibility reasons, so no code which uses this library needs
4852 changing.
4857 changing.
4853
4858
4854 2003-01-27 *** Released version 0.2.14
4859 2003-01-27 *** Released version 0.2.14
4855
4860
4856 2003-01-25 Fernando Perez <fperez@colorado.edu>
4861 2003-01-25 Fernando Perez <fperez@colorado.edu>
4857
4862
4858 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4863 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4859 functions defined in previous edit sessions could not be re-edited
4864 functions defined in previous edit sessions could not be re-edited
4860 (because the temp files were immediately removed). Now temp files
4865 (because the temp files were immediately removed). Now temp files
4861 are removed only at IPython's exit.
4866 are removed only at IPython's exit.
4862 (Magic.magic_run): Improved @run to perform shell-like expansions
4867 (Magic.magic_run): Improved @run to perform shell-like expansions
4863 on its arguments (~users and $VARS). With this, @run becomes more
4868 on its arguments (~users and $VARS). With this, @run becomes more
4864 like a normal command-line.
4869 like a normal command-line.
4865
4870
4866 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4871 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4867 bugs related to embedding and cleaned up that code. A fairly
4872 bugs related to embedding and cleaned up that code. A fairly
4868 important one was the impossibility to access the global namespace
4873 important one was the impossibility to access the global namespace
4869 through the embedded IPython (only local variables were visible).
4874 through the embedded IPython (only local variables were visible).
4870
4875
4871 2003-01-14 Fernando Perez <fperez@colorado.edu>
4876 2003-01-14 Fernando Perez <fperez@colorado.edu>
4872
4877
4873 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4878 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4874 auto-calling to be a bit more conservative. Now it doesn't get
4879 auto-calling to be a bit more conservative. Now it doesn't get
4875 triggered if any of '!=()<>' are in the rest of the input line, to
4880 triggered if any of '!=()<>' are in the rest of the input line, to
4876 allow comparing callables. Thanks to Alex for the heads up.
4881 allow comparing callables. Thanks to Alex for the heads up.
4877
4882
4878 2003-01-07 Fernando Perez <fperez@colorado.edu>
4883 2003-01-07 Fernando Perez <fperez@colorado.edu>
4879
4884
4880 * IPython/genutils.py (page): fixed estimation of the number of
4885 * IPython/genutils.py (page): fixed estimation of the number of
4881 lines in a string to be paged to simply count newlines. This
4886 lines in a string to be paged to simply count newlines. This
4882 prevents over-guessing due to embedded escape sequences. A better
4887 prevents over-guessing due to embedded escape sequences. A better
4883 long-term solution would involve stripping out the control chars
4888 long-term solution would involve stripping out the control chars
4884 for the count, but it's potentially so expensive I just don't
4889 for the count, but it's potentially so expensive I just don't
4885 think it's worth doing.
4890 think it's worth doing.
4886
4891
4887 2002-12-19 *** Released version 0.2.14pre50
4892 2002-12-19 *** Released version 0.2.14pre50
4888
4893
4889 2002-12-19 Fernando Perez <fperez@colorado.edu>
4894 2002-12-19 Fernando Perez <fperez@colorado.edu>
4890
4895
4891 * tools/release (version): Changed release scripts to inform
4896 * tools/release (version): Changed release scripts to inform
4892 Andrea and build a NEWS file with a list of recent changes.
4897 Andrea and build a NEWS file with a list of recent changes.
4893
4898
4894 * IPython/ColorANSI.py (__all__): changed terminal detection
4899 * IPython/ColorANSI.py (__all__): changed terminal detection
4895 code. Seems to work better for xterms without breaking
4900 code. Seems to work better for xterms without breaking
4896 konsole. Will need more testing to determine if WinXP and Mac OSX
4901 konsole. Will need more testing to determine if WinXP and Mac OSX
4897 also work ok.
4902 also work ok.
4898
4903
4899 2002-12-18 *** Released version 0.2.14pre49
4904 2002-12-18 *** Released version 0.2.14pre49
4900
4905
4901 2002-12-18 Fernando Perez <fperez@colorado.edu>
4906 2002-12-18 Fernando Perez <fperez@colorado.edu>
4902
4907
4903 * Docs: added new info about Mac OSX, from Andrea.
4908 * Docs: added new info about Mac OSX, from Andrea.
4904
4909
4905 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4910 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4906 allow direct plotting of python strings whose format is the same
4911 allow direct plotting of python strings whose format is the same
4907 of gnuplot data files.
4912 of gnuplot data files.
4908
4913
4909 2002-12-16 Fernando Perez <fperez@colorado.edu>
4914 2002-12-16 Fernando Perez <fperez@colorado.edu>
4910
4915
4911 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4916 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4912 value of exit question to be acknowledged.
4917 value of exit question to be acknowledged.
4913
4918
4914 2002-12-03 Fernando Perez <fperez@colorado.edu>
4919 2002-12-03 Fernando Perez <fperez@colorado.edu>
4915
4920
4916 * IPython/ipmaker.py: removed generators, which had been added
4921 * IPython/ipmaker.py: removed generators, which had been added
4917 by mistake in an earlier debugging run. This was causing trouble
4922 by mistake in an earlier debugging run. This was causing trouble
4918 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4923 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4919 for pointing this out.
4924 for pointing this out.
4920
4925
4921 2002-11-17 Fernando Perez <fperez@colorado.edu>
4926 2002-11-17 Fernando Perez <fperez@colorado.edu>
4922
4927
4923 * Manual: updated the Gnuplot section.
4928 * Manual: updated the Gnuplot section.
4924
4929
4925 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4930 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4926 a much better split of what goes in Runtime and what goes in
4931 a much better split of what goes in Runtime and what goes in
4927 Interactive.
4932 Interactive.
4928
4933
4929 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4934 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4930 being imported from iplib.
4935 being imported from iplib.
4931
4936
4932 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4937 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4933 for command-passing. Now the global Gnuplot instance is called
4938 for command-passing. Now the global Gnuplot instance is called
4934 'gp' instead of 'g', which was really a far too fragile and
4939 'gp' instead of 'g', which was really a far too fragile and
4935 common name.
4940 common name.
4936
4941
4937 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4942 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4938 bounding boxes generated by Gnuplot for square plots.
4943 bounding boxes generated by Gnuplot for square plots.
4939
4944
4940 * IPython/genutils.py (popkey): new function added. I should
4945 * IPython/genutils.py (popkey): new function added. I should
4941 suggest this on c.l.py as a dict method, it seems useful.
4946 suggest this on c.l.py as a dict method, it seems useful.
4942
4947
4943 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4948 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4944 to transparently handle PostScript generation. MUCH better than
4949 to transparently handle PostScript generation. MUCH better than
4945 the previous plot_eps/replot_eps (which I removed now). The code
4950 the previous plot_eps/replot_eps (which I removed now). The code
4946 is also fairly clean and well documented now (including
4951 is also fairly clean and well documented now (including
4947 docstrings).
4952 docstrings).
4948
4953
4949 2002-11-13 Fernando Perez <fperez@colorado.edu>
4954 2002-11-13 Fernando Perez <fperez@colorado.edu>
4950
4955
4951 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4956 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4952 (inconsistent with options).
4957 (inconsistent with options).
4953
4958
4954 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4959 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4955 manually disabled, I don't know why. Fixed it.
4960 manually disabled, I don't know why. Fixed it.
4956 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4961 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4957 eps output.
4962 eps output.
4958
4963
4959 2002-11-12 Fernando Perez <fperez@colorado.edu>
4964 2002-11-12 Fernando Perez <fperez@colorado.edu>
4960
4965
4961 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4966 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4962 don't propagate up to caller. Fixes crash reported by François
4967 don't propagate up to caller. Fixes crash reported by François
4963 Pinard.
4968 Pinard.
4964
4969
4965 2002-11-09 Fernando Perez <fperez@colorado.edu>
4970 2002-11-09 Fernando Perez <fperez@colorado.edu>
4966
4971
4967 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4972 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4968 history file for new users.
4973 history file for new users.
4969 (make_IPython): fixed bug where initial install would leave the
4974 (make_IPython): fixed bug where initial install would leave the
4970 user running in the .ipython dir.
4975 user running in the .ipython dir.
4971 (make_IPython): fixed bug where config dir .ipython would be
4976 (make_IPython): fixed bug where config dir .ipython would be
4972 created regardless of the given -ipythondir option. Thanks to Cory
4977 created regardless of the given -ipythondir option. Thanks to Cory
4973 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4978 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4974
4979
4975 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4980 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4976 type confirmations. Will need to use it in all of IPython's code
4981 type confirmations. Will need to use it in all of IPython's code
4977 consistently.
4982 consistently.
4978
4983
4979 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4984 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4980 context to print 31 lines instead of the default 5. This will make
4985 context to print 31 lines instead of the default 5. This will make
4981 the crash reports extremely detailed in case the problem is in
4986 the crash reports extremely detailed in case the problem is in
4982 libraries I don't have access to.
4987 libraries I don't have access to.
4983
4988
4984 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4989 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4985 line of defense' code to still crash, but giving users fair
4990 line of defense' code to still crash, but giving users fair
4986 warning. I don't want internal errors to go unreported: if there's
4991 warning. I don't want internal errors to go unreported: if there's
4987 an internal problem, IPython should crash and generate a full
4992 an internal problem, IPython should crash and generate a full
4988 report.
4993 report.
4989
4994
4990 2002-11-08 Fernando Perez <fperez@colorado.edu>
4995 2002-11-08 Fernando Perez <fperez@colorado.edu>
4991
4996
4992 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4997 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4993 otherwise uncaught exceptions which can appear if people set
4998 otherwise uncaught exceptions which can appear if people set
4994 sys.stdout to something badly broken. Thanks to a crash report
4999 sys.stdout to something badly broken. Thanks to a crash report
4995 from henni-AT-mail.brainbot.com.
5000 from henni-AT-mail.brainbot.com.
4996
5001
4997 2002-11-04 Fernando Perez <fperez@colorado.edu>
5002 2002-11-04 Fernando Perez <fperez@colorado.edu>
4998
5003
4999 * IPython/iplib.py (InteractiveShell.interact): added
5004 * IPython/iplib.py (InteractiveShell.interact): added
5000 __IPYTHON__active to the builtins. It's a flag which goes on when
5005 __IPYTHON__active to the builtins. It's a flag which goes on when
5001 the interaction starts and goes off again when it stops. This
5006 the interaction starts and goes off again when it stops. This
5002 allows embedding code to detect being inside IPython. Before this
5007 allows embedding code to detect being inside IPython. Before this
5003 was done via __IPYTHON__, but that only shows that an IPython
5008 was done via __IPYTHON__, but that only shows that an IPython
5004 instance has been created.
5009 instance has been created.
5005
5010
5006 * IPython/Magic.py (Magic.magic_env): I realized that in a
5011 * IPython/Magic.py (Magic.magic_env): I realized that in a
5007 UserDict, instance.data holds the data as a normal dict. So I
5012 UserDict, instance.data holds the data as a normal dict. So I
5008 modified @env to return os.environ.data instead of rebuilding a
5013 modified @env to return os.environ.data instead of rebuilding a
5009 dict by hand.
5014 dict by hand.
5010
5015
5011 2002-11-02 Fernando Perez <fperez@colorado.edu>
5016 2002-11-02 Fernando Perez <fperez@colorado.edu>
5012
5017
5013 * IPython/genutils.py (warn): changed so that level 1 prints no
5018 * IPython/genutils.py (warn): changed so that level 1 prints no
5014 header. Level 2 is now the default (with 'WARNING' header, as
5019 header. Level 2 is now the default (with 'WARNING' header, as
5015 before). I think I tracked all places where changes were needed in
5020 before). I think I tracked all places where changes were needed in
5016 IPython, but outside code using the old level numbering may have
5021 IPython, but outside code using the old level numbering may have
5017 broken.
5022 broken.
5018
5023
5019 * IPython/iplib.py (InteractiveShell.runcode): added this to
5024 * IPython/iplib.py (InteractiveShell.runcode): added this to
5020 handle the tracebacks in SystemExit traps correctly. The previous
5025 handle the tracebacks in SystemExit traps correctly. The previous
5021 code (through interact) was printing more of the stack than
5026 code (through interact) was printing more of the stack than
5022 necessary, showing IPython internal code to the user.
5027 necessary, showing IPython internal code to the user.
5023
5028
5024 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5029 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5025 default. Now that the default at the confirmation prompt is yes,
5030 default. Now that the default at the confirmation prompt is yes,
5026 it's not so intrusive. François' argument that ipython sessions
5031 it's not so intrusive. François' argument that ipython sessions
5027 tend to be complex enough not to lose them from an accidental C-d,
5032 tend to be complex enough not to lose them from an accidental C-d,
5028 is a valid one.
5033 is a valid one.
5029
5034
5030 * IPython/iplib.py (InteractiveShell.interact): added a
5035 * IPython/iplib.py (InteractiveShell.interact): added a
5031 showtraceback() call to the SystemExit trap, and modified the exit
5036 showtraceback() call to the SystemExit trap, and modified the exit
5032 confirmation to have yes as the default.
5037 confirmation to have yes as the default.
5033
5038
5034 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5039 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5035 this file. It's been gone from the code for a long time, this was
5040 this file. It's been gone from the code for a long time, this was
5036 simply leftover junk.
5041 simply leftover junk.
5037
5042
5038 2002-11-01 Fernando Perez <fperez@colorado.edu>
5043 2002-11-01 Fernando Perez <fperez@colorado.edu>
5039
5044
5040 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5045 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5041 added. If set, IPython now traps EOF and asks for
5046 added. If set, IPython now traps EOF and asks for
5042 confirmation. After a request by François Pinard.
5047 confirmation. After a request by François Pinard.
5043
5048
5044 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5049 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5045 of @abort, and with a new (better) mechanism for handling the
5050 of @abort, and with a new (better) mechanism for handling the
5046 exceptions.
5051 exceptions.
5047
5052
5048 2002-10-27 Fernando Perez <fperez@colorado.edu>
5053 2002-10-27 Fernando Perez <fperez@colorado.edu>
5049
5054
5050 * IPython/usage.py (__doc__): updated the --help information and
5055 * IPython/usage.py (__doc__): updated the --help information and
5051 the ipythonrc file to indicate that -log generates
5056 the ipythonrc file to indicate that -log generates
5052 ./ipython.log. Also fixed the corresponding info in @logstart.
5057 ./ipython.log. Also fixed the corresponding info in @logstart.
5053 This and several other fixes in the manuals thanks to reports by
5058 This and several other fixes in the manuals thanks to reports by
5054 François Pinard <pinard-AT-iro.umontreal.ca>.
5059 François Pinard <pinard-AT-iro.umontreal.ca>.
5055
5060
5056 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5061 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5057 refer to @logstart (instead of @log, which doesn't exist).
5062 refer to @logstart (instead of @log, which doesn't exist).
5058
5063
5059 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5064 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5060 AttributeError crash. Thanks to Christopher Armstrong
5065 AttributeError crash. Thanks to Christopher Armstrong
5061 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5066 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5062 introduced recently (in 0.2.14pre37) with the fix to the eval
5067 introduced recently (in 0.2.14pre37) with the fix to the eval
5063 problem mentioned below.
5068 problem mentioned below.
5064
5069
5065 2002-10-17 Fernando Perez <fperez@colorado.edu>
5070 2002-10-17 Fernando Perez <fperez@colorado.edu>
5066
5071
5067 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5072 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5068 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5073 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5069
5074
5070 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5075 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5071 this function to fix a problem reported by Alex Schmolck. He saw
5076 this function to fix a problem reported by Alex Schmolck. He saw
5072 it with list comprehensions and generators, which were getting
5077 it with list comprehensions and generators, which were getting
5073 called twice. The real problem was an 'eval' call in testing for
5078 called twice. The real problem was an 'eval' call in testing for
5074 automagic which was evaluating the input line silently.
5079 automagic which was evaluating the input line silently.
5075
5080
5076 This is a potentially very nasty bug, if the input has side
5081 This is a potentially very nasty bug, if the input has side
5077 effects which must not be repeated. The code is much cleaner now,
5082 effects which must not be repeated. The code is much cleaner now,
5078 without any blanket 'except' left and with a regexp test for
5083 without any blanket 'except' left and with a regexp test for
5079 actual function names.
5084 actual function names.
5080
5085
5081 But an eval remains, which I'm not fully comfortable with. I just
5086 But an eval remains, which I'm not fully comfortable with. I just
5082 don't know how to find out if an expression could be a callable in
5087 don't know how to find out if an expression could be a callable in
5083 the user's namespace without doing an eval on the string. However
5088 the user's namespace without doing an eval on the string. However
5084 that string is now much more strictly checked so that no code
5089 that string is now much more strictly checked so that no code
5085 slips by, so the eval should only happen for things that can
5090 slips by, so the eval should only happen for things that can
5086 really be only function/method names.
5091 really be only function/method names.
5087
5092
5088 2002-10-15 Fernando Perez <fperez@colorado.edu>
5093 2002-10-15 Fernando Perez <fperez@colorado.edu>
5089
5094
5090 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5095 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5091 OSX information to main manual, removed README_Mac_OSX file from
5096 OSX information to main manual, removed README_Mac_OSX file from
5092 distribution. Also updated credits for recent additions.
5097 distribution. Also updated credits for recent additions.
5093
5098
5094 2002-10-10 Fernando Perez <fperez@colorado.edu>
5099 2002-10-10 Fernando Perez <fperez@colorado.edu>
5095
5100
5096 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5101 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5097 terminal-related issues. Many thanks to Andrea Riciputi
5102 terminal-related issues. Many thanks to Andrea Riciputi
5098 <andrea.riciputi-AT-libero.it> for writing it.
5103 <andrea.riciputi-AT-libero.it> for writing it.
5099
5104
5100 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5105 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5101 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5106 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5102
5107
5103 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5108 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5104 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5109 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5105 <syver-en-AT-online.no> who both submitted patches for this problem.
5110 <syver-en-AT-online.no> who both submitted patches for this problem.
5106
5111
5107 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5112 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5108 global embedding to make sure that things don't overwrite user
5113 global embedding to make sure that things don't overwrite user
5109 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5114 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5110
5115
5111 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5116 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5112 compatibility. Thanks to Hayden Callow
5117 compatibility. Thanks to Hayden Callow
5113 <h.callow-AT-elec.canterbury.ac.nz>
5118 <h.callow-AT-elec.canterbury.ac.nz>
5114
5119
5115 2002-10-04 Fernando Perez <fperez@colorado.edu>
5120 2002-10-04 Fernando Perez <fperez@colorado.edu>
5116
5121
5117 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5122 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5118 Gnuplot.File objects.
5123 Gnuplot.File objects.
5119
5124
5120 2002-07-23 Fernando Perez <fperez@colorado.edu>
5125 2002-07-23 Fernando Perez <fperez@colorado.edu>
5121
5126
5122 * IPython/genutils.py (timing): Added timings() and timing() for
5127 * IPython/genutils.py (timing): Added timings() and timing() for
5123 quick access to the most commonly needed data, the execution
5128 quick access to the most commonly needed data, the execution
5124 times. Old timing() renamed to timings_out().
5129 times. Old timing() renamed to timings_out().
5125
5130
5126 2002-07-18 Fernando Perez <fperez@colorado.edu>
5131 2002-07-18 Fernando Perez <fperez@colorado.edu>
5127
5132
5128 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5133 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5129 bug with nested instances disrupting the parent's tab completion.
5134 bug with nested instances disrupting the parent's tab completion.
5130
5135
5131 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5136 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5132 all_completions code to begin the emacs integration.
5137 all_completions code to begin the emacs integration.
5133
5138
5134 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5139 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5135 argument to allow titling individual arrays when plotting.
5140 argument to allow titling individual arrays when plotting.
5136
5141
5137 2002-07-15 Fernando Perez <fperez@colorado.edu>
5142 2002-07-15 Fernando Perez <fperez@colorado.edu>
5138
5143
5139 * setup.py (make_shortcut): changed to retrieve the value of
5144 * setup.py (make_shortcut): changed to retrieve the value of
5140 'Program Files' directory from the registry (this value changes in
5145 'Program Files' directory from the registry (this value changes in
5141 non-english versions of Windows). Thanks to Thomas Fanslau
5146 non-english versions of Windows). Thanks to Thomas Fanslau
5142 <tfanslau-AT-gmx.de> for the report.
5147 <tfanslau-AT-gmx.de> for the report.
5143
5148
5144 2002-07-10 Fernando Perez <fperez@colorado.edu>
5149 2002-07-10 Fernando Perez <fperez@colorado.edu>
5145
5150
5146 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5151 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5147 a bug in pdb, which crashes if a line with only whitespace is
5152 a bug in pdb, which crashes if a line with only whitespace is
5148 entered. Bug report submitted to sourceforge.
5153 entered. Bug report submitted to sourceforge.
5149
5154
5150 2002-07-09 Fernando Perez <fperez@colorado.edu>
5155 2002-07-09 Fernando Perez <fperez@colorado.edu>
5151
5156
5152 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5157 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5153 reporting exceptions (it's a bug in inspect.py, I just set a
5158 reporting exceptions (it's a bug in inspect.py, I just set a
5154 workaround).
5159 workaround).
5155
5160
5156 2002-07-08 Fernando Perez <fperez@colorado.edu>
5161 2002-07-08 Fernando Perez <fperez@colorado.edu>
5157
5162
5158 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5163 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5159 __IPYTHON__ in __builtins__ to show up in user_ns.
5164 __IPYTHON__ in __builtins__ to show up in user_ns.
5160
5165
5161 2002-07-03 Fernando Perez <fperez@colorado.edu>
5166 2002-07-03 Fernando Perez <fperez@colorado.edu>
5162
5167
5163 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5168 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5164 name from @gp_set_instance to @gp_set_default.
5169 name from @gp_set_instance to @gp_set_default.
5165
5170
5166 * IPython/ipmaker.py (make_IPython): default editor value set to
5171 * IPython/ipmaker.py (make_IPython): default editor value set to
5167 '0' (a string), to match the rc file. Otherwise will crash when
5172 '0' (a string), to match the rc file. Otherwise will crash when
5168 .strip() is called on it.
5173 .strip() is called on it.
5169
5174
5170
5175
5171 2002-06-28 Fernando Perez <fperez@colorado.edu>
5176 2002-06-28 Fernando Perez <fperez@colorado.edu>
5172
5177
5173 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5178 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5174 of files in current directory when a file is executed via
5179 of files in current directory when a file is executed via
5175 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5180 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5176
5181
5177 * setup.py (manfiles): fix for rpm builds, submitted by RA
5182 * setup.py (manfiles): fix for rpm builds, submitted by RA
5178 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5183 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5179
5184
5180 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5185 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5181 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5186 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5182 string!). A. Schmolck caught this one.
5187 string!). A. Schmolck caught this one.
5183
5188
5184 2002-06-27 Fernando Perez <fperez@colorado.edu>
5189 2002-06-27 Fernando Perez <fperez@colorado.edu>
5185
5190
5186 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5191 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5187 defined files at the cmd line. __name__ wasn't being set to
5192 defined files at the cmd line. __name__ wasn't being set to
5188 __main__.
5193 __main__.
5189
5194
5190 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5195 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5191 regular lists and tuples besides Numeric arrays.
5196 regular lists and tuples besides Numeric arrays.
5192
5197
5193 * IPython/Prompts.py (CachedOutput.__call__): Added output
5198 * IPython/Prompts.py (CachedOutput.__call__): Added output
5194 supression for input ending with ';'. Similar to Mathematica and
5199 supression for input ending with ';'. Similar to Mathematica and
5195 Matlab. The _* vars and Out[] list are still updated, just like
5200 Matlab. The _* vars and Out[] list are still updated, just like
5196 Mathematica behaves.
5201 Mathematica behaves.
5197
5202
5198 2002-06-25 Fernando Perez <fperez@colorado.edu>
5203 2002-06-25 Fernando Perez <fperez@colorado.edu>
5199
5204
5200 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5205 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5201 .ini extensions for profiels under Windows.
5206 .ini extensions for profiels under Windows.
5202
5207
5203 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5208 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5204 string form. Fix contributed by Alexander Schmolck
5209 string form. Fix contributed by Alexander Schmolck
5205 <a.schmolck-AT-gmx.net>
5210 <a.schmolck-AT-gmx.net>
5206
5211
5207 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5212 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5208 pre-configured Gnuplot instance.
5213 pre-configured Gnuplot instance.
5209
5214
5210 2002-06-21 Fernando Perez <fperez@colorado.edu>
5215 2002-06-21 Fernando Perez <fperez@colorado.edu>
5211
5216
5212 * IPython/numutils.py (exp_safe): new function, works around the
5217 * IPython/numutils.py (exp_safe): new function, works around the
5213 underflow problems in Numeric.
5218 underflow problems in Numeric.
5214 (log2): New fn. Safe log in base 2: returns exact integer answer
5219 (log2): New fn. Safe log in base 2: returns exact integer answer
5215 for exact integer powers of 2.
5220 for exact integer powers of 2.
5216
5221
5217 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5222 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5218 properly.
5223 properly.
5219
5224
5220 2002-06-20 Fernando Perez <fperez@colorado.edu>
5225 2002-06-20 Fernando Perez <fperez@colorado.edu>
5221
5226
5222 * IPython/genutils.py (timing): new function like
5227 * IPython/genutils.py (timing): new function like
5223 Mathematica's. Similar to time_test, but returns more info.
5228 Mathematica's. Similar to time_test, but returns more info.
5224
5229
5225 2002-06-18 Fernando Perez <fperez@colorado.edu>
5230 2002-06-18 Fernando Perez <fperez@colorado.edu>
5226
5231
5227 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5232 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5228 according to Mike Heeter's suggestions.
5233 according to Mike Heeter's suggestions.
5229
5234
5230 2002-06-16 Fernando Perez <fperez@colorado.edu>
5235 2002-06-16 Fernando Perez <fperez@colorado.edu>
5231
5236
5232 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5237 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5233 system. GnuplotMagic is gone as a user-directory option. New files
5238 system. GnuplotMagic is gone as a user-directory option. New files
5234 make it easier to use all the gnuplot stuff both from external
5239 make it easier to use all the gnuplot stuff both from external
5235 programs as well as from IPython. Had to rewrite part of
5240 programs as well as from IPython. Had to rewrite part of
5236 hardcopy() b/c of a strange bug: often the ps files simply don't
5241 hardcopy() b/c of a strange bug: often the ps files simply don't
5237 get created, and require a repeat of the command (often several
5242 get created, and require a repeat of the command (often several
5238 times).
5243 times).
5239
5244
5240 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5245 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5241 resolve output channel at call time, so that if sys.stderr has
5246 resolve output channel at call time, so that if sys.stderr has
5242 been redirected by user this gets honored.
5247 been redirected by user this gets honored.
5243
5248
5244 2002-06-13 Fernando Perez <fperez@colorado.edu>
5249 2002-06-13 Fernando Perez <fperez@colorado.edu>
5245
5250
5246 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5251 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5247 IPShell. Kept a copy with the old names to avoid breaking people's
5252 IPShell. Kept a copy with the old names to avoid breaking people's
5248 embedded code.
5253 embedded code.
5249
5254
5250 * IPython/ipython: simplified it to the bare minimum after
5255 * IPython/ipython: simplified it to the bare minimum after
5251 Holger's suggestions. Added info about how to use it in
5256 Holger's suggestions. Added info about how to use it in
5252 PYTHONSTARTUP.
5257 PYTHONSTARTUP.
5253
5258
5254 * IPython/Shell.py (IPythonShell): changed the options passing
5259 * IPython/Shell.py (IPythonShell): changed the options passing
5255 from a string with funky %s replacements to a straight list. Maybe
5260 from a string with funky %s replacements to a straight list. Maybe
5256 a bit more typing, but it follows sys.argv conventions, so there's
5261 a bit more typing, but it follows sys.argv conventions, so there's
5257 less special-casing to remember.
5262 less special-casing to remember.
5258
5263
5259 2002-06-12 Fernando Perez <fperez@colorado.edu>
5264 2002-06-12 Fernando Perez <fperez@colorado.edu>
5260
5265
5261 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5266 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5262 command. Thanks to a suggestion by Mike Heeter.
5267 command. Thanks to a suggestion by Mike Heeter.
5263 (Magic.magic_pfile): added behavior to look at filenames if given
5268 (Magic.magic_pfile): added behavior to look at filenames if given
5264 arg is not a defined object.
5269 arg is not a defined object.
5265 (Magic.magic_save): New @save function to save code snippets. Also
5270 (Magic.magic_save): New @save function to save code snippets. Also
5266 a Mike Heeter idea.
5271 a Mike Heeter idea.
5267
5272
5268 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5273 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5269 plot() and replot(). Much more convenient now, especially for
5274 plot() and replot(). Much more convenient now, especially for
5270 interactive use.
5275 interactive use.
5271
5276
5272 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5277 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5273 filenames.
5278 filenames.
5274
5279
5275 2002-06-02 Fernando Perez <fperez@colorado.edu>
5280 2002-06-02 Fernando Perez <fperez@colorado.edu>
5276
5281
5277 * IPython/Struct.py (Struct.__init__): modified to admit
5282 * IPython/Struct.py (Struct.__init__): modified to admit
5278 initialization via another struct.
5283 initialization via another struct.
5279
5284
5280 * IPython/genutils.py (SystemExec.__init__): New stateful
5285 * IPython/genutils.py (SystemExec.__init__): New stateful
5281 interface to xsys and bq. Useful for writing system scripts.
5286 interface to xsys and bq. Useful for writing system scripts.
5282
5287
5283 2002-05-30 Fernando Perez <fperez@colorado.edu>
5288 2002-05-30 Fernando Perez <fperez@colorado.edu>
5284
5289
5285 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5290 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5286 documents. This will make the user download smaller (it's getting
5291 documents. This will make the user download smaller (it's getting
5287 too big).
5292 too big).
5288
5293
5289 2002-05-29 Fernando Perez <fperez@colorado.edu>
5294 2002-05-29 Fernando Perez <fperez@colorado.edu>
5290
5295
5291 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5296 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5292 fix problems with shelve and pickle. Seems to work, but I don't
5297 fix problems with shelve and pickle. Seems to work, but I don't
5293 know if corner cases break it. Thanks to Mike Heeter
5298 know if corner cases break it. Thanks to Mike Heeter
5294 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5299 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5295
5300
5296 2002-05-24 Fernando Perez <fperez@colorado.edu>
5301 2002-05-24 Fernando Perez <fperez@colorado.edu>
5297
5302
5298 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5303 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5299 macros having broken.
5304 macros having broken.
5300
5305
5301 2002-05-21 Fernando Perez <fperez@colorado.edu>
5306 2002-05-21 Fernando Perez <fperez@colorado.edu>
5302
5307
5303 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5308 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5304 introduced logging bug: all history before logging started was
5309 introduced logging bug: all history before logging started was
5305 being written one character per line! This came from the redesign
5310 being written one character per line! This came from the redesign
5306 of the input history as a special list which slices to strings,
5311 of the input history as a special list which slices to strings,
5307 not to lists.
5312 not to lists.
5308
5313
5309 2002-05-20 Fernando Perez <fperez@colorado.edu>
5314 2002-05-20 Fernando Perez <fperez@colorado.edu>
5310
5315
5311 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5316 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5312 be an attribute of all classes in this module. The design of these
5317 be an attribute of all classes in this module. The design of these
5313 classes needs some serious overhauling.
5318 classes needs some serious overhauling.
5314
5319
5315 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5320 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5316 which was ignoring '_' in option names.
5321 which was ignoring '_' in option names.
5317
5322
5318 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5323 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5319 'Verbose_novars' to 'Context' and made it the new default. It's a
5324 'Verbose_novars' to 'Context' and made it the new default. It's a
5320 bit more readable and also safer than verbose.
5325 bit more readable and also safer than verbose.
5321
5326
5322 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5327 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5323 triple-quoted strings.
5328 triple-quoted strings.
5324
5329
5325 * IPython/OInspect.py (__all__): new module exposing the object
5330 * IPython/OInspect.py (__all__): new module exposing the object
5326 introspection facilities. Now the corresponding magics are dummy
5331 introspection facilities. Now the corresponding magics are dummy
5327 wrappers around this. Having this module will make it much easier
5332 wrappers around this. Having this module will make it much easier
5328 to put these functions into our modified pdb.
5333 to put these functions into our modified pdb.
5329 This new object inspector system uses the new colorizing module,
5334 This new object inspector system uses the new colorizing module,
5330 so source code and other things are nicely syntax highlighted.
5335 so source code and other things are nicely syntax highlighted.
5331
5336
5332 2002-05-18 Fernando Perez <fperez@colorado.edu>
5337 2002-05-18 Fernando Perez <fperez@colorado.edu>
5333
5338
5334 * IPython/ColorANSI.py: Split the coloring tools into a separate
5339 * IPython/ColorANSI.py: Split the coloring tools into a separate
5335 module so I can use them in other code easier (they were part of
5340 module so I can use them in other code easier (they were part of
5336 ultraTB).
5341 ultraTB).
5337
5342
5338 2002-05-17 Fernando Perez <fperez@colorado.edu>
5343 2002-05-17 Fernando Perez <fperez@colorado.edu>
5339
5344
5340 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5345 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5341 fixed it to set the global 'g' also to the called instance, as
5346 fixed it to set the global 'g' also to the called instance, as
5342 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5347 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5343 user's 'g' variables).
5348 user's 'g' variables).
5344
5349
5345 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5350 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5346 global variables (aliases to _ih,_oh) so that users which expect
5351 global variables (aliases to _ih,_oh) so that users which expect
5347 In[5] or Out[7] to work aren't unpleasantly surprised.
5352 In[5] or Out[7] to work aren't unpleasantly surprised.
5348 (InputList.__getslice__): new class to allow executing slices of
5353 (InputList.__getslice__): new class to allow executing slices of
5349 input history directly. Very simple class, complements the use of
5354 input history directly. Very simple class, complements the use of
5350 macros.
5355 macros.
5351
5356
5352 2002-05-16 Fernando Perez <fperez@colorado.edu>
5357 2002-05-16 Fernando Perez <fperez@colorado.edu>
5353
5358
5354 * setup.py (docdirbase): make doc directory be just doc/IPython
5359 * setup.py (docdirbase): make doc directory be just doc/IPython
5355 without version numbers, it will reduce clutter for users.
5360 without version numbers, it will reduce clutter for users.
5356
5361
5357 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5362 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5358 execfile call to prevent possible memory leak. See for details:
5363 execfile call to prevent possible memory leak. See for details:
5359 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5364 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5360
5365
5361 2002-05-15 Fernando Perez <fperez@colorado.edu>
5366 2002-05-15 Fernando Perez <fperez@colorado.edu>
5362
5367
5363 * IPython/Magic.py (Magic.magic_psource): made the object
5368 * IPython/Magic.py (Magic.magic_psource): made the object
5364 introspection names be more standard: pdoc, pdef, pfile and
5369 introspection names be more standard: pdoc, pdef, pfile and
5365 psource. They all print/page their output, and it makes
5370 psource. They all print/page their output, and it makes
5366 remembering them easier. Kept old names for compatibility as
5371 remembering them easier. Kept old names for compatibility as
5367 aliases.
5372 aliases.
5368
5373
5369 2002-05-14 Fernando Perez <fperez@colorado.edu>
5374 2002-05-14 Fernando Perez <fperez@colorado.edu>
5370
5375
5371 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5376 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5372 what the mouse problem was. The trick is to use gnuplot with temp
5377 what the mouse problem was. The trick is to use gnuplot with temp
5373 files and NOT with pipes (for data communication), because having
5378 files and NOT with pipes (for data communication), because having
5374 both pipes and the mouse on is bad news.
5379 both pipes and the mouse on is bad news.
5375
5380
5376 2002-05-13 Fernando Perez <fperez@colorado.edu>
5381 2002-05-13 Fernando Perez <fperez@colorado.edu>
5377
5382
5378 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5383 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5379 bug. Information would be reported about builtins even when
5384 bug. Information would be reported about builtins even when
5380 user-defined functions overrode them.
5385 user-defined functions overrode them.
5381
5386
5382 2002-05-11 Fernando Perez <fperez@colorado.edu>
5387 2002-05-11 Fernando Perez <fperez@colorado.edu>
5383
5388
5384 * IPython/__init__.py (__all__): removed FlexCompleter from
5389 * IPython/__init__.py (__all__): removed FlexCompleter from
5385 __all__ so that things don't fail in platforms without readline.
5390 __all__ so that things don't fail in platforms without readline.
5386
5391
5387 2002-05-10 Fernando Perez <fperez@colorado.edu>
5392 2002-05-10 Fernando Perez <fperez@colorado.edu>
5388
5393
5389 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5394 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5390 it requires Numeric, effectively making Numeric a dependency for
5395 it requires Numeric, effectively making Numeric a dependency for
5391 IPython.
5396 IPython.
5392
5397
5393 * Released 0.2.13
5398 * Released 0.2.13
5394
5399
5395 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5400 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5396 profiler interface. Now all the major options from the profiler
5401 profiler interface. Now all the major options from the profiler
5397 module are directly supported in IPython, both for single
5402 module are directly supported in IPython, both for single
5398 expressions (@prun) and for full programs (@run -p).
5403 expressions (@prun) and for full programs (@run -p).
5399
5404
5400 2002-05-09 Fernando Perez <fperez@colorado.edu>
5405 2002-05-09 Fernando Perez <fperez@colorado.edu>
5401
5406
5402 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5407 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5403 magic properly formatted for screen.
5408 magic properly formatted for screen.
5404
5409
5405 * setup.py (make_shortcut): Changed things to put pdf version in
5410 * setup.py (make_shortcut): Changed things to put pdf version in
5406 doc/ instead of doc/manual (had to change lyxport a bit).
5411 doc/ instead of doc/manual (had to change lyxport a bit).
5407
5412
5408 * IPython/Magic.py (Profile.string_stats): made profile runs go
5413 * IPython/Magic.py (Profile.string_stats): made profile runs go
5409 through pager (they are long and a pager allows searching, saving,
5414 through pager (they are long and a pager allows searching, saving,
5410 etc.)
5415 etc.)
5411
5416
5412 2002-05-08 Fernando Perez <fperez@colorado.edu>
5417 2002-05-08 Fernando Perez <fperez@colorado.edu>
5413
5418
5414 * Released 0.2.12
5419 * Released 0.2.12
5415
5420
5416 2002-05-06 Fernando Perez <fperez@colorado.edu>
5421 2002-05-06 Fernando Perez <fperez@colorado.edu>
5417
5422
5418 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5423 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5419 introduced); 'hist n1 n2' was broken.
5424 introduced); 'hist n1 n2' was broken.
5420 (Magic.magic_pdb): added optional on/off arguments to @pdb
5425 (Magic.magic_pdb): added optional on/off arguments to @pdb
5421 (Magic.magic_run): added option -i to @run, which executes code in
5426 (Magic.magic_run): added option -i to @run, which executes code in
5422 the IPython namespace instead of a clean one. Also added @irun as
5427 the IPython namespace instead of a clean one. Also added @irun as
5423 an alias to @run -i.
5428 an alias to @run -i.
5424
5429
5425 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5430 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5426 fixed (it didn't really do anything, the namespaces were wrong).
5431 fixed (it didn't really do anything, the namespaces were wrong).
5427
5432
5428 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5433 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5429
5434
5430 * IPython/__init__.py (__all__): Fixed package namespace, now
5435 * IPython/__init__.py (__all__): Fixed package namespace, now
5431 'import IPython' does give access to IPython.<all> as
5436 'import IPython' does give access to IPython.<all> as
5432 expected. Also renamed __release__ to Release.
5437 expected. Also renamed __release__ to Release.
5433
5438
5434 * IPython/Debugger.py (__license__): created new Pdb class which
5439 * IPython/Debugger.py (__license__): created new Pdb class which
5435 functions like a drop-in for the normal pdb.Pdb but does NOT
5440 functions like a drop-in for the normal pdb.Pdb but does NOT
5436 import readline by default. This way it doesn't muck up IPython's
5441 import readline by default. This way it doesn't muck up IPython's
5437 readline handling, and now tab-completion finally works in the
5442 readline handling, and now tab-completion finally works in the
5438 debugger -- sort of. It completes things globally visible, but the
5443 debugger -- sort of. It completes things globally visible, but the
5439 completer doesn't track the stack as pdb walks it. That's a bit
5444 completer doesn't track the stack as pdb walks it. That's a bit
5440 tricky, and I'll have to implement it later.
5445 tricky, and I'll have to implement it later.
5441
5446
5442 2002-05-05 Fernando Perez <fperez@colorado.edu>
5447 2002-05-05 Fernando Perez <fperez@colorado.edu>
5443
5448
5444 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5449 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5445 magic docstrings when printed via ? (explicit \'s were being
5450 magic docstrings when printed via ? (explicit \'s were being
5446 printed).
5451 printed).
5447
5452
5448 * IPython/ipmaker.py (make_IPython): fixed namespace
5453 * IPython/ipmaker.py (make_IPython): fixed namespace
5449 identification bug. Now variables loaded via logs or command-line
5454 identification bug. Now variables loaded via logs or command-line
5450 files are recognized in the interactive namespace by @who.
5455 files are recognized in the interactive namespace by @who.
5451
5456
5452 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5457 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5453 log replay system stemming from the string form of Structs.
5458 log replay system stemming from the string form of Structs.
5454
5459
5455 * IPython/Magic.py (Macro.__init__): improved macros to properly
5460 * IPython/Magic.py (Macro.__init__): improved macros to properly
5456 handle magic commands in them.
5461 handle magic commands in them.
5457 (Magic.magic_logstart): usernames are now expanded so 'logstart
5462 (Magic.magic_logstart): usernames are now expanded so 'logstart
5458 ~/mylog' now works.
5463 ~/mylog' now works.
5459
5464
5460 * IPython/iplib.py (complete): fixed bug where paths starting with
5465 * IPython/iplib.py (complete): fixed bug where paths starting with
5461 '/' would be completed as magic names.
5466 '/' would be completed as magic names.
5462
5467
5463 2002-05-04 Fernando Perez <fperez@colorado.edu>
5468 2002-05-04 Fernando Perez <fperez@colorado.edu>
5464
5469
5465 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5470 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5466 allow running full programs under the profiler's control.
5471 allow running full programs under the profiler's control.
5467
5472
5468 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5473 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5469 mode to report exceptions verbosely but without formatting
5474 mode to report exceptions verbosely but without formatting
5470 variables. This addresses the issue of ipython 'freezing' (it's
5475 variables. This addresses the issue of ipython 'freezing' (it's
5471 not frozen, but caught in an expensive formatting loop) when huge
5476 not frozen, but caught in an expensive formatting loop) when huge
5472 variables are in the context of an exception.
5477 variables are in the context of an exception.
5473 (VerboseTB.text): Added '--->' markers at line where exception was
5478 (VerboseTB.text): Added '--->' markers at line where exception was
5474 triggered. Much clearer to read, especially in NoColor modes.
5479 triggered. Much clearer to read, especially in NoColor modes.
5475
5480
5476 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5481 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5477 implemented in reverse when changing to the new parse_options().
5482 implemented in reverse when changing to the new parse_options().
5478
5483
5479 2002-05-03 Fernando Perez <fperez@colorado.edu>
5484 2002-05-03 Fernando Perez <fperez@colorado.edu>
5480
5485
5481 * IPython/Magic.py (Magic.parse_options): new function so that
5486 * IPython/Magic.py (Magic.parse_options): new function so that
5482 magics can parse options easier.
5487 magics can parse options easier.
5483 (Magic.magic_prun): new function similar to profile.run(),
5488 (Magic.magic_prun): new function similar to profile.run(),
5484 suggested by Chris Hart.
5489 suggested by Chris Hart.
5485 (Magic.magic_cd): fixed behavior so that it only changes if
5490 (Magic.magic_cd): fixed behavior so that it only changes if
5486 directory actually is in history.
5491 directory actually is in history.
5487
5492
5488 * IPython/usage.py (__doc__): added information about potential
5493 * IPython/usage.py (__doc__): added information about potential
5489 slowness of Verbose exception mode when there are huge data
5494 slowness of Verbose exception mode when there are huge data
5490 structures to be formatted (thanks to Archie Paulson).
5495 structures to be formatted (thanks to Archie Paulson).
5491
5496
5492 * IPython/ipmaker.py (make_IPython): Changed default logging
5497 * IPython/ipmaker.py (make_IPython): Changed default logging
5493 (when simply called with -log) to use curr_dir/ipython.log in
5498 (when simply called with -log) to use curr_dir/ipython.log in
5494 rotate mode. Fixed crash which was occuring with -log before
5499 rotate mode. Fixed crash which was occuring with -log before
5495 (thanks to Jim Boyle).
5500 (thanks to Jim Boyle).
5496
5501
5497 2002-05-01 Fernando Perez <fperez@colorado.edu>
5502 2002-05-01 Fernando Perez <fperez@colorado.edu>
5498
5503
5499 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5504 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5500 was nasty -- though somewhat of a corner case).
5505 was nasty -- though somewhat of a corner case).
5501
5506
5502 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5507 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5503 text (was a bug).
5508 text (was a bug).
5504
5509
5505 2002-04-30 Fernando Perez <fperez@colorado.edu>
5510 2002-04-30 Fernando Perez <fperez@colorado.edu>
5506
5511
5507 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5512 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5508 a print after ^D or ^C from the user so that the In[] prompt
5513 a print after ^D or ^C from the user so that the In[] prompt
5509 doesn't over-run the gnuplot one.
5514 doesn't over-run the gnuplot one.
5510
5515
5511 2002-04-29 Fernando Perez <fperez@colorado.edu>
5516 2002-04-29 Fernando Perez <fperez@colorado.edu>
5512
5517
5513 * Released 0.2.10
5518 * Released 0.2.10
5514
5519
5515 * IPython/__release__.py (version): get date dynamically.
5520 * IPython/__release__.py (version): get date dynamically.
5516
5521
5517 * Misc. documentation updates thanks to Arnd's comments. Also ran
5522 * Misc. documentation updates thanks to Arnd's comments. Also ran
5518 a full spellcheck on the manual (hadn't been done in a while).
5523 a full spellcheck on the manual (hadn't been done in a while).
5519
5524
5520 2002-04-27 Fernando Perez <fperez@colorado.edu>
5525 2002-04-27 Fernando Perez <fperez@colorado.edu>
5521
5526
5522 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5527 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5523 starting a log in mid-session would reset the input history list.
5528 starting a log in mid-session would reset the input history list.
5524
5529
5525 2002-04-26 Fernando Perez <fperez@colorado.edu>
5530 2002-04-26 Fernando Perez <fperez@colorado.edu>
5526
5531
5527 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5532 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5528 all files were being included in an update. Now anything in
5533 all files were being included in an update. Now anything in
5529 UserConfig that matches [A-Za-z]*.py will go (this excludes
5534 UserConfig that matches [A-Za-z]*.py will go (this excludes
5530 __init__.py)
5535 __init__.py)
5531
5536
5532 2002-04-25 Fernando Perez <fperez@colorado.edu>
5537 2002-04-25 Fernando Perez <fperez@colorado.edu>
5533
5538
5534 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5539 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5535 to __builtins__ so that any form of embedded or imported code can
5540 to __builtins__ so that any form of embedded or imported code can
5536 test for being inside IPython.
5541 test for being inside IPython.
5537
5542
5538 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5543 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5539 changed to GnuplotMagic because it's now an importable module,
5544 changed to GnuplotMagic because it's now an importable module,
5540 this makes the name follow that of the standard Gnuplot module.
5545 this makes the name follow that of the standard Gnuplot module.
5541 GnuplotMagic can now be loaded at any time in mid-session.
5546 GnuplotMagic can now be loaded at any time in mid-session.
5542
5547
5543 2002-04-24 Fernando Perez <fperez@colorado.edu>
5548 2002-04-24 Fernando Perez <fperez@colorado.edu>
5544
5549
5545 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5550 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5546 the globals (IPython has its own namespace) and the
5551 the globals (IPython has its own namespace) and the
5547 PhysicalQuantity stuff is much better anyway.
5552 PhysicalQuantity stuff is much better anyway.
5548
5553
5549 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5554 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5550 embedding example to standard user directory for
5555 embedding example to standard user directory for
5551 distribution. Also put it in the manual.
5556 distribution. Also put it in the manual.
5552
5557
5553 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5558 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5554 instance as first argument (so it doesn't rely on some obscure
5559 instance as first argument (so it doesn't rely on some obscure
5555 hidden global).
5560 hidden global).
5556
5561
5557 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5562 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5558 delimiters. While it prevents ().TAB from working, it allows
5563 delimiters. While it prevents ().TAB from working, it allows
5559 completions in open (... expressions. This is by far a more common
5564 completions in open (... expressions. This is by far a more common
5560 case.
5565 case.
5561
5566
5562 2002-04-23 Fernando Perez <fperez@colorado.edu>
5567 2002-04-23 Fernando Perez <fperez@colorado.edu>
5563
5568
5564 * IPython/Extensions/InterpreterPasteInput.py: new
5569 * IPython/Extensions/InterpreterPasteInput.py: new
5565 syntax-processing module for pasting lines with >>> or ... at the
5570 syntax-processing module for pasting lines with >>> or ... at the
5566 start.
5571 start.
5567
5572
5568 * IPython/Extensions/PhysicalQ_Interactive.py
5573 * IPython/Extensions/PhysicalQ_Interactive.py
5569 (PhysicalQuantityInteractive.__int__): fixed to work with either
5574 (PhysicalQuantityInteractive.__int__): fixed to work with either
5570 Numeric or math.
5575 Numeric or math.
5571
5576
5572 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5577 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5573 provided profiles. Now we have:
5578 provided profiles. Now we have:
5574 -math -> math module as * and cmath with its own namespace.
5579 -math -> math module as * and cmath with its own namespace.
5575 -numeric -> Numeric as *, plus gnuplot & grace
5580 -numeric -> Numeric as *, plus gnuplot & grace
5576 -physics -> same as before
5581 -physics -> same as before
5577
5582
5578 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5583 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5579 user-defined magics wouldn't be found by @magic if they were
5584 user-defined magics wouldn't be found by @magic if they were
5580 defined as class methods. Also cleaned up the namespace search
5585 defined as class methods. Also cleaned up the namespace search
5581 logic and the string building (to use %s instead of many repeated
5586 logic and the string building (to use %s instead of many repeated
5582 string adds).
5587 string adds).
5583
5588
5584 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5589 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5585 of user-defined magics to operate with class methods (cleaner, in
5590 of user-defined magics to operate with class methods (cleaner, in
5586 line with the gnuplot code).
5591 line with the gnuplot code).
5587
5592
5588 2002-04-22 Fernando Perez <fperez@colorado.edu>
5593 2002-04-22 Fernando Perez <fperez@colorado.edu>
5589
5594
5590 * setup.py: updated dependency list so that manual is updated when
5595 * setup.py: updated dependency list so that manual is updated when
5591 all included files change.
5596 all included files change.
5592
5597
5593 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5598 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5594 the delimiter removal option (the fix is ugly right now).
5599 the delimiter removal option (the fix is ugly right now).
5595
5600
5596 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5601 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5597 all of the math profile (quicker loading, no conflict between
5602 all of the math profile (quicker loading, no conflict between
5598 g-9.8 and g-gnuplot).
5603 g-9.8 and g-gnuplot).
5599
5604
5600 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5605 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5601 name of post-mortem files to IPython_crash_report.txt.
5606 name of post-mortem files to IPython_crash_report.txt.
5602
5607
5603 * Cleanup/update of the docs. Added all the new readline info and
5608 * Cleanup/update of the docs. Added all the new readline info and
5604 formatted all lists as 'real lists'.
5609 formatted all lists as 'real lists'.
5605
5610
5606 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5611 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5607 tab-completion options, since the full readline parse_and_bind is
5612 tab-completion options, since the full readline parse_and_bind is
5608 now accessible.
5613 now accessible.
5609
5614
5610 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5615 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5611 handling of readline options. Now users can specify any string to
5616 handling of readline options. Now users can specify any string to
5612 be passed to parse_and_bind(), as well as the delimiters to be
5617 be passed to parse_and_bind(), as well as the delimiters to be
5613 removed.
5618 removed.
5614 (InteractiveShell.__init__): Added __name__ to the global
5619 (InteractiveShell.__init__): Added __name__ to the global
5615 namespace so that things like Itpl which rely on its existence
5620 namespace so that things like Itpl which rely on its existence
5616 don't crash.
5621 don't crash.
5617 (InteractiveShell._prefilter): Defined the default with a _ so
5622 (InteractiveShell._prefilter): Defined the default with a _ so
5618 that prefilter() is easier to override, while the default one
5623 that prefilter() is easier to override, while the default one
5619 remains available.
5624 remains available.
5620
5625
5621 2002-04-18 Fernando Perez <fperez@colorado.edu>
5626 2002-04-18 Fernando Perez <fperez@colorado.edu>
5622
5627
5623 * Added information about pdb in the docs.
5628 * Added information about pdb in the docs.
5624
5629
5625 2002-04-17 Fernando Perez <fperez@colorado.edu>
5630 2002-04-17 Fernando Perez <fperez@colorado.edu>
5626
5631
5627 * IPython/ipmaker.py (make_IPython): added rc_override option to
5632 * IPython/ipmaker.py (make_IPython): added rc_override option to
5628 allow passing config options at creation time which may override
5633 allow passing config options at creation time which may override
5629 anything set in the config files or command line. This is
5634 anything set in the config files or command line. This is
5630 particularly useful for configuring embedded instances.
5635 particularly useful for configuring embedded instances.
5631
5636
5632 2002-04-15 Fernando Perez <fperez@colorado.edu>
5637 2002-04-15 Fernando Perez <fperez@colorado.edu>
5633
5638
5634 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5639 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5635 crash embedded instances because of the input cache falling out of
5640 crash embedded instances because of the input cache falling out of
5636 sync with the output counter.
5641 sync with the output counter.
5637
5642
5638 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5643 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5639 mode which calls pdb after an uncaught exception in IPython itself.
5644 mode which calls pdb after an uncaught exception in IPython itself.
5640
5645
5641 2002-04-14 Fernando Perez <fperez@colorado.edu>
5646 2002-04-14 Fernando Perez <fperez@colorado.edu>
5642
5647
5643 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5648 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5644 readline, fix it back after each call.
5649 readline, fix it back after each call.
5645
5650
5646 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5651 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5647 method to force all access via __call__(), which guarantees that
5652 method to force all access via __call__(), which guarantees that
5648 traceback references are properly deleted.
5653 traceback references are properly deleted.
5649
5654
5650 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5655 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5651 improve printing when pprint is in use.
5656 improve printing when pprint is in use.
5652
5657
5653 2002-04-13 Fernando Perez <fperez@colorado.edu>
5658 2002-04-13 Fernando Perez <fperez@colorado.edu>
5654
5659
5655 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5660 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5656 exceptions aren't caught anymore. If the user triggers one, he
5661 exceptions aren't caught anymore. If the user triggers one, he
5657 should know why he's doing it and it should go all the way up,
5662 should know why he's doing it and it should go all the way up,
5658 just like any other exception. So now @abort will fully kill the
5663 just like any other exception. So now @abort will fully kill the
5659 embedded interpreter and the embedding code (unless that happens
5664 embedded interpreter and the embedding code (unless that happens
5660 to catch SystemExit).
5665 to catch SystemExit).
5661
5666
5662 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5667 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5663 and a debugger() method to invoke the interactive pdb debugger
5668 and a debugger() method to invoke the interactive pdb debugger
5664 after printing exception information. Also added the corresponding
5669 after printing exception information. Also added the corresponding
5665 -pdb option and @pdb magic to control this feature, and updated
5670 -pdb option and @pdb magic to control this feature, and updated
5666 the docs. After a suggestion from Christopher Hart
5671 the docs. After a suggestion from Christopher Hart
5667 (hart-AT-caltech.edu).
5672 (hart-AT-caltech.edu).
5668
5673
5669 2002-04-12 Fernando Perez <fperez@colorado.edu>
5674 2002-04-12 Fernando Perez <fperez@colorado.edu>
5670
5675
5671 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5676 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5672 the exception handlers defined by the user (not the CrashHandler)
5677 the exception handlers defined by the user (not the CrashHandler)
5673 so that user exceptions don't trigger an ipython bug report.
5678 so that user exceptions don't trigger an ipython bug report.
5674
5679
5675 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5680 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5676 configurable (it should have always been so).
5681 configurable (it should have always been so).
5677
5682
5678 2002-03-26 Fernando Perez <fperez@colorado.edu>
5683 2002-03-26 Fernando Perez <fperez@colorado.edu>
5679
5684
5680 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5685 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5681 and there to fix embedding namespace issues. This should all be
5686 and there to fix embedding namespace issues. This should all be
5682 done in a more elegant way.
5687 done in a more elegant way.
5683
5688
5684 2002-03-25 Fernando Perez <fperez@colorado.edu>
5689 2002-03-25 Fernando Perez <fperez@colorado.edu>
5685
5690
5686 * IPython/genutils.py (get_home_dir): Try to make it work under
5691 * IPython/genutils.py (get_home_dir): Try to make it work under
5687 win9x also.
5692 win9x also.
5688
5693
5689 2002-03-20 Fernando Perez <fperez@colorado.edu>
5694 2002-03-20 Fernando Perez <fperez@colorado.edu>
5690
5695
5691 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5696 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5692 sys.displayhook untouched upon __init__.
5697 sys.displayhook untouched upon __init__.
5693
5698
5694 2002-03-19 Fernando Perez <fperez@colorado.edu>
5699 2002-03-19 Fernando Perez <fperez@colorado.edu>
5695
5700
5696 * Released 0.2.9 (for embedding bug, basically).
5701 * Released 0.2.9 (for embedding bug, basically).
5697
5702
5698 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5703 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5699 exceptions so that enclosing shell's state can be restored.
5704 exceptions so that enclosing shell's state can be restored.
5700
5705
5701 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5706 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5702 naming conventions in the .ipython/ dir.
5707 naming conventions in the .ipython/ dir.
5703
5708
5704 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5709 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5705 from delimiters list so filenames with - in them get expanded.
5710 from delimiters list so filenames with - in them get expanded.
5706
5711
5707 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5712 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5708 sys.displayhook not being properly restored after an embedded call.
5713 sys.displayhook not being properly restored after an embedded call.
5709
5714
5710 2002-03-18 Fernando Perez <fperez@colorado.edu>
5715 2002-03-18 Fernando Perez <fperez@colorado.edu>
5711
5716
5712 * Released 0.2.8
5717 * Released 0.2.8
5713
5718
5714 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5719 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5715 some files weren't being included in a -upgrade.
5720 some files weren't being included in a -upgrade.
5716 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5721 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5717 on' so that the first tab completes.
5722 on' so that the first tab completes.
5718 (InteractiveShell.handle_magic): fixed bug with spaces around
5723 (InteractiveShell.handle_magic): fixed bug with spaces around
5719 quotes breaking many magic commands.
5724 quotes breaking many magic commands.
5720
5725
5721 * setup.py: added note about ignoring the syntax error messages at
5726 * setup.py: added note about ignoring the syntax error messages at
5722 installation.
5727 installation.
5723
5728
5724 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5729 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5725 streamlining the gnuplot interface, now there's only one magic @gp.
5730 streamlining the gnuplot interface, now there's only one magic @gp.
5726
5731
5727 2002-03-17 Fernando Perez <fperez@colorado.edu>
5732 2002-03-17 Fernando Perez <fperez@colorado.edu>
5728
5733
5729 * IPython/UserConfig/magic_gnuplot.py: new name for the
5734 * IPython/UserConfig/magic_gnuplot.py: new name for the
5730 example-magic_pm.py file. Much enhanced system, now with a shell
5735 example-magic_pm.py file. Much enhanced system, now with a shell
5731 for communicating directly with gnuplot, one command at a time.
5736 for communicating directly with gnuplot, one command at a time.
5732
5737
5733 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5738 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5734 setting __name__=='__main__'.
5739 setting __name__=='__main__'.
5735
5740
5736 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5741 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5737 mini-shell for accessing gnuplot from inside ipython. Should
5742 mini-shell for accessing gnuplot from inside ipython. Should
5738 extend it later for grace access too. Inspired by Arnd's
5743 extend it later for grace access too. Inspired by Arnd's
5739 suggestion.
5744 suggestion.
5740
5745
5741 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5746 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5742 calling magic functions with () in their arguments. Thanks to Arnd
5747 calling magic functions with () in their arguments. Thanks to Arnd
5743 Baecker for pointing this to me.
5748 Baecker for pointing this to me.
5744
5749
5745 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5750 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5746 infinitely for integer or complex arrays (only worked with floats).
5751 infinitely for integer or complex arrays (only worked with floats).
5747
5752
5748 2002-03-16 Fernando Perez <fperez@colorado.edu>
5753 2002-03-16 Fernando Perez <fperez@colorado.edu>
5749
5754
5750 * setup.py: Merged setup and setup_windows into a single script
5755 * setup.py: Merged setup and setup_windows into a single script
5751 which properly handles things for windows users.
5756 which properly handles things for windows users.
5752
5757
5753 2002-03-15 Fernando Perez <fperez@colorado.edu>
5758 2002-03-15 Fernando Perez <fperez@colorado.edu>
5754
5759
5755 * Big change to the manual: now the magics are all automatically
5760 * Big change to the manual: now the magics are all automatically
5756 documented. This information is generated from their docstrings
5761 documented. This information is generated from their docstrings
5757 and put in a latex file included by the manual lyx file. This way
5762 and put in a latex file included by the manual lyx file. This way
5758 we get always up to date information for the magics. The manual
5763 we get always up to date information for the magics. The manual
5759 now also has proper version information, also auto-synced.
5764 now also has proper version information, also auto-synced.
5760
5765
5761 For this to work, an undocumented --magic_docstrings option was added.
5766 For this to work, an undocumented --magic_docstrings option was added.
5762
5767
5763 2002-03-13 Fernando Perez <fperez@colorado.edu>
5768 2002-03-13 Fernando Perez <fperez@colorado.edu>
5764
5769
5765 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5770 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5766 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5771 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5767
5772
5768 2002-03-12 Fernando Perez <fperez@colorado.edu>
5773 2002-03-12 Fernando Perez <fperez@colorado.edu>
5769
5774
5770 * IPython/ultraTB.py (TermColors): changed color escapes again to
5775 * IPython/ultraTB.py (TermColors): changed color escapes again to
5771 fix the (old, reintroduced) line-wrapping bug. Basically, if
5776 fix the (old, reintroduced) line-wrapping bug. Basically, if
5772 \001..\002 aren't given in the color escapes, lines get wrapped
5777 \001..\002 aren't given in the color escapes, lines get wrapped
5773 weirdly. But giving those screws up old xterms and emacs terms. So
5778 weirdly. But giving those screws up old xterms and emacs terms. So
5774 I added some logic for emacs terms to be ok, but I can't identify old
5779 I added some logic for emacs terms to be ok, but I can't identify old
5775 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5780 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5776
5781
5777 2002-03-10 Fernando Perez <fperez@colorado.edu>
5782 2002-03-10 Fernando Perez <fperez@colorado.edu>
5778
5783
5779 * IPython/usage.py (__doc__): Various documentation cleanups and
5784 * IPython/usage.py (__doc__): Various documentation cleanups and
5780 updates, both in usage docstrings and in the manual.
5785 updates, both in usage docstrings and in the manual.
5781
5786
5782 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5787 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5783 handling of caching. Set minimum acceptabe value for having a
5788 handling of caching. Set minimum acceptabe value for having a
5784 cache at 20 values.
5789 cache at 20 values.
5785
5790
5786 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5791 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5787 install_first_time function to a method, renamed it and added an
5792 install_first_time function to a method, renamed it and added an
5788 'upgrade' mode. Now people can update their config directory with
5793 'upgrade' mode. Now people can update their config directory with
5789 a simple command line switch (-upgrade, also new).
5794 a simple command line switch (-upgrade, also new).
5790
5795
5791 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5796 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5792 @file (convenient for automagic users under Python >= 2.2).
5797 @file (convenient for automagic users under Python >= 2.2).
5793 Removed @files (it seemed more like a plural than an abbrev. of
5798 Removed @files (it seemed more like a plural than an abbrev. of
5794 'file show').
5799 'file show').
5795
5800
5796 * IPython/iplib.py (install_first_time): Fixed crash if there were
5801 * IPython/iplib.py (install_first_time): Fixed crash if there were
5797 backup files ('~') in .ipython/ install directory.
5802 backup files ('~') in .ipython/ install directory.
5798
5803
5799 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5804 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5800 system. Things look fine, but these changes are fairly
5805 system. Things look fine, but these changes are fairly
5801 intrusive. Test them for a few days.
5806 intrusive. Test them for a few days.
5802
5807
5803 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5808 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5804 the prompts system. Now all in/out prompt strings are user
5809 the prompts system. Now all in/out prompt strings are user
5805 controllable. This is particularly useful for embedding, as one
5810 controllable. This is particularly useful for embedding, as one
5806 can tag embedded instances with particular prompts.
5811 can tag embedded instances with particular prompts.
5807
5812
5808 Also removed global use of sys.ps1/2, which now allows nested
5813 Also removed global use of sys.ps1/2, which now allows nested
5809 embeddings without any problems. Added command-line options for
5814 embeddings without any problems. Added command-line options for
5810 the prompt strings.
5815 the prompt strings.
5811
5816
5812 2002-03-08 Fernando Perez <fperez@colorado.edu>
5817 2002-03-08 Fernando Perez <fperez@colorado.edu>
5813
5818
5814 * IPython/UserConfig/example-embed-short.py (ipshell): added
5819 * IPython/UserConfig/example-embed-short.py (ipshell): added
5815 example file with the bare minimum code for embedding.
5820 example file with the bare minimum code for embedding.
5816
5821
5817 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5822 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5818 functionality for the embeddable shell to be activated/deactivated
5823 functionality for the embeddable shell to be activated/deactivated
5819 either globally or at each call.
5824 either globally or at each call.
5820
5825
5821 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5826 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5822 rewriting the prompt with '--->' for auto-inputs with proper
5827 rewriting the prompt with '--->' for auto-inputs with proper
5823 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5828 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5824 this is handled by the prompts class itself, as it should.
5829 this is handled by the prompts class itself, as it should.
5825
5830
5826 2002-03-05 Fernando Perez <fperez@colorado.edu>
5831 2002-03-05 Fernando Perez <fperez@colorado.edu>
5827
5832
5828 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5833 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5829 @logstart to avoid name clashes with the math log function.
5834 @logstart to avoid name clashes with the math log function.
5830
5835
5831 * Big updates to X/Emacs section of the manual.
5836 * Big updates to X/Emacs section of the manual.
5832
5837
5833 * Removed ipython_emacs. Milan explained to me how to pass
5838 * Removed ipython_emacs. Milan explained to me how to pass
5834 arguments to ipython through Emacs. Some day I'm going to end up
5839 arguments to ipython through Emacs. Some day I'm going to end up
5835 learning some lisp...
5840 learning some lisp...
5836
5841
5837 2002-03-04 Fernando Perez <fperez@colorado.edu>
5842 2002-03-04 Fernando Perez <fperez@colorado.edu>
5838
5843
5839 * IPython/ipython_emacs: Created script to be used as the
5844 * IPython/ipython_emacs: Created script to be used as the
5840 py-python-command Emacs variable so we can pass IPython
5845 py-python-command Emacs variable so we can pass IPython
5841 parameters. I can't figure out how to tell Emacs directly to pass
5846 parameters. I can't figure out how to tell Emacs directly to pass
5842 parameters to IPython, so a dummy shell script will do it.
5847 parameters to IPython, so a dummy shell script will do it.
5843
5848
5844 Other enhancements made for things to work better under Emacs'
5849 Other enhancements made for things to work better under Emacs'
5845 various types of terminals. Many thanks to Milan Zamazal
5850 various types of terminals. Many thanks to Milan Zamazal
5846 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5851 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5847
5852
5848 2002-03-01 Fernando Perez <fperez@colorado.edu>
5853 2002-03-01 Fernando Perez <fperez@colorado.edu>
5849
5854
5850 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5855 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5851 that loading of readline is now optional. This gives better
5856 that loading of readline is now optional. This gives better
5852 control to emacs users.
5857 control to emacs users.
5853
5858
5854 * IPython/ultraTB.py (__date__): Modified color escape sequences
5859 * IPython/ultraTB.py (__date__): Modified color escape sequences
5855 and now things work fine under xterm and in Emacs' term buffers
5860 and now things work fine under xterm and in Emacs' term buffers
5856 (though not shell ones). Well, in emacs you get colors, but all
5861 (though not shell ones). Well, in emacs you get colors, but all
5857 seem to be 'light' colors (no difference between dark and light
5862 seem to be 'light' colors (no difference between dark and light
5858 ones). But the garbage chars are gone, and also in xterms. It
5863 ones). But the garbage chars are gone, and also in xterms. It
5859 seems that now I'm using 'cleaner' ansi sequences.
5864 seems that now I'm using 'cleaner' ansi sequences.
5860
5865
5861 2002-02-21 Fernando Perez <fperez@colorado.edu>
5866 2002-02-21 Fernando Perez <fperez@colorado.edu>
5862
5867
5863 * Released 0.2.7 (mainly to publish the scoping fix).
5868 * Released 0.2.7 (mainly to publish the scoping fix).
5864
5869
5865 * IPython/Logger.py (Logger.logstate): added. A corresponding
5870 * IPython/Logger.py (Logger.logstate): added. A corresponding
5866 @logstate magic was created.
5871 @logstate magic was created.
5867
5872
5868 * IPython/Magic.py: fixed nested scoping problem under Python
5873 * IPython/Magic.py: fixed nested scoping problem under Python
5869 2.1.x (automagic wasn't working).
5874 2.1.x (automagic wasn't working).
5870
5875
5871 2002-02-20 Fernando Perez <fperez@colorado.edu>
5876 2002-02-20 Fernando Perez <fperez@colorado.edu>
5872
5877
5873 * Released 0.2.6.
5878 * Released 0.2.6.
5874
5879
5875 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5880 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5876 option so that logs can come out without any headers at all.
5881 option so that logs can come out without any headers at all.
5877
5882
5878 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5883 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5879 SciPy.
5884 SciPy.
5880
5885
5881 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5886 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5882 that embedded IPython calls don't require vars() to be explicitly
5887 that embedded IPython calls don't require vars() to be explicitly
5883 passed. Now they are extracted from the caller's frame (code
5888 passed. Now they are extracted from the caller's frame (code
5884 snatched from Eric Jones' weave). Added better documentation to
5889 snatched from Eric Jones' weave). Added better documentation to
5885 the section on embedding and the example file.
5890 the section on embedding and the example file.
5886
5891
5887 * IPython/genutils.py (page): Changed so that under emacs, it just
5892 * IPython/genutils.py (page): Changed so that under emacs, it just
5888 prints the string. You can then page up and down in the emacs
5893 prints the string. You can then page up and down in the emacs
5889 buffer itself. This is how the builtin help() works.
5894 buffer itself. This is how the builtin help() works.
5890
5895
5891 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5896 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5892 macro scoping: macros need to be executed in the user's namespace
5897 macro scoping: macros need to be executed in the user's namespace
5893 to work as if they had been typed by the user.
5898 to work as if they had been typed by the user.
5894
5899
5895 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5900 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5896 execute automatically (no need to type 'exec...'). They then
5901 execute automatically (no need to type 'exec...'). They then
5897 behave like 'true macros'. The printing system was also modified
5902 behave like 'true macros'. The printing system was also modified
5898 for this to work.
5903 for this to work.
5899
5904
5900 2002-02-19 Fernando Perez <fperez@colorado.edu>
5905 2002-02-19 Fernando Perez <fperez@colorado.edu>
5901
5906
5902 * IPython/genutils.py (page_file): new function for paging files
5907 * IPython/genutils.py (page_file): new function for paging files
5903 in an OS-independent way. Also necessary for file viewing to work
5908 in an OS-independent way. Also necessary for file viewing to work
5904 well inside Emacs buffers.
5909 well inside Emacs buffers.
5905 (page): Added checks for being in an emacs buffer.
5910 (page): Added checks for being in an emacs buffer.
5906 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5911 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5907 same bug in iplib.
5912 same bug in iplib.
5908
5913
5909 2002-02-18 Fernando Perez <fperez@colorado.edu>
5914 2002-02-18 Fernando Perez <fperez@colorado.edu>
5910
5915
5911 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5916 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5912 of readline so that IPython can work inside an Emacs buffer.
5917 of readline so that IPython can work inside an Emacs buffer.
5913
5918
5914 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5919 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5915 method signatures (they weren't really bugs, but it looks cleaner
5920 method signatures (they weren't really bugs, but it looks cleaner
5916 and keeps PyChecker happy).
5921 and keeps PyChecker happy).
5917
5922
5918 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5923 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5919 for implementing various user-defined hooks. Currently only
5924 for implementing various user-defined hooks. Currently only
5920 display is done.
5925 display is done.
5921
5926
5922 * IPython/Prompts.py (CachedOutput._display): changed display
5927 * IPython/Prompts.py (CachedOutput._display): changed display
5923 functions so that they can be dynamically changed by users easily.
5928 functions so that they can be dynamically changed by users easily.
5924
5929
5925 * IPython/Extensions/numeric_formats.py (num_display): added an
5930 * IPython/Extensions/numeric_formats.py (num_display): added an
5926 extension for printing NumPy arrays in flexible manners. It
5931 extension for printing NumPy arrays in flexible manners. It
5927 doesn't do anything yet, but all the structure is in
5932 doesn't do anything yet, but all the structure is in
5928 place. Ultimately the plan is to implement output format control
5933 place. Ultimately the plan is to implement output format control
5929 like in Octave.
5934 like in Octave.
5930
5935
5931 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5936 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5932 methods are found at run-time by all the automatic machinery.
5937 methods are found at run-time by all the automatic machinery.
5933
5938
5934 2002-02-17 Fernando Perez <fperez@colorado.edu>
5939 2002-02-17 Fernando Perez <fperez@colorado.edu>
5935
5940
5936 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5941 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5937 whole file a little.
5942 whole file a little.
5938
5943
5939 * ToDo: closed this document. Now there's a new_design.lyx
5944 * ToDo: closed this document. Now there's a new_design.lyx
5940 document for all new ideas. Added making a pdf of it for the
5945 document for all new ideas. Added making a pdf of it for the
5941 end-user distro.
5946 end-user distro.
5942
5947
5943 * IPython/Logger.py (Logger.switch_log): Created this to replace
5948 * IPython/Logger.py (Logger.switch_log): Created this to replace
5944 logon() and logoff(). It also fixes a nasty crash reported by
5949 logon() and logoff(). It also fixes a nasty crash reported by
5945 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5950 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5946
5951
5947 * IPython/iplib.py (complete): got auto-completion to work with
5952 * IPython/iplib.py (complete): got auto-completion to work with
5948 automagic (I had wanted this for a long time).
5953 automagic (I had wanted this for a long time).
5949
5954
5950 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5955 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5951 to @file, since file() is now a builtin and clashes with automagic
5956 to @file, since file() is now a builtin and clashes with automagic
5952 for @file.
5957 for @file.
5953
5958
5954 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5959 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5955 of this was previously in iplib, which had grown to more than 2000
5960 of this was previously in iplib, which had grown to more than 2000
5956 lines, way too long. No new functionality, but it makes managing
5961 lines, way too long. No new functionality, but it makes managing
5957 the code a bit easier.
5962 the code a bit easier.
5958
5963
5959 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5964 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5960 information to crash reports.
5965 information to crash reports.
5961
5966
5962 2002-02-12 Fernando Perez <fperez@colorado.edu>
5967 2002-02-12 Fernando Perez <fperez@colorado.edu>
5963
5968
5964 * Released 0.2.5.
5969 * Released 0.2.5.
5965
5970
5966 2002-02-11 Fernando Perez <fperez@colorado.edu>
5971 2002-02-11 Fernando Perez <fperez@colorado.edu>
5967
5972
5968 * Wrote a relatively complete Windows installer. It puts
5973 * Wrote a relatively complete Windows installer. It puts
5969 everything in place, creates Start Menu entries and fixes the
5974 everything in place, creates Start Menu entries and fixes the
5970 color issues. Nothing fancy, but it works.
5975 color issues. Nothing fancy, but it works.
5971
5976
5972 2002-02-10 Fernando Perez <fperez@colorado.edu>
5977 2002-02-10 Fernando Perez <fperez@colorado.edu>
5973
5978
5974 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5979 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5975 os.path.expanduser() call so that we can type @run ~/myfile.py and
5980 os.path.expanduser() call so that we can type @run ~/myfile.py and
5976 have thigs work as expected.
5981 have thigs work as expected.
5977
5982
5978 * IPython/genutils.py (page): fixed exception handling so things
5983 * IPython/genutils.py (page): fixed exception handling so things
5979 work both in Unix and Windows correctly. Quitting a pager triggers
5984 work both in Unix and Windows correctly. Quitting a pager triggers
5980 an IOError/broken pipe in Unix, and in windows not finding a pager
5985 an IOError/broken pipe in Unix, and in windows not finding a pager
5981 is also an IOError, so I had to actually look at the return value
5986 is also an IOError, so I had to actually look at the return value
5982 of the exception, not just the exception itself. Should be ok now.
5987 of the exception, not just the exception itself. Should be ok now.
5983
5988
5984 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5989 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5985 modified to allow case-insensitive color scheme changes.
5990 modified to allow case-insensitive color scheme changes.
5986
5991
5987 2002-02-09 Fernando Perez <fperez@colorado.edu>
5992 2002-02-09 Fernando Perez <fperez@colorado.edu>
5988
5993
5989 * IPython/genutils.py (native_line_ends): new function to leave
5994 * IPython/genutils.py (native_line_ends): new function to leave
5990 user config files with os-native line-endings.
5995 user config files with os-native line-endings.
5991
5996
5992 * README and manual updates.
5997 * README and manual updates.
5993
5998
5994 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5999 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5995 instead of StringType to catch Unicode strings.
6000 instead of StringType to catch Unicode strings.
5996
6001
5997 * IPython/genutils.py (filefind): fixed bug for paths with
6002 * IPython/genutils.py (filefind): fixed bug for paths with
5998 embedded spaces (very common in Windows).
6003 embedded spaces (very common in Windows).
5999
6004
6000 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6005 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6001 files under Windows, so that they get automatically associated
6006 files under Windows, so that they get automatically associated
6002 with a text editor. Windows makes it a pain to handle
6007 with a text editor. Windows makes it a pain to handle
6003 extension-less files.
6008 extension-less files.
6004
6009
6005 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6010 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6006 warning about readline only occur for Posix. In Windows there's no
6011 warning about readline only occur for Posix. In Windows there's no
6007 way to get readline, so why bother with the warning.
6012 way to get readline, so why bother with the warning.
6008
6013
6009 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6014 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6010 for __str__ instead of dir(self), since dir() changed in 2.2.
6015 for __str__ instead of dir(self), since dir() changed in 2.2.
6011
6016
6012 * Ported to Windows! Tested on XP, I suspect it should work fine
6017 * Ported to Windows! Tested on XP, I suspect it should work fine
6013 on NT/2000, but I don't think it will work on 98 et al. That
6018 on NT/2000, but I don't think it will work on 98 et al. That
6014 series of Windows is such a piece of junk anyway that I won't try
6019 series of Windows is such a piece of junk anyway that I won't try
6015 porting it there. The XP port was straightforward, showed a few
6020 porting it there. The XP port was straightforward, showed a few
6016 bugs here and there (fixed all), in particular some string
6021 bugs here and there (fixed all), in particular some string
6017 handling stuff which required considering Unicode strings (which
6022 handling stuff which required considering Unicode strings (which
6018 Windows uses). This is good, but hasn't been too tested :) No
6023 Windows uses). This is good, but hasn't been too tested :) No
6019 fancy installer yet, I'll put a note in the manual so people at
6024 fancy installer yet, I'll put a note in the manual so people at
6020 least make manually a shortcut.
6025 least make manually a shortcut.
6021
6026
6022 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6027 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6023 into a single one, "colors". This now controls both prompt and
6028 into a single one, "colors". This now controls both prompt and
6024 exception color schemes, and can be changed both at startup
6029 exception color schemes, and can be changed both at startup
6025 (either via command-line switches or via ipythonrc files) and at
6030 (either via command-line switches or via ipythonrc files) and at
6026 runtime, with @colors.
6031 runtime, with @colors.
6027 (Magic.magic_run): renamed @prun to @run and removed the old
6032 (Magic.magic_run): renamed @prun to @run and removed the old
6028 @run. The two were too similar to warrant keeping both.
6033 @run. The two were too similar to warrant keeping both.
6029
6034
6030 2002-02-03 Fernando Perez <fperez@colorado.edu>
6035 2002-02-03 Fernando Perez <fperez@colorado.edu>
6031
6036
6032 * IPython/iplib.py (install_first_time): Added comment on how to
6037 * IPython/iplib.py (install_first_time): Added comment on how to
6033 configure the color options for first-time users. Put a <return>
6038 configure the color options for first-time users. Put a <return>
6034 request at the end so that small-terminal users get a chance to
6039 request at the end so that small-terminal users get a chance to
6035 read the startup info.
6040 read the startup info.
6036
6041
6037 2002-01-23 Fernando Perez <fperez@colorado.edu>
6042 2002-01-23 Fernando Perez <fperez@colorado.edu>
6038
6043
6039 * IPython/iplib.py (CachedOutput.update): Changed output memory
6044 * IPython/iplib.py (CachedOutput.update): Changed output memory
6040 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6045 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6041 input history we still use _i. Did this b/c these variable are
6046 input history we still use _i. Did this b/c these variable are
6042 very commonly used in interactive work, so the less we need to
6047 very commonly used in interactive work, so the less we need to
6043 type the better off we are.
6048 type the better off we are.
6044 (Magic.magic_prun): updated @prun to better handle the namespaces
6049 (Magic.magic_prun): updated @prun to better handle the namespaces
6045 the file will run in, including a fix for __name__ not being set
6050 the file will run in, including a fix for __name__ not being set
6046 before.
6051 before.
6047
6052
6048 2002-01-20 Fernando Perez <fperez@colorado.edu>
6053 2002-01-20 Fernando Perez <fperez@colorado.edu>
6049
6054
6050 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6055 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6051 extra garbage for Python 2.2. Need to look more carefully into
6056 extra garbage for Python 2.2. Need to look more carefully into
6052 this later.
6057 this later.
6053
6058
6054 2002-01-19 Fernando Perez <fperez@colorado.edu>
6059 2002-01-19 Fernando Perez <fperez@colorado.edu>
6055
6060
6056 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6061 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6057 display SyntaxError exceptions properly formatted when they occur
6062 display SyntaxError exceptions properly formatted when they occur
6058 (they can be triggered by imported code).
6063 (they can be triggered by imported code).
6059
6064
6060 2002-01-18 Fernando Perez <fperez@colorado.edu>
6065 2002-01-18 Fernando Perez <fperez@colorado.edu>
6061
6066
6062 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6067 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6063 SyntaxError exceptions are reported nicely formatted, instead of
6068 SyntaxError exceptions are reported nicely formatted, instead of
6064 spitting out only offset information as before.
6069 spitting out only offset information as before.
6065 (Magic.magic_prun): Added the @prun function for executing
6070 (Magic.magic_prun): Added the @prun function for executing
6066 programs with command line args inside IPython.
6071 programs with command line args inside IPython.
6067
6072
6068 2002-01-16 Fernando Perez <fperez@colorado.edu>
6073 2002-01-16 Fernando Perez <fperez@colorado.edu>
6069
6074
6070 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6075 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6071 to *not* include the last item given in a range. This brings their
6076 to *not* include the last item given in a range. This brings their
6072 behavior in line with Python's slicing:
6077 behavior in line with Python's slicing:
6073 a[n1:n2] -> a[n1]...a[n2-1]
6078 a[n1:n2] -> a[n1]...a[n2-1]
6074 It may be a bit less convenient, but I prefer to stick to Python's
6079 It may be a bit less convenient, but I prefer to stick to Python's
6075 conventions *everywhere*, so users never have to wonder.
6080 conventions *everywhere*, so users never have to wonder.
6076 (Magic.magic_macro): Added @macro function to ease the creation of
6081 (Magic.magic_macro): Added @macro function to ease the creation of
6077 macros.
6082 macros.
6078
6083
6079 2002-01-05 Fernando Perez <fperez@colorado.edu>
6084 2002-01-05 Fernando Perez <fperez@colorado.edu>
6080
6085
6081 * Released 0.2.4.
6086 * Released 0.2.4.
6082
6087
6083 * IPython/iplib.py (Magic.magic_pdef):
6088 * IPython/iplib.py (Magic.magic_pdef):
6084 (InteractiveShell.safe_execfile): report magic lines and error
6089 (InteractiveShell.safe_execfile): report magic lines and error
6085 lines without line numbers so one can easily copy/paste them for
6090 lines without line numbers so one can easily copy/paste them for
6086 re-execution.
6091 re-execution.
6087
6092
6088 * Updated manual with recent changes.
6093 * Updated manual with recent changes.
6089
6094
6090 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6095 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6091 docstring printing when class? is called. Very handy for knowing
6096 docstring printing when class? is called. Very handy for knowing
6092 how to create class instances (as long as __init__ is well
6097 how to create class instances (as long as __init__ is well
6093 documented, of course :)
6098 documented, of course :)
6094 (Magic.magic_doc): print both class and constructor docstrings.
6099 (Magic.magic_doc): print both class and constructor docstrings.
6095 (Magic.magic_pdef): give constructor info if passed a class and
6100 (Magic.magic_pdef): give constructor info if passed a class and
6096 __call__ info for callable object instances.
6101 __call__ info for callable object instances.
6097
6102
6098 2002-01-04 Fernando Perez <fperez@colorado.edu>
6103 2002-01-04 Fernando Perez <fperez@colorado.edu>
6099
6104
6100 * Made deep_reload() off by default. It doesn't always work
6105 * Made deep_reload() off by default. It doesn't always work
6101 exactly as intended, so it's probably safer to have it off. It's
6106 exactly as intended, so it's probably safer to have it off. It's
6102 still available as dreload() anyway, so nothing is lost.
6107 still available as dreload() anyway, so nothing is lost.
6103
6108
6104 2002-01-02 Fernando Perez <fperez@colorado.edu>
6109 2002-01-02 Fernando Perez <fperez@colorado.edu>
6105
6110
6106 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6111 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6107 so I wanted an updated release).
6112 so I wanted an updated release).
6108
6113
6109 2001-12-27 Fernando Perez <fperez@colorado.edu>
6114 2001-12-27 Fernando Perez <fperez@colorado.edu>
6110
6115
6111 * IPython/iplib.py (InteractiveShell.interact): Added the original
6116 * IPython/iplib.py (InteractiveShell.interact): Added the original
6112 code from 'code.py' for this module in order to change the
6117 code from 'code.py' for this module in order to change the
6113 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6118 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6114 the history cache would break when the user hit Ctrl-C, and
6119 the history cache would break when the user hit Ctrl-C, and
6115 interact() offers no way to add any hooks to it.
6120 interact() offers no way to add any hooks to it.
6116
6121
6117 2001-12-23 Fernando Perez <fperez@colorado.edu>
6122 2001-12-23 Fernando Perez <fperez@colorado.edu>
6118
6123
6119 * setup.py: added check for 'MANIFEST' before trying to remove
6124 * setup.py: added check for 'MANIFEST' before trying to remove
6120 it. Thanks to Sean Reifschneider.
6125 it. Thanks to Sean Reifschneider.
6121
6126
6122 2001-12-22 Fernando Perez <fperez@colorado.edu>
6127 2001-12-22 Fernando Perez <fperez@colorado.edu>
6123
6128
6124 * Released 0.2.2.
6129 * Released 0.2.2.
6125
6130
6126 * Finished (reasonably) writing the manual. Later will add the
6131 * Finished (reasonably) writing the manual. Later will add the
6127 python-standard navigation stylesheets, but for the time being
6132 python-standard navigation stylesheets, but for the time being
6128 it's fairly complete. Distribution will include html and pdf
6133 it's fairly complete. Distribution will include html and pdf
6129 versions.
6134 versions.
6130
6135
6131 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6136 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6132 (MayaVi author).
6137 (MayaVi author).
6133
6138
6134 2001-12-21 Fernando Perez <fperez@colorado.edu>
6139 2001-12-21 Fernando Perez <fperez@colorado.edu>
6135
6140
6136 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6141 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6137 good public release, I think (with the manual and the distutils
6142 good public release, I think (with the manual and the distutils
6138 installer). The manual can use some work, but that can go
6143 installer). The manual can use some work, but that can go
6139 slowly. Otherwise I think it's quite nice for end users. Next
6144 slowly. Otherwise I think it's quite nice for end users. Next
6140 summer, rewrite the guts of it...
6145 summer, rewrite the guts of it...
6141
6146
6142 * Changed format of ipythonrc files to use whitespace as the
6147 * Changed format of ipythonrc files to use whitespace as the
6143 separator instead of an explicit '='. Cleaner.
6148 separator instead of an explicit '='. Cleaner.
6144
6149
6145 2001-12-20 Fernando Perez <fperez@colorado.edu>
6150 2001-12-20 Fernando Perez <fperez@colorado.edu>
6146
6151
6147 * Started a manual in LyX. For now it's just a quick merge of the
6152 * Started a manual in LyX. For now it's just a quick merge of the
6148 various internal docstrings and READMEs. Later it may grow into a
6153 various internal docstrings and READMEs. Later it may grow into a
6149 nice, full-blown manual.
6154 nice, full-blown manual.
6150
6155
6151 * Set up a distutils based installer. Installation should now be
6156 * Set up a distutils based installer. Installation should now be
6152 trivially simple for end-users.
6157 trivially simple for end-users.
6153
6158
6154 2001-12-11 Fernando Perez <fperez@colorado.edu>
6159 2001-12-11 Fernando Perez <fperez@colorado.edu>
6155
6160
6156 * Released 0.2.0. First public release, announced it at
6161 * Released 0.2.0. First public release, announced it at
6157 comp.lang.python. From now on, just bugfixes...
6162 comp.lang.python. From now on, just bugfixes...
6158
6163
6159 * Went through all the files, set copyright/license notices and
6164 * Went through all the files, set copyright/license notices and
6160 cleaned up things. Ready for release.
6165 cleaned up things. Ready for release.
6161
6166
6162 2001-12-10 Fernando Perez <fperez@colorado.edu>
6167 2001-12-10 Fernando Perez <fperez@colorado.edu>
6163
6168
6164 * Changed the first-time installer not to use tarfiles. It's more
6169 * Changed the first-time installer not to use tarfiles. It's more
6165 robust now and less unix-dependent. Also makes it easier for
6170 robust now and less unix-dependent. Also makes it easier for
6166 people to later upgrade versions.
6171 people to later upgrade versions.
6167
6172
6168 * Changed @exit to @abort to reflect the fact that it's pretty
6173 * Changed @exit to @abort to reflect the fact that it's pretty
6169 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6174 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6170 becomes significant only when IPyhton is embedded: in that case,
6175 becomes significant only when IPyhton is embedded: in that case,
6171 C-D closes IPython only, but @abort kills the enclosing program
6176 C-D closes IPython only, but @abort kills the enclosing program
6172 too (unless it had called IPython inside a try catching
6177 too (unless it had called IPython inside a try catching
6173 SystemExit).
6178 SystemExit).
6174
6179
6175 * Created Shell module which exposes the actuall IPython Shell
6180 * Created Shell module which exposes the actuall IPython Shell
6176 classes, currently the normal and the embeddable one. This at
6181 classes, currently the normal and the embeddable one. This at
6177 least offers a stable interface we won't need to change when
6182 least offers a stable interface we won't need to change when
6178 (later) the internals are rewritten. That rewrite will be confined
6183 (later) the internals are rewritten. That rewrite will be confined
6179 to iplib and ipmaker, but the Shell interface should remain as is.
6184 to iplib and ipmaker, but the Shell interface should remain as is.
6180
6185
6181 * Added embed module which offers an embeddable IPShell object,
6186 * Added embed module which offers an embeddable IPShell object,
6182 useful to fire up IPython *inside* a running program. Great for
6187 useful to fire up IPython *inside* a running program. Great for
6183 debugging or dynamical data analysis.
6188 debugging or dynamical data analysis.
6184
6189
6185 2001-12-08 Fernando Perez <fperez@colorado.edu>
6190 2001-12-08 Fernando Perez <fperez@colorado.edu>
6186
6191
6187 * Fixed small bug preventing seeing info from methods of defined
6192 * Fixed small bug preventing seeing info from methods of defined
6188 objects (incorrect namespace in _ofind()).
6193 objects (incorrect namespace in _ofind()).
6189
6194
6190 * Documentation cleanup. Moved the main usage docstrings to a
6195 * Documentation cleanup. Moved the main usage docstrings to a
6191 separate file, usage.py (cleaner to maintain, and hopefully in the
6196 separate file, usage.py (cleaner to maintain, and hopefully in the
6192 future some perlpod-like way of producing interactive, man and
6197 future some perlpod-like way of producing interactive, man and
6193 html docs out of it will be found).
6198 html docs out of it will be found).
6194
6199
6195 * Added @profile to see your profile at any time.
6200 * Added @profile to see your profile at any time.
6196
6201
6197 * Added @p as an alias for 'print'. It's especially convenient if
6202 * Added @p as an alias for 'print'. It's especially convenient if
6198 using automagic ('p x' prints x).
6203 using automagic ('p x' prints x).
6199
6204
6200 * Small cleanups and fixes after a pychecker run.
6205 * Small cleanups and fixes after a pychecker run.
6201
6206
6202 * Changed the @cd command to handle @cd - and @cd -<n> for
6207 * Changed the @cd command to handle @cd - and @cd -<n> for
6203 visiting any directory in _dh.
6208 visiting any directory in _dh.
6204
6209
6205 * Introduced _dh, a history of visited directories. @dhist prints
6210 * Introduced _dh, a history of visited directories. @dhist prints
6206 it out with numbers.
6211 it out with numbers.
6207
6212
6208 2001-12-07 Fernando Perez <fperez@colorado.edu>
6213 2001-12-07 Fernando Perez <fperez@colorado.edu>
6209
6214
6210 * Released 0.1.22
6215 * Released 0.1.22
6211
6216
6212 * Made initialization a bit more robust against invalid color
6217 * Made initialization a bit more robust against invalid color
6213 options in user input (exit, not traceback-crash).
6218 options in user input (exit, not traceback-crash).
6214
6219
6215 * Changed the bug crash reporter to write the report only in the
6220 * Changed the bug crash reporter to write the report only in the
6216 user's .ipython directory. That way IPython won't litter people's
6221 user's .ipython directory. That way IPython won't litter people's
6217 hard disks with crash files all over the place. Also print on
6222 hard disks with crash files all over the place. Also print on
6218 screen the necessary mail command.
6223 screen the necessary mail command.
6219
6224
6220 * With the new ultraTB, implemented LightBG color scheme for light
6225 * With the new ultraTB, implemented LightBG color scheme for light
6221 background terminals. A lot of people like white backgrounds, so I
6226 background terminals. A lot of people like white backgrounds, so I
6222 guess we should at least give them something readable.
6227 guess we should at least give them something readable.
6223
6228
6224 2001-12-06 Fernando Perez <fperez@colorado.edu>
6229 2001-12-06 Fernando Perez <fperez@colorado.edu>
6225
6230
6226 * Modified the structure of ultraTB. Now there's a proper class
6231 * Modified the structure of ultraTB. Now there's a proper class
6227 for tables of color schemes which allow adding schemes easily and
6232 for tables of color schemes which allow adding schemes easily and
6228 switching the active scheme without creating a new instance every
6233 switching the active scheme without creating a new instance every
6229 time (which was ridiculous). The syntax for creating new schemes
6234 time (which was ridiculous). The syntax for creating new schemes
6230 is also cleaner. I think ultraTB is finally done, with a clean
6235 is also cleaner. I think ultraTB is finally done, with a clean
6231 class structure. Names are also much cleaner (now there's proper
6236 class structure. Names are also much cleaner (now there's proper
6232 color tables, no need for every variable to also have 'color' in
6237 color tables, no need for every variable to also have 'color' in
6233 its name).
6238 its name).
6234
6239
6235 * Broke down genutils into separate files. Now genutils only
6240 * Broke down genutils into separate files. Now genutils only
6236 contains utility functions, and classes have been moved to their
6241 contains utility functions, and classes have been moved to their
6237 own files (they had enough independent functionality to warrant
6242 own files (they had enough independent functionality to warrant
6238 it): ConfigLoader, OutputTrap, Struct.
6243 it): ConfigLoader, OutputTrap, Struct.
6239
6244
6240 2001-12-05 Fernando Perez <fperez@colorado.edu>
6245 2001-12-05 Fernando Perez <fperez@colorado.edu>
6241
6246
6242 * IPython turns 21! Released version 0.1.21, as a candidate for
6247 * IPython turns 21! Released version 0.1.21, as a candidate for
6243 public consumption. If all goes well, release in a few days.
6248 public consumption. If all goes well, release in a few days.
6244
6249
6245 * Fixed path bug (files in Extensions/ directory wouldn't be found
6250 * Fixed path bug (files in Extensions/ directory wouldn't be found
6246 unless IPython/ was explicitly in sys.path).
6251 unless IPython/ was explicitly in sys.path).
6247
6252
6248 * Extended the FlexCompleter class as MagicCompleter to allow
6253 * Extended the FlexCompleter class as MagicCompleter to allow
6249 completion of @-starting lines.
6254 completion of @-starting lines.
6250
6255
6251 * Created __release__.py file as a central repository for release
6256 * Created __release__.py file as a central repository for release
6252 info that other files can read from.
6257 info that other files can read from.
6253
6258
6254 * Fixed small bug in logging: when logging was turned on in
6259 * Fixed small bug in logging: when logging was turned on in
6255 mid-session, old lines with special meanings (!@?) were being
6260 mid-session, old lines with special meanings (!@?) were being
6256 logged without the prepended comment, which is necessary since
6261 logged without the prepended comment, which is necessary since
6257 they are not truly valid python syntax. This should make session
6262 they are not truly valid python syntax. This should make session
6258 restores produce less errors.
6263 restores produce less errors.
6259
6264
6260 * The namespace cleanup forced me to make a FlexCompleter class
6265 * The namespace cleanup forced me to make a FlexCompleter class
6261 which is nothing but a ripoff of rlcompleter, but with selectable
6266 which is nothing but a ripoff of rlcompleter, but with selectable
6262 namespace (rlcompleter only works in __main__.__dict__). I'll try
6267 namespace (rlcompleter only works in __main__.__dict__). I'll try
6263 to submit a note to the authors to see if this change can be
6268 to submit a note to the authors to see if this change can be
6264 incorporated in future rlcompleter releases (Dec.6: done)
6269 incorporated in future rlcompleter releases (Dec.6: done)
6265
6270
6266 * More fixes to namespace handling. It was a mess! Now all
6271 * More fixes to namespace handling. It was a mess! Now all
6267 explicit references to __main__.__dict__ are gone (except when
6272 explicit references to __main__.__dict__ are gone (except when
6268 really needed) and everything is handled through the namespace
6273 really needed) and everything is handled through the namespace
6269 dicts in the IPython instance. We seem to be getting somewhere
6274 dicts in the IPython instance. We seem to be getting somewhere
6270 with this, finally...
6275 with this, finally...
6271
6276
6272 * Small documentation updates.
6277 * Small documentation updates.
6273
6278
6274 * Created the Extensions directory under IPython (with an
6279 * Created the Extensions directory under IPython (with an
6275 __init__.py). Put the PhysicalQ stuff there. This directory should
6280 __init__.py). Put the PhysicalQ stuff there. This directory should
6276 be used for all special-purpose extensions.
6281 be used for all special-purpose extensions.
6277
6282
6278 * File renaming:
6283 * File renaming:
6279 ipythonlib --> ipmaker
6284 ipythonlib --> ipmaker
6280 ipplib --> iplib
6285 ipplib --> iplib
6281 This makes a bit more sense in terms of what these files actually do.
6286 This makes a bit more sense in terms of what these files actually do.
6282
6287
6283 * Moved all the classes and functions in ipythonlib to ipplib, so
6288 * Moved all the classes and functions in ipythonlib to ipplib, so
6284 now ipythonlib only has make_IPython(). This will ease up its
6289 now ipythonlib only has make_IPython(). This will ease up its
6285 splitting in smaller functional chunks later.
6290 splitting in smaller functional chunks later.
6286
6291
6287 * Cleaned up (done, I think) output of @whos. Better column
6292 * Cleaned up (done, I think) output of @whos. Better column
6288 formatting, and now shows str(var) for as much as it can, which is
6293 formatting, and now shows str(var) for as much as it can, which is
6289 typically what one gets with a 'print var'.
6294 typically what one gets with a 'print var'.
6290
6295
6291 2001-12-04 Fernando Perez <fperez@colorado.edu>
6296 2001-12-04 Fernando Perez <fperez@colorado.edu>
6292
6297
6293 * Fixed namespace problems. Now builtin/IPyhton/user names get
6298 * Fixed namespace problems. Now builtin/IPyhton/user names get
6294 properly reported in their namespace. Internal namespace handling
6299 properly reported in their namespace. Internal namespace handling
6295 is finally getting decent (not perfect yet, but much better than
6300 is finally getting decent (not perfect yet, but much better than
6296 the ad-hoc mess we had).
6301 the ad-hoc mess we had).
6297
6302
6298 * Removed -exit option. If people just want to run a python
6303 * Removed -exit option. If people just want to run a python
6299 script, that's what the normal interpreter is for. Less
6304 script, that's what the normal interpreter is for. Less
6300 unnecessary options, less chances for bugs.
6305 unnecessary options, less chances for bugs.
6301
6306
6302 * Added a crash handler which generates a complete post-mortem if
6307 * Added a crash handler which generates a complete post-mortem if
6303 IPython crashes. This will help a lot in tracking bugs down the
6308 IPython crashes. This will help a lot in tracking bugs down the
6304 road.
6309 road.
6305
6310
6306 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6311 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6307 which were boud to functions being reassigned would bypass the
6312 which were boud to functions being reassigned would bypass the
6308 logger, breaking the sync of _il with the prompt counter. This
6313 logger, breaking the sync of _il with the prompt counter. This
6309 would then crash IPython later when a new line was logged.
6314 would then crash IPython later when a new line was logged.
6310
6315
6311 2001-12-02 Fernando Perez <fperez@colorado.edu>
6316 2001-12-02 Fernando Perez <fperez@colorado.edu>
6312
6317
6313 * Made IPython a package. This means people don't have to clutter
6318 * Made IPython a package. This means people don't have to clutter
6314 their sys.path with yet another directory. Changed the INSTALL
6319 their sys.path with yet another directory. Changed the INSTALL
6315 file accordingly.
6320 file accordingly.
6316
6321
6317 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6322 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6318 sorts its output (so @who shows it sorted) and @whos formats the
6323 sorts its output (so @who shows it sorted) and @whos formats the
6319 table according to the width of the first column. Nicer, easier to
6324 table according to the width of the first column. Nicer, easier to
6320 read. Todo: write a generic table_format() which takes a list of
6325 read. Todo: write a generic table_format() which takes a list of
6321 lists and prints it nicely formatted, with optional row/column
6326 lists and prints it nicely formatted, with optional row/column
6322 separators and proper padding and justification.
6327 separators and proper padding and justification.
6323
6328
6324 * Released 0.1.20
6329 * Released 0.1.20
6325
6330
6326 * Fixed bug in @log which would reverse the inputcache list (a
6331 * Fixed bug in @log which would reverse the inputcache list (a
6327 copy operation was missing).
6332 copy operation was missing).
6328
6333
6329 * Code cleanup. @config was changed to use page(). Better, since
6334 * Code cleanup. @config was changed to use page(). Better, since
6330 its output is always quite long.
6335 its output is always quite long.
6331
6336
6332 * Itpl is back as a dependency. I was having too many problems
6337 * Itpl is back as a dependency. I was having too many problems
6333 getting the parametric aliases to work reliably, and it's just
6338 getting the parametric aliases to work reliably, and it's just
6334 easier to code weird string operations with it than playing %()s
6339 easier to code weird string operations with it than playing %()s
6335 games. It's only ~6k, so I don't think it's too big a deal.
6340 games. It's only ~6k, so I don't think it's too big a deal.
6336
6341
6337 * Found (and fixed) a very nasty bug with history. !lines weren't
6342 * Found (and fixed) a very nasty bug with history. !lines weren't
6338 getting cached, and the out of sync caches would crash
6343 getting cached, and the out of sync caches would crash
6339 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6344 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6340 division of labor a bit better. Bug fixed, cleaner structure.
6345 division of labor a bit better. Bug fixed, cleaner structure.
6341
6346
6342 2001-12-01 Fernando Perez <fperez@colorado.edu>
6347 2001-12-01 Fernando Perez <fperez@colorado.edu>
6343
6348
6344 * Released 0.1.19
6349 * Released 0.1.19
6345
6350
6346 * Added option -n to @hist to prevent line number printing. Much
6351 * Added option -n to @hist to prevent line number printing. Much
6347 easier to copy/paste code this way.
6352 easier to copy/paste code this way.
6348
6353
6349 * Created global _il to hold the input list. Allows easy
6354 * Created global _il to hold the input list. Allows easy
6350 re-execution of blocks of code by slicing it (inspired by Janko's
6355 re-execution of blocks of code by slicing it (inspired by Janko's
6351 comment on 'macros').
6356 comment on 'macros').
6352
6357
6353 * Small fixes and doc updates.
6358 * Small fixes and doc updates.
6354
6359
6355 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6360 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6356 much too fragile with automagic. Handles properly multi-line
6361 much too fragile with automagic. Handles properly multi-line
6357 statements and takes parameters.
6362 statements and takes parameters.
6358
6363
6359 2001-11-30 Fernando Perez <fperez@colorado.edu>
6364 2001-11-30 Fernando Perez <fperez@colorado.edu>
6360
6365
6361 * Version 0.1.18 released.
6366 * Version 0.1.18 released.
6362
6367
6363 * Fixed nasty namespace bug in initial module imports.
6368 * Fixed nasty namespace bug in initial module imports.
6364
6369
6365 * Added copyright/license notes to all code files (except
6370 * Added copyright/license notes to all code files (except
6366 DPyGetOpt). For the time being, LGPL. That could change.
6371 DPyGetOpt). For the time being, LGPL. That could change.
6367
6372
6368 * Rewrote a much nicer README, updated INSTALL, cleaned up
6373 * Rewrote a much nicer README, updated INSTALL, cleaned up
6369 ipythonrc-* samples.
6374 ipythonrc-* samples.
6370
6375
6371 * Overall code/documentation cleanup. Basically ready for
6376 * Overall code/documentation cleanup. Basically ready for
6372 release. Only remaining thing: licence decision (LGPL?).
6377 release. Only remaining thing: licence decision (LGPL?).
6373
6378
6374 * Converted load_config to a class, ConfigLoader. Now recursion
6379 * Converted load_config to a class, ConfigLoader. Now recursion
6375 control is better organized. Doesn't include the same file twice.
6380 control is better organized. Doesn't include the same file twice.
6376
6381
6377 2001-11-29 Fernando Perez <fperez@colorado.edu>
6382 2001-11-29 Fernando Perez <fperez@colorado.edu>
6378
6383
6379 * Got input history working. Changed output history variables from
6384 * Got input history working. Changed output history variables from
6380 _p to _o so that _i is for input and _o for output. Just cleaner
6385 _p to _o so that _i is for input and _o for output. Just cleaner
6381 convention.
6386 convention.
6382
6387
6383 * Implemented parametric aliases. This pretty much allows the
6388 * Implemented parametric aliases. This pretty much allows the
6384 alias system to offer full-blown shell convenience, I think.
6389 alias system to offer full-blown shell convenience, I think.
6385
6390
6386 * Version 0.1.17 released, 0.1.18 opened.
6391 * Version 0.1.17 released, 0.1.18 opened.
6387
6392
6388 * dot_ipython/ipythonrc (alias): added documentation.
6393 * dot_ipython/ipythonrc (alias): added documentation.
6389 (xcolor): Fixed small bug (xcolors -> xcolor)
6394 (xcolor): Fixed small bug (xcolors -> xcolor)
6390
6395
6391 * Changed the alias system. Now alias is a magic command to define
6396 * Changed the alias system. Now alias is a magic command to define
6392 aliases just like the shell. Rationale: the builtin magics should
6397 aliases just like the shell. Rationale: the builtin magics should
6393 be there for things deeply connected to IPython's
6398 be there for things deeply connected to IPython's
6394 architecture. And this is a much lighter system for what I think
6399 architecture. And this is a much lighter system for what I think
6395 is the really important feature: allowing users to define quickly
6400 is the really important feature: allowing users to define quickly
6396 magics that will do shell things for them, so they can customize
6401 magics that will do shell things for them, so they can customize
6397 IPython easily to match their work habits. If someone is really
6402 IPython easily to match their work habits. If someone is really
6398 desperate to have another name for a builtin alias, they can
6403 desperate to have another name for a builtin alias, they can
6399 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6404 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6400 works.
6405 works.
6401
6406
6402 2001-11-28 Fernando Perez <fperez@colorado.edu>
6407 2001-11-28 Fernando Perez <fperez@colorado.edu>
6403
6408
6404 * Changed @file so that it opens the source file at the proper
6409 * Changed @file so that it opens the source file at the proper
6405 line. Since it uses less, if your EDITOR environment is
6410 line. Since it uses less, if your EDITOR environment is
6406 configured, typing v will immediately open your editor of choice
6411 configured, typing v will immediately open your editor of choice
6407 right at the line where the object is defined. Not as quick as
6412 right at the line where the object is defined. Not as quick as
6408 having a direct @edit command, but for all intents and purposes it
6413 having a direct @edit command, but for all intents and purposes it
6409 works. And I don't have to worry about writing @edit to deal with
6414 works. And I don't have to worry about writing @edit to deal with
6410 all the editors, less does that.
6415 all the editors, less does that.
6411
6416
6412 * Version 0.1.16 released, 0.1.17 opened.
6417 * Version 0.1.16 released, 0.1.17 opened.
6413
6418
6414 * Fixed some nasty bugs in the page/page_dumb combo that could
6419 * Fixed some nasty bugs in the page/page_dumb combo that could
6415 crash IPython.
6420 crash IPython.
6416
6421
6417 2001-11-27 Fernando Perez <fperez@colorado.edu>
6422 2001-11-27 Fernando Perez <fperez@colorado.edu>
6418
6423
6419 * Version 0.1.15 released, 0.1.16 opened.
6424 * Version 0.1.15 released, 0.1.16 opened.
6420
6425
6421 * Finally got ? and ?? to work for undefined things: now it's
6426 * Finally got ? and ?? to work for undefined things: now it's
6422 possible to type {}.get? and get information about the get method
6427 possible to type {}.get? and get information about the get method
6423 of dicts, or os.path? even if only os is defined (so technically
6428 of dicts, or os.path? even if only os is defined (so technically
6424 os.path isn't). Works at any level. For example, after import os,
6429 os.path isn't). Works at any level. For example, after import os,
6425 os?, os.path?, os.path.abspath? all work. This is great, took some
6430 os?, os.path?, os.path.abspath? all work. This is great, took some
6426 work in _ofind.
6431 work in _ofind.
6427
6432
6428 * Fixed more bugs with logging. The sanest way to do it was to add
6433 * Fixed more bugs with logging. The sanest way to do it was to add
6429 to @log a 'mode' parameter. Killed two in one shot (this mode
6434 to @log a 'mode' parameter. Killed two in one shot (this mode
6430 option was a request of Janko's). I think it's finally clean
6435 option was a request of Janko's). I think it's finally clean
6431 (famous last words).
6436 (famous last words).
6432
6437
6433 * Added a page_dumb() pager which does a decent job of paging on
6438 * Added a page_dumb() pager which does a decent job of paging on
6434 screen, if better things (like less) aren't available. One less
6439 screen, if better things (like less) aren't available. One less
6435 unix dependency (someday maybe somebody will port this to
6440 unix dependency (someday maybe somebody will port this to
6436 windows).
6441 windows).
6437
6442
6438 * Fixed problem in magic_log: would lock of logging out if log
6443 * Fixed problem in magic_log: would lock of logging out if log
6439 creation failed (because it would still think it had succeeded).
6444 creation failed (because it would still think it had succeeded).
6440
6445
6441 * Improved the page() function using curses to auto-detect screen
6446 * Improved the page() function using curses to auto-detect screen
6442 size. Now it can make a much better decision on whether to print
6447 size. Now it can make a much better decision on whether to print
6443 or page a string. Option screen_length was modified: a value 0
6448 or page a string. Option screen_length was modified: a value 0
6444 means auto-detect, and that's the default now.
6449 means auto-detect, and that's the default now.
6445
6450
6446 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6451 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6447 go out. I'll test it for a few days, then talk to Janko about
6452 go out. I'll test it for a few days, then talk to Janko about
6448 licences and announce it.
6453 licences and announce it.
6449
6454
6450 * Fixed the length of the auto-generated ---> prompt which appears
6455 * Fixed the length of the auto-generated ---> prompt which appears
6451 for auto-parens and auto-quotes. Getting this right isn't trivial,
6456 for auto-parens and auto-quotes. Getting this right isn't trivial,
6452 with all the color escapes, different prompt types and optional
6457 with all the color escapes, different prompt types and optional
6453 separators. But it seems to be working in all the combinations.
6458 separators. But it seems to be working in all the combinations.
6454
6459
6455 2001-11-26 Fernando Perez <fperez@colorado.edu>
6460 2001-11-26 Fernando Perez <fperez@colorado.edu>
6456
6461
6457 * Wrote a regexp filter to get option types from the option names
6462 * Wrote a regexp filter to get option types from the option names
6458 string. This eliminates the need to manually keep two duplicate
6463 string. This eliminates the need to manually keep two duplicate
6459 lists.
6464 lists.
6460
6465
6461 * Removed the unneeded check_option_names. Now options are handled
6466 * Removed the unneeded check_option_names. Now options are handled
6462 in a much saner manner and it's easy to visually check that things
6467 in a much saner manner and it's easy to visually check that things
6463 are ok.
6468 are ok.
6464
6469
6465 * Updated version numbers on all files I modified to carry a
6470 * Updated version numbers on all files I modified to carry a
6466 notice so Janko and Nathan have clear version markers.
6471 notice so Janko and Nathan have clear version markers.
6467
6472
6468 * Updated docstring for ultraTB with my changes. I should send
6473 * Updated docstring for ultraTB with my changes. I should send
6469 this to Nathan.
6474 this to Nathan.
6470
6475
6471 * Lots of small fixes. Ran everything through pychecker again.
6476 * Lots of small fixes. Ran everything through pychecker again.
6472
6477
6473 * Made loading of deep_reload an cmd line option. If it's not too
6478 * Made loading of deep_reload an cmd line option. If it's not too
6474 kosher, now people can just disable it. With -nodeep_reload it's
6479 kosher, now people can just disable it. With -nodeep_reload it's
6475 still available as dreload(), it just won't overwrite reload().
6480 still available as dreload(), it just won't overwrite reload().
6476
6481
6477 * Moved many options to the no| form (-opt and -noopt
6482 * Moved many options to the no| form (-opt and -noopt
6478 accepted). Cleaner.
6483 accepted). Cleaner.
6479
6484
6480 * Changed magic_log so that if called with no parameters, it uses
6485 * Changed magic_log so that if called with no parameters, it uses
6481 'rotate' mode. That way auto-generated logs aren't automatically
6486 'rotate' mode. That way auto-generated logs aren't automatically
6482 over-written. For normal logs, now a backup is made if it exists
6487 over-written. For normal logs, now a backup is made if it exists
6483 (only 1 level of backups). A new 'backup' mode was added to the
6488 (only 1 level of backups). A new 'backup' mode was added to the
6484 Logger class to support this. This was a request by Janko.
6489 Logger class to support this. This was a request by Janko.
6485
6490
6486 * Added @logoff/@logon to stop/restart an active log.
6491 * Added @logoff/@logon to stop/restart an active log.
6487
6492
6488 * Fixed a lot of bugs in log saving/replay. It was pretty
6493 * Fixed a lot of bugs in log saving/replay. It was pretty
6489 broken. Now special lines (!@,/) appear properly in the command
6494 broken. Now special lines (!@,/) appear properly in the command
6490 history after a log replay.
6495 history after a log replay.
6491
6496
6492 * Tried and failed to implement full session saving via pickle. My
6497 * Tried and failed to implement full session saving via pickle. My
6493 idea was to pickle __main__.__dict__, but modules can't be
6498 idea was to pickle __main__.__dict__, but modules can't be
6494 pickled. This would be a better alternative to replaying logs, but
6499 pickled. This would be a better alternative to replaying logs, but
6495 seems quite tricky to get to work. Changed -session to be called
6500 seems quite tricky to get to work. Changed -session to be called
6496 -logplay, which more accurately reflects what it does. And if we
6501 -logplay, which more accurately reflects what it does. And if we
6497 ever get real session saving working, -session is now available.
6502 ever get real session saving working, -session is now available.
6498
6503
6499 * Implemented color schemes for prompts also. As for tracebacks,
6504 * Implemented color schemes for prompts also. As for tracebacks,
6500 currently only NoColor and Linux are supported. But now the
6505 currently only NoColor and Linux are supported. But now the
6501 infrastructure is in place, based on a generic ColorScheme
6506 infrastructure is in place, based on a generic ColorScheme
6502 class. So writing and activating new schemes both for the prompts
6507 class. So writing and activating new schemes both for the prompts
6503 and the tracebacks should be straightforward.
6508 and the tracebacks should be straightforward.
6504
6509
6505 * Version 0.1.13 released, 0.1.14 opened.
6510 * Version 0.1.13 released, 0.1.14 opened.
6506
6511
6507 * Changed handling of options for output cache. Now counter is
6512 * Changed handling of options for output cache. Now counter is
6508 hardwired starting at 1 and one specifies the maximum number of
6513 hardwired starting at 1 and one specifies the maximum number of
6509 entries *in the outcache* (not the max prompt counter). This is
6514 entries *in the outcache* (not the max prompt counter). This is
6510 much better, since many statements won't increase the cache
6515 much better, since many statements won't increase the cache
6511 count. It also eliminated some confusing options, now there's only
6516 count. It also eliminated some confusing options, now there's only
6512 one: cache_size.
6517 one: cache_size.
6513
6518
6514 * Added 'alias' magic function and magic_alias option in the
6519 * Added 'alias' magic function and magic_alias option in the
6515 ipythonrc file. Now the user can easily define whatever names he
6520 ipythonrc file. Now the user can easily define whatever names he
6516 wants for the magic functions without having to play weird
6521 wants for the magic functions without having to play weird
6517 namespace games. This gives IPython a real shell-like feel.
6522 namespace games. This gives IPython a real shell-like feel.
6518
6523
6519 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6524 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6520 @ or not).
6525 @ or not).
6521
6526
6522 This was one of the last remaining 'visible' bugs (that I know
6527 This was one of the last remaining 'visible' bugs (that I know
6523 of). I think if I can clean up the session loading so it works
6528 of). I think if I can clean up the session loading so it works
6524 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6529 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6525 about licensing).
6530 about licensing).
6526
6531
6527 2001-11-25 Fernando Perez <fperez@colorado.edu>
6532 2001-11-25 Fernando Perez <fperez@colorado.edu>
6528
6533
6529 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6534 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6530 there's a cleaner distinction between what ? and ?? show.
6535 there's a cleaner distinction between what ? and ?? show.
6531
6536
6532 * Added screen_length option. Now the user can define his own
6537 * Added screen_length option. Now the user can define his own
6533 screen size for page() operations.
6538 screen size for page() operations.
6534
6539
6535 * Implemented magic shell-like functions with automatic code
6540 * Implemented magic shell-like functions with automatic code
6536 generation. Now adding another function is just a matter of adding
6541 generation. Now adding another function is just a matter of adding
6537 an entry to a dict, and the function is dynamically generated at
6542 an entry to a dict, and the function is dynamically generated at
6538 run-time. Python has some really cool features!
6543 run-time. Python has some really cool features!
6539
6544
6540 * Renamed many options to cleanup conventions a little. Now all
6545 * Renamed many options to cleanup conventions a little. Now all
6541 are lowercase, and only underscores where needed. Also in the code
6546 are lowercase, and only underscores where needed. Also in the code
6542 option name tables are clearer.
6547 option name tables are clearer.
6543
6548
6544 * Changed prompts a little. Now input is 'In [n]:' instead of
6549 * Changed prompts a little. Now input is 'In [n]:' instead of
6545 'In[n]:='. This allows it the numbers to be aligned with the
6550 'In[n]:='. This allows it the numbers to be aligned with the
6546 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6551 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6547 Python (it was a Mathematica thing). The '...' continuation prompt
6552 Python (it was a Mathematica thing). The '...' continuation prompt
6548 was also changed a little to align better.
6553 was also changed a little to align better.
6549
6554
6550 * Fixed bug when flushing output cache. Not all _p<n> variables
6555 * Fixed bug when flushing output cache. Not all _p<n> variables
6551 exist, so their deletion needs to be wrapped in a try:
6556 exist, so their deletion needs to be wrapped in a try:
6552
6557
6553 * Figured out how to properly use inspect.formatargspec() (it
6558 * Figured out how to properly use inspect.formatargspec() (it
6554 requires the args preceded by *). So I removed all the code from
6559 requires the args preceded by *). So I removed all the code from
6555 _get_pdef in Magic, which was just replicating that.
6560 _get_pdef in Magic, which was just replicating that.
6556
6561
6557 * Added test to prefilter to allow redefining magic function names
6562 * Added test to prefilter to allow redefining magic function names
6558 as variables. This is ok, since the @ form is always available,
6563 as variables. This is ok, since the @ form is always available,
6559 but whe should allow the user to define a variable called 'ls' if
6564 but whe should allow the user to define a variable called 'ls' if
6560 he needs it.
6565 he needs it.
6561
6566
6562 * Moved the ToDo information from README into a separate ToDo.
6567 * Moved the ToDo information from README into a separate ToDo.
6563
6568
6564 * General code cleanup and small bugfixes. I think it's close to a
6569 * General code cleanup and small bugfixes. I think it's close to a
6565 state where it can be released, obviously with a big 'beta'
6570 state where it can be released, obviously with a big 'beta'
6566 warning on it.
6571 warning on it.
6567
6572
6568 * Got the magic function split to work. Now all magics are defined
6573 * Got the magic function split to work. Now all magics are defined
6569 in a separate class. It just organizes things a bit, and now
6574 in a separate class. It just organizes things a bit, and now
6570 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6575 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6571 was too long).
6576 was too long).
6572
6577
6573 * Changed @clear to @reset to avoid potential confusions with
6578 * Changed @clear to @reset to avoid potential confusions with
6574 the shell command clear. Also renamed @cl to @clear, which does
6579 the shell command clear. Also renamed @cl to @clear, which does
6575 exactly what people expect it to from their shell experience.
6580 exactly what people expect it to from their shell experience.
6576
6581
6577 Added a check to the @reset command (since it's so
6582 Added a check to the @reset command (since it's so
6578 destructive, it's probably a good idea to ask for confirmation).
6583 destructive, it's probably a good idea to ask for confirmation).
6579 But now reset only works for full namespace resetting. Since the
6584 But now reset only works for full namespace resetting. Since the
6580 del keyword is already there for deleting a few specific
6585 del keyword is already there for deleting a few specific
6581 variables, I don't see the point of having a redundant magic
6586 variables, I don't see the point of having a redundant magic
6582 function for the same task.
6587 function for the same task.
6583
6588
6584 2001-11-24 Fernando Perez <fperez@colorado.edu>
6589 2001-11-24 Fernando Perez <fperez@colorado.edu>
6585
6590
6586 * Updated the builtin docs (esp. the ? ones).
6591 * Updated the builtin docs (esp. the ? ones).
6587
6592
6588 * Ran all the code through pychecker. Not terribly impressed with
6593 * Ran all the code through pychecker. Not terribly impressed with
6589 it: lots of spurious warnings and didn't really find anything of
6594 it: lots of spurious warnings and didn't really find anything of
6590 substance (just a few modules being imported and not used).
6595 substance (just a few modules being imported and not used).
6591
6596
6592 * Implemented the new ultraTB functionality into IPython. New
6597 * Implemented the new ultraTB functionality into IPython. New
6593 option: xcolors. This chooses color scheme. xmode now only selects
6598 option: xcolors. This chooses color scheme. xmode now only selects
6594 between Plain and Verbose. Better orthogonality.
6599 between Plain and Verbose. Better orthogonality.
6595
6600
6596 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6601 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6597 mode and color scheme for the exception handlers. Now it's
6602 mode and color scheme for the exception handlers. Now it's
6598 possible to have the verbose traceback with no coloring.
6603 possible to have the verbose traceback with no coloring.
6599
6604
6600 2001-11-23 Fernando Perez <fperez@colorado.edu>
6605 2001-11-23 Fernando Perez <fperez@colorado.edu>
6601
6606
6602 * Version 0.1.12 released, 0.1.13 opened.
6607 * Version 0.1.12 released, 0.1.13 opened.
6603
6608
6604 * Removed option to set auto-quote and auto-paren escapes by
6609 * Removed option to set auto-quote and auto-paren escapes by
6605 user. The chances of breaking valid syntax are just too high. If
6610 user. The chances of breaking valid syntax are just too high. If
6606 someone *really* wants, they can always dig into the code.
6611 someone *really* wants, they can always dig into the code.
6607
6612
6608 * Made prompt separators configurable.
6613 * Made prompt separators configurable.
6609
6614
6610 2001-11-22 Fernando Perez <fperez@colorado.edu>
6615 2001-11-22 Fernando Perez <fperez@colorado.edu>
6611
6616
6612 * Small bugfixes in many places.
6617 * Small bugfixes in many places.
6613
6618
6614 * Removed the MyCompleter class from ipplib. It seemed redundant
6619 * Removed the MyCompleter class from ipplib. It seemed redundant
6615 with the C-p,C-n history search functionality. Less code to
6620 with the C-p,C-n history search functionality. Less code to
6616 maintain.
6621 maintain.
6617
6622
6618 * Moved all the original ipython.py code into ipythonlib.py. Right
6623 * Moved all the original ipython.py code into ipythonlib.py. Right
6619 now it's just one big dump into a function called make_IPython, so
6624 now it's just one big dump into a function called make_IPython, so
6620 no real modularity has been gained. But at least it makes the
6625 no real modularity has been gained. But at least it makes the
6621 wrapper script tiny, and since ipythonlib is a module, it gets
6626 wrapper script tiny, and since ipythonlib is a module, it gets
6622 compiled and startup is much faster.
6627 compiled and startup is much faster.
6623
6628
6624 This is a reasobably 'deep' change, so we should test it for a
6629 This is a reasobably 'deep' change, so we should test it for a
6625 while without messing too much more with the code.
6630 while without messing too much more with the code.
6626
6631
6627 2001-11-21 Fernando Perez <fperez@colorado.edu>
6632 2001-11-21 Fernando Perez <fperez@colorado.edu>
6628
6633
6629 * Version 0.1.11 released, 0.1.12 opened for further work.
6634 * Version 0.1.11 released, 0.1.12 opened for further work.
6630
6635
6631 * Removed dependency on Itpl. It was only needed in one place. It
6636 * Removed dependency on Itpl. It was only needed in one place. It
6632 would be nice if this became part of python, though. It makes life
6637 would be nice if this became part of python, though. It makes life
6633 *a lot* easier in some cases.
6638 *a lot* easier in some cases.
6634
6639
6635 * Simplified the prefilter code a bit. Now all handlers are
6640 * Simplified the prefilter code a bit. Now all handlers are
6636 expected to explicitly return a value (at least a blank string).
6641 expected to explicitly return a value (at least a blank string).
6637
6642
6638 * Heavy edits in ipplib. Removed the help system altogether. Now
6643 * Heavy edits in ipplib. Removed the help system altogether. Now
6639 obj?/?? is used for inspecting objects, a magic @doc prints
6644 obj?/?? is used for inspecting objects, a magic @doc prints
6640 docstrings, and full-blown Python help is accessed via the 'help'
6645 docstrings, and full-blown Python help is accessed via the 'help'
6641 keyword. This cleans up a lot of code (less to maintain) and does
6646 keyword. This cleans up a lot of code (less to maintain) and does
6642 the job. Since 'help' is now a standard Python component, might as
6647 the job. Since 'help' is now a standard Python component, might as
6643 well use it and remove duplicate functionality.
6648 well use it and remove duplicate functionality.
6644
6649
6645 Also removed the option to use ipplib as a standalone program. By
6650 Also removed the option to use ipplib as a standalone program. By
6646 now it's too dependent on other parts of IPython to function alone.
6651 now it's too dependent on other parts of IPython to function alone.
6647
6652
6648 * Fixed bug in genutils.pager. It would crash if the pager was
6653 * Fixed bug in genutils.pager. It would crash if the pager was
6649 exited immediately after opening (broken pipe).
6654 exited immediately after opening (broken pipe).
6650
6655
6651 * Trimmed down the VerboseTB reporting a little. The header is
6656 * Trimmed down the VerboseTB reporting a little. The header is
6652 much shorter now and the repeated exception arguments at the end
6657 much shorter now and the repeated exception arguments at the end
6653 have been removed. For interactive use the old header seemed a bit
6658 have been removed. For interactive use the old header seemed a bit
6654 excessive.
6659 excessive.
6655
6660
6656 * Fixed small bug in output of @whos for variables with multi-word
6661 * Fixed small bug in output of @whos for variables with multi-word
6657 types (only first word was displayed).
6662 types (only first word was displayed).
6658
6663
6659 2001-11-17 Fernando Perez <fperez@colorado.edu>
6664 2001-11-17 Fernando Perez <fperez@colorado.edu>
6660
6665
6661 * Version 0.1.10 released, 0.1.11 opened for further work.
6666 * Version 0.1.10 released, 0.1.11 opened for further work.
6662
6667
6663 * Modified dirs and friends. dirs now *returns* the stack (not
6668 * Modified dirs and friends. dirs now *returns* the stack (not
6664 prints), so one can manipulate it as a variable. Convenient to
6669 prints), so one can manipulate it as a variable. Convenient to
6665 travel along many directories.
6670 travel along many directories.
6666
6671
6667 * Fixed bug in magic_pdef: would only work with functions with
6672 * Fixed bug in magic_pdef: would only work with functions with
6668 arguments with default values.
6673 arguments with default values.
6669
6674
6670 2001-11-14 Fernando Perez <fperez@colorado.edu>
6675 2001-11-14 Fernando Perez <fperez@colorado.edu>
6671
6676
6672 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6677 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6673 example with IPython. Various other minor fixes and cleanups.
6678 example with IPython. Various other minor fixes and cleanups.
6674
6679
6675 * Version 0.1.9 released, 0.1.10 opened for further work.
6680 * Version 0.1.9 released, 0.1.10 opened for further work.
6676
6681
6677 * Added sys.path to the list of directories searched in the
6682 * Added sys.path to the list of directories searched in the
6678 execfile= option. It used to be the current directory and the
6683 execfile= option. It used to be the current directory and the
6679 user's IPYTHONDIR only.
6684 user's IPYTHONDIR only.
6680
6685
6681 2001-11-13 Fernando Perez <fperez@colorado.edu>
6686 2001-11-13 Fernando Perez <fperez@colorado.edu>
6682
6687
6683 * Reinstated the raw_input/prefilter separation that Janko had
6688 * Reinstated the raw_input/prefilter separation that Janko had
6684 initially. This gives a more convenient setup for extending the
6689 initially. This gives a more convenient setup for extending the
6685 pre-processor from the outside: raw_input always gets a string,
6690 pre-processor from the outside: raw_input always gets a string,
6686 and prefilter has to process it. We can then redefine prefilter
6691 and prefilter has to process it. We can then redefine prefilter
6687 from the outside and implement extensions for special
6692 from the outside and implement extensions for special
6688 purposes.
6693 purposes.
6689
6694
6690 Today I got one for inputting PhysicalQuantity objects
6695 Today I got one for inputting PhysicalQuantity objects
6691 (from Scientific) without needing any function calls at
6696 (from Scientific) without needing any function calls at
6692 all. Extremely convenient, and it's all done as a user-level
6697 all. Extremely convenient, and it's all done as a user-level
6693 extension (no IPython code was touched). Now instead of:
6698 extension (no IPython code was touched). Now instead of:
6694 a = PhysicalQuantity(4.2,'m/s**2')
6699 a = PhysicalQuantity(4.2,'m/s**2')
6695 one can simply say
6700 one can simply say
6696 a = 4.2 m/s**2
6701 a = 4.2 m/s**2
6697 or even
6702 or even
6698 a = 4.2 m/s^2
6703 a = 4.2 m/s^2
6699
6704
6700 I use this, but it's also a proof of concept: IPython really is
6705 I use this, but it's also a proof of concept: IPython really is
6701 fully user-extensible, even at the level of the parsing of the
6706 fully user-extensible, even at the level of the parsing of the
6702 command line. It's not trivial, but it's perfectly doable.
6707 command line. It's not trivial, but it's perfectly doable.
6703
6708
6704 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6709 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6705 the problem of modules being loaded in the inverse order in which
6710 the problem of modules being loaded in the inverse order in which
6706 they were defined in
6711 they were defined in
6707
6712
6708 * Version 0.1.8 released, 0.1.9 opened for further work.
6713 * Version 0.1.8 released, 0.1.9 opened for further work.
6709
6714
6710 * Added magics pdef, source and file. They respectively show the
6715 * Added magics pdef, source and file. They respectively show the
6711 definition line ('prototype' in C), source code and full python
6716 definition line ('prototype' in C), source code and full python
6712 file for any callable object. The object inspector oinfo uses
6717 file for any callable object. The object inspector oinfo uses
6713 these to show the same information.
6718 these to show the same information.
6714
6719
6715 * Version 0.1.7 released, 0.1.8 opened for further work.
6720 * Version 0.1.7 released, 0.1.8 opened for further work.
6716
6721
6717 * Separated all the magic functions into a class called Magic. The
6722 * Separated all the magic functions into a class called Magic. The
6718 InteractiveShell class was becoming too big for Xemacs to handle
6723 InteractiveShell class was becoming too big for Xemacs to handle
6719 (de-indenting a line would lock it up for 10 seconds while it
6724 (de-indenting a line would lock it up for 10 seconds while it
6720 backtracked on the whole class!)
6725 backtracked on the whole class!)
6721
6726
6722 FIXME: didn't work. It can be done, but right now namespaces are
6727 FIXME: didn't work. It can be done, but right now namespaces are
6723 all messed up. Do it later (reverted it for now, so at least
6728 all messed up. Do it later (reverted it for now, so at least
6724 everything works as before).
6729 everything works as before).
6725
6730
6726 * Got the object introspection system (magic_oinfo) working! I
6731 * Got the object introspection system (magic_oinfo) working! I
6727 think this is pretty much ready for release to Janko, so he can
6732 think this is pretty much ready for release to Janko, so he can
6728 test it for a while and then announce it. Pretty much 100% of what
6733 test it for a while and then announce it. Pretty much 100% of what
6729 I wanted for the 'phase 1' release is ready. Happy, tired.
6734 I wanted for the 'phase 1' release is ready. Happy, tired.
6730
6735
6731 2001-11-12 Fernando Perez <fperez@colorado.edu>
6736 2001-11-12 Fernando Perez <fperez@colorado.edu>
6732
6737
6733 * Version 0.1.6 released, 0.1.7 opened for further work.
6738 * Version 0.1.6 released, 0.1.7 opened for further work.
6734
6739
6735 * Fixed bug in printing: it used to test for truth before
6740 * Fixed bug in printing: it used to test for truth before
6736 printing, so 0 wouldn't print. Now checks for None.
6741 printing, so 0 wouldn't print. Now checks for None.
6737
6742
6738 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6743 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6739 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6744 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6740 reaches by hand into the outputcache. Think of a better way to do
6745 reaches by hand into the outputcache. Think of a better way to do
6741 this later.
6746 this later.
6742
6747
6743 * Various small fixes thanks to Nathan's comments.
6748 * Various small fixes thanks to Nathan's comments.
6744
6749
6745 * Changed magic_pprint to magic_Pprint. This way it doesn't
6750 * Changed magic_pprint to magic_Pprint. This way it doesn't
6746 collide with pprint() and the name is consistent with the command
6751 collide with pprint() and the name is consistent with the command
6747 line option.
6752 line option.
6748
6753
6749 * Changed prompt counter behavior to be fully like
6754 * Changed prompt counter behavior to be fully like
6750 Mathematica's. That is, even input that doesn't return a result
6755 Mathematica's. That is, even input that doesn't return a result
6751 raises the prompt counter. The old behavior was kind of confusing
6756 raises the prompt counter. The old behavior was kind of confusing
6752 (getting the same prompt number several times if the operation
6757 (getting the same prompt number several times if the operation
6753 didn't return a result).
6758 didn't return a result).
6754
6759
6755 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6760 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6756
6761
6757 * Fixed -Classic mode (wasn't working anymore).
6762 * Fixed -Classic mode (wasn't working anymore).
6758
6763
6759 * Added colored prompts using Nathan's new code. Colors are
6764 * Added colored prompts using Nathan's new code. Colors are
6760 currently hardwired, they can be user-configurable. For
6765 currently hardwired, they can be user-configurable. For
6761 developers, they can be chosen in file ipythonlib.py, at the
6766 developers, they can be chosen in file ipythonlib.py, at the
6762 beginning of the CachedOutput class def.
6767 beginning of the CachedOutput class def.
6763
6768
6764 2001-11-11 Fernando Perez <fperez@colorado.edu>
6769 2001-11-11 Fernando Perez <fperez@colorado.edu>
6765
6770
6766 * Version 0.1.5 released, 0.1.6 opened for further work.
6771 * Version 0.1.5 released, 0.1.6 opened for further work.
6767
6772
6768 * Changed magic_env to *return* the environment as a dict (not to
6773 * Changed magic_env to *return* the environment as a dict (not to
6769 print it). This way it prints, but it can also be processed.
6774 print it). This way it prints, but it can also be processed.
6770
6775
6771 * Added Verbose exception reporting to interactive
6776 * Added Verbose exception reporting to interactive
6772 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6777 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6773 traceback. Had to make some changes to the ultraTB file. This is
6778 traceback. Had to make some changes to the ultraTB file. This is
6774 probably the last 'big' thing in my mental todo list. This ties
6779 probably the last 'big' thing in my mental todo list. This ties
6775 in with the next entry:
6780 in with the next entry:
6776
6781
6777 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6782 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6778 has to specify is Plain, Color or Verbose for all exception
6783 has to specify is Plain, Color or Verbose for all exception
6779 handling.
6784 handling.
6780
6785
6781 * Removed ShellServices option. All this can really be done via
6786 * Removed ShellServices option. All this can really be done via
6782 the magic system. It's easier to extend, cleaner and has automatic
6787 the magic system. It's easier to extend, cleaner and has automatic
6783 namespace protection and documentation.
6788 namespace protection and documentation.
6784
6789
6785 2001-11-09 Fernando Perez <fperez@colorado.edu>
6790 2001-11-09 Fernando Perez <fperez@colorado.edu>
6786
6791
6787 * Fixed bug in output cache flushing (missing parameter to
6792 * Fixed bug in output cache flushing (missing parameter to
6788 __init__). Other small bugs fixed (found using pychecker).
6793 __init__). Other small bugs fixed (found using pychecker).
6789
6794
6790 * Version 0.1.4 opened for bugfixing.
6795 * Version 0.1.4 opened for bugfixing.
6791
6796
6792 2001-11-07 Fernando Perez <fperez@colorado.edu>
6797 2001-11-07 Fernando Perez <fperez@colorado.edu>
6793
6798
6794 * Version 0.1.3 released, mainly because of the raw_input bug.
6799 * Version 0.1.3 released, mainly because of the raw_input bug.
6795
6800
6796 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6801 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6797 and when testing for whether things were callable, a call could
6802 and when testing for whether things were callable, a call could
6798 actually be made to certain functions. They would get called again
6803 actually be made to certain functions. They would get called again
6799 once 'really' executed, with a resulting double call. A disaster
6804 once 'really' executed, with a resulting double call. A disaster
6800 in many cases (list.reverse() would never work!).
6805 in many cases (list.reverse() would never work!).
6801
6806
6802 * Removed prefilter() function, moved its code to raw_input (which
6807 * Removed prefilter() function, moved its code to raw_input (which
6803 after all was just a near-empty caller for prefilter). This saves
6808 after all was just a near-empty caller for prefilter). This saves
6804 a function call on every prompt, and simplifies the class a tiny bit.
6809 a function call on every prompt, and simplifies the class a tiny bit.
6805
6810
6806 * Fix _ip to __ip name in magic example file.
6811 * Fix _ip to __ip name in magic example file.
6807
6812
6808 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6813 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6809 work with non-gnu versions of tar.
6814 work with non-gnu versions of tar.
6810
6815
6811 2001-11-06 Fernando Perez <fperez@colorado.edu>
6816 2001-11-06 Fernando Perez <fperez@colorado.edu>
6812
6817
6813 * Version 0.1.2. Just to keep track of the recent changes.
6818 * Version 0.1.2. Just to keep track of the recent changes.
6814
6819
6815 * Fixed nasty bug in output prompt routine. It used to check 'if
6820 * Fixed nasty bug in output prompt routine. It used to check 'if
6816 arg != None...'. Problem is, this fails if arg implements a
6821 arg != None...'. Problem is, this fails if arg implements a
6817 special comparison (__cmp__) which disallows comparing to
6822 special comparison (__cmp__) which disallows comparing to
6818 None. Found it when trying to use the PhysicalQuantity module from
6823 None. Found it when trying to use the PhysicalQuantity module from
6819 ScientificPython.
6824 ScientificPython.
6820
6825
6821 2001-11-05 Fernando Perez <fperez@colorado.edu>
6826 2001-11-05 Fernando Perez <fperez@colorado.edu>
6822
6827
6823 * Also added dirs. Now the pushd/popd/dirs family functions
6828 * Also added dirs. Now the pushd/popd/dirs family functions
6824 basically like the shell, with the added convenience of going home
6829 basically like the shell, with the added convenience of going home
6825 when called with no args.
6830 when called with no args.
6826
6831
6827 * pushd/popd slightly modified to mimic shell behavior more
6832 * pushd/popd slightly modified to mimic shell behavior more
6828 closely.
6833 closely.
6829
6834
6830 * Added env,pushd,popd from ShellServices as magic functions. I
6835 * Added env,pushd,popd from ShellServices as magic functions. I
6831 think the cleanest will be to port all desired functions from
6836 think the cleanest will be to port all desired functions from
6832 ShellServices as magics and remove ShellServices altogether. This
6837 ShellServices as magics and remove ShellServices altogether. This
6833 will provide a single, clean way of adding functionality
6838 will provide a single, clean way of adding functionality
6834 (shell-type or otherwise) to IP.
6839 (shell-type or otherwise) to IP.
6835
6840
6836 2001-11-04 Fernando Perez <fperez@colorado.edu>
6841 2001-11-04 Fernando Perez <fperez@colorado.edu>
6837
6842
6838 * Added .ipython/ directory to sys.path. This way users can keep
6843 * Added .ipython/ directory to sys.path. This way users can keep
6839 customizations there and access them via import.
6844 customizations there and access them via import.
6840
6845
6841 2001-11-03 Fernando Perez <fperez@colorado.edu>
6846 2001-11-03 Fernando Perez <fperez@colorado.edu>
6842
6847
6843 * Opened version 0.1.1 for new changes.
6848 * Opened version 0.1.1 for new changes.
6844
6849
6845 * Changed version number to 0.1.0: first 'public' release, sent to
6850 * Changed version number to 0.1.0: first 'public' release, sent to
6846 Nathan and Janko.
6851 Nathan and Janko.
6847
6852
6848 * Lots of small fixes and tweaks.
6853 * Lots of small fixes and tweaks.
6849
6854
6850 * Minor changes to whos format. Now strings are shown, snipped if
6855 * Minor changes to whos format. Now strings are shown, snipped if
6851 too long.
6856 too long.
6852
6857
6853 * Changed ShellServices to work on __main__ so they show up in @who
6858 * Changed ShellServices to work on __main__ so they show up in @who
6854
6859
6855 * Help also works with ? at the end of a line:
6860 * Help also works with ? at the end of a line:
6856 ?sin and sin?
6861 ?sin and sin?
6857 both produce the same effect. This is nice, as often I use the
6862 both produce the same effect. This is nice, as often I use the
6858 tab-complete to find the name of a method, but I used to then have
6863 tab-complete to find the name of a method, but I used to then have
6859 to go to the beginning of the line to put a ? if I wanted more
6864 to go to the beginning of the line to put a ? if I wanted more
6860 info. Now I can just add the ? and hit return. Convenient.
6865 info. Now I can just add the ? and hit return. Convenient.
6861
6866
6862 2001-11-02 Fernando Perez <fperez@colorado.edu>
6867 2001-11-02 Fernando Perez <fperez@colorado.edu>
6863
6868
6864 * Python version check (>=2.1) added.
6869 * Python version check (>=2.1) added.
6865
6870
6866 * Added LazyPython documentation. At this point the docs are quite
6871 * Added LazyPython documentation. At this point the docs are quite
6867 a mess. A cleanup is in order.
6872 a mess. A cleanup is in order.
6868
6873
6869 * Auto-installer created. For some bizarre reason, the zipfiles
6874 * Auto-installer created. For some bizarre reason, the zipfiles
6870 module isn't working on my system. So I made a tar version
6875 module isn't working on my system. So I made a tar version
6871 (hopefully the command line options in various systems won't kill
6876 (hopefully the command line options in various systems won't kill
6872 me).
6877 me).
6873
6878
6874 * Fixes to Struct in genutils. Now all dictionary-like methods are
6879 * Fixes to Struct in genutils. Now all dictionary-like methods are
6875 protected (reasonably).
6880 protected (reasonably).
6876
6881
6877 * Added pager function to genutils and changed ? to print usage
6882 * Added pager function to genutils and changed ? to print usage
6878 note through it (it was too long).
6883 note through it (it was too long).
6879
6884
6880 * Added the LazyPython functionality. Works great! I changed the
6885 * Added the LazyPython functionality. Works great! I changed the
6881 auto-quote escape to ';', it's on home row and next to '. But
6886 auto-quote escape to ';', it's on home row and next to '. But
6882 both auto-quote and auto-paren (still /) escapes are command-line
6887 both auto-quote and auto-paren (still /) escapes are command-line
6883 parameters.
6888 parameters.
6884
6889
6885
6890
6886 2001-11-01 Fernando Perez <fperez@colorado.edu>
6891 2001-11-01 Fernando Perez <fperez@colorado.edu>
6887
6892
6888 * Version changed to 0.0.7. Fairly large change: configuration now
6893 * Version changed to 0.0.7. Fairly large change: configuration now
6889 is all stored in a directory, by default .ipython. There, all
6894 is all stored in a directory, by default .ipython. There, all
6890 config files have normal looking names (not .names)
6895 config files have normal looking names (not .names)
6891
6896
6892 * Version 0.0.6 Released first to Lucas and Archie as a test
6897 * Version 0.0.6 Released first to Lucas and Archie as a test
6893 run. Since it's the first 'semi-public' release, change version to
6898 run. Since it's the first 'semi-public' release, change version to
6894 > 0.0.6 for any changes now.
6899 > 0.0.6 for any changes now.
6895
6900
6896 * Stuff I had put in the ipplib.py changelog:
6901 * Stuff I had put in the ipplib.py changelog:
6897
6902
6898 Changes to InteractiveShell:
6903 Changes to InteractiveShell:
6899
6904
6900 - Made the usage message a parameter.
6905 - Made the usage message a parameter.
6901
6906
6902 - Require the name of the shell variable to be given. It's a bit
6907 - Require the name of the shell variable to be given. It's a bit
6903 of a hack, but allows the name 'shell' not to be hardwired in the
6908 of a hack, but allows the name 'shell' not to be hardwired in the
6904 magic (@) handler, which is problematic b/c it requires
6909 magic (@) handler, which is problematic b/c it requires
6905 polluting the global namespace with 'shell'. This in turn is
6910 polluting the global namespace with 'shell'. This in turn is
6906 fragile: if a user redefines a variable called shell, things
6911 fragile: if a user redefines a variable called shell, things
6907 break.
6912 break.
6908
6913
6909 - magic @: all functions available through @ need to be defined
6914 - magic @: all functions available through @ need to be defined
6910 as magic_<name>, even though they can be called simply as
6915 as magic_<name>, even though they can be called simply as
6911 @<name>. This allows the special command @magic to gather
6916 @<name>. This allows the special command @magic to gather
6912 information automatically about all existing magic functions,
6917 information automatically about all existing magic functions,
6913 even if they are run-time user extensions, by parsing the shell
6918 even if they are run-time user extensions, by parsing the shell
6914 instance __dict__ looking for special magic_ names.
6919 instance __dict__ looking for special magic_ names.
6915
6920
6916 - mainloop: added *two* local namespace parameters. This allows
6921 - mainloop: added *two* local namespace parameters. This allows
6917 the class to differentiate between parameters which were there
6922 the class to differentiate between parameters which were there
6918 before and after command line initialization was processed. This
6923 before and after command line initialization was processed. This
6919 way, later @who can show things loaded at startup by the
6924 way, later @who can show things loaded at startup by the
6920 user. This trick was necessary to make session saving/reloading
6925 user. This trick was necessary to make session saving/reloading
6921 really work: ideally after saving/exiting/reloading a session,
6926 really work: ideally after saving/exiting/reloading a session,
6922 *everything* should look the same, including the output of @who. I
6927 *everything* should look the same, including the output of @who. I
6923 was only able to make this work with this double namespace
6928 was only able to make this work with this double namespace
6924 trick.
6929 trick.
6925
6930
6926 - added a header to the logfile which allows (almost) full
6931 - added a header to the logfile which allows (almost) full
6927 session restoring.
6932 session restoring.
6928
6933
6929 - prepend lines beginning with @ or !, with a and log
6934 - prepend lines beginning with @ or !, with a and log
6930 them. Why? !lines: may be useful to know what you did @lines:
6935 them. Why? !lines: may be useful to know what you did @lines:
6931 they may affect session state. So when restoring a session, at
6936 they may affect session state. So when restoring a session, at
6932 least inform the user of their presence. I couldn't quite get
6937 least inform the user of their presence. I couldn't quite get
6933 them to properly re-execute, but at least the user is warned.
6938 them to properly re-execute, but at least the user is warned.
6934
6939
6935 * Started ChangeLog.
6940 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now