##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,6984 +1,6996 b''
1 2007-08-13 Ville Vainio <vivainio@gmail.com>
2
3 * prefilter.py: Take more care to special-case !, so that
4 !c:/bin/foo.exe works.
5
6 * setup.py: if we are building eggs, strip all docs and
7 examples (it doesn't make sense to bytecompile examples,
8 and docs would be in an awkward place anyway).
9
10 * Ryan Krauss' patch fixes start menu shortcuts when IPython
11 is installed into a directory that has spaces in the name.
12
1 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
13 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
2
14
3 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
15 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
4 doctest profile and %doctest_mode, so they actually generate the
16 doctest profile and %doctest_mode, so they actually generate the
5 blank lines needed by doctest to separate individual tests.
17 blank lines needed by doctest to separate individual tests.
6
18
7 * IPython/iplib.py (safe_execfile): modify so that running code
19 * IPython/iplib.py (safe_execfile): modify so that running code
8 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
20 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
9 doesn't get a printed traceback. Any other value in sys.exit(),
21 doesn't get a printed traceback. Any other value in sys.exit(),
10 including the empty call, still generates a traceback. This
22 including the empty call, still generates a traceback. This
11 enables use of %run without having to pass '-e' for codes that
23 enables use of %run without having to pass '-e' for codes that
12 correctly set the exit status flag.
24 correctly set the exit status flag.
13
25
14 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
26 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
15
27
16 * IPython/iplib.py (InteractiveShell.post_config_initialization):
28 * IPython/iplib.py (InteractiveShell.post_config_initialization):
17 fix problems with doctests failing when run inside IPython due to
29 fix problems with doctests failing when run inside IPython due to
18 IPython's modifications of sys.displayhook.
30 IPython's modifications of sys.displayhook.
19
31
20 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
32 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
21
33
22 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
34 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
23 a string with names.
35 a string with names.
24
36
25 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
37 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
26
38
27 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
39 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
28 magic to toggle on/off the doctest pasting support without having
40 magic to toggle on/off the doctest pasting support without having
29 to leave a session to switch to a separate profile.
41 to leave a session to switch to a separate profile.
30
42
31 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
43 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
32
44
33 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
45 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
34 introduce a blank line between inputs, to conform to doctest
46 introduce a blank line between inputs, to conform to doctest
35 requirements.
47 requirements.
36
48
37 * IPython/OInspect.py (Inspector.pinfo): fix another part where
49 * IPython/OInspect.py (Inspector.pinfo): fix another part where
38 auto-generated docstrings for new-style classes were showing up.
50 auto-generated docstrings for new-style classes were showing up.
39
51
40 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
52 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
41
53
42 * api_changes: Add new file to track backward-incompatible
54 * api_changes: Add new file to track backward-incompatible
43 user-visible changes.
55 user-visible changes.
44
56
45 2007-08-06 Ville Vainio <vivainio@gmail.com>
57 2007-08-06 Ville Vainio <vivainio@gmail.com>
46
58
47 * ipmaker.py: fix bug where user_config_ns didn't exist at all
59 * ipmaker.py: fix bug where user_config_ns didn't exist at all
48 before all the config files were handled.
60 before all the config files were handled.
49
61
50 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
62 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
51
63
52 * IPython/irunner.py (RunnerFactory): Add new factory class for
64 * IPython/irunner.py (RunnerFactory): Add new factory class for
53 creating reusable runners based on filenames.
65 creating reusable runners based on filenames.
54
66
55 * IPython/Extensions/ipy_profile_doctest.py: New profile for
67 * IPython/Extensions/ipy_profile_doctest.py: New profile for
56 doctest support. It sets prompts/exceptions as similar to
68 doctest support. It sets prompts/exceptions as similar to
57 standard Python as possible, so that ipython sessions in this
69 standard Python as possible, so that ipython sessions in this
58 profile can be easily pasted as doctests with minimal
70 profile can be easily pasted as doctests with minimal
59 modifications. It also enables pasting of doctests from external
71 modifications. It also enables pasting of doctests from external
60 sources (even if they have leading whitespace), so that you can
72 sources (even if they have leading whitespace), so that you can
61 rerun doctests from existing sources.
73 rerun doctests from existing sources.
62
74
63 * IPython/iplib.py (_prefilter): fix a buglet where after entering
75 * IPython/iplib.py (_prefilter): fix a buglet where after entering
64 some whitespace, the prompt would become a continuation prompt
76 some whitespace, the prompt would become a continuation prompt
65 with no way of exiting it other than Ctrl-C. This fix brings us
77 with no way of exiting it other than Ctrl-C. This fix brings us
66 into conformity with how the default python prompt works.
78 into conformity with how the default python prompt works.
67
79
68 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
80 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
69 Add support for pasting not only lines that start with '>>>', but
81 Add support for pasting not only lines that start with '>>>', but
70 also with ' >>>'. That is, arbitrary whitespace can now precede
82 also with ' >>>'. That is, arbitrary whitespace can now precede
71 the prompts. This makes the system useful for pasting doctests
83 the prompts. This makes the system useful for pasting doctests
72 from docstrings back into a normal session.
84 from docstrings back into a normal session.
73
85
74 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
86 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
75
87
76 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
88 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
77 r1357, which had killed multiple invocations of an embedded
89 r1357, which had killed multiple invocations of an embedded
78 ipython (this means that example-embed has been broken for over 1
90 ipython (this means that example-embed has been broken for over 1
79 year!!!). Rather than possibly breaking the batch stuff for which
91 year!!!). Rather than possibly breaking the batch stuff for which
80 the code in iplib.py/interact was introduced, I worked around the
92 the code in iplib.py/interact was introduced, I worked around the
81 problem in the embedding class in Shell.py. We really need a
93 problem in the embedding class in Shell.py. We really need a
82 bloody test suite for this code, I'm sick of finding stuff that
94 bloody test suite for this code, I'm sick of finding stuff that
83 used to work breaking left and right every time I use an old
95 used to work breaking left and right every time I use an old
84 feature I hadn't touched in a few months.
96 feature I hadn't touched in a few months.
85 (kill_embedded): Add a new magic that only shows up in embedded
97 (kill_embedded): Add a new magic that only shows up in embedded
86 mode, to allow users to permanently deactivate an embedded instance.
98 mode, to allow users to permanently deactivate an embedded instance.
87
99
88 2007-08-01 Ville Vainio <vivainio@gmail.com>
100 2007-08-01 Ville Vainio <vivainio@gmail.com>
89
101
90 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
102 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
91 history gets out of sync on runlines (e.g. when running macros).
103 history gets out of sync on runlines (e.g. when running macros).
92
104
93 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
105 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
94
106
95 * IPython/Magic.py (magic_colors): fix win32-related error message
107 * IPython/Magic.py (magic_colors): fix win32-related error message
96 that could appear under *nix when readline was missing. Patch by
108 that could appear under *nix when readline was missing. Patch by
97 Scott Jackson, closes #175.
109 Scott Jackson, closes #175.
98
110
99 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
111 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
100
112
101 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
113 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
102 completer that it traits-aware, so that traits objects don't show
114 completer that it traits-aware, so that traits objects don't show
103 all of their internal attributes all the time.
115 all of their internal attributes all the time.
104
116
105 * IPython/genutils.py (dir2): moved this code from inside
117 * IPython/genutils.py (dir2): moved this code from inside
106 completer.py to expose it publicly, so I could use it in the
118 completer.py to expose it publicly, so I could use it in the
107 wildcards bugfix.
119 wildcards bugfix.
108
120
109 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
121 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
110 Stefan with Traits.
122 Stefan with Traits.
111
123
112 * IPython/completer.py (Completer.attr_matches): change internal
124 * IPython/completer.py (Completer.attr_matches): change internal
113 var name from 'object' to 'obj', since 'object' is now a builtin
125 var name from 'object' to 'obj', since 'object' is now a builtin
114 and this can lead to weird bugs if reusing this code elsewhere.
126 and this can lead to weird bugs if reusing this code elsewhere.
115
127
116 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
128 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
117
129
118 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
130 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
119 'foo?' and update the code to prevent printing of default
131 'foo?' and update the code to prevent printing of default
120 docstrings that started appearing after I added support for
132 docstrings that started appearing after I added support for
121 new-style classes. The approach I'm using isn't ideal (I just
133 new-style classes. The approach I'm using isn't ideal (I just
122 special-case those strings) but I'm not sure how to more robustly
134 special-case those strings) but I'm not sure how to more robustly
123 differentiate between truly user-written strings and Python's
135 differentiate between truly user-written strings and Python's
124 automatic ones.
136 automatic ones.
125
137
126 2007-07-09 Ville Vainio <vivainio@gmail.com>
138 2007-07-09 Ville Vainio <vivainio@gmail.com>
127
139
128 * completer.py: Applied Matthew Neeley's patch:
140 * completer.py: Applied Matthew Neeley's patch:
129 Dynamic attributes from trait_names and _getAttributeNames are added
141 Dynamic attributes from trait_names and _getAttributeNames are added
130 to the list of tab completions, but when this happens, the attribute
142 to the list of tab completions, but when this happens, the attribute
131 list is turned into a set, so the attributes are unordered when
143 list is turned into a set, so the attributes are unordered when
132 printed, which makes it hard to find the right completion. This patch
144 printed, which makes it hard to find the right completion. This patch
133 turns this set back into a list and sort it.
145 turns this set back into a list and sort it.
134
146
135 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
147 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
136
148
137 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
149 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
138 classes in various inspector functions.
150 classes in various inspector functions.
139
151
140 2007-06-28 Ville Vainio <vivainio@gmail.com>
152 2007-06-28 Ville Vainio <vivainio@gmail.com>
141
153
142 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
154 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
143 Implement "shadow" namespace, and callable aliases that reside there.
155 Implement "shadow" namespace, and callable aliases that reside there.
144 Use them by:
156 Use them by:
145
157
146 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
158 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
147
159
148 foo hello world
160 foo hello world
149 (gets translated to:)
161 (gets translated to:)
150 _sh.foo(r"""hello world""")
162 _sh.foo(r"""hello world""")
151
163
152 In practice, this kind of alias can take the role of a magic function
164 In practice, this kind of alias can take the role of a magic function
153
165
154 * New generic inspect_object, called on obj? and obj??
166 * New generic inspect_object, called on obj? and obj??
155
167
156 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
168 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
157
169
158 * IPython/ultraTB.py (findsource): fix a problem with
170 * IPython/ultraTB.py (findsource): fix a problem with
159 inspect.getfile that can cause crashes during traceback construction.
171 inspect.getfile that can cause crashes during traceback construction.
160
172
161 2007-06-14 Ville Vainio <vivainio@gmail.com>
173 2007-06-14 Ville Vainio <vivainio@gmail.com>
162
174
163 * iplib.py (handle_auto): Try to use ascii for printing "--->"
175 * iplib.py (handle_auto): Try to use ascii for printing "--->"
164 autocall rewrite indication, becausesometimes unicode fails to print
176 autocall rewrite indication, becausesometimes unicode fails to print
165 properly (and you get ' - - - '). Use plain uncoloured ---> for
177 properly (and you get ' - - - '). Use plain uncoloured ---> for
166 unicode.
178 unicode.
167
179
168 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
180 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
169
181
170 . pickleshare 'hash' commands (hget, hset, hcompress,
182 . pickleshare 'hash' commands (hget, hset, hcompress,
171 hdict) for efficient shadow history storage.
183 hdict) for efficient shadow history storage.
172
184
173 2007-06-13 Ville Vainio <vivainio@gmail.com>
185 2007-06-13 Ville Vainio <vivainio@gmail.com>
174
186
175 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
187 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
176 Added kw arg 'interactive', tell whether vars should be visible
188 Added kw arg 'interactive', tell whether vars should be visible
177 with %whos.
189 with %whos.
178
190
179 2007-06-11 Ville Vainio <vivainio@gmail.com>
191 2007-06-11 Ville Vainio <vivainio@gmail.com>
180
192
181 * pspersistence.py, Magic.py, iplib.py: directory history now saved
193 * pspersistence.py, Magic.py, iplib.py: directory history now saved
182 to db
194 to db
183
195
184 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
196 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
185 Also, it exits IPython immediately after evaluating the command (just like
197 Also, it exits IPython immediately after evaluating the command (just like
186 std python)
198 std python)
187
199
188 2007-06-05 Walter Doerwald <walter@livinglogic.de>
200 2007-06-05 Walter Doerwald <walter@livinglogic.de>
189
201
190 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
202 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
191 Python string and captures the output. (Idea and original patch by
203 Python string and captures the output. (Idea and original patch by
192 StοΏ½fan van der Walt)
204 StοΏ½fan van der Walt)
193
205
194 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
206 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
195
207
196 * IPython/ultraTB.py (VerboseTB.text): update printing of
208 * IPython/ultraTB.py (VerboseTB.text): update printing of
197 exception types for Python 2.5 (now all exceptions in the stdlib
209 exception types for Python 2.5 (now all exceptions in the stdlib
198 are new-style classes).
210 are new-style classes).
199
211
200 2007-05-31 Walter Doerwald <walter@livinglogic.de>
212 2007-05-31 Walter Doerwald <walter@livinglogic.de>
201
213
202 * IPython/Extensions/igrid.py: Add new commands refresh and
214 * IPython/Extensions/igrid.py: Add new commands refresh and
203 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
215 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
204 the iterator once (refresh) or after every x seconds (refresh_timer).
216 the iterator once (refresh) or after every x seconds (refresh_timer).
205 Add a working implementation of "searchexpression", where the text
217 Add a working implementation of "searchexpression", where the text
206 entered is not the text to search for, but an expression that must
218 entered is not the text to search for, but an expression that must
207 be true. Added display of shortcuts to the menu. Added commands "pickinput"
219 be true. Added display of shortcuts to the menu. Added commands "pickinput"
208 and "pickinputattr" that put the object or attribute under the cursor
220 and "pickinputattr" that put the object or attribute under the cursor
209 in the input line. Split the statusbar to be able to display the currently
221 in the input line. Split the statusbar to be able to display the currently
210 active refresh interval. (Patch by Nik Tautenhahn)
222 active refresh interval. (Patch by Nik Tautenhahn)
211
223
212 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
224 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
213
225
214 * fixing set_term_title to use ctypes as default
226 * fixing set_term_title to use ctypes as default
215
227
216 * fixing set_term_title fallback to work when curent dir
228 * fixing set_term_title fallback to work when curent dir
217 is on a windows network share
229 is on a windows network share
218
230
219 2007-05-28 Ville Vainio <vivainio@gmail.com>
231 2007-05-28 Ville Vainio <vivainio@gmail.com>
220
232
221 * %cpaste: strip + with > from left (diffs).
233 * %cpaste: strip + with > from left (diffs).
222
234
223 * iplib.py: Fix crash when readline not installed
235 * iplib.py: Fix crash when readline not installed
224
236
225 2007-05-26 Ville Vainio <vivainio@gmail.com>
237 2007-05-26 Ville Vainio <vivainio@gmail.com>
226
238
227 * generics.py: intruduce easy to extend result_display generic
239 * generics.py: intruduce easy to extend result_display generic
228 function (using simplegeneric.py).
240 function (using simplegeneric.py).
229
241
230 * Fixed the append functionality of %set.
242 * Fixed the append functionality of %set.
231
243
232 2007-05-25 Ville Vainio <vivainio@gmail.com>
244 2007-05-25 Ville Vainio <vivainio@gmail.com>
233
245
234 * New magic: %rep (fetch / run old commands from history)
246 * New magic: %rep (fetch / run old commands from history)
235
247
236 * New extension: mglob (%mglob magic), for powerful glob / find /filter
248 * New extension: mglob (%mglob magic), for powerful glob / find /filter
237 like functionality
249 like functionality
238
250
239 % maghistory.py: %hist -g PATTERM greps the history for pattern
251 % maghistory.py: %hist -g PATTERM greps the history for pattern
240
252
241 2007-05-24 Walter Doerwald <walter@livinglogic.de>
253 2007-05-24 Walter Doerwald <walter@livinglogic.de>
242
254
243 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
255 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
244 browse the IPython input history
256 browse the IPython input history
245
257
246 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
258 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
247 (mapped to "i") can be used to put the object under the curser in the input
259 (mapped to "i") can be used to put the object under the curser in the input
248 line. pickinputattr (mapped to "I") does the same for the attribute under
260 line. pickinputattr (mapped to "I") does the same for the attribute under
249 the cursor.
261 the cursor.
250
262
251 2007-05-24 Ville Vainio <vivainio@gmail.com>
263 2007-05-24 Ville Vainio <vivainio@gmail.com>
252
264
253 * Grand magic cleansing (changeset [2380]):
265 * Grand magic cleansing (changeset [2380]):
254
266
255 * Introduce ipy_legacy.py where the following magics were
267 * Introduce ipy_legacy.py where the following magics were
256 moved:
268 moved:
257
269
258 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
270 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
259
271
260 If you need them, either use default profile or "import ipy_legacy"
272 If you need them, either use default profile or "import ipy_legacy"
261 in your ipy_user_conf.py
273 in your ipy_user_conf.py
262
274
263 * Move sh and scipy profile to Extensions from UserConfig. this implies
275 * Move sh and scipy profile to Extensions from UserConfig. this implies
264 you should not edit them, but you don't need to run %upgrade when
276 you should not edit them, but you don't need to run %upgrade when
265 upgrading IPython anymore.
277 upgrading IPython anymore.
266
278
267 * %hist/%history now operates in "raw" mode by default. To get the old
279 * %hist/%history now operates in "raw" mode by default. To get the old
268 behaviour, run '%hist -n' (native mode).
280 behaviour, run '%hist -n' (native mode).
269
281
270 * split ipy_stock_completers.py to ipy_stock_completers.py and
282 * split ipy_stock_completers.py to ipy_stock_completers.py and
271 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
283 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
272 installed as default.
284 installed as default.
273
285
274 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
286 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
275 handling.
287 handling.
276
288
277 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
289 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
278 input if readline is available.
290 input if readline is available.
279
291
280 2007-05-23 Ville Vainio <vivainio@gmail.com>
292 2007-05-23 Ville Vainio <vivainio@gmail.com>
281
293
282 * macro.py: %store uses __getstate__ properly
294 * macro.py: %store uses __getstate__ properly
283
295
284 * exesetup.py: added new setup script for creating
296 * exesetup.py: added new setup script for creating
285 standalone IPython executables with py2exe (i.e.
297 standalone IPython executables with py2exe (i.e.
286 no python installation required).
298 no python installation required).
287
299
288 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
300 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
289 its place.
301 its place.
290
302
291 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
303 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
292
304
293 2007-05-21 Ville Vainio <vivainio@gmail.com>
305 2007-05-21 Ville Vainio <vivainio@gmail.com>
294
306
295 * platutil_win32.py (set_term_title): handle
307 * platutil_win32.py (set_term_title): handle
296 failure of 'title' system call properly.
308 failure of 'title' system call properly.
297
309
298 2007-05-17 Walter Doerwald <walter@livinglogic.de>
310 2007-05-17 Walter Doerwald <walter@livinglogic.de>
299
311
300 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
312 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
301 (Bug detected by Paul Mueller).
313 (Bug detected by Paul Mueller).
302
314
303 2007-05-16 Ville Vainio <vivainio@gmail.com>
315 2007-05-16 Ville Vainio <vivainio@gmail.com>
304
316
305 * ipy_profile_sci.py, ipython_win_post_install.py: Create
317 * ipy_profile_sci.py, ipython_win_post_install.py: Create
306 new "sci" profile, effectively a modern version of the old
318 new "sci" profile, effectively a modern version of the old
307 "scipy" profile (which is now slated for deprecation).
319 "scipy" profile (which is now slated for deprecation).
308
320
309 2007-05-15 Ville Vainio <vivainio@gmail.com>
321 2007-05-15 Ville Vainio <vivainio@gmail.com>
310
322
311 * pycolorize.py, pycolor.1: Paul Mueller's patches that
323 * pycolorize.py, pycolor.1: Paul Mueller's patches that
312 make pycolorize read input from stdin when run without arguments.
324 make pycolorize read input from stdin when run without arguments.
313
325
314 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
326 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
315
327
316 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
328 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
317 it in sh profile (instead of ipy_system_conf.py).
329 it in sh profile (instead of ipy_system_conf.py).
318
330
319 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
331 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
320 aliases are now lower case on windows (MyCommand.exe => mycommand).
332 aliases are now lower case on windows (MyCommand.exe => mycommand).
321
333
322 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
334 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
323 Macros are now callable objects that inherit from ipapi.IPyAutocall,
335 Macros are now callable objects that inherit from ipapi.IPyAutocall,
324 i.e. get autocalled regardless of system autocall setting.
336 i.e. get autocalled regardless of system autocall setting.
325
337
326 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
338 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
327
339
328 * IPython/rlineimpl.py: check for clear_history in readline and
340 * IPython/rlineimpl.py: check for clear_history in readline and
329 make it a dummy no-op if not available. This function isn't
341 make it a dummy no-op if not available. This function isn't
330 guaranteed to be in the API and appeared in Python 2.4, so we need
342 guaranteed to be in the API and appeared in Python 2.4, so we need
331 to check it ourselves. Also, clean up this file quite a bit.
343 to check it ourselves. Also, clean up this file quite a bit.
332
344
333 * ipython.1: update man page and full manual with information
345 * ipython.1: update man page and full manual with information
334 about threads (remove outdated warning). Closes #151.
346 about threads (remove outdated warning). Closes #151.
335
347
336 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
348 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
337
349
338 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
350 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
339 in trunk (note that this made it into the 0.8.1 release already,
351 in trunk (note that this made it into the 0.8.1 release already,
340 but the changelogs didn't get coordinated). Many thanks to Gael
352 but the changelogs didn't get coordinated). Many thanks to Gael
341 Varoquaux <gael.varoquaux-AT-normalesup.org>
353 Varoquaux <gael.varoquaux-AT-normalesup.org>
342
354
343 2007-05-09 *** Released version 0.8.1
355 2007-05-09 *** Released version 0.8.1
344
356
345 2007-05-10 Walter Doerwald <walter@livinglogic.de>
357 2007-05-10 Walter Doerwald <walter@livinglogic.de>
346
358
347 * IPython/Extensions/igrid.py: Incorporate html help into
359 * IPython/Extensions/igrid.py: Incorporate html help into
348 the module, so we don't have to search for the file.
360 the module, so we don't have to search for the file.
349
361
350 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
362 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
351
363
352 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
364 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
353
365
354 2007-04-30 Ville Vainio <vivainio@gmail.com>
366 2007-04-30 Ville Vainio <vivainio@gmail.com>
355
367
356 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
368 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
357 user has illegal (non-ascii) home directory name
369 user has illegal (non-ascii) home directory name
358
370
359 2007-04-27 Ville Vainio <vivainio@gmail.com>
371 2007-04-27 Ville Vainio <vivainio@gmail.com>
360
372
361 * platutils_win32.py: implement set_term_title for windows
373 * platutils_win32.py: implement set_term_title for windows
362
374
363 * Update version number
375 * Update version number
364
376
365 * ipy_profile_sh.py: more informative prompt (2 dir levels)
377 * ipy_profile_sh.py: more informative prompt (2 dir levels)
366
378
367 2007-04-26 Walter Doerwald <walter@livinglogic.de>
379 2007-04-26 Walter Doerwald <walter@livinglogic.de>
368
380
369 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
381 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
370 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
382 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
371 bug discovered by Ville).
383 bug discovered by Ville).
372
384
373 2007-04-26 Ville Vainio <vivainio@gmail.com>
385 2007-04-26 Ville Vainio <vivainio@gmail.com>
374
386
375 * Extensions/ipy_completers.py: Olivier's module completer now
387 * Extensions/ipy_completers.py: Olivier's module completer now
376 saves the list of root modules if it takes > 4 secs on the first run.
388 saves the list of root modules if it takes > 4 secs on the first run.
377
389
378 * Magic.py (%rehashx): %rehashx now clears the completer cache
390 * Magic.py (%rehashx): %rehashx now clears the completer cache
379
391
380
392
381 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
393 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
382
394
383 * ipython.el: fix incorrect color scheme, reported by Stefan.
395 * ipython.el: fix incorrect color scheme, reported by Stefan.
384 Closes #149.
396 Closes #149.
385
397
386 * IPython/PyColorize.py (Parser.format2): fix state-handling
398 * IPython/PyColorize.py (Parser.format2): fix state-handling
387 logic. I still don't like how that code handles state, but at
399 logic. I still don't like how that code handles state, but at
388 least now it should be correct, if inelegant. Closes #146.
400 least now it should be correct, if inelegant. Closes #146.
389
401
390 2007-04-25 Ville Vainio <vivainio@gmail.com>
402 2007-04-25 Ville Vainio <vivainio@gmail.com>
391
403
392 * Extensions/ipy_which.py: added extension for %which magic, works
404 * Extensions/ipy_which.py: added extension for %which magic, works
393 a lot like unix 'which' but also finds and expands aliases, and
405 a lot like unix 'which' but also finds and expands aliases, and
394 allows wildcards.
406 allows wildcards.
395
407
396 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
408 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
397 as opposed to returning nothing.
409 as opposed to returning nothing.
398
410
399 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
411 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
400 ipy_stock_completers on default profile, do import on sh profile.
412 ipy_stock_completers on default profile, do import on sh profile.
401
413
402 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
414 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
403
415
404 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
416 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
405 like ipython.py foo.py which raised a IndexError.
417 like ipython.py foo.py which raised a IndexError.
406
418
407 2007-04-21 Ville Vainio <vivainio@gmail.com>
419 2007-04-21 Ville Vainio <vivainio@gmail.com>
408
420
409 * Extensions/ipy_extutil.py: added extension to manage other ipython
421 * Extensions/ipy_extutil.py: added extension to manage other ipython
410 extensions. Now only supports 'ls' == list extensions.
422 extensions. Now only supports 'ls' == list extensions.
411
423
412 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
424 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
413
425
414 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
426 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
415 would prevent use of the exception system outside of a running
427 would prevent use of the exception system outside of a running
416 IPython instance.
428 IPython instance.
417
429
418 2007-04-20 Ville Vainio <vivainio@gmail.com>
430 2007-04-20 Ville Vainio <vivainio@gmail.com>
419
431
420 * Extensions/ipy_render.py: added extension for easy
432 * Extensions/ipy_render.py: added extension for easy
421 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
433 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
422 'Iptl' template notation,
434 'Iptl' template notation,
423
435
424 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
436 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
425 safer & faster 'import' completer.
437 safer & faster 'import' completer.
426
438
427 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
439 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
428 and _ip.defalias(name, command).
440 and _ip.defalias(name, command).
429
441
430 * Extensions/ipy_exportdb.py: New extension for exporting all the
442 * Extensions/ipy_exportdb.py: New extension for exporting all the
431 %store'd data in a portable format (normal ipapi calls like
443 %store'd data in a portable format (normal ipapi calls like
432 defmacro() etc.)
444 defmacro() etc.)
433
445
434 2007-04-19 Ville Vainio <vivainio@gmail.com>
446 2007-04-19 Ville Vainio <vivainio@gmail.com>
435
447
436 * upgrade_dir.py: skip junk files like *.pyc
448 * upgrade_dir.py: skip junk files like *.pyc
437
449
438 * Release.py: version number to 0.8.1
450 * Release.py: version number to 0.8.1
439
451
440 2007-04-18 Ville Vainio <vivainio@gmail.com>
452 2007-04-18 Ville Vainio <vivainio@gmail.com>
441
453
442 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
454 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
443 and later on win32.
455 and later on win32.
444
456
445 2007-04-16 Ville Vainio <vivainio@gmail.com>
457 2007-04-16 Ville Vainio <vivainio@gmail.com>
446
458
447 * iplib.py (showtraceback): Do not crash when running w/o readline.
459 * iplib.py (showtraceback): Do not crash when running w/o readline.
448
460
449 2007-04-12 Walter Doerwald <walter@livinglogic.de>
461 2007-04-12 Walter Doerwald <walter@livinglogic.de>
450
462
451 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
463 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
452 sorted (case sensitive with files and dirs mixed).
464 sorted (case sensitive with files and dirs mixed).
453
465
454 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
466 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
455
467
456 * IPython/Release.py (version): Open trunk for 0.8.1 development.
468 * IPython/Release.py (version): Open trunk for 0.8.1 development.
457
469
458 2007-04-10 *** Released version 0.8.0
470 2007-04-10 *** Released version 0.8.0
459
471
460 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
472 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
461
473
462 * Tag 0.8.0 for release.
474 * Tag 0.8.0 for release.
463
475
464 * IPython/iplib.py (reloadhist): add API function to cleanly
476 * IPython/iplib.py (reloadhist): add API function to cleanly
465 reload the readline history, which was growing inappropriately on
477 reload the readline history, which was growing inappropriately on
466 every %run call.
478 every %run call.
467
479
468 * win32_manual_post_install.py (run): apply last part of Nicolas
480 * win32_manual_post_install.py (run): apply last part of Nicolas
469 Pernetty's patch (I'd accidentally applied it in a different
481 Pernetty's patch (I'd accidentally applied it in a different
470 directory and this particular file didn't get patched).
482 directory and this particular file didn't get patched).
471
483
472 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
484 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
473
485
474 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
486 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
475 find the main thread id and use the proper API call. Thanks to
487 find the main thread id and use the proper API call. Thanks to
476 Stefan for the fix.
488 Stefan for the fix.
477
489
478 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
490 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
479 unit tests to reflect fixed ticket #52, and add more tests sent by
491 unit tests to reflect fixed ticket #52, and add more tests sent by
480 him.
492 him.
481
493
482 * IPython/iplib.py (raw_input): restore the readline completer
494 * IPython/iplib.py (raw_input): restore the readline completer
483 state on every input, in case third-party code messed it up.
495 state on every input, in case third-party code messed it up.
484 (_prefilter): revert recent addition of early-escape checks which
496 (_prefilter): revert recent addition of early-escape checks which
485 prevent many valid alias calls from working.
497 prevent many valid alias calls from working.
486
498
487 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
499 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
488 flag for sigint handler so we don't run a full signal() call on
500 flag for sigint handler so we don't run a full signal() call on
489 each runcode access.
501 each runcode access.
490
502
491 * IPython/Magic.py (magic_whos): small improvement to diagnostic
503 * IPython/Magic.py (magic_whos): small improvement to diagnostic
492 message.
504 message.
493
505
494 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
506 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
495
507
496 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
508 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
497 asynchronous exceptions working, i.e., Ctrl-C can actually
509 asynchronous exceptions working, i.e., Ctrl-C can actually
498 interrupt long-running code in the multithreaded shells.
510 interrupt long-running code in the multithreaded shells.
499
511
500 This is using Tomer Filiba's great ctypes-based trick:
512 This is using Tomer Filiba's great ctypes-based trick:
501 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
513 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
502 this in the past, but hadn't been able to make it work before. So
514 this in the past, but hadn't been able to make it work before. So
503 far it looks like it's actually running, but this needs more
515 far it looks like it's actually running, but this needs more
504 testing. If it really works, I'll be *very* happy, and we'll owe
516 testing. If it really works, I'll be *very* happy, and we'll owe
505 a huge thank you to Tomer. My current implementation is ugly,
517 a huge thank you to Tomer. My current implementation is ugly,
506 hackish and uses nasty globals, but I don't want to try and clean
518 hackish and uses nasty globals, but I don't want to try and clean
507 anything up until we know if it actually works.
519 anything up until we know if it actually works.
508
520
509 NOTE: this feature needs ctypes to work. ctypes is included in
521 NOTE: this feature needs ctypes to work. ctypes is included in
510 Python2.5, but 2.4 users will need to manually install it. This
522 Python2.5, but 2.4 users will need to manually install it. This
511 feature makes multi-threaded shells so much more usable that it's
523 feature makes multi-threaded shells so much more usable that it's
512 a minor price to pay (ctypes is very easy to install, already a
524 a minor price to pay (ctypes is very easy to install, already a
513 requirement for win32 and available in major linux distros).
525 requirement for win32 and available in major linux distros).
514
526
515 2007-04-04 Ville Vainio <vivainio@gmail.com>
527 2007-04-04 Ville Vainio <vivainio@gmail.com>
516
528
517 * Extensions/ipy_completers.py, ipy_stock_completers.py:
529 * Extensions/ipy_completers.py, ipy_stock_completers.py:
518 Moved implementations of 'bundled' completers to ipy_completers.py,
530 Moved implementations of 'bundled' completers to ipy_completers.py,
519 they are only enabled in ipy_stock_completers.py.
531 they are only enabled in ipy_stock_completers.py.
520
532
521 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
533 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
522
534
523 * IPython/PyColorize.py (Parser.format2): Fix identation of
535 * IPython/PyColorize.py (Parser.format2): Fix identation of
524 colorzied output and return early if color scheme is NoColor, to
536 colorzied output and return early if color scheme is NoColor, to
525 avoid unnecessary and expensive tokenization. Closes #131.
537 avoid unnecessary and expensive tokenization. Closes #131.
526
538
527 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
539 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
528
540
529 * IPython/Debugger.py: disable the use of pydb version 1.17. It
541 * IPython/Debugger.py: disable the use of pydb version 1.17. It
530 has a critical bug (a missing import that makes post-mortem not
542 has a critical bug (a missing import that makes post-mortem not
531 work at all). Unfortunately as of this time, this is the version
543 work at all). Unfortunately as of this time, this is the version
532 shipped with Ubuntu Edgy, so quite a few people have this one. I
544 shipped with Ubuntu Edgy, so quite a few people have this one. I
533 hope Edgy will update to a more recent package.
545 hope Edgy will update to a more recent package.
534
546
535 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
547 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
536
548
537 * IPython/iplib.py (_prefilter): close #52, second part of a patch
549 * IPython/iplib.py (_prefilter): close #52, second part of a patch
538 set by Stefan (only the first part had been applied before).
550 set by Stefan (only the first part had been applied before).
539
551
540 * IPython/Extensions/ipy_stock_completers.py (module_completer):
552 * IPython/Extensions/ipy_stock_completers.py (module_completer):
541 remove usage of the dangerous pkgutil.walk_packages(). See
553 remove usage of the dangerous pkgutil.walk_packages(). See
542 details in comments left in the code.
554 details in comments left in the code.
543
555
544 * IPython/Magic.py (magic_whos): add support for numpy arrays
556 * IPython/Magic.py (magic_whos): add support for numpy arrays
545 similar to what we had for Numeric.
557 similar to what we had for Numeric.
546
558
547 * IPython/completer.py (IPCompleter.complete): extend the
559 * IPython/completer.py (IPCompleter.complete): extend the
548 complete() call API to support completions by other mechanisms
560 complete() call API to support completions by other mechanisms
549 than readline. Closes #109.
561 than readline. Closes #109.
550
562
551 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
563 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
552 protect against a bug in Python's execfile(). Closes #123.
564 protect against a bug in Python's execfile(). Closes #123.
553
565
554 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
566 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
555
567
556 * IPython/iplib.py (split_user_input): ensure that when splitting
568 * IPython/iplib.py (split_user_input): ensure that when splitting
557 user input, the part that can be treated as a python name is pure
569 user input, the part that can be treated as a python name is pure
558 ascii (Python identifiers MUST be pure ascii). Part of the
570 ascii (Python identifiers MUST be pure ascii). Part of the
559 ongoing Unicode support work.
571 ongoing Unicode support work.
560
572
561 * IPython/Prompts.py (prompt_specials_color): Add \N for the
573 * IPython/Prompts.py (prompt_specials_color): Add \N for the
562 actual prompt number, without any coloring. This allows users to
574 actual prompt number, without any coloring. This allows users to
563 produce numbered prompts with their own colors. Added after a
575 produce numbered prompts with their own colors. Added after a
564 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
576 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
565
577
566 2007-03-31 Walter Doerwald <walter@livinglogic.de>
578 2007-03-31 Walter Doerwald <walter@livinglogic.de>
567
579
568 * IPython/Extensions/igrid.py: Map the return key
580 * IPython/Extensions/igrid.py: Map the return key
569 to enter() and shift-return to enterattr().
581 to enter() and shift-return to enterattr().
570
582
571 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
583 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
572
584
573 * IPython/Magic.py (magic_psearch): add unicode support by
585 * IPython/Magic.py (magic_psearch): add unicode support by
574 encoding to ascii the input, since this routine also only deals
586 encoding to ascii the input, since this routine also only deals
575 with valid Python names. Fixes a bug reported by Stefan.
587 with valid Python names. Fixes a bug reported by Stefan.
576
588
577 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
589 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
578
590
579 * IPython/Magic.py (_inspect): convert unicode input into ascii
591 * IPython/Magic.py (_inspect): convert unicode input into ascii
580 before trying to evaluate it as a Python identifier. This fixes a
592 before trying to evaluate it as a Python identifier. This fixes a
581 problem that the new unicode support had introduced when analyzing
593 problem that the new unicode support had introduced when analyzing
582 long definition lines for functions.
594 long definition lines for functions.
583
595
584 2007-03-24 Walter Doerwald <walter@livinglogic.de>
596 2007-03-24 Walter Doerwald <walter@livinglogic.de>
585
597
586 * IPython/Extensions/igrid.py: Fix picking. Using
598 * IPython/Extensions/igrid.py: Fix picking. Using
587 igrid with wxPython 2.6 and -wthread should work now.
599 igrid with wxPython 2.6 and -wthread should work now.
588 igrid.display() simply tries to create a frame without
600 igrid.display() simply tries to create a frame without
589 an application. Only if this fails an application is created.
601 an application. Only if this fails an application is created.
590
602
591 2007-03-23 Walter Doerwald <walter@livinglogic.de>
603 2007-03-23 Walter Doerwald <walter@livinglogic.de>
592
604
593 * IPython/Extensions/path.py: Updated to version 2.2.
605 * IPython/Extensions/path.py: Updated to version 2.2.
594
606
595 2007-03-23 Ville Vainio <vivainio@gmail.com>
607 2007-03-23 Ville Vainio <vivainio@gmail.com>
596
608
597 * iplib.py: recursive alias expansion now works better, so that
609 * iplib.py: recursive alias expansion now works better, so that
598 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
610 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
599 doesn't trip up the process, if 'd' has been aliased to 'ls'.
611 doesn't trip up the process, if 'd' has been aliased to 'ls'.
600
612
601 * Extensions/ipy_gnuglobal.py added, provides %global magic
613 * Extensions/ipy_gnuglobal.py added, provides %global magic
602 for users of http://www.gnu.org/software/global
614 for users of http://www.gnu.org/software/global
603
615
604 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
616 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
605 Closes #52. Patch by Stefan van der Walt.
617 Closes #52. Patch by Stefan van der Walt.
606
618
607 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
619 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
608
620
609 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
621 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
610 respect the __file__ attribute when using %run. Thanks to a bug
622 respect the __file__ attribute when using %run. Thanks to a bug
611 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
623 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
612
624
613 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
625 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
614
626
615 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
627 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
616 input. Patch sent by Stefan.
628 input. Patch sent by Stefan.
617
629
618 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
630 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
619 * IPython/Extensions/ipy_stock_completer.py
631 * IPython/Extensions/ipy_stock_completer.py
620 shlex_split, fix bug in shlex_split. len function
632 shlex_split, fix bug in shlex_split. len function
621 call was missing an if statement. Caused shlex_split to
633 call was missing an if statement. Caused shlex_split to
622 sometimes return "" as last element.
634 sometimes return "" as last element.
623
635
624 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
636 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
625
637
626 * IPython/completer.py
638 * IPython/completer.py
627 (IPCompleter.file_matches.single_dir_expand): fix a problem
639 (IPCompleter.file_matches.single_dir_expand): fix a problem
628 reported by Stefan, where directories containign a single subdir
640 reported by Stefan, where directories containign a single subdir
629 would be completed too early.
641 would be completed too early.
630
642
631 * IPython/Shell.py (_load_pylab): Make the execution of 'from
643 * IPython/Shell.py (_load_pylab): Make the execution of 'from
632 pylab import *' when -pylab is given be optional. A new flag,
644 pylab import *' when -pylab is given be optional. A new flag,
633 pylab_import_all controls this behavior, the default is True for
645 pylab_import_all controls this behavior, the default is True for
634 backwards compatibility.
646 backwards compatibility.
635
647
636 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
648 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
637 modified) R. Bernstein's patch for fully syntax highlighted
649 modified) R. Bernstein's patch for fully syntax highlighted
638 tracebacks. The functionality is also available under ultraTB for
650 tracebacks. The functionality is also available under ultraTB for
639 non-ipython users (someone using ultraTB but outside an ipython
651 non-ipython users (someone using ultraTB but outside an ipython
640 session). They can select the color scheme by setting the
652 session). They can select the color scheme by setting the
641 module-level global DEFAULT_SCHEME. The highlight functionality
653 module-level global DEFAULT_SCHEME. The highlight functionality
642 also works when debugging.
654 also works when debugging.
643
655
644 * IPython/genutils.py (IOStream.close): small patch by
656 * IPython/genutils.py (IOStream.close): small patch by
645 R. Bernstein for improved pydb support.
657 R. Bernstein for improved pydb support.
646
658
647 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
659 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
648 DaveS <davls@telus.net> to improve support of debugging under
660 DaveS <davls@telus.net> to improve support of debugging under
649 NTEmacs, including improved pydb behavior.
661 NTEmacs, including improved pydb behavior.
650
662
651 * IPython/Magic.py (magic_prun): Fix saving of profile info for
663 * IPython/Magic.py (magic_prun): Fix saving of profile info for
652 Python 2.5, where the stats object API changed a little. Thanks
664 Python 2.5, where the stats object API changed a little. Thanks
653 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
665 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
654
666
655 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
667 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
656 Pernetty's patch to improve support for (X)Emacs under Win32.
668 Pernetty's patch to improve support for (X)Emacs under Win32.
657
669
658 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
670 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
659
671
660 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
672 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
661 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
673 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
662 a report by Nik Tautenhahn.
674 a report by Nik Tautenhahn.
663
675
664 2007-03-16 Walter Doerwald <walter@livinglogic.de>
676 2007-03-16 Walter Doerwald <walter@livinglogic.de>
665
677
666 * setup.py: Add the igrid help files to the list of data files
678 * setup.py: Add the igrid help files to the list of data files
667 to be installed alongside igrid.
679 to be installed alongside igrid.
668 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
680 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
669 Show the input object of the igrid browser as the window tile.
681 Show the input object of the igrid browser as the window tile.
670 Show the object the cursor is on in the statusbar.
682 Show the object the cursor is on in the statusbar.
671
683
672 2007-03-15 Ville Vainio <vivainio@gmail.com>
684 2007-03-15 Ville Vainio <vivainio@gmail.com>
673
685
674 * Extensions/ipy_stock_completers.py: Fixed exception
686 * Extensions/ipy_stock_completers.py: Fixed exception
675 on mismatching quotes in %run completer. Patch by
687 on mismatching quotes in %run completer. Patch by
676 JοΏ½rgen Stenarson. Closes #127.
688 JοΏ½rgen Stenarson. Closes #127.
677
689
678 2007-03-14 Ville Vainio <vivainio@gmail.com>
690 2007-03-14 Ville Vainio <vivainio@gmail.com>
679
691
680 * Extensions/ext_rehashdir.py: Do not do auto_alias
692 * Extensions/ext_rehashdir.py: Do not do auto_alias
681 in %rehashdir, it clobbers %store'd aliases.
693 in %rehashdir, it clobbers %store'd aliases.
682
694
683 * UserConfig/ipy_profile_sh.py: envpersist.py extension
695 * UserConfig/ipy_profile_sh.py: envpersist.py extension
684 (beefed up %env) imported for sh profile.
696 (beefed up %env) imported for sh profile.
685
697
686 2007-03-10 Walter Doerwald <walter@livinglogic.de>
698 2007-03-10 Walter Doerwald <walter@livinglogic.de>
687
699
688 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
700 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
689 as the default browser.
701 as the default browser.
690 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
702 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
691 As igrid displays all attributes it ever encounters, fetch() (which has
703 As igrid displays all attributes it ever encounters, fetch() (which has
692 been renamed to _fetch()) doesn't have to recalculate the display attributes
704 been renamed to _fetch()) doesn't have to recalculate the display attributes
693 every time a new item is fetched. This should speed up scrolling.
705 every time a new item is fetched. This should speed up scrolling.
694
706
695 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
707 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
696
708
697 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
709 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
698 Schmolck's recently reported tab-completion bug (my previous one
710 Schmolck's recently reported tab-completion bug (my previous one
699 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
711 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
700
712
701 2007-03-09 Walter Doerwald <walter@livinglogic.de>
713 2007-03-09 Walter Doerwald <walter@livinglogic.de>
702
714
703 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
715 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
704 Close help window if exiting igrid.
716 Close help window if exiting igrid.
705
717
706 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
718 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
707
719
708 * IPython/Extensions/ipy_defaults.py: Check if readline is available
720 * IPython/Extensions/ipy_defaults.py: Check if readline is available
709 before calling functions from readline.
721 before calling functions from readline.
710
722
711 2007-03-02 Walter Doerwald <walter@livinglogic.de>
723 2007-03-02 Walter Doerwald <walter@livinglogic.de>
712
724
713 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
725 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
714 igrid is a wxPython-based display object for ipipe. If your system has
726 igrid is a wxPython-based display object for ipipe. If your system has
715 wx installed igrid will be the default display. Without wx ipipe falls
727 wx installed igrid will be the default display. Without wx ipipe falls
716 back to ibrowse (which needs curses). If no curses is installed ipipe
728 back to ibrowse (which needs curses). If no curses is installed ipipe
717 falls back to idump.
729 falls back to idump.
718
730
719 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
731 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
720
732
721 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
733 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
722 my changes from yesterday, they introduced bugs. Will reactivate
734 my changes from yesterday, they introduced bugs. Will reactivate
723 once I get a correct solution, which will be much easier thanks to
735 once I get a correct solution, which will be much easier thanks to
724 Dan Milstein's new prefilter test suite.
736 Dan Milstein's new prefilter test suite.
725
737
726 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
738 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
727
739
728 * IPython/iplib.py (split_user_input): fix input splitting so we
740 * IPython/iplib.py (split_user_input): fix input splitting so we
729 don't attempt attribute accesses on things that can't possibly be
741 don't attempt attribute accesses on things that can't possibly be
730 valid Python attributes. After a bug report by Alex Schmolck.
742 valid Python attributes. After a bug report by Alex Schmolck.
731 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
743 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
732 %magic with explicit % prefix.
744 %magic with explicit % prefix.
733
745
734 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
746 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
735
747
736 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
748 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
737 avoid a DeprecationWarning from GTK.
749 avoid a DeprecationWarning from GTK.
738
750
739 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
751 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
740
752
741 * IPython/genutils.py (clock): I modified clock() to return total
753 * IPython/genutils.py (clock): I modified clock() to return total
742 time, user+system. This is a more commonly needed metric. I also
754 time, user+system. This is a more commonly needed metric. I also
743 introduced the new clocku/clocks to get only user/system time if
755 introduced the new clocku/clocks to get only user/system time if
744 one wants those instead.
756 one wants those instead.
745
757
746 ***WARNING: API CHANGE*** clock() used to return only user time,
758 ***WARNING: API CHANGE*** clock() used to return only user time,
747 so if you want exactly the same results as before, use clocku
759 so if you want exactly the same results as before, use clocku
748 instead.
760 instead.
749
761
750 2007-02-22 Ville Vainio <vivainio@gmail.com>
762 2007-02-22 Ville Vainio <vivainio@gmail.com>
751
763
752 * IPython/Extensions/ipy_p4.py: Extension for improved
764 * IPython/Extensions/ipy_p4.py: Extension for improved
753 p4 (perforce version control system) experience.
765 p4 (perforce version control system) experience.
754 Adds %p4 magic with p4 command completion and
766 Adds %p4 magic with p4 command completion and
755 automatic -G argument (marshall output as python dict)
767 automatic -G argument (marshall output as python dict)
756
768
757 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
769 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
758
770
759 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
771 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
760 stop marks.
772 stop marks.
761 (ClearingMixin): a simple mixin to easily make a Demo class clear
773 (ClearingMixin): a simple mixin to easily make a Demo class clear
762 the screen in between blocks and have empty marquees. The
774 the screen in between blocks and have empty marquees. The
763 ClearDemo and ClearIPDemo classes that use it are included.
775 ClearDemo and ClearIPDemo classes that use it are included.
764
776
765 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
777 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
766
778
767 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
779 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
768 protect against exceptions at Python shutdown time. Patch
780 protect against exceptions at Python shutdown time. Patch
769 sumbmitted to upstream.
781 sumbmitted to upstream.
770
782
771 2007-02-14 Walter Doerwald <walter@livinglogic.de>
783 2007-02-14 Walter Doerwald <walter@livinglogic.de>
772
784
773 * IPython/Extensions/ibrowse.py: If entering the first object level
785 * IPython/Extensions/ibrowse.py: If entering the first object level
774 (i.e. the object for which the browser has been started) fails,
786 (i.e. the object for which the browser has been started) fails,
775 now the error is raised directly (aborting the browser) instead of
787 now the error is raised directly (aborting the browser) instead of
776 running into an empty levels list later.
788 running into an empty levels list later.
777
789
778 2007-02-03 Walter Doerwald <walter@livinglogic.de>
790 2007-02-03 Walter Doerwald <walter@livinglogic.de>
779
791
780 * IPython/Extensions/ipipe.py: Add an xrepr implementation
792 * IPython/Extensions/ipipe.py: Add an xrepr implementation
781 for the noitem object.
793 for the noitem object.
782
794
783 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
795 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
784
796
785 * IPython/completer.py (Completer.attr_matches): Fix small
797 * IPython/completer.py (Completer.attr_matches): Fix small
786 tab-completion bug with Enthought Traits objects with units.
798 tab-completion bug with Enthought Traits objects with units.
787 Thanks to a bug report by Tom Denniston
799 Thanks to a bug report by Tom Denniston
788 <tom.denniston-AT-alum.dartmouth.org>.
800 <tom.denniston-AT-alum.dartmouth.org>.
789
801
790 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
802 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
791
803
792 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
804 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
793 bug where only .ipy or .py would be completed. Once the first
805 bug where only .ipy or .py would be completed. Once the first
794 argument to %run has been given, all completions are valid because
806 argument to %run has been given, all completions are valid because
795 they are the arguments to the script, which may well be non-python
807 they are the arguments to the script, which may well be non-python
796 filenames.
808 filenames.
797
809
798 * IPython/irunner.py (InteractiveRunner.run_source): major updates
810 * IPython/irunner.py (InteractiveRunner.run_source): major updates
799 to irunner to allow it to correctly support real doctesting of
811 to irunner to allow it to correctly support real doctesting of
800 out-of-process ipython code.
812 out-of-process ipython code.
801
813
802 * IPython/Magic.py (magic_cd): Make the setting of the terminal
814 * IPython/Magic.py (magic_cd): Make the setting of the terminal
803 title an option (-noterm_title) because it completely breaks
815 title an option (-noterm_title) because it completely breaks
804 doctesting.
816 doctesting.
805
817
806 * IPython/demo.py: fix IPythonDemo class that was not actually working.
818 * IPython/demo.py: fix IPythonDemo class that was not actually working.
807
819
808 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
820 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
809
821
810 * IPython/irunner.py (main): fix small bug where extensions were
822 * IPython/irunner.py (main): fix small bug where extensions were
811 not being correctly recognized.
823 not being correctly recognized.
812
824
813 2007-01-23 Walter Doerwald <walter@livinglogic.de>
825 2007-01-23 Walter Doerwald <walter@livinglogic.de>
814
826
815 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
827 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
816 a string containing a single line yields the string itself as the
828 a string containing a single line yields the string itself as the
817 only item.
829 only item.
818
830
819 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
831 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
820 object if it's the same as the one on the last level (This avoids
832 object if it's the same as the one on the last level (This avoids
821 infinite recursion for one line strings).
833 infinite recursion for one line strings).
822
834
823 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
835 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
824
836
825 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
837 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
826 all output streams before printing tracebacks. This ensures that
838 all output streams before printing tracebacks. This ensures that
827 user output doesn't end up interleaved with traceback output.
839 user output doesn't end up interleaved with traceback output.
828
840
829 2007-01-10 Ville Vainio <vivainio@gmail.com>
841 2007-01-10 Ville Vainio <vivainio@gmail.com>
830
842
831 * Extensions/envpersist.py: Turbocharged %env that remembers
843 * Extensions/envpersist.py: Turbocharged %env that remembers
832 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
844 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
833 "%env VISUAL=jed".
845 "%env VISUAL=jed".
834
846
835 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
847 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
836
848
837 * IPython/iplib.py (showtraceback): ensure that we correctly call
849 * IPython/iplib.py (showtraceback): ensure that we correctly call
838 custom handlers in all cases (some with pdb were slipping through,
850 custom handlers in all cases (some with pdb were slipping through,
839 but I'm not exactly sure why).
851 but I'm not exactly sure why).
840
852
841 * IPython/Debugger.py (Tracer.__init__): added new class to
853 * IPython/Debugger.py (Tracer.__init__): added new class to
842 support set_trace-like usage of IPython's enhanced debugger.
854 support set_trace-like usage of IPython's enhanced debugger.
843
855
844 2006-12-24 Ville Vainio <vivainio@gmail.com>
856 2006-12-24 Ville Vainio <vivainio@gmail.com>
845
857
846 * ipmaker.py: more informative message when ipy_user_conf
858 * ipmaker.py: more informative message when ipy_user_conf
847 import fails (suggest running %upgrade).
859 import fails (suggest running %upgrade).
848
860
849 * tools/run_ipy_in_profiler.py: Utility to see where
861 * tools/run_ipy_in_profiler.py: Utility to see where
850 the time during IPython startup is spent.
862 the time during IPython startup is spent.
851
863
852 2006-12-20 Ville Vainio <vivainio@gmail.com>
864 2006-12-20 Ville Vainio <vivainio@gmail.com>
853
865
854 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
866 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
855
867
856 * ipapi.py: Add new ipapi method, expand_alias.
868 * ipapi.py: Add new ipapi method, expand_alias.
857
869
858 * Release.py: Bump up version to 0.7.4.svn
870 * Release.py: Bump up version to 0.7.4.svn
859
871
860 2006-12-17 Ville Vainio <vivainio@gmail.com>
872 2006-12-17 Ville Vainio <vivainio@gmail.com>
861
873
862 * Extensions/jobctrl.py: Fixed &cmd arg arg...
874 * Extensions/jobctrl.py: Fixed &cmd arg arg...
863 to work properly on posix too
875 to work properly on posix too
864
876
865 * Release.py: Update revnum (version is still just 0.7.3).
877 * Release.py: Update revnum (version is still just 0.7.3).
866
878
867 2006-12-15 Ville Vainio <vivainio@gmail.com>
879 2006-12-15 Ville Vainio <vivainio@gmail.com>
868
880
869 * scripts/ipython_win_post_install: create ipython.py in
881 * scripts/ipython_win_post_install: create ipython.py in
870 prefix + "/scripts".
882 prefix + "/scripts".
871
883
872 * Release.py: Update version to 0.7.3.
884 * Release.py: Update version to 0.7.3.
873
885
874 2006-12-14 Ville Vainio <vivainio@gmail.com>
886 2006-12-14 Ville Vainio <vivainio@gmail.com>
875
887
876 * scripts/ipython_win_post_install: Overwrite old shortcuts
888 * scripts/ipython_win_post_install: Overwrite old shortcuts
877 if they already exist
889 if they already exist
878
890
879 * Release.py: release 0.7.3rc2
891 * Release.py: release 0.7.3rc2
880
892
881 2006-12-13 Ville Vainio <vivainio@gmail.com>
893 2006-12-13 Ville Vainio <vivainio@gmail.com>
882
894
883 * Branch and update Release.py for 0.7.3rc1
895 * Branch and update Release.py for 0.7.3rc1
884
896
885 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
897 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
886
898
887 * IPython/Shell.py (IPShellWX): update for current WX naming
899 * IPython/Shell.py (IPShellWX): update for current WX naming
888 conventions, to avoid a deprecation warning with current WX
900 conventions, to avoid a deprecation warning with current WX
889 versions. Thanks to a report by Danny Shevitz.
901 versions. Thanks to a report by Danny Shevitz.
890
902
891 2006-12-12 Ville Vainio <vivainio@gmail.com>
903 2006-12-12 Ville Vainio <vivainio@gmail.com>
892
904
893 * ipmaker.py: apply david cournapeau's patch to make
905 * ipmaker.py: apply david cournapeau's patch to make
894 import_some work properly even when ipythonrc does
906 import_some work properly even when ipythonrc does
895 import_some on empty list (it was an old bug!).
907 import_some on empty list (it was an old bug!).
896
908
897 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
909 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
898 Add deprecation note to ipythonrc and a url to wiki
910 Add deprecation note to ipythonrc and a url to wiki
899 in ipy_user_conf.py
911 in ipy_user_conf.py
900
912
901
913
902 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
914 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
903 as if it was typed on IPython command prompt, i.e.
915 as if it was typed on IPython command prompt, i.e.
904 as IPython script.
916 as IPython script.
905
917
906 * example-magic.py, magic_grepl.py: remove outdated examples
918 * example-magic.py, magic_grepl.py: remove outdated examples
907
919
908 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
920 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
909
921
910 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
922 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
911 is called before any exception has occurred.
923 is called before any exception has occurred.
912
924
913 2006-12-08 Ville Vainio <vivainio@gmail.com>
925 2006-12-08 Ville Vainio <vivainio@gmail.com>
914
926
915 * Extensions/ipy_stock_completers.py: fix cd completer
927 * Extensions/ipy_stock_completers.py: fix cd completer
916 to translate /'s to \'s again.
928 to translate /'s to \'s again.
917
929
918 * completer.py: prevent traceback on file completions w/
930 * completer.py: prevent traceback on file completions w/
919 backslash.
931 backslash.
920
932
921 * Release.py: Update release number to 0.7.3b3 for release
933 * Release.py: Update release number to 0.7.3b3 for release
922
934
923 2006-12-07 Ville Vainio <vivainio@gmail.com>
935 2006-12-07 Ville Vainio <vivainio@gmail.com>
924
936
925 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
937 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
926 while executing external code. Provides more shell-like behaviour
938 while executing external code. Provides more shell-like behaviour
927 and overall better response to ctrl + C / ctrl + break.
939 and overall better response to ctrl + C / ctrl + break.
928
940
929 * tools/make_tarball.py: new script to create tarball straight from svn
941 * tools/make_tarball.py: new script to create tarball straight from svn
930 (setup.py sdist doesn't work on win32).
942 (setup.py sdist doesn't work on win32).
931
943
932 * Extensions/ipy_stock_completers.py: fix cd completer to give up
944 * Extensions/ipy_stock_completers.py: fix cd completer to give up
933 on dirnames with spaces and use the default completer instead.
945 on dirnames with spaces and use the default completer instead.
934
946
935 * Revision.py: Change version to 0.7.3b2 for release.
947 * Revision.py: Change version to 0.7.3b2 for release.
936
948
937 2006-12-05 Ville Vainio <vivainio@gmail.com>
949 2006-12-05 Ville Vainio <vivainio@gmail.com>
938
950
939 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
951 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
940 pydb patch 4 (rm debug printing, py 2.5 checking)
952 pydb patch 4 (rm debug printing, py 2.5 checking)
941
953
942 2006-11-30 Walter Doerwald <walter@livinglogic.de>
954 2006-11-30 Walter Doerwald <walter@livinglogic.de>
943 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
955 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
944 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
956 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
945 "refreshfind" (mapped to "R") does the same but tries to go back to the same
957 "refreshfind" (mapped to "R") does the same but tries to go back to the same
946 object the cursor was on before the refresh. The command "markrange" is
958 object the cursor was on before the refresh. The command "markrange" is
947 mapped to "%" now.
959 mapped to "%" now.
948 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
960 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
949
961
950 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
962 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
951
963
952 * IPython/Magic.py (magic_debug): new %debug magic to activate the
964 * IPython/Magic.py (magic_debug): new %debug magic to activate the
953 interactive debugger on the last traceback, without having to call
965 interactive debugger on the last traceback, without having to call
954 %pdb and rerun your code. Made minor changes in various modules,
966 %pdb and rerun your code. Made minor changes in various modules,
955 should automatically recognize pydb if available.
967 should automatically recognize pydb if available.
956
968
957 2006-11-28 Ville Vainio <vivainio@gmail.com>
969 2006-11-28 Ville Vainio <vivainio@gmail.com>
958
970
959 * completer.py: If the text start with !, show file completions
971 * completer.py: If the text start with !, show file completions
960 properly. This helps when trying to complete command name
972 properly. This helps when trying to complete command name
961 for shell escapes.
973 for shell escapes.
962
974
963 2006-11-27 Ville Vainio <vivainio@gmail.com>
975 2006-11-27 Ville Vainio <vivainio@gmail.com>
964
976
965 * ipy_stock_completers.py: bzr completer submitted by Stefan van
977 * ipy_stock_completers.py: bzr completer submitted by Stefan van
966 der Walt. Clean up svn and hg completers by using a common
978 der Walt. Clean up svn and hg completers by using a common
967 vcs_completer.
979 vcs_completer.
968
980
969 2006-11-26 Ville Vainio <vivainio@gmail.com>
981 2006-11-26 Ville Vainio <vivainio@gmail.com>
970
982
971 * Remove ipconfig and %config; you should use _ip.options structure
983 * Remove ipconfig and %config; you should use _ip.options structure
972 directly instead!
984 directly instead!
973
985
974 * genutils.py: add wrap_deprecated function for deprecating callables
986 * genutils.py: add wrap_deprecated function for deprecating callables
975
987
976 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
988 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
977 _ip.system instead. ipalias is redundant.
989 _ip.system instead. ipalias is redundant.
978
990
979 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
991 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
980 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
992 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
981 explicit.
993 explicit.
982
994
983 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
995 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
984 completer. Try it by entering 'hg ' and pressing tab.
996 completer. Try it by entering 'hg ' and pressing tab.
985
997
986 * macro.py: Give Macro a useful __repr__ method
998 * macro.py: Give Macro a useful __repr__ method
987
999
988 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1000 * Magic.py: %whos abbreviates the typename of Macro for brevity.
989
1001
990 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1002 2006-11-24 Walter Doerwald <walter@livinglogic.de>
991 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1003 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
992 we don't get a duplicate ipipe module, where registration of the xrepr
1004 we don't get a duplicate ipipe module, where registration of the xrepr
993 implementation for Text is useless.
1005 implementation for Text is useless.
994
1006
995 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1007 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
996
1008
997 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1009 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
998
1010
999 2006-11-24 Ville Vainio <vivainio@gmail.com>
1011 2006-11-24 Ville Vainio <vivainio@gmail.com>
1000
1012
1001 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1013 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1002 try to use "cProfile" instead of the slower pure python
1014 try to use "cProfile" instead of the slower pure python
1003 "profile"
1015 "profile"
1004
1016
1005 2006-11-23 Ville Vainio <vivainio@gmail.com>
1017 2006-11-23 Ville Vainio <vivainio@gmail.com>
1006
1018
1007 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1019 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1008 Qt+IPython+Designer link in documentation.
1020 Qt+IPython+Designer link in documentation.
1009
1021
1010 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1022 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1011 correct Pdb object to %pydb.
1023 correct Pdb object to %pydb.
1012
1024
1013
1025
1014 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1026 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1015 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1027 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1016 generic xrepr(), otherwise the list implementation would kick in.
1028 generic xrepr(), otherwise the list implementation would kick in.
1017
1029
1018 2006-11-21 Ville Vainio <vivainio@gmail.com>
1030 2006-11-21 Ville Vainio <vivainio@gmail.com>
1019
1031
1020 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1032 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1021 with one from UserConfig.
1033 with one from UserConfig.
1022
1034
1023 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1035 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1024 it was missing which broke the sh profile.
1036 it was missing which broke the sh profile.
1025
1037
1026 * completer.py: file completer now uses explicit '/' instead
1038 * completer.py: file completer now uses explicit '/' instead
1027 of os.path.join, expansion of 'foo' was broken on win32
1039 of os.path.join, expansion of 'foo' was broken on win32
1028 if there was one directory with name 'foobar'.
1040 if there was one directory with name 'foobar'.
1029
1041
1030 * A bunch of patches from Kirill Smelkov:
1042 * A bunch of patches from Kirill Smelkov:
1031
1043
1032 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1044 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1033
1045
1034 * [patch 7/9] Implement %page -r (page in raw mode) -
1046 * [patch 7/9] Implement %page -r (page in raw mode) -
1035
1047
1036 * [patch 5/9] ScientificPython webpage has moved
1048 * [patch 5/9] ScientificPython webpage has moved
1037
1049
1038 * [patch 4/9] The manual mentions %ds, should be %dhist
1050 * [patch 4/9] The manual mentions %ds, should be %dhist
1039
1051
1040 * [patch 3/9] Kill old bits from %prun doc.
1052 * [patch 3/9] Kill old bits from %prun doc.
1041
1053
1042 * [patch 1/9] Fix typos here and there.
1054 * [patch 1/9] Fix typos here and there.
1043
1055
1044 2006-11-08 Ville Vainio <vivainio@gmail.com>
1056 2006-11-08 Ville Vainio <vivainio@gmail.com>
1045
1057
1046 * completer.py (attr_matches): catch all exceptions raised
1058 * completer.py (attr_matches): catch all exceptions raised
1047 by eval of expr with dots.
1059 by eval of expr with dots.
1048
1060
1049 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1061 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1050
1062
1051 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1063 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1052 input if it starts with whitespace. This allows you to paste
1064 input if it starts with whitespace. This allows you to paste
1053 indented input from any editor without manually having to type in
1065 indented input from any editor without manually having to type in
1054 the 'if 1:', which is convenient when working interactively.
1066 the 'if 1:', which is convenient when working interactively.
1055 Slightly modifed version of a patch by Bo Peng
1067 Slightly modifed version of a patch by Bo Peng
1056 <bpeng-AT-rice.edu>.
1068 <bpeng-AT-rice.edu>.
1057
1069
1058 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1070 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1059
1071
1060 * IPython/irunner.py (main): modified irunner so it automatically
1072 * IPython/irunner.py (main): modified irunner so it automatically
1061 recognizes the right runner to use based on the extension (.py for
1073 recognizes the right runner to use based on the extension (.py for
1062 python, .ipy for ipython and .sage for sage).
1074 python, .ipy for ipython and .sage for sage).
1063
1075
1064 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1076 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1065 visible in ipapi as ip.config(), to programatically control the
1077 visible in ipapi as ip.config(), to programatically control the
1066 internal rc object. There's an accompanying %config magic for
1078 internal rc object. There's an accompanying %config magic for
1067 interactive use, which has been enhanced to match the
1079 interactive use, which has been enhanced to match the
1068 funtionality in ipconfig.
1080 funtionality in ipconfig.
1069
1081
1070 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1082 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1071 so it's not just a toggle, it now takes an argument. Add support
1083 so it's not just a toggle, it now takes an argument. Add support
1072 for a customizable header when making system calls, as the new
1084 for a customizable header when making system calls, as the new
1073 system_header variable in the ipythonrc file.
1085 system_header variable in the ipythonrc file.
1074
1086
1075 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1087 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1076
1088
1077 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1089 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1078 generic functions (using Philip J. Eby's simplegeneric package).
1090 generic functions (using Philip J. Eby's simplegeneric package).
1079 This makes it possible to customize the display of third-party classes
1091 This makes it possible to customize the display of third-party classes
1080 without having to monkeypatch them. xiter() no longer supports a mode
1092 without having to monkeypatch them. xiter() no longer supports a mode
1081 argument and the XMode class has been removed. The same functionality can
1093 argument and the XMode class has been removed. The same functionality can
1082 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1094 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1083 One consequence of the switch to generic functions is that xrepr() and
1095 One consequence of the switch to generic functions is that xrepr() and
1084 xattrs() implementation must define the default value for the mode
1096 xattrs() implementation must define the default value for the mode
1085 argument themselves and xattrs() implementations must return real
1097 argument themselves and xattrs() implementations must return real
1086 descriptors.
1098 descriptors.
1087
1099
1088 * IPython/external: This new subpackage will contain all third-party
1100 * IPython/external: This new subpackage will contain all third-party
1089 packages that are bundled with IPython. (The first one is simplegeneric).
1101 packages that are bundled with IPython. (The first one is simplegeneric).
1090
1102
1091 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1103 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1092 directory which as been dropped in r1703.
1104 directory which as been dropped in r1703.
1093
1105
1094 * IPython/Extensions/ipipe.py (iless): Fixed.
1106 * IPython/Extensions/ipipe.py (iless): Fixed.
1095
1107
1096 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1108 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1097
1109
1098 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1110 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1099
1111
1100 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1112 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1101 handling in variable expansion so that shells and magics recognize
1113 handling in variable expansion so that shells and magics recognize
1102 function local scopes correctly. Bug reported by Brian.
1114 function local scopes correctly. Bug reported by Brian.
1103
1115
1104 * scripts/ipython: remove the very first entry in sys.path which
1116 * scripts/ipython: remove the very first entry in sys.path which
1105 Python auto-inserts for scripts, so that sys.path under IPython is
1117 Python auto-inserts for scripts, so that sys.path under IPython is
1106 as similar as possible to that under plain Python.
1118 as similar as possible to that under plain Python.
1107
1119
1108 * IPython/completer.py (IPCompleter.file_matches): Fix
1120 * IPython/completer.py (IPCompleter.file_matches): Fix
1109 tab-completion so that quotes are not closed unless the completion
1121 tab-completion so that quotes are not closed unless the completion
1110 is unambiguous. After a request by Stefan. Minor cleanups in
1122 is unambiguous. After a request by Stefan. Minor cleanups in
1111 ipy_stock_completers.
1123 ipy_stock_completers.
1112
1124
1113 2006-11-02 Ville Vainio <vivainio@gmail.com>
1125 2006-11-02 Ville Vainio <vivainio@gmail.com>
1114
1126
1115 * ipy_stock_completers.py: Add %run and %cd completers.
1127 * ipy_stock_completers.py: Add %run and %cd completers.
1116
1128
1117 * completer.py: Try running custom completer for both
1129 * completer.py: Try running custom completer for both
1118 "foo" and "%foo" if the command is just "foo". Ignore case
1130 "foo" and "%foo" if the command is just "foo". Ignore case
1119 when filtering possible completions.
1131 when filtering possible completions.
1120
1132
1121 * UserConfig/ipy_user_conf.py: install stock completers as default
1133 * UserConfig/ipy_user_conf.py: install stock completers as default
1122
1134
1123 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1135 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1124 simplified readline history save / restore through a wrapper
1136 simplified readline history save / restore through a wrapper
1125 function
1137 function
1126
1138
1127
1139
1128 2006-10-31 Ville Vainio <vivainio@gmail.com>
1140 2006-10-31 Ville Vainio <vivainio@gmail.com>
1129
1141
1130 * strdispatch.py, completer.py, ipy_stock_completers.py:
1142 * strdispatch.py, completer.py, ipy_stock_completers.py:
1131 Allow str_key ("command") in completer hooks. Implement
1143 Allow str_key ("command") in completer hooks. Implement
1132 trivial completer for 'import' (stdlib modules only). Rename
1144 trivial completer for 'import' (stdlib modules only). Rename
1133 ipy_linux_package_managers.py to ipy_stock_completers.py.
1145 ipy_linux_package_managers.py to ipy_stock_completers.py.
1134 SVN completer.
1146 SVN completer.
1135
1147
1136 * Extensions/ledit.py: %magic line editor for easily and
1148 * Extensions/ledit.py: %magic line editor for easily and
1137 incrementally manipulating lists of strings. The magic command
1149 incrementally manipulating lists of strings. The magic command
1138 name is %led.
1150 name is %led.
1139
1151
1140 2006-10-30 Ville Vainio <vivainio@gmail.com>
1152 2006-10-30 Ville Vainio <vivainio@gmail.com>
1141
1153
1142 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1154 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1143 Bernsteins's patches for pydb integration.
1155 Bernsteins's patches for pydb integration.
1144 http://bashdb.sourceforge.net/pydb/
1156 http://bashdb.sourceforge.net/pydb/
1145
1157
1146 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1158 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1147 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1159 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1148 custom completer hook to allow the users to implement their own
1160 custom completer hook to allow the users to implement their own
1149 completers. See ipy_linux_package_managers.py for example. The
1161 completers. See ipy_linux_package_managers.py for example. The
1150 hook name is 'complete_command'.
1162 hook name is 'complete_command'.
1151
1163
1152 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1164 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1153
1165
1154 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1166 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1155 Numeric leftovers.
1167 Numeric leftovers.
1156
1168
1157 * ipython.el (py-execute-region): apply Stefan's patch to fix
1169 * ipython.el (py-execute-region): apply Stefan's patch to fix
1158 garbled results if the python shell hasn't been previously started.
1170 garbled results if the python shell hasn't been previously started.
1159
1171
1160 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1172 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1161 pretty generic function and useful for other things.
1173 pretty generic function and useful for other things.
1162
1174
1163 * IPython/OInspect.py (getsource): Add customizable source
1175 * IPython/OInspect.py (getsource): Add customizable source
1164 extractor. After a request/patch form W. Stein (SAGE).
1176 extractor. After a request/patch form W. Stein (SAGE).
1165
1177
1166 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1178 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1167 window size to a more reasonable value from what pexpect does,
1179 window size to a more reasonable value from what pexpect does,
1168 since their choice causes wrapping bugs with long input lines.
1180 since their choice causes wrapping bugs with long input lines.
1169
1181
1170 2006-10-28 Ville Vainio <vivainio@gmail.com>
1182 2006-10-28 Ville Vainio <vivainio@gmail.com>
1171
1183
1172 * Magic.py (%run): Save and restore the readline history from
1184 * Magic.py (%run): Save and restore the readline history from
1173 file around %run commands to prevent side effects from
1185 file around %run commands to prevent side effects from
1174 %runned programs that might use readline (e.g. pydb).
1186 %runned programs that might use readline (e.g. pydb).
1175
1187
1176 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1188 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1177 invoking the pydb enhanced debugger.
1189 invoking the pydb enhanced debugger.
1178
1190
1179 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1191 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1180
1192
1181 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1193 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1182 call the base class method and propagate the return value to
1194 call the base class method and propagate the return value to
1183 ifile. This is now done by path itself.
1195 ifile. This is now done by path itself.
1184
1196
1185 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1197 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1186
1198
1187 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1199 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1188 api: set_crash_handler(), to expose the ability to change the
1200 api: set_crash_handler(), to expose the ability to change the
1189 internal crash handler.
1201 internal crash handler.
1190
1202
1191 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1203 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1192 the various parameters of the crash handler so that apps using
1204 the various parameters of the crash handler so that apps using
1193 IPython as their engine can customize crash handling. Ipmlemented
1205 IPython as their engine can customize crash handling. Ipmlemented
1194 at the request of SAGE.
1206 at the request of SAGE.
1195
1207
1196 2006-10-14 Ville Vainio <vivainio@gmail.com>
1208 2006-10-14 Ville Vainio <vivainio@gmail.com>
1197
1209
1198 * Magic.py, ipython.el: applied first "safe" part of Rocky
1210 * Magic.py, ipython.el: applied first "safe" part of Rocky
1199 Bernstein's patch set for pydb integration.
1211 Bernstein's patch set for pydb integration.
1200
1212
1201 * Magic.py (%unalias, %alias): %store'd aliases can now be
1213 * Magic.py (%unalias, %alias): %store'd aliases can now be
1202 removed with '%unalias'. %alias w/o args now shows most
1214 removed with '%unalias'. %alias w/o args now shows most
1203 interesting (stored / manually defined) aliases last
1215 interesting (stored / manually defined) aliases last
1204 where they catch the eye w/o scrolling.
1216 where they catch the eye w/o scrolling.
1205
1217
1206 * Magic.py (%rehashx), ext_rehashdir.py: files with
1218 * Magic.py (%rehashx), ext_rehashdir.py: files with
1207 'py' extension are always considered executable, even
1219 'py' extension are always considered executable, even
1208 when not in PATHEXT environment variable.
1220 when not in PATHEXT environment variable.
1209
1221
1210 2006-10-12 Ville Vainio <vivainio@gmail.com>
1222 2006-10-12 Ville Vainio <vivainio@gmail.com>
1211
1223
1212 * jobctrl.py: Add new "jobctrl" extension for spawning background
1224 * jobctrl.py: Add new "jobctrl" extension for spawning background
1213 processes with "&find /". 'import jobctrl' to try it out. Requires
1225 processes with "&find /". 'import jobctrl' to try it out. Requires
1214 'subprocess' module, standard in python 2.4+.
1226 'subprocess' module, standard in python 2.4+.
1215
1227
1216 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1228 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1217 so if foo -> bar and bar -> baz, then foo -> baz.
1229 so if foo -> bar and bar -> baz, then foo -> baz.
1218
1230
1219 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1231 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1220
1232
1221 * IPython/Magic.py (Magic.parse_options): add a new posix option
1233 * IPython/Magic.py (Magic.parse_options): add a new posix option
1222 to allow parsing of input args in magics that doesn't strip quotes
1234 to allow parsing of input args in magics that doesn't strip quotes
1223 (if posix=False). This also closes %timeit bug reported by
1235 (if posix=False). This also closes %timeit bug reported by
1224 Stefan.
1236 Stefan.
1225
1237
1226 2006-10-03 Ville Vainio <vivainio@gmail.com>
1238 2006-10-03 Ville Vainio <vivainio@gmail.com>
1227
1239
1228 * iplib.py (raw_input, interact): Return ValueError catching for
1240 * iplib.py (raw_input, interact): Return ValueError catching for
1229 raw_input. Fixes infinite loop for sys.stdin.close() or
1241 raw_input. Fixes infinite loop for sys.stdin.close() or
1230 sys.stdout.close().
1242 sys.stdout.close().
1231
1243
1232 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1244 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1233
1245
1234 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1246 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1235 to help in handling doctests. irunner is now pretty useful for
1247 to help in handling doctests. irunner is now pretty useful for
1236 running standalone scripts and simulate a full interactive session
1248 running standalone scripts and simulate a full interactive session
1237 in a format that can be then pasted as a doctest.
1249 in a format that can be then pasted as a doctest.
1238
1250
1239 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1251 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1240 on top of the default (useless) ones. This also fixes the nasty
1252 on top of the default (useless) ones. This also fixes the nasty
1241 way in which 2.5's Quitter() exits (reverted [1785]).
1253 way in which 2.5's Quitter() exits (reverted [1785]).
1242
1254
1243 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1255 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1244 2.5.
1256 2.5.
1245
1257
1246 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1258 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1247 color scheme is updated as well when color scheme is changed
1259 color scheme is updated as well when color scheme is changed
1248 interactively.
1260 interactively.
1249
1261
1250 2006-09-27 Ville Vainio <vivainio@gmail.com>
1262 2006-09-27 Ville Vainio <vivainio@gmail.com>
1251
1263
1252 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1264 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1253 infinite loop and just exit. It's a hack, but will do for a while.
1265 infinite loop and just exit. It's a hack, but will do for a while.
1254
1266
1255 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1267 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1256
1268
1257 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1269 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1258 the constructor, this makes it possible to get a list of only directories
1270 the constructor, this makes it possible to get a list of only directories
1259 or only files.
1271 or only files.
1260
1272
1261 2006-08-12 Ville Vainio <vivainio@gmail.com>
1273 2006-08-12 Ville Vainio <vivainio@gmail.com>
1262
1274
1263 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1275 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1264 they broke unittest
1276 they broke unittest
1265
1277
1266 2006-08-11 Ville Vainio <vivainio@gmail.com>
1278 2006-08-11 Ville Vainio <vivainio@gmail.com>
1267
1279
1268 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1280 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1269 by resolving issue properly, i.e. by inheriting FakeModule
1281 by resolving issue properly, i.e. by inheriting FakeModule
1270 from types.ModuleType. Pickling ipython interactive data
1282 from types.ModuleType. Pickling ipython interactive data
1271 should still work as usual (testing appreciated).
1283 should still work as usual (testing appreciated).
1272
1284
1273 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1285 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1274
1286
1275 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1287 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1276 running under python 2.3 with code from 2.4 to fix a bug with
1288 running under python 2.3 with code from 2.4 to fix a bug with
1277 help(). Reported by the Debian maintainers, Norbert Tretkowski
1289 help(). Reported by the Debian maintainers, Norbert Tretkowski
1278 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1290 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1279 <afayolle-AT-debian.org>.
1291 <afayolle-AT-debian.org>.
1280
1292
1281 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1293 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1282
1294
1283 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1295 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1284 (which was displaying "quit" twice).
1296 (which was displaying "quit" twice).
1285
1297
1286 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1298 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1287
1299
1288 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1300 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1289 the mode argument).
1301 the mode argument).
1290
1302
1291 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1303 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1292
1304
1293 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1305 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1294 not running under IPython.
1306 not running under IPython.
1295
1307
1296 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1308 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1297 and make it iterable (iterating over the attribute itself). Add two new
1309 and make it iterable (iterating over the attribute itself). Add two new
1298 magic strings for __xattrs__(): If the string starts with "-", the attribute
1310 magic strings for __xattrs__(): If the string starts with "-", the attribute
1299 will not be displayed in ibrowse's detail view (but it can still be
1311 will not be displayed in ibrowse's detail view (but it can still be
1300 iterated over). This makes it possible to add attributes that are large
1312 iterated over). This makes it possible to add attributes that are large
1301 lists or generator methods to the detail view. Replace magic attribute names
1313 lists or generator methods to the detail view. Replace magic attribute names
1302 and _attrname() and _getattr() with "descriptors": For each type of magic
1314 and _attrname() and _getattr() with "descriptors": For each type of magic
1303 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1315 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1304 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1316 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1305 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1317 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1306 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1318 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1307 are still supported.
1319 are still supported.
1308
1320
1309 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1321 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1310 fails in ibrowse.fetch(), the exception object is added as the last item
1322 fails in ibrowse.fetch(), the exception object is added as the last item
1311 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1323 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1312 a generator throws an exception midway through execution.
1324 a generator throws an exception midway through execution.
1313
1325
1314 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1326 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1315 encoding into methods.
1327 encoding into methods.
1316
1328
1317 2006-07-26 Ville Vainio <vivainio@gmail.com>
1329 2006-07-26 Ville Vainio <vivainio@gmail.com>
1318
1330
1319 * iplib.py: history now stores multiline input as single
1331 * iplib.py: history now stores multiline input as single
1320 history entries. Patch by Jorgen Cederlof.
1332 history entries. Patch by Jorgen Cederlof.
1321
1333
1322 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1334 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1323
1335
1324 * IPython/Extensions/ibrowse.py: Make cursor visible over
1336 * IPython/Extensions/ibrowse.py: Make cursor visible over
1325 non existing attributes.
1337 non existing attributes.
1326
1338
1327 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1339 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1328
1340
1329 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1341 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1330 error output of the running command doesn't mess up the screen.
1342 error output of the running command doesn't mess up the screen.
1331
1343
1332 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1344 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1333
1345
1334 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1346 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1335 argument. This sorts the items themselves.
1347 argument. This sorts the items themselves.
1336
1348
1337 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1349 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1338
1350
1339 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1351 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1340 Compile expression strings into code objects. This should speed
1352 Compile expression strings into code objects. This should speed
1341 up ifilter and friends somewhat.
1353 up ifilter and friends somewhat.
1342
1354
1343 2006-07-08 Ville Vainio <vivainio@gmail.com>
1355 2006-07-08 Ville Vainio <vivainio@gmail.com>
1344
1356
1345 * Magic.py: %cpaste now strips > from the beginning of lines
1357 * Magic.py: %cpaste now strips > from the beginning of lines
1346 to ease pasting quoted code from emails. Contributed by
1358 to ease pasting quoted code from emails. Contributed by
1347 Stefan van der Walt.
1359 Stefan van der Walt.
1348
1360
1349 2006-06-29 Ville Vainio <vivainio@gmail.com>
1361 2006-06-29 Ville Vainio <vivainio@gmail.com>
1350
1362
1351 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1363 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1352 mode, patch contributed by Darren Dale. NEEDS TESTING!
1364 mode, patch contributed by Darren Dale. NEEDS TESTING!
1353
1365
1354 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1366 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1355
1367
1356 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1368 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1357 a blue background. Fix fetching new display rows when the browser
1369 a blue background. Fix fetching new display rows when the browser
1358 scrolls more than a screenful (e.g. by using the goto command).
1370 scrolls more than a screenful (e.g. by using the goto command).
1359
1371
1360 2006-06-27 Ville Vainio <vivainio@gmail.com>
1372 2006-06-27 Ville Vainio <vivainio@gmail.com>
1361
1373
1362 * Magic.py (_inspect, _ofind) Apply David Huard's
1374 * Magic.py (_inspect, _ofind) Apply David Huard's
1363 patch for displaying the correct docstring for 'property'
1375 patch for displaying the correct docstring for 'property'
1364 attributes.
1376 attributes.
1365
1377
1366 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1378 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1367
1379
1368 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1380 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1369 commands into the methods implementing them.
1381 commands into the methods implementing them.
1370
1382
1371 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1383 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1372
1384
1373 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1385 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1374 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1386 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1375 autoindent support was authored by Jin Liu.
1387 autoindent support was authored by Jin Liu.
1376
1388
1377 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1389 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1378
1390
1379 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1391 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1380 for keymaps with a custom class that simplifies handling.
1392 for keymaps with a custom class that simplifies handling.
1381
1393
1382 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1394 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1383
1395
1384 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1396 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1385 resizing. This requires Python 2.5 to work.
1397 resizing. This requires Python 2.5 to work.
1386
1398
1387 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1399 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1388
1400
1389 * IPython/Extensions/ibrowse.py: Add two new commands to
1401 * IPython/Extensions/ibrowse.py: Add two new commands to
1390 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1402 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1391 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1403 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1392 attributes again. Remapped the help command to "?". Display
1404 attributes again. Remapped the help command to "?". Display
1393 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1405 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1394 as keys for the "home" and "end" commands. Add three new commands
1406 as keys for the "home" and "end" commands. Add three new commands
1395 to the input mode for "find" and friends: "delend" (CTRL-K)
1407 to the input mode for "find" and friends: "delend" (CTRL-K)
1396 deletes to the end of line. "incsearchup" searches upwards in the
1408 deletes to the end of line. "incsearchup" searches upwards in the
1397 command history for an input that starts with the text before the cursor.
1409 command history for an input that starts with the text before the cursor.
1398 "incsearchdown" does the same downwards. Removed a bogus mapping of
1410 "incsearchdown" does the same downwards. Removed a bogus mapping of
1399 the x key to "delete".
1411 the x key to "delete".
1400
1412
1401 2006-06-15 Ville Vainio <vivainio@gmail.com>
1413 2006-06-15 Ville Vainio <vivainio@gmail.com>
1402
1414
1403 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1415 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1404 used to create prompts dynamically, instead of the "old" way of
1416 used to create prompts dynamically, instead of the "old" way of
1405 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1417 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1406 way still works (it's invoked by the default hook), of course.
1418 way still works (it's invoked by the default hook), of course.
1407
1419
1408 * Prompts.py: added generate_output_prompt hook for altering output
1420 * Prompts.py: added generate_output_prompt hook for altering output
1409 prompt
1421 prompt
1410
1422
1411 * Release.py: Changed version string to 0.7.3.svn.
1423 * Release.py: Changed version string to 0.7.3.svn.
1412
1424
1413 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1425 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1414
1426
1415 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1427 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1416 the call to fetch() always tries to fetch enough data for at least one
1428 the call to fetch() always tries to fetch enough data for at least one
1417 full screen. This makes it possible to simply call moveto(0,0,True) in
1429 full screen. This makes it possible to simply call moveto(0,0,True) in
1418 the constructor. Fix typos and removed the obsolete goto attribute.
1430 the constructor. Fix typos and removed the obsolete goto attribute.
1419
1431
1420 2006-06-12 Ville Vainio <vivainio@gmail.com>
1432 2006-06-12 Ville Vainio <vivainio@gmail.com>
1421
1433
1422 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1434 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1423 allowing $variable interpolation within multiline statements,
1435 allowing $variable interpolation within multiline statements,
1424 though so far only with "sh" profile for a testing period.
1436 though so far only with "sh" profile for a testing period.
1425 The patch also enables splitting long commands with \ but it
1437 The patch also enables splitting long commands with \ but it
1426 doesn't work properly yet.
1438 doesn't work properly yet.
1427
1439
1428 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1440 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1429
1441
1430 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1442 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1431 input history and the position of the cursor in the input history for
1443 input history and the position of the cursor in the input history for
1432 the find, findbackwards and goto command.
1444 the find, findbackwards and goto command.
1433
1445
1434 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1446 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1435
1447
1436 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1448 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1437 implements the basic functionality of browser commands that require
1449 implements the basic functionality of browser commands that require
1438 input. Reimplement the goto, find and findbackwards commands as
1450 input. Reimplement the goto, find and findbackwards commands as
1439 subclasses of _CommandInput. Add an input history and keymaps to those
1451 subclasses of _CommandInput. Add an input history and keymaps to those
1440 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1452 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1441 execute commands.
1453 execute commands.
1442
1454
1443 2006-06-07 Ville Vainio <vivainio@gmail.com>
1455 2006-06-07 Ville Vainio <vivainio@gmail.com>
1444
1456
1445 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1457 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1446 running the batch files instead of leaving the session open.
1458 running the batch files instead of leaving the session open.
1447
1459
1448 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1460 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1449
1461
1450 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1462 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1451 the original fix was incomplete. Patch submitted by W. Maier.
1463 the original fix was incomplete. Patch submitted by W. Maier.
1452
1464
1453 2006-06-07 Ville Vainio <vivainio@gmail.com>
1465 2006-06-07 Ville Vainio <vivainio@gmail.com>
1454
1466
1455 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1467 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1456 Confirmation prompts can be supressed by 'quiet' option.
1468 Confirmation prompts can be supressed by 'quiet' option.
1457 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1469 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1458
1470
1459 2006-06-06 *** Released version 0.7.2
1471 2006-06-06 *** Released version 0.7.2
1460
1472
1461 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1473 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1462
1474
1463 * IPython/Release.py (version): Made 0.7.2 final for release.
1475 * IPython/Release.py (version): Made 0.7.2 final for release.
1464 Repo tagged and release cut.
1476 Repo tagged and release cut.
1465
1477
1466 2006-06-05 Ville Vainio <vivainio@gmail.com>
1478 2006-06-05 Ville Vainio <vivainio@gmail.com>
1467
1479
1468 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1480 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1469 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1481 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1470
1482
1471 * upgrade_dir.py: try import 'path' module a bit harder
1483 * upgrade_dir.py: try import 'path' module a bit harder
1472 (for %upgrade)
1484 (for %upgrade)
1473
1485
1474 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1486 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1475
1487
1476 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1488 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1477 instead of looping 20 times.
1489 instead of looping 20 times.
1478
1490
1479 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1491 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1480 correctly at initialization time. Bug reported by Krishna Mohan
1492 correctly at initialization time. Bug reported by Krishna Mohan
1481 Gundu <gkmohan-AT-gmail.com> on the user list.
1493 Gundu <gkmohan-AT-gmail.com> on the user list.
1482
1494
1483 * IPython/Release.py (version): Mark 0.7.2 version to start
1495 * IPython/Release.py (version): Mark 0.7.2 version to start
1484 testing for release on 06/06.
1496 testing for release on 06/06.
1485
1497
1486 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1498 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1487
1499
1488 * scripts/irunner: thin script interface so users don't have to
1500 * scripts/irunner: thin script interface so users don't have to
1489 find the module and call it as an executable, since modules rarely
1501 find the module and call it as an executable, since modules rarely
1490 live in people's PATH.
1502 live in people's PATH.
1491
1503
1492 * IPython/irunner.py (InteractiveRunner.__init__): added
1504 * IPython/irunner.py (InteractiveRunner.__init__): added
1493 delaybeforesend attribute to control delays with newer versions of
1505 delaybeforesend attribute to control delays with newer versions of
1494 pexpect. Thanks to detailed help from pexpect's author, Noah
1506 pexpect. Thanks to detailed help from pexpect's author, Noah
1495 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1507 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1496 correctly (it works in NoColor mode).
1508 correctly (it works in NoColor mode).
1497
1509
1498 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1510 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1499 SAGE list, from improper log() calls.
1511 SAGE list, from improper log() calls.
1500
1512
1501 2006-05-31 Ville Vainio <vivainio@gmail.com>
1513 2006-05-31 Ville Vainio <vivainio@gmail.com>
1502
1514
1503 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1515 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1504 with args in parens to work correctly with dirs that have spaces.
1516 with args in parens to work correctly with dirs that have spaces.
1505
1517
1506 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1518 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1507
1519
1508 * IPython/Logger.py (Logger.logstart): add option to log raw input
1520 * IPython/Logger.py (Logger.logstart): add option to log raw input
1509 instead of the processed one. A -r flag was added to the
1521 instead of the processed one. A -r flag was added to the
1510 %logstart magic used for controlling logging.
1522 %logstart magic used for controlling logging.
1511
1523
1512 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1524 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1513
1525
1514 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1526 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1515 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1527 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1516 recognize the option. After a bug report by Will Maier. This
1528 recognize the option. After a bug report by Will Maier. This
1517 closes #64 (will do it after confirmation from W. Maier).
1529 closes #64 (will do it after confirmation from W. Maier).
1518
1530
1519 * IPython/irunner.py: New module to run scripts as if manually
1531 * IPython/irunner.py: New module to run scripts as if manually
1520 typed into an interactive environment, based on pexpect. After a
1532 typed into an interactive environment, based on pexpect. After a
1521 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1533 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1522 ipython-user list. Simple unittests in the tests/ directory.
1534 ipython-user list. Simple unittests in the tests/ directory.
1523
1535
1524 * tools/release: add Will Maier, OpenBSD port maintainer, to
1536 * tools/release: add Will Maier, OpenBSD port maintainer, to
1525 recepients list. We are now officially part of the OpenBSD ports:
1537 recepients list. We are now officially part of the OpenBSD ports:
1526 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1538 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1527 work.
1539 work.
1528
1540
1529 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1541 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1530
1542
1531 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1543 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1532 so that it doesn't break tkinter apps.
1544 so that it doesn't break tkinter apps.
1533
1545
1534 * IPython/iplib.py (_prefilter): fix bug where aliases would
1546 * IPython/iplib.py (_prefilter): fix bug where aliases would
1535 shadow variables when autocall was fully off. Reported by SAGE
1547 shadow variables when autocall was fully off. Reported by SAGE
1536 author William Stein.
1548 author William Stein.
1537
1549
1538 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1550 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1539 at what detail level strings are computed when foo? is requested.
1551 at what detail level strings are computed when foo? is requested.
1540 This allows users to ask for example that the string form of an
1552 This allows users to ask for example that the string form of an
1541 object is only computed when foo?? is called, or even never, by
1553 object is only computed when foo?? is called, or even never, by
1542 setting the object_info_string_level >= 2 in the configuration
1554 setting the object_info_string_level >= 2 in the configuration
1543 file. This new option has been added and documented. After a
1555 file. This new option has been added and documented. After a
1544 request by SAGE to be able to control the printing of very large
1556 request by SAGE to be able to control the printing of very large
1545 objects more easily.
1557 objects more easily.
1546
1558
1547 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1559 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1548
1560
1549 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1561 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1550 from sys.argv, to be 100% consistent with how Python itself works
1562 from sys.argv, to be 100% consistent with how Python itself works
1551 (as seen for example with python -i file.py). After a bug report
1563 (as seen for example with python -i file.py). After a bug report
1552 by Jeffrey Collins.
1564 by Jeffrey Collins.
1553
1565
1554 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1566 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1555 nasty bug which was preventing custom namespaces with -pylab,
1567 nasty bug which was preventing custom namespaces with -pylab,
1556 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1568 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1557 compatibility (long gone from mpl).
1569 compatibility (long gone from mpl).
1558
1570
1559 * IPython/ipapi.py (make_session): name change: create->make. We
1571 * IPython/ipapi.py (make_session): name change: create->make. We
1560 use make in other places (ipmaker,...), it's shorter and easier to
1572 use make in other places (ipmaker,...), it's shorter and easier to
1561 type and say, etc. I'm trying to clean things before 0.7.2 so
1573 type and say, etc. I'm trying to clean things before 0.7.2 so
1562 that I can keep things stable wrt to ipapi in the chainsaw branch.
1574 that I can keep things stable wrt to ipapi in the chainsaw branch.
1563
1575
1564 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1576 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1565 python-mode recognizes our debugger mode. Add support for
1577 python-mode recognizes our debugger mode. Add support for
1566 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1578 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1567 <m.liu.jin-AT-gmail.com> originally written by
1579 <m.liu.jin-AT-gmail.com> originally written by
1568 doxgen-AT-newsmth.net (with minor modifications for xemacs
1580 doxgen-AT-newsmth.net (with minor modifications for xemacs
1569 compatibility)
1581 compatibility)
1570
1582
1571 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1583 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1572 tracebacks when walking the stack so that the stack tracking system
1584 tracebacks when walking the stack so that the stack tracking system
1573 in emacs' python-mode can identify the frames correctly.
1585 in emacs' python-mode can identify the frames correctly.
1574
1586
1575 * IPython/ipmaker.py (make_IPython): make the internal (and
1587 * IPython/ipmaker.py (make_IPython): make the internal (and
1576 default config) autoedit_syntax value false by default. Too many
1588 default config) autoedit_syntax value false by default. Too many
1577 users have complained to me (both on and off-list) about problems
1589 users have complained to me (both on and off-list) about problems
1578 with this option being on by default, so I'm making it default to
1590 with this option being on by default, so I'm making it default to
1579 off. It can still be enabled by anyone via the usual mechanisms.
1591 off. It can still be enabled by anyone via the usual mechanisms.
1580
1592
1581 * IPython/completer.py (Completer.attr_matches): add support for
1593 * IPython/completer.py (Completer.attr_matches): add support for
1582 PyCrust-style _getAttributeNames magic method. Patch contributed
1594 PyCrust-style _getAttributeNames magic method. Patch contributed
1583 by <mscott-AT-goldenspud.com>. Closes #50.
1595 by <mscott-AT-goldenspud.com>. Closes #50.
1584
1596
1585 * IPython/iplib.py (InteractiveShell.__init__): remove the
1597 * IPython/iplib.py (InteractiveShell.__init__): remove the
1586 deletion of exit/quit from __builtin__, which can break
1598 deletion of exit/quit from __builtin__, which can break
1587 third-party tools like the Zope debugging console. The
1599 third-party tools like the Zope debugging console. The
1588 %exit/%quit magics remain. In general, it's probably a good idea
1600 %exit/%quit magics remain. In general, it's probably a good idea
1589 not to delete anything from __builtin__, since we never know what
1601 not to delete anything from __builtin__, since we never know what
1590 that will break. In any case, python now (for 2.5) will support
1602 that will break. In any case, python now (for 2.5) will support
1591 'real' exit/quit, so this issue is moot. Closes #55.
1603 'real' exit/quit, so this issue is moot. Closes #55.
1592
1604
1593 * IPython/genutils.py (with_obj): rename the 'with' function to
1605 * IPython/genutils.py (with_obj): rename the 'with' function to
1594 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1606 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1595 becomes a language keyword. Closes #53.
1607 becomes a language keyword. Closes #53.
1596
1608
1597 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1609 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1598 __file__ attribute to this so it fools more things into thinking
1610 __file__ attribute to this so it fools more things into thinking
1599 it is a real module. Closes #59.
1611 it is a real module. Closes #59.
1600
1612
1601 * IPython/Magic.py (magic_edit): add -n option to open the editor
1613 * IPython/Magic.py (magic_edit): add -n option to open the editor
1602 at a specific line number. After a patch by Stefan van der Walt.
1614 at a specific line number. After a patch by Stefan van der Walt.
1603
1615
1604 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1616 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1605
1617
1606 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1618 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1607 reason the file could not be opened. After automatic crash
1619 reason the file could not be opened. After automatic crash
1608 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1620 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1609 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1621 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1610 (_should_recompile): Don't fire editor if using %bg, since there
1622 (_should_recompile): Don't fire editor if using %bg, since there
1611 is no file in the first place. From the same report as above.
1623 is no file in the first place. From the same report as above.
1612 (raw_input): protect against faulty third-party prefilters. After
1624 (raw_input): protect against faulty third-party prefilters. After
1613 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1625 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1614 while running under SAGE.
1626 while running under SAGE.
1615
1627
1616 2006-05-23 Ville Vainio <vivainio@gmail.com>
1628 2006-05-23 Ville Vainio <vivainio@gmail.com>
1617
1629
1618 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1630 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1619 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1631 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1620 now returns None (again), unless dummy is specifically allowed by
1632 now returns None (again), unless dummy is specifically allowed by
1621 ipapi.get(allow_dummy=True).
1633 ipapi.get(allow_dummy=True).
1622
1634
1623 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1635 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1624
1636
1625 * IPython: remove all 2.2-compatibility objects and hacks from
1637 * IPython: remove all 2.2-compatibility objects and hacks from
1626 everywhere, since we only support 2.3 at this point. Docs
1638 everywhere, since we only support 2.3 at this point. Docs
1627 updated.
1639 updated.
1628
1640
1629 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1641 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1630 Anything requiring extra validation can be turned into a Python
1642 Anything requiring extra validation can be turned into a Python
1631 property in the future. I used a property for the db one b/c
1643 property in the future. I used a property for the db one b/c
1632 there was a nasty circularity problem with the initialization
1644 there was a nasty circularity problem with the initialization
1633 order, which right now I don't have time to clean up.
1645 order, which right now I don't have time to clean up.
1634
1646
1635 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1647 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1636 another locking bug reported by Jorgen. I'm not 100% sure though,
1648 another locking bug reported by Jorgen. I'm not 100% sure though,
1637 so more testing is needed...
1649 so more testing is needed...
1638
1650
1639 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1651 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1640
1652
1641 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1653 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1642 local variables from any routine in user code (typically executed
1654 local variables from any routine in user code (typically executed
1643 with %run) directly into the interactive namespace. Very useful
1655 with %run) directly into the interactive namespace. Very useful
1644 when doing complex debugging.
1656 when doing complex debugging.
1645 (IPythonNotRunning): Changed the default None object to a dummy
1657 (IPythonNotRunning): Changed the default None object to a dummy
1646 whose attributes can be queried as well as called without
1658 whose attributes can be queried as well as called without
1647 exploding, to ease writing code which works transparently both in
1659 exploding, to ease writing code which works transparently both in
1648 and out of ipython and uses some of this API.
1660 and out of ipython and uses some of this API.
1649
1661
1650 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1662 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1651
1663
1652 * IPython/hooks.py (result_display): Fix the fact that our display
1664 * IPython/hooks.py (result_display): Fix the fact that our display
1653 hook was using str() instead of repr(), as the default python
1665 hook was using str() instead of repr(), as the default python
1654 console does. This had gone unnoticed b/c it only happened if
1666 console does. This had gone unnoticed b/c it only happened if
1655 %Pprint was off, but the inconsistency was there.
1667 %Pprint was off, but the inconsistency was there.
1656
1668
1657 2006-05-15 Ville Vainio <vivainio@gmail.com>
1669 2006-05-15 Ville Vainio <vivainio@gmail.com>
1658
1670
1659 * Oinspect.py: Only show docstring for nonexisting/binary files
1671 * Oinspect.py: Only show docstring for nonexisting/binary files
1660 when doing object??, closing ticket #62
1672 when doing object??, closing ticket #62
1661
1673
1662 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1674 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1663
1675
1664 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1676 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1665 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1677 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1666 was being released in a routine which hadn't checked if it had
1678 was being released in a routine which hadn't checked if it had
1667 been the one to acquire it.
1679 been the one to acquire it.
1668
1680
1669 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1681 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1670
1682
1671 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1683 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1672
1684
1673 2006-04-11 Ville Vainio <vivainio@gmail.com>
1685 2006-04-11 Ville Vainio <vivainio@gmail.com>
1674
1686
1675 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1687 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1676 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1688 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1677 prefilters, allowing stuff like magics and aliases in the file.
1689 prefilters, allowing stuff like magics and aliases in the file.
1678
1690
1679 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1691 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1680 added. Supported now are "%clear in" and "%clear out" (clear input and
1692 added. Supported now are "%clear in" and "%clear out" (clear input and
1681 output history, respectively). Also fixed CachedOutput.flush to
1693 output history, respectively). Also fixed CachedOutput.flush to
1682 properly flush the output cache.
1694 properly flush the output cache.
1683
1695
1684 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1696 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1685 half-success (and fail explicitly).
1697 half-success (and fail explicitly).
1686
1698
1687 2006-03-28 Ville Vainio <vivainio@gmail.com>
1699 2006-03-28 Ville Vainio <vivainio@gmail.com>
1688
1700
1689 * iplib.py: Fix quoting of aliases so that only argless ones
1701 * iplib.py: Fix quoting of aliases so that only argless ones
1690 are quoted
1702 are quoted
1691
1703
1692 2006-03-28 Ville Vainio <vivainio@gmail.com>
1704 2006-03-28 Ville Vainio <vivainio@gmail.com>
1693
1705
1694 * iplib.py: Quote aliases with spaces in the name.
1706 * iplib.py: Quote aliases with spaces in the name.
1695 "c:\program files\blah\bin" is now legal alias target.
1707 "c:\program files\blah\bin" is now legal alias target.
1696
1708
1697 * ext_rehashdir.py: Space no longer allowed as arg
1709 * ext_rehashdir.py: Space no longer allowed as arg
1698 separator, since space is legal in path names.
1710 separator, since space is legal in path names.
1699
1711
1700 2006-03-16 Ville Vainio <vivainio@gmail.com>
1712 2006-03-16 Ville Vainio <vivainio@gmail.com>
1701
1713
1702 * upgrade_dir.py: Take path.py from Extensions, correcting
1714 * upgrade_dir.py: Take path.py from Extensions, correcting
1703 %upgrade magic
1715 %upgrade magic
1704
1716
1705 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1717 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1706
1718
1707 * hooks.py: Only enclose editor binary in quotes if legal and
1719 * hooks.py: Only enclose editor binary in quotes if legal and
1708 necessary (space in the name, and is an existing file). Fixes a bug
1720 necessary (space in the name, and is an existing file). Fixes a bug
1709 reported by Zachary Pincus.
1721 reported by Zachary Pincus.
1710
1722
1711 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1723 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1712
1724
1713 * Manual: thanks to a tip on proper color handling for Emacs, by
1725 * Manual: thanks to a tip on proper color handling for Emacs, by
1714 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1726 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1715
1727
1716 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1728 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1717 by applying the provided patch. Thanks to Liu Jin
1729 by applying the provided patch. Thanks to Liu Jin
1718 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1730 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1719 XEmacs/Linux, I'm trusting the submitter that it actually helps
1731 XEmacs/Linux, I'm trusting the submitter that it actually helps
1720 under win32/GNU Emacs. Will revisit if any problems are reported.
1732 under win32/GNU Emacs. Will revisit if any problems are reported.
1721
1733
1722 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1734 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1723
1735
1724 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1736 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1725 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1737 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1726
1738
1727 2006-03-12 Ville Vainio <vivainio@gmail.com>
1739 2006-03-12 Ville Vainio <vivainio@gmail.com>
1728
1740
1729 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1741 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1730 Torsten Marek.
1742 Torsten Marek.
1731
1743
1732 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1744 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1733
1745
1734 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1746 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1735 line ranges works again.
1747 line ranges works again.
1736
1748
1737 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1749 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1738
1750
1739 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1751 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1740 and friends, after a discussion with Zach Pincus on ipython-user.
1752 and friends, after a discussion with Zach Pincus on ipython-user.
1741 I'm not 100% sure, but after thinking about it quite a bit, it may
1753 I'm not 100% sure, but after thinking about it quite a bit, it may
1742 be OK. Testing with the multithreaded shells didn't reveal any
1754 be OK. Testing with the multithreaded shells didn't reveal any
1743 problems, but let's keep an eye out.
1755 problems, but let's keep an eye out.
1744
1756
1745 In the process, I fixed a few things which were calling
1757 In the process, I fixed a few things which were calling
1746 self.InteractiveTB() directly (like safe_execfile), which is a
1758 self.InteractiveTB() directly (like safe_execfile), which is a
1747 mistake: ALL exception reporting should be done by calling
1759 mistake: ALL exception reporting should be done by calling
1748 self.showtraceback(), which handles state and tab-completion and
1760 self.showtraceback(), which handles state and tab-completion and
1749 more.
1761 more.
1750
1762
1751 2006-03-01 Ville Vainio <vivainio@gmail.com>
1763 2006-03-01 Ville Vainio <vivainio@gmail.com>
1752
1764
1753 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1765 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1754 To use, do "from ipipe import *".
1766 To use, do "from ipipe import *".
1755
1767
1756 2006-02-24 Ville Vainio <vivainio@gmail.com>
1768 2006-02-24 Ville Vainio <vivainio@gmail.com>
1757
1769
1758 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1770 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1759 "cleanly" and safely than the older upgrade mechanism.
1771 "cleanly" and safely than the older upgrade mechanism.
1760
1772
1761 2006-02-21 Ville Vainio <vivainio@gmail.com>
1773 2006-02-21 Ville Vainio <vivainio@gmail.com>
1762
1774
1763 * Magic.py: %save works again.
1775 * Magic.py: %save works again.
1764
1776
1765 2006-02-15 Ville Vainio <vivainio@gmail.com>
1777 2006-02-15 Ville Vainio <vivainio@gmail.com>
1766
1778
1767 * Magic.py: %Pprint works again
1779 * Magic.py: %Pprint works again
1768
1780
1769 * Extensions/ipy_sane_defaults.py: Provide everything provided
1781 * Extensions/ipy_sane_defaults.py: Provide everything provided
1770 in default ipythonrc, to make it possible to have a completely empty
1782 in default ipythonrc, to make it possible to have a completely empty
1771 ipythonrc (and thus completely rc-file free configuration)
1783 ipythonrc (and thus completely rc-file free configuration)
1772
1784
1773 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1785 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1774
1786
1775 * IPython/hooks.py (editor): quote the call to the editor command,
1787 * IPython/hooks.py (editor): quote the call to the editor command,
1776 to allow commands with spaces in them. Problem noted by watching
1788 to allow commands with spaces in them. Problem noted by watching
1777 Ian Oswald's video about textpad under win32 at
1789 Ian Oswald's video about textpad under win32 at
1778 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1790 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1779
1791
1780 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1792 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1781 describing magics (we haven't used @ for a loong time).
1793 describing magics (we haven't used @ for a loong time).
1782
1794
1783 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1795 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1784 contributed by marienz to close
1796 contributed by marienz to close
1785 http://www.scipy.net/roundup/ipython/issue53.
1797 http://www.scipy.net/roundup/ipython/issue53.
1786
1798
1787 2006-02-10 Ville Vainio <vivainio@gmail.com>
1799 2006-02-10 Ville Vainio <vivainio@gmail.com>
1788
1800
1789 * genutils.py: getoutput now works in win32 too
1801 * genutils.py: getoutput now works in win32 too
1790
1802
1791 * completer.py: alias and magic completion only invoked
1803 * completer.py: alias and magic completion only invoked
1792 at the first "item" in the line, to avoid "cd %store"
1804 at the first "item" in the line, to avoid "cd %store"
1793 nonsense.
1805 nonsense.
1794
1806
1795 2006-02-09 Ville Vainio <vivainio@gmail.com>
1807 2006-02-09 Ville Vainio <vivainio@gmail.com>
1796
1808
1797 * test/*: Added a unit testing framework (finally).
1809 * test/*: Added a unit testing framework (finally).
1798 '%run runtests.py' to run test_*.
1810 '%run runtests.py' to run test_*.
1799
1811
1800 * ipapi.py: Exposed runlines and set_custom_exc
1812 * ipapi.py: Exposed runlines and set_custom_exc
1801
1813
1802 2006-02-07 Ville Vainio <vivainio@gmail.com>
1814 2006-02-07 Ville Vainio <vivainio@gmail.com>
1803
1815
1804 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1816 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1805 instead use "f(1 2)" as before.
1817 instead use "f(1 2)" as before.
1806
1818
1807 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1819 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1808
1820
1809 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1821 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1810 facilities, for demos processed by the IPython input filter
1822 facilities, for demos processed by the IPython input filter
1811 (IPythonDemo), and for running a script one-line-at-a-time as a
1823 (IPythonDemo), and for running a script one-line-at-a-time as a
1812 demo, both for pure Python (LineDemo) and for IPython-processed
1824 demo, both for pure Python (LineDemo) and for IPython-processed
1813 input (IPythonLineDemo). After a request by Dave Kohel, from the
1825 input (IPythonLineDemo). After a request by Dave Kohel, from the
1814 SAGE team.
1826 SAGE team.
1815 (Demo.edit): added an edit() method to the demo objects, to edit
1827 (Demo.edit): added an edit() method to the demo objects, to edit
1816 the in-memory copy of the last executed block.
1828 the in-memory copy of the last executed block.
1817
1829
1818 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1830 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1819 processing to %edit, %macro and %save. These commands can now be
1831 processing to %edit, %macro and %save. These commands can now be
1820 invoked on the unprocessed input as it was typed by the user
1832 invoked on the unprocessed input as it was typed by the user
1821 (without any prefilters applied). After requests by the SAGE team
1833 (without any prefilters applied). After requests by the SAGE team
1822 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1834 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1823
1835
1824 2006-02-01 Ville Vainio <vivainio@gmail.com>
1836 2006-02-01 Ville Vainio <vivainio@gmail.com>
1825
1837
1826 * setup.py, eggsetup.py: easy_install ipython==dev works
1838 * setup.py, eggsetup.py: easy_install ipython==dev works
1827 correctly now (on Linux)
1839 correctly now (on Linux)
1828
1840
1829 * ipy_user_conf,ipmaker: user config changes, removed spurious
1841 * ipy_user_conf,ipmaker: user config changes, removed spurious
1830 warnings
1842 warnings
1831
1843
1832 * iplib: if rc.banner is string, use it as is.
1844 * iplib: if rc.banner is string, use it as is.
1833
1845
1834 * Magic: %pycat accepts a string argument and pages it's contents.
1846 * Magic: %pycat accepts a string argument and pages it's contents.
1835
1847
1836
1848
1837 2006-01-30 Ville Vainio <vivainio@gmail.com>
1849 2006-01-30 Ville Vainio <vivainio@gmail.com>
1838
1850
1839 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1851 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1840 Now %store and bookmarks work through PickleShare, meaning that
1852 Now %store and bookmarks work through PickleShare, meaning that
1841 concurrent access is possible and all ipython sessions see the
1853 concurrent access is possible and all ipython sessions see the
1842 same database situation all the time, instead of snapshot of
1854 same database situation all the time, instead of snapshot of
1843 the situation when the session was started. Hence, %bookmark
1855 the situation when the session was started. Hence, %bookmark
1844 results are immediately accessible from othes sessions. The database
1856 results are immediately accessible from othes sessions. The database
1845 is also available for use by user extensions. See:
1857 is also available for use by user extensions. See:
1846 http://www.python.org/pypi/pickleshare
1858 http://www.python.org/pypi/pickleshare
1847
1859
1848 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1860 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1849
1861
1850 * aliases can now be %store'd
1862 * aliases can now be %store'd
1851
1863
1852 * path.py moved to Extensions so that pickleshare does not need
1864 * path.py moved to Extensions so that pickleshare does not need
1853 IPython-specific import. Extensions added to pythonpath right
1865 IPython-specific import. Extensions added to pythonpath right
1854 at __init__.
1866 at __init__.
1855
1867
1856 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1868 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1857 called with _ip.system and the pre-transformed command string.
1869 called with _ip.system and the pre-transformed command string.
1858
1870
1859 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1871 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1860
1872
1861 * IPython/iplib.py (interact): Fix that we were not catching
1873 * IPython/iplib.py (interact): Fix that we were not catching
1862 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1874 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1863 logic here had to change, but it's fixed now.
1875 logic here had to change, but it's fixed now.
1864
1876
1865 2006-01-29 Ville Vainio <vivainio@gmail.com>
1877 2006-01-29 Ville Vainio <vivainio@gmail.com>
1866
1878
1867 * iplib.py: Try to import pyreadline on Windows.
1879 * iplib.py: Try to import pyreadline on Windows.
1868
1880
1869 2006-01-27 Ville Vainio <vivainio@gmail.com>
1881 2006-01-27 Ville Vainio <vivainio@gmail.com>
1870
1882
1871 * iplib.py: Expose ipapi as _ip in builtin namespace.
1883 * iplib.py: Expose ipapi as _ip in builtin namespace.
1872 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1884 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1873 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1885 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1874 syntax now produce _ip.* variant of the commands.
1886 syntax now produce _ip.* variant of the commands.
1875
1887
1876 * "_ip.options().autoedit_syntax = 2" automatically throws
1888 * "_ip.options().autoedit_syntax = 2" automatically throws
1877 user to editor for syntax error correction without prompting.
1889 user to editor for syntax error correction without prompting.
1878
1890
1879 2006-01-27 Ville Vainio <vivainio@gmail.com>
1891 2006-01-27 Ville Vainio <vivainio@gmail.com>
1880
1892
1881 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1893 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1882 'ipython' at argv[0]) executed through command line.
1894 'ipython' at argv[0]) executed through command line.
1883 NOTE: this DEPRECATES calling ipython with multiple scripts
1895 NOTE: this DEPRECATES calling ipython with multiple scripts
1884 ("ipython a.py b.py c.py")
1896 ("ipython a.py b.py c.py")
1885
1897
1886 * iplib.py, hooks.py: Added configurable input prefilter,
1898 * iplib.py, hooks.py: Added configurable input prefilter,
1887 named 'input_prefilter'. See ext_rescapture.py for example
1899 named 'input_prefilter'. See ext_rescapture.py for example
1888 usage.
1900 usage.
1889
1901
1890 * ext_rescapture.py, Magic.py: Better system command output capture
1902 * ext_rescapture.py, Magic.py: Better system command output capture
1891 through 'var = !ls' (deprecates user-visible %sc). Same notation
1903 through 'var = !ls' (deprecates user-visible %sc). Same notation
1892 applies for magics, 'var = %alias' assigns alias list to var.
1904 applies for magics, 'var = %alias' assigns alias list to var.
1893
1905
1894 * ipapi.py: added meta() for accessing extension-usable data store.
1906 * ipapi.py: added meta() for accessing extension-usable data store.
1895
1907
1896 * iplib.py: added InteractiveShell.getapi(). New magics should be
1908 * iplib.py: added InteractiveShell.getapi(). New magics should be
1897 written doing self.getapi() instead of using the shell directly.
1909 written doing self.getapi() instead of using the shell directly.
1898
1910
1899 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1911 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1900 %store foo >> ~/myfoo.txt to store variables to files (in clean
1912 %store foo >> ~/myfoo.txt to store variables to files (in clean
1901 textual form, not a restorable pickle).
1913 textual form, not a restorable pickle).
1902
1914
1903 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1915 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1904
1916
1905 * usage.py, Magic.py: added %quickref
1917 * usage.py, Magic.py: added %quickref
1906
1918
1907 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1919 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1908
1920
1909 * GetoptErrors when invoking magics etc. with wrong args
1921 * GetoptErrors when invoking magics etc. with wrong args
1910 are now more helpful:
1922 are now more helpful:
1911 GetoptError: option -l not recognized (allowed: "qb" )
1923 GetoptError: option -l not recognized (allowed: "qb" )
1912
1924
1913 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1925 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1914
1926
1915 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1927 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1916 computationally intensive blocks don't appear to stall the demo.
1928 computationally intensive blocks don't appear to stall the demo.
1917
1929
1918 2006-01-24 Ville Vainio <vivainio@gmail.com>
1930 2006-01-24 Ville Vainio <vivainio@gmail.com>
1919
1931
1920 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1932 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1921 value to manipulate resulting history entry.
1933 value to manipulate resulting history entry.
1922
1934
1923 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1935 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1924 to instance methods of IPApi class, to make extending an embedded
1936 to instance methods of IPApi class, to make extending an embedded
1925 IPython feasible. See ext_rehashdir.py for example usage.
1937 IPython feasible. See ext_rehashdir.py for example usage.
1926
1938
1927 * Merged 1071-1076 from branches/0.7.1
1939 * Merged 1071-1076 from branches/0.7.1
1928
1940
1929
1941
1930 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1942 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1931
1943
1932 * tools/release (daystamp): Fix build tools to use the new
1944 * tools/release (daystamp): Fix build tools to use the new
1933 eggsetup.py script to build lightweight eggs.
1945 eggsetup.py script to build lightweight eggs.
1934
1946
1935 * Applied changesets 1062 and 1064 before 0.7.1 release.
1947 * Applied changesets 1062 and 1064 before 0.7.1 release.
1936
1948
1937 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1949 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1938 see the raw input history (without conversions like %ls ->
1950 see the raw input history (without conversions like %ls ->
1939 ipmagic("ls")). After a request from W. Stein, SAGE
1951 ipmagic("ls")). After a request from W. Stein, SAGE
1940 (http://modular.ucsd.edu/sage) developer. This information is
1952 (http://modular.ucsd.edu/sage) developer. This information is
1941 stored in the input_hist_raw attribute of the IPython instance, so
1953 stored in the input_hist_raw attribute of the IPython instance, so
1942 developers can access it if needed (it's an InputList instance).
1954 developers can access it if needed (it's an InputList instance).
1943
1955
1944 * Versionstring = 0.7.2.svn
1956 * Versionstring = 0.7.2.svn
1945
1957
1946 * eggsetup.py: A separate script for constructing eggs, creates
1958 * eggsetup.py: A separate script for constructing eggs, creates
1947 proper launch scripts even on Windows (an .exe file in
1959 proper launch scripts even on Windows (an .exe file in
1948 \python24\scripts).
1960 \python24\scripts).
1949
1961
1950 * ipapi.py: launch_new_instance, launch entry point needed for the
1962 * ipapi.py: launch_new_instance, launch entry point needed for the
1951 egg.
1963 egg.
1952
1964
1953 2006-01-23 Ville Vainio <vivainio@gmail.com>
1965 2006-01-23 Ville Vainio <vivainio@gmail.com>
1954
1966
1955 * Added %cpaste magic for pasting python code
1967 * Added %cpaste magic for pasting python code
1956
1968
1957 2006-01-22 Ville Vainio <vivainio@gmail.com>
1969 2006-01-22 Ville Vainio <vivainio@gmail.com>
1958
1970
1959 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1971 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1960
1972
1961 * Versionstring = 0.7.2.svn
1973 * Versionstring = 0.7.2.svn
1962
1974
1963 * eggsetup.py: A separate script for constructing eggs, creates
1975 * eggsetup.py: A separate script for constructing eggs, creates
1964 proper launch scripts even on Windows (an .exe file in
1976 proper launch scripts even on Windows (an .exe file in
1965 \python24\scripts).
1977 \python24\scripts).
1966
1978
1967 * ipapi.py: launch_new_instance, launch entry point needed for the
1979 * ipapi.py: launch_new_instance, launch entry point needed for the
1968 egg.
1980 egg.
1969
1981
1970 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1982 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1971
1983
1972 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1984 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1973 %pfile foo would print the file for foo even if it was a binary.
1985 %pfile foo would print the file for foo even if it was a binary.
1974 Now, extensions '.so' and '.dll' are skipped.
1986 Now, extensions '.so' and '.dll' are skipped.
1975
1987
1976 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1988 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1977 bug, where macros would fail in all threaded modes. I'm not 100%
1989 bug, where macros would fail in all threaded modes. I'm not 100%
1978 sure, so I'm going to put out an rc instead of making a release
1990 sure, so I'm going to put out an rc instead of making a release
1979 today, and wait for feedback for at least a few days.
1991 today, and wait for feedback for at least a few days.
1980
1992
1981 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1993 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1982 it...) the handling of pasting external code with autoindent on.
1994 it...) the handling of pasting external code with autoindent on.
1983 To get out of a multiline input, the rule will appear for most
1995 To get out of a multiline input, the rule will appear for most
1984 users unchanged: two blank lines or change the indent level
1996 users unchanged: two blank lines or change the indent level
1985 proposed by IPython. But there is a twist now: you can
1997 proposed by IPython. But there is a twist now: you can
1986 add/subtract only *one or two spaces*. If you add/subtract three
1998 add/subtract only *one or two spaces*. If you add/subtract three
1987 or more (unless you completely delete the line), IPython will
1999 or more (unless you completely delete the line), IPython will
1988 accept that line, and you'll need to enter a second one of pure
2000 accept that line, and you'll need to enter a second one of pure
1989 whitespace. I know it sounds complicated, but I can't find a
2001 whitespace. I know it sounds complicated, but I can't find a
1990 different solution that covers all the cases, with the right
2002 different solution that covers all the cases, with the right
1991 heuristics. Hopefully in actual use, nobody will really notice
2003 heuristics. Hopefully in actual use, nobody will really notice
1992 all these strange rules and things will 'just work'.
2004 all these strange rules and things will 'just work'.
1993
2005
1994 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2006 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1995
2007
1996 * IPython/iplib.py (interact): catch exceptions which can be
2008 * IPython/iplib.py (interact): catch exceptions which can be
1997 triggered asynchronously by signal handlers. Thanks to an
2009 triggered asynchronously by signal handlers. Thanks to an
1998 automatic crash report, submitted by Colin Kingsley
2010 automatic crash report, submitted by Colin Kingsley
1999 <tercel-AT-gentoo.org>.
2011 <tercel-AT-gentoo.org>.
2000
2012
2001 2006-01-20 Ville Vainio <vivainio@gmail.com>
2013 2006-01-20 Ville Vainio <vivainio@gmail.com>
2002
2014
2003 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2015 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2004 (%rehashdir, very useful, try it out) of how to extend ipython
2016 (%rehashdir, very useful, try it out) of how to extend ipython
2005 with new magics. Also added Extensions dir to pythonpath to make
2017 with new magics. Also added Extensions dir to pythonpath to make
2006 importing extensions easy.
2018 importing extensions easy.
2007
2019
2008 * %store now complains when trying to store interactively declared
2020 * %store now complains when trying to store interactively declared
2009 classes / instances of those classes.
2021 classes / instances of those classes.
2010
2022
2011 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2023 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2012 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2024 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2013 if they exist, and ipy_user_conf.py with some defaults is created for
2025 if they exist, and ipy_user_conf.py with some defaults is created for
2014 the user.
2026 the user.
2015
2027
2016 * Startup rehashing done by the config file, not InterpreterExec.
2028 * Startup rehashing done by the config file, not InterpreterExec.
2017 This means system commands are available even without selecting the
2029 This means system commands are available even without selecting the
2018 pysh profile. It's the sensible default after all.
2030 pysh profile. It's the sensible default after all.
2019
2031
2020 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2032 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2021
2033
2022 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2034 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2023 multiline code with autoindent on working. But I am really not
2035 multiline code with autoindent on working. But I am really not
2024 sure, so this needs more testing. Will commit a debug-enabled
2036 sure, so this needs more testing. Will commit a debug-enabled
2025 version for now, while I test it some more, so that Ville and
2037 version for now, while I test it some more, so that Ville and
2026 others may also catch any problems. Also made
2038 others may also catch any problems. Also made
2027 self.indent_current_str() a method, to ensure that there's no
2039 self.indent_current_str() a method, to ensure that there's no
2028 chance of the indent space count and the corresponding string
2040 chance of the indent space count and the corresponding string
2029 falling out of sync. All code needing the string should just call
2041 falling out of sync. All code needing the string should just call
2030 the method.
2042 the method.
2031
2043
2032 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2044 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2033
2045
2034 * IPython/Magic.py (magic_edit): fix check for when users don't
2046 * IPython/Magic.py (magic_edit): fix check for when users don't
2035 save their output files, the try/except was in the wrong section.
2047 save their output files, the try/except was in the wrong section.
2036
2048
2037 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2049 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2038
2050
2039 * IPython/Magic.py (magic_run): fix __file__ global missing from
2051 * IPython/Magic.py (magic_run): fix __file__ global missing from
2040 script's namespace when executed via %run. After a report by
2052 script's namespace when executed via %run. After a report by
2041 Vivian.
2053 Vivian.
2042
2054
2043 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2055 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2044 when using python 2.4. The parent constructor changed in 2.4, and
2056 when using python 2.4. The parent constructor changed in 2.4, and
2045 we need to track it directly (we can't call it, as it messes up
2057 we need to track it directly (we can't call it, as it messes up
2046 readline and tab-completion inside our pdb would stop working).
2058 readline and tab-completion inside our pdb would stop working).
2047 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2059 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2048
2060
2049 2006-01-16 Ville Vainio <vivainio@gmail.com>
2061 2006-01-16 Ville Vainio <vivainio@gmail.com>
2050
2062
2051 * Ipython/magic.py: Reverted back to old %edit functionality
2063 * Ipython/magic.py: Reverted back to old %edit functionality
2052 that returns file contents on exit.
2064 that returns file contents on exit.
2053
2065
2054 * IPython/path.py: Added Jason Orendorff's "path" module to
2066 * IPython/path.py: Added Jason Orendorff's "path" module to
2055 IPython tree, http://www.jorendorff.com/articles/python/path/.
2067 IPython tree, http://www.jorendorff.com/articles/python/path/.
2056 You can get path objects conveniently through %sc, and !!, e.g.:
2068 You can get path objects conveniently through %sc, and !!, e.g.:
2057 sc files=ls
2069 sc files=ls
2058 for p in files.paths: # or files.p
2070 for p in files.paths: # or files.p
2059 print p,p.mtime
2071 print p,p.mtime
2060
2072
2061 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2073 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2062 now work again without considering the exclusion regexp -
2074 now work again without considering the exclusion regexp -
2063 hence, things like ',foo my/path' turn to 'foo("my/path")'
2075 hence, things like ',foo my/path' turn to 'foo("my/path")'
2064 instead of syntax error.
2076 instead of syntax error.
2065
2077
2066
2078
2067 2006-01-14 Ville Vainio <vivainio@gmail.com>
2079 2006-01-14 Ville Vainio <vivainio@gmail.com>
2068
2080
2069 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2081 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2070 ipapi decorators for python 2.4 users, options() provides access to rc
2082 ipapi decorators for python 2.4 users, options() provides access to rc
2071 data.
2083 data.
2072
2084
2073 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2085 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2074 as path separators (even on Linux ;-). Space character after
2086 as path separators (even on Linux ;-). Space character after
2075 backslash (as yielded by tab completer) is still space;
2087 backslash (as yielded by tab completer) is still space;
2076 "%cd long\ name" works as expected.
2088 "%cd long\ name" works as expected.
2077
2089
2078 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2090 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2079 as "chain of command", with priority. API stays the same,
2091 as "chain of command", with priority. API stays the same,
2080 TryNext exception raised by a hook function signals that
2092 TryNext exception raised by a hook function signals that
2081 current hook failed and next hook should try handling it, as
2093 current hook failed and next hook should try handling it, as
2082 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2094 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2083 requested configurable display hook, which is now implemented.
2095 requested configurable display hook, which is now implemented.
2084
2096
2085 2006-01-13 Ville Vainio <vivainio@gmail.com>
2097 2006-01-13 Ville Vainio <vivainio@gmail.com>
2086
2098
2087 * IPython/platutils*.py: platform specific utility functions,
2099 * IPython/platutils*.py: platform specific utility functions,
2088 so far only set_term_title is implemented (change terminal
2100 so far only set_term_title is implemented (change terminal
2089 label in windowing systems). %cd now changes the title to
2101 label in windowing systems). %cd now changes the title to
2090 current dir.
2102 current dir.
2091
2103
2092 * IPython/Release.py: Added myself to "authors" list,
2104 * IPython/Release.py: Added myself to "authors" list,
2093 had to create new files.
2105 had to create new files.
2094
2106
2095 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2107 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2096 shell escape; not a known bug but had potential to be one in the
2108 shell escape; not a known bug but had potential to be one in the
2097 future.
2109 future.
2098
2110
2099 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2111 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2100 extension API for IPython! See the module for usage example. Fix
2112 extension API for IPython! See the module for usage example. Fix
2101 OInspect for docstring-less magic functions.
2113 OInspect for docstring-less magic functions.
2102
2114
2103
2115
2104 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2116 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2105
2117
2106 * IPython/iplib.py (raw_input): temporarily deactivate all
2118 * IPython/iplib.py (raw_input): temporarily deactivate all
2107 attempts at allowing pasting of code with autoindent on. It
2119 attempts at allowing pasting of code with autoindent on. It
2108 introduced bugs (reported by Prabhu) and I can't seem to find a
2120 introduced bugs (reported by Prabhu) and I can't seem to find a
2109 robust combination which works in all cases. Will have to revisit
2121 robust combination which works in all cases. Will have to revisit
2110 later.
2122 later.
2111
2123
2112 * IPython/genutils.py: remove isspace() function. We've dropped
2124 * IPython/genutils.py: remove isspace() function. We've dropped
2113 2.2 compatibility, so it's OK to use the string method.
2125 2.2 compatibility, so it's OK to use the string method.
2114
2126
2115 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2127 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2116
2128
2117 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2129 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2118 matching what NOT to autocall on, to include all python binary
2130 matching what NOT to autocall on, to include all python binary
2119 operators (including things like 'and', 'or', 'is' and 'in').
2131 operators (including things like 'and', 'or', 'is' and 'in').
2120 Prompted by a bug report on 'foo & bar', but I realized we had
2132 Prompted by a bug report on 'foo & bar', but I realized we had
2121 many more potential bug cases with other operators. The regexp is
2133 many more potential bug cases with other operators. The regexp is
2122 self.re_exclude_auto, it's fairly commented.
2134 self.re_exclude_auto, it's fairly commented.
2123
2135
2124 2006-01-12 Ville Vainio <vivainio@gmail.com>
2136 2006-01-12 Ville Vainio <vivainio@gmail.com>
2125
2137
2126 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2138 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2127 Prettified and hardened string/backslash quoting with ipsystem(),
2139 Prettified and hardened string/backslash quoting with ipsystem(),
2128 ipalias() and ipmagic(). Now even \ characters are passed to
2140 ipalias() and ipmagic(). Now even \ characters are passed to
2129 %magics, !shell escapes and aliases exactly as they are in the
2141 %magics, !shell escapes and aliases exactly as they are in the
2130 ipython command line. Should improve backslash experience,
2142 ipython command line. Should improve backslash experience,
2131 particularly in Windows (path delimiter for some commands that
2143 particularly in Windows (path delimiter for some commands that
2132 won't understand '/'), but Unix benefits as well (regexps). %cd
2144 won't understand '/'), but Unix benefits as well (regexps). %cd
2133 magic still doesn't support backslash path delimiters, though. Also
2145 magic still doesn't support backslash path delimiters, though. Also
2134 deleted all pretense of supporting multiline command strings in
2146 deleted all pretense of supporting multiline command strings in
2135 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2147 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2136
2148
2137 * doc/build_doc_instructions.txt added. Documentation on how to
2149 * doc/build_doc_instructions.txt added. Documentation on how to
2138 use doc/update_manual.py, added yesterday. Both files contributed
2150 use doc/update_manual.py, added yesterday. Both files contributed
2139 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2151 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2140 doc/*.sh for deprecation at a later date.
2152 doc/*.sh for deprecation at a later date.
2141
2153
2142 * /ipython.py Added ipython.py to root directory for
2154 * /ipython.py Added ipython.py to root directory for
2143 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2155 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2144 ipython.py) and development convenience (no need to keep doing
2156 ipython.py) and development convenience (no need to keep doing
2145 "setup.py install" between changes).
2157 "setup.py install" between changes).
2146
2158
2147 * Made ! and !! shell escapes work (again) in multiline expressions:
2159 * Made ! and !! shell escapes work (again) in multiline expressions:
2148 if 1:
2160 if 1:
2149 !ls
2161 !ls
2150 !!ls
2162 !!ls
2151
2163
2152 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2164 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2153
2165
2154 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2166 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2155 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2167 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2156 module in case-insensitive installation. Was causing crashes
2168 module in case-insensitive installation. Was causing crashes
2157 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2169 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2158
2170
2159 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2171 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2160 <marienz-AT-gentoo.org>, closes
2172 <marienz-AT-gentoo.org>, closes
2161 http://www.scipy.net/roundup/ipython/issue51.
2173 http://www.scipy.net/roundup/ipython/issue51.
2162
2174
2163 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2175 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2164
2176
2165 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2177 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2166 problem of excessive CPU usage under *nix and keyboard lag under
2178 problem of excessive CPU usage under *nix and keyboard lag under
2167 win32.
2179 win32.
2168
2180
2169 2006-01-10 *** Released version 0.7.0
2181 2006-01-10 *** Released version 0.7.0
2170
2182
2171 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2183 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2172
2184
2173 * IPython/Release.py (revision): tag version number to 0.7.0,
2185 * IPython/Release.py (revision): tag version number to 0.7.0,
2174 ready for release.
2186 ready for release.
2175
2187
2176 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2188 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2177 it informs the user of the name of the temp. file used. This can
2189 it informs the user of the name of the temp. file used. This can
2178 help if you decide later to reuse that same file, so you know
2190 help if you decide later to reuse that same file, so you know
2179 where to copy the info from.
2191 where to copy the info from.
2180
2192
2181 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2193 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2182
2194
2183 * setup_bdist_egg.py: little script to build an egg. Added
2195 * setup_bdist_egg.py: little script to build an egg. Added
2184 support in the release tools as well.
2196 support in the release tools as well.
2185
2197
2186 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2198 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2187
2199
2188 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2200 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2189 version selection (new -wxversion command line and ipythonrc
2201 version selection (new -wxversion command line and ipythonrc
2190 parameter). Patch contributed by Arnd Baecker
2202 parameter). Patch contributed by Arnd Baecker
2191 <arnd.baecker-AT-web.de>.
2203 <arnd.baecker-AT-web.de>.
2192
2204
2193 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2205 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2194 embedded instances, for variables defined at the interactive
2206 embedded instances, for variables defined at the interactive
2195 prompt of the embedded ipython. Reported by Arnd.
2207 prompt of the embedded ipython. Reported by Arnd.
2196
2208
2197 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2209 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2198 it can be used as a (stateful) toggle, or with a direct parameter.
2210 it can be used as a (stateful) toggle, or with a direct parameter.
2199
2211
2200 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2212 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2201 could be triggered in certain cases and cause the traceback
2213 could be triggered in certain cases and cause the traceback
2202 printer not to work.
2214 printer not to work.
2203
2215
2204 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2216 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2205
2217
2206 * IPython/iplib.py (_should_recompile): Small fix, closes
2218 * IPython/iplib.py (_should_recompile): Small fix, closes
2207 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2219 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2208
2220
2209 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2221 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2210
2222
2211 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2223 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2212 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2224 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2213 Moad for help with tracking it down.
2225 Moad for help with tracking it down.
2214
2226
2215 * IPython/iplib.py (handle_auto): fix autocall handling for
2227 * IPython/iplib.py (handle_auto): fix autocall handling for
2216 objects which support BOTH __getitem__ and __call__ (so that f [x]
2228 objects which support BOTH __getitem__ and __call__ (so that f [x]
2217 is left alone, instead of becoming f([x]) automatically).
2229 is left alone, instead of becoming f([x]) automatically).
2218
2230
2219 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2231 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2220 Ville's patch.
2232 Ville's patch.
2221
2233
2222 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2234 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2223
2235
2224 * IPython/iplib.py (handle_auto): changed autocall semantics to
2236 * IPython/iplib.py (handle_auto): changed autocall semantics to
2225 include 'smart' mode, where the autocall transformation is NOT
2237 include 'smart' mode, where the autocall transformation is NOT
2226 applied if there are no arguments on the line. This allows you to
2238 applied if there are no arguments on the line. This allows you to
2227 just type 'foo' if foo is a callable to see its internal form,
2239 just type 'foo' if foo is a callable to see its internal form,
2228 instead of having it called with no arguments (typically a
2240 instead of having it called with no arguments (typically a
2229 mistake). The old 'full' autocall still exists: for that, you
2241 mistake). The old 'full' autocall still exists: for that, you
2230 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2242 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2231
2243
2232 * IPython/completer.py (Completer.attr_matches): add
2244 * IPython/completer.py (Completer.attr_matches): add
2233 tab-completion support for Enthoughts' traits. After a report by
2245 tab-completion support for Enthoughts' traits. After a report by
2234 Arnd and a patch by Prabhu.
2246 Arnd and a patch by Prabhu.
2235
2247
2236 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2248 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2237
2249
2238 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2250 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2239 Schmolck's patch to fix inspect.getinnerframes().
2251 Schmolck's patch to fix inspect.getinnerframes().
2240
2252
2241 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2253 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2242 for embedded instances, regarding handling of namespaces and items
2254 for embedded instances, regarding handling of namespaces and items
2243 added to the __builtin__ one. Multiple embedded instances and
2255 added to the __builtin__ one. Multiple embedded instances and
2244 recursive embeddings should work better now (though I'm not sure
2256 recursive embeddings should work better now (though I'm not sure
2245 I've got all the corner cases fixed, that code is a bit of a brain
2257 I've got all the corner cases fixed, that code is a bit of a brain
2246 twister).
2258 twister).
2247
2259
2248 * IPython/Magic.py (magic_edit): added support to edit in-memory
2260 * IPython/Magic.py (magic_edit): added support to edit in-memory
2249 macros (automatically creates the necessary temp files). %edit
2261 macros (automatically creates the necessary temp files). %edit
2250 also doesn't return the file contents anymore, it's just noise.
2262 also doesn't return the file contents anymore, it's just noise.
2251
2263
2252 * IPython/completer.py (Completer.attr_matches): revert change to
2264 * IPython/completer.py (Completer.attr_matches): revert change to
2253 complete only on attributes listed in __all__. I realized it
2265 complete only on attributes listed in __all__. I realized it
2254 cripples the tab-completion system as a tool for exploring the
2266 cripples the tab-completion system as a tool for exploring the
2255 internals of unknown libraries (it renders any non-__all__
2267 internals of unknown libraries (it renders any non-__all__
2256 attribute off-limits). I got bit by this when trying to see
2268 attribute off-limits). I got bit by this when trying to see
2257 something inside the dis module.
2269 something inside the dis module.
2258
2270
2259 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2271 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2260
2272
2261 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2273 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2262 namespace for users and extension writers to hold data in. This
2274 namespace for users and extension writers to hold data in. This
2263 follows the discussion in
2275 follows the discussion in
2264 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2276 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2265
2277
2266 * IPython/completer.py (IPCompleter.complete): small patch to help
2278 * IPython/completer.py (IPCompleter.complete): small patch to help
2267 tab-completion under Emacs, after a suggestion by John Barnard
2279 tab-completion under Emacs, after a suggestion by John Barnard
2268 <barnarj-AT-ccf.org>.
2280 <barnarj-AT-ccf.org>.
2269
2281
2270 * IPython/Magic.py (Magic.extract_input_slices): added support for
2282 * IPython/Magic.py (Magic.extract_input_slices): added support for
2271 the slice notation in magics to use N-M to represent numbers N...M
2283 the slice notation in magics to use N-M to represent numbers N...M
2272 (closed endpoints). This is used by %macro and %save.
2284 (closed endpoints). This is used by %macro and %save.
2273
2285
2274 * IPython/completer.py (Completer.attr_matches): for modules which
2286 * IPython/completer.py (Completer.attr_matches): for modules which
2275 define __all__, complete only on those. After a patch by Jeffrey
2287 define __all__, complete only on those. After a patch by Jeffrey
2276 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2288 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2277 speed up this routine.
2289 speed up this routine.
2278
2290
2279 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2291 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2280 don't know if this is the end of it, but the behavior now is
2292 don't know if this is the end of it, but the behavior now is
2281 certainly much more correct. Note that coupled with macros,
2293 certainly much more correct. Note that coupled with macros,
2282 slightly surprising (at first) behavior may occur: a macro will in
2294 slightly surprising (at first) behavior may occur: a macro will in
2283 general expand to multiple lines of input, so upon exiting, the
2295 general expand to multiple lines of input, so upon exiting, the
2284 in/out counters will both be bumped by the corresponding amount
2296 in/out counters will both be bumped by the corresponding amount
2285 (as if the macro's contents had been typed interactively). Typing
2297 (as if the macro's contents had been typed interactively). Typing
2286 %hist will reveal the intermediate (silently processed) lines.
2298 %hist will reveal the intermediate (silently processed) lines.
2287
2299
2288 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2300 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2289 pickle to fail (%run was overwriting __main__ and not restoring
2301 pickle to fail (%run was overwriting __main__ and not restoring
2290 it, but pickle relies on __main__ to operate).
2302 it, but pickle relies on __main__ to operate).
2291
2303
2292 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2304 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2293 using properties, but forgot to make the main InteractiveShell
2305 using properties, but forgot to make the main InteractiveShell
2294 class a new-style class. Properties fail silently, and
2306 class a new-style class. Properties fail silently, and
2295 mysteriously, with old-style class (getters work, but
2307 mysteriously, with old-style class (getters work, but
2296 setters don't do anything).
2308 setters don't do anything).
2297
2309
2298 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2310 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2299
2311
2300 * IPython/Magic.py (magic_history): fix history reporting bug (I
2312 * IPython/Magic.py (magic_history): fix history reporting bug (I
2301 know some nasties are still there, I just can't seem to find a
2313 know some nasties are still there, I just can't seem to find a
2302 reproducible test case to track them down; the input history is
2314 reproducible test case to track them down; the input history is
2303 falling out of sync...)
2315 falling out of sync...)
2304
2316
2305 * IPython/iplib.py (handle_shell_escape): fix bug where both
2317 * IPython/iplib.py (handle_shell_escape): fix bug where both
2306 aliases and system accesses where broken for indented code (such
2318 aliases and system accesses where broken for indented code (such
2307 as loops).
2319 as loops).
2308
2320
2309 * IPython/genutils.py (shell): fix small but critical bug for
2321 * IPython/genutils.py (shell): fix small but critical bug for
2310 win32 system access.
2322 win32 system access.
2311
2323
2312 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2324 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2313
2325
2314 * IPython/iplib.py (showtraceback): remove use of the
2326 * IPython/iplib.py (showtraceback): remove use of the
2315 sys.last_{type/value/traceback} structures, which are non
2327 sys.last_{type/value/traceback} structures, which are non
2316 thread-safe.
2328 thread-safe.
2317 (_prefilter): change control flow to ensure that we NEVER
2329 (_prefilter): change control flow to ensure that we NEVER
2318 introspect objects when autocall is off. This will guarantee that
2330 introspect objects when autocall is off. This will guarantee that
2319 having an input line of the form 'x.y', where access to attribute
2331 having an input line of the form 'x.y', where access to attribute
2320 'y' has side effects, doesn't trigger the side effect TWICE. It
2332 'y' has side effects, doesn't trigger the side effect TWICE. It
2321 is important to note that, with autocall on, these side effects
2333 is important to note that, with autocall on, these side effects
2322 can still happen.
2334 can still happen.
2323 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2335 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2324 trio. IPython offers these three kinds of special calls which are
2336 trio. IPython offers these three kinds of special calls which are
2325 not python code, and it's a good thing to have their call method
2337 not python code, and it's a good thing to have their call method
2326 be accessible as pure python functions (not just special syntax at
2338 be accessible as pure python functions (not just special syntax at
2327 the command line). It gives us a better internal implementation
2339 the command line). It gives us a better internal implementation
2328 structure, as well as exposing these for user scripting more
2340 structure, as well as exposing these for user scripting more
2329 cleanly.
2341 cleanly.
2330
2342
2331 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2343 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2332 file. Now that they'll be more likely to be used with the
2344 file. Now that they'll be more likely to be used with the
2333 persistance system (%store), I want to make sure their module path
2345 persistance system (%store), I want to make sure their module path
2334 doesn't change in the future, so that we don't break things for
2346 doesn't change in the future, so that we don't break things for
2335 users' persisted data.
2347 users' persisted data.
2336
2348
2337 * IPython/iplib.py (autoindent_update): move indentation
2349 * IPython/iplib.py (autoindent_update): move indentation
2338 management into the _text_ processing loop, not the keyboard
2350 management into the _text_ processing loop, not the keyboard
2339 interactive one. This is necessary to correctly process non-typed
2351 interactive one. This is necessary to correctly process non-typed
2340 multiline input (such as macros).
2352 multiline input (such as macros).
2341
2353
2342 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2354 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2343 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2355 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2344 which was producing problems in the resulting manual.
2356 which was producing problems in the resulting manual.
2345 (magic_whos): improve reporting of instances (show their class,
2357 (magic_whos): improve reporting of instances (show their class,
2346 instead of simply printing 'instance' which isn't terribly
2358 instead of simply printing 'instance' which isn't terribly
2347 informative).
2359 informative).
2348
2360
2349 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2361 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2350 (minor mods) to support network shares under win32.
2362 (minor mods) to support network shares under win32.
2351
2363
2352 * IPython/winconsole.py (get_console_size): add new winconsole
2364 * IPython/winconsole.py (get_console_size): add new winconsole
2353 module and fixes to page_dumb() to improve its behavior under
2365 module and fixes to page_dumb() to improve its behavior under
2354 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2366 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2355
2367
2356 * IPython/Magic.py (Macro): simplified Macro class to just
2368 * IPython/Magic.py (Macro): simplified Macro class to just
2357 subclass list. We've had only 2.2 compatibility for a very long
2369 subclass list. We've had only 2.2 compatibility for a very long
2358 time, yet I was still avoiding subclassing the builtin types. No
2370 time, yet I was still avoiding subclassing the builtin types. No
2359 more (I'm also starting to use properties, though I won't shift to
2371 more (I'm also starting to use properties, though I won't shift to
2360 2.3-specific features quite yet).
2372 2.3-specific features quite yet).
2361 (magic_store): added Ville's patch for lightweight variable
2373 (magic_store): added Ville's patch for lightweight variable
2362 persistence, after a request on the user list by Matt Wilkie
2374 persistence, after a request on the user list by Matt Wilkie
2363 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2375 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2364 details.
2376 details.
2365
2377
2366 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2378 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2367 changed the default logfile name from 'ipython.log' to
2379 changed the default logfile name from 'ipython.log' to
2368 'ipython_log.py'. These logs are real python files, and now that
2380 'ipython_log.py'. These logs are real python files, and now that
2369 we have much better multiline support, people are more likely to
2381 we have much better multiline support, people are more likely to
2370 want to use them as such. Might as well name them correctly.
2382 want to use them as such. Might as well name them correctly.
2371
2383
2372 * IPython/Magic.py: substantial cleanup. While we can't stop
2384 * IPython/Magic.py: substantial cleanup. While we can't stop
2373 using magics as mixins, due to the existing customizations 'out
2385 using magics as mixins, due to the existing customizations 'out
2374 there' which rely on the mixin naming conventions, at least I
2386 there' which rely on the mixin naming conventions, at least I
2375 cleaned out all cross-class name usage. So once we are OK with
2387 cleaned out all cross-class name usage. So once we are OK with
2376 breaking compatibility, the two systems can be separated.
2388 breaking compatibility, the two systems can be separated.
2377
2389
2378 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2390 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2379 anymore, and the class is a fair bit less hideous as well. New
2391 anymore, and the class is a fair bit less hideous as well. New
2380 features were also introduced: timestamping of input, and logging
2392 features were also introduced: timestamping of input, and logging
2381 of output results. These are user-visible with the -t and -o
2393 of output results. These are user-visible with the -t and -o
2382 options to %logstart. Closes
2394 options to %logstart. Closes
2383 http://www.scipy.net/roundup/ipython/issue11 and a request by
2395 http://www.scipy.net/roundup/ipython/issue11 and a request by
2384 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2396 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2385
2397
2386 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2398 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2387
2399
2388 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2400 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2389 better handle backslashes in paths. See the thread 'More Windows
2401 better handle backslashes in paths. See the thread 'More Windows
2390 questions part 2 - \/ characters revisited' on the iypthon user
2402 questions part 2 - \/ characters revisited' on the iypthon user
2391 list:
2403 list:
2392 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2404 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2393
2405
2394 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2406 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2395
2407
2396 (InteractiveShell.__init__): change threaded shells to not use the
2408 (InteractiveShell.__init__): change threaded shells to not use the
2397 ipython crash handler. This was causing more problems than not,
2409 ipython crash handler. This was causing more problems than not,
2398 as exceptions in the main thread (GUI code, typically) would
2410 as exceptions in the main thread (GUI code, typically) would
2399 always show up as a 'crash', when they really weren't.
2411 always show up as a 'crash', when they really weren't.
2400
2412
2401 The colors and exception mode commands (%colors/%xmode) have been
2413 The colors and exception mode commands (%colors/%xmode) have been
2402 synchronized to also take this into account, so users can get
2414 synchronized to also take this into account, so users can get
2403 verbose exceptions for their threaded code as well. I also added
2415 verbose exceptions for their threaded code as well. I also added
2404 support for activating pdb inside this exception handler as well,
2416 support for activating pdb inside this exception handler as well,
2405 so now GUI authors can use IPython's enhanced pdb at runtime.
2417 so now GUI authors can use IPython's enhanced pdb at runtime.
2406
2418
2407 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2419 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2408 true by default, and add it to the shipped ipythonrc file. Since
2420 true by default, and add it to the shipped ipythonrc file. Since
2409 this asks the user before proceeding, I think it's OK to make it
2421 this asks the user before proceeding, I think it's OK to make it
2410 true by default.
2422 true by default.
2411
2423
2412 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2424 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2413 of the previous special-casing of input in the eval loop. I think
2425 of the previous special-casing of input in the eval loop. I think
2414 this is cleaner, as they really are commands and shouldn't have
2426 this is cleaner, as they really are commands and shouldn't have
2415 a special role in the middle of the core code.
2427 a special role in the middle of the core code.
2416
2428
2417 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2429 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2418
2430
2419 * IPython/iplib.py (edit_syntax_error): added support for
2431 * IPython/iplib.py (edit_syntax_error): added support for
2420 automatically reopening the editor if the file had a syntax error
2432 automatically reopening the editor if the file had a syntax error
2421 in it. Thanks to scottt who provided the patch at:
2433 in it. Thanks to scottt who provided the patch at:
2422 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2434 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2423 version committed).
2435 version committed).
2424
2436
2425 * IPython/iplib.py (handle_normal): add suport for multi-line
2437 * IPython/iplib.py (handle_normal): add suport for multi-line
2426 input with emtpy lines. This fixes
2438 input with emtpy lines. This fixes
2427 http://www.scipy.net/roundup/ipython/issue43 and a similar
2439 http://www.scipy.net/roundup/ipython/issue43 and a similar
2428 discussion on the user list.
2440 discussion on the user list.
2429
2441
2430 WARNING: a behavior change is necessarily introduced to support
2442 WARNING: a behavior change is necessarily introduced to support
2431 blank lines: now a single blank line with whitespace does NOT
2443 blank lines: now a single blank line with whitespace does NOT
2432 break the input loop, which means that when autoindent is on, by
2444 break the input loop, which means that when autoindent is on, by
2433 default hitting return on the next (indented) line does NOT exit.
2445 default hitting return on the next (indented) line does NOT exit.
2434
2446
2435 Instead, to exit a multiline input you can either have:
2447 Instead, to exit a multiline input you can either have:
2436
2448
2437 - TWO whitespace lines (just hit return again), or
2449 - TWO whitespace lines (just hit return again), or
2438 - a single whitespace line of a different length than provided
2450 - a single whitespace line of a different length than provided
2439 by the autoindent (add or remove a space).
2451 by the autoindent (add or remove a space).
2440
2452
2441 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2453 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2442 module to better organize all readline-related functionality.
2454 module to better organize all readline-related functionality.
2443 I've deleted FlexCompleter and put all completion clases here.
2455 I've deleted FlexCompleter and put all completion clases here.
2444
2456
2445 * IPython/iplib.py (raw_input): improve indentation management.
2457 * IPython/iplib.py (raw_input): improve indentation management.
2446 It is now possible to paste indented code with autoindent on, and
2458 It is now possible to paste indented code with autoindent on, and
2447 the code is interpreted correctly (though it still looks bad on
2459 the code is interpreted correctly (though it still looks bad on
2448 screen, due to the line-oriented nature of ipython).
2460 screen, due to the line-oriented nature of ipython).
2449 (MagicCompleter.complete): change behavior so that a TAB key on an
2461 (MagicCompleter.complete): change behavior so that a TAB key on an
2450 otherwise empty line actually inserts a tab, instead of completing
2462 otherwise empty line actually inserts a tab, instead of completing
2451 on the entire global namespace. This makes it easier to use the
2463 on the entire global namespace. This makes it easier to use the
2452 TAB key for indentation. After a request by Hans Meine
2464 TAB key for indentation. After a request by Hans Meine
2453 <hans_meine-AT-gmx.net>
2465 <hans_meine-AT-gmx.net>
2454 (_prefilter): add support so that typing plain 'exit' or 'quit'
2466 (_prefilter): add support so that typing plain 'exit' or 'quit'
2455 does a sensible thing. Originally I tried to deviate as little as
2467 does a sensible thing. Originally I tried to deviate as little as
2456 possible from the default python behavior, but even that one may
2468 possible from the default python behavior, but even that one may
2457 change in this direction (thread on python-dev to that effect).
2469 change in this direction (thread on python-dev to that effect).
2458 Regardless, ipython should do the right thing even if CPython's
2470 Regardless, ipython should do the right thing even if CPython's
2459 '>>>' prompt doesn't.
2471 '>>>' prompt doesn't.
2460 (InteractiveShell): removed subclassing code.InteractiveConsole
2472 (InteractiveShell): removed subclassing code.InteractiveConsole
2461 class. By now we'd overridden just about all of its methods: I've
2473 class. By now we'd overridden just about all of its methods: I've
2462 copied the remaining two over, and now ipython is a standalone
2474 copied the remaining two over, and now ipython is a standalone
2463 class. This will provide a clearer picture for the chainsaw
2475 class. This will provide a clearer picture for the chainsaw
2464 branch refactoring.
2476 branch refactoring.
2465
2477
2466 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2478 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2467
2479
2468 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2480 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2469 failures for objects which break when dir() is called on them.
2481 failures for objects which break when dir() is called on them.
2470
2482
2471 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2483 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2472 distinct local and global namespaces in the completer API. This
2484 distinct local and global namespaces in the completer API. This
2473 change allows us to properly handle completion with distinct
2485 change allows us to properly handle completion with distinct
2474 scopes, including in embedded instances (this had never really
2486 scopes, including in embedded instances (this had never really
2475 worked correctly).
2487 worked correctly).
2476
2488
2477 Note: this introduces a change in the constructor for
2489 Note: this introduces a change in the constructor for
2478 MagicCompleter, as a new global_namespace parameter is now the
2490 MagicCompleter, as a new global_namespace parameter is now the
2479 second argument (the others were bumped one position).
2491 second argument (the others were bumped one position).
2480
2492
2481 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2493 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2482
2494
2483 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2495 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2484 embedded instances (which can be done now thanks to Vivian's
2496 embedded instances (which can be done now thanks to Vivian's
2485 frame-handling fixes for pdb).
2497 frame-handling fixes for pdb).
2486 (InteractiveShell.__init__): Fix namespace handling problem in
2498 (InteractiveShell.__init__): Fix namespace handling problem in
2487 embedded instances. We were overwriting __main__ unconditionally,
2499 embedded instances. We were overwriting __main__ unconditionally,
2488 and this should only be done for 'full' (non-embedded) IPython;
2500 and this should only be done for 'full' (non-embedded) IPython;
2489 embedded instances must respect the caller's __main__. Thanks to
2501 embedded instances must respect the caller's __main__. Thanks to
2490 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2502 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2491
2503
2492 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2504 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2493
2505
2494 * setup.py: added download_url to setup(). This registers the
2506 * setup.py: added download_url to setup(). This registers the
2495 download address at PyPI, which is not only useful to humans
2507 download address at PyPI, which is not only useful to humans
2496 browsing the site, but is also picked up by setuptools (the Eggs
2508 browsing the site, but is also picked up by setuptools (the Eggs
2497 machinery). Thanks to Ville and R. Kern for the info/discussion
2509 machinery). Thanks to Ville and R. Kern for the info/discussion
2498 on this.
2510 on this.
2499
2511
2500 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2512 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2501
2513
2502 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2514 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2503 This brings a lot of nice functionality to the pdb mode, which now
2515 This brings a lot of nice functionality to the pdb mode, which now
2504 has tab-completion, syntax highlighting, and better stack handling
2516 has tab-completion, syntax highlighting, and better stack handling
2505 than before. Many thanks to Vivian De Smedt
2517 than before. Many thanks to Vivian De Smedt
2506 <vivian-AT-vdesmedt.com> for the original patches.
2518 <vivian-AT-vdesmedt.com> for the original patches.
2507
2519
2508 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2520 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2509
2521
2510 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2522 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2511 sequence to consistently accept the banner argument. The
2523 sequence to consistently accept the banner argument. The
2512 inconsistency was tripping SAGE, thanks to Gary Zablackis
2524 inconsistency was tripping SAGE, thanks to Gary Zablackis
2513 <gzabl-AT-yahoo.com> for the report.
2525 <gzabl-AT-yahoo.com> for the report.
2514
2526
2515 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2527 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2516
2528
2517 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2529 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2518 Fix bug where a naked 'alias' call in the ipythonrc file would
2530 Fix bug where a naked 'alias' call in the ipythonrc file would
2519 cause a crash. Bug reported by Jorgen Stenarson.
2531 cause a crash. Bug reported by Jorgen Stenarson.
2520
2532
2521 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2533 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2522
2534
2523 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2535 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2524 startup time.
2536 startup time.
2525
2537
2526 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2538 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2527 instances had introduced a bug with globals in normal code. Now
2539 instances had introduced a bug with globals in normal code. Now
2528 it's working in all cases.
2540 it's working in all cases.
2529
2541
2530 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2542 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2531 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2543 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2532 has been introduced to set the default case sensitivity of the
2544 has been introduced to set the default case sensitivity of the
2533 searches. Users can still select either mode at runtime on a
2545 searches. Users can still select either mode at runtime on a
2534 per-search basis.
2546 per-search basis.
2535
2547
2536 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2548 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2537
2549
2538 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2550 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2539 attributes in wildcard searches for subclasses. Modified version
2551 attributes in wildcard searches for subclasses. Modified version
2540 of a patch by Jorgen.
2552 of a patch by Jorgen.
2541
2553
2542 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2554 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2543
2555
2544 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2556 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2545 embedded instances. I added a user_global_ns attribute to the
2557 embedded instances. I added a user_global_ns attribute to the
2546 InteractiveShell class to handle this.
2558 InteractiveShell class to handle this.
2547
2559
2548 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2560 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2549
2561
2550 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2562 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2551 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2563 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2552 (reported under win32, but may happen also in other platforms).
2564 (reported under win32, but may happen also in other platforms).
2553 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2565 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2554
2566
2555 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2567 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2556
2568
2557 * IPython/Magic.py (magic_psearch): new support for wildcard
2569 * IPython/Magic.py (magic_psearch): new support for wildcard
2558 patterns. Now, typing ?a*b will list all names which begin with a
2570 patterns. Now, typing ?a*b will list all names which begin with a
2559 and end in b, for example. The %psearch magic has full
2571 and end in b, for example. The %psearch magic has full
2560 docstrings. Many thanks to JΓΆrgen Stenarson
2572 docstrings. Many thanks to JΓΆrgen Stenarson
2561 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2573 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2562 implementing this functionality.
2574 implementing this functionality.
2563
2575
2564 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2576 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2565
2577
2566 * Manual: fixed long-standing annoyance of double-dashes (as in
2578 * Manual: fixed long-standing annoyance of double-dashes (as in
2567 --prefix=~, for example) being stripped in the HTML version. This
2579 --prefix=~, for example) being stripped in the HTML version. This
2568 is a latex2html bug, but a workaround was provided. Many thanks
2580 is a latex2html bug, but a workaround was provided. Many thanks
2569 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2581 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2570 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2582 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2571 rolling. This seemingly small issue had tripped a number of users
2583 rolling. This seemingly small issue had tripped a number of users
2572 when first installing, so I'm glad to see it gone.
2584 when first installing, so I'm glad to see it gone.
2573
2585
2574 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2586 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2575
2587
2576 * IPython/Extensions/numeric_formats.py: fix missing import,
2588 * IPython/Extensions/numeric_formats.py: fix missing import,
2577 reported by Stephen Walton.
2589 reported by Stephen Walton.
2578
2590
2579 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2591 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2580
2592
2581 * IPython/demo.py: finish demo module, fully documented now.
2593 * IPython/demo.py: finish demo module, fully documented now.
2582
2594
2583 * IPython/genutils.py (file_read): simple little utility to read a
2595 * IPython/genutils.py (file_read): simple little utility to read a
2584 file and ensure it's closed afterwards.
2596 file and ensure it's closed afterwards.
2585
2597
2586 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2598 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2587
2599
2588 * IPython/demo.py (Demo.__init__): added support for individually
2600 * IPython/demo.py (Demo.__init__): added support for individually
2589 tagging blocks for automatic execution.
2601 tagging blocks for automatic execution.
2590
2602
2591 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2603 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2592 syntax-highlighted python sources, requested by John.
2604 syntax-highlighted python sources, requested by John.
2593
2605
2594 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2606 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2595
2607
2596 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2608 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2597 finishing.
2609 finishing.
2598
2610
2599 * IPython/genutils.py (shlex_split): moved from Magic to here,
2611 * IPython/genutils.py (shlex_split): moved from Magic to here,
2600 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2612 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2601
2613
2602 * IPython/demo.py (Demo.__init__): added support for silent
2614 * IPython/demo.py (Demo.__init__): added support for silent
2603 blocks, improved marks as regexps, docstrings written.
2615 blocks, improved marks as regexps, docstrings written.
2604 (Demo.__init__): better docstring, added support for sys.argv.
2616 (Demo.__init__): better docstring, added support for sys.argv.
2605
2617
2606 * IPython/genutils.py (marquee): little utility used by the demo
2618 * IPython/genutils.py (marquee): little utility used by the demo
2607 code, handy in general.
2619 code, handy in general.
2608
2620
2609 * IPython/demo.py (Demo.__init__): new class for interactive
2621 * IPython/demo.py (Demo.__init__): new class for interactive
2610 demos. Not documented yet, I just wrote it in a hurry for
2622 demos. Not documented yet, I just wrote it in a hurry for
2611 scipy'05. Will docstring later.
2623 scipy'05. Will docstring later.
2612
2624
2613 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2625 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2614
2626
2615 * IPython/Shell.py (sigint_handler): Drastic simplification which
2627 * IPython/Shell.py (sigint_handler): Drastic simplification which
2616 also seems to make Ctrl-C work correctly across threads! This is
2628 also seems to make Ctrl-C work correctly across threads! This is
2617 so simple, that I can't beleive I'd missed it before. Needs more
2629 so simple, that I can't beleive I'd missed it before. Needs more
2618 testing, though.
2630 testing, though.
2619 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2631 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2620 like this before...
2632 like this before...
2621
2633
2622 * IPython/genutils.py (get_home_dir): add protection against
2634 * IPython/genutils.py (get_home_dir): add protection against
2623 non-dirs in win32 registry.
2635 non-dirs in win32 registry.
2624
2636
2625 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2637 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2626 bug where dict was mutated while iterating (pysh crash).
2638 bug where dict was mutated while iterating (pysh crash).
2627
2639
2628 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2640 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2629
2641
2630 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2642 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2631 spurious newlines added by this routine. After a report by
2643 spurious newlines added by this routine. After a report by
2632 F. Mantegazza.
2644 F. Mantegazza.
2633
2645
2634 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2646 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2635
2647
2636 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2648 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2637 calls. These were a leftover from the GTK 1.x days, and can cause
2649 calls. These were a leftover from the GTK 1.x days, and can cause
2638 problems in certain cases (after a report by John Hunter).
2650 problems in certain cases (after a report by John Hunter).
2639
2651
2640 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2652 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2641 os.getcwd() fails at init time. Thanks to patch from David Remahl
2653 os.getcwd() fails at init time. Thanks to patch from David Remahl
2642 <chmod007-AT-mac.com>.
2654 <chmod007-AT-mac.com>.
2643 (InteractiveShell.__init__): prevent certain special magics from
2655 (InteractiveShell.__init__): prevent certain special magics from
2644 being shadowed by aliases. Closes
2656 being shadowed by aliases. Closes
2645 http://www.scipy.net/roundup/ipython/issue41.
2657 http://www.scipy.net/roundup/ipython/issue41.
2646
2658
2647 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2659 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2648
2660
2649 * IPython/iplib.py (InteractiveShell.complete): Added new
2661 * IPython/iplib.py (InteractiveShell.complete): Added new
2650 top-level completion method to expose the completion mechanism
2662 top-level completion method to expose the completion mechanism
2651 beyond readline-based environments.
2663 beyond readline-based environments.
2652
2664
2653 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2665 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2654
2666
2655 * tools/ipsvnc (svnversion): fix svnversion capture.
2667 * tools/ipsvnc (svnversion): fix svnversion capture.
2656
2668
2657 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2669 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2658 attribute to self, which was missing. Before, it was set by a
2670 attribute to self, which was missing. Before, it was set by a
2659 routine which in certain cases wasn't being called, so the
2671 routine which in certain cases wasn't being called, so the
2660 instance could end up missing the attribute. This caused a crash.
2672 instance could end up missing the attribute. This caused a crash.
2661 Closes http://www.scipy.net/roundup/ipython/issue40.
2673 Closes http://www.scipy.net/roundup/ipython/issue40.
2662
2674
2663 2005-08-16 Fernando Perez <fperez@colorado.edu>
2675 2005-08-16 Fernando Perez <fperez@colorado.edu>
2664
2676
2665 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2677 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2666 contains non-string attribute. Closes
2678 contains non-string attribute. Closes
2667 http://www.scipy.net/roundup/ipython/issue38.
2679 http://www.scipy.net/roundup/ipython/issue38.
2668
2680
2669 2005-08-14 Fernando Perez <fperez@colorado.edu>
2681 2005-08-14 Fernando Perez <fperez@colorado.edu>
2670
2682
2671 * tools/ipsvnc: Minor improvements, to add changeset info.
2683 * tools/ipsvnc: Minor improvements, to add changeset info.
2672
2684
2673 2005-08-12 Fernando Perez <fperez@colorado.edu>
2685 2005-08-12 Fernando Perez <fperez@colorado.edu>
2674
2686
2675 * IPython/iplib.py (runsource): remove self.code_to_run_src
2687 * IPython/iplib.py (runsource): remove self.code_to_run_src
2676 attribute. I realized this is nothing more than
2688 attribute. I realized this is nothing more than
2677 '\n'.join(self.buffer), and having the same data in two different
2689 '\n'.join(self.buffer), and having the same data in two different
2678 places is just asking for synchronization bugs. This may impact
2690 places is just asking for synchronization bugs. This may impact
2679 people who have custom exception handlers, so I need to warn
2691 people who have custom exception handlers, so I need to warn
2680 ipython-dev about it (F. Mantegazza may use them).
2692 ipython-dev about it (F. Mantegazza may use them).
2681
2693
2682 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2694 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2683
2695
2684 * IPython/genutils.py: fix 2.2 compatibility (generators)
2696 * IPython/genutils.py: fix 2.2 compatibility (generators)
2685
2697
2686 2005-07-18 Fernando Perez <fperez@colorado.edu>
2698 2005-07-18 Fernando Perez <fperez@colorado.edu>
2687
2699
2688 * IPython/genutils.py (get_home_dir): fix to help users with
2700 * IPython/genutils.py (get_home_dir): fix to help users with
2689 invalid $HOME under win32.
2701 invalid $HOME under win32.
2690
2702
2691 2005-07-17 Fernando Perez <fperez@colorado.edu>
2703 2005-07-17 Fernando Perez <fperez@colorado.edu>
2692
2704
2693 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2705 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2694 some old hacks and clean up a bit other routines; code should be
2706 some old hacks and clean up a bit other routines; code should be
2695 simpler and a bit faster.
2707 simpler and a bit faster.
2696
2708
2697 * IPython/iplib.py (interact): removed some last-resort attempts
2709 * IPython/iplib.py (interact): removed some last-resort attempts
2698 to survive broken stdout/stderr. That code was only making it
2710 to survive broken stdout/stderr. That code was only making it
2699 harder to abstract out the i/o (necessary for gui integration),
2711 harder to abstract out the i/o (necessary for gui integration),
2700 and the crashes it could prevent were extremely rare in practice
2712 and the crashes it could prevent were extremely rare in practice
2701 (besides being fully user-induced in a pretty violent manner).
2713 (besides being fully user-induced in a pretty violent manner).
2702
2714
2703 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2715 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2704 Nothing major yet, but the code is simpler to read; this should
2716 Nothing major yet, but the code is simpler to read; this should
2705 make it easier to do more serious modifications in the future.
2717 make it easier to do more serious modifications in the future.
2706
2718
2707 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2719 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2708 which broke in .15 (thanks to a report by Ville).
2720 which broke in .15 (thanks to a report by Ville).
2709
2721
2710 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2722 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2711 be quite correct, I know next to nothing about unicode). This
2723 be quite correct, I know next to nothing about unicode). This
2712 will allow unicode strings to be used in prompts, amongst other
2724 will allow unicode strings to be used in prompts, amongst other
2713 cases. It also will prevent ipython from crashing when unicode
2725 cases. It also will prevent ipython from crashing when unicode
2714 shows up unexpectedly in many places. If ascii encoding fails, we
2726 shows up unexpectedly in many places. If ascii encoding fails, we
2715 assume utf_8. Currently the encoding is not a user-visible
2727 assume utf_8. Currently the encoding is not a user-visible
2716 setting, though it could be made so if there is demand for it.
2728 setting, though it could be made so if there is demand for it.
2717
2729
2718 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2730 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2719
2731
2720 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2732 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2721
2733
2722 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2734 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2723
2735
2724 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2736 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2725 code can work transparently for 2.2/2.3.
2737 code can work transparently for 2.2/2.3.
2726
2738
2727 2005-07-16 Fernando Perez <fperez@colorado.edu>
2739 2005-07-16 Fernando Perez <fperez@colorado.edu>
2728
2740
2729 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2741 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2730 out of the color scheme table used for coloring exception
2742 out of the color scheme table used for coloring exception
2731 tracebacks. This allows user code to add new schemes at runtime.
2743 tracebacks. This allows user code to add new schemes at runtime.
2732 This is a minimally modified version of the patch at
2744 This is a minimally modified version of the patch at
2733 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2745 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2734 for the contribution.
2746 for the contribution.
2735
2747
2736 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2748 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2737 slightly modified version of the patch in
2749 slightly modified version of the patch in
2738 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2750 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2739 to remove the previous try/except solution (which was costlier).
2751 to remove the previous try/except solution (which was costlier).
2740 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2752 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2741
2753
2742 2005-06-08 Fernando Perez <fperez@colorado.edu>
2754 2005-06-08 Fernando Perez <fperez@colorado.edu>
2743
2755
2744 * IPython/iplib.py (write/write_err): Add methods to abstract all
2756 * IPython/iplib.py (write/write_err): Add methods to abstract all
2745 I/O a bit more.
2757 I/O a bit more.
2746
2758
2747 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2759 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2748 warning, reported by Aric Hagberg, fix by JD Hunter.
2760 warning, reported by Aric Hagberg, fix by JD Hunter.
2749
2761
2750 2005-06-02 *** Released version 0.6.15
2762 2005-06-02 *** Released version 0.6.15
2751
2763
2752 2005-06-01 Fernando Perez <fperez@colorado.edu>
2764 2005-06-01 Fernando Perez <fperez@colorado.edu>
2753
2765
2754 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2766 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2755 tab-completion of filenames within open-quoted strings. Note that
2767 tab-completion of filenames within open-quoted strings. Note that
2756 this requires that in ~/.ipython/ipythonrc, users change the
2768 this requires that in ~/.ipython/ipythonrc, users change the
2757 readline delimiters configuration to read:
2769 readline delimiters configuration to read:
2758
2770
2759 readline_remove_delims -/~
2771 readline_remove_delims -/~
2760
2772
2761
2773
2762 2005-05-31 *** Released version 0.6.14
2774 2005-05-31 *** Released version 0.6.14
2763
2775
2764 2005-05-29 Fernando Perez <fperez@colorado.edu>
2776 2005-05-29 Fernando Perez <fperez@colorado.edu>
2765
2777
2766 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2778 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2767 with files not on the filesystem. Reported by Eliyahu Sandler
2779 with files not on the filesystem. Reported by Eliyahu Sandler
2768 <eli@gondolin.net>
2780 <eli@gondolin.net>
2769
2781
2770 2005-05-22 Fernando Perez <fperez@colorado.edu>
2782 2005-05-22 Fernando Perez <fperez@colorado.edu>
2771
2783
2772 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2784 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2773 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2785 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2774
2786
2775 2005-05-19 Fernando Perez <fperez@colorado.edu>
2787 2005-05-19 Fernando Perez <fperez@colorado.edu>
2776
2788
2777 * IPython/iplib.py (safe_execfile): close a file which could be
2789 * IPython/iplib.py (safe_execfile): close a file which could be
2778 left open (causing problems in win32, which locks open files).
2790 left open (causing problems in win32, which locks open files).
2779 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2791 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2780
2792
2781 2005-05-18 Fernando Perez <fperez@colorado.edu>
2793 2005-05-18 Fernando Perez <fperez@colorado.edu>
2782
2794
2783 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2795 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2784 keyword arguments correctly to safe_execfile().
2796 keyword arguments correctly to safe_execfile().
2785
2797
2786 2005-05-13 Fernando Perez <fperez@colorado.edu>
2798 2005-05-13 Fernando Perez <fperez@colorado.edu>
2787
2799
2788 * ipython.1: Added info about Qt to manpage, and threads warning
2800 * ipython.1: Added info about Qt to manpage, and threads warning
2789 to usage page (invoked with --help).
2801 to usage page (invoked with --help).
2790
2802
2791 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2803 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2792 new matcher (it goes at the end of the priority list) to do
2804 new matcher (it goes at the end of the priority list) to do
2793 tab-completion on named function arguments. Submitted by George
2805 tab-completion on named function arguments. Submitted by George
2794 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2806 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2795 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2807 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2796 for more details.
2808 for more details.
2797
2809
2798 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2810 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2799 SystemExit exceptions in the script being run. Thanks to a report
2811 SystemExit exceptions in the script being run. Thanks to a report
2800 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2812 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2801 producing very annoying behavior when running unit tests.
2813 producing very annoying behavior when running unit tests.
2802
2814
2803 2005-05-12 Fernando Perez <fperez@colorado.edu>
2815 2005-05-12 Fernando Perez <fperez@colorado.edu>
2804
2816
2805 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2817 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2806 which I'd broken (again) due to a changed regexp. In the process,
2818 which I'd broken (again) due to a changed regexp. In the process,
2807 added ';' as an escape to auto-quote the whole line without
2819 added ';' as an escape to auto-quote the whole line without
2808 splitting its arguments. Thanks to a report by Jerry McRae
2820 splitting its arguments. Thanks to a report by Jerry McRae
2809 <qrs0xyc02-AT-sneakemail.com>.
2821 <qrs0xyc02-AT-sneakemail.com>.
2810
2822
2811 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2823 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2812 possible crashes caused by a TokenError. Reported by Ed Schofield
2824 possible crashes caused by a TokenError. Reported by Ed Schofield
2813 <schofield-AT-ftw.at>.
2825 <schofield-AT-ftw.at>.
2814
2826
2815 2005-05-06 Fernando Perez <fperez@colorado.edu>
2827 2005-05-06 Fernando Perez <fperez@colorado.edu>
2816
2828
2817 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2829 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2818
2830
2819 2005-04-29 Fernando Perez <fperez@colorado.edu>
2831 2005-04-29 Fernando Perez <fperez@colorado.edu>
2820
2832
2821 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2833 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2822 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2834 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2823 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2835 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2824 which provides support for Qt interactive usage (similar to the
2836 which provides support for Qt interactive usage (similar to the
2825 existing one for WX and GTK). This had been often requested.
2837 existing one for WX and GTK). This had been often requested.
2826
2838
2827 2005-04-14 *** Released version 0.6.13
2839 2005-04-14 *** Released version 0.6.13
2828
2840
2829 2005-04-08 Fernando Perez <fperez@colorado.edu>
2841 2005-04-08 Fernando Perez <fperez@colorado.edu>
2830
2842
2831 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2843 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2832 from _ofind, which gets called on almost every input line. Now,
2844 from _ofind, which gets called on almost every input line. Now,
2833 we only try to get docstrings if they are actually going to be
2845 we only try to get docstrings if they are actually going to be
2834 used (the overhead of fetching unnecessary docstrings can be
2846 used (the overhead of fetching unnecessary docstrings can be
2835 noticeable for certain objects, such as Pyro proxies).
2847 noticeable for certain objects, such as Pyro proxies).
2836
2848
2837 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2849 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2838 for completers. For some reason I had been passing them the state
2850 for completers. For some reason I had been passing them the state
2839 variable, which completers never actually need, and was in
2851 variable, which completers never actually need, and was in
2840 conflict with the rlcompleter API. Custom completers ONLY need to
2852 conflict with the rlcompleter API. Custom completers ONLY need to
2841 take the text parameter.
2853 take the text parameter.
2842
2854
2843 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2855 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2844 work correctly in pysh. I've also moved all the logic which used
2856 work correctly in pysh. I've also moved all the logic which used
2845 to be in pysh.py here, which will prevent problems with future
2857 to be in pysh.py here, which will prevent problems with future
2846 upgrades. However, this time I must warn users to update their
2858 upgrades. However, this time I must warn users to update their
2847 pysh profile to include the line
2859 pysh profile to include the line
2848
2860
2849 import_all IPython.Extensions.InterpreterExec
2861 import_all IPython.Extensions.InterpreterExec
2850
2862
2851 because otherwise things won't work for them. They MUST also
2863 because otherwise things won't work for them. They MUST also
2852 delete pysh.py and the line
2864 delete pysh.py and the line
2853
2865
2854 execfile pysh.py
2866 execfile pysh.py
2855
2867
2856 from their ipythonrc-pysh.
2868 from their ipythonrc-pysh.
2857
2869
2858 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2870 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2859 robust in the face of objects whose dir() returns non-strings
2871 robust in the face of objects whose dir() returns non-strings
2860 (which it shouldn't, but some broken libs like ITK do). Thanks to
2872 (which it shouldn't, but some broken libs like ITK do). Thanks to
2861 a patch by John Hunter (implemented differently, though). Also
2873 a patch by John Hunter (implemented differently, though). Also
2862 minor improvements by using .extend instead of + on lists.
2874 minor improvements by using .extend instead of + on lists.
2863
2875
2864 * pysh.py:
2876 * pysh.py:
2865
2877
2866 2005-04-06 Fernando Perez <fperez@colorado.edu>
2878 2005-04-06 Fernando Perez <fperez@colorado.edu>
2867
2879
2868 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2880 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2869 by default, so that all users benefit from it. Those who don't
2881 by default, so that all users benefit from it. Those who don't
2870 want it can still turn it off.
2882 want it can still turn it off.
2871
2883
2872 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2884 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2873 config file, I'd forgotten about this, so users were getting it
2885 config file, I'd forgotten about this, so users were getting it
2874 off by default.
2886 off by default.
2875
2887
2876 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2888 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2877 consistency. Now magics can be called in multiline statements,
2889 consistency. Now magics can be called in multiline statements,
2878 and python variables can be expanded in magic calls via $var.
2890 and python variables can be expanded in magic calls via $var.
2879 This makes the magic system behave just like aliases or !system
2891 This makes the magic system behave just like aliases or !system
2880 calls.
2892 calls.
2881
2893
2882 2005-03-28 Fernando Perez <fperez@colorado.edu>
2894 2005-03-28 Fernando Perez <fperez@colorado.edu>
2883
2895
2884 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2896 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2885 expensive string additions for building command. Add support for
2897 expensive string additions for building command. Add support for
2886 trailing ';' when autocall is used.
2898 trailing ';' when autocall is used.
2887
2899
2888 2005-03-26 Fernando Perez <fperez@colorado.edu>
2900 2005-03-26 Fernando Perez <fperez@colorado.edu>
2889
2901
2890 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2902 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2891 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2903 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2892 ipython.el robust against prompts with any number of spaces
2904 ipython.el robust against prompts with any number of spaces
2893 (including 0) after the ':' character.
2905 (including 0) after the ':' character.
2894
2906
2895 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2907 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2896 continuation prompt, which misled users to think the line was
2908 continuation prompt, which misled users to think the line was
2897 already indented. Closes debian Bug#300847, reported to me by
2909 already indented. Closes debian Bug#300847, reported to me by
2898 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2910 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2899
2911
2900 2005-03-23 Fernando Perez <fperez@colorado.edu>
2912 2005-03-23 Fernando Perez <fperez@colorado.edu>
2901
2913
2902 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2914 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2903 properly aligned if they have embedded newlines.
2915 properly aligned if they have embedded newlines.
2904
2916
2905 * IPython/iplib.py (runlines): Add a public method to expose
2917 * IPython/iplib.py (runlines): Add a public method to expose
2906 IPython's code execution machinery, so that users can run strings
2918 IPython's code execution machinery, so that users can run strings
2907 as if they had been typed at the prompt interactively.
2919 as if they had been typed at the prompt interactively.
2908 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2920 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2909 methods which can call the system shell, but with python variable
2921 methods which can call the system shell, but with python variable
2910 expansion. The three such methods are: __IPYTHON__.system,
2922 expansion. The three such methods are: __IPYTHON__.system,
2911 .getoutput and .getoutputerror. These need to be documented in a
2923 .getoutput and .getoutputerror. These need to be documented in a
2912 'public API' section (to be written) of the manual.
2924 'public API' section (to be written) of the manual.
2913
2925
2914 2005-03-20 Fernando Perez <fperez@colorado.edu>
2926 2005-03-20 Fernando Perez <fperez@colorado.edu>
2915
2927
2916 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2928 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2917 for custom exception handling. This is quite powerful, and it
2929 for custom exception handling. This is quite powerful, and it
2918 allows for user-installable exception handlers which can trap
2930 allows for user-installable exception handlers which can trap
2919 custom exceptions at runtime and treat them separately from
2931 custom exceptions at runtime and treat them separately from
2920 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2932 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2921 Mantegazza <mantegazza-AT-ill.fr>.
2933 Mantegazza <mantegazza-AT-ill.fr>.
2922 (InteractiveShell.set_custom_completer): public API function to
2934 (InteractiveShell.set_custom_completer): public API function to
2923 add new completers at runtime.
2935 add new completers at runtime.
2924
2936
2925 2005-03-19 Fernando Perez <fperez@colorado.edu>
2937 2005-03-19 Fernando Perez <fperez@colorado.edu>
2926
2938
2927 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2939 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2928 allow objects which provide their docstrings via non-standard
2940 allow objects which provide their docstrings via non-standard
2929 mechanisms (like Pyro proxies) to still be inspected by ipython's
2941 mechanisms (like Pyro proxies) to still be inspected by ipython's
2930 ? system.
2942 ? system.
2931
2943
2932 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2944 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2933 automatic capture system. I tried quite hard to make it work
2945 automatic capture system. I tried quite hard to make it work
2934 reliably, and simply failed. I tried many combinations with the
2946 reliably, and simply failed. I tried many combinations with the
2935 subprocess module, but eventually nothing worked in all needed
2947 subprocess module, but eventually nothing worked in all needed
2936 cases (not blocking stdin for the child, duplicating stdout
2948 cases (not blocking stdin for the child, duplicating stdout
2937 without blocking, etc). The new %sc/%sx still do capture to these
2949 without blocking, etc). The new %sc/%sx still do capture to these
2938 magical list/string objects which make shell use much more
2950 magical list/string objects which make shell use much more
2939 conveninent, so not all is lost.
2951 conveninent, so not all is lost.
2940
2952
2941 XXX - FIX MANUAL for the change above!
2953 XXX - FIX MANUAL for the change above!
2942
2954
2943 (runsource): I copied code.py's runsource() into ipython to modify
2955 (runsource): I copied code.py's runsource() into ipython to modify
2944 it a bit. Now the code object and source to be executed are
2956 it a bit. Now the code object and source to be executed are
2945 stored in ipython. This makes this info accessible to third-party
2957 stored in ipython. This makes this info accessible to third-party
2946 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2958 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2947 Mantegazza <mantegazza-AT-ill.fr>.
2959 Mantegazza <mantegazza-AT-ill.fr>.
2948
2960
2949 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2961 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2950 history-search via readline (like C-p/C-n). I'd wanted this for a
2962 history-search via readline (like C-p/C-n). I'd wanted this for a
2951 long time, but only recently found out how to do it. For users
2963 long time, but only recently found out how to do it. For users
2952 who already have their ipythonrc files made and want this, just
2964 who already have their ipythonrc files made and want this, just
2953 add:
2965 add:
2954
2966
2955 readline_parse_and_bind "\e[A": history-search-backward
2967 readline_parse_and_bind "\e[A": history-search-backward
2956 readline_parse_and_bind "\e[B": history-search-forward
2968 readline_parse_and_bind "\e[B": history-search-forward
2957
2969
2958 2005-03-18 Fernando Perez <fperez@colorado.edu>
2970 2005-03-18 Fernando Perez <fperez@colorado.edu>
2959
2971
2960 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2972 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2961 LSString and SList classes which allow transparent conversions
2973 LSString and SList classes which allow transparent conversions
2962 between list mode and whitespace-separated string.
2974 between list mode and whitespace-separated string.
2963 (magic_r): Fix recursion problem in %r.
2975 (magic_r): Fix recursion problem in %r.
2964
2976
2965 * IPython/genutils.py (LSString): New class to be used for
2977 * IPython/genutils.py (LSString): New class to be used for
2966 automatic storage of the results of all alias/system calls in _o
2978 automatic storage of the results of all alias/system calls in _o
2967 and _e (stdout/err). These provide a .l/.list attribute which
2979 and _e (stdout/err). These provide a .l/.list attribute which
2968 does automatic splitting on newlines. This means that for most
2980 does automatic splitting on newlines. This means that for most
2969 uses, you'll never need to do capturing of output with %sc/%sx
2981 uses, you'll never need to do capturing of output with %sc/%sx
2970 anymore, since ipython keeps this always done for you. Note that
2982 anymore, since ipython keeps this always done for you. Note that
2971 only the LAST results are stored, the _o/e variables are
2983 only the LAST results are stored, the _o/e variables are
2972 overwritten on each call. If you need to save their contents
2984 overwritten on each call. If you need to save their contents
2973 further, simply bind them to any other name.
2985 further, simply bind them to any other name.
2974
2986
2975 2005-03-17 Fernando Perez <fperez@colorado.edu>
2987 2005-03-17 Fernando Perez <fperez@colorado.edu>
2976
2988
2977 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2989 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2978 prompt namespace handling.
2990 prompt namespace handling.
2979
2991
2980 2005-03-16 Fernando Perez <fperez@colorado.edu>
2992 2005-03-16 Fernando Perez <fperez@colorado.edu>
2981
2993
2982 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2994 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2983 classic prompts to be '>>> ' (final space was missing, and it
2995 classic prompts to be '>>> ' (final space was missing, and it
2984 trips the emacs python mode).
2996 trips the emacs python mode).
2985 (BasePrompt.__str__): Added safe support for dynamic prompt
2997 (BasePrompt.__str__): Added safe support for dynamic prompt
2986 strings. Now you can set your prompt string to be '$x', and the
2998 strings. Now you can set your prompt string to be '$x', and the
2987 value of x will be printed from your interactive namespace. The
2999 value of x will be printed from your interactive namespace. The
2988 interpolation syntax includes the full Itpl support, so
3000 interpolation syntax includes the full Itpl support, so
2989 ${foo()+x+bar()} is a valid prompt string now, and the function
3001 ${foo()+x+bar()} is a valid prompt string now, and the function
2990 calls will be made at runtime.
3002 calls will be made at runtime.
2991
3003
2992 2005-03-15 Fernando Perez <fperez@colorado.edu>
3004 2005-03-15 Fernando Perez <fperez@colorado.edu>
2993
3005
2994 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3006 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2995 avoid name clashes in pylab. %hist still works, it just forwards
3007 avoid name clashes in pylab. %hist still works, it just forwards
2996 the call to %history.
3008 the call to %history.
2997
3009
2998 2005-03-02 *** Released version 0.6.12
3010 2005-03-02 *** Released version 0.6.12
2999
3011
3000 2005-03-02 Fernando Perez <fperez@colorado.edu>
3012 2005-03-02 Fernando Perez <fperez@colorado.edu>
3001
3013
3002 * IPython/iplib.py (handle_magic): log magic calls properly as
3014 * IPython/iplib.py (handle_magic): log magic calls properly as
3003 ipmagic() function calls.
3015 ipmagic() function calls.
3004
3016
3005 * IPython/Magic.py (magic_time): Improved %time to support
3017 * IPython/Magic.py (magic_time): Improved %time to support
3006 statements and provide wall-clock as well as CPU time.
3018 statements and provide wall-clock as well as CPU time.
3007
3019
3008 2005-02-27 Fernando Perez <fperez@colorado.edu>
3020 2005-02-27 Fernando Perez <fperez@colorado.edu>
3009
3021
3010 * IPython/hooks.py: New hooks module, to expose user-modifiable
3022 * IPython/hooks.py: New hooks module, to expose user-modifiable
3011 IPython functionality in a clean manner. For now only the editor
3023 IPython functionality in a clean manner. For now only the editor
3012 hook is actually written, and other thigns which I intend to turn
3024 hook is actually written, and other thigns which I intend to turn
3013 into proper hooks aren't yet there. The display and prefilter
3025 into proper hooks aren't yet there. The display and prefilter
3014 stuff, for example, should be hooks. But at least now the
3026 stuff, for example, should be hooks. But at least now the
3015 framework is in place, and the rest can be moved here with more
3027 framework is in place, and the rest can be moved here with more
3016 time later. IPython had had a .hooks variable for a long time for
3028 time later. IPython had had a .hooks variable for a long time for
3017 this purpose, but I'd never actually used it for anything.
3029 this purpose, but I'd never actually used it for anything.
3018
3030
3019 2005-02-26 Fernando Perez <fperez@colorado.edu>
3031 2005-02-26 Fernando Perez <fperez@colorado.edu>
3020
3032
3021 * IPython/ipmaker.py (make_IPython): make the default ipython
3033 * IPython/ipmaker.py (make_IPython): make the default ipython
3022 directory be called _ipython under win32, to follow more the
3034 directory be called _ipython under win32, to follow more the
3023 naming peculiarities of that platform (where buggy software like
3035 naming peculiarities of that platform (where buggy software like
3024 Visual Sourcesafe breaks with .named directories). Reported by
3036 Visual Sourcesafe breaks with .named directories). Reported by
3025 Ville Vainio.
3037 Ville Vainio.
3026
3038
3027 2005-02-23 Fernando Perez <fperez@colorado.edu>
3039 2005-02-23 Fernando Perez <fperez@colorado.edu>
3028
3040
3029 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3041 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3030 auto_aliases for win32 which were causing problems. Users can
3042 auto_aliases for win32 which were causing problems. Users can
3031 define the ones they personally like.
3043 define the ones they personally like.
3032
3044
3033 2005-02-21 Fernando Perez <fperez@colorado.edu>
3045 2005-02-21 Fernando Perez <fperez@colorado.edu>
3034
3046
3035 * IPython/Magic.py (magic_time): new magic to time execution of
3047 * IPython/Magic.py (magic_time): new magic to time execution of
3036 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3048 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3037
3049
3038 2005-02-19 Fernando Perez <fperez@colorado.edu>
3050 2005-02-19 Fernando Perez <fperez@colorado.edu>
3039
3051
3040 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3052 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3041 into keys (for prompts, for example).
3053 into keys (for prompts, for example).
3042
3054
3043 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3055 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3044 prompts in case users want them. This introduces a small behavior
3056 prompts in case users want them. This introduces a small behavior
3045 change: ipython does not automatically add a space to all prompts
3057 change: ipython does not automatically add a space to all prompts
3046 anymore. To get the old prompts with a space, users should add it
3058 anymore. To get the old prompts with a space, users should add it
3047 manually to their ipythonrc file, so for example prompt_in1 should
3059 manually to their ipythonrc file, so for example prompt_in1 should
3048 now read 'In [\#]: ' instead of 'In [\#]:'.
3060 now read 'In [\#]: ' instead of 'In [\#]:'.
3049 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3061 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3050 file) to control left-padding of secondary prompts.
3062 file) to control left-padding of secondary prompts.
3051
3063
3052 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3064 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3053 the profiler can't be imported. Fix for Debian, which removed
3065 the profiler can't be imported. Fix for Debian, which removed
3054 profile.py because of License issues. I applied a slightly
3066 profile.py because of License issues. I applied a slightly
3055 modified version of the original Debian patch at
3067 modified version of the original Debian patch at
3056 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3068 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3057
3069
3058 2005-02-17 Fernando Perez <fperez@colorado.edu>
3070 2005-02-17 Fernando Perez <fperez@colorado.edu>
3059
3071
3060 * IPython/genutils.py (native_line_ends): Fix bug which would
3072 * IPython/genutils.py (native_line_ends): Fix bug which would
3061 cause improper line-ends under win32 b/c I was not opening files
3073 cause improper line-ends under win32 b/c I was not opening files
3062 in binary mode. Bug report and fix thanks to Ville.
3074 in binary mode. Bug report and fix thanks to Ville.
3063
3075
3064 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3076 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3065 trying to catch spurious foo[1] autocalls. My fix actually broke
3077 trying to catch spurious foo[1] autocalls. My fix actually broke
3066 ',/' autoquote/call with explicit escape (bad regexp).
3078 ',/' autoquote/call with explicit escape (bad regexp).
3067
3079
3068 2005-02-15 *** Released version 0.6.11
3080 2005-02-15 *** Released version 0.6.11
3069
3081
3070 2005-02-14 Fernando Perez <fperez@colorado.edu>
3082 2005-02-14 Fernando Perez <fperez@colorado.edu>
3071
3083
3072 * IPython/background_jobs.py: New background job management
3084 * IPython/background_jobs.py: New background job management
3073 subsystem. This is implemented via a new set of classes, and
3085 subsystem. This is implemented via a new set of classes, and
3074 IPython now provides a builtin 'jobs' object for background job
3086 IPython now provides a builtin 'jobs' object for background job
3075 execution. A convenience %bg magic serves as a lightweight
3087 execution. A convenience %bg magic serves as a lightweight
3076 frontend for starting the more common type of calls. This was
3088 frontend for starting the more common type of calls. This was
3077 inspired by discussions with B. Granger and the BackgroundCommand
3089 inspired by discussions with B. Granger and the BackgroundCommand
3078 class described in the book Python Scripting for Computational
3090 class described in the book Python Scripting for Computational
3079 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3091 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3080 (although ultimately no code from this text was used, as IPython's
3092 (although ultimately no code from this text was used, as IPython's
3081 system is a separate implementation).
3093 system is a separate implementation).
3082
3094
3083 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3095 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3084 to control the completion of single/double underscore names
3096 to control the completion of single/double underscore names
3085 separately. As documented in the example ipytonrc file, the
3097 separately. As documented in the example ipytonrc file, the
3086 readline_omit__names variable can now be set to 2, to omit even
3098 readline_omit__names variable can now be set to 2, to omit even
3087 single underscore names. Thanks to a patch by Brian Wong
3099 single underscore names. Thanks to a patch by Brian Wong
3088 <BrianWong-AT-AirgoNetworks.Com>.
3100 <BrianWong-AT-AirgoNetworks.Com>.
3089 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3101 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3090 be autocalled as foo([1]) if foo were callable. A problem for
3102 be autocalled as foo([1]) if foo were callable. A problem for
3091 things which are both callable and implement __getitem__.
3103 things which are both callable and implement __getitem__.
3092 (init_readline): Fix autoindentation for win32. Thanks to a patch
3104 (init_readline): Fix autoindentation for win32. Thanks to a patch
3093 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3105 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3094
3106
3095 2005-02-12 Fernando Perez <fperez@colorado.edu>
3107 2005-02-12 Fernando Perez <fperez@colorado.edu>
3096
3108
3097 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3109 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3098 which I had written long ago to sort out user error messages which
3110 which I had written long ago to sort out user error messages which
3099 may occur during startup. This seemed like a good idea initially,
3111 may occur during startup. This seemed like a good idea initially,
3100 but it has proven a disaster in retrospect. I don't want to
3112 but it has proven a disaster in retrospect. I don't want to
3101 change much code for now, so my fix is to set the internal 'debug'
3113 change much code for now, so my fix is to set the internal 'debug'
3102 flag to true everywhere, whose only job was precisely to control
3114 flag to true everywhere, whose only job was precisely to control
3103 this subsystem. This closes issue 28 (as well as avoiding all
3115 this subsystem. This closes issue 28 (as well as avoiding all
3104 sorts of strange hangups which occur from time to time).
3116 sorts of strange hangups which occur from time to time).
3105
3117
3106 2005-02-07 Fernando Perez <fperez@colorado.edu>
3118 2005-02-07 Fernando Perez <fperez@colorado.edu>
3107
3119
3108 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3120 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3109 previous call produced a syntax error.
3121 previous call produced a syntax error.
3110
3122
3111 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3123 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3112 classes without constructor.
3124 classes without constructor.
3113
3125
3114 2005-02-06 Fernando Perez <fperez@colorado.edu>
3126 2005-02-06 Fernando Perez <fperez@colorado.edu>
3115
3127
3116 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3128 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3117 completions with the results of each matcher, so we return results
3129 completions with the results of each matcher, so we return results
3118 to the user from all namespaces. This breaks with ipython
3130 to the user from all namespaces. This breaks with ipython
3119 tradition, but I think it's a nicer behavior. Now you get all
3131 tradition, but I think it's a nicer behavior. Now you get all
3120 possible completions listed, from all possible namespaces (python,
3132 possible completions listed, from all possible namespaces (python,
3121 filesystem, magics...) After a request by John Hunter
3133 filesystem, magics...) After a request by John Hunter
3122 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3134 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3123
3135
3124 2005-02-05 Fernando Perez <fperez@colorado.edu>
3136 2005-02-05 Fernando Perez <fperez@colorado.edu>
3125
3137
3126 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3138 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3127 the call had quote characters in it (the quotes were stripped).
3139 the call had quote characters in it (the quotes were stripped).
3128
3140
3129 2005-01-31 Fernando Perez <fperez@colorado.edu>
3141 2005-01-31 Fernando Perez <fperez@colorado.edu>
3130
3142
3131 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3143 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3132 Itpl.itpl() to make the code more robust against psyco
3144 Itpl.itpl() to make the code more robust against psyco
3133 optimizations.
3145 optimizations.
3134
3146
3135 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3147 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3136 of causing an exception. Quicker, cleaner.
3148 of causing an exception. Quicker, cleaner.
3137
3149
3138 2005-01-28 Fernando Perez <fperez@colorado.edu>
3150 2005-01-28 Fernando Perez <fperez@colorado.edu>
3139
3151
3140 * scripts/ipython_win_post_install.py (install): hardcode
3152 * scripts/ipython_win_post_install.py (install): hardcode
3141 sys.prefix+'python.exe' as the executable path. It turns out that
3153 sys.prefix+'python.exe' as the executable path. It turns out that
3142 during the post-installation run, sys.executable resolves to the
3154 during the post-installation run, sys.executable resolves to the
3143 name of the binary installer! I should report this as a distutils
3155 name of the binary installer! I should report this as a distutils
3144 bug, I think. I updated the .10 release with this tiny fix, to
3156 bug, I think. I updated the .10 release with this tiny fix, to
3145 avoid annoying the lists further.
3157 avoid annoying the lists further.
3146
3158
3147 2005-01-27 *** Released version 0.6.10
3159 2005-01-27 *** Released version 0.6.10
3148
3160
3149 2005-01-27 Fernando Perez <fperez@colorado.edu>
3161 2005-01-27 Fernando Perez <fperez@colorado.edu>
3150
3162
3151 * IPython/numutils.py (norm): Added 'inf' as optional name for
3163 * IPython/numutils.py (norm): Added 'inf' as optional name for
3152 L-infinity norm, included references to mathworld.com for vector
3164 L-infinity norm, included references to mathworld.com for vector
3153 norm definitions.
3165 norm definitions.
3154 (amin/amax): added amin/amax for array min/max. Similar to what
3166 (amin/amax): added amin/amax for array min/max. Similar to what
3155 pylab ships with after the recent reorganization of names.
3167 pylab ships with after the recent reorganization of names.
3156 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3168 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3157
3169
3158 * ipython.el: committed Alex's recent fixes and improvements.
3170 * ipython.el: committed Alex's recent fixes and improvements.
3159 Tested with python-mode from CVS, and it looks excellent. Since
3171 Tested with python-mode from CVS, and it looks excellent. Since
3160 python-mode hasn't released anything in a while, I'm temporarily
3172 python-mode hasn't released anything in a while, I'm temporarily
3161 putting a copy of today's CVS (v 4.70) of python-mode in:
3173 putting a copy of today's CVS (v 4.70) of python-mode in:
3162 http://ipython.scipy.org/tmp/python-mode.el
3174 http://ipython.scipy.org/tmp/python-mode.el
3163
3175
3164 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3176 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3165 sys.executable for the executable name, instead of assuming it's
3177 sys.executable for the executable name, instead of assuming it's
3166 called 'python.exe' (the post-installer would have produced broken
3178 called 'python.exe' (the post-installer would have produced broken
3167 setups on systems with a differently named python binary).
3179 setups on systems with a differently named python binary).
3168
3180
3169 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3181 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3170 references to os.linesep, to make the code more
3182 references to os.linesep, to make the code more
3171 platform-independent. This is also part of the win32 coloring
3183 platform-independent. This is also part of the win32 coloring
3172 fixes.
3184 fixes.
3173
3185
3174 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3186 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3175 lines, which actually cause coloring bugs because the length of
3187 lines, which actually cause coloring bugs because the length of
3176 the line is very difficult to correctly compute with embedded
3188 the line is very difficult to correctly compute with embedded
3177 escapes. This was the source of all the coloring problems under
3189 escapes. This was the source of all the coloring problems under
3178 Win32. I think that _finally_, Win32 users have a properly
3190 Win32. I think that _finally_, Win32 users have a properly
3179 working ipython in all respects. This would never have happened
3191 working ipython in all respects. This would never have happened
3180 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3192 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3181
3193
3182 2005-01-26 *** Released version 0.6.9
3194 2005-01-26 *** Released version 0.6.9
3183
3195
3184 2005-01-25 Fernando Perez <fperez@colorado.edu>
3196 2005-01-25 Fernando Perez <fperez@colorado.edu>
3185
3197
3186 * setup.py: finally, we have a true Windows installer, thanks to
3198 * setup.py: finally, we have a true Windows installer, thanks to
3187 the excellent work of Viktor Ransmayr
3199 the excellent work of Viktor Ransmayr
3188 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3200 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3189 Windows users. The setup routine is quite a bit cleaner thanks to
3201 Windows users. The setup routine is quite a bit cleaner thanks to
3190 this, and the post-install script uses the proper functions to
3202 this, and the post-install script uses the proper functions to
3191 allow a clean de-installation using the standard Windows Control
3203 allow a clean de-installation using the standard Windows Control
3192 Panel.
3204 Panel.
3193
3205
3194 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3206 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3195 environment variable under all OSes (including win32) if
3207 environment variable under all OSes (including win32) if
3196 available. This will give consistency to win32 users who have set
3208 available. This will give consistency to win32 users who have set
3197 this variable for any reason. If os.environ['HOME'] fails, the
3209 this variable for any reason. If os.environ['HOME'] fails, the
3198 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3210 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3199
3211
3200 2005-01-24 Fernando Perez <fperez@colorado.edu>
3212 2005-01-24 Fernando Perez <fperez@colorado.edu>
3201
3213
3202 * IPython/numutils.py (empty_like): add empty_like(), similar to
3214 * IPython/numutils.py (empty_like): add empty_like(), similar to
3203 zeros_like() but taking advantage of the new empty() Numeric routine.
3215 zeros_like() but taking advantage of the new empty() Numeric routine.
3204
3216
3205 2005-01-23 *** Released version 0.6.8
3217 2005-01-23 *** Released version 0.6.8
3206
3218
3207 2005-01-22 Fernando Perez <fperez@colorado.edu>
3219 2005-01-22 Fernando Perez <fperez@colorado.edu>
3208
3220
3209 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3221 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3210 automatic show() calls. After discussing things with JDH, it
3222 automatic show() calls. After discussing things with JDH, it
3211 turns out there are too many corner cases where this can go wrong.
3223 turns out there are too many corner cases where this can go wrong.
3212 It's best not to try to be 'too smart', and simply have ipython
3224 It's best not to try to be 'too smart', and simply have ipython
3213 reproduce as much as possible the default behavior of a normal
3225 reproduce as much as possible the default behavior of a normal
3214 python shell.
3226 python shell.
3215
3227
3216 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3228 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3217 line-splitting regexp and _prefilter() to avoid calling getattr()
3229 line-splitting regexp and _prefilter() to avoid calling getattr()
3218 on assignments. This closes
3230 on assignments. This closes
3219 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3231 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3220 readline uses getattr(), so a simple <TAB> keypress is still
3232 readline uses getattr(), so a simple <TAB> keypress is still
3221 enough to trigger getattr() calls on an object.
3233 enough to trigger getattr() calls on an object.
3222
3234
3223 2005-01-21 Fernando Perez <fperez@colorado.edu>
3235 2005-01-21 Fernando Perez <fperez@colorado.edu>
3224
3236
3225 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3237 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3226 docstring under pylab so it doesn't mask the original.
3238 docstring under pylab so it doesn't mask the original.
3227
3239
3228 2005-01-21 *** Released version 0.6.7
3240 2005-01-21 *** Released version 0.6.7
3229
3241
3230 2005-01-21 Fernando Perez <fperez@colorado.edu>
3242 2005-01-21 Fernando Perez <fperez@colorado.edu>
3231
3243
3232 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3244 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3233 signal handling for win32 users in multithreaded mode.
3245 signal handling for win32 users in multithreaded mode.
3234
3246
3235 2005-01-17 Fernando Perez <fperez@colorado.edu>
3247 2005-01-17 Fernando Perez <fperez@colorado.edu>
3236
3248
3237 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3249 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3238 instances with no __init__. After a crash report by Norbert Nemec
3250 instances with no __init__. After a crash report by Norbert Nemec
3239 <Norbert-AT-nemec-online.de>.
3251 <Norbert-AT-nemec-online.de>.
3240
3252
3241 2005-01-14 Fernando Perez <fperez@colorado.edu>
3253 2005-01-14 Fernando Perez <fperez@colorado.edu>
3242
3254
3243 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3255 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3244 names for verbose exceptions, when multiple dotted names and the
3256 names for verbose exceptions, when multiple dotted names and the
3245 'parent' object were present on the same line.
3257 'parent' object were present on the same line.
3246
3258
3247 2005-01-11 Fernando Perez <fperez@colorado.edu>
3259 2005-01-11 Fernando Perez <fperez@colorado.edu>
3248
3260
3249 * IPython/genutils.py (flag_calls): new utility to trap and flag
3261 * IPython/genutils.py (flag_calls): new utility to trap and flag
3250 calls in functions. I need it to clean up matplotlib support.
3262 calls in functions. I need it to clean up matplotlib support.
3251 Also removed some deprecated code in genutils.
3263 Also removed some deprecated code in genutils.
3252
3264
3253 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3265 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3254 that matplotlib scripts called with %run, which don't call show()
3266 that matplotlib scripts called with %run, which don't call show()
3255 themselves, still have their plotting windows open.
3267 themselves, still have their plotting windows open.
3256
3268
3257 2005-01-05 Fernando Perez <fperez@colorado.edu>
3269 2005-01-05 Fernando Perez <fperez@colorado.edu>
3258
3270
3259 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3271 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3260 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3272 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3261
3273
3262 2004-12-19 Fernando Perez <fperez@colorado.edu>
3274 2004-12-19 Fernando Perez <fperez@colorado.edu>
3263
3275
3264 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3276 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3265 parent_runcode, which was an eyesore. The same result can be
3277 parent_runcode, which was an eyesore. The same result can be
3266 obtained with Python's regular superclass mechanisms.
3278 obtained with Python's regular superclass mechanisms.
3267
3279
3268 2004-12-17 Fernando Perez <fperez@colorado.edu>
3280 2004-12-17 Fernando Perez <fperez@colorado.edu>
3269
3281
3270 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3282 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3271 reported by Prabhu.
3283 reported by Prabhu.
3272 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3284 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3273 sys.stderr) instead of explicitly calling sys.stderr. This helps
3285 sys.stderr) instead of explicitly calling sys.stderr. This helps
3274 maintain our I/O abstractions clean, for future GUI embeddings.
3286 maintain our I/O abstractions clean, for future GUI embeddings.
3275
3287
3276 * IPython/genutils.py (info): added new utility for sys.stderr
3288 * IPython/genutils.py (info): added new utility for sys.stderr
3277 unified info message handling (thin wrapper around warn()).
3289 unified info message handling (thin wrapper around warn()).
3278
3290
3279 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3291 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3280 composite (dotted) names on verbose exceptions.
3292 composite (dotted) names on verbose exceptions.
3281 (VerboseTB.nullrepr): harden against another kind of errors which
3293 (VerboseTB.nullrepr): harden against another kind of errors which
3282 Python's inspect module can trigger, and which were crashing
3294 Python's inspect module can trigger, and which were crashing
3283 IPython. Thanks to a report by Marco Lombardi
3295 IPython. Thanks to a report by Marco Lombardi
3284 <mlombard-AT-ma010192.hq.eso.org>.
3296 <mlombard-AT-ma010192.hq.eso.org>.
3285
3297
3286 2004-12-13 *** Released version 0.6.6
3298 2004-12-13 *** Released version 0.6.6
3287
3299
3288 2004-12-12 Fernando Perez <fperez@colorado.edu>
3300 2004-12-12 Fernando Perez <fperez@colorado.edu>
3289
3301
3290 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3302 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3291 generated by pygtk upon initialization if it was built without
3303 generated by pygtk upon initialization if it was built without
3292 threads (for matplotlib users). After a crash reported by
3304 threads (for matplotlib users). After a crash reported by
3293 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3305 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3294
3306
3295 * IPython/ipmaker.py (make_IPython): fix small bug in the
3307 * IPython/ipmaker.py (make_IPython): fix small bug in the
3296 import_some parameter for multiple imports.
3308 import_some parameter for multiple imports.
3297
3309
3298 * IPython/iplib.py (ipmagic): simplified the interface of
3310 * IPython/iplib.py (ipmagic): simplified the interface of
3299 ipmagic() to take a single string argument, just as it would be
3311 ipmagic() to take a single string argument, just as it would be
3300 typed at the IPython cmd line.
3312 typed at the IPython cmd line.
3301 (ipalias): Added new ipalias() with an interface identical to
3313 (ipalias): Added new ipalias() with an interface identical to
3302 ipmagic(). This completes exposing a pure python interface to the
3314 ipmagic(). This completes exposing a pure python interface to the
3303 alias and magic system, which can be used in loops or more complex
3315 alias and magic system, which can be used in loops or more complex
3304 code where IPython's automatic line mangling is not active.
3316 code where IPython's automatic line mangling is not active.
3305
3317
3306 * IPython/genutils.py (timing): changed interface of timing to
3318 * IPython/genutils.py (timing): changed interface of timing to
3307 simply run code once, which is the most common case. timings()
3319 simply run code once, which is the most common case. timings()
3308 remains unchanged, for the cases where you want multiple runs.
3320 remains unchanged, for the cases where you want multiple runs.
3309
3321
3310 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3322 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3311 bug where Python2.2 crashes with exec'ing code which does not end
3323 bug where Python2.2 crashes with exec'ing code which does not end
3312 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3324 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3313 before.
3325 before.
3314
3326
3315 2004-12-10 Fernando Perez <fperez@colorado.edu>
3327 2004-12-10 Fernando Perez <fperez@colorado.edu>
3316
3328
3317 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3329 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3318 -t to -T, to accomodate the new -t flag in %run (the %run and
3330 -t to -T, to accomodate the new -t flag in %run (the %run and
3319 %prun options are kind of intermixed, and it's not easy to change
3331 %prun options are kind of intermixed, and it's not easy to change
3320 this with the limitations of python's getopt).
3332 this with the limitations of python's getopt).
3321
3333
3322 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3334 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3323 the execution of scripts. It's not as fine-tuned as timeit.py,
3335 the execution of scripts. It's not as fine-tuned as timeit.py,
3324 but it works from inside ipython (and under 2.2, which lacks
3336 but it works from inside ipython (and under 2.2, which lacks
3325 timeit.py). Optionally a number of runs > 1 can be given for
3337 timeit.py). Optionally a number of runs > 1 can be given for
3326 timing very short-running code.
3338 timing very short-running code.
3327
3339
3328 * IPython/genutils.py (uniq_stable): new routine which returns a
3340 * IPython/genutils.py (uniq_stable): new routine which returns a
3329 list of unique elements in any iterable, but in stable order of
3341 list of unique elements in any iterable, but in stable order of
3330 appearance. I needed this for the ultraTB fixes, and it's a handy
3342 appearance. I needed this for the ultraTB fixes, and it's a handy
3331 utility.
3343 utility.
3332
3344
3333 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3345 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3334 dotted names in Verbose exceptions. This had been broken since
3346 dotted names in Verbose exceptions. This had been broken since
3335 the very start, now x.y will properly be printed in a Verbose
3347 the very start, now x.y will properly be printed in a Verbose
3336 traceback, instead of x being shown and y appearing always as an
3348 traceback, instead of x being shown and y appearing always as an
3337 'undefined global'. Getting this to work was a bit tricky,
3349 'undefined global'. Getting this to work was a bit tricky,
3338 because by default python tokenizers are stateless. Saved by
3350 because by default python tokenizers are stateless. Saved by
3339 python's ability to easily add a bit of state to an arbitrary
3351 python's ability to easily add a bit of state to an arbitrary
3340 function (without needing to build a full-blown callable object).
3352 function (without needing to build a full-blown callable object).
3341
3353
3342 Also big cleanup of this code, which had horrendous runtime
3354 Also big cleanup of this code, which had horrendous runtime
3343 lookups of zillions of attributes for colorization. Moved all
3355 lookups of zillions of attributes for colorization. Moved all
3344 this code into a few templates, which make it cleaner and quicker.
3356 this code into a few templates, which make it cleaner and quicker.
3345
3357
3346 Printout quality was also improved for Verbose exceptions: one
3358 Printout quality was also improved for Verbose exceptions: one
3347 variable per line, and memory addresses are printed (this can be
3359 variable per line, and memory addresses are printed (this can be
3348 quite handy in nasty debugging situations, which is what Verbose
3360 quite handy in nasty debugging situations, which is what Verbose
3349 is for).
3361 is for).
3350
3362
3351 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3363 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3352 the command line as scripts to be loaded by embedded instances.
3364 the command line as scripts to be loaded by embedded instances.
3353 Doing so has the potential for an infinite recursion if there are
3365 Doing so has the potential for an infinite recursion if there are
3354 exceptions thrown in the process. This fixes a strange crash
3366 exceptions thrown in the process. This fixes a strange crash
3355 reported by Philippe MULLER <muller-AT-irit.fr>.
3367 reported by Philippe MULLER <muller-AT-irit.fr>.
3356
3368
3357 2004-12-09 Fernando Perez <fperez@colorado.edu>
3369 2004-12-09 Fernando Perez <fperez@colorado.edu>
3358
3370
3359 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3371 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3360 to reflect new names in matplotlib, which now expose the
3372 to reflect new names in matplotlib, which now expose the
3361 matlab-compatible interface via a pylab module instead of the
3373 matlab-compatible interface via a pylab module instead of the
3362 'matlab' name. The new code is backwards compatible, so users of
3374 'matlab' name. The new code is backwards compatible, so users of
3363 all matplotlib versions are OK. Patch by J. Hunter.
3375 all matplotlib versions are OK. Patch by J. Hunter.
3364
3376
3365 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3377 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3366 of __init__ docstrings for instances (class docstrings are already
3378 of __init__ docstrings for instances (class docstrings are already
3367 automatically printed). Instances with customized docstrings
3379 automatically printed). Instances with customized docstrings
3368 (indep. of the class) are also recognized and all 3 separate
3380 (indep. of the class) are also recognized and all 3 separate
3369 docstrings are printed (instance, class, constructor). After some
3381 docstrings are printed (instance, class, constructor). After some
3370 comments/suggestions by J. Hunter.
3382 comments/suggestions by J. Hunter.
3371
3383
3372 2004-12-05 Fernando Perez <fperez@colorado.edu>
3384 2004-12-05 Fernando Perez <fperez@colorado.edu>
3373
3385
3374 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3386 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3375 warnings when tab-completion fails and triggers an exception.
3387 warnings when tab-completion fails and triggers an exception.
3376
3388
3377 2004-12-03 Fernando Perez <fperez@colorado.edu>
3389 2004-12-03 Fernando Perez <fperez@colorado.edu>
3378
3390
3379 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3391 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3380 be triggered when using 'run -p'. An incorrect option flag was
3392 be triggered when using 'run -p'. An incorrect option flag was
3381 being set ('d' instead of 'D').
3393 being set ('d' instead of 'D').
3382 (manpage): fix missing escaped \- sign.
3394 (manpage): fix missing escaped \- sign.
3383
3395
3384 2004-11-30 *** Released version 0.6.5
3396 2004-11-30 *** Released version 0.6.5
3385
3397
3386 2004-11-30 Fernando Perez <fperez@colorado.edu>
3398 2004-11-30 Fernando Perez <fperez@colorado.edu>
3387
3399
3388 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3400 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3389 setting with -d option.
3401 setting with -d option.
3390
3402
3391 * setup.py (docfiles): Fix problem where the doc glob I was using
3403 * setup.py (docfiles): Fix problem where the doc glob I was using
3392 was COMPLETELY BROKEN. It was giving the right files by pure
3404 was COMPLETELY BROKEN. It was giving the right files by pure
3393 accident, but failed once I tried to include ipython.el. Note:
3405 accident, but failed once I tried to include ipython.el. Note:
3394 glob() does NOT allow you to do exclusion on multiple endings!
3406 glob() does NOT allow you to do exclusion on multiple endings!
3395
3407
3396 2004-11-29 Fernando Perez <fperez@colorado.edu>
3408 2004-11-29 Fernando Perez <fperez@colorado.edu>
3397
3409
3398 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3410 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3399 the manpage as the source. Better formatting & consistency.
3411 the manpage as the source. Better formatting & consistency.
3400
3412
3401 * IPython/Magic.py (magic_run): Added new -d option, to run
3413 * IPython/Magic.py (magic_run): Added new -d option, to run
3402 scripts under the control of the python pdb debugger. Note that
3414 scripts under the control of the python pdb debugger. Note that
3403 this required changing the %prun option -d to -D, to avoid a clash
3415 this required changing the %prun option -d to -D, to avoid a clash
3404 (since %run must pass options to %prun, and getopt is too dumb to
3416 (since %run must pass options to %prun, and getopt is too dumb to
3405 handle options with string values with embedded spaces). Thanks
3417 handle options with string values with embedded spaces). Thanks
3406 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3418 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3407 (magic_who_ls): added type matching to %who and %whos, so that one
3419 (magic_who_ls): added type matching to %who and %whos, so that one
3408 can filter their output to only include variables of certain
3420 can filter their output to only include variables of certain
3409 types. Another suggestion by Matthew.
3421 types. Another suggestion by Matthew.
3410 (magic_whos): Added memory summaries in kb and Mb for arrays.
3422 (magic_whos): Added memory summaries in kb and Mb for arrays.
3411 (magic_who): Improve formatting (break lines every 9 vars).
3423 (magic_who): Improve formatting (break lines every 9 vars).
3412
3424
3413 2004-11-28 Fernando Perez <fperez@colorado.edu>
3425 2004-11-28 Fernando Perez <fperez@colorado.edu>
3414
3426
3415 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3427 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3416 cache when empty lines were present.
3428 cache when empty lines were present.
3417
3429
3418 2004-11-24 Fernando Perez <fperez@colorado.edu>
3430 2004-11-24 Fernando Perez <fperez@colorado.edu>
3419
3431
3420 * IPython/usage.py (__doc__): document the re-activated threading
3432 * IPython/usage.py (__doc__): document the re-activated threading
3421 options for WX and GTK.
3433 options for WX and GTK.
3422
3434
3423 2004-11-23 Fernando Perez <fperez@colorado.edu>
3435 2004-11-23 Fernando Perez <fperez@colorado.edu>
3424
3436
3425 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3437 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3426 the -wthread and -gthread options, along with a new -tk one to try
3438 the -wthread and -gthread options, along with a new -tk one to try
3427 and coordinate Tk threading with wx/gtk. The tk support is very
3439 and coordinate Tk threading with wx/gtk. The tk support is very
3428 platform dependent, since it seems to require Tcl and Tk to be
3440 platform dependent, since it seems to require Tcl and Tk to be
3429 built with threads (Fedora1/2 appears NOT to have it, but in
3441 built with threads (Fedora1/2 appears NOT to have it, but in
3430 Prabhu's Debian boxes it works OK). But even with some Tk
3442 Prabhu's Debian boxes it works OK). But even with some Tk
3431 limitations, this is a great improvement.
3443 limitations, this is a great improvement.
3432
3444
3433 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3445 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3434 info in user prompts. Patch by Prabhu.
3446 info in user prompts. Patch by Prabhu.
3435
3447
3436 2004-11-18 Fernando Perez <fperez@colorado.edu>
3448 2004-11-18 Fernando Perez <fperez@colorado.edu>
3437
3449
3438 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3450 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3439 EOFErrors and bail, to avoid infinite loops if a non-terminating
3451 EOFErrors and bail, to avoid infinite loops if a non-terminating
3440 file is fed into ipython. Patch submitted in issue 19 by user,
3452 file is fed into ipython. Patch submitted in issue 19 by user,
3441 many thanks.
3453 many thanks.
3442
3454
3443 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3455 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3444 autoquote/parens in continuation prompts, which can cause lots of
3456 autoquote/parens in continuation prompts, which can cause lots of
3445 problems. Closes roundup issue 20.
3457 problems. Closes roundup issue 20.
3446
3458
3447 2004-11-17 Fernando Perez <fperez@colorado.edu>
3459 2004-11-17 Fernando Perez <fperez@colorado.edu>
3448
3460
3449 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3461 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3450 reported as debian bug #280505. I'm not sure my local changelog
3462 reported as debian bug #280505. I'm not sure my local changelog
3451 entry has the proper debian format (Jack?).
3463 entry has the proper debian format (Jack?).
3452
3464
3453 2004-11-08 *** Released version 0.6.4
3465 2004-11-08 *** Released version 0.6.4
3454
3466
3455 2004-11-08 Fernando Perez <fperez@colorado.edu>
3467 2004-11-08 Fernando Perez <fperez@colorado.edu>
3456
3468
3457 * IPython/iplib.py (init_readline): Fix exit message for Windows
3469 * IPython/iplib.py (init_readline): Fix exit message for Windows
3458 when readline is active. Thanks to a report by Eric Jones
3470 when readline is active. Thanks to a report by Eric Jones
3459 <eric-AT-enthought.com>.
3471 <eric-AT-enthought.com>.
3460
3472
3461 2004-11-07 Fernando Perez <fperez@colorado.edu>
3473 2004-11-07 Fernando Perez <fperez@colorado.edu>
3462
3474
3463 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3475 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3464 sometimes seen by win2k/cygwin users.
3476 sometimes seen by win2k/cygwin users.
3465
3477
3466 2004-11-06 Fernando Perez <fperez@colorado.edu>
3478 2004-11-06 Fernando Perez <fperez@colorado.edu>
3467
3479
3468 * IPython/iplib.py (interact): Change the handling of %Exit from
3480 * IPython/iplib.py (interact): Change the handling of %Exit from
3469 trying to propagate a SystemExit to an internal ipython flag.
3481 trying to propagate a SystemExit to an internal ipython flag.
3470 This is less elegant than using Python's exception mechanism, but
3482 This is less elegant than using Python's exception mechanism, but
3471 I can't get that to work reliably with threads, so under -pylab
3483 I can't get that to work reliably with threads, so under -pylab
3472 %Exit was hanging IPython. Cross-thread exception handling is
3484 %Exit was hanging IPython. Cross-thread exception handling is
3473 really a bitch. Thaks to a bug report by Stephen Walton
3485 really a bitch. Thaks to a bug report by Stephen Walton
3474 <stephen.walton-AT-csun.edu>.
3486 <stephen.walton-AT-csun.edu>.
3475
3487
3476 2004-11-04 Fernando Perez <fperez@colorado.edu>
3488 2004-11-04 Fernando Perez <fperez@colorado.edu>
3477
3489
3478 * IPython/iplib.py (raw_input_original): store a pointer to the
3490 * IPython/iplib.py (raw_input_original): store a pointer to the
3479 true raw_input to harden against code which can modify it
3491 true raw_input to harden against code which can modify it
3480 (wx.py.PyShell does this and would otherwise crash ipython).
3492 (wx.py.PyShell does this and would otherwise crash ipython).
3481 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3493 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3482
3494
3483 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3495 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3484 Ctrl-C problem, which does not mess up the input line.
3496 Ctrl-C problem, which does not mess up the input line.
3485
3497
3486 2004-11-03 Fernando Perez <fperez@colorado.edu>
3498 2004-11-03 Fernando Perez <fperez@colorado.edu>
3487
3499
3488 * IPython/Release.py: Changed licensing to BSD, in all files.
3500 * IPython/Release.py: Changed licensing to BSD, in all files.
3489 (name): lowercase name for tarball/RPM release.
3501 (name): lowercase name for tarball/RPM release.
3490
3502
3491 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3503 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3492 use throughout ipython.
3504 use throughout ipython.
3493
3505
3494 * IPython/Magic.py (Magic._ofind): Switch to using the new
3506 * IPython/Magic.py (Magic._ofind): Switch to using the new
3495 OInspect.getdoc() function.
3507 OInspect.getdoc() function.
3496
3508
3497 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3509 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3498 of the line currently being canceled via Ctrl-C. It's extremely
3510 of the line currently being canceled via Ctrl-C. It's extremely
3499 ugly, but I don't know how to do it better (the problem is one of
3511 ugly, but I don't know how to do it better (the problem is one of
3500 handling cross-thread exceptions).
3512 handling cross-thread exceptions).
3501
3513
3502 2004-10-28 Fernando Perez <fperez@colorado.edu>
3514 2004-10-28 Fernando Perez <fperez@colorado.edu>
3503
3515
3504 * IPython/Shell.py (signal_handler): add signal handlers to trap
3516 * IPython/Shell.py (signal_handler): add signal handlers to trap
3505 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3517 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3506 report by Francesc Alted.
3518 report by Francesc Alted.
3507
3519
3508 2004-10-21 Fernando Perez <fperez@colorado.edu>
3520 2004-10-21 Fernando Perez <fperez@colorado.edu>
3509
3521
3510 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3522 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3511 to % for pysh syntax extensions.
3523 to % for pysh syntax extensions.
3512
3524
3513 2004-10-09 Fernando Perez <fperez@colorado.edu>
3525 2004-10-09 Fernando Perez <fperez@colorado.edu>
3514
3526
3515 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3527 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3516 arrays to print a more useful summary, without calling str(arr).
3528 arrays to print a more useful summary, without calling str(arr).
3517 This avoids the problem of extremely lengthy computations which
3529 This avoids the problem of extremely lengthy computations which
3518 occur if arr is large, and appear to the user as a system lockup
3530 occur if arr is large, and appear to the user as a system lockup
3519 with 100% cpu activity. After a suggestion by Kristian Sandberg
3531 with 100% cpu activity. After a suggestion by Kristian Sandberg
3520 <Kristian.Sandberg@colorado.edu>.
3532 <Kristian.Sandberg@colorado.edu>.
3521 (Magic.__init__): fix bug in global magic escapes not being
3533 (Magic.__init__): fix bug in global magic escapes not being
3522 correctly set.
3534 correctly set.
3523
3535
3524 2004-10-08 Fernando Perez <fperez@colorado.edu>
3536 2004-10-08 Fernando Perez <fperez@colorado.edu>
3525
3537
3526 * IPython/Magic.py (__license__): change to absolute imports of
3538 * IPython/Magic.py (__license__): change to absolute imports of
3527 ipython's own internal packages, to start adapting to the absolute
3539 ipython's own internal packages, to start adapting to the absolute
3528 import requirement of PEP-328.
3540 import requirement of PEP-328.
3529
3541
3530 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3542 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3531 files, and standardize author/license marks through the Release
3543 files, and standardize author/license marks through the Release
3532 module instead of having per/file stuff (except for files with
3544 module instead of having per/file stuff (except for files with
3533 particular licenses, like the MIT/PSF-licensed codes).
3545 particular licenses, like the MIT/PSF-licensed codes).
3534
3546
3535 * IPython/Debugger.py: remove dead code for python 2.1
3547 * IPython/Debugger.py: remove dead code for python 2.1
3536
3548
3537 2004-10-04 Fernando Perez <fperez@colorado.edu>
3549 2004-10-04 Fernando Perez <fperez@colorado.edu>
3538
3550
3539 * IPython/iplib.py (ipmagic): New function for accessing magics
3551 * IPython/iplib.py (ipmagic): New function for accessing magics
3540 via a normal python function call.
3552 via a normal python function call.
3541
3553
3542 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3554 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3543 from '@' to '%', to accomodate the new @decorator syntax of python
3555 from '@' to '%', to accomodate the new @decorator syntax of python
3544 2.4.
3556 2.4.
3545
3557
3546 2004-09-29 Fernando Perez <fperez@colorado.edu>
3558 2004-09-29 Fernando Perez <fperez@colorado.edu>
3547
3559
3548 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3560 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3549 matplotlib.use to prevent running scripts which try to switch
3561 matplotlib.use to prevent running scripts which try to switch
3550 interactive backends from within ipython. This will just crash
3562 interactive backends from within ipython. This will just crash
3551 the python interpreter, so we can't allow it (but a detailed error
3563 the python interpreter, so we can't allow it (but a detailed error
3552 is given to the user).
3564 is given to the user).
3553
3565
3554 2004-09-28 Fernando Perez <fperez@colorado.edu>
3566 2004-09-28 Fernando Perez <fperez@colorado.edu>
3555
3567
3556 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3568 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3557 matplotlib-related fixes so that using @run with non-matplotlib
3569 matplotlib-related fixes so that using @run with non-matplotlib
3558 scripts doesn't pop up spurious plot windows. This requires
3570 scripts doesn't pop up spurious plot windows. This requires
3559 matplotlib >= 0.63, where I had to make some changes as well.
3571 matplotlib >= 0.63, where I had to make some changes as well.
3560
3572
3561 * IPython/ipmaker.py (make_IPython): update version requirement to
3573 * IPython/ipmaker.py (make_IPython): update version requirement to
3562 python 2.2.
3574 python 2.2.
3563
3575
3564 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3576 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3565 banner arg for embedded customization.
3577 banner arg for embedded customization.
3566
3578
3567 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3579 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3568 explicit uses of __IP as the IPython's instance name. Now things
3580 explicit uses of __IP as the IPython's instance name. Now things
3569 are properly handled via the shell.name value. The actual code
3581 are properly handled via the shell.name value. The actual code
3570 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3582 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3571 is much better than before. I'll clean things completely when the
3583 is much better than before. I'll clean things completely when the
3572 magic stuff gets a real overhaul.
3584 magic stuff gets a real overhaul.
3573
3585
3574 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3586 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3575 minor changes to debian dir.
3587 minor changes to debian dir.
3576
3588
3577 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3589 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3578 pointer to the shell itself in the interactive namespace even when
3590 pointer to the shell itself in the interactive namespace even when
3579 a user-supplied dict is provided. This is needed for embedding
3591 a user-supplied dict is provided. This is needed for embedding
3580 purposes (found by tests with Michel Sanner).
3592 purposes (found by tests with Michel Sanner).
3581
3593
3582 2004-09-27 Fernando Perez <fperez@colorado.edu>
3594 2004-09-27 Fernando Perez <fperez@colorado.edu>
3583
3595
3584 * IPython/UserConfig/ipythonrc: remove []{} from
3596 * IPython/UserConfig/ipythonrc: remove []{} from
3585 readline_remove_delims, so that things like [modname.<TAB> do
3597 readline_remove_delims, so that things like [modname.<TAB> do
3586 proper completion. This disables [].TAB, but that's a less common
3598 proper completion. This disables [].TAB, but that's a less common
3587 case than module names in list comprehensions, for example.
3599 case than module names in list comprehensions, for example.
3588 Thanks to a report by Andrea Riciputi.
3600 Thanks to a report by Andrea Riciputi.
3589
3601
3590 2004-09-09 Fernando Perez <fperez@colorado.edu>
3602 2004-09-09 Fernando Perez <fperez@colorado.edu>
3591
3603
3592 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3604 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3593 blocking problems in win32 and osx. Fix by John.
3605 blocking problems in win32 and osx. Fix by John.
3594
3606
3595 2004-09-08 Fernando Perez <fperez@colorado.edu>
3607 2004-09-08 Fernando Perez <fperez@colorado.edu>
3596
3608
3597 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3609 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3598 for Win32 and OSX. Fix by John Hunter.
3610 for Win32 and OSX. Fix by John Hunter.
3599
3611
3600 2004-08-30 *** Released version 0.6.3
3612 2004-08-30 *** Released version 0.6.3
3601
3613
3602 2004-08-30 Fernando Perez <fperez@colorado.edu>
3614 2004-08-30 Fernando Perez <fperez@colorado.edu>
3603
3615
3604 * setup.py (isfile): Add manpages to list of dependent files to be
3616 * setup.py (isfile): Add manpages to list of dependent files to be
3605 updated.
3617 updated.
3606
3618
3607 2004-08-27 Fernando Perez <fperez@colorado.edu>
3619 2004-08-27 Fernando Perez <fperez@colorado.edu>
3608
3620
3609 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3621 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3610 for now. They don't really work with standalone WX/GTK code
3622 for now. They don't really work with standalone WX/GTK code
3611 (though matplotlib IS working fine with both of those backends).
3623 (though matplotlib IS working fine with both of those backends).
3612 This will neeed much more testing. I disabled most things with
3624 This will neeed much more testing. I disabled most things with
3613 comments, so turning it back on later should be pretty easy.
3625 comments, so turning it back on later should be pretty easy.
3614
3626
3615 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3627 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3616 autocalling of expressions like r'foo', by modifying the line
3628 autocalling of expressions like r'foo', by modifying the line
3617 split regexp. Closes
3629 split regexp. Closes
3618 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3630 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3619 Riley <ipythonbugs-AT-sabi.net>.
3631 Riley <ipythonbugs-AT-sabi.net>.
3620 (InteractiveShell.mainloop): honor --nobanner with banner
3632 (InteractiveShell.mainloop): honor --nobanner with banner
3621 extensions.
3633 extensions.
3622
3634
3623 * IPython/Shell.py: Significant refactoring of all classes, so
3635 * IPython/Shell.py: Significant refactoring of all classes, so
3624 that we can really support ALL matplotlib backends and threading
3636 that we can really support ALL matplotlib backends and threading
3625 models (John spotted a bug with Tk which required this). Now we
3637 models (John spotted a bug with Tk which required this). Now we
3626 should support single-threaded, WX-threads and GTK-threads, both
3638 should support single-threaded, WX-threads and GTK-threads, both
3627 for generic code and for matplotlib.
3639 for generic code and for matplotlib.
3628
3640
3629 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3641 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3630 -pylab, to simplify things for users. Will also remove the pylab
3642 -pylab, to simplify things for users. Will also remove the pylab
3631 profile, since now all of matplotlib configuration is directly
3643 profile, since now all of matplotlib configuration is directly
3632 handled here. This also reduces startup time.
3644 handled here. This also reduces startup time.
3633
3645
3634 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3646 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3635 shell wasn't being correctly called. Also in IPShellWX.
3647 shell wasn't being correctly called. Also in IPShellWX.
3636
3648
3637 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3649 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3638 fine-tune banner.
3650 fine-tune banner.
3639
3651
3640 * IPython/numutils.py (spike): Deprecate these spike functions,
3652 * IPython/numutils.py (spike): Deprecate these spike functions,
3641 delete (long deprecated) gnuplot_exec handler.
3653 delete (long deprecated) gnuplot_exec handler.
3642
3654
3643 2004-08-26 Fernando Perez <fperez@colorado.edu>
3655 2004-08-26 Fernando Perez <fperez@colorado.edu>
3644
3656
3645 * ipython.1: Update for threading options, plus some others which
3657 * ipython.1: Update for threading options, plus some others which
3646 were missing.
3658 were missing.
3647
3659
3648 * IPython/ipmaker.py (__call__): Added -wthread option for
3660 * IPython/ipmaker.py (__call__): Added -wthread option for
3649 wxpython thread handling. Make sure threading options are only
3661 wxpython thread handling. Make sure threading options are only
3650 valid at the command line.
3662 valid at the command line.
3651
3663
3652 * scripts/ipython: moved shell selection into a factory function
3664 * scripts/ipython: moved shell selection into a factory function
3653 in Shell.py, to keep the starter script to a minimum.
3665 in Shell.py, to keep the starter script to a minimum.
3654
3666
3655 2004-08-25 Fernando Perez <fperez@colorado.edu>
3667 2004-08-25 Fernando Perez <fperez@colorado.edu>
3656
3668
3657 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3669 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3658 John. Along with some recent changes he made to matplotlib, the
3670 John. Along with some recent changes he made to matplotlib, the
3659 next versions of both systems should work very well together.
3671 next versions of both systems should work very well together.
3660
3672
3661 2004-08-24 Fernando Perez <fperez@colorado.edu>
3673 2004-08-24 Fernando Perez <fperez@colorado.edu>
3662
3674
3663 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3675 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3664 tried to switch the profiling to using hotshot, but I'm getting
3676 tried to switch the profiling to using hotshot, but I'm getting
3665 strange errors from prof.runctx() there. I may be misreading the
3677 strange errors from prof.runctx() there. I may be misreading the
3666 docs, but it looks weird. For now the profiling code will
3678 docs, but it looks weird. For now the profiling code will
3667 continue to use the standard profiler.
3679 continue to use the standard profiler.
3668
3680
3669 2004-08-23 Fernando Perez <fperez@colorado.edu>
3681 2004-08-23 Fernando Perez <fperez@colorado.edu>
3670
3682
3671 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3683 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3672 threaded shell, by John Hunter. It's not quite ready yet, but
3684 threaded shell, by John Hunter. It's not quite ready yet, but
3673 close.
3685 close.
3674
3686
3675 2004-08-22 Fernando Perez <fperez@colorado.edu>
3687 2004-08-22 Fernando Perez <fperez@colorado.edu>
3676
3688
3677 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3689 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3678 in Magic and ultraTB.
3690 in Magic and ultraTB.
3679
3691
3680 * ipython.1: document threading options in manpage.
3692 * ipython.1: document threading options in manpage.
3681
3693
3682 * scripts/ipython: Changed name of -thread option to -gthread,
3694 * scripts/ipython: Changed name of -thread option to -gthread,
3683 since this is GTK specific. I want to leave the door open for a
3695 since this is GTK specific. I want to leave the door open for a
3684 -wthread option for WX, which will most likely be necessary. This
3696 -wthread option for WX, which will most likely be necessary. This
3685 change affects usage and ipmaker as well.
3697 change affects usage and ipmaker as well.
3686
3698
3687 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3699 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3688 handle the matplotlib shell issues. Code by John Hunter
3700 handle the matplotlib shell issues. Code by John Hunter
3689 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3701 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3690 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3702 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3691 broken (and disabled for end users) for now, but it puts the
3703 broken (and disabled for end users) for now, but it puts the
3692 infrastructure in place.
3704 infrastructure in place.
3693
3705
3694 2004-08-21 Fernando Perez <fperez@colorado.edu>
3706 2004-08-21 Fernando Perez <fperez@colorado.edu>
3695
3707
3696 * ipythonrc-pylab: Add matplotlib support.
3708 * ipythonrc-pylab: Add matplotlib support.
3697
3709
3698 * matplotlib_config.py: new files for matplotlib support, part of
3710 * matplotlib_config.py: new files for matplotlib support, part of
3699 the pylab profile.
3711 the pylab profile.
3700
3712
3701 * IPython/usage.py (__doc__): documented the threading options.
3713 * IPython/usage.py (__doc__): documented the threading options.
3702
3714
3703 2004-08-20 Fernando Perez <fperez@colorado.edu>
3715 2004-08-20 Fernando Perez <fperez@colorado.edu>
3704
3716
3705 * ipython: Modified the main calling routine to handle the -thread
3717 * ipython: Modified the main calling routine to handle the -thread
3706 and -mpthread options. This needs to be done as a top-level hack,
3718 and -mpthread options. This needs to be done as a top-level hack,
3707 because it determines which class to instantiate for IPython
3719 because it determines which class to instantiate for IPython
3708 itself.
3720 itself.
3709
3721
3710 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3722 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3711 classes to support multithreaded GTK operation without blocking,
3723 classes to support multithreaded GTK operation without blocking,
3712 and matplotlib with all backends. This is a lot of still very
3724 and matplotlib with all backends. This is a lot of still very
3713 experimental code, and threads are tricky. So it may still have a
3725 experimental code, and threads are tricky. So it may still have a
3714 few rough edges... This code owes a lot to
3726 few rough edges... This code owes a lot to
3715 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3727 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3716 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3728 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3717 to John Hunter for all the matplotlib work.
3729 to John Hunter for all the matplotlib work.
3718
3730
3719 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3731 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3720 options for gtk thread and matplotlib support.
3732 options for gtk thread and matplotlib support.
3721
3733
3722 2004-08-16 Fernando Perez <fperez@colorado.edu>
3734 2004-08-16 Fernando Perez <fperez@colorado.edu>
3723
3735
3724 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3736 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3725 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3737 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3726 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3738 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3727
3739
3728 2004-08-11 Fernando Perez <fperez@colorado.edu>
3740 2004-08-11 Fernando Perez <fperez@colorado.edu>
3729
3741
3730 * setup.py (isfile): Fix build so documentation gets updated for
3742 * setup.py (isfile): Fix build so documentation gets updated for
3731 rpms (it was only done for .tgz builds).
3743 rpms (it was only done for .tgz builds).
3732
3744
3733 2004-08-10 Fernando Perez <fperez@colorado.edu>
3745 2004-08-10 Fernando Perez <fperez@colorado.edu>
3734
3746
3735 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3747 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3736
3748
3737 * iplib.py : Silence syntax error exceptions in tab-completion.
3749 * iplib.py : Silence syntax error exceptions in tab-completion.
3738
3750
3739 2004-08-05 Fernando Perez <fperez@colorado.edu>
3751 2004-08-05 Fernando Perez <fperez@colorado.edu>
3740
3752
3741 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3753 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3742 'color off' mark for continuation prompts. This was causing long
3754 'color off' mark for continuation prompts. This was causing long
3743 continuation lines to mis-wrap.
3755 continuation lines to mis-wrap.
3744
3756
3745 2004-08-01 Fernando Perez <fperez@colorado.edu>
3757 2004-08-01 Fernando Perez <fperez@colorado.edu>
3746
3758
3747 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3759 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3748 for building ipython to be a parameter. All this is necessary
3760 for building ipython to be a parameter. All this is necessary
3749 right now to have a multithreaded version, but this insane
3761 right now to have a multithreaded version, but this insane
3750 non-design will be cleaned up soon. For now, it's a hack that
3762 non-design will be cleaned up soon. For now, it's a hack that
3751 works.
3763 works.
3752
3764
3753 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3765 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3754 args in various places. No bugs so far, but it's a dangerous
3766 args in various places. No bugs so far, but it's a dangerous
3755 practice.
3767 practice.
3756
3768
3757 2004-07-31 Fernando Perez <fperez@colorado.edu>
3769 2004-07-31 Fernando Perez <fperez@colorado.edu>
3758
3770
3759 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3771 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3760 fix completion of files with dots in their names under most
3772 fix completion of files with dots in their names under most
3761 profiles (pysh was OK because the completion order is different).
3773 profiles (pysh was OK because the completion order is different).
3762
3774
3763 2004-07-27 Fernando Perez <fperez@colorado.edu>
3775 2004-07-27 Fernando Perez <fperez@colorado.edu>
3764
3776
3765 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3777 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3766 keywords manually, b/c the one in keyword.py was removed in python
3778 keywords manually, b/c the one in keyword.py was removed in python
3767 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3779 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3768 This is NOT a bug under python 2.3 and earlier.
3780 This is NOT a bug under python 2.3 and earlier.
3769
3781
3770 2004-07-26 Fernando Perez <fperez@colorado.edu>
3782 2004-07-26 Fernando Perez <fperez@colorado.edu>
3771
3783
3772 * IPython/ultraTB.py (VerboseTB.text): Add another
3784 * IPython/ultraTB.py (VerboseTB.text): Add another
3773 linecache.checkcache() call to try to prevent inspect.py from
3785 linecache.checkcache() call to try to prevent inspect.py from
3774 crashing under python 2.3. I think this fixes
3786 crashing under python 2.3. I think this fixes
3775 http://www.scipy.net/roundup/ipython/issue17.
3787 http://www.scipy.net/roundup/ipython/issue17.
3776
3788
3777 2004-07-26 *** Released version 0.6.2
3789 2004-07-26 *** Released version 0.6.2
3778
3790
3779 2004-07-26 Fernando Perez <fperez@colorado.edu>
3791 2004-07-26 Fernando Perez <fperez@colorado.edu>
3780
3792
3781 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3793 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3782 fail for any number.
3794 fail for any number.
3783 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3795 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3784 empty bookmarks.
3796 empty bookmarks.
3785
3797
3786 2004-07-26 *** Released version 0.6.1
3798 2004-07-26 *** Released version 0.6.1
3787
3799
3788 2004-07-26 Fernando Perez <fperez@colorado.edu>
3800 2004-07-26 Fernando Perez <fperez@colorado.edu>
3789
3801
3790 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3802 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3791
3803
3792 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3804 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3793 escaping '()[]{}' in filenames.
3805 escaping '()[]{}' in filenames.
3794
3806
3795 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3807 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3796 Python 2.2 users who lack a proper shlex.split.
3808 Python 2.2 users who lack a proper shlex.split.
3797
3809
3798 2004-07-19 Fernando Perez <fperez@colorado.edu>
3810 2004-07-19 Fernando Perez <fperez@colorado.edu>
3799
3811
3800 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3812 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3801 for reading readline's init file. I follow the normal chain:
3813 for reading readline's init file. I follow the normal chain:
3802 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3814 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3803 report by Mike Heeter. This closes
3815 report by Mike Heeter. This closes
3804 http://www.scipy.net/roundup/ipython/issue16.
3816 http://www.scipy.net/roundup/ipython/issue16.
3805
3817
3806 2004-07-18 Fernando Perez <fperez@colorado.edu>
3818 2004-07-18 Fernando Perez <fperez@colorado.edu>
3807
3819
3808 * IPython/iplib.py (__init__): Add better handling of '\' under
3820 * IPython/iplib.py (__init__): Add better handling of '\' under
3809 Win32 for filenames. After a patch by Ville.
3821 Win32 for filenames. After a patch by Ville.
3810
3822
3811 2004-07-17 Fernando Perez <fperez@colorado.edu>
3823 2004-07-17 Fernando Perez <fperez@colorado.edu>
3812
3824
3813 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3825 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3814 autocalling would be triggered for 'foo is bar' if foo is
3826 autocalling would be triggered for 'foo is bar' if foo is
3815 callable. I also cleaned up the autocall detection code to use a
3827 callable. I also cleaned up the autocall detection code to use a
3816 regexp, which is faster. Bug reported by Alexander Schmolck.
3828 regexp, which is faster. Bug reported by Alexander Schmolck.
3817
3829
3818 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3830 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3819 '?' in them would confuse the help system. Reported by Alex
3831 '?' in them would confuse the help system. Reported by Alex
3820 Schmolck.
3832 Schmolck.
3821
3833
3822 2004-07-16 Fernando Perez <fperez@colorado.edu>
3834 2004-07-16 Fernando Perez <fperez@colorado.edu>
3823
3835
3824 * IPython/GnuplotInteractive.py (__all__): added plot2.
3836 * IPython/GnuplotInteractive.py (__all__): added plot2.
3825
3837
3826 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3838 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3827 plotting dictionaries, lists or tuples of 1d arrays.
3839 plotting dictionaries, lists or tuples of 1d arrays.
3828
3840
3829 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3841 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3830 optimizations.
3842 optimizations.
3831
3843
3832 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3844 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3833 the information which was there from Janko's original IPP code:
3845 the information which was there from Janko's original IPP code:
3834
3846
3835 03.05.99 20:53 porto.ifm.uni-kiel.de
3847 03.05.99 20:53 porto.ifm.uni-kiel.de
3836 --Started changelog.
3848 --Started changelog.
3837 --make clear do what it say it does
3849 --make clear do what it say it does
3838 --added pretty output of lines from inputcache
3850 --added pretty output of lines from inputcache
3839 --Made Logger a mixin class, simplifies handling of switches
3851 --Made Logger a mixin class, simplifies handling of switches
3840 --Added own completer class. .string<TAB> expands to last history
3852 --Added own completer class. .string<TAB> expands to last history
3841 line which starts with string. The new expansion is also present
3853 line which starts with string. The new expansion is also present
3842 with Ctrl-r from the readline library. But this shows, who this
3854 with Ctrl-r from the readline library. But this shows, who this
3843 can be done for other cases.
3855 can be done for other cases.
3844 --Added convention that all shell functions should accept a
3856 --Added convention that all shell functions should accept a
3845 parameter_string This opens the door for different behaviour for
3857 parameter_string This opens the door for different behaviour for
3846 each function. @cd is a good example of this.
3858 each function. @cd is a good example of this.
3847
3859
3848 04.05.99 12:12 porto.ifm.uni-kiel.de
3860 04.05.99 12:12 porto.ifm.uni-kiel.de
3849 --added logfile rotation
3861 --added logfile rotation
3850 --added new mainloop method which freezes first the namespace
3862 --added new mainloop method which freezes first the namespace
3851
3863
3852 07.05.99 21:24 porto.ifm.uni-kiel.de
3864 07.05.99 21:24 porto.ifm.uni-kiel.de
3853 --added the docreader classes. Now there is a help system.
3865 --added the docreader classes. Now there is a help system.
3854 -This is only a first try. Currently it's not easy to put new
3866 -This is only a first try. Currently it's not easy to put new
3855 stuff in the indices. But this is the way to go. Info would be
3867 stuff in the indices. But this is the way to go. Info would be
3856 better, but HTML is every where and not everybody has an info
3868 better, but HTML is every where and not everybody has an info
3857 system installed and it's not so easy to change html-docs to info.
3869 system installed and it's not so easy to change html-docs to info.
3858 --added global logfile option
3870 --added global logfile option
3859 --there is now a hook for object inspection method pinfo needs to
3871 --there is now a hook for object inspection method pinfo needs to
3860 be provided for this. Can be reached by two '??'.
3872 be provided for this. Can be reached by two '??'.
3861
3873
3862 08.05.99 20:51 porto.ifm.uni-kiel.de
3874 08.05.99 20:51 porto.ifm.uni-kiel.de
3863 --added a README
3875 --added a README
3864 --bug in rc file. Something has changed so functions in the rc
3876 --bug in rc file. Something has changed so functions in the rc
3865 file need to reference the shell and not self. Not clear if it's a
3877 file need to reference the shell and not self. Not clear if it's a
3866 bug or feature.
3878 bug or feature.
3867 --changed rc file for new behavior
3879 --changed rc file for new behavior
3868
3880
3869 2004-07-15 Fernando Perez <fperez@colorado.edu>
3881 2004-07-15 Fernando Perez <fperez@colorado.edu>
3870
3882
3871 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3883 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3872 cache was falling out of sync in bizarre manners when multi-line
3884 cache was falling out of sync in bizarre manners when multi-line
3873 input was present. Minor optimizations and cleanup.
3885 input was present. Minor optimizations and cleanup.
3874
3886
3875 (Logger): Remove old Changelog info for cleanup. This is the
3887 (Logger): Remove old Changelog info for cleanup. This is the
3876 information which was there from Janko's original code:
3888 information which was there from Janko's original code:
3877
3889
3878 Changes to Logger: - made the default log filename a parameter
3890 Changes to Logger: - made the default log filename a parameter
3879
3891
3880 - put a check for lines beginning with !@? in log(). Needed
3892 - put a check for lines beginning with !@? in log(). Needed
3881 (even if the handlers properly log their lines) for mid-session
3893 (even if the handlers properly log their lines) for mid-session
3882 logging activation to work properly. Without this, lines logged
3894 logging activation to work properly. Without this, lines logged
3883 in mid session, which get read from the cache, would end up
3895 in mid session, which get read from the cache, would end up
3884 'bare' (with !@? in the open) in the log. Now they are caught
3896 'bare' (with !@? in the open) in the log. Now they are caught
3885 and prepended with a #.
3897 and prepended with a #.
3886
3898
3887 * IPython/iplib.py (InteractiveShell.init_readline): added check
3899 * IPython/iplib.py (InteractiveShell.init_readline): added check
3888 in case MagicCompleter fails to be defined, so we don't crash.
3900 in case MagicCompleter fails to be defined, so we don't crash.
3889
3901
3890 2004-07-13 Fernando Perez <fperez@colorado.edu>
3902 2004-07-13 Fernando Perez <fperez@colorado.edu>
3891
3903
3892 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3904 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3893 of EPS if the requested filename ends in '.eps'.
3905 of EPS if the requested filename ends in '.eps'.
3894
3906
3895 2004-07-04 Fernando Perez <fperez@colorado.edu>
3907 2004-07-04 Fernando Perez <fperez@colorado.edu>
3896
3908
3897 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3909 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3898 escaping of quotes when calling the shell.
3910 escaping of quotes when calling the shell.
3899
3911
3900 2004-07-02 Fernando Perez <fperez@colorado.edu>
3912 2004-07-02 Fernando Perez <fperez@colorado.edu>
3901
3913
3902 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3914 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3903 gettext not working because we were clobbering '_'. Fixes
3915 gettext not working because we were clobbering '_'. Fixes
3904 http://www.scipy.net/roundup/ipython/issue6.
3916 http://www.scipy.net/roundup/ipython/issue6.
3905
3917
3906 2004-07-01 Fernando Perez <fperez@colorado.edu>
3918 2004-07-01 Fernando Perez <fperez@colorado.edu>
3907
3919
3908 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3920 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3909 into @cd. Patch by Ville.
3921 into @cd. Patch by Ville.
3910
3922
3911 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3923 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3912 new function to store things after ipmaker runs. Patch by Ville.
3924 new function to store things after ipmaker runs. Patch by Ville.
3913 Eventually this will go away once ipmaker is removed and the class
3925 Eventually this will go away once ipmaker is removed and the class
3914 gets cleaned up, but for now it's ok. Key functionality here is
3926 gets cleaned up, but for now it's ok. Key functionality here is
3915 the addition of the persistent storage mechanism, a dict for
3927 the addition of the persistent storage mechanism, a dict for
3916 keeping data across sessions (for now just bookmarks, but more can
3928 keeping data across sessions (for now just bookmarks, but more can
3917 be implemented later).
3929 be implemented later).
3918
3930
3919 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3931 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3920 persistent across sections. Patch by Ville, I modified it
3932 persistent across sections. Patch by Ville, I modified it
3921 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3933 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3922 added a '-l' option to list all bookmarks.
3934 added a '-l' option to list all bookmarks.
3923
3935
3924 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3936 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3925 center for cleanup. Registered with atexit.register(). I moved
3937 center for cleanup. Registered with atexit.register(). I moved
3926 here the old exit_cleanup(). After a patch by Ville.
3938 here the old exit_cleanup(). After a patch by Ville.
3927
3939
3928 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3940 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3929 characters in the hacked shlex_split for python 2.2.
3941 characters in the hacked shlex_split for python 2.2.
3930
3942
3931 * IPython/iplib.py (file_matches): more fixes to filenames with
3943 * IPython/iplib.py (file_matches): more fixes to filenames with
3932 whitespace in them. It's not perfect, but limitations in python's
3944 whitespace in them. It's not perfect, but limitations in python's
3933 readline make it impossible to go further.
3945 readline make it impossible to go further.
3934
3946
3935 2004-06-29 Fernando Perez <fperez@colorado.edu>
3947 2004-06-29 Fernando Perez <fperez@colorado.edu>
3936
3948
3937 * IPython/iplib.py (file_matches): escape whitespace correctly in
3949 * IPython/iplib.py (file_matches): escape whitespace correctly in
3938 filename completions. Bug reported by Ville.
3950 filename completions. Bug reported by Ville.
3939
3951
3940 2004-06-28 Fernando Perez <fperez@colorado.edu>
3952 2004-06-28 Fernando Perez <fperez@colorado.edu>
3941
3953
3942 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3954 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3943 the history file will be called 'history-PROFNAME' (or just
3955 the history file will be called 'history-PROFNAME' (or just
3944 'history' if no profile is loaded). I was getting annoyed at
3956 'history' if no profile is loaded). I was getting annoyed at
3945 getting my Numerical work history clobbered by pysh sessions.
3957 getting my Numerical work history clobbered by pysh sessions.
3946
3958
3947 * IPython/iplib.py (InteractiveShell.__init__): Internal
3959 * IPython/iplib.py (InteractiveShell.__init__): Internal
3948 getoutputerror() function so that we can honor the system_verbose
3960 getoutputerror() function so that we can honor the system_verbose
3949 flag for _all_ system calls. I also added escaping of #
3961 flag for _all_ system calls. I also added escaping of #
3950 characters here to avoid confusing Itpl.
3962 characters here to avoid confusing Itpl.
3951
3963
3952 * IPython/Magic.py (shlex_split): removed call to shell in
3964 * IPython/Magic.py (shlex_split): removed call to shell in
3953 parse_options and replaced it with shlex.split(). The annoying
3965 parse_options and replaced it with shlex.split(). The annoying
3954 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3966 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3955 to backport it from 2.3, with several frail hacks (the shlex
3967 to backport it from 2.3, with several frail hacks (the shlex
3956 module is rather limited in 2.2). Thanks to a suggestion by Ville
3968 module is rather limited in 2.2). Thanks to a suggestion by Ville
3957 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3969 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3958 problem.
3970 problem.
3959
3971
3960 (Magic.magic_system_verbose): new toggle to print the actual
3972 (Magic.magic_system_verbose): new toggle to print the actual
3961 system calls made by ipython. Mainly for debugging purposes.
3973 system calls made by ipython. Mainly for debugging purposes.
3962
3974
3963 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3975 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3964 doesn't support persistence. Reported (and fix suggested) by
3976 doesn't support persistence. Reported (and fix suggested) by
3965 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3977 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3966
3978
3967 2004-06-26 Fernando Perez <fperez@colorado.edu>
3979 2004-06-26 Fernando Perez <fperez@colorado.edu>
3968
3980
3969 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3981 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3970 continue prompts.
3982 continue prompts.
3971
3983
3972 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3984 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3973 function (basically a big docstring) and a few more things here to
3985 function (basically a big docstring) and a few more things here to
3974 speedup startup. pysh.py is now very lightweight. We want because
3986 speedup startup. pysh.py is now very lightweight. We want because
3975 it gets execfile'd, while InterpreterExec gets imported, so
3987 it gets execfile'd, while InterpreterExec gets imported, so
3976 byte-compilation saves time.
3988 byte-compilation saves time.
3977
3989
3978 2004-06-25 Fernando Perez <fperez@colorado.edu>
3990 2004-06-25 Fernando Perez <fperez@colorado.edu>
3979
3991
3980 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3992 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3981 -NUM', which was recently broken.
3993 -NUM', which was recently broken.
3982
3994
3983 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3995 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3984 in multi-line input (but not !!, which doesn't make sense there).
3996 in multi-line input (but not !!, which doesn't make sense there).
3985
3997
3986 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3998 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3987 It's just too useful, and people can turn it off in the less
3999 It's just too useful, and people can turn it off in the less
3988 common cases where it's a problem.
4000 common cases where it's a problem.
3989
4001
3990 2004-06-24 Fernando Perez <fperez@colorado.edu>
4002 2004-06-24 Fernando Perez <fperez@colorado.edu>
3991
4003
3992 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4004 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3993 special syntaxes (like alias calling) is now allied in multi-line
4005 special syntaxes (like alias calling) is now allied in multi-line
3994 input. This is still _very_ experimental, but it's necessary for
4006 input. This is still _very_ experimental, but it's necessary for
3995 efficient shell usage combining python looping syntax with system
4007 efficient shell usage combining python looping syntax with system
3996 calls. For now it's restricted to aliases, I don't think it
4008 calls. For now it's restricted to aliases, I don't think it
3997 really even makes sense to have this for magics.
4009 really even makes sense to have this for magics.
3998
4010
3999 2004-06-23 Fernando Perez <fperez@colorado.edu>
4011 2004-06-23 Fernando Perez <fperez@colorado.edu>
4000
4012
4001 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4013 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4002 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4014 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4003
4015
4004 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4016 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4005 extensions under Windows (after code sent by Gary Bishop). The
4017 extensions under Windows (after code sent by Gary Bishop). The
4006 extensions considered 'executable' are stored in IPython's rc
4018 extensions considered 'executable' are stored in IPython's rc
4007 structure as win_exec_ext.
4019 structure as win_exec_ext.
4008
4020
4009 * IPython/genutils.py (shell): new function, like system() but
4021 * IPython/genutils.py (shell): new function, like system() but
4010 without return value. Very useful for interactive shell work.
4022 without return value. Very useful for interactive shell work.
4011
4023
4012 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4024 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4013 delete aliases.
4025 delete aliases.
4014
4026
4015 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4027 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4016 sure that the alias table doesn't contain python keywords.
4028 sure that the alias table doesn't contain python keywords.
4017
4029
4018 2004-06-21 Fernando Perez <fperez@colorado.edu>
4030 2004-06-21 Fernando Perez <fperez@colorado.edu>
4019
4031
4020 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4032 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4021 non-existent items are found in $PATH. Reported by Thorsten.
4033 non-existent items are found in $PATH. Reported by Thorsten.
4022
4034
4023 2004-06-20 Fernando Perez <fperez@colorado.edu>
4035 2004-06-20 Fernando Perez <fperez@colorado.edu>
4024
4036
4025 * IPython/iplib.py (complete): modified the completer so that the
4037 * IPython/iplib.py (complete): modified the completer so that the
4026 order of priorities can be easily changed at runtime.
4038 order of priorities can be easily changed at runtime.
4027
4039
4028 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4040 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4029 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4041 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4030
4042
4031 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4043 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4032 expand Python variables prepended with $ in all system calls. The
4044 expand Python variables prepended with $ in all system calls. The
4033 same was done to InteractiveShell.handle_shell_escape. Now all
4045 same was done to InteractiveShell.handle_shell_escape. Now all
4034 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4046 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4035 expansion of python variables and expressions according to the
4047 expansion of python variables and expressions according to the
4036 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4048 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4037
4049
4038 Though PEP-215 has been rejected, a similar (but simpler) one
4050 Though PEP-215 has been rejected, a similar (but simpler) one
4039 seems like it will go into Python 2.4, PEP-292 -
4051 seems like it will go into Python 2.4, PEP-292 -
4040 http://www.python.org/peps/pep-0292.html.
4052 http://www.python.org/peps/pep-0292.html.
4041
4053
4042 I'll keep the full syntax of PEP-215, since IPython has since the
4054 I'll keep the full syntax of PEP-215, since IPython has since the
4043 start used Ka-Ping Yee's reference implementation discussed there
4055 start used Ka-Ping Yee's reference implementation discussed there
4044 (Itpl), and I actually like the powerful semantics it offers.
4056 (Itpl), and I actually like the powerful semantics it offers.
4045
4057
4046 In order to access normal shell variables, the $ has to be escaped
4058 In order to access normal shell variables, the $ has to be escaped
4047 via an extra $. For example:
4059 via an extra $. For example:
4048
4060
4049 In [7]: PATH='a python variable'
4061 In [7]: PATH='a python variable'
4050
4062
4051 In [8]: !echo $PATH
4063 In [8]: !echo $PATH
4052 a python variable
4064 a python variable
4053
4065
4054 In [9]: !echo $$PATH
4066 In [9]: !echo $$PATH
4055 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4067 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4056
4068
4057 (Magic.parse_options): escape $ so the shell doesn't evaluate
4069 (Magic.parse_options): escape $ so the shell doesn't evaluate
4058 things prematurely.
4070 things prematurely.
4059
4071
4060 * IPython/iplib.py (InteractiveShell.call_alias): added the
4072 * IPython/iplib.py (InteractiveShell.call_alias): added the
4061 ability for aliases to expand python variables via $.
4073 ability for aliases to expand python variables via $.
4062
4074
4063 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4075 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4064 system, now there's a @rehash/@rehashx pair of magics. These work
4076 system, now there's a @rehash/@rehashx pair of magics. These work
4065 like the csh rehash command, and can be invoked at any time. They
4077 like the csh rehash command, and can be invoked at any time. They
4066 build a table of aliases to everything in the user's $PATH
4078 build a table of aliases to everything in the user's $PATH
4067 (@rehash uses everything, @rehashx is slower but only adds
4079 (@rehash uses everything, @rehashx is slower but only adds
4068 executable files). With this, the pysh.py-based shell profile can
4080 executable files). With this, the pysh.py-based shell profile can
4069 now simply call rehash upon startup, and full access to all
4081 now simply call rehash upon startup, and full access to all
4070 programs in the user's path is obtained.
4082 programs in the user's path is obtained.
4071
4083
4072 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4084 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4073 functionality is now fully in place. I removed the old dynamic
4085 functionality is now fully in place. I removed the old dynamic
4074 code generation based approach, in favor of a much lighter one
4086 code generation based approach, in favor of a much lighter one
4075 based on a simple dict. The advantage is that this allows me to
4087 based on a simple dict. The advantage is that this allows me to
4076 now have thousands of aliases with negligible cost (unthinkable
4088 now have thousands of aliases with negligible cost (unthinkable
4077 with the old system).
4089 with the old system).
4078
4090
4079 2004-06-19 Fernando Perez <fperez@colorado.edu>
4091 2004-06-19 Fernando Perez <fperez@colorado.edu>
4080
4092
4081 * IPython/iplib.py (__init__): extended MagicCompleter class to
4093 * IPython/iplib.py (__init__): extended MagicCompleter class to
4082 also complete (last in priority) on user aliases.
4094 also complete (last in priority) on user aliases.
4083
4095
4084 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4096 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4085 call to eval.
4097 call to eval.
4086 (ItplNS.__init__): Added a new class which functions like Itpl,
4098 (ItplNS.__init__): Added a new class which functions like Itpl,
4087 but allows configuring the namespace for the evaluation to occur
4099 but allows configuring the namespace for the evaluation to occur
4088 in.
4100 in.
4089
4101
4090 2004-06-18 Fernando Perez <fperez@colorado.edu>
4102 2004-06-18 Fernando Perez <fperez@colorado.edu>
4091
4103
4092 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4104 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4093 better message when 'exit' or 'quit' are typed (a common newbie
4105 better message when 'exit' or 'quit' are typed (a common newbie
4094 confusion).
4106 confusion).
4095
4107
4096 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4108 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4097 check for Windows users.
4109 check for Windows users.
4098
4110
4099 * IPython/iplib.py (InteractiveShell.user_setup): removed
4111 * IPython/iplib.py (InteractiveShell.user_setup): removed
4100 disabling of colors for Windows. I'll test at runtime and issue a
4112 disabling of colors for Windows. I'll test at runtime and issue a
4101 warning if Gary's readline isn't found, as to nudge users to
4113 warning if Gary's readline isn't found, as to nudge users to
4102 download it.
4114 download it.
4103
4115
4104 2004-06-16 Fernando Perez <fperez@colorado.edu>
4116 2004-06-16 Fernando Perez <fperez@colorado.edu>
4105
4117
4106 * IPython/genutils.py (Stream.__init__): changed to print errors
4118 * IPython/genutils.py (Stream.__init__): changed to print errors
4107 to sys.stderr. I had a circular dependency here. Now it's
4119 to sys.stderr. I had a circular dependency here. Now it's
4108 possible to run ipython as IDLE's shell (consider this pre-alpha,
4120 possible to run ipython as IDLE's shell (consider this pre-alpha,
4109 since true stdout things end up in the starting terminal instead
4121 since true stdout things end up in the starting terminal instead
4110 of IDLE's out).
4122 of IDLE's out).
4111
4123
4112 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4124 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4113 users who haven't # updated their prompt_in2 definitions. Remove
4125 users who haven't # updated their prompt_in2 definitions. Remove
4114 eventually.
4126 eventually.
4115 (multiple_replace): added credit to original ASPN recipe.
4127 (multiple_replace): added credit to original ASPN recipe.
4116
4128
4117 2004-06-15 Fernando Perez <fperez@colorado.edu>
4129 2004-06-15 Fernando Perez <fperez@colorado.edu>
4118
4130
4119 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4131 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4120 list of auto-defined aliases.
4132 list of auto-defined aliases.
4121
4133
4122 2004-06-13 Fernando Perez <fperez@colorado.edu>
4134 2004-06-13 Fernando Perez <fperez@colorado.edu>
4123
4135
4124 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4136 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4125 install was really requested (so setup.py can be used for other
4137 install was really requested (so setup.py can be used for other
4126 things under Windows).
4138 things under Windows).
4127
4139
4128 2004-06-10 Fernando Perez <fperez@colorado.edu>
4140 2004-06-10 Fernando Perez <fperez@colorado.edu>
4129
4141
4130 * IPython/Logger.py (Logger.create_log): Manually remove any old
4142 * IPython/Logger.py (Logger.create_log): Manually remove any old
4131 backup, since os.remove may fail under Windows. Fixes bug
4143 backup, since os.remove may fail under Windows. Fixes bug
4132 reported by Thorsten.
4144 reported by Thorsten.
4133
4145
4134 2004-06-09 Fernando Perez <fperez@colorado.edu>
4146 2004-06-09 Fernando Perez <fperez@colorado.edu>
4135
4147
4136 * examples/example-embed.py: fixed all references to %n (replaced
4148 * examples/example-embed.py: fixed all references to %n (replaced
4137 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4149 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4138 for all examples and the manual as well.
4150 for all examples and the manual as well.
4139
4151
4140 2004-06-08 Fernando Perez <fperez@colorado.edu>
4152 2004-06-08 Fernando Perez <fperez@colorado.edu>
4141
4153
4142 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4154 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4143 alignment and color management. All 3 prompt subsystems now
4155 alignment and color management. All 3 prompt subsystems now
4144 inherit from BasePrompt.
4156 inherit from BasePrompt.
4145
4157
4146 * tools/release: updates for windows installer build and tag rpms
4158 * tools/release: updates for windows installer build and tag rpms
4147 with python version (since paths are fixed).
4159 with python version (since paths are fixed).
4148
4160
4149 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4161 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4150 which will become eventually obsolete. Also fixed the default
4162 which will become eventually obsolete. Also fixed the default
4151 prompt_in2 to use \D, so at least new users start with the correct
4163 prompt_in2 to use \D, so at least new users start with the correct
4152 defaults.
4164 defaults.
4153 WARNING: Users with existing ipythonrc files will need to apply
4165 WARNING: Users with existing ipythonrc files will need to apply
4154 this fix manually!
4166 this fix manually!
4155
4167
4156 * setup.py: make windows installer (.exe). This is finally the
4168 * setup.py: make windows installer (.exe). This is finally the
4157 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4169 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4158 which I hadn't included because it required Python 2.3 (or recent
4170 which I hadn't included because it required Python 2.3 (or recent
4159 distutils).
4171 distutils).
4160
4172
4161 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4173 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4162 usage of new '\D' escape.
4174 usage of new '\D' escape.
4163
4175
4164 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4176 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4165 lacks os.getuid())
4177 lacks os.getuid())
4166 (CachedOutput.set_colors): Added the ability to turn coloring
4178 (CachedOutput.set_colors): Added the ability to turn coloring
4167 on/off with @colors even for manually defined prompt colors. It
4179 on/off with @colors even for manually defined prompt colors. It
4168 uses a nasty global, but it works safely and via the generic color
4180 uses a nasty global, but it works safely and via the generic color
4169 handling mechanism.
4181 handling mechanism.
4170 (Prompt2.__init__): Introduced new escape '\D' for continuation
4182 (Prompt2.__init__): Introduced new escape '\D' for continuation
4171 prompts. It represents the counter ('\#') as dots.
4183 prompts. It represents the counter ('\#') as dots.
4172 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4184 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4173 need to update their ipythonrc files and replace '%n' with '\D' in
4185 need to update their ipythonrc files and replace '%n' with '\D' in
4174 their prompt_in2 settings everywhere. Sorry, but there's
4186 their prompt_in2 settings everywhere. Sorry, but there's
4175 otherwise no clean way to get all prompts to properly align. The
4187 otherwise no clean way to get all prompts to properly align. The
4176 ipythonrc shipped with IPython has been updated.
4188 ipythonrc shipped with IPython has been updated.
4177
4189
4178 2004-06-07 Fernando Perez <fperez@colorado.edu>
4190 2004-06-07 Fernando Perez <fperez@colorado.edu>
4179
4191
4180 * setup.py (isfile): Pass local_icons option to latex2html, so the
4192 * setup.py (isfile): Pass local_icons option to latex2html, so the
4181 resulting HTML file is self-contained. Thanks to
4193 resulting HTML file is self-contained. Thanks to
4182 dryice-AT-liu.com.cn for the tip.
4194 dryice-AT-liu.com.cn for the tip.
4183
4195
4184 * pysh.py: I created a new profile 'shell', which implements a
4196 * pysh.py: I created a new profile 'shell', which implements a
4185 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4197 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4186 system shell, nor will it become one anytime soon. It's mainly
4198 system shell, nor will it become one anytime soon. It's mainly
4187 meant to illustrate the use of the new flexible bash-like prompts.
4199 meant to illustrate the use of the new flexible bash-like prompts.
4188 I guess it could be used by hardy souls for true shell management,
4200 I guess it could be used by hardy souls for true shell management,
4189 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4201 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4190 profile. This uses the InterpreterExec extension provided by
4202 profile. This uses the InterpreterExec extension provided by
4191 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4203 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4192
4204
4193 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4205 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4194 auto-align itself with the length of the previous input prompt
4206 auto-align itself with the length of the previous input prompt
4195 (taking into account the invisible color escapes).
4207 (taking into account the invisible color escapes).
4196 (CachedOutput.__init__): Large restructuring of this class. Now
4208 (CachedOutput.__init__): Large restructuring of this class. Now
4197 all three prompts (primary1, primary2, output) are proper objects,
4209 all three prompts (primary1, primary2, output) are proper objects,
4198 managed by the 'parent' CachedOutput class. The code is still a
4210 managed by the 'parent' CachedOutput class. The code is still a
4199 bit hackish (all prompts share state via a pointer to the cache),
4211 bit hackish (all prompts share state via a pointer to the cache),
4200 but it's overall far cleaner than before.
4212 but it's overall far cleaner than before.
4201
4213
4202 * IPython/genutils.py (getoutputerror): modified to add verbose,
4214 * IPython/genutils.py (getoutputerror): modified to add verbose,
4203 debug and header options. This makes the interface of all getout*
4215 debug and header options. This makes the interface of all getout*
4204 functions uniform.
4216 functions uniform.
4205 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4217 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4206
4218
4207 * IPython/Magic.py (Magic.default_option): added a function to
4219 * IPython/Magic.py (Magic.default_option): added a function to
4208 allow registering default options for any magic command. This
4220 allow registering default options for any magic command. This
4209 makes it easy to have profiles which customize the magics globally
4221 makes it easy to have profiles which customize the magics globally
4210 for a certain use. The values set through this function are
4222 for a certain use. The values set through this function are
4211 picked up by the parse_options() method, which all magics should
4223 picked up by the parse_options() method, which all magics should
4212 use to parse their options.
4224 use to parse their options.
4213
4225
4214 * IPython/genutils.py (warn): modified the warnings framework to
4226 * IPython/genutils.py (warn): modified the warnings framework to
4215 use the Term I/O class. I'm trying to slowly unify all of
4227 use the Term I/O class. I'm trying to slowly unify all of
4216 IPython's I/O operations to pass through Term.
4228 IPython's I/O operations to pass through Term.
4217
4229
4218 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4230 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4219 the secondary prompt to correctly match the length of the primary
4231 the secondary prompt to correctly match the length of the primary
4220 one for any prompt. Now multi-line code will properly line up
4232 one for any prompt. Now multi-line code will properly line up
4221 even for path dependent prompts, such as the new ones available
4233 even for path dependent prompts, such as the new ones available
4222 via the prompt_specials.
4234 via the prompt_specials.
4223
4235
4224 2004-06-06 Fernando Perez <fperez@colorado.edu>
4236 2004-06-06 Fernando Perez <fperez@colorado.edu>
4225
4237
4226 * IPython/Prompts.py (prompt_specials): Added the ability to have
4238 * IPython/Prompts.py (prompt_specials): Added the ability to have
4227 bash-like special sequences in the prompts, which get
4239 bash-like special sequences in the prompts, which get
4228 automatically expanded. Things like hostname, current working
4240 automatically expanded. Things like hostname, current working
4229 directory and username are implemented already, but it's easy to
4241 directory and username are implemented already, but it's easy to
4230 add more in the future. Thanks to a patch by W.J. van der Laan
4242 add more in the future. Thanks to a patch by W.J. van der Laan
4231 <gnufnork-AT-hetdigitalegat.nl>
4243 <gnufnork-AT-hetdigitalegat.nl>
4232 (prompt_specials): Added color support for prompt strings, so
4244 (prompt_specials): Added color support for prompt strings, so
4233 users can define arbitrary color setups for their prompts.
4245 users can define arbitrary color setups for their prompts.
4234
4246
4235 2004-06-05 Fernando Perez <fperez@colorado.edu>
4247 2004-06-05 Fernando Perez <fperez@colorado.edu>
4236
4248
4237 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4249 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4238 code to load Gary Bishop's readline and configure it
4250 code to load Gary Bishop's readline and configure it
4239 automatically. Thanks to Gary for help on this.
4251 automatically. Thanks to Gary for help on this.
4240
4252
4241 2004-06-01 Fernando Perez <fperez@colorado.edu>
4253 2004-06-01 Fernando Perez <fperez@colorado.edu>
4242
4254
4243 * IPython/Logger.py (Logger.create_log): fix bug for logging
4255 * IPython/Logger.py (Logger.create_log): fix bug for logging
4244 with no filename (previous fix was incomplete).
4256 with no filename (previous fix was incomplete).
4245
4257
4246 2004-05-25 Fernando Perez <fperez@colorado.edu>
4258 2004-05-25 Fernando Perez <fperez@colorado.edu>
4247
4259
4248 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4260 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4249 parens would get passed to the shell.
4261 parens would get passed to the shell.
4250
4262
4251 2004-05-20 Fernando Perez <fperez@colorado.edu>
4263 2004-05-20 Fernando Perez <fperez@colorado.edu>
4252
4264
4253 * IPython/Magic.py (Magic.magic_prun): changed default profile
4265 * IPython/Magic.py (Magic.magic_prun): changed default profile
4254 sort order to 'time' (the more common profiling need).
4266 sort order to 'time' (the more common profiling need).
4255
4267
4256 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4268 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4257 so that source code shown is guaranteed in sync with the file on
4269 so that source code shown is guaranteed in sync with the file on
4258 disk (also changed in psource). Similar fix to the one for
4270 disk (also changed in psource). Similar fix to the one for
4259 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4271 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4260 <yann.ledu-AT-noos.fr>.
4272 <yann.ledu-AT-noos.fr>.
4261
4273
4262 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4274 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4263 with a single option would not be correctly parsed. Closes
4275 with a single option would not be correctly parsed. Closes
4264 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4276 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4265 introduced in 0.6.0 (on 2004-05-06).
4277 introduced in 0.6.0 (on 2004-05-06).
4266
4278
4267 2004-05-13 *** Released version 0.6.0
4279 2004-05-13 *** Released version 0.6.0
4268
4280
4269 2004-05-13 Fernando Perez <fperez@colorado.edu>
4281 2004-05-13 Fernando Perez <fperez@colorado.edu>
4270
4282
4271 * debian/: Added debian/ directory to CVS, so that debian support
4283 * debian/: Added debian/ directory to CVS, so that debian support
4272 is publicly accessible. The debian package is maintained by Jack
4284 is publicly accessible. The debian package is maintained by Jack
4273 Moffit <jack-AT-xiph.org>.
4285 Moffit <jack-AT-xiph.org>.
4274
4286
4275 * Documentation: included the notes about an ipython-based system
4287 * Documentation: included the notes about an ipython-based system
4276 shell (the hypothetical 'pysh') into the new_design.pdf document,
4288 shell (the hypothetical 'pysh') into the new_design.pdf document,
4277 so that these ideas get distributed to users along with the
4289 so that these ideas get distributed to users along with the
4278 official documentation.
4290 official documentation.
4279
4291
4280 2004-05-10 Fernando Perez <fperez@colorado.edu>
4292 2004-05-10 Fernando Perez <fperez@colorado.edu>
4281
4293
4282 * IPython/Logger.py (Logger.create_log): fix recently introduced
4294 * IPython/Logger.py (Logger.create_log): fix recently introduced
4283 bug (misindented line) where logstart would fail when not given an
4295 bug (misindented line) where logstart would fail when not given an
4284 explicit filename.
4296 explicit filename.
4285
4297
4286 2004-05-09 Fernando Perez <fperez@colorado.edu>
4298 2004-05-09 Fernando Perez <fperez@colorado.edu>
4287
4299
4288 * IPython/Magic.py (Magic.parse_options): skip system call when
4300 * IPython/Magic.py (Magic.parse_options): skip system call when
4289 there are no options to look for. Faster, cleaner for the common
4301 there are no options to look for. Faster, cleaner for the common
4290 case.
4302 case.
4291
4303
4292 * Documentation: many updates to the manual: describing Windows
4304 * Documentation: many updates to the manual: describing Windows
4293 support better, Gnuplot updates, credits, misc small stuff. Also
4305 support better, Gnuplot updates, credits, misc small stuff. Also
4294 updated the new_design doc a bit.
4306 updated the new_design doc a bit.
4295
4307
4296 2004-05-06 *** Released version 0.6.0.rc1
4308 2004-05-06 *** Released version 0.6.0.rc1
4297
4309
4298 2004-05-06 Fernando Perez <fperez@colorado.edu>
4310 2004-05-06 Fernando Perez <fperez@colorado.edu>
4299
4311
4300 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4312 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4301 operations to use the vastly more efficient list/''.join() method.
4313 operations to use the vastly more efficient list/''.join() method.
4302 (FormattedTB.text): Fix
4314 (FormattedTB.text): Fix
4303 http://www.scipy.net/roundup/ipython/issue12 - exception source
4315 http://www.scipy.net/roundup/ipython/issue12 - exception source
4304 extract not updated after reload. Thanks to Mike Salib
4316 extract not updated after reload. Thanks to Mike Salib
4305 <msalib-AT-mit.edu> for pinning the source of the problem.
4317 <msalib-AT-mit.edu> for pinning the source of the problem.
4306 Fortunately, the solution works inside ipython and doesn't require
4318 Fortunately, the solution works inside ipython and doesn't require
4307 any changes to python proper.
4319 any changes to python proper.
4308
4320
4309 * IPython/Magic.py (Magic.parse_options): Improved to process the
4321 * IPython/Magic.py (Magic.parse_options): Improved to process the
4310 argument list as a true shell would (by actually using the
4322 argument list as a true shell would (by actually using the
4311 underlying system shell). This way, all @magics automatically get
4323 underlying system shell). This way, all @magics automatically get
4312 shell expansion for variables. Thanks to a comment by Alex
4324 shell expansion for variables. Thanks to a comment by Alex
4313 Schmolck.
4325 Schmolck.
4314
4326
4315 2004-04-04 Fernando Perez <fperez@colorado.edu>
4327 2004-04-04 Fernando Perez <fperez@colorado.edu>
4316
4328
4317 * IPython/iplib.py (InteractiveShell.interact): Added a special
4329 * IPython/iplib.py (InteractiveShell.interact): Added a special
4318 trap for a debugger quit exception, which is basically impossible
4330 trap for a debugger quit exception, which is basically impossible
4319 to handle by normal mechanisms, given what pdb does to the stack.
4331 to handle by normal mechanisms, given what pdb does to the stack.
4320 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4332 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4321
4333
4322 2004-04-03 Fernando Perez <fperez@colorado.edu>
4334 2004-04-03 Fernando Perez <fperez@colorado.edu>
4323
4335
4324 * IPython/genutils.py (Term): Standardized the names of the Term
4336 * IPython/genutils.py (Term): Standardized the names of the Term
4325 class streams to cin/cout/cerr, following C++ naming conventions
4337 class streams to cin/cout/cerr, following C++ naming conventions
4326 (I can't use in/out/err because 'in' is not a valid attribute
4338 (I can't use in/out/err because 'in' is not a valid attribute
4327 name).
4339 name).
4328
4340
4329 * IPython/iplib.py (InteractiveShell.interact): don't increment
4341 * IPython/iplib.py (InteractiveShell.interact): don't increment
4330 the prompt if there's no user input. By Daniel 'Dang' Griffith
4342 the prompt if there's no user input. By Daniel 'Dang' Griffith
4331 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4343 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4332 Francois Pinard.
4344 Francois Pinard.
4333
4345
4334 2004-04-02 Fernando Perez <fperez@colorado.edu>
4346 2004-04-02 Fernando Perez <fperez@colorado.edu>
4335
4347
4336 * IPython/genutils.py (Stream.__init__): Modified to survive at
4348 * IPython/genutils.py (Stream.__init__): Modified to survive at
4337 least importing in contexts where stdin/out/err aren't true file
4349 least importing in contexts where stdin/out/err aren't true file
4338 objects, such as PyCrust (they lack fileno() and mode). However,
4350 objects, such as PyCrust (they lack fileno() and mode). However,
4339 the recovery facilities which rely on these things existing will
4351 the recovery facilities which rely on these things existing will
4340 not work.
4352 not work.
4341
4353
4342 2004-04-01 Fernando Perez <fperez@colorado.edu>
4354 2004-04-01 Fernando Perez <fperez@colorado.edu>
4343
4355
4344 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4356 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4345 use the new getoutputerror() function, so it properly
4357 use the new getoutputerror() function, so it properly
4346 distinguishes stdout/err.
4358 distinguishes stdout/err.
4347
4359
4348 * IPython/genutils.py (getoutputerror): added a function to
4360 * IPython/genutils.py (getoutputerror): added a function to
4349 capture separately the standard output and error of a command.
4361 capture separately the standard output and error of a command.
4350 After a comment from dang on the mailing lists. This code is
4362 After a comment from dang on the mailing lists. This code is
4351 basically a modified version of commands.getstatusoutput(), from
4363 basically a modified version of commands.getstatusoutput(), from
4352 the standard library.
4364 the standard library.
4353
4365
4354 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4366 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4355 '!!' as a special syntax (shorthand) to access @sx.
4367 '!!' as a special syntax (shorthand) to access @sx.
4356
4368
4357 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4369 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4358 command and return its output as a list split on '\n'.
4370 command and return its output as a list split on '\n'.
4359
4371
4360 2004-03-31 Fernando Perez <fperez@colorado.edu>
4372 2004-03-31 Fernando Perez <fperez@colorado.edu>
4361
4373
4362 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4374 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4363 method to dictionaries used as FakeModule instances if they lack
4375 method to dictionaries used as FakeModule instances if they lack
4364 it. At least pydoc in python2.3 breaks for runtime-defined
4376 it. At least pydoc in python2.3 breaks for runtime-defined
4365 functions without this hack. At some point I need to _really_
4377 functions without this hack. At some point I need to _really_
4366 understand what FakeModule is doing, because it's a gross hack.
4378 understand what FakeModule is doing, because it's a gross hack.
4367 But it solves Arnd's problem for now...
4379 But it solves Arnd's problem for now...
4368
4380
4369 2004-02-27 Fernando Perez <fperez@colorado.edu>
4381 2004-02-27 Fernando Perez <fperez@colorado.edu>
4370
4382
4371 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4383 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4372 mode would behave erratically. Also increased the number of
4384 mode would behave erratically. Also increased the number of
4373 possible logs in rotate mod to 999. Thanks to Rod Holland
4385 possible logs in rotate mod to 999. Thanks to Rod Holland
4374 <rhh@StructureLABS.com> for the report and fixes.
4386 <rhh@StructureLABS.com> for the report and fixes.
4375
4387
4376 2004-02-26 Fernando Perez <fperez@colorado.edu>
4388 2004-02-26 Fernando Perez <fperez@colorado.edu>
4377
4389
4378 * IPython/genutils.py (page): Check that the curses module really
4390 * IPython/genutils.py (page): Check that the curses module really
4379 has the initscr attribute before trying to use it. For some
4391 has the initscr attribute before trying to use it. For some
4380 reason, the Solaris curses module is missing this. I think this
4392 reason, the Solaris curses module is missing this. I think this
4381 should be considered a Solaris python bug, but I'm not sure.
4393 should be considered a Solaris python bug, but I'm not sure.
4382
4394
4383 2004-01-17 Fernando Perez <fperez@colorado.edu>
4395 2004-01-17 Fernando Perez <fperez@colorado.edu>
4384
4396
4385 * IPython/genutils.py (Stream.__init__): Changes to try to make
4397 * IPython/genutils.py (Stream.__init__): Changes to try to make
4386 ipython robust against stdin/out/err being closed by the user.
4398 ipython robust against stdin/out/err being closed by the user.
4387 This is 'user error' (and blocks a normal python session, at least
4399 This is 'user error' (and blocks a normal python session, at least
4388 the stdout case). However, Ipython should be able to survive such
4400 the stdout case). However, Ipython should be able to survive such
4389 instances of abuse as gracefully as possible. To simplify the
4401 instances of abuse as gracefully as possible. To simplify the
4390 coding and maintain compatibility with Gary Bishop's Term
4402 coding and maintain compatibility with Gary Bishop's Term
4391 contributions, I've made use of classmethods for this. I think
4403 contributions, I've made use of classmethods for this. I think
4392 this introduces a dependency on python 2.2.
4404 this introduces a dependency on python 2.2.
4393
4405
4394 2004-01-13 Fernando Perez <fperez@colorado.edu>
4406 2004-01-13 Fernando Perez <fperez@colorado.edu>
4395
4407
4396 * IPython/numutils.py (exp_safe): simplified the code a bit and
4408 * IPython/numutils.py (exp_safe): simplified the code a bit and
4397 removed the need for importing the kinds module altogether.
4409 removed the need for importing the kinds module altogether.
4398
4410
4399 2004-01-06 Fernando Perez <fperez@colorado.edu>
4411 2004-01-06 Fernando Perez <fperez@colorado.edu>
4400
4412
4401 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4413 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4402 a magic function instead, after some community feedback. No
4414 a magic function instead, after some community feedback. No
4403 special syntax will exist for it, but its name is deliberately
4415 special syntax will exist for it, but its name is deliberately
4404 very short.
4416 very short.
4405
4417
4406 2003-12-20 Fernando Perez <fperez@colorado.edu>
4418 2003-12-20 Fernando Perez <fperez@colorado.edu>
4407
4419
4408 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4420 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4409 new functionality, to automagically assign the result of a shell
4421 new functionality, to automagically assign the result of a shell
4410 command to a variable. I'll solicit some community feedback on
4422 command to a variable. I'll solicit some community feedback on
4411 this before making it permanent.
4423 this before making it permanent.
4412
4424
4413 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4425 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4414 requested about callables for which inspect couldn't obtain a
4426 requested about callables for which inspect couldn't obtain a
4415 proper argspec. Thanks to a crash report sent by Etienne
4427 proper argspec. Thanks to a crash report sent by Etienne
4416 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4428 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4417
4429
4418 2003-12-09 Fernando Perez <fperez@colorado.edu>
4430 2003-12-09 Fernando Perez <fperez@colorado.edu>
4419
4431
4420 * IPython/genutils.py (page): patch for the pager to work across
4432 * IPython/genutils.py (page): patch for the pager to work across
4421 various versions of Windows. By Gary Bishop.
4433 various versions of Windows. By Gary Bishop.
4422
4434
4423 2003-12-04 Fernando Perez <fperez@colorado.edu>
4435 2003-12-04 Fernando Perez <fperez@colorado.edu>
4424
4436
4425 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4437 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4426 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4438 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4427 While I tested this and it looks ok, there may still be corner
4439 While I tested this and it looks ok, there may still be corner
4428 cases I've missed.
4440 cases I've missed.
4429
4441
4430 2003-12-01 Fernando Perez <fperez@colorado.edu>
4442 2003-12-01 Fernando Perez <fperez@colorado.edu>
4431
4443
4432 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4444 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4433 where a line like 'p,q=1,2' would fail because the automagic
4445 where a line like 'p,q=1,2' would fail because the automagic
4434 system would be triggered for @p.
4446 system would be triggered for @p.
4435
4447
4436 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4448 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4437 cleanups, code unmodified.
4449 cleanups, code unmodified.
4438
4450
4439 * IPython/genutils.py (Term): added a class for IPython to handle
4451 * IPython/genutils.py (Term): added a class for IPython to handle
4440 output. In most cases it will just be a proxy for stdout/err, but
4452 output. In most cases it will just be a proxy for stdout/err, but
4441 having this allows modifications to be made for some platforms,
4453 having this allows modifications to be made for some platforms,
4442 such as handling color escapes under Windows. All of this code
4454 such as handling color escapes under Windows. All of this code
4443 was contributed by Gary Bishop, with minor modifications by me.
4455 was contributed by Gary Bishop, with minor modifications by me.
4444 The actual changes affect many files.
4456 The actual changes affect many files.
4445
4457
4446 2003-11-30 Fernando Perez <fperez@colorado.edu>
4458 2003-11-30 Fernando Perez <fperez@colorado.edu>
4447
4459
4448 * IPython/iplib.py (file_matches): new completion code, courtesy
4460 * IPython/iplib.py (file_matches): new completion code, courtesy
4449 of Jeff Collins. This enables filename completion again under
4461 of Jeff Collins. This enables filename completion again under
4450 python 2.3, which disabled it at the C level.
4462 python 2.3, which disabled it at the C level.
4451
4463
4452 2003-11-11 Fernando Perez <fperez@colorado.edu>
4464 2003-11-11 Fernando Perez <fperez@colorado.edu>
4453
4465
4454 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4466 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4455 for Numeric.array(map(...)), but often convenient.
4467 for Numeric.array(map(...)), but often convenient.
4456
4468
4457 2003-11-05 Fernando Perez <fperez@colorado.edu>
4469 2003-11-05 Fernando Perez <fperez@colorado.edu>
4458
4470
4459 * IPython/numutils.py (frange): Changed a call from int() to
4471 * IPython/numutils.py (frange): Changed a call from int() to
4460 int(round()) to prevent a problem reported with arange() in the
4472 int(round()) to prevent a problem reported with arange() in the
4461 numpy list.
4473 numpy list.
4462
4474
4463 2003-10-06 Fernando Perez <fperez@colorado.edu>
4475 2003-10-06 Fernando Perez <fperez@colorado.edu>
4464
4476
4465 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4477 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4466 prevent crashes if sys lacks an argv attribute (it happens with
4478 prevent crashes if sys lacks an argv attribute (it happens with
4467 embedded interpreters which build a bare-bones sys module).
4479 embedded interpreters which build a bare-bones sys module).
4468 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4480 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4469
4481
4470 2003-09-24 Fernando Perez <fperez@colorado.edu>
4482 2003-09-24 Fernando Perez <fperez@colorado.edu>
4471
4483
4472 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4484 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4473 to protect against poorly written user objects where __getattr__
4485 to protect against poorly written user objects where __getattr__
4474 raises exceptions other than AttributeError. Thanks to a bug
4486 raises exceptions other than AttributeError. Thanks to a bug
4475 report by Oliver Sander <osander-AT-gmx.de>.
4487 report by Oliver Sander <osander-AT-gmx.de>.
4476
4488
4477 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4489 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4478 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4490 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4479
4491
4480 2003-09-09 Fernando Perez <fperez@colorado.edu>
4492 2003-09-09 Fernando Perez <fperez@colorado.edu>
4481
4493
4482 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4494 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4483 unpacking a list whith a callable as first element would
4495 unpacking a list whith a callable as first element would
4484 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4496 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4485 Collins.
4497 Collins.
4486
4498
4487 2003-08-25 *** Released version 0.5.0
4499 2003-08-25 *** Released version 0.5.0
4488
4500
4489 2003-08-22 Fernando Perez <fperez@colorado.edu>
4501 2003-08-22 Fernando Perez <fperez@colorado.edu>
4490
4502
4491 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4503 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4492 improperly defined user exceptions. Thanks to feedback from Mark
4504 improperly defined user exceptions. Thanks to feedback from Mark
4493 Russell <mrussell-AT-verio.net>.
4505 Russell <mrussell-AT-verio.net>.
4494
4506
4495 2003-08-20 Fernando Perez <fperez@colorado.edu>
4507 2003-08-20 Fernando Perez <fperez@colorado.edu>
4496
4508
4497 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4509 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4498 printing so that it would print multi-line string forms starting
4510 printing so that it would print multi-line string forms starting
4499 with a new line. This way the formatting is better respected for
4511 with a new line. This way the formatting is better respected for
4500 objects which work hard to make nice string forms.
4512 objects which work hard to make nice string forms.
4501
4513
4502 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4514 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4503 autocall would overtake data access for objects with both
4515 autocall would overtake data access for objects with both
4504 __getitem__ and __call__.
4516 __getitem__ and __call__.
4505
4517
4506 2003-08-19 *** Released version 0.5.0-rc1
4518 2003-08-19 *** Released version 0.5.0-rc1
4507
4519
4508 2003-08-19 Fernando Perez <fperez@colorado.edu>
4520 2003-08-19 Fernando Perez <fperez@colorado.edu>
4509
4521
4510 * IPython/deep_reload.py (load_tail): single tiny change here
4522 * IPython/deep_reload.py (load_tail): single tiny change here
4511 seems to fix the long-standing bug of dreload() failing to work
4523 seems to fix the long-standing bug of dreload() failing to work
4512 for dotted names. But this module is pretty tricky, so I may have
4524 for dotted names. But this module is pretty tricky, so I may have
4513 missed some subtlety. Needs more testing!.
4525 missed some subtlety. Needs more testing!.
4514
4526
4515 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4527 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4516 exceptions which have badly implemented __str__ methods.
4528 exceptions which have badly implemented __str__ methods.
4517 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4529 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4518 which I've been getting reports about from Python 2.3 users. I
4530 which I've been getting reports about from Python 2.3 users. I
4519 wish I had a simple test case to reproduce the problem, so I could
4531 wish I had a simple test case to reproduce the problem, so I could
4520 either write a cleaner workaround or file a bug report if
4532 either write a cleaner workaround or file a bug report if
4521 necessary.
4533 necessary.
4522
4534
4523 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4535 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4524 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4536 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4525 a bug report by Tjabo Kloppenburg.
4537 a bug report by Tjabo Kloppenburg.
4526
4538
4527 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4539 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4528 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4540 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4529 seems rather unstable. Thanks to a bug report by Tjabo
4541 seems rather unstable. Thanks to a bug report by Tjabo
4530 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4542 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4531
4543
4532 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4544 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4533 this out soon because of the critical fixes in the inner loop for
4545 this out soon because of the critical fixes in the inner loop for
4534 generators.
4546 generators.
4535
4547
4536 * IPython/Magic.py (Magic.getargspec): removed. This (and
4548 * IPython/Magic.py (Magic.getargspec): removed. This (and
4537 _get_def) have been obsoleted by OInspect for a long time, I
4549 _get_def) have been obsoleted by OInspect for a long time, I
4538 hadn't noticed that they were dead code.
4550 hadn't noticed that they were dead code.
4539 (Magic._ofind): restored _ofind functionality for a few literals
4551 (Magic._ofind): restored _ofind functionality for a few literals
4540 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4552 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4541 for things like "hello".capitalize?, since that would require a
4553 for things like "hello".capitalize?, since that would require a
4542 potentially dangerous eval() again.
4554 potentially dangerous eval() again.
4543
4555
4544 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4556 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4545 logic a bit more to clean up the escapes handling and minimize the
4557 logic a bit more to clean up the escapes handling and minimize the
4546 use of _ofind to only necessary cases. The interactive 'feel' of
4558 use of _ofind to only necessary cases. The interactive 'feel' of
4547 IPython should have improved quite a bit with the changes in
4559 IPython should have improved quite a bit with the changes in
4548 _prefilter and _ofind (besides being far safer than before).
4560 _prefilter and _ofind (besides being far safer than before).
4549
4561
4550 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4562 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4551 obscure, never reported). Edit would fail to find the object to
4563 obscure, never reported). Edit would fail to find the object to
4552 edit under some circumstances.
4564 edit under some circumstances.
4553 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4565 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4554 which were causing double-calling of generators. Those eval calls
4566 which were causing double-calling of generators. Those eval calls
4555 were _very_ dangerous, since code with side effects could be
4567 were _very_ dangerous, since code with side effects could be
4556 triggered. As they say, 'eval is evil'... These were the
4568 triggered. As they say, 'eval is evil'... These were the
4557 nastiest evals in IPython. Besides, _ofind is now far simpler,
4569 nastiest evals in IPython. Besides, _ofind is now far simpler,
4558 and it should also be quite a bit faster. Its use of inspect is
4570 and it should also be quite a bit faster. Its use of inspect is
4559 also safer, so perhaps some of the inspect-related crashes I've
4571 also safer, so perhaps some of the inspect-related crashes I've
4560 seen lately with Python 2.3 might be taken care of. That will
4572 seen lately with Python 2.3 might be taken care of. That will
4561 need more testing.
4573 need more testing.
4562
4574
4563 2003-08-17 Fernando Perez <fperez@colorado.edu>
4575 2003-08-17 Fernando Perez <fperez@colorado.edu>
4564
4576
4565 * IPython/iplib.py (InteractiveShell._prefilter): significant
4577 * IPython/iplib.py (InteractiveShell._prefilter): significant
4566 simplifications to the logic for handling user escapes. Faster
4578 simplifications to the logic for handling user escapes. Faster
4567 and simpler code.
4579 and simpler code.
4568
4580
4569 2003-08-14 Fernando Perez <fperez@colorado.edu>
4581 2003-08-14 Fernando Perez <fperez@colorado.edu>
4570
4582
4571 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4583 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4572 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4584 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4573 but it should be quite a bit faster. And the recursive version
4585 but it should be quite a bit faster. And the recursive version
4574 generated O(log N) intermediate storage for all rank>1 arrays,
4586 generated O(log N) intermediate storage for all rank>1 arrays,
4575 even if they were contiguous.
4587 even if they were contiguous.
4576 (l1norm): Added this function.
4588 (l1norm): Added this function.
4577 (norm): Added this function for arbitrary norms (including
4589 (norm): Added this function for arbitrary norms (including
4578 l-infinity). l1 and l2 are still special cases for convenience
4590 l-infinity). l1 and l2 are still special cases for convenience
4579 and speed.
4591 and speed.
4580
4592
4581 2003-08-03 Fernando Perez <fperez@colorado.edu>
4593 2003-08-03 Fernando Perez <fperez@colorado.edu>
4582
4594
4583 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4595 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4584 exceptions, which now raise PendingDeprecationWarnings in Python
4596 exceptions, which now raise PendingDeprecationWarnings in Python
4585 2.3. There were some in Magic and some in Gnuplot2.
4597 2.3. There were some in Magic and some in Gnuplot2.
4586
4598
4587 2003-06-30 Fernando Perez <fperez@colorado.edu>
4599 2003-06-30 Fernando Perez <fperez@colorado.edu>
4588
4600
4589 * IPython/genutils.py (page): modified to call curses only for
4601 * IPython/genutils.py (page): modified to call curses only for
4590 terminals where TERM=='xterm'. After problems under many other
4602 terminals where TERM=='xterm'. After problems under many other
4591 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4603 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4592
4604
4593 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4605 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4594 would be triggered when readline was absent. This was just an old
4606 would be triggered when readline was absent. This was just an old
4595 debugging statement I'd forgotten to take out.
4607 debugging statement I'd forgotten to take out.
4596
4608
4597 2003-06-20 Fernando Perez <fperez@colorado.edu>
4609 2003-06-20 Fernando Perez <fperez@colorado.edu>
4598
4610
4599 * IPython/genutils.py (clock): modified to return only user time
4611 * IPython/genutils.py (clock): modified to return only user time
4600 (not counting system time), after a discussion on scipy. While
4612 (not counting system time), after a discussion on scipy. While
4601 system time may be a useful quantity occasionally, it may much
4613 system time may be a useful quantity occasionally, it may much
4602 more easily be skewed by occasional swapping or other similar
4614 more easily be skewed by occasional swapping or other similar
4603 activity.
4615 activity.
4604
4616
4605 2003-06-05 Fernando Perez <fperez@colorado.edu>
4617 2003-06-05 Fernando Perez <fperez@colorado.edu>
4606
4618
4607 * IPython/numutils.py (identity): new function, for building
4619 * IPython/numutils.py (identity): new function, for building
4608 arbitrary rank Kronecker deltas (mostly backwards compatible with
4620 arbitrary rank Kronecker deltas (mostly backwards compatible with
4609 Numeric.identity)
4621 Numeric.identity)
4610
4622
4611 2003-06-03 Fernando Perez <fperez@colorado.edu>
4623 2003-06-03 Fernando Perez <fperez@colorado.edu>
4612
4624
4613 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4625 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4614 arguments passed to magics with spaces, to allow trailing '\' to
4626 arguments passed to magics with spaces, to allow trailing '\' to
4615 work normally (mainly for Windows users).
4627 work normally (mainly for Windows users).
4616
4628
4617 2003-05-29 Fernando Perez <fperez@colorado.edu>
4629 2003-05-29 Fernando Perez <fperez@colorado.edu>
4618
4630
4619 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4631 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4620 instead of pydoc.help. This fixes a bizarre behavior where
4632 instead of pydoc.help. This fixes a bizarre behavior where
4621 printing '%s' % locals() would trigger the help system. Now
4633 printing '%s' % locals() would trigger the help system. Now
4622 ipython behaves like normal python does.
4634 ipython behaves like normal python does.
4623
4635
4624 Note that if one does 'from pydoc import help', the bizarre
4636 Note that if one does 'from pydoc import help', the bizarre
4625 behavior returns, but this will also happen in normal python, so
4637 behavior returns, but this will also happen in normal python, so
4626 it's not an ipython bug anymore (it has to do with how pydoc.help
4638 it's not an ipython bug anymore (it has to do with how pydoc.help
4627 is implemented).
4639 is implemented).
4628
4640
4629 2003-05-22 Fernando Perez <fperez@colorado.edu>
4641 2003-05-22 Fernando Perez <fperez@colorado.edu>
4630
4642
4631 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4643 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4632 return [] instead of None when nothing matches, also match to end
4644 return [] instead of None when nothing matches, also match to end
4633 of line. Patch by Gary Bishop.
4645 of line. Patch by Gary Bishop.
4634
4646
4635 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4647 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4636 protection as before, for files passed on the command line. This
4648 protection as before, for files passed on the command line. This
4637 prevents the CrashHandler from kicking in if user files call into
4649 prevents the CrashHandler from kicking in if user files call into
4638 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4650 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4639 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4651 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4640
4652
4641 2003-05-20 *** Released version 0.4.0
4653 2003-05-20 *** Released version 0.4.0
4642
4654
4643 2003-05-20 Fernando Perez <fperez@colorado.edu>
4655 2003-05-20 Fernando Perez <fperez@colorado.edu>
4644
4656
4645 * setup.py: added support for manpages. It's a bit hackish b/c of
4657 * setup.py: added support for manpages. It's a bit hackish b/c of
4646 a bug in the way the bdist_rpm distutils target handles gzipped
4658 a bug in the way the bdist_rpm distutils target handles gzipped
4647 manpages, but it works. After a patch by Jack.
4659 manpages, but it works. After a patch by Jack.
4648
4660
4649 2003-05-19 Fernando Perez <fperez@colorado.edu>
4661 2003-05-19 Fernando Perez <fperez@colorado.edu>
4650
4662
4651 * IPython/numutils.py: added a mockup of the kinds module, since
4663 * IPython/numutils.py: added a mockup of the kinds module, since
4652 it was recently removed from Numeric. This way, numutils will
4664 it was recently removed from Numeric. This way, numutils will
4653 work for all users even if they are missing kinds.
4665 work for all users even if they are missing kinds.
4654
4666
4655 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4667 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4656 failure, which can occur with SWIG-wrapped extensions. After a
4668 failure, which can occur with SWIG-wrapped extensions. After a
4657 crash report from Prabhu.
4669 crash report from Prabhu.
4658
4670
4659 2003-05-16 Fernando Perez <fperez@colorado.edu>
4671 2003-05-16 Fernando Perez <fperez@colorado.edu>
4660
4672
4661 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4673 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4662 protect ipython from user code which may call directly
4674 protect ipython from user code which may call directly
4663 sys.excepthook (this looks like an ipython crash to the user, even
4675 sys.excepthook (this looks like an ipython crash to the user, even
4664 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4676 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4665 This is especially important to help users of WxWindows, but may
4677 This is especially important to help users of WxWindows, but may
4666 also be useful in other cases.
4678 also be useful in other cases.
4667
4679
4668 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4680 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4669 an optional tb_offset to be specified, and to preserve exception
4681 an optional tb_offset to be specified, and to preserve exception
4670 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4682 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4671
4683
4672 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4684 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4673
4685
4674 2003-05-15 Fernando Perez <fperez@colorado.edu>
4686 2003-05-15 Fernando Perez <fperez@colorado.edu>
4675
4687
4676 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4688 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4677 installing for a new user under Windows.
4689 installing for a new user under Windows.
4678
4690
4679 2003-05-12 Fernando Perez <fperez@colorado.edu>
4691 2003-05-12 Fernando Perez <fperez@colorado.edu>
4680
4692
4681 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4693 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4682 handler for Emacs comint-based lines. Currently it doesn't do
4694 handler for Emacs comint-based lines. Currently it doesn't do
4683 much (but importantly, it doesn't update the history cache). In
4695 much (but importantly, it doesn't update the history cache). In
4684 the future it may be expanded if Alex needs more functionality
4696 the future it may be expanded if Alex needs more functionality
4685 there.
4697 there.
4686
4698
4687 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4699 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4688 info to crash reports.
4700 info to crash reports.
4689
4701
4690 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4702 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4691 just like Python's -c. Also fixed crash with invalid -color
4703 just like Python's -c. Also fixed crash with invalid -color
4692 option value at startup. Thanks to Will French
4704 option value at startup. Thanks to Will French
4693 <wfrench-AT-bestweb.net> for the bug report.
4705 <wfrench-AT-bestweb.net> for the bug report.
4694
4706
4695 2003-05-09 Fernando Perez <fperez@colorado.edu>
4707 2003-05-09 Fernando Perez <fperez@colorado.edu>
4696
4708
4697 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4709 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4698 to EvalDict (it's a mapping, after all) and simplified its code
4710 to EvalDict (it's a mapping, after all) and simplified its code
4699 quite a bit, after a nice discussion on c.l.py where Gustavo
4711 quite a bit, after a nice discussion on c.l.py where Gustavo
4700 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4712 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4701
4713
4702 2003-04-30 Fernando Perez <fperez@colorado.edu>
4714 2003-04-30 Fernando Perez <fperez@colorado.edu>
4703
4715
4704 * IPython/genutils.py (timings_out): modified it to reduce its
4716 * IPython/genutils.py (timings_out): modified it to reduce its
4705 overhead in the common reps==1 case.
4717 overhead in the common reps==1 case.
4706
4718
4707 2003-04-29 Fernando Perez <fperez@colorado.edu>
4719 2003-04-29 Fernando Perez <fperez@colorado.edu>
4708
4720
4709 * IPython/genutils.py (timings_out): Modified to use the resource
4721 * IPython/genutils.py (timings_out): Modified to use the resource
4710 module, which avoids the wraparound problems of time.clock().
4722 module, which avoids the wraparound problems of time.clock().
4711
4723
4712 2003-04-17 *** Released version 0.2.15pre4
4724 2003-04-17 *** Released version 0.2.15pre4
4713
4725
4714 2003-04-17 Fernando Perez <fperez@colorado.edu>
4726 2003-04-17 Fernando Perez <fperez@colorado.edu>
4715
4727
4716 * setup.py (scriptfiles): Split windows-specific stuff over to a
4728 * setup.py (scriptfiles): Split windows-specific stuff over to a
4717 separate file, in an attempt to have a Windows GUI installer.
4729 separate file, in an attempt to have a Windows GUI installer.
4718 That didn't work, but part of the groundwork is done.
4730 That didn't work, but part of the groundwork is done.
4719
4731
4720 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4732 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4721 indent/unindent with 4 spaces. Particularly useful in combination
4733 indent/unindent with 4 spaces. Particularly useful in combination
4722 with the new auto-indent option.
4734 with the new auto-indent option.
4723
4735
4724 2003-04-16 Fernando Perez <fperez@colorado.edu>
4736 2003-04-16 Fernando Perez <fperez@colorado.edu>
4725
4737
4726 * IPython/Magic.py: various replacements of self.rc for
4738 * IPython/Magic.py: various replacements of self.rc for
4727 self.shell.rc. A lot more remains to be done to fully disentangle
4739 self.shell.rc. A lot more remains to be done to fully disentangle
4728 this class from the main Shell class.
4740 this class from the main Shell class.
4729
4741
4730 * IPython/GnuplotRuntime.py: added checks for mouse support so
4742 * IPython/GnuplotRuntime.py: added checks for mouse support so
4731 that we don't try to enable it if the current gnuplot doesn't
4743 that we don't try to enable it if the current gnuplot doesn't
4732 really support it. Also added checks so that we don't try to
4744 really support it. Also added checks so that we don't try to
4733 enable persist under Windows (where Gnuplot doesn't recognize the
4745 enable persist under Windows (where Gnuplot doesn't recognize the
4734 option).
4746 option).
4735
4747
4736 * IPython/iplib.py (InteractiveShell.interact): Added optional
4748 * IPython/iplib.py (InteractiveShell.interact): Added optional
4737 auto-indenting code, after a patch by King C. Shu
4749 auto-indenting code, after a patch by King C. Shu
4738 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4750 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4739 get along well with pasting indented code. If I ever figure out
4751 get along well with pasting indented code. If I ever figure out
4740 how to make that part go well, it will become on by default.
4752 how to make that part go well, it will become on by default.
4741
4753
4742 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4754 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4743 crash ipython if there was an unmatched '%' in the user's prompt
4755 crash ipython if there was an unmatched '%' in the user's prompt
4744 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4756 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4745
4757
4746 * IPython/iplib.py (InteractiveShell.interact): removed the
4758 * IPython/iplib.py (InteractiveShell.interact): removed the
4747 ability to ask the user whether he wants to crash or not at the
4759 ability to ask the user whether he wants to crash or not at the
4748 'last line' exception handler. Calling functions at that point
4760 'last line' exception handler. Calling functions at that point
4749 changes the stack, and the error reports would have incorrect
4761 changes the stack, and the error reports would have incorrect
4750 tracebacks.
4762 tracebacks.
4751
4763
4752 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4764 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4753 pass through a peger a pretty-printed form of any object. After a
4765 pass through a peger a pretty-printed form of any object. After a
4754 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4766 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4755
4767
4756 2003-04-14 Fernando Perez <fperez@colorado.edu>
4768 2003-04-14 Fernando Perez <fperez@colorado.edu>
4757
4769
4758 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4770 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4759 all files in ~ would be modified at first install (instead of
4771 all files in ~ would be modified at first install (instead of
4760 ~/.ipython). This could be potentially disastrous, as the
4772 ~/.ipython). This could be potentially disastrous, as the
4761 modification (make line-endings native) could damage binary files.
4773 modification (make line-endings native) could damage binary files.
4762
4774
4763 2003-04-10 Fernando Perez <fperez@colorado.edu>
4775 2003-04-10 Fernando Perez <fperez@colorado.edu>
4764
4776
4765 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4777 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4766 handle only lines which are invalid python. This now means that
4778 handle only lines which are invalid python. This now means that
4767 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4779 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4768 for the bug report.
4780 for the bug report.
4769
4781
4770 2003-04-01 Fernando Perez <fperez@colorado.edu>
4782 2003-04-01 Fernando Perez <fperez@colorado.edu>
4771
4783
4772 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4784 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4773 where failing to set sys.last_traceback would crash pdb.pm().
4785 where failing to set sys.last_traceback would crash pdb.pm().
4774 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4786 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4775 report.
4787 report.
4776
4788
4777 2003-03-25 Fernando Perez <fperez@colorado.edu>
4789 2003-03-25 Fernando Perez <fperez@colorado.edu>
4778
4790
4779 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4791 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4780 before printing it (it had a lot of spurious blank lines at the
4792 before printing it (it had a lot of spurious blank lines at the
4781 end).
4793 end).
4782
4794
4783 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4795 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4784 output would be sent 21 times! Obviously people don't use this
4796 output would be sent 21 times! Obviously people don't use this
4785 too often, or I would have heard about it.
4797 too often, or I would have heard about it.
4786
4798
4787 2003-03-24 Fernando Perez <fperez@colorado.edu>
4799 2003-03-24 Fernando Perez <fperez@colorado.edu>
4788
4800
4789 * setup.py (scriptfiles): renamed the data_files parameter from
4801 * setup.py (scriptfiles): renamed the data_files parameter from
4790 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4802 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4791 for the patch.
4803 for the patch.
4792
4804
4793 2003-03-20 Fernando Perez <fperez@colorado.edu>
4805 2003-03-20 Fernando Perez <fperez@colorado.edu>
4794
4806
4795 * IPython/genutils.py (error): added error() and fatal()
4807 * IPython/genutils.py (error): added error() and fatal()
4796 functions.
4808 functions.
4797
4809
4798 2003-03-18 *** Released version 0.2.15pre3
4810 2003-03-18 *** Released version 0.2.15pre3
4799
4811
4800 2003-03-18 Fernando Perez <fperez@colorado.edu>
4812 2003-03-18 Fernando Perez <fperez@colorado.edu>
4801
4813
4802 * setupext/install_data_ext.py
4814 * setupext/install_data_ext.py
4803 (install_data_ext.initialize_options): Class contributed by Jack
4815 (install_data_ext.initialize_options): Class contributed by Jack
4804 Moffit for fixing the old distutils hack. He is sending this to
4816 Moffit for fixing the old distutils hack. He is sending this to
4805 the distutils folks so in the future we may not need it as a
4817 the distutils folks so in the future we may not need it as a
4806 private fix.
4818 private fix.
4807
4819
4808 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4820 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4809 changes for Debian packaging. See his patch for full details.
4821 changes for Debian packaging. See his patch for full details.
4810 The old distutils hack of making the ipythonrc* files carry a
4822 The old distutils hack of making the ipythonrc* files carry a
4811 bogus .py extension is gone, at last. Examples were moved to a
4823 bogus .py extension is gone, at last. Examples were moved to a
4812 separate subdir under doc/, and the separate executable scripts
4824 separate subdir under doc/, and the separate executable scripts
4813 now live in their own directory. Overall a great cleanup. The
4825 now live in their own directory. Overall a great cleanup. The
4814 manual was updated to use the new files, and setup.py has been
4826 manual was updated to use the new files, and setup.py has been
4815 fixed for this setup.
4827 fixed for this setup.
4816
4828
4817 * IPython/PyColorize.py (Parser.usage): made non-executable and
4829 * IPython/PyColorize.py (Parser.usage): made non-executable and
4818 created a pycolor wrapper around it to be included as a script.
4830 created a pycolor wrapper around it to be included as a script.
4819
4831
4820 2003-03-12 *** Released version 0.2.15pre2
4832 2003-03-12 *** Released version 0.2.15pre2
4821
4833
4822 2003-03-12 Fernando Perez <fperez@colorado.edu>
4834 2003-03-12 Fernando Perez <fperez@colorado.edu>
4823
4835
4824 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4836 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4825 long-standing problem with garbage characters in some terminals.
4837 long-standing problem with garbage characters in some terminals.
4826 The issue was really that the \001 and \002 escapes must _only_ be
4838 The issue was really that the \001 and \002 escapes must _only_ be
4827 passed to input prompts (which call readline), but _never_ to
4839 passed to input prompts (which call readline), but _never_ to
4828 normal text to be printed on screen. I changed ColorANSI to have
4840 normal text to be printed on screen. I changed ColorANSI to have
4829 two classes: TermColors and InputTermColors, each with the
4841 two classes: TermColors and InputTermColors, each with the
4830 appropriate escapes for input prompts or normal text. The code in
4842 appropriate escapes for input prompts or normal text. The code in
4831 Prompts.py got slightly more complicated, but this very old and
4843 Prompts.py got slightly more complicated, but this very old and
4832 annoying bug is finally fixed.
4844 annoying bug is finally fixed.
4833
4845
4834 All the credit for nailing down the real origin of this problem
4846 All the credit for nailing down the real origin of this problem
4835 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4847 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4836 *Many* thanks to him for spending quite a bit of effort on this.
4848 *Many* thanks to him for spending quite a bit of effort on this.
4837
4849
4838 2003-03-05 *** Released version 0.2.15pre1
4850 2003-03-05 *** Released version 0.2.15pre1
4839
4851
4840 2003-03-03 Fernando Perez <fperez@colorado.edu>
4852 2003-03-03 Fernando Perez <fperez@colorado.edu>
4841
4853
4842 * IPython/FakeModule.py: Moved the former _FakeModule to a
4854 * IPython/FakeModule.py: Moved the former _FakeModule to a
4843 separate file, because it's also needed by Magic (to fix a similar
4855 separate file, because it's also needed by Magic (to fix a similar
4844 pickle-related issue in @run).
4856 pickle-related issue in @run).
4845
4857
4846 2003-03-02 Fernando Perez <fperez@colorado.edu>
4858 2003-03-02 Fernando Perez <fperez@colorado.edu>
4847
4859
4848 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4860 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4849 the autocall option at runtime.
4861 the autocall option at runtime.
4850 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4862 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4851 across Magic.py to start separating Magic from InteractiveShell.
4863 across Magic.py to start separating Magic from InteractiveShell.
4852 (Magic._ofind): Fixed to return proper namespace for dotted
4864 (Magic._ofind): Fixed to return proper namespace for dotted
4853 names. Before, a dotted name would always return 'not currently
4865 names. Before, a dotted name would always return 'not currently
4854 defined', because it would find the 'parent'. s.x would be found,
4866 defined', because it would find the 'parent'. s.x would be found,
4855 but since 'x' isn't defined by itself, it would get confused.
4867 but since 'x' isn't defined by itself, it would get confused.
4856 (Magic.magic_run): Fixed pickling problems reported by Ralf
4868 (Magic.magic_run): Fixed pickling problems reported by Ralf
4857 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4869 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4858 that I'd used when Mike Heeter reported similar issues at the
4870 that I'd used when Mike Heeter reported similar issues at the
4859 top-level, but now for @run. It boils down to injecting the
4871 top-level, but now for @run. It boils down to injecting the
4860 namespace where code is being executed with something that looks
4872 namespace where code is being executed with something that looks
4861 enough like a module to fool pickle.dump(). Since a pickle stores
4873 enough like a module to fool pickle.dump(). Since a pickle stores
4862 a named reference to the importing module, we need this for
4874 a named reference to the importing module, we need this for
4863 pickles to save something sensible.
4875 pickles to save something sensible.
4864
4876
4865 * IPython/ipmaker.py (make_IPython): added an autocall option.
4877 * IPython/ipmaker.py (make_IPython): added an autocall option.
4866
4878
4867 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4879 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4868 the auto-eval code. Now autocalling is an option, and the code is
4880 the auto-eval code. Now autocalling is an option, and the code is
4869 also vastly safer. There is no more eval() involved at all.
4881 also vastly safer. There is no more eval() involved at all.
4870
4882
4871 2003-03-01 Fernando Perez <fperez@colorado.edu>
4883 2003-03-01 Fernando Perez <fperez@colorado.edu>
4872
4884
4873 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4885 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4874 dict with named keys instead of a tuple.
4886 dict with named keys instead of a tuple.
4875
4887
4876 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4888 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4877
4889
4878 * setup.py (make_shortcut): Fixed message about directories
4890 * setup.py (make_shortcut): Fixed message about directories
4879 created during Windows installation (the directories were ok, just
4891 created during Windows installation (the directories were ok, just
4880 the printed message was misleading). Thanks to Chris Liechti
4892 the printed message was misleading). Thanks to Chris Liechti
4881 <cliechti-AT-gmx.net> for the heads up.
4893 <cliechti-AT-gmx.net> for the heads up.
4882
4894
4883 2003-02-21 Fernando Perez <fperez@colorado.edu>
4895 2003-02-21 Fernando Perez <fperez@colorado.edu>
4884
4896
4885 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4897 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4886 of ValueError exception when checking for auto-execution. This
4898 of ValueError exception when checking for auto-execution. This
4887 one is raised by things like Numeric arrays arr.flat when the
4899 one is raised by things like Numeric arrays arr.flat when the
4888 array is non-contiguous.
4900 array is non-contiguous.
4889
4901
4890 2003-01-31 Fernando Perez <fperez@colorado.edu>
4902 2003-01-31 Fernando Perez <fperez@colorado.edu>
4891
4903
4892 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4904 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4893 not return any value at all (even though the command would get
4905 not return any value at all (even though the command would get
4894 executed).
4906 executed).
4895 (xsys): Flush stdout right after printing the command to ensure
4907 (xsys): Flush stdout right after printing the command to ensure
4896 proper ordering of commands and command output in the total
4908 proper ordering of commands and command output in the total
4897 output.
4909 output.
4898 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4910 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4899 system/getoutput as defaults. The old ones are kept for
4911 system/getoutput as defaults. The old ones are kept for
4900 compatibility reasons, so no code which uses this library needs
4912 compatibility reasons, so no code which uses this library needs
4901 changing.
4913 changing.
4902
4914
4903 2003-01-27 *** Released version 0.2.14
4915 2003-01-27 *** Released version 0.2.14
4904
4916
4905 2003-01-25 Fernando Perez <fperez@colorado.edu>
4917 2003-01-25 Fernando Perez <fperez@colorado.edu>
4906
4918
4907 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4919 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4908 functions defined in previous edit sessions could not be re-edited
4920 functions defined in previous edit sessions could not be re-edited
4909 (because the temp files were immediately removed). Now temp files
4921 (because the temp files were immediately removed). Now temp files
4910 are removed only at IPython's exit.
4922 are removed only at IPython's exit.
4911 (Magic.magic_run): Improved @run to perform shell-like expansions
4923 (Magic.magic_run): Improved @run to perform shell-like expansions
4912 on its arguments (~users and $VARS). With this, @run becomes more
4924 on its arguments (~users and $VARS). With this, @run becomes more
4913 like a normal command-line.
4925 like a normal command-line.
4914
4926
4915 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4927 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4916 bugs related to embedding and cleaned up that code. A fairly
4928 bugs related to embedding and cleaned up that code. A fairly
4917 important one was the impossibility to access the global namespace
4929 important one was the impossibility to access the global namespace
4918 through the embedded IPython (only local variables were visible).
4930 through the embedded IPython (only local variables were visible).
4919
4931
4920 2003-01-14 Fernando Perez <fperez@colorado.edu>
4932 2003-01-14 Fernando Perez <fperez@colorado.edu>
4921
4933
4922 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4934 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4923 auto-calling to be a bit more conservative. Now it doesn't get
4935 auto-calling to be a bit more conservative. Now it doesn't get
4924 triggered if any of '!=()<>' are in the rest of the input line, to
4936 triggered if any of '!=()<>' are in the rest of the input line, to
4925 allow comparing callables. Thanks to Alex for the heads up.
4937 allow comparing callables. Thanks to Alex for the heads up.
4926
4938
4927 2003-01-07 Fernando Perez <fperez@colorado.edu>
4939 2003-01-07 Fernando Perez <fperez@colorado.edu>
4928
4940
4929 * IPython/genutils.py (page): fixed estimation of the number of
4941 * IPython/genutils.py (page): fixed estimation of the number of
4930 lines in a string to be paged to simply count newlines. This
4942 lines in a string to be paged to simply count newlines. This
4931 prevents over-guessing due to embedded escape sequences. A better
4943 prevents over-guessing due to embedded escape sequences. A better
4932 long-term solution would involve stripping out the control chars
4944 long-term solution would involve stripping out the control chars
4933 for the count, but it's potentially so expensive I just don't
4945 for the count, but it's potentially so expensive I just don't
4934 think it's worth doing.
4946 think it's worth doing.
4935
4947
4936 2002-12-19 *** Released version 0.2.14pre50
4948 2002-12-19 *** Released version 0.2.14pre50
4937
4949
4938 2002-12-19 Fernando Perez <fperez@colorado.edu>
4950 2002-12-19 Fernando Perez <fperez@colorado.edu>
4939
4951
4940 * tools/release (version): Changed release scripts to inform
4952 * tools/release (version): Changed release scripts to inform
4941 Andrea and build a NEWS file with a list of recent changes.
4953 Andrea and build a NEWS file with a list of recent changes.
4942
4954
4943 * IPython/ColorANSI.py (__all__): changed terminal detection
4955 * IPython/ColorANSI.py (__all__): changed terminal detection
4944 code. Seems to work better for xterms without breaking
4956 code. Seems to work better for xterms without breaking
4945 konsole. Will need more testing to determine if WinXP and Mac OSX
4957 konsole. Will need more testing to determine if WinXP and Mac OSX
4946 also work ok.
4958 also work ok.
4947
4959
4948 2002-12-18 *** Released version 0.2.14pre49
4960 2002-12-18 *** Released version 0.2.14pre49
4949
4961
4950 2002-12-18 Fernando Perez <fperez@colorado.edu>
4962 2002-12-18 Fernando Perez <fperez@colorado.edu>
4951
4963
4952 * Docs: added new info about Mac OSX, from Andrea.
4964 * Docs: added new info about Mac OSX, from Andrea.
4953
4965
4954 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4966 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4955 allow direct plotting of python strings whose format is the same
4967 allow direct plotting of python strings whose format is the same
4956 of gnuplot data files.
4968 of gnuplot data files.
4957
4969
4958 2002-12-16 Fernando Perez <fperez@colorado.edu>
4970 2002-12-16 Fernando Perez <fperez@colorado.edu>
4959
4971
4960 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4972 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4961 value of exit question to be acknowledged.
4973 value of exit question to be acknowledged.
4962
4974
4963 2002-12-03 Fernando Perez <fperez@colorado.edu>
4975 2002-12-03 Fernando Perez <fperez@colorado.edu>
4964
4976
4965 * IPython/ipmaker.py: removed generators, which had been added
4977 * IPython/ipmaker.py: removed generators, which had been added
4966 by mistake in an earlier debugging run. This was causing trouble
4978 by mistake in an earlier debugging run. This was causing trouble
4967 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4979 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4968 for pointing this out.
4980 for pointing this out.
4969
4981
4970 2002-11-17 Fernando Perez <fperez@colorado.edu>
4982 2002-11-17 Fernando Perez <fperez@colorado.edu>
4971
4983
4972 * Manual: updated the Gnuplot section.
4984 * Manual: updated the Gnuplot section.
4973
4985
4974 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4986 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4975 a much better split of what goes in Runtime and what goes in
4987 a much better split of what goes in Runtime and what goes in
4976 Interactive.
4988 Interactive.
4977
4989
4978 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4990 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4979 being imported from iplib.
4991 being imported from iplib.
4980
4992
4981 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4993 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4982 for command-passing. Now the global Gnuplot instance is called
4994 for command-passing. Now the global Gnuplot instance is called
4983 'gp' instead of 'g', which was really a far too fragile and
4995 'gp' instead of 'g', which was really a far too fragile and
4984 common name.
4996 common name.
4985
4997
4986 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4998 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4987 bounding boxes generated by Gnuplot for square plots.
4999 bounding boxes generated by Gnuplot for square plots.
4988
5000
4989 * IPython/genutils.py (popkey): new function added. I should
5001 * IPython/genutils.py (popkey): new function added. I should
4990 suggest this on c.l.py as a dict method, it seems useful.
5002 suggest this on c.l.py as a dict method, it seems useful.
4991
5003
4992 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5004 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4993 to transparently handle PostScript generation. MUCH better than
5005 to transparently handle PostScript generation. MUCH better than
4994 the previous plot_eps/replot_eps (which I removed now). The code
5006 the previous plot_eps/replot_eps (which I removed now). The code
4995 is also fairly clean and well documented now (including
5007 is also fairly clean and well documented now (including
4996 docstrings).
5008 docstrings).
4997
5009
4998 2002-11-13 Fernando Perez <fperez@colorado.edu>
5010 2002-11-13 Fernando Perez <fperez@colorado.edu>
4999
5011
5000 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5012 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5001 (inconsistent with options).
5013 (inconsistent with options).
5002
5014
5003 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5015 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5004 manually disabled, I don't know why. Fixed it.
5016 manually disabled, I don't know why. Fixed it.
5005 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5017 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5006 eps output.
5018 eps output.
5007
5019
5008 2002-11-12 Fernando Perez <fperez@colorado.edu>
5020 2002-11-12 Fernando Perez <fperez@colorado.edu>
5009
5021
5010 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5022 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5011 don't propagate up to caller. Fixes crash reported by François
5023 don't propagate up to caller. Fixes crash reported by François
5012 Pinard.
5024 Pinard.
5013
5025
5014 2002-11-09 Fernando Perez <fperez@colorado.edu>
5026 2002-11-09 Fernando Perez <fperez@colorado.edu>
5015
5027
5016 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5028 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5017 history file for new users.
5029 history file for new users.
5018 (make_IPython): fixed bug where initial install would leave the
5030 (make_IPython): fixed bug where initial install would leave the
5019 user running in the .ipython dir.
5031 user running in the .ipython dir.
5020 (make_IPython): fixed bug where config dir .ipython would be
5032 (make_IPython): fixed bug where config dir .ipython would be
5021 created regardless of the given -ipythondir option. Thanks to Cory
5033 created regardless of the given -ipythondir option. Thanks to Cory
5022 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5034 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5023
5035
5024 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5036 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5025 type confirmations. Will need to use it in all of IPython's code
5037 type confirmations. Will need to use it in all of IPython's code
5026 consistently.
5038 consistently.
5027
5039
5028 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5040 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5029 context to print 31 lines instead of the default 5. This will make
5041 context to print 31 lines instead of the default 5. This will make
5030 the crash reports extremely detailed in case the problem is in
5042 the crash reports extremely detailed in case the problem is in
5031 libraries I don't have access to.
5043 libraries I don't have access to.
5032
5044
5033 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5045 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5034 line of defense' code to still crash, but giving users fair
5046 line of defense' code to still crash, but giving users fair
5035 warning. I don't want internal errors to go unreported: if there's
5047 warning. I don't want internal errors to go unreported: if there's
5036 an internal problem, IPython should crash and generate a full
5048 an internal problem, IPython should crash and generate a full
5037 report.
5049 report.
5038
5050
5039 2002-11-08 Fernando Perez <fperez@colorado.edu>
5051 2002-11-08 Fernando Perez <fperez@colorado.edu>
5040
5052
5041 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5053 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5042 otherwise uncaught exceptions which can appear if people set
5054 otherwise uncaught exceptions which can appear if people set
5043 sys.stdout to something badly broken. Thanks to a crash report
5055 sys.stdout to something badly broken. Thanks to a crash report
5044 from henni-AT-mail.brainbot.com.
5056 from henni-AT-mail.brainbot.com.
5045
5057
5046 2002-11-04 Fernando Perez <fperez@colorado.edu>
5058 2002-11-04 Fernando Perez <fperez@colorado.edu>
5047
5059
5048 * IPython/iplib.py (InteractiveShell.interact): added
5060 * IPython/iplib.py (InteractiveShell.interact): added
5049 __IPYTHON__active to the builtins. It's a flag which goes on when
5061 __IPYTHON__active to the builtins. It's a flag which goes on when
5050 the interaction starts and goes off again when it stops. This
5062 the interaction starts and goes off again when it stops. This
5051 allows embedding code to detect being inside IPython. Before this
5063 allows embedding code to detect being inside IPython. Before this
5052 was done via __IPYTHON__, but that only shows that an IPython
5064 was done via __IPYTHON__, but that only shows that an IPython
5053 instance has been created.
5065 instance has been created.
5054
5066
5055 * IPython/Magic.py (Magic.magic_env): I realized that in a
5067 * IPython/Magic.py (Magic.magic_env): I realized that in a
5056 UserDict, instance.data holds the data as a normal dict. So I
5068 UserDict, instance.data holds the data as a normal dict. So I
5057 modified @env to return os.environ.data instead of rebuilding a
5069 modified @env to return os.environ.data instead of rebuilding a
5058 dict by hand.
5070 dict by hand.
5059
5071
5060 2002-11-02 Fernando Perez <fperez@colorado.edu>
5072 2002-11-02 Fernando Perez <fperez@colorado.edu>
5061
5073
5062 * IPython/genutils.py (warn): changed so that level 1 prints no
5074 * IPython/genutils.py (warn): changed so that level 1 prints no
5063 header. Level 2 is now the default (with 'WARNING' header, as
5075 header. Level 2 is now the default (with 'WARNING' header, as
5064 before). I think I tracked all places where changes were needed in
5076 before). I think I tracked all places where changes were needed in
5065 IPython, but outside code using the old level numbering may have
5077 IPython, but outside code using the old level numbering may have
5066 broken.
5078 broken.
5067
5079
5068 * IPython/iplib.py (InteractiveShell.runcode): added this to
5080 * IPython/iplib.py (InteractiveShell.runcode): added this to
5069 handle the tracebacks in SystemExit traps correctly. The previous
5081 handle the tracebacks in SystemExit traps correctly. The previous
5070 code (through interact) was printing more of the stack than
5082 code (through interact) was printing more of the stack than
5071 necessary, showing IPython internal code to the user.
5083 necessary, showing IPython internal code to the user.
5072
5084
5073 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5085 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5074 default. Now that the default at the confirmation prompt is yes,
5086 default. Now that the default at the confirmation prompt is yes,
5075 it's not so intrusive. François' argument that ipython sessions
5087 it's not so intrusive. François' argument that ipython sessions
5076 tend to be complex enough not to lose them from an accidental C-d,
5088 tend to be complex enough not to lose them from an accidental C-d,
5077 is a valid one.
5089 is a valid one.
5078
5090
5079 * IPython/iplib.py (InteractiveShell.interact): added a
5091 * IPython/iplib.py (InteractiveShell.interact): added a
5080 showtraceback() call to the SystemExit trap, and modified the exit
5092 showtraceback() call to the SystemExit trap, and modified the exit
5081 confirmation to have yes as the default.
5093 confirmation to have yes as the default.
5082
5094
5083 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5095 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5084 this file. It's been gone from the code for a long time, this was
5096 this file. It's been gone from the code for a long time, this was
5085 simply leftover junk.
5097 simply leftover junk.
5086
5098
5087 2002-11-01 Fernando Perez <fperez@colorado.edu>
5099 2002-11-01 Fernando Perez <fperez@colorado.edu>
5088
5100
5089 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5101 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5090 added. If set, IPython now traps EOF and asks for
5102 added. If set, IPython now traps EOF and asks for
5091 confirmation. After a request by François Pinard.
5103 confirmation. After a request by François Pinard.
5092
5104
5093 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5105 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5094 of @abort, and with a new (better) mechanism for handling the
5106 of @abort, and with a new (better) mechanism for handling the
5095 exceptions.
5107 exceptions.
5096
5108
5097 2002-10-27 Fernando Perez <fperez@colorado.edu>
5109 2002-10-27 Fernando Perez <fperez@colorado.edu>
5098
5110
5099 * IPython/usage.py (__doc__): updated the --help information and
5111 * IPython/usage.py (__doc__): updated the --help information and
5100 the ipythonrc file to indicate that -log generates
5112 the ipythonrc file to indicate that -log generates
5101 ./ipython.log. Also fixed the corresponding info in @logstart.
5113 ./ipython.log. Also fixed the corresponding info in @logstart.
5102 This and several other fixes in the manuals thanks to reports by
5114 This and several other fixes in the manuals thanks to reports by
5103 François Pinard <pinard-AT-iro.umontreal.ca>.
5115 François Pinard <pinard-AT-iro.umontreal.ca>.
5104
5116
5105 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5117 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5106 refer to @logstart (instead of @log, which doesn't exist).
5118 refer to @logstart (instead of @log, which doesn't exist).
5107
5119
5108 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5120 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5109 AttributeError crash. Thanks to Christopher Armstrong
5121 AttributeError crash. Thanks to Christopher Armstrong
5110 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5122 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5111 introduced recently (in 0.2.14pre37) with the fix to the eval
5123 introduced recently (in 0.2.14pre37) with the fix to the eval
5112 problem mentioned below.
5124 problem mentioned below.
5113
5125
5114 2002-10-17 Fernando Perez <fperez@colorado.edu>
5126 2002-10-17 Fernando Perez <fperez@colorado.edu>
5115
5127
5116 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5128 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5117 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5129 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5118
5130
5119 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5131 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5120 this function to fix a problem reported by Alex Schmolck. He saw
5132 this function to fix a problem reported by Alex Schmolck. He saw
5121 it with list comprehensions and generators, which were getting
5133 it with list comprehensions and generators, which were getting
5122 called twice. The real problem was an 'eval' call in testing for
5134 called twice. The real problem was an 'eval' call in testing for
5123 automagic which was evaluating the input line silently.
5135 automagic which was evaluating the input line silently.
5124
5136
5125 This is a potentially very nasty bug, if the input has side
5137 This is a potentially very nasty bug, if the input has side
5126 effects which must not be repeated. The code is much cleaner now,
5138 effects which must not be repeated. The code is much cleaner now,
5127 without any blanket 'except' left and with a regexp test for
5139 without any blanket 'except' left and with a regexp test for
5128 actual function names.
5140 actual function names.
5129
5141
5130 But an eval remains, which I'm not fully comfortable with. I just
5142 But an eval remains, which I'm not fully comfortable with. I just
5131 don't know how to find out if an expression could be a callable in
5143 don't know how to find out if an expression could be a callable in
5132 the user's namespace without doing an eval on the string. However
5144 the user's namespace without doing an eval on the string. However
5133 that string is now much more strictly checked so that no code
5145 that string is now much more strictly checked so that no code
5134 slips by, so the eval should only happen for things that can
5146 slips by, so the eval should only happen for things that can
5135 really be only function/method names.
5147 really be only function/method names.
5136
5148
5137 2002-10-15 Fernando Perez <fperez@colorado.edu>
5149 2002-10-15 Fernando Perez <fperez@colorado.edu>
5138
5150
5139 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5151 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5140 OSX information to main manual, removed README_Mac_OSX file from
5152 OSX information to main manual, removed README_Mac_OSX file from
5141 distribution. Also updated credits for recent additions.
5153 distribution. Also updated credits for recent additions.
5142
5154
5143 2002-10-10 Fernando Perez <fperez@colorado.edu>
5155 2002-10-10 Fernando Perez <fperez@colorado.edu>
5144
5156
5145 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5157 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5146 terminal-related issues. Many thanks to Andrea Riciputi
5158 terminal-related issues. Many thanks to Andrea Riciputi
5147 <andrea.riciputi-AT-libero.it> for writing it.
5159 <andrea.riciputi-AT-libero.it> for writing it.
5148
5160
5149 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5161 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5150 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5162 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5151
5163
5152 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5164 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5153 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5165 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5154 <syver-en-AT-online.no> who both submitted patches for this problem.
5166 <syver-en-AT-online.no> who both submitted patches for this problem.
5155
5167
5156 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5168 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5157 global embedding to make sure that things don't overwrite user
5169 global embedding to make sure that things don't overwrite user
5158 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5170 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5159
5171
5160 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5172 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5161 compatibility. Thanks to Hayden Callow
5173 compatibility. Thanks to Hayden Callow
5162 <h.callow-AT-elec.canterbury.ac.nz>
5174 <h.callow-AT-elec.canterbury.ac.nz>
5163
5175
5164 2002-10-04 Fernando Perez <fperez@colorado.edu>
5176 2002-10-04 Fernando Perez <fperez@colorado.edu>
5165
5177
5166 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5178 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5167 Gnuplot.File objects.
5179 Gnuplot.File objects.
5168
5180
5169 2002-07-23 Fernando Perez <fperez@colorado.edu>
5181 2002-07-23 Fernando Perez <fperez@colorado.edu>
5170
5182
5171 * IPython/genutils.py (timing): Added timings() and timing() for
5183 * IPython/genutils.py (timing): Added timings() and timing() for
5172 quick access to the most commonly needed data, the execution
5184 quick access to the most commonly needed data, the execution
5173 times. Old timing() renamed to timings_out().
5185 times. Old timing() renamed to timings_out().
5174
5186
5175 2002-07-18 Fernando Perez <fperez@colorado.edu>
5187 2002-07-18 Fernando Perez <fperez@colorado.edu>
5176
5188
5177 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5189 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5178 bug with nested instances disrupting the parent's tab completion.
5190 bug with nested instances disrupting the parent's tab completion.
5179
5191
5180 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5192 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5181 all_completions code to begin the emacs integration.
5193 all_completions code to begin the emacs integration.
5182
5194
5183 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5195 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5184 argument to allow titling individual arrays when plotting.
5196 argument to allow titling individual arrays when plotting.
5185
5197
5186 2002-07-15 Fernando Perez <fperez@colorado.edu>
5198 2002-07-15 Fernando Perez <fperez@colorado.edu>
5187
5199
5188 * setup.py (make_shortcut): changed to retrieve the value of
5200 * setup.py (make_shortcut): changed to retrieve the value of
5189 'Program Files' directory from the registry (this value changes in
5201 'Program Files' directory from the registry (this value changes in
5190 non-english versions of Windows). Thanks to Thomas Fanslau
5202 non-english versions of Windows). Thanks to Thomas Fanslau
5191 <tfanslau-AT-gmx.de> for the report.
5203 <tfanslau-AT-gmx.de> for the report.
5192
5204
5193 2002-07-10 Fernando Perez <fperez@colorado.edu>
5205 2002-07-10 Fernando Perez <fperez@colorado.edu>
5194
5206
5195 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5207 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5196 a bug in pdb, which crashes if a line with only whitespace is
5208 a bug in pdb, which crashes if a line with only whitespace is
5197 entered. Bug report submitted to sourceforge.
5209 entered. Bug report submitted to sourceforge.
5198
5210
5199 2002-07-09 Fernando Perez <fperez@colorado.edu>
5211 2002-07-09 Fernando Perez <fperez@colorado.edu>
5200
5212
5201 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5213 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5202 reporting exceptions (it's a bug in inspect.py, I just set a
5214 reporting exceptions (it's a bug in inspect.py, I just set a
5203 workaround).
5215 workaround).
5204
5216
5205 2002-07-08 Fernando Perez <fperez@colorado.edu>
5217 2002-07-08 Fernando Perez <fperez@colorado.edu>
5206
5218
5207 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5219 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5208 __IPYTHON__ in __builtins__ to show up in user_ns.
5220 __IPYTHON__ in __builtins__ to show up in user_ns.
5209
5221
5210 2002-07-03 Fernando Perez <fperez@colorado.edu>
5222 2002-07-03 Fernando Perez <fperez@colorado.edu>
5211
5223
5212 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5224 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5213 name from @gp_set_instance to @gp_set_default.
5225 name from @gp_set_instance to @gp_set_default.
5214
5226
5215 * IPython/ipmaker.py (make_IPython): default editor value set to
5227 * IPython/ipmaker.py (make_IPython): default editor value set to
5216 '0' (a string), to match the rc file. Otherwise will crash when
5228 '0' (a string), to match the rc file. Otherwise will crash when
5217 .strip() is called on it.
5229 .strip() is called on it.
5218
5230
5219
5231
5220 2002-06-28 Fernando Perez <fperez@colorado.edu>
5232 2002-06-28 Fernando Perez <fperez@colorado.edu>
5221
5233
5222 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5234 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5223 of files in current directory when a file is executed via
5235 of files in current directory when a file is executed via
5224 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5236 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5225
5237
5226 * setup.py (manfiles): fix for rpm builds, submitted by RA
5238 * setup.py (manfiles): fix for rpm builds, submitted by RA
5227 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5239 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5228
5240
5229 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5241 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5230 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5242 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5231 string!). A. Schmolck caught this one.
5243 string!). A. Schmolck caught this one.
5232
5244
5233 2002-06-27 Fernando Perez <fperez@colorado.edu>
5245 2002-06-27 Fernando Perez <fperez@colorado.edu>
5234
5246
5235 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5247 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5236 defined files at the cmd line. __name__ wasn't being set to
5248 defined files at the cmd line. __name__ wasn't being set to
5237 __main__.
5249 __main__.
5238
5250
5239 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5251 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5240 regular lists and tuples besides Numeric arrays.
5252 regular lists and tuples besides Numeric arrays.
5241
5253
5242 * IPython/Prompts.py (CachedOutput.__call__): Added output
5254 * IPython/Prompts.py (CachedOutput.__call__): Added output
5243 supression for input ending with ';'. Similar to Mathematica and
5255 supression for input ending with ';'. Similar to Mathematica and
5244 Matlab. The _* vars and Out[] list are still updated, just like
5256 Matlab. The _* vars and Out[] list are still updated, just like
5245 Mathematica behaves.
5257 Mathematica behaves.
5246
5258
5247 2002-06-25 Fernando Perez <fperez@colorado.edu>
5259 2002-06-25 Fernando Perez <fperez@colorado.edu>
5248
5260
5249 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5261 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5250 .ini extensions for profiels under Windows.
5262 .ini extensions for profiels under Windows.
5251
5263
5252 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5264 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5253 string form. Fix contributed by Alexander Schmolck
5265 string form. Fix contributed by Alexander Schmolck
5254 <a.schmolck-AT-gmx.net>
5266 <a.schmolck-AT-gmx.net>
5255
5267
5256 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5268 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5257 pre-configured Gnuplot instance.
5269 pre-configured Gnuplot instance.
5258
5270
5259 2002-06-21 Fernando Perez <fperez@colorado.edu>
5271 2002-06-21 Fernando Perez <fperez@colorado.edu>
5260
5272
5261 * IPython/numutils.py (exp_safe): new function, works around the
5273 * IPython/numutils.py (exp_safe): new function, works around the
5262 underflow problems in Numeric.
5274 underflow problems in Numeric.
5263 (log2): New fn. Safe log in base 2: returns exact integer answer
5275 (log2): New fn. Safe log in base 2: returns exact integer answer
5264 for exact integer powers of 2.
5276 for exact integer powers of 2.
5265
5277
5266 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5278 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5267 properly.
5279 properly.
5268
5280
5269 2002-06-20 Fernando Perez <fperez@colorado.edu>
5281 2002-06-20 Fernando Perez <fperez@colorado.edu>
5270
5282
5271 * IPython/genutils.py (timing): new function like
5283 * IPython/genutils.py (timing): new function like
5272 Mathematica's. Similar to time_test, but returns more info.
5284 Mathematica's. Similar to time_test, but returns more info.
5273
5285
5274 2002-06-18 Fernando Perez <fperez@colorado.edu>
5286 2002-06-18 Fernando Perez <fperez@colorado.edu>
5275
5287
5276 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5288 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5277 according to Mike Heeter's suggestions.
5289 according to Mike Heeter's suggestions.
5278
5290
5279 2002-06-16 Fernando Perez <fperez@colorado.edu>
5291 2002-06-16 Fernando Perez <fperez@colorado.edu>
5280
5292
5281 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5293 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5282 system. GnuplotMagic is gone as a user-directory option. New files
5294 system. GnuplotMagic is gone as a user-directory option. New files
5283 make it easier to use all the gnuplot stuff both from external
5295 make it easier to use all the gnuplot stuff both from external
5284 programs as well as from IPython. Had to rewrite part of
5296 programs as well as from IPython. Had to rewrite part of
5285 hardcopy() b/c of a strange bug: often the ps files simply don't
5297 hardcopy() b/c of a strange bug: often the ps files simply don't
5286 get created, and require a repeat of the command (often several
5298 get created, and require a repeat of the command (often several
5287 times).
5299 times).
5288
5300
5289 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5301 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5290 resolve output channel at call time, so that if sys.stderr has
5302 resolve output channel at call time, so that if sys.stderr has
5291 been redirected by user this gets honored.
5303 been redirected by user this gets honored.
5292
5304
5293 2002-06-13 Fernando Perez <fperez@colorado.edu>
5305 2002-06-13 Fernando Perez <fperez@colorado.edu>
5294
5306
5295 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5307 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5296 IPShell. Kept a copy with the old names to avoid breaking people's
5308 IPShell. Kept a copy with the old names to avoid breaking people's
5297 embedded code.
5309 embedded code.
5298
5310
5299 * IPython/ipython: simplified it to the bare minimum after
5311 * IPython/ipython: simplified it to the bare minimum after
5300 Holger's suggestions. Added info about how to use it in
5312 Holger's suggestions. Added info about how to use it in
5301 PYTHONSTARTUP.
5313 PYTHONSTARTUP.
5302
5314
5303 * IPython/Shell.py (IPythonShell): changed the options passing
5315 * IPython/Shell.py (IPythonShell): changed the options passing
5304 from a string with funky %s replacements to a straight list. Maybe
5316 from a string with funky %s replacements to a straight list. Maybe
5305 a bit more typing, but it follows sys.argv conventions, so there's
5317 a bit more typing, but it follows sys.argv conventions, so there's
5306 less special-casing to remember.
5318 less special-casing to remember.
5307
5319
5308 2002-06-12 Fernando Perez <fperez@colorado.edu>
5320 2002-06-12 Fernando Perez <fperez@colorado.edu>
5309
5321
5310 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5322 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5311 command. Thanks to a suggestion by Mike Heeter.
5323 command. Thanks to a suggestion by Mike Heeter.
5312 (Magic.magic_pfile): added behavior to look at filenames if given
5324 (Magic.magic_pfile): added behavior to look at filenames if given
5313 arg is not a defined object.
5325 arg is not a defined object.
5314 (Magic.magic_save): New @save function to save code snippets. Also
5326 (Magic.magic_save): New @save function to save code snippets. Also
5315 a Mike Heeter idea.
5327 a Mike Heeter idea.
5316
5328
5317 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5329 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5318 plot() and replot(). Much more convenient now, especially for
5330 plot() and replot(). Much more convenient now, especially for
5319 interactive use.
5331 interactive use.
5320
5332
5321 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5333 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5322 filenames.
5334 filenames.
5323
5335
5324 2002-06-02 Fernando Perez <fperez@colorado.edu>
5336 2002-06-02 Fernando Perez <fperez@colorado.edu>
5325
5337
5326 * IPython/Struct.py (Struct.__init__): modified to admit
5338 * IPython/Struct.py (Struct.__init__): modified to admit
5327 initialization via another struct.
5339 initialization via another struct.
5328
5340
5329 * IPython/genutils.py (SystemExec.__init__): New stateful
5341 * IPython/genutils.py (SystemExec.__init__): New stateful
5330 interface to xsys and bq. Useful for writing system scripts.
5342 interface to xsys and bq. Useful for writing system scripts.
5331
5343
5332 2002-05-30 Fernando Perez <fperez@colorado.edu>
5344 2002-05-30 Fernando Perez <fperez@colorado.edu>
5333
5345
5334 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5346 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5335 documents. This will make the user download smaller (it's getting
5347 documents. This will make the user download smaller (it's getting
5336 too big).
5348 too big).
5337
5349
5338 2002-05-29 Fernando Perez <fperez@colorado.edu>
5350 2002-05-29 Fernando Perez <fperez@colorado.edu>
5339
5351
5340 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5352 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5341 fix problems with shelve and pickle. Seems to work, but I don't
5353 fix problems with shelve and pickle. Seems to work, but I don't
5342 know if corner cases break it. Thanks to Mike Heeter
5354 know if corner cases break it. Thanks to Mike Heeter
5343 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5355 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5344
5356
5345 2002-05-24 Fernando Perez <fperez@colorado.edu>
5357 2002-05-24 Fernando Perez <fperez@colorado.edu>
5346
5358
5347 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5359 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5348 macros having broken.
5360 macros having broken.
5349
5361
5350 2002-05-21 Fernando Perez <fperez@colorado.edu>
5362 2002-05-21 Fernando Perez <fperez@colorado.edu>
5351
5363
5352 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5364 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5353 introduced logging bug: all history before logging started was
5365 introduced logging bug: all history before logging started was
5354 being written one character per line! This came from the redesign
5366 being written one character per line! This came from the redesign
5355 of the input history as a special list which slices to strings,
5367 of the input history as a special list which slices to strings,
5356 not to lists.
5368 not to lists.
5357
5369
5358 2002-05-20 Fernando Perez <fperez@colorado.edu>
5370 2002-05-20 Fernando Perez <fperez@colorado.edu>
5359
5371
5360 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5372 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5361 be an attribute of all classes in this module. The design of these
5373 be an attribute of all classes in this module. The design of these
5362 classes needs some serious overhauling.
5374 classes needs some serious overhauling.
5363
5375
5364 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5376 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5365 which was ignoring '_' in option names.
5377 which was ignoring '_' in option names.
5366
5378
5367 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5379 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5368 'Verbose_novars' to 'Context' and made it the new default. It's a
5380 'Verbose_novars' to 'Context' and made it the new default. It's a
5369 bit more readable and also safer than verbose.
5381 bit more readable and also safer than verbose.
5370
5382
5371 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5383 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5372 triple-quoted strings.
5384 triple-quoted strings.
5373
5385
5374 * IPython/OInspect.py (__all__): new module exposing the object
5386 * IPython/OInspect.py (__all__): new module exposing the object
5375 introspection facilities. Now the corresponding magics are dummy
5387 introspection facilities. Now the corresponding magics are dummy
5376 wrappers around this. Having this module will make it much easier
5388 wrappers around this. Having this module will make it much easier
5377 to put these functions into our modified pdb.
5389 to put these functions into our modified pdb.
5378 This new object inspector system uses the new colorizing module,
5390 This new object inspector system uses the new colorizing module,
5379 so source code and other things are nicely syntax highlighted.
5391 so source code and other things are nicely syntax highlighted.
5380
5392
5381 2002-05-18 Fernando Perez <fperez@colorado.edu>
5393 2002-05-18 Fernando Perez <fperez@colorado.edu>
5382
5394
5383 * IPython/ColorANSI.py: Split the coloring tools into a separate
5395 * IPython/ColorANSI.py: Split the coloring tools into a separate
5384 module so I can use them in other code easier (they were part of
5396 module so I can use them in other code easier (they were part of
5385 ultraTB).
5397 ultraTB).
5386
5398
5387 2002-05-17 Fernando Perez <fperez@colorado.edu>
5399 2002-05-17 Fernando Perez <fperez@colorado.edu>
5388
5400
5389 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5401 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5390 fixed it to set the global 'g' also to the called instance, as
5402 fixed it to set the global 'g' also to the called instance, as
5391 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5403 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5392 user's 'g' variables).
5404 user's 'g' variables).
5393
5405
5394 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5406 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5395 global variables (aliases to _ih,_oh) so that users which expect
5407 global variables (aliases to _ih,_oh) so that users which expect
5396 In[5] or Out[7] to work aren't unpleasantly surprised.
5408 In[5] or Out[7] to work aren't unpleasantly surprised.
5397 (InputList.__getslice__): new class to allow executing slices of
5409 (InputList.__getslice__): new class to allow executing slices of
5398 input history directly. Very simple class, complements the use of
5410 input history directly. Very simple class, complements the use of
5399 macros.
5411 macros.
5400
5412
5401 2002-05-16 Fernando Perez <fperez@colorado.edu>
5413 2002-05-16 Fernando Perez <fperez@colorado.edu>
5402
5414
5403 * setup.py (docdirbase): make doc directory be just doc/IPython
5415 * setup.py (docdirbase): make doc directory be just doc/IPython
5404 without version numbers, it will reduce clutter for users.
5416 without version numbers, it will reduce clutter for users.
5405
5417
5406 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5418 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5407 execfile call to prevent possible memory leak. See for details:
5419 execfile call to prevent possible memory leak. See for details:
5408 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5420 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5409
5421
5410 2002-05-15 Fernando Perez <fperez@colorado.edu>
5422 2002-05-15 Fernando Perez <fperez@colorado.edu>
5411
5423
5412 * IPython/Magic.py (Magic.magic_psource): made the object
5424 * IPython/Magic.py (Magic.magic_psource): made the object
5413 introspection names be more standard: pdoc, pdef, pfile and
5425 introspection names be more standard: pdoc, pdef, pfile and
5414 psource. They all print/page their output, and it makes
5426 psource. They all print/page their output, and it makes
5415 remembering them easier. Kept old names for compatibility as
5427 remembering them easier. Kept old names for compatibility as
5416 aliases.
5428 aliases.
5417
5429
5418 2002-05-14 Fernando Perez <fperez@colorado.edu>
5430 2002-05-14 Fernando Perez <fperez@colorado.edu>
5419
5431
5420 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5432 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5421 what the mouse problem was. The trick is to use gnuplot with temp
5433 what the mouse problem was. The trick is to use gnuplot with temp
5422 files and NOT with pipes (for data communication), because having
5434 files and NOT with pipes (for data communication), because having
5423 both pipes and the mouse on is bad news.
5435 both pipes and the mouse on is bad news.
5424
5436
5425 2002-05-13 Fernando Perez <fperez@colorado.edu>
5437 2002-05-13 Fernando Perez <fperez@colorado.edu>
5426
5438
5427 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5439 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5428 bug. Information would be reported about builtins even when
5440 bug. Information would be reported about builtins even when
5429 user-defined functions overrode them.
5441 user-defined functions overrode them.
5430
5442
5431 2002-05-11 Fernando Perez <fperez@colorado.edu>
5443 2002-05-11 Fernando Perez <fperez@colorado.edu>
5432
5444
5433 * IPython/__init__.py (__all__): removed FlexCompleter from
5445 * IPython/__init__.py (__all__): removed FlexCompleter from
5434 __all__ so that things don't fail in platforms without readline.
5446 __all__ so that things don't fail in platforms without readline.
5435
5447
5436 2002-05-10 Fernando Perez <fperez@colorado.edu>
5448 2002-05-10 Fernando Perez <fperez@colorado.edu>
5437
5449
5438 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5450 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5439 it requires Numeric, effectively making Numeric a dependency for
5451 it requires Numeric, effectively making Numeric a dependency for
5440 IPython.
5452 IPython.
5441
5453
5442 * Released 0.2.13
5454 * Released 0.2.13
5443
5455
5444 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5456 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5445 profiler interface. Now all the major options from the profiler
5457 profiler interface. Now all the major options from the profiler
5446 module are directly supported in IPython, both for single
5458 module are directly supported in IPython, both for single
5447 expressions (@prun) and for full programs (@run -p).
5459 expressions (@prun) and for full programs (@run -p).
5448
5460
5449 2002-05-09 Fernando Perez <fperez@colorado.edu>
5461 2002-05-09 Fernando Perez <fperez@colorado.edu>
5450
5462
5451 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5463 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5452 magic properly formatted for screen.
5464 magic properly formatted for screen.
5453
5465
5454 * setup.py (make_shortcut): Changed things to put pdf version in
5466 * setup.py (make_shortcut): Changed things to put pdf version in
5455 doc/ instead of doc/manual (had to change lyxport a bit).
5467 doc/ instead of doc/manual (had to change lyxport a bit).
5456
5468
5457 * IPython/Magic.py (Profile.string_stats): made profile runs go
5469 * IPython/Magic.py (Profile.string_stats): made profile runs go
5458 through pager (they are long and a pager allows searching, saving,
5470 through pager (they are long and a pager allows searching, saving,
5459 etc.)
5471 etc.)
5460
5472
5461 2002-05-08 Fernando Perez <fperez@colorado.edu>
5473 2002-05-08 Fernando Perez <fperez@colorado.edu>
5462
5474
5463 * Released 0.2.12
5475 * Released 0.2.12
5464
5476
5465 2002-05-06 Fernando Perez <fperez@colorado.edu>
5477 2002-05-06 Fernando Perez <fperez@colorado.edu>
5466
5478
5467 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5479 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5468 introduced); 'hist n1 n2' was broken.
5480 introduced); 'hist n1 n2' was broken.
5469 (Magic.magic_pdb): added optional on/off arguments to @pdb
5481 (Magic.magic_pdb): added optional on/off arguments to @pdb
5470 (Magic.magic_run): added option -i to @run, which executes code in
5482 (Magic.magic_run): added option -i to @run, which executes code in
5471 the IPython namespace instead of a clean one. Also added @irun as
5483 the IPython namespace instead of a clean one. Also added @irun as
5472 an alias to @run -i.
5484 an alias to @run -i.
5473
5485
5474 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5486 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5475 fixed (it didn't really do anything, the namespaces were wrong).
5487 fixed (it didn't really do anything, the namespaces were wrong).
5476
5488
5477 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5489 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5478
5490
5479 * IPython/__init__.py (__all__): Fixed package namespace, now
5491 * IPython/__init__.py (__all__): Fixed package namespace, now
5480 'import IPython' does give access to IPython.<all> as
5492 'import IPython' does give access to IPython.<all> as
5481 expected. Also renamed __release__ to Release.
5493 expected. Also renamed __release__ to Release.
5482
5494
5483 * IPython/Debugger.py (__license__): created new Pdb class which
5495 * IPython/Debugger.py (__license__): created new Pdb class which
5484 functions like a drop-in for the normal pdb.Pdb but does NOT
5496 functions like a drop-in for the normal pdb.Pdb but does NOT
5485 import readline by default. This way it doesn't muck up IPython's
5497 import readline by default. This way it doesn't muck up IPython's
5486 readline handling, and now tab-completion finally works in the
5498 readline handling, and now tab-completion finally works in the
5487 debugger -- sort of. It completes things globally visible, but the
5499 debugger -- sort of. It completes things globally visible, but the
5488 completer doesn't track the stack as pdb walks it. That's a bit
5500 completer doesn't track the stack as pdb walks it. That's a bit
5489 tricky, and I'll have to implement it later.
5501 tricky, and I'll have to implement it later.
5490
5502
5491 2002-05-05 Fernando Perez <fperez@colorado.edu>
5503 2002-05-05 Fernando Perez <fperez@colorado.edu>
5492
5504
5493 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5505 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5494 magic docstrings when printed via ? (explicit \'s were being
5506 magic docstrings when printed via ? (explicit \'s were being
5495 printed).
5507 printed).
5496
5508
5497 * IPython/ipmaker.py (make_IPython): fixed namespace
5509 * IPython/ipmaker.py (make_IPython): fixed namespace
5498 identification bug. Now variables loaded via logs or command-line
5510 identification bug. Now variables loaded via logs or command-line
5499 files are recognized in the interactive namespace by @who.
5511 files are recognized in the interactive namespace by @who.
5500
5512
5501 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5513 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5502 log replay system stemming from the string form of Structs.
5514 log replay system stemming from the string form of Structs.
5503
5515
5504 * IPython/Magic.py (Macro.__init__): improved macros to properly
5516 * IPython/Magic.py (Macro.__init__): improved macros to properly
5505 handle magic commands in them.
5517 handle magic commands in them.
5506 (Magic.magic_logstart): usernames are now expanded so 'logstart
5518 (Magic.magic_logstart): usernames are now expanded so 'logstart
5507 ~/mylog' now works.
5519 ~/mylog' now works.
5508
5520
5509 * IPython/iplib.py (complete): fixed bug where paths starting with
5521 * IPython/iplib.py (complete): fixed bug where paths starting with
5510 '/' would be completed as magic names.
5522 '/' would be completed as magic names.
5511
5523
5512 2002-05-04 Fernando Perez <fperez@colorado.edu>
5524 2002-05-04 Fernando Perez <fperez@colorado.edu>
5513
5525
5514 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5526 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5515 allow running full programs under the profiler's control.
5527 allow running full programs under the profiler's control.
5516
5528
5517 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5529 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5518 mode to report exceptions verbosely but without formatting
5530 mode to report exceptions verbosely but without formatting
5519 variables. This addresses the issue of ipython 'freezing' (it's
5531 variables. This addresses the issue of ipython 'freezing' (it's
5520 not frozen, but caught in an expensive formatting loop) when huge
5532 not frozen, but caught in an expensive formatting loop) when huge
5521 variables are in the context of an exception.
5533 variables are in the context of an exception.
5522 (VerboseTB.text): Added '--->' markers at line where exception was
5534 (VerboseTB.text): Added '--->' markers at line where exception was
5523 triggered. Much clearer to read, especially in NoColor modes.
5535 triggered. Much clearer to read, especially in NoColor modes.
5524
5536
5525 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5537 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5526 implemented in reverse when changing to the new parse_options().
5538 implemented in reverse when changing to the new parse_options().
5527
5539
5528 2002-05-03 Fernando Perez <fperez@colorado.edu>
5540 2002-05-03 Fernando Perez <fperez@colorado.edu>
5529
5541
5530 * IPython/Magic.py (Magic.parse_options): new function so that
5542 * IPython/Magic.py (Magic.parse_options): new function so that
5531 magics can parse options easier.
5543 magics can parse options easier.
5532 (Magic.magic_prun): new function similar to profile.run(),
5544 (Magic.magic_prun): new function similar to profile.run(),
5533 suggested by Chris Hart.
5545 suggested by Chris Hart.
5534 (Magic.magic_cd): fixed behavior so that it only changes if
5546 (Magic.magic_cd): fixed behavior so that it only changes if
5535 directory actually is in history.
5547 directory actually is in history.
5536
5548
5537 * IPython/usage.py (__doc__): added information about potential
5549 * IPython/usage.py (__doc__): added information about potential
5538 slowness of Verbose exception mode when there are huge data
5550 slowness of Verbose exception mode when there are huge data
5539 structures to be formatted (thanks to Archie Paulson).
5551 structures to be formatted (thanks to Archie Paulson).
5540
5552
5541 * IPython/ipmaker.py (make_IPython): Changed default logging
5553 * IPython/ipmaker.py (make_IPython): Changed default logging
5542 (when simply called with -log) to use curr_dir/ipython.log in
5554 (when simply called with -log) to use curr_dir/ipython.log in
5543 rotate mode. Fixed crash which was occuring with -log before
5555 rotate mode. Fixed crash which was occuring with -log before
5544 (thanks to Jim Boyle).
5556 (thanks to Jim Boyle).
5545
5557
5546 2002-05-01 Fernando Perez <fperez@colorado.edu>
5558 2002-05-01 Fernando Perez <fperez@colorado.edu>
5547
5559
5548 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5560 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5549 was nasty -- though somewhat of a corner case).
5561 was nasty -- though somewhat of a corner case).
5550
5562
5551 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5563 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5552 text (was a bug).
5564 text (was a bug).
5553
5565
5554 2002-04-30 Fernando Perez <fperez@colorado.edu>
5566 2002-04-30 Fernando Perez <fperez@colorado.edu>
5555
5567
5556 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5568 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5557 a print after ^D or ^C from the user so that the In[] prompt
5569 a print after ^D or ^C from the user so that the In[] prompt
5558 doesn't over-run the gnuplot one.
5570 doesn't over-run the gnuplot one.
5559
5571
5560 2002-04-29 Fernando Perez <fperez@colorado.edu>
5572 2002-04-29 Fernando Perez <fperez@colorado.edu>
5561
5573
5562 * Released 0.2.10
5574 * Released 0.2.10
5563
5575
5564 * IPython/__release__.py (version): get date dynamically.
5576 * IPython/__release__.py (version): get date dynamically.
5565
5577
5566 * Misc. documentation updates thanks to Arnd's comments. Also ran
5578 * Misc. documentation updates thanks to Arnd's comments. Also ran
5567 a full spellcheck on the manual (hadn't been done in a while).
5579 a full spellcheck on the manual (hadn't been done in a while).
5568
5580
5569 2002-04-27 Fernando Perez <fperez@colorado.edu>
5581 2002-04-27 Fernando Perez <fperez@colorado.edu>
5570
5582
5571 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5583 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5572 starting a log in mid-session would reset the input history list.
5584 starting a log in mid-session would reset the input history list.
5573
5585
5574 2002-04-26 Fernando Perez <fperez@colorado.edu>
5586 2002-04-26 Fernando Perez <fperez@colorado.edu>
5575
5587
5576 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5588 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5577 all files were being included in an update. Now anything in
5589 all files were being included in an update. Now anything in
5578 UserConfig that matches [A-Za-z]*.py will go (this excludes
5590 UserConfig that matches [A-Za-z]*.py will go (this excludes
5579 __init__.py)
5591 __init__.py)
5580
5592
5581 2002-04-25 Fernando Perez <fperez@colorado.edu>
5593 2002-04-25 Fernando Perez <fperez@colorado.edu>
5582
5594
5583 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5595 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5584 to __builtins__ so that any form of embedded or imported code can
5596 to __builtins__ so that any form of embedded or imported code can
5585 test for being inside IPython.
5597 test for being inside IPython.
5586
5598
5587 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5599 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5588 changed to GnuplotMagic because it's now an importable module,
5600 changed to GnuplotMagic because it's now an importable module,
5589 this makes the name follow that of the standard Gnuplot module.
5601 this makes the name follow that of the standard Gnuplot module.
5590 GnuplotMagic can now be loaded at any time in mid-session.
5602 GnuplotMagic can now be loaded at any time in mid-session.
5591
5603
5592 2002-04-24 Fernando Perez <fperez@colorado.edu>
5604 2002-04-24 Fernando Perez <fperez@colorado.edu>
5593
5605
5594 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5606 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5595 the globals (IPython has its own namespace) and the
5607 the globals (IPython has its own namespace) and the
5596 PhysicalQuantity stuff is much better anyway.
5608 PhysicalQuantity stuff is much better anyway.
5597
5609
5598 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5610 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5599 embedding example to standard user directory for
5611 embedding example to standard user directory for
5600 distribution. Also put it in the manual.
5612 distribution. Also put it in the manual.
5601
5613
5602 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5614 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5603 instance as first argument (so it doesn't rely on some obscure
5615 instance as first argument (so it doesn't rely on some obscure
5604 hidden global).
5616 hidden global).
5605
5617
5606 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5618 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5607 delimiters. While it prevents ().TAB from working, it allows
5619 delimiters. While it prevents ().TAB from working, it allows
5608 completions in open (... expressions. This is by far a more common
5620 completions in open (... expressions. This is by far a more common
5609 case.
5621 case.
5610
5622
5611 2002-04-23 Fernando Perez <fperez@colorado.edu>
5623 2002-04-23 Fernando Perez <fperez@colorado.edu>
5612
5624
5613 * IPython/Extensions/InterpreterPasteInput.py: new
5625 * IPython/Extensions/InterpreterPasteInput.py: new
5614 syntax-processing module for pasting lines with >>> or ... at the
5626 syntax-processing module for pasting lines with >>> or ... at the
5615 start.
5627 start.
5616
5628
5617 * IPython/Extensions/PhysicalQ_Interactive.py
5629 * IPython/Extensions/PhysicalQ_Interactive.py
5618 (PhysicalQuantityInteractive.__int__): fixed to work with either
5630 (PhysicalQuantityInteractive.__int__): fixed to work with either
5619 Numeric or math.
5631 Numeric or math.
5620
5632
5621 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5633 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5622 provided profiles. Now we have:
5634 provided profiles. Now we have:
5623 -math -> math module as * and cmath with its own namespace.
5635 -math -> math module as * and cmath with its own namespace.
5624 -numeric -> Numeric as *, plus gnuplot & grace
5636 -numeric -> Numeric as *, plus gnuplot & grace
5625 -physics -> same as before
5637 -physics -> same as before
5626
5638
5627 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5639 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5628 user-defined magics wouldn't be found by @magic if they were
5640 user-defined magics wouldn't be found by @magic if they were
5629 defined as class methods. Also cleaned up the namespace search
5641 defined as class methods. Also cleaned up the namespace search
5630 logic and the string building (to use %s instead of many repeated
5642 logic and the string building (to use %s instead of many repeated
5631 string adds).
5643 string adds).
5632
5644
5633 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5645 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5634 of user-defined magics to operate with class methods (cleaner, in
5646 of user-defined magics to operate with class methods (cleaner, in
5635 line with the gnuplot code).
5647 line with the gnuplot code).
5636
5648
5637 2002-04-22 Fernando Perez <fperez@colorado.edu>
5649 2002-04-22 Fernando Perez <fperez@colorado.edu>
5638
5650
5639 * setup.py: updated dependency list so that manual is updated when
5651 * setup.py: updated dependency list so that manual is updated when
5640 all included files change.
5652 all included files change.
5641
5653
5642 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5654 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5643 the delimiter removal option (the fix is ugly right now).
5655 the delimiter removal option (the fix is ugly right now).
5644
5656
5645 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5657 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5646 all of the math profile (quicker loading, no conflict between
5658 all of the math profile (quicker loading, no conflict between
5647 g-9.8 and g-gnuplot).
5659 g-9.8 and g-gnuplot).
5648
5660
5649 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5661 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5650 name of post-mortem files to IPython_crash_report.txt.
5662 name of post-mortem files to IPython_crash_report.txt.
5651
5663
5652 * Cleanup/update of the docs. Added all the new readline info and
5664 * Cleanup/update of the docs. Added all the new readline info and
5653 formatted all lists as 'real lists'.
5665 formatted all lists as 'real lists'.
5654
5666
5655 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5667 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5656 tab-completion options, since the full readline parse_and_bind is
5668 tab-completion options, since the full readline parse_and_bind is
5657 now accessible.
5669 now accessible.
5658
5670
5659 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5671 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5660 handling of readline options. Now users can specify any string to
5672 handling of readline options. Now users can specify any string to
5661 be passed to parse_and_bind(), as well as the delimiters to be
5673 be passed to parse_and_bind(), as well as the delimiters to be
5662 removed.
5674 removed.
5663 (InteractiveShell.__init__): Added __name__ to the global
5675 (InteractiveShell.__init__): Added __name__ to the global
5664 namespace so that things like Itpl which rely on its existence
5676 namespace so that things like Itpl which rely on its existence
5665 don't crash.
5677 don't crash.
5666 (InteractiveShell._prefilter): Defined the default with a _ so
5678 (InteractiveShell._prefilter): Defined the default with a _ so
5667 that prefilter() is easier to override, while the default one
5679 that prefilter() is easier to override, while the default one
5668 remains available.
5680 remains available.
5669
5681
5670 2002-04-18 Fernando Perez <fperez@colorado.edu>
5682 2002-04-18 Fernando Perez <fperez@colorado.edu>
5671
5683
5672 * Added information about pdb in the docs.
5684 * Added information about pdb in the docs.
5673
5685
5674 2002-04-17 Fernando Perez <fperez@colorado.edu>
5686 2002-04-17 Fernando Perez <fperez@colorado.edu>
5675
5687
5676 * IPython/ipmaker.py (make_IPython): added rc_override option to
5688 * IPython/ipmaker.py (make_IPython): added rc_override option to
5677 allow passing config options at creation time which may override
5689 allow passing config options at creation time which may override
5678 anything set in the config files or command line. This is
5690 anything set in the config files or command line. This is
5679 particularly useful for configuring embedded instances.
5691 particularly useful for configuring embedded instances.
5680
5692
5681 2002-04-15 Fernando Perez <fperez@colorado.edu>
5693 2002-04-15 Fernando Perez <fperez@colorado.edu>
5682
5694
5683 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5695 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5684 crash embedded instances because of the input cache falling out of
5696 crash embedded instances because of the input cache falling out of
5685 sync with the output counter.
5697 sync with the output counter.
5686
5698
5687 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5699 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5688 mode which calls pdb after an uncaught exception in IPython itself.
5700 mode which calls pdb after an uncaught exception in IPython itself.
5689
5701
5690 2002-04-14 Fernando Perez <fperez@colorado.edu>
5702 2002-04-14 Fernando Perez <fperez@colorado.edu>
5691
5703
5692 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5704 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5693 readline, fix it back after each call.
5705 readline, fix it back after each call.
5694
5706
5695 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5707 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5696 method to force all access via __call__(), which guarantees that
5708 method to force all access via __call__(), which guarantees that
5697 traceback references are properly deleted.
5709 traceback references are properly deleted.
5698
5710
5699 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5711 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5700 improve printing when pprint is in use.
5712 improve printing when pprint is in use.
5701
5713
5702 2002-04-13 Fernando Perez <fperez@colorado.edu>
5714 2002-04-13 Fernando Perez <fperez@colorado.edu>
5703
5715
5704 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5716 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5705 exceptions aren't caught anymore. If the user triggers one, he
5717 exceptions aren't caught anymore. If the user triggers one, he
5706 should know why he's doing it and it should go all the way up,
5718 should know why he's doing it and it should go all the way up,
5707 just like any other exception. So now @abort will fully kill the
5719 just like any other exception. So now @abort will fully kill the
5708 embedded interpreter and the embedding code (unless that happens
5720 embedded interpreter and the embedding code (unless that happens
5709 to catch SystemExit).
5721 to catch SystemExit).
5710
5722
5711 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5723 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5712 and a debugger() method to invoke the interactive pdb debugger
5724 and a debugger() method to invoke the interactive pdb debugger
5713 after printing exception information. Also added the corresponding
5725 after printing exception information. Also added the corresponding
5714 -pdb option and @pdb magic to control this feature, and updated
5726 -pdb option and @pdb magic to control this feature, and updated
5715 the docs. After a suggestion from Christopher Hart
5727 the docs. After a suggestion from Christopher Hart
5716 (hart-AT-caltech.edu).
5728 (hart-AT-caltech.edu).
5717
5729
5718 2002-04-12 Fernando Perez <fperez@colorado.edu>
5730 2002-04-12 Fernando Perez <fperez@colorado.edu>
5719
5731
5720 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5732 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5721 the exception handlers defined by the user (not the CrashHandler)
5733 the exception handlers defined by the user (not the CrashHandler)
5722 so that user exceptions don't trigger an ipython bug report.
5734 so that user exceptions don't trigger an ipython bug report.
5723
5735
5724 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5736 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5725 configurable (it should have always been so).
5737 configurable (it should have always been so).
5726
5738
5727 2002-03-26 Fernando Perez <fperez@colorado.edu>
5739 2002-03-26 Fernando Perez <fperez@colorado.edu>
5728
5740
5729 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5741 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5730 and there to fix embedding namespace issues. This should all be
5742 and there to fix embedding namespace issues. This should all be
5731 done in a more elegant way.
5743 done in a more elegant way.
5732
5744
5733 2002-03-25 Fernando Perez <fperez@colorado.edu>
5745 2002-03-25 Fernando Perez <fperez@colorado.edu>
5734
5746
5735 * IPython/genutils.py (get_home_dir): Try to make it work under
5747 * IPython/genutils.py (get_home_dir): Try to make it work under
5736 win9x also.
5748 win9x also.
5737
5749
5738 2002-03-20 Fernando Perez <fperez@colorado.edu>
5750 2002-03-20 Fernando Perez <fperez@colorado.edu>
5739
5751
5740 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5752 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5741 sys.displayhook untouched upon __init__.
5753 sys.displayhook untouched upon __init__.
5742
5754
5743 2002-03-19 Fernando Perez <fperez@colorado.edu>
5755 2002-03-19 Fernando Perez <fperez@colorado.edu>
5744
5756
5745 * Released 0.2.9 (for embedding bug, basically).
5757 * Released 0.2.9 (for embedding bug, basically).
5746
5758
5747 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5759 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5748 exceptions so that enclosing shell's state can be restored.
5760 exceptions so that enclosing shell's state can be restored.
5749
5761
5750 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5762 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5751 naming conventions in the .ipython/ dir.
5763 naming conventions in the .ipython/ dir.
5752
5764
5753 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5765 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5754 from delimiters list so filenames with - in them get expanded.
5766 from delimiters list so filenames with - in them get expanded.
5755
5767
5756 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5768 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5757 sys.displayhook not being properly restored after an embedded call.
5769 sys.displayhook not being properly restored after an embedded call.
5758
5770
5759 2002-03-18 Fernando Perez <fperez@colorado.edu>
5771 2002-03-18 Fernando Perez <fperez@colorado.edu>
5760
5772
5761 * Released 0.2.8
5773 * Released 0.2.8
5762
5774
5763 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5775 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5764 some files weren't being included in a -upgrade.
5776 some files weren't being included in a -upgrade.
5765 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5777 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5766 on' so that the first tab completes.
5778 on' so that the first tab completes.
5767 (InteractiveShell.handle_magic): fixed bug with spaces around
5779 (InteractiveShell.handle_magic): fixed bug with spaces around
5768 quotes breaking many magic commands.
5780 quotes breaking many magic commands.
5769
5781
5770 * setup.py: added note about ignoring the syntax error messages at
5782 * setup.py: added note about ignoring the syntax error messages at
5771 installation.
5783 installation.
5772
5784
5773 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5785 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5774 streamlining the gnuplot interface, now there's only one magic @gp.
5786 streamlining the gnuplot interface, now there's only one magic @gp.
5775
5787
5776 2002-03-17 Fernando Perez <fperez@colorado.edu>
5788 2002-03-17 Fernando Perez <fperez@colorado.edu>
5777
5789
5778 * IPython/UserConfig/magic_gnuplot.py: new name for the
5790 * IPython/UserConfig/magic_gnuplot.py: new name for the
5779 example-magic_pm.py file. Much enhanced system, now with a shell
5791 example-magic_pm.py file. Much enhanced system, now with a shell
5780 for communicating directly with gnuplot, one command at a time.
5792 for communicating directly with gnuplot, one command at a time.
5781
5793
5782 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5794 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5783 setting __name__=='__main__'.
5795 setting __name__=='__main__'.
5784
5796
5785 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5797 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5786 mini-shell for accessing gnuplot from inside ipython. Should
5798 mini-shell for accessing gnuplot from inside ipython. Should
5787 extend it later for grace access too. Inspired by Arnd's
5799 extend it later for grace access too. Inspired by Arnd's
5788 suggestion.
5800 suggestion.
5789
5801
5790 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5802 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5791 calling magic functions with () in their arguments. Thanks to Arnd
5803 calling magic functions with () in their arguments. Thanks to Arnd
5792 Baecker for pointing this to me.
5804 Baecker for pointing this to me.
5793
5805
5794 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5806 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5795 infinitely for integer or complex arrays (only worked with floats).
5807 infinitely for integer or complex arrays (only worked with floats).
5796
5808
5797 2002-03-16 Fernando Perez <fperez@colorado.edu>
5809 2002-03-16 Fernando Perez <fperez@colorado.edu>
5798
5810
5799 * setup.py: Merged setup and setup_windows into a single script
5811 * setup.py: Merged setup and setup_windows into a single script
5800 which properly handles things for windows users.
5812 which properly handles things for windows users.
5801
5813
5802 2002-03-15 Fernando Perez <fperez@colorado.edu>
5814 2002-03-15 Fernando Perez <fperez@colorado.edu>
5803
5815
5804 * Big change to the manual: now the magics are all automatically
5816 * Big change to the manual: now the magics are all automatically
5805 documented. This information is generated from their docstrings
5817 documented. This information is generated from their docstrings
5806 and put in a latex file included by the manual lyx file. This way
5818 and put in a latex file included by the manual lyx file. This way
5807 we get always up to date information for the magics. The manual
5819 we get always up to date information for the magics. The manual
5808 now also has proper version information, also auto-synced.
5820 now also has proper version information, also auto-synced.
5809
5821
5810 For this to work, an undocumented --magic_docstrings option was added.
5822 For this to work, an undocumented --magic_docstrings option was added.
5811
5823
5812 2002-03-13 Fernando Perez <fperez@colorado.edu>
5824 2002-03-13 Fernando Perez <fperez@colorado.edu>
5813
5825
5814 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5826 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5815 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5827 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5816
5828
5817 2002-03-12 Fernando Perez <fperez@colorado.edu>
5829 2002-03-12 Fernando Perez <fperez@colorado.edu>
5818
5830
5819 * IPython/ultraTB.py (TermColors): changed color escapes again to
5831 * IPython/ultraTB.py (TermColors): changed color escapes again to
5820 fix the (old, reintroduced) line-wrapping bug. Basically, if
5832 fix the (old, reintroduced) line-wrapping bug. Basically, if
5821 \001..\002 aren't given in the color escapes, lines get wrapped
5833 \001..\002 aren't given in the color escapes, lines get wrapped
5822 weirdly. But giving those screws up old xterms and emacs terms. So
5834 weirdly. But giving those screws up old xterms and emacs terms. So
5823 I added some logic for emacs terms to be ok, but I can't identify old
5835 I added some logic for emacs terms to be ok, but I can't identify old
5824 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5836 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5825
5837
5826 2002-03-10 Fernando Perez <fperez@colorado.edu>
5838 2002-03-10 Fernando Perez <fperez@colorado.edu>
5827
5839
5828 * IPython/usage.py (__doc__): Various documentation cleanups and
5840 * IPython/usage.py (__doc__): Various documentation cleanups and
5829 updates, both in usage docstrings and in the manual.
5841 updates, both in usage docstrings and in the manual.
5830
5842
5831 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5843 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5832 handling of caching. Set minimum acceptabe value for having a
5844 handling of caching. Set minimum acceptabe value for having a
5833 cache at 20 values.
5845 cache at 20 values.
5834
5846
5835 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5847 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5836 install_first_time function to a method, renamed it and added an
5848 install_first_time function to a method, renamed it and added an
5837 'upgrade' mode. Now people can update their config directory with
5849 'upgrade' mode. Now people can update their config directory with
5838 a simple command line switch (-upgrade, also new).
5850 a simple command line switch (-upgrade, also new).
5839
5851
5840 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5852 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5841 @file (convenient for automagic users under Python >= 2.2).
5853 @file (convenient for automagic users under Python >= 2.2).
5842 Removed @files (it seemed more like a plural than an abbrev. of
5854 Removed @files (it seemed more like a plural than an abbrev. of
5843 'file show').
5855 'file show').
5844
5856
5845 * IPython/iplib.py (install_first_time): Fixed crash if there were
5857 * IPython/iplib.py (install_first_time): Fixed crash if there were
5846 backup files ('~') in .ipython/ install directory.
5858 backup files ('~') in .ipython/ install directory.
5847
5859
5848 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5860 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5849 system. Things look fine, but these changes are fairly
5861 system. Things look fine, but these changes are fairly
5850 intrusive. Test them for a few days.
5862 intrusive. Test them for a few days.
5851
5863
5852 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5864 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5853 the prompts system. Now all in/out prompt strings are user
5865 the prompts system. Now all in/out prompt strings are user
5854 controllable. This is particularly useful for embedding, as one
5866 controllable. This is particularly useful for embedding, as one
5855 can tag embedded instances with particular prompts.
5867 can tag embedded instances with particular prompts.
5856
5868
5857 Also removed global use of sys.ps1/2, which now allows nested
5869 Also removed global use of sys.ps1/2, which now allows nested
5858 embeddings without any problems. Added command-line options for
5870 embeddings without any problems. Added command-line options for
5859 the prompt strings.
5871 the prompt strings.
5860
5872
5861 2002-03-08 Fernando Perez <fperez@colorado.edu>
5873 2002-03-08 Fernando Perez <fperez@colorado.edu>
5862
5874
5863 * IPython/UserConfig/example-embed-short.py (ipshell): added
5875 * IPython/UserConfig/example-embed-short.py (ipshell): added
5864 example file with the bare minimum code for embedding.
5876 example file with the bare minimum code for embedding.
5865
5877
5866 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5878 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5867 functionality for the embeddable shell to be activated/deactivated
5879 functionality for the embeddable shell to be activated/deactivated
5868 either globally or at each call.
5880 either globally or at each call.
5869
5881
5870 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5882 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5871 rewriting the prompt with '--->' for auto-inputs with proper
5883 rewriting the prompt with '--->' for auto-inputs with proper
5872 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5884 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5873 this is handled by the prompts class itself, as it should.
5885 this is handled by the prompts class itself, as it should.
5874
5886
5875 2002-03-05 Fernando Perez <fperez@colorado.edu>
5887 2002-03-05 Fernando Perez <fperez@colorado.edu>
5876
5888
5877 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5889 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5878 @logstart to avoid name clashes with the math log function.
5890 @logstart to avoid name clashes with the math log function.
5879
5891
5880 * Big updates to X/Emacs section of the manual.
5892 * Big updates to X/Emacs section of the manual.
5881
5893
5882 * Removed ipython_emacs. Milan explained to me how to pass
5894 * Removed ipython_emacs. Milan explained to me how to pass
5883 arguments to ipython through Emacs. Some day I'm going to end up
5895 arguments to ipython through Emacs. Some day I'm going to end up
5884 learning some lisp...
5896 learning some lisp...
5885
5897
5886 2002-03-04 Fernando Perez <fperez@colorado.edu>
5898 2002-03-04 Fernando Perez <fperez@colorado.edu>
5887
5899
5888 * IPython/ipython_emacs: Created script to be used as the
5900 * IPython/ipython_emacs: Created script to be used as the
5889 py-python-command Emacs variable so we can pass IPython
5901 py-python-command Emacs variable so we can pass IPython
5890 parameters. I can't figure out how to tell Emacs directly to pass
5902 parameters. I can't figure out how to tell Emacs directly to pass
5891 parameters to IPython, so a dummy shell script will do it.
5903 parameters to IPython, so a dummy shell script will do it.
5892
5904
5893 Other enhancements made for things to work better under Emacs'
5905 Other enhancements made for things to work better under Emacs'
5894 various types of terminals. Many thanks to Milan Zamazal
5906 various types of terminals. Many thanks to Milan Zamazal
5895 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5907 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5896
5908
5897 2002-03-01 Fernando Perez <fperez@colorado.edu>
5909 2002-03-01 Fernando Perez <fperez@colorado.edu>
5898
5910
5899 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5911 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5900 that loading of readline is now optional. This gives better
5912 that loading of readline is now optional. This gives better
5901 control to emacs users.
5913 control to emacs users.
5902
5914
5903 * IPython/ultraTB.py (__date__): Modified color escape sequences
5915 * IPython/ultraTB.py (__date__): Modified color escape sequences
5904 and now things work fine under xterm and in Emacs' term buffers
5916 and now things work fine under xterm and in Emacs' term buffers
5905 (though not shell ones). Well, in emacs you get colors, but all
5917 (though not shell ones). Well, in emacs you get colors, but all
5906 seem to be 'light' colors (no difference between dark and light
5918 seem to be 'light' colors (no difference between dark and light
5907 ones). But the garbage chars are gone, and also in xterms. It
5919 ones). But the garbage chars are gone, and also in xterms. It
5908 seems that now I'm using 'cleaner' ansi sequences.
5920 seems that now I'm using 'cleaner' ansi sequences.
5909
5921
5910 2002-02-21 Fernando Perez <fperez@colorado.edu>
5922 2002-02-21 Fernando Perez <fperez@colorado.edu>
5911
5923
5912 * Released 0.2.7 (mainly to publish the scoping fix).
5924 * Released 0.2.7 (mainly to publish the scoping fix).
5913
5925
5914 * IPython/Logger.py (Logger.logstate): added. A corresponding
5926 * IPython/Logger.py (Logger.logstate): added. A corresponding
5915 @logstate magic was created.
5927 @logstate magic was created.
5916
5928
5917 * IPython/Magic.py: fixed nested scoping problem under Python
5929 * IPython/Magic.py: fixed nested scoping problem under Python
5918 2.1.x (automagic wasn't working).
5930 2.1.x (automagic wasn't working).
5919
5931
5920 2002-02-20 Fernando Perez <fperez@colorado.edu>
5932 2002-02-20 Fernando Perez <fperez@colorado.edu>
5921
5933
5922 * Released 0.2.6.
5934 * Released 0.2.6.
5923
5935
5924 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5936 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5925 option so that logs can come out without any headers at all.
5937 option so that logs can come out without any headers at all.
5926
5938
5927 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5939 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5928 SciPy.
5940 SciPy.
5929
5941
5930 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5942 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5931 that embedded IPython calls don't require vars() to be explicitly
5943 that embedded IPython calls don't require vars() to be explicitly
5932 passed. Now they are extracted from the caller's frame (code
5944 passed. Now they are extracted from the caller's frame (code
5933 snatched from Eric Jones' weave). Added better documentation to
5945 snatched from Eric Jones' weave). Added better documentation to
5934 the section on embedding and the example file.
5946 the section on embedding and the example file.
5935
5947
5936 * IPython/genutils.py (page): Changed so that under emacs, it just
5948 * IPython/genutils.py (page): Changed so that under emacs, it just
5937 prints the string. You can then page up and down in the emacs
5949 prints the string. You can then page up and down in the emacs
5938 buffer itself. This is how the builtin help() works.
5950 buffer itself. This is how the builtin help() works.
5939
5951
5940 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5952 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5941 macro scoping: macros need to be executed in the user's namespace
5953 macro scoping: macros need to be executed in the user's namespace
5942 to work as if they had been typed by the user.
5954 to work as if they had been typed by the user.
5943
5955
5944 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5956 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5945 execute automatically (no need to type 'exec...'). They then
5957 execute automatically (no need to type 'exec...'). They then
5946 behave like 'true macros'. The printing system was also modified
5958 behave like 'true macros'. The printing system was also modified
5947 for this to work.
5959 for this to work.
5948
5960
5949 2002-02-19 Fernando Perez <fperez@colorado.edu>
5961 2002-02-19 Fernando Perez <fperez@colorado.edu>
5950
5962
5951 * IPython/genutils.py (page_file): new function for paging files
5963 * IPython/genutils.py (page_file): new function for paging files
5952 in an OS-independent way. Also necessary for file viewing to work
5964 in an OS-independent way. Also necessary for file viewing to work
5953 well inside Emacs buffers.
5965 well inside Emacs buffers.
5954 (page): Added checks for being in an emacs buffer.
5966 (page): Added checks for being in an emacs buffer.
5955 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5967 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5956 same bug in iplib.
5968 same bug in iplib.
5957
5969
5958 2002-02-18 Fernando Perez <fperez@colorado.edu>
5970 2002-02-18 Fernando Perez <fperez@colorado.edu>
5959
5971
5960 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5972 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5961 of readline so that IPython can work inside an Emacs buffer.
5973 of readline so that IPython can work inside an Emacs buffer.
5962
5974
5963 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5975 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5964 method signatures (they weren't really bugs, but it looks cleaner
5976 method signatures (they weren't really bugs, but it looks cleaner
5965 and keeps PyChecker happy).
5977 and keeps PyChecker happy).
5966
5978
5967 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5979 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5968 for implementing various user-defined hooks. Currently only
5980 for implementing various user-defined hooks. Currently only
5969 display is done.
5981 display is done.
5970
5982
5971 * IPython/Prompts.py (CachedOutput._display): changed display
5983 * IPython/Prompts.py (CachedOutput._display): changed display
5972 functions so that they can be dynamically changed by users easily.
5984 functions so that they can be dynamically changed by users easily.
5973
5985
5974 * IPython/Extensions/numeric_formats.py (num_display): added an
5986 * IPython/Extensions/numeric_formats.py (num_display): added an
5975 extension for printing NumPy arrays in flexible manners. It
5987 extension for printing NumPy arrays in flexible manners. It
5976 doesn't do anything yet, but all the structure is in
5988 doesn't do anything yet, but all the structure is in
5977 place. Ultimately the plan is to implement output format control
5989 place. Ultimately the plan is to implement output format control
5978 like in Octave.
5990 like in Octave.
5979
5991
5980 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5992 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5981 methods are found at run-time by all the automatic machinery.
5993 methods are found at run-time by all the automatic machinery.
5982
5994
5983 2002-02-17 Fernando Perez <fperez@colorado.edu>
5995 2002-02-17 Fernando Perez <fperez@colorado.edu>
5984
5996
5985 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5997 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5986 whole file a little.
5998 whole file a little.
5987
5999
5988 * ToDo: closed this document. Now there's a new_design.lyx
6000 * ToDo: closed this document. Now there's a new_design.lyx
5989 document for all new ideas. Added making a pdf of it for the
6001 document for all new ideas. Added making a pdf of it for the
5990 end-user distro.
6002 end-user distro.
5991
6003
5992 * IPython/Logger.py (Logger.switch_log): Created this to replace
6004 * IPython/Logger.py (Logger.switch_log): Created this to replace
5993 logon() and logoff(). It also fixes a nasty crash reported by
6005 logon() and logoff(). It also fixes a nasty crash reported by
5994 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6006 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5995
6007
5996 * IPython/iplib.py (complete): got auto-completion to work with
6008 * IPython/iplib.py (complete): got auto-completion to work with
5997 automagic (I had wanted this for a long time).
6009 automagic (I had wanted this for a long time).
5998
6010
5999 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6011 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6000 to @file, since file() is now a builtin and clashes with automagic
6012 to @file, since file() is now a builtin and clashes with automagic
6001 for @file.
6013 for @file.
6002
6014
6003 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6015 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6004 of this was previously in iplib, which had grown to more than 2000
6016 of this was previously in iplib, which had grown to more than 2000
6005 lines, way too long. No new functionality, but it makes managing
6017 lines, way too long. No new functionality, but it makes managing
6006 the code a bit easier.
6018 the code a bit easier.
6007
6019
6008 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6020 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6009 information to crash reports.
6021 information to crash reports.
6010
6022
6011 2002-02-12 Fernando Perez <fperez@colorado.edu>
6023 2002-02-12 Fernando Perez <fperez@colorado.edu>
6012
6024
6013 * Released 0.2.5.
6025 * Released 0.2.5.
6014
6026
6015 2002-02-11 Fernando Perez <fperez@colorado.edu>
6027 2002-02-11 Fernando Perez <fperez@colorado.edu>
6016
6028
6017 * Wrote a relatively complete Windows installer. It puts
6029 * Wrote a relatively complete Windows installer. It puts
6018 everything in place, creates Start Menu entries and fixes the
6030 everything in place, creates Start Menu entries and fixes the
6019 color issues. Nothing fancy, but it works.
6031 color issues. Nothing fancy, but it works.
6020
6032
6021 2002-02-10 Fernando Perez <fperez@colorado.edu>
6033 2002-02-10 Fernando Perez <fperez@colorado.edu>
6022
6034
6023 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6035 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6024 os.path.expanduser() call so that we can type @run ~/myfile.py and
6036 os.path.expanduser() call so that we can type @run ~/myfile.py and
6025 have thigs work as expected.
6037 have thigs work as expected.
6026
6038
6027 * IPython/genutils.py (page): fixed exception handling so things
6039 * IPython/genutils.py (page): fixed exception handling so things
6028 work both in Unix and Windows correctly. Quitting a pager triggers
6040 work both in Unix and Windows correctly. Quitting a pager triggers
6029 an IOError/broken pipe in Unix, and in windows not finding a pager
6041 an IOError/broken pipe in Unix, and in windows not finding a pager
6030 is also an IOError, so I had to actually look at the return value
6042 is also an IOError, so I had to actually look at the return value
6031 of the exception, not just the exception itself. Should be ok now.
6043 of the exception, not just the exception itself. Should be ok now.
6032
6044
6033 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6045 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6034 modified to allow case-insensitive color scheme changes.
6046 modified to allow case-insensitive color scheme changes.
6035
6047
6036 2002-02-09 Fernando Perez <fperez@colorado.edu>
6048 2002-02-09 Fernando Perez <fperez@colorado.edu>
6037
6049
6038 * IPython/genutils.py (native_line_ends): new function to leave
6050 * IPython/genutils.py (native_line_ends): new function to leave
6039 user config files with os-native line-endings.
6051 user config files with os-native line-endings.
6040
6052
6041 * README and manual updates.
6053 * README and manual updates.
6042
6054
6043 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6055 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6044 instead of StringType to catch Unicode strings.
6056 instead of StringType to catch Unicode strings.
6045
6057
6046 * IPython/genutils.py (filefind): fixed bug for paths with
6058 * IPython/genutils.py (filefind): fixed bug for paths with
6047 embedded spaces (very common in Windows).
6059 embedded spaces (very common in Windows).
6048
6060
6049 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6061 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6050 files under Windows, so that they get automatically associated
6062 files under Windows, so that they get automatically associated
6051 with a text editor. Windows makes it a pain to handle
6063 with a text editor. Windows makes it a pain to handle
6052 extension-less files.
6064 extension-less files.
6053
6065
6054 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6066 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6055 warning about readline only occur for Posix. In Windows there's no
6067 warning about readline only occur for Posix. In Windows there's no
6056 way to get readline, so why bother with the warning.
6068 way to get readline, so why bother with the warning.
6057
6069
6058 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6070 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6059 for __str__ instead of dir(self), since dir() changed in 2.2.
6071 for __str__ instead of dir(self), since dir() changed in 2.2.
6060
6072
6061 * Ported to Windows! Tested on XP, I suspect it should work fine
6073 * Ported to Windows! Tested on XP, I suspect it should work fine
6062 on NT/2000, but I don't think it will work on 98 et al. That
6074 on NT/2000, but I don't think it will work on 98 et al. That
6063 series of Windows is such a piece of junk anyway that I won't try
6075 series of Windows is such a piece of junk anyway that I won't try
6064 porting it there. The XP port was straightforward, showed a few
6076 porting it there. The XP port was straightforward, showed a few
6065 bugs here and there (fixed all), in particular some string
6077 bugs here and there (fixed all), in particular some string
6066 handling stuff which required considering Unicode strings (which
6078 handling stuff which required considering Unicode strings (which
6067 Windows uses). This is good, but hasn't been too tested :) No
6079 Windows uses). This is good, but hasn't been too tested :) No
6068 fancy installer yet, I'll put a note in the manual so people at
6080 fancy installer yet, I'll put a note in the manual so people at
6069 least make manually a shortcut.
6081 least make manually a shortcut.
6070
6082
6071 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6083 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6072 into a single one, "colors". This now controls both prompt and
6084 into a single one, "colors". This now controls both prompt and
6073 exception color schemes, and can be changed both at startup
6085 exception color schemes, and can be changed both at startup
6074 (either via command-line switches or via ipythonrc files) and at
6086 (either via command-line switches or via ipythonrc files) and at
6075 runtime, with @colors.
6087 runtime, with @colors.
6076 (Magic.magic_run): renamed @prun to @run and removed the old
6088 (Magic.magic_run): renamed @prun to @run and removed the old
6077 @run. The two were too similar to warrant keeping both.
6089 @run. The two were too similar to warrant keeping both.
6078
6090
6079 2002-02-03 Fernando Perez <fperez@colorado.edu>
6091 2002-02-03 Fernando Perez <fperez@colorado.edu>
6080
6092
6081 * IPython/iplib.py (install_first_time): Added comment on how to
6093 * IPython/iplib.py (install_first_time): Added comment on how to
6082 configure the color options for first-time users. Put a <return>
6094 configure the color options for first-time users. Put a <return>
6083 request at the end so that small-terminal users get a chance to
6095 request at the end so that small-terminal users get a chance to
6084 read the startup info.
6096 read the startup info.
6085
6097
6086 2002-01-23 Fernando Perez <fperez@colorado.edu>
6098 2002-01-23 Fernando Perez <fperez@colorado.edu>
6087
6099
6088 * IPython/iplib.py (CachedOutput.update): Changed output memory
6100 * IPython/iplib.py (CachedOutput.update): Changed output memory
6089 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6101 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6090 input history we still use _i. Did this b/c these variable are
6102 input history we still use _i. Did this b/c these variable are
6091 very commonly used in interactive work, so the less we need to
6103 very commonly used in interactive work, so the less we need to
6092 type the better off we are.
6104 type the better off we are.
6093 (Magic.magic_prun): updated @prun to better handle the namespaces
6105 (Magic.magic_prun): updated @prun to better handle the namespaces
6094 the file will run in, including a fix for __name__ not being set
6106 the file will run in, including a fix for __name__ not being set
6095 before.
6107 before.
6096
6108
6097 2002-01-20 Fernando Perez <fperez@colorado.edu>
6109 2002-01-20 Fernando Perez <fperez@colorado.edu>
6098
6110
6099 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6111 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6100 extra garbage for Python 2.2. Need to look more carefully into
6112 extra garbage for Python 2.2. Need to look more carefully into
6101 this later.
6113 this later.
6102
6114
6103 2002-01-19 Fernando Perez <fperez@colorado.edu>
6115 2002-01-19 Fernando Perez <fperez@colorado.edu>
6104
6116
6105 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6117 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6106 display SyntaxError exceptions properly formatted when they occur
6118 display SyntaxError exceptions properly formatted when they occur
6107 (they can be triggered by imported code).
6119 (they can be triggered by imported code).
6108
6120
6109 2002-01-18 Fernando Perez <fperez@colorado.edu>
6121 2002-01-18 Fernando Perez <fperez@colorado.edu>
6110
6122
6111 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6123 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6112 SyntaxError exceptions are reported nicely formatted, instead of
6124 SyntaxError exceptions are reported nicely formatted, instead of
6113 spitting out only offset information as before.
6125 spitting out only offset information as before.
6114 (Magic.magic_prun): Added the @prun function for executing
6126 (Magic.magic_prun): Added the @prun function for executing
6115 programs with command line args inside IPython.
6127 programs with command line args inside IPython.
6116
6128
6117 2002-01-16 Fernando Perez <fperez@colorado.edu>
6129 2002-01-16 Fernando Perez <fperez@colorado.edu>
6118
6130
6119 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6131 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6120 to *not* include the last item given in a range. This brings their
6132 to *not* include the last item given in a range. This brings their
6121 behavior in line with Python's slicing:
6133 behavior in line with Python's slicing:
6122 a[n1:n2] -> a[n1]...a[n2-1]
6134 a[n1:n2] -> a[n1]...a[n2-1]
6123 It may be a bit less convenient, but I prefer to stick to Python's
6135 It may be a bit less convenient, but I prefer to stick to Python's
6124 conventions *everywhere*, so users never have to wonder.
6136 conventions *everywhere*, so users never have to wonder.
6125 (Magic.magic_macro): Added @macro function to ease the creation of
6137 (Magic.magic_macro): Added @macro function to ease the creation of
6126 macros.
6138 macros.
6127
6139
6128 2002-01-05 Fernando Perez <fperez@colorado.edu>
6140 2002-01-05 Fernando Perez <fperez@colorado.edu>
6129
6141
6130 * Released 0.2.4.
6142 * Released 0.2.4.
6131
6143
6132 * IPython/iplib.py (Magic.magic_pdef):
6144 * IPython/iplib.py (Magic.magic_pdef):
6133 (InteractiveShell.safe_execfile): report magic lines and error
6145 (InteractiveShell.safe_execfile): report magic lines and error
6134 lines without line numbers so one can easily copy/paste them for
6146 lines without line numbers so one can easily copy/paste them for
6135 re-execution.
6147 re-execution.
6136
6148
6137 * Updated manual with recent changes.
6149 * Updated manual with recent changes.
6138
6150
6139 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6151 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6140 docstring printing when class? is called. Very handy for knowing
6152 docstring printing when class? is called. Very handy for knowing
6141 how to create class instances (as long as __init__ is well
6153 how to create class instances (as long as __init__ is well
6142 documented, of course :)
6154 documented, of course :)
6143 (Magic.magic_doc): print both class and constructor docstrings.
6155 (Magic.magic_doc): print both class and constructor docstrings.
6144 (Magic.magic_pdef): give constructor info if passed a class and
6156 (Magic.magic_pdef): give constructor info if passed a class and
6145 __call__ info for callable object instances.
6157 __call__ info for callable object instances.
6146
6158
6147 2002-01-04 Fernando Perez <fperez@colorado.edu>
6159 2002-01-04 Fernando Perez <fperez@colorado.edu>
6148
6160
6149 * Made deep_reload() off by default. It doesn't always work
6161 * Made deep_reload() off by default. It doesn't always work
6150 exactly as intended, so it's probably safer to have it off. It's
6162 exactly as intended, so it's probably safer to have it off. It's
6151 still available as dreload() anyway, so nothing is lost.
6163 still available as dreload() anyway, so nothing is lost.
6152
6164
6153 2002-01-02 Fernando Perez <fperez@colorado.edu>
6165 2002-01-02 Fernando Perez <fperez@colorado.edu>
6154
6166
6155 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6167 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6156 so I wanted an updated release).
6168 so I wanted an updated release).
6157
6169
6158 2001-12-27 Fernando Perez <fperez@colorado.edu>
6170 2001-12-27 Fernando Perez <fperez@colorado.edu>
6159
6171
6160 * IPython/iplib.py (InteractiveShell.interact): Added the original
6172 * IPython/iplib.py (InteractiveShell.interact): Added the original
6161 code from 'code.py' for this module in order to change the
6173 code from 'code.py' for this module in order to change the
6162 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6174 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6163 the history cache would break when the user hit Ctrl-C, and
6175 the history cache would break when the user hit Ctrl-C, and
6164 interact() offers no way to add any hooks to it.
6176 interact() offers no way to add any hooks to it.
6165
6177
6166 2001-12-23 Fernando Perez <fperez@colorado.edu>
6178 2001-12-23 Fernando Perez <fperez@colorado.edu>
6167
6179
6168 * setup.py: added check for 'MANIFEST' before trying to remove
6180 * setup.py: added check for 'MANIFEST' before trying to remove
6169 it. Thanks to Sean Reifschneider.
6181 it. Thanks to Sean Reifschneider.
6170
6182
6171 2001-12-22 Fernando Perez <fperez@colorado.edu>
6183 2001-12-22 Fernando Perez <fperez@colorado.edu>
6172
6184
6173 * Released 0.2.2.
6185 * Released 0.2.2.
6174
6186
6175 * Finished (reasonably) writing the manual. Later will add the
6187 * Finished (reasonably) writing the manual. Later will add the
6176 python-standard navigation stylesheets, but for the time being
6188 python-standard navigation stylesheets, but for the time being
6177 it's fairly complete. Distribution will include html and pdf
6189 it's fairly complete. Distribution will include html and pdf
6178 versions.
6190 versions.
6179
6191
6180 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6192 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6181 (MayaVi author).
6193 (MayaVi author).
6182
6194
6183 2001-12-21 Fernando Perez <fperez@colorado.edu>
6195 2001-12-21 Fernando Perez <fperez@colorado.edu>
6184
6196
6185 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6197 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6186 good public release, I think (with the manual and the distutils
6198 good public release, I think (with the manual and the distutils
6187 installer). The manual can use some work, but that can go
6199 installer). The manual can use some work, but that can go
6188 slowly. Otherwise I think it's quite nice for end users. Next
6200 slowly. Otherwise I think it's quite nice for end users. Next
6189 summer, rewrite the guts of it...
6201 summer, rewrite the guts of it...
6190
6202
6191 * Changed format of ipythonrc files to use whitespace as the
6203 * Changed format of ipythonrc files to use whitespace as the
6192 separator instead of an explicit '='. Cleaner.
6204 separator instead of an explicit '='. Cleaner.
6193
6205
6194 2001-12-20 Fernando Perez <fperez@colorado.edu>
6206 2001-12-20 Fernando Perez <fperez@colorado.edu>
6195
6207
6196 * Started a manual in LyX. For now it's just a quick merge of the
6208 * Started a manual in LyX. For now it's just a quick merge of the
6197 various internal docstrings and READMEs. Later it may grow into a
6209 various internal docstrings and READMEs. Later it may grow into a
6198 nice, full-blown manual.
6210 nice, full-blown manual.
6199
6211
6200 * Set up a distutils based installer. Installation should now be
6212 * Set up a distutils based installer. Installation should now be
6201 trivially simple for end-users.
6213 trivially simple for end-users.
6202
6214
6203 2001-12-11 Fernando Perez <fperez@colorado.edu>
6215 2001-12-11 Fernando Perez <fperez@colorado.edu>
6204
6216
6205 * Released 0.2.0. First public release, announced it at
6217 * Released 0.2.0. First public release, announced it at
6206 comp.lang.python. From now on, just bugfixes...
6218 comp.lang.python. From now on, just bugfixes...
6207
6219
6208 * Went through all the files, set copyright/license notices and
6220 * Went through all the files, set copyright/license notices and
6209 cleaned up things. Ready for release.
6221 cleaned up things. Ready for release.
6210
6222
6211 2001-12-10 Fernando Perez <fperez@colorado.edu>
6223 2001-12-10 Fernando Perez <fperez@colorado.edu>
6212
6224
6213 * Changed the first-time installer not to use tarfiles. It's more
6225 * Changed the first-time installer not to use tarfiles. It's more
6214 robust now and less unix-dependent. Also makes it easier for
6226 robust now and less unix-dependent. Also makes it easier for
6215 people to later upgrade versions.
6227 people to later upgrade versions.
6216
6228
6217 * Changed @exit to @abort to reflect the fact that it's pretty
6229 * Changed @exit to @abort to reflect the fact that it's pretty
6218 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6230 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6219 becomes significant only when IPyhton is embedded: in that case,
6231 becomes significant only when IPyhton is embedded: in that case,
6220 C-D closes IPython only, but @abort kills the enclosing program
6232 C-D closes IPython only, but @abort kills the enclosing program
6221 too (unless it had called IPython inside a try catching
6233 too (unless it had called IPython inside a try catching
6222 SystemExit).
6234 SystemExit).
6223
6235
6224 * Created Shell module which exposes the actuall IPython Shell
6236 * Created Shell module which exposes the actuall IPython Shell
6225 classes, currently the normal and the embeddable one. This at
6237 classes, currently the normal and the embeddable one. This at
6226 least offers a stable interface we won't need to change when
6238 least offers a stable interface we won't need to change when
6227 (later) the internals are rewritten. That rewrite will be confined
6239 (later) the internals are rewritten. That rewrite will be confined
6228 to iplib and ipmaker, but the Shell interface should remain as is.
6240 to iplib and ipmaker, but the Shell interface should remain as is.
6229
6241
6230 * Added embed module which offers an embeddable IPShell object,
6242 * Added embed module which offers an embeddable IPShell object,
6231 useful to fire up IPython *inside* a running program. Great for
6243 useful to fire up IPython *inside* a running program. Great for
6232 debugging or dynamical data analysis.
6244 debugging or dynamical data analysis.
6233
6245
6234 2001-12-08 Fernando Perez <fperez@colorado.edu>
6246 2001-12-08 Fernando Perez <fperez@colorado.edu>
6235
6247
6236 * Fixed small bug preventing seeing info from methods of defined
6248 * Fixed small bug preventing seeing info from methods of defined
6237 objects (incorrect namespace in _ofind()).
6249 objects (incorrect namespace in _ofind()).
6238
6250
6239 * Documentation cleanup. Moved the main usage docstrings to a
6251 * Documentation cleanup. Moved the main usage docstrings to a
6240 separate file, usage.py (cleaner to maintain, and hopefully in the
6252 separate file, usage.py (cleaner to maintain, and hopefully in the
6241 future some perlpod-like way of producing interactive, man and
6253 future some perlpod-like way of producing interactive, man and
6242 html docs out of it will be found).
6254 html docs out of it will be found).
6243
6255
6244 * Added @profile to see your profile at any time.
6256 * Added @profile to see your profile at any time.
6245
6257
6246 * Added @p as an alias for 'print'. It's especially convenient if
6258 * Added @p as an alias for 'print'. It's especially convenient if
6247 using automagic ('p x' prints x).
6259 using automagic ('p x' prints x).
6248
6260
6249 * Small cleanups and fixes after a pychecker run.
6261 * Small cleanups and fixes after a pychecker run.
6250
6262
6251 * Changed the @cd command to handle @cd - and @cd -<n> for
6263 * Changed the @cd command to handle @cd - and @cd -<n> for
6252 visiting any directory in _dh.
6264 visiting any directory in _dh.
6253
6265
6254 * Introduced _dh, a history of visited directories. @dhist prints
6266 * Introduced _dh, a history of visited directories. @dhist prints
6255 it out with numbers.
6267 it out with numbers.
6256
6268
6257 2001-12-07 Fernando Perez <fperez@colorado.edu>
6269 2001-12-07 Fernando Perez <fperez@colorado.edu>
6258
6270
6259 * Released 0.1.22
6271 * Released 0.1.22
6260
6272
6261 * Made initialization a bit more robust against invalid color
6273 * Made initialization a bit more robust against invalid color
6262 options in user input (exit, not traceback-crash).
6274 options in user input (exit, not traceback-crash).
6263
6275
6264 * Changed the bug crash reporter to write the report only in the
6276 * Changed the bug crash reporter to write the report only in the
6265 user's .ipython directory. That way IPython won't litter people's
6277 user's .ipython directory. That way IPython won't litter people's
6266 hard disks with crash files all over the place. Also print on
6278 hard disks with crash files all over the place. Also print on
6267 screen the necessary mail command.
6279 screen the necessary mail command.
6268
6280
6269 * With the new ultraTB, implemented LightBG color scheme for light
6281 * With the new ultraTB, implemented LightBG color scheme for light
6270 background terminals. A lot of people like white backgrounds, so I
6282 background terminals. A lot of people like white backgrounds, so I
6271 guess we should at least give them something readable.
6283 guess we should at least give them something readable.
6272
6284
6273 2001-12-06 Fernando Perez <fperez@colorado.edu>
6285 2001-12-06 Fernando Perez <fperez@colorado.edu>
6274
6286
6275 * Modified the structure of ultraTB. Now there's a proper class
6287 * Modified the structure of ultraTB. Now there's a proper class
6276 for tables of color schemes which allow adding schemes easily and
6288 for tables of color schemes which allow adding schemes easily and
6277 switching the active scheme without creating a new instance every
6289 switching the active scheme without creating a new instance every
6278 time (which was ridiculous). The syntax for creating new schemes
6290 time (which was ridiculous). The syntax for creating new schemes
6279 is also cleaner. I think ultraTB is finally done, with a clean
6291 is also cleaner. I think ultraTB is finally done, with a clean
6280 class structure. Names are also much cleaner (now there's proper
6292 class structure. Names are also much cleaner (now there's proper
6281 color tables, no need for every variable to also have 'color' in
6293 color tables, no need for every variable to also have 'color' in
6282 its name).
6294 its name).
6283
6295
6284 * Broke down genutils into separate files. Now genutils only
6296 * Broke down genutils into separate files. Now genutils only
6285 contains utility functions, and classes have been moved to their
6297 contains utility functions, and classes have been moved to their
6286 own files (they had enough independent functionality to warrant
6298 own files (they had enough independent functionality to warrant
6287 it): ConfigLoader, OutputTrap, Struct.
6299 it): ConfigLoader, OutputTrap, Struct.
6288
6300
6289 2001-12-05 Fernando Perez <fperez@colorado.edu>
6301 2001-12-05 Fernando Perez <fperez@colorado.edu>
6290
6302
6291 * IPython turns 21! Released version 0.1.21, as a candidate for
6303 * IPython turns 21! Released version 0.1.21, as a candidate for
6292 public consumption. If all goes well, release in a few days.
6304 public consumption. If all goes well, release in a few days.
6293
6305
6294 * Fixed path bug (files in Extensions/ directory wouldn't be found
6306 * Fixed path bug (files in Extensions/ directory wouldn't be found
6295 unless IPython/ was explicitly in sys.path).
6307 unless IPython/ was explicitly in sys.path).
6296
6308
6297 * Extended the FlexCompleter class as MagicCompleter to allow
6309 * Extended the FlexCompleter class as MagicCompleter to allow
6298 completion of @-starting lines.
6310 completion of @-starting lines.
6299
6311
6300 * Created __release__.py file as a central repository for release
6312 * Created __release__.py file as a central repository for release
6301 info that other files can read from.
6313 info that other files can read from.
6302
6314
6303 * Fixed small bug in logging: when logging was turned on in
6315 * Fixed small bug in logging: when logging was turned on in
6304 mid-session, old lines with special meanings (!@?) were being
6316 mid-session, old lines with special meanings (!@?) were being
6305 logged without the prepended comment, which is necessary since
6317 logged without the prepended comment, which is necessary since
6306 they are not truly valid python syntax. This should make session
6318 they are not truly valid python syntax. This should make session
6307 restores produce less errors.
6319 restores produce less errors.
6308
6320
6309 * The namespace cleanup forced me to make a FlexCompleter class
6321 * The namespace cleanup forced me to make a FlexCompleter class
6310 which is nothing but a ripoff of rlcompleter, but with selectable
6322 which is nothing but a ripoff of rlcompleter, but with selectable
6311 namespace (rlcompleter only works in __main__.__dict__). I'll try
6323 namespace (rlcompleter only works in __main__.__dict__). I'll try
6312 to submit a note to the authors to see if this change can be
6324 to submit a note to the authors to see if this change can be
6313 incorporated in future rlcompleter releases (Dec.6: done)
6325 incorporated in future rlcompleter releases (Dec.6: done)
6314
6326
6315 * More fixes to namespace handling. It was a mess! Now all
6327 * More fixes to namespace handling. It was a mess! Now all
6316 explicit references to __main__.__dict__ are gone (except when
6328 explicit references to __main__.__dict__ are gone (except when
6317 really needed) and everything is handled through the namespace
6329 really needed) and everything is handled through the namespace
6318 dicts in the IPython instance. We seem to be getting somewhere
6330 dicts in the IPython instance. We seem to be getting somewhere
6319 with this, finally...
6331 with this, finally...
6320
6332
6321 * Small documentation updates.
6333 * Small documentation updates.
6322
6334
6323 * Created the Extensions directory under IPython (with an
6335 * Created the Extensions directory under IPython (with an
6324 __init__.py). Put the PhysicalQ stuff there. This directory should
6336 __init__.py). Put the PhysicalQ stuff there. This directory should
6325 be used for all special-purpose extensions.
6337 be used for all special-purpose extensions.
6326
6338
6327 * File renaming:
6339 * File renaming:
6328 ipythonlib --> ipmaker
6340 ipythonlib --> ipmaker
6329 ipplib --> iplib
6341 ipplib --> iplib
6330 This makes a bit more sense in terms of what these files actually do.
6342 This makes a bit more sense in terms of what these files actually do.
6331
6343
6332 * Moved all the classes and functions in ipythonlib to ipplib, so
6344 * Moved all the classes and functions in ipythonlib to ipplib, so
6333 now ipythonlib only has make_IPython(). This will ease up its
6345 now ipythonlib only has make_IPython(). This will ease up its
6334 splitting in smaller functional chunks later.
6346 splitting in smaller functional chunks later.
6335
6347
6336 * Cleaned up (done, I think) output of @whos. Better column
6348 * Cleaned up (done, I think) output of @whos. Better column
6337 formatting, and now shows str(var) for as much as it can, which is
6349 formatting, and now shows str(var) for as much as it can, which is
6338 typically what one gets with a 'print var'.
6350 typically what one gets with a 'print var'.
6339
6351
6340 2001-12-04 Fernando Perez <fperez@colorado.edu>
6352 2001-12-04 Fernando Perez <fperez@colorado.edu>
6341
6353
6342 * Fixed namespace problems. Now builtin/IPyhton/user names get
6354 * Fixed namespace problems. Now builtin/IPyhton/user names get
6343 properly reported in their namespace. Internal namespace handling
6355 properly reported in their namespace. Internal namespace handling
6344 is finally getting decent (not perfect yet, but much better than
6356 is finally getting decent (not perfect yet, but much better than
6345 the ad-hoc mess we had).
6357 the ad-hoc mess we had).
6346
6358
6347 * Removed -exit option. If people just want to run a python
6359 * Removed -exit option. If people just want to run a python
6348 script, that's what the normal interpreter is for. Less
6360 script, that's what the normal interpreter is for. Less
6349 unnecessary options, less chances for bugs.
6361 unnecessary options, less chances for bugs.
6350
6362
6351 * Added a crash handler which generates a complete post-mortem if
6363 * Added a crash handler which generates a complete post-mortem if
6352 IPython crashes. This will help a lot in tracking bugs down the
6364 IPython crashes. This will help a lot in tracking bugs down the
6353 road.
6365 road.
6354
6366
6355 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6367 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6356 which were boud to functions being reassigned would bypass the
6368 which were boud to functions being reassigned would bypass the
6357 logger, breaking the sync of _il with the prompt counter. This
6369 logger, breaking the sync of _il with the prompt counter. This
6358 would then crash IPython later when a new line was logged.
6370 would then crash IPython later when a new line was logged.
6359
6371
6360 2001-12-02 Fernando Perez <fperez@colorado.edu>
6372 2001-12-02 Fernando Perez <fperez@colorado.edu>
6361
6373
6362 * Made IPython a package. This means people don't have to clutter
6374 * Made IPython a package. This means people don't have to clutter
6363 their sys.path with yet another directory. Changed the INSTALL
6375 their sys.path with yet another directory. Changed the INSTALL
6364 file accordingly.
6376 file accordingly.
6365
6377
6366 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6378 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6367 sorts its output (so @who shows it sorted) and @whos formats the
6379 sorts its output (so @who shows it sorted) and @whos formats the
6368 table according to the width of the first column. Nicer, easier to
6380 table according to the width of the first column. Nicer, easier to
6369 read. Todo: write a generic table_format() which takes a list of
6381 read. Todo: write a generic table_format() which takes a list of
6370 lists and prints it nicely formatted, with optional row/column
6382 lists and prints it nicely formatted, with optional row/column
6371 separators and proper padding and justification.
6383 separators and proper padding and justification.
6372
6384
6373 * Released 0.1.20
6385 * Released 0.1.20
6374
6386
6375 * Fixed bug in @log which would reverse the inputcache list (a
6387 * Fixed bug in @log which would reverse the inputcache list (a
6376 copy operation was missing).
6388 copy operation was missing).
6377
6389
6378 * Code cleanup. @config was changed to use page(). Better, since
6390 * Code cleanup. @config was changed to use page(). Better, since
6379 its output is always quite long.
6391 its output is always quite long.
6380
6392
6381 * Itpl is back as a dependency. I was having too many problems
6393 * Itpl is back as a dependency. I was having too many problems
6382 getting the parametric aliases to work reliably, and it's just
6394 getting the parametric aliases to work reliably, and it's just
6383 easier to code weird string operations with it than playing %()s
6395 easier to code weird string operations with it than playing %()s
6384 games. It's only ~6k, so I don't think it's too big a deal.
6396 games. It's only ~6k, so I don't think it's too big a deal.
6385
6397
6386 * Found (and fixed) a very nasty bug with history. !lines weren't
6398 * Found (and fixed) a very nasty bug with history. !lines weren't
6387 getting cached, and the out of sync caches would crash
6399 getting cached, and the out of sync caches would crash
6388 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6400 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6389 division of labor a bit better. Bug fixed, cleaner structure.
6401 division of labor a bit better. Bug fixed, cleaner structure.
6390
6402
6391 2001-12-01 Fernando Perez <fperez@colorado.edu>
6403 2001-12-01 Fernando Perez <fperez@colorado.edu>
6392
6404
6393 * Released 0.1.19
6405 * Released 0.1.19
6394
6406
6395 * Added option -n to @hist to prevent line number printing. Much
6407 * Added option -n to @hist to prevent line number printing. Much
6396 easier to copy/paste code this way.
6408 easier to copy/paste code this way.
6397
6409
6398 * Created global _il to hold the input list. Allows easy
6410 * Created global _il to hold the input list. Allows easy
6399 re-execution of blocks of code by slicing it (inspired by Janko's
6411 re-execution of blocks of code by slicing it (inspired by Janko's
6400 comment on 'macros').
6412 comment on 'macros').
6401
6413
6402 * Small fixes and doc updates.
6414 * Small fixes and doc updates.
6403
6415
6404 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6416 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6405 much too fragile with automagic. Handles properly multi-line
6417 much too fragile with automagic. Handles properly multi-line
6406 statements and takes parameters.
6418 statements and takes parameters.
6407
6419
6408 2001-11-30 Fernando Perez <fperez@colorado.edu>
6420 2001-11-30 Fernando Perez <fperez@colorado.edu>
6409
6421
6410 * Version 0.1.18 released.
6422 * Version 0.1.18 released.
6411
6423
6412 * Fixed nasty namespace bug in initial module imports.
6424 * Fixed nasty namespace bug in initial module imports.
6413
6425
6414 * Added copyright/license notes to all code files (except
6426 * Added copyright/license notes to all code files (except
6415 DPyGetOpt). For the time being, LGPL. That could change.
6427 DPyGetOpt). For the time being, LGPL. That could change.
6416
6428
6417 * Rewrote a much nicer README, updated INSTALL, cleaned up
6429 * Rewrote a much nicer README, updated INSTALL, cleaned up
6418 ipythonrc-* samples.
6430 ipythonrc-* samples.
6419
6431
6420 * Overall code/documentation cleanup. Basically ready for
6432 * Overall code/documentation cleanup. Basically ready for
6421 release. Only remaining thing: licence decision (LGPL?).
6433 release. Only remaining thing: licence decision (LGPL?).
6422
6434
6423 * Converted load_config to a class, ConfigLoader. Now recursion
6435 * Converted load_config to a class, ConfigLoader. Now recursion
6424 control is better organized. Doesn't include the same file twice.
6436 control is better organized. Doesn't include the same file twice.
6425
6437
6426 2001-11-29 Fernando Perez <fperez@colorado.edu>
6438 2001-11-29 Fernando Perez <fperez@colorado.edu>
6427
6439
6428 * Got input history working. Changed output history variables from
6440 * Got input history working. Changed output history variables from
6429 _p to _o so that _i is for input and _o for output. Just cleaner
6441 _p to _o so that _i is for input and _o for output. Just cleaner
6430 convention.
6442 convention.
6431
6443
6432 * Implemented parametric aliases. This pretty much allows the
6444 * Implemented parametric aliases. This pretty much allows the
6433 alias system to offer full-blown shell convenience, I think.
6445 alias system to offer full-blown shell convenience, I think.
6434
6446
6435 * Version 0.1.17 released, 0.1.18 opened.
6447 * Version 0.1.17 released, 0.1.18 opened.
6436
6448
6437 * dot_ipython/ipythonrc (alias): added documentation.
6449 * dot_ipython/ipythonrc (alias): added documentation.
6438 (xcolor): Fixed small bug (xcolors -> xcolor)
6450 (xcolor): Fixed small bug (xcolors -> xcolor)
6439
6451
6440 * Changed the alias system. Now alias is a magic command to define
6452 * Changed the alias system. Now alias is a magic command to define
6441 aliases just like the shell. Rationale: the builtin magics should
6453 aliases just like the shell. Rationale: the builtin magics should
6442 be there for things deeply connected to IPython's
6454 be there for things deeply connected to IPython's
6443 architecture. And this is a much lighter system for what I think
6455 architecture. And this is a much lighter system for what I think
6444 is the really important feature: allowing users to define quickly
6456 is the really important feature: allowing users to define quickly
6445 magics that will do shell things for them, so they can customize
6457 magics that will do shell things for them, so they can customize
6446 IPython easily to match their work habits. If someone is really
6458 IPython easily to match their work habits. If someone is really
6447 desperate to have another name for a builtin alias, they can
6459 desperate to have another name for a builtin alias, they can
6448 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6460 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6449 works.
6461 works.
6450
6462
6451 2001-11-28 Fernando Perez <fperez@colorado.edu>
6463 2001-11-28 Fernando Perez <fperez@colorado.edu>
6452
6464
6453 * Changed @file so that it opens the source file at the proper
6465 * Changed @file so that it opens the source file at the proper
6454 line. Since it uses less, if your EDITOR environment is
6466 line. Since it uses less, if your EDITOR environment is
6455 configured, typing v will immediately open your editor of choice
6467 configured, typing v will immediately open your editor of choice
6456 right at the line where the object is defined. Not as quick as
6468 right at the line where the object is defined. Not as quick as
6457 having a direct @edit command, but for all intents and purposes it
6469 having a direct @edit command, but for all intents and purposes it
6458 works. And I don't have to worry about writing @edit to deal with
6470 works. And I don't have to worry about writing @edit to deal with
6459 all the editors, less does that.
6471 all the editors, less does that.
6460
6472
6461 * Version 0.1.16 released, 0.1.17 opened.
6473 * Version 0.1.16 released, 0.1.17 opened.
6462
6474
6463 * Fixed some nasty bugs in the page/page_dumb combo that could
6475 * Fixed some nasty bugs in the page/page_dumb combo that could
6464 crash IPython.
6476 crash IPython.
6465
6477
6466 2001-11-27 Fernando Perez <fperez@colorado.edu>
6478 2001-11-27 Fernando Perez <fperez@colorado.edu>
6467
6479
6468 * Version 0.1.15 released, 0.1.16 opened.
6480 * Version 0.1.15 released, 0.1.16 opened.
6469
6481
6470 * Finally got ? and ?? to work for undefined things: now it's
6482 * Finally got ? and ?? to work for undefined things: now it's
6471 possible to type {}.get? and get information about the get method
6483 possible to type {}.get? and get information about the get method
6472 of dicts, or os.path? even if only os is defined (so technically
6484 of dicts, or os.path? even if only os is defined (so technically
6473 os.path isn't). Works at any level. For example, after import os,
6485 os.path isn't). Works at any level. For example, after import os,
6474 os?, os.path?, os.path.abspath? all work. This is great, took some
6486 os?, os.path?, os.path.abspath? all work. This is great, took some
6475 work in _ofind.
6487 work in _ofind.
6476
6488
6477 * Fixed more bugs with logging. The sanest way to do it was to add
6489 * Fixed more bugs with logging. The sanest way to do it was to add
6478 to @log a 'mode' parameter. Killed two in one shot (this mode
6490 to @log a 'mode' parameter. Killed two in one shot (this mode
6479 option was a request of Janko's). I think it's finally clean
6491 option was a request of Janko's). I think it's finally clean
6480 (famous last words).
6492 (famous last words).
6481
6493
6482 * Added a page_dumb() pager which does a decent job of paging on
6494 * Added a page_dumb() pager which does a decent job of paging on
6483 screen, if better things (like less) aren't available. One less
6495 screen, if better things (like less) aren't available. One less
6484 unix dependency (someday maybe somebody will port this to
6496 unix dependency (someday maybe somebody will port this to
6485 windows).
6497 windows).
6486
6498
6487 * Fixed problem in magic_log: would lock of logging out if log
6499 * Fixed problem in magic_log: would lock of logging out if log
6488 creation failed (because it would still think it had succeeded).
6500 creation failed (because it would still think it had succeeded).
6489
6501
6490 * Improved the page() function using curses to auto-detect screen
6502 * Improved the page() function using curses to auto-detect screen
6491 size. Now it can make a much better decision on whether to print
6503 size. Now it can make a much better decision on whether to print
6492 or page a string. Option screen_length was modified: a value 0
6504 or page a string. Option screen_length was modified: a value 0
6493 means auto-detect, and that's the default now.
6505 means auto-detect, and that's the default now.
6494
6506
6495 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6507 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6496 go out. I'll test it for a few days, then talk to Janko about
6508 go out. I'll test it for a few days, then talk to Janko about
6497 licences and announce it.
6509 licences and announce it.
6498
6510
6499 * Fixed the length of the auto-generated ---> prompt which appears
6511 * Fixed the length of the auto-generated ---> prompt which appears
6500 for auto-parens and auto-quotes. Getting this right isn't trivial,
6512 for auto-parens and auto-quotes. Getting this right isn't trivial,
6501 with all the color escapes, different prompt types and optional
6513 with all the color escapes, different prompt types and optional
6502 separators. But it seems to be working in all the combinations.
6514 separators. But it seems to be working in all the combinations.
6503
6515
6504 2001-11-26 Fernando Perez <fperez@colorado.edu>
6516 2001-11-26 Fernando Perez <fperez@colorado.edu>
6505
6517
6506 * Wrote a regexp filter to get option types from the option names
6518 * Wrote a regexp filter to get option types from the option names
6507 string. This eliminates the need to manually keep two duplicate
6519 string. This eliminates the need to manually keep two duplicate
6508 lists.
6520 lists.
6509
6521
6510 * Removed the unneeded check_option_names. Now options are handled
6522 * Removed the unneeded check_option_names. Now options are handled
6511 in a much saner manner and it's easy to visually check that things
6523 in a much saner manner and it's easy to visually check that things
6512 are ok.
6524 are ok.
6513
6525
6514 * Updated version numbers on all files I modified to carry a
6526 * Updated version numbers on all files I modified to carry a
6515 notice so Janko and Nathan have clear version markers.
6527 notice so Janko and Nathan have clear version markers.
6516
6528
6517 * Updated docstring for ultraTB with my changes. I should send
6529 * Updated docstring for ultraTB with my changes. I should send
6518 this to Nathan.
6530 this to Nathan.
6519
6531
6520 * Lots of small fixes. Ran everything through pychecker again.
6532 * Lots of small fixes. Ran everything through pychecker again.
6521
6533
6522 * Made loading of deep_reload an cmd line option. If it's not too
6534 * Made loading of deep_reload an cmd line option. If it's not too
6523 kosher, now people can just disable it. With -nodeep_reload it's
6535 kosher, now people can just disable it. With -nodeep_reload it's
6524 still available as dreload(), it just won't overwrite reload().
6536 still available as dreload(), it just won't overwrite reload().
6525
6537
6526 * Moved many options to the no| form (-opt and -noopt
6538 * Moved many options to the no| form (-opt and -noopt
6527 accepted). Cleaner.
6539 accepted). Cleaner.
6528
6540
6529 * Changed magic_log so that if called with no parameters, it uses
6541 * Changed magic_log so that if called with no parameters, it uses
6530 'rotate' mode. That way auto-generated logs aren't automatically
6542 'rotate' mode. That way auto-generated logs aren't automatically
6531 over-written. For normal logs, now a backup is made if it exists
6543 over-written. For normal logs, now a backup is made if it exists
6532 (only 1 level of backups). A new 'backup' mode was added to the
6544 (only 1 level of backups). A new 'backup' mode was added to the
6533 Logger class to support this. This was a request by Janko.
6545 Logger class to support this. This was a request by Janko.
6534
6546
6535 * Added @logoff/@logon to stop/restart an active log.
6547 * Added @logoff/@logon to stop/restart an active log.
6536
6548
6537 * Fixed a lot of bugs in log saving/replay. It was pretty
6549 * Fixed a lot of bugs in log saving/replay. It was pretty
6538 broken. Now special lines (!@,/) appear properly in the command
6550 broken. Now special lines (!@,/) appear properly in the command
6539 history after a log replay.
6551 history after a log replay.
6540
6552
6541 * Tried and failed to implement full session saving via pickle. My
6553 * Tried and failed to implement full session saving via pickle. My
6542 idea was to pickle __main__.__dict__, but modules can't be
6554 idea was to pickle __main__.__dict__, but modules can't be
6543 pickled. This would be a better alternative to replaying logs, but
6555 pickled. This would be a better alternative to replaying logs, but
6544 seems quite tricky to get to work. Changed -session to be called
6556 seems quite tricky to get to work. Changed -session to be called
6545 -logplay, which more accurately reflects what it does. And if we
6557 -logplay, which more accurately reflects what it does. And if we
6546 ever get real session saving working, -session is now available.
6558 ever get real session saving working, -session is now available.
6547
6559
6548 * Implemented color schemes for prompts also. As for tracebacks,
6560 * Implemented color schemes for prompts also. As for tracebacks,
6549 currently only NoColor and Linux are supported. But now the
6561 currently only NoColor and Linux are supported. But now the
6550 infrastructure is in place, based on a generic ColorScheme
6562 infrastructure is in place, based on a generic ColorScheme
6551 class. So writing and activating new schemes both for the prompts
6563 class. So writing and activating new schemes both for the prompts
6552 and the tracebacks should be straightforward.
6564 and the tracebacks should be straightforward.
6553
6565
6554 * Version 0.1.13 released, 0.1.14 opened.
6566 * Version 0.1.13 released, 0.1.14 opened.
6555
6567
6556 * Changed handling of options for output cache. Now counter is
6568 * Changed handling of options for output cache. Now counter is
6557 hardwired starting at 1 and one specifies the maximum number of
6569 hardwired starting at 1 and one specifies the maximum number of
6558 entries *in the outcache* (not the max prompt counter). This is
6570 entries *in the outcache* (not the max prompt counter). This is
6559 much better, since many statements won't increase the cache
6571 much better, since many statements won't increase the cache
6560 count. It also eliminated some confusing options, now there's only
6572 count. It also eliminated some confusing options, now there's only
6561 one: cache_size.
6573 one: cache_size.
6562
6574
6563 * Added 'alias' magic function and magic_alias option in the
6575 * Added 'alias' magic function and magic_alias option in the
6564 ipythonrc file. Now the user can easily define whatever names he
6576 ipythonrc file. Now the user can easily define whatever names he
6565 wants for the magic functions without having to play weird
6577 wants for the magic functions without having to play weird
6566 namespace games. This gives IPython a real shell-like feel.
6578 namespace games. This gives IPython a real shell-like feel.
6567
6579
6568 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6580 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6569 @ or not).
6581 @ or not).
6570
6582
6571 This was one of the last remaining 'visible' bugs (that I know
6583 This was one of the last remaining 'visible' bugs (that I know
6572 of). I think if I can clean up the session loading so it works
6584 of). I think if I can clean up the session loading so it works
6573 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6585 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6574 about licensing).
6586 about licensing).
6575
6587
6576 2001-11-25 Fernando Perez <fperez@colorado.edu>
6588 2001-11-25 Fernando Perez <fperez@colorado.edu>
6577
6589
6578 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6590 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6579 there's a cleaner distinction between what ? and ?? show.
6591 there's a cleaner distinction between what ? and ?? show.
6580
6592
6581 * Added screen_length option. Now the user can define his own
6593 * Added screen_length option. Now the user can define his own
6582 screen size for page() operations.
6594 screen size for page() operations.
6583
6595
6584 * Implemented magic shell-like functions with automatic code
6596 * Implemented magic shell-like functions with automatic code
6585 generation. Now adding another function is just a matter of adding
6597 generation. Now adding another function is just a matter of adding
6586 an entry to a dict, and the function is dynamically generated at
6598 an entry to a dict, and the function is dynamically generated at
6587 run-time. Python has some really cool features!
6599 run-time. Python has some really cool features!
6588
6600
6589 * Renamed many options to cleanup conventions a little. Now all
6601 * Renamed many options to cleanup conventions a little. Now all
6590 are lowercase, and only underscores where needed. Also in the code
6602 are lowercase, and only underscores where needed. Also in the code
6591 option name tables are clearer.
6603 option name tables are clearer.
6592
6604
6593 * Changed prompts a little. Now input is 'In [n]:' instead of
6605 * Changed prompts a little. Now input is 'In [n]:' instead of
6594 'In[n]:='. This allows it the numbers to be aligned with the
6606 'In[n]:='. This allows it the numbers to be aligned with the
6595 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6607 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6596 Python (it was a Mathematica thing). The '...' continuation prompt
6608 Python (it was a Mathematica thing). The '...' continuation prompt
6597 was also changed a little to align better.
6609 was also changed a little to align better.
6598
6610
6599 * Fixed bug when flushing output cache. Not all _p<n> variables
6611 * Fixed bug when flushing output cache. Not all _p<n> variables
6600 exist, so their deletion needs to be wrapped in a try:
6612 exist, so their deletion needs to be wrapped in a try:
6601
6613
6602 * Figured out how to properly use inspect.formatargspec() (it
6614 * Figured out how to properly use inspect.formatargspec() (it
6603 requires the args preceded by *). So I removed all the code from
6615 requires the args preceded by *). So I removed all the code from
6604 _get_pdef in Magic, which was just replicating that.
6616 _get_pdef in Magic, which was just replicating that.
6605
6617
6606 * Added test to prefilter to allow redefining magic function names
6618 * Added test to prefilter to allow redefining magic function names
6607 as variables. This is ok, since the @ form is always available,
6619 as variables. This is ok, since the @ form is always available,
6608 but whe should allow the user to define a variable called 'ls' if
6620 but whe should allow the user to define a variable called 'ls' if
6609 he needs it.
6621 he needs it.
6610
6622
6611 * Moved the ToDo information from README into a separate ToDo.
6623 * Moved the ToDo information from README into a separate ToDo.
6612
6624
6613 * General code cleanup and small bugfixes. I think it's close to a
6625 * General code cleanup and small bugfixes. I think it's close to a
6614 state where it can be released, obviously with a big 'beta'
6626 state where it can be released, obviously with a big 'beta'
6615 warning on it.
6627 warning on it.
6616
6628
6617 * Got the magic function split to work. Now all magics are defined
6629 * Got the magic function split to work. Now all magics are defined
6618 in a separate class. It just organizes things a bit, and now
6630 in a separate class. It just organizes things a bit, and now
6619 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6631 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6620 was too long).
6632 was too long).
6621
6633
6622 * Changed @clear to @reset to avoid potential confusions with
6634 * Changed @clear to @reset to avoid potential confusions with
6623 the shell command clear. Also renamed @cl to @clear, which does
6635 the shell command clear. Also renamed @cl to @clear, which does
6624 exactly what people expect it to from their shell experience.
6636 exactly what people expect it to from their shell experience.
6625
6637
6626 Added a check to the @reset command (since it's so
6638 Added a check to the @reset command (since it's so
6627 destructive, it's probably a good idea to ask for confirmation).
6639 destructive, it's probably a good idea to ask for confirmation).
6628 But now reset only works for full namespace resetting. Since the
6640 But now reset only works for full namespace resetting. Since the
6629 del keyword is already there for deleting a few specific
6641 del keyword is already there for deleting a few specific
6630 variables, I don't see the point of having a redundant magic
6642 variables, I don't see the point of having a redundant magic
6631 function for the same task.
6643 function for the same task.
6632
6644
6633 2001-11-24 Fernando Perez <fperez@colorado.edu>
6645 2001-11-24 Fernando Perez <fperez@colorado.edu>
6634
6646
6635 * Updated the builtin docs (esp. the ? ones).
6647 * Updated the builtin docs (esp. the ? ones).
6636
6648
6637 * Ran all the code through pychecker. Not terribly impressed with
6649 * Ran all the code through pychecker. Not terribly impressed with
6638 it: lots of spurious warnings and didn't really find anything of
6650 it: lots of spurious warnings and didn't really find anything of
6639 substance (just a few modules being imported and not used).
6651 substance (just a few modules being imported and not used).
6640
6652
6641 * Implemented the new ultraTB functionality into IPython. New
6653 * Implemented the new ultraTB functionality into IPython. New
6642 option: xcolors. This chooses color scheme. xmode now only selects
6654 option: xcolors. This chooses color scheme. xmode now only selects
6643 between Plain and Verbose. Better orthogonality.
6655 between Plain and Verbose. Better orthogonality.
6644
6656
6645 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6657 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6646 mode and color scheme for the exception handlers. Now it's
6658 mode and color scheme for the exception handlers. Now it's
6647 possible to have the verbose traceback with no coloring.
6659 possible to have the verbose traceback with no coloring.
6648
6660
6649 2001-11-23 Fernando Perez <fperez@colorado.edu>
6661 2001-11-23 Fernando Perez <fperez@colorado.edu>
6650
6662
6651 * Version 0.1.12 released, 0.1.13 opened.
6663 * Version 0.1.12 released, 0.1.13 opened.
6652
6664
6653 * Removed option to set auto-quote and auto-paren escapes by
6665 * Removed option to set auto-quote and auto-paren escapes by
6654 user. The chances of breaking valid syntax are just too high. If
6666 user. The chances of breaking valid syntax are just too high. If
6655 someone *really* wants, they can always dig into the code.
6667 someone *really* wants, they can always dig into the code.
6656
6668
6657 * Made prompt separators configurable.
6669 * Made prompt separators configurable.
6658
6670
6659 2001-11-22 Fernando Perez <fperez@colorado.edu>
6671 2001-11-22 Fernando Perez <fperez@colorado.edu>
6660
6672
6661 * Small bugfixes in many places.
6673 * Small bugfixes in many places.
6662
6674
6663 * Removed the MyCompleter class from ipplib. It seemed redundant
6675 * Removed the MyCompleter class from ipplib. It seemed redundant
6664 with the C-p,C-n history search functionality. Less code to
6676 with the C-p,C-n history search functionality. Less code to
6665 maintain.
6677 maintain.
6666
6678
6667 * Moved all the original ipython.py code into ipythonlib.py. Right
6679 * Moved all the original ipython.py code into ipythonlib.py. Right
6668 now it's just one big dump into a function called make_IPython, so
6680 now it's just one big dump into a function called make_IPython, so
6669 no real modularity has been gained. But at least it makes the
6681 no real modularity has been gained. But at least it makes the
6670 wrapper script tiny, and since ipythonlib is a module, it gets
6682 wrapper script tiny, and since ipythonlib is a module, it gets
6671 compiled and startup is much faster.
6683 compiled and startup is much faster.
6672
6684
6673 This is a reasobably 'deep' change, so we should test it for a
6685 This is a reasobably 'deep' change, so we should test it for a
6674 while without messing too much more with the code.
6686 while without messing too much more with the code.
6675
6687
6676 2001-11-21 Fernando Perez <fperez@colorado.edu>
6688 2001-11-21 Fernando Perez <fperez@colorado.edu>
6677
6689
6678 * Version 0.1.11 released, 0.1.12 opened for further work.
6690 * Version 0.1.11 released, 0.1.12 opened for further work.
6679
6691
6680 * Removed dependency on Itpl. It was only needed in one place. It
6692 * Removed dependency on Itpl. It was only needed in one place. It
6681 would be nice if this became part of python, though. It makes life
6693 would be nice if this became part of python, though. It makes life
6682 *a lot* easier in some cases.
6694 *a lot* easier in some cases.
6683
6695
6684 * Simplified the prefilter code a bit. Now all handlers are
6696 * Simplified the prefilter code a bit. Now all handlers are
6685 expected to explicitly return a value (at least a blank string).
6697 expected to explicitly return a value (at least a blank string).
6686
6698
6687 * Heavy edits in ipplib. Removed the help system altogether. Now
6699 * Heavy edits in ipplib. Removed the help system altogether. Now
6688 obj?/?? is used for inspecting objects, a magic @doc prints
6700 obj?/?? is used for inspecting objects, a magic @doc prints
6689 docstrings, and full-blown Python help is accessed via the 'help'
6701 docstrings, and full-blown Python help is accessed via the 'help'
6690 keyword. This cleans up a lot of code (less to maintain) and does
6702 keyword. This cleans up a lot of code (less to maintain) and does
6691 the job. Since 'help' is now a standard Python component, might as
6703 the job. Since 'help' is now a standard Python component, might as
6692 well use it and remove duplicate functionality.
6704 well use it and remove duplicate functionality.
6693
6705
6694 Also removed the option to use ipplib as a standalone program. By
6706 Also removed the option to use ipplib as a standalone program. By
6695 now it's too dependent on other parts of IPython to function alone.
6707 now it's too dependent on other parts of IPython to function alone.
6696
6708
6697 * Fixed bug in genutils.pager. It would crash if the pager was
6709 * Fixed bug in genutils.pager. It would crash if the pager was
6698 exited immediately after opening (broken pipe).
6710 exited immediately after opening (broken pipe).
6699
6711
6700 * Trimmed down the VerboseTB reporting a little. The header is
6712 * Trimmed down the VerboseTB reporting a little. The header is
6701 much shorter now and the repeated exception arguments at the end
6713 much shorter now and the repeated exception arguments at the end
6702 have been removed. For interactive use the old header seemed a bit
6714 have been removed. For interactive use the old header seemed a bit
6703 excessive.
6715 excessive.
6704
6716
6705 * Fixed small bug in output of @whos for variables with multi-word
6717 * Fixed small bug in output of @whos for variables with multi-word
6706 types (only first word was displayed).
6718 types (only first word was displayed).
6707
6719
6708 2001-11-17 Fernando Perez <fperez@colorado.edu>
6720 2001-11-17 Fernando Perez <fperez@colorado.edu>
6709
6721
6710 * Version 0.1.10 released, 0.1.11 opened for further work.
6722 * Version 0.1.10 released, 0.1.11 opened for further work.
6711
6723
6712 * Modified dirs and friends. dirs now *returns* the stack (not
6724 * Modified dirs and friends. dirs now *returns* the stack (not
6713 prints), so one can manipulate it as a variable. Convenient to
6725 prints), so one can manipulate it as a variable. Convenient to
6714 travel along many directories.
6726 travel along many directories.
6715
6727
6716 * Fixed bug in magic_pdef: would only work with functions with
6728 * Fixed bug in magic_pdef: would only work with functions with
6717 arguments with default values.
6729 arguments with default values.
6718
6730
6719 2001-11-14 Fernando Perez <fperez@colorado.edu>
6731 2001-11-14 Fernando Perez <fperez@colorado.edu>
6720
6732
6721 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6733 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6722 example with IPython. Various other minor fixes and cleanups.
6734 example with IPython. Various other minor fixes and cleanups.
6723
6735
6724 * Version 0.1.9 released, 0.1.10 opened for further work.
6736 * Version 0.1.9 released, 0.1.10 opened for further work.
6725
6737
6726 * Added sys.path to the list of directories searched in the
6738 * Added sys.path to the list of directories searched in the
6727 execfile= option. It used to be the current directory and the
6739 execfile= option. It used to be the current directory and the
6728 user's IPYTHONDIR only.
6740 user's IPYTHONDIR only.
6729
6741
6730 2001-11-13 Fernando Perez <fperez@colorado.edu>
6742 2001-11-13 Fernando Perez <fperez@colorado.edu>
6731
6743
6732 * Reinstated the raw_input/prefilter separation that Janko had
6744 * Reinstated the raw_input/prefilter separation that Janko had
6733 initially. This gives a more convenient setup for extending the
6745 initially. This gives a more convenient setup for extending the
6734 pre-processor from the outside: raw_input always gets a string,
6746 pre-processor from the outside: raw_input always gets a string,
6735 and prefilter has to process it. We can then redefine prefilter
6747 and prefilter has to process it. We can then redefine prefilter
6736 from the outside and implement extensions for special
6748 from the outside and implement extensions for special
6737 purposes.
6749 purposes.
6738
6750
6739 Today I got one for inputting PhysicalQuantity objects
6751 Today I got one for inputting PhysicalQuantity objects
6740 (from Scientific) without needing any function calls at
6752 (from Scientific) without needing any function calls at
6741 all. Extremely convenient, and it's all done as a user-level
6753 all. Extremely convenient, and it's all done as a user-level
6742 extension (no IPython code was touched). Now instead of:
6754 extension (no IPython code was touched). Now instead of:
6743 a = PhysicalQuantity(4.2,'m/s**2')
6755 a = PhysicalQuantity(4.2,'m/s**2')
6744 one can simply say
6756 one can simply say
6745 a = 4.2 m/s**2
6757 a = 4.2 m/s**2
6746 or even
6758 or even
6747 a = 4.2 m/s^2
6759 a = 4.2 m/s^2
6748
6760
6749 I use this, but it's also a proof of concept: IPython really is
6761 I use this, but it's also a proof of concept: IPython really is
6750 fully user-extensible, even at the level of the parsing of the
6762 fully user-extensible, even at the level of the parsing of the
6751 command line. It's not trivial, but it's perfectly doable.
6763 command line. It's not trivial, but it's perfectly doable.
6752
6764
6753 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6765 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6754 the problem of modules being loaded in the inverse order in which
6766 the problem of modules being loaded in the inverse order in which
6755 they were defined in
6767 they were defined in
6756
6768
6757 * Version 0.1.8 released, 0.1.9 opened for further work.
6769 * Version 0.1.8 released, 0.1.9 opened for further work.
6758
6770
6759 * Added magics pdef, source and file. They respectively show the
6771 * Added magics pdef, source and file. They respectively show the
6760 definition line ('prototype' in C), source code and full python
6772 definition line ('prototype' in C), source code and full python
6761 file for any callable object. The object inspector oinfo uses
6773 file for any callable object. The object inspector oinfo uses
6762 these to show the same information.
6774 these to show the same information.
6763
6775
6764 * Version 0.1.7 released, 0.1.8 opened for further work.
6776 * Version 0.1.7 released, 0.1.8 opened for further work.
6765
6777
6766 * Separated all the magic functions into a class called Magic. The
6778 * Separated all the magic functions into a class called Magic. The
6767 InteractiveShell class was becoming too big for Xemacs to handle
6779 InteractiveShell class was becoming too big for Xemacs to handle
6768 (de-indenting a line would lock it up for 10 seconds while it
6780 (de-indenting a line would lock it up for 10 seconds while it
6769 backtracked on the whole class!)
6781 backtracked on the whole class!)
6770
6782
6771 FIXME: didn't work. It can be done, but right now namespaces are
6783 FIXME: didn't work. It can be done, but right now namespaces are
6772 all messed up. Do it later (reverted it for now, so at least
6784 all messed up. Do it later (reverted it for now, so at least
6773 everything works as before).
6785 everything works as before).
6774
6786
6775 * Got the object introspection system (magic_oinfo) working! I
6787 * Got the object introspection system (magic_oinfo) working! I
6776 think this is pretty much ready for release to Janko, so he can
6788 think this is pretty much ready for release to Janko, so he can
6777 test it for a while and then announce it. Pretty much 100% of what
6789 test it for a while and then announce it. Pretty much 100% of what
6778 I wanted for the 'phase 1' release is ready. Happy, tired.
6790 I wanted for the 'phase 1' release is ready. Happy, tired.
6779
6791
6780 2001-11-12 Fernando Perez <fperez@colorado.edu>
6792 2001-11-12 Fernando Perez <fperez@colorado.edu>
6781
6793
6782 * Version 0.1.6 released, 0.1.7 opened for further work.
6794 * Version 0.1.6 released, 0.1.7 opened for further work.
6783
6795
6784 * Fixed bug in printing: it used to test for truth before
6796 * Fixed bug in printing: it used to test for truth before
6785 printing, so 0 wouldn't print. Now checks for None.
6797 printing, so 0 wouldn't print. Now checks for None.
6786
6798
6787 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6799 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6788 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6800 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6789 reaches by hand into the outputcache. Think of a better way to do
6801 reaches by hand into the outputcache. Think of a better way to do
6790 this later.
6802 this later.
6791
6803
6792 * Various small fixes thanks to Nathan's comments.
6804 * Various small fixes thanks to Nathan's comments.
6793
6805
6794 * Changed magic_pprint to magic_Pprint. This way it doesn't
6806 * Changed magic_pprint to magic_Pprint. This way it doesn't
6795 collide with pprint() and the name is consistent with the command
6807 collide with pprint() and the name is consistent with the command
6796 line option.
6808 line option.
6797
6809
6798 * Changed prompt counter behavior to be fully like
6810 * Changed prompt counter behavior to be fully like
6799 Mathematica's. That is, even input that doesn't return a result
6811 Mathematica's. That is, even input that doesn't return a result
6800 raises the prompt counter. The old behavior was kind of confusing
6812 raises the prompt counter. The old behavior was kind of confusing
6801 (getting the same prompt number several times if the operation
6813 (getting the same prompt number several times if the operation
6802 didn't return a result).
6814 didn't return a result).
6803
6815
6804 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6816 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6805
6817
6806 * Fixed -Classic mode (wasn't working anymore).
6818 * Fixed -Classic mode (wasn't working anymore).
6807
6819
6808 * Added colored prompts using Nathan's new code. Colors are
6820 * Added colored prompts using Nathan's new code. Colors are
6809 currently hardwired, they can be user-configurable. For
6821 currently hardwired, they can be user-configurable. For
6810 developers, they can be chosen in file ipythonlib.py, at the
6822 developers, they can be chosen in file ipythonlib.py, at the
6811 beginning of the CachedOutput class def.
6823 beginning of the CachedOutput class def.
6812
6824
6813 2001-11-11 Fernando Perez <fperez@colorado.edu>
6825 2001-11-11 Fernando Perez <fperez@colorado.edu>
6814
6826
6815 * Version 0.1.5 released, 0.1.6 opened for further work.
6827 * Version 0.1.5 released, 0.1.6 opened for further work.
6816
6828
6817 * Changed magic_env to *return* the environment as a dict (not to
6829 * Changed magic_env to *return* the environment as a dict (not to
6818 print it). This way it prints, but it can also be processed.
6830 print it). This way it prints, but it can also be processed.
6819
6831
6820 * Added Verbose exception reporting to interactive
6832 * Added Verbose exception reporting to interactive
6821 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6833 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6822 traceback. Had to make some changes to the ultraTB file. This is
6834 traceback. Had to make some changes to the ultraTB file. This is
6823 probably the last 'big' thing in my mental todo list. This ties
6835 probably the last 'big' thing in my mental todo list. This ties
6824 in with the next entry:
6836 in with the next entry:
6825
6837
6826 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6838 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6827 has to specify is Plain, Color or Verbose for all exception
6839 has to specify is Plain, Color or Verbose for all exception
6828 handling.
6840 handling.
6829
6841
6830 * Removed ShellServices option. All this can really be done via
6842 * Removed ShellServices option. All this can really be done via
6831 the magic system. It's easier to extend, cleaner and has automatic
6843 the magic system. It's easier to extend, cleaner and has automatic
6832 namespace protection and documentation.
6844 namespace protection and documentation.
6833
6845
6834 2001-11-09 Fernando Perez <fperez@colorado.edu>
6846 2001-11-09 Fernando Perez <fperez@colorado.edu>
6835
6847
6836 * Fixed bug in output cache flushing (missing parameter to
6848 * Fixed bug in output cache flushing (missing parameter to
6837 __init__). Other small bugs fixed (found using pychecker).
6849 __init__). Other small bugs fixed (found using pychecker).
6838
6850
6839 * Version 0.1.4 opened for bugfixing.
6851 * Version 0.1.4 opened for bugfixing.
6840
6852
6841 2001-11-07 Fernando Perez <fperez@colorado.edu>
6853 2001-11-07 Fernando Perez <fperez@colorado.edu>
6842
6854
6843 * Version 0.1.3 released, mainly because of the raw_input bug.
6855 * Version 0.1.3 released, mainly because of the raw_input bug.
6844
6856
6845 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6857 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6846 and when testing for whether things were callable, a call could
6858 and when testing for whether things were callable, a call could
6847 actually be made to certain functions. They would get called again
6859 actually be made to certain functions. They would get called again
6848 once 'really' executed, with a resulting double call. A disaster
6860 once 'really' executed, with a resulting double call. A disaster
6849 in many cases (list.reverse() would never work!).
6861 in many cases (list.reverse() would never work!).
6850
6862
6851 * Removed prefilter() function, moved its code to raw_input (which
6863 * Removed prefilter() function, moved its code to raw_input (which
6852 after all was just a near-empty caller for prefilter). This saves
6864 after all was just a near-empty caller for prefilter). This saves
6853 a function call on every prompt, and simplifies the class a tiny bit.
6865 a function call on every prompt, and simplifies the class a tiny bit.
6854
6866
6855 * Fix _ip to __ip name in magic example file.
6867 * Fix _ip to __ip name in magic example file.
6856
6868
6857 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6869 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6858 work with non-gnu versions of tar.
6870 work with non-gnu versions of tar.
6859
6871
6860 2001-11-06 Fernando Perez <fperez@colorado.edu>
6872 2001-11-06 Fernando Perez <fperez@colorado.edu>
6861
6873
6862 * Version 0.1.2. Just to keep track of the recent changes.
6874 * Version 0.1.2. Just to keep track of the recent changes.
6863
6875
6864 * Fixed nasty bug in output prompt routine. It used to check 'if
6876 * Fixed nasty bug in output prompt routine. It used to check 'if
6865 arg != None...'. Problem is, this fails if arg implements a
6877 arg != None...'. Problem is, this fails if arg implements a
6866 special comparison (__cmp__) which disallows comparing to
6878 special comparison (__cmp__) which disallows comparing to
6867 None. Found it when trying to use the PhysicalQuantity module from
6879 None. Found it when trying to use the PhysicalQuantity module from
6868 ScientificPython.
6880 ScientificPython.
6869
6881
6870 2001-11-05 Fernando Perez <fperez@colorado.edu>
6882 2001-11-05 Fernando Perez <fperez@colorado.edu>
6871
6883
6872 * Also added dirs. Now the pushd/popd/dirs family functions
6884 * Also added dirs. Now the pushd/popd/dirs family functions
6873 basically like the shell, with the added convenience of going home
6885 basically like the shell, with the added convenience of going home
6874 when called with no args.
6886 when called with no args.
6875
6887
6876 * pushd/popd slightly modified to mimic shell behavior more
6888 * pushd/popd slightly modified to mimic shell behavior more
6877 closely.
6889 closely.
6878
6890
6879 * Added env,pushd,popd from ShellServices as magic functions. I
6891 * Added env,pushd,popd from ShellServices as magic functions. I
6880 think the cleanest will be to port all desired functions from
6892 think the cleanest will be to port all desired functions from
6881 ShellServices as magics and remove ShellServices altogether. This
6893 ShellServices as magics and remove ShellServices altogether. This
6882 will provide a single, clean way of adding functionality
6894 will provide a single, clean way of adding functionality
6883 (shell-type or otherwise) to IP.
6895 (shell-type or otherwise) to IP.
6884
6896
6885 2001-11-04 Fernando Perez <fperez@colorado.edu>
6897 2001-11-04 Fernando Perez <fperez@colorado.edu>
6886
6898
6887 * Added .ipython/ directory to sys.path. This way users can keep
6899 * Added .ipython/ directory to sys.path. This way users can keep
6888 customizations there and access them via import.
6900 customizations there and access them via import.
6889
6901
6890 2001-11-03 Fernando Perez <fperez@colorado.edu>
6902 2001-11-03 Fernando Perez <fperez@colorado.edu>
6891
6903
6892 * Opened version 0.1.1 for new changes.
6904 * Opened version 0.1.1 for new changes.
6893
6905
6894 * Changed version number to 0.1.0: first 'public' release, sent to
6906 * Changed version number to 0.1.0: first 'public' release, sent to
6895 Nathan and Janko.
6907 Nathan and Janko.
6896
6908
6897 * Lots of small fixes and tweaks.
6909 * Lots of small fixes and tweaks.
6898
6910
6899 * Minor changes to whos format. Now strings are shown, snipped if
6911 * Minor changes to whos format. Now strings are shown, snipped if
6900 too long.
6912 too long.
6901
6913
6902 * Changed ShellServices to work on __main__ so they show up in @who
6914 * Changed ShellServices to work on __main__ so they show up in @who
6903
6915
6904 * Help also works with ? at the end of a line:
6916 * Help also works with ? at the end of a line:
6905 ?sin and sin?
6917 ?sin and sin?
6906 both produce the same effect. This is nice, as often I use the
6918 both produce the same effect. This is nice, as often I use the
6907 tab-complete to find the name of a method, but I used to then have
6919 tab-complete to find the name of a method, but I used to then have
6908 to go to the beginning of the line to put a ? if I wanted more
6920 to go to the beginning of the line to put a ? if I wanted more
6909 info. Now I can just add the ? and hit return. Convenient.
6921 info. Now I can just add the ? and hit return. Convenient.
6910
6922
6911 2001-11-02 Fernando Perez <fperez@colorado.edu>
6923 2001-11-02 Fernando Perez <fperez@colorado.edu>
6912
6924
6913 * Python version check (>=2.1) added.
6925 * Python version check (>=2.1) added.
6914
6926
6915 * Added LazyPython documentation. At this point the docs are quite
6927 * Added LazyPython documentation. At this point the docs are quite
6916 a mess. A cleanup is in order.
6928 a mess. A cleanup is in order.
6917
6929
6918 * Auto-installer created. For some bizarre reason, the zipfiles
6930 * Auto-installer created. For some bizarre reason, the zipfiles
6919 module isn't working on my system. So I made a tar version
6931 module isn't working on my system. So I made a tar version
6920 (hopefully the command line options in various systems won't kill
6932 (hopefully the command line options in various systems won't kill
6921 me).
6933 me).
6922
6934
6923 * Fixes to Struct in genutils. Now all dictionary-like methods are
6935 * Fixes to Struct in genutils. Now all dictionary-like methods are
6924 protected (reasonably).
6936 protected (reasonably).
6925
6937
6926 * Added pager function to genutils and changed ? to print usage
6938 * Added pager function to genutils and changed ? to print usage
6927 note through it (it was too long).
6939 note through it (it was too long).
6928
6940
6929 * Added the LazyPython functionality. Works great! I changed the
6941 * Added the LazyPython functionality. Works great! I changed the
6930 auto-quote escape to ';', it's on home row and next to '. But
6942 auto-quote escape to ';', it's on home row and next to '. But
6931 both auto-quote and auto-paren (still /) escapes are command-line
6943 both auto-quote and auto-paren (still /) escapes are command-line
6932 parameters.
6944 parameters.
6933
6945
6934
6946
6935 2001-11-01 Fernando Perez <fperez@colorado.edu>
6947 2001-11-01 Fernando Perez <fperez@colorado.edu>
6936
6948
6937 * Version changed to 0.0.7. Fairly large change: configuration now
6949 * Version changed to 0.0.7. Fairly large change: configuration now
6938 is all stored in a directory, by default .ipython. There, all
6950 is all stored in a directory, by default .ipython. There, all
6939 config files have normal looking names (not .names)
6951 config files have normal looking names (not .names)
6940
6952
6941 * Version 0.0.6 Released first to Lucas and Archie as a test
6953 * Version 0.0.6 Released first to Lucas and Archie as a test
6942 run. Since it's the first 'semi-public' release, change version to
6954 run. Since it's the first 'semi-public' release, change version to
6943 > 0.0.6 for any changes now.
6955 > 0.0.6 for any changes now.
6944
6956
6945 * Stuff I had put in the ipplib.py changelog:
6957 * Stuff I had put in the ipplib.py changelog:
6946
6958
6947 Changes to InteractiveShell:
6959 Changes to InteractiveShell:
6948
6960
6949 - Made the usage message a parameter.
6961 - Made the usage message a parameter.
6950
6962
6951 - Require the name of the shell variable to be given. It's a bit
6963 - Require the name of the shell variable to be given. It's a bit
6952 of a hack, but allows the name 'shell' not to be hardwired in the
6964 of a hack, but allows the name 'shell' not to be hardwired in the
6953 magic (@) handler, which is problematic b/c it requires
6965 magic (@) handler, which is problematic b/c it requires
6954 polluting the global namespace with 'shell'. This in turn is
6966 polluting the global namespace with 'shell'. This in turn is
6955 fragile: if a user redefines a variable called shell, things
6967 fragile: if a user redefines a variable called shell, things
6956 break.
6968 break.
6957
6969
6958 - magic @: all functions available through @ need to be defined
6970 - magic @: all functions available through @ need to be defined
6959 as magic_<name>, even though they can be called simply as
6971 as magic_<name>, even though they can be called simply as
6960 @<name>. This allows the special command @magic to gather
6972 @<name>. This allows the special command @magic to gather
6961 information automatically about all existing magic functions,
6973 information automatically about all existing magic functions,
6962 even if they are run-time user extensions, by parsing the shell
6974 even if they are run-time user extensions, by parsing the shell
6963 instance __dict__ looking for special magic_ names.
6975 instance __dict__ looking for special magic_ names.
6964
6976
6965 - mainloop: added *two* local namespace parameters. This allows
6977 - mainloop: added *two* local namespace parameters. This allows
6966 the class to differentiate between parameters which were there
6978 the class to differentiate between parameters which were there
6967 before and after command line initialization was processed. This
6979 before and after command line initialization was processed. This
6968 way, later @who can show things loaded at startup by the
6980 way, later @who can show things loaded at startup by the
6969 user. This trick was necessary to make session saving/reloading
6981 user. This trick was necessary to make session saving/reloading
6970 really work: ideally after saving/exiting/reloading a session,
6982 really work: ideally after saving/exiting/reloading a session,
6971 *everything* should look the same, including the output of @who. I
6983 *everything* should look the same, including the output of @who. I
6972 was only able to make this work with this double namespace
6984 was only able to make this work with this double namespace
6973 trick.
6985 trick.
6974
6986
6975 - added a header to the logfile which allows (almost) full
6987 - added a header to the logfile which allows (almost) full
6976 session restoring.
6988 session restoring.
6977
6989
6978 - prepend lines beginning with @ or !, with a and log
6990 - prepend lines beginning with @ or !, with a and log
6979 them. Why? !lines: may be useful to know what you did @lines:
6991 them. Why? !lines: may be useful to know what you did @lines:
6980 they may affect session state. So when restoring a session, at
6992 they may affect session state. So when restoring a session, at
6981 least inform the user of their presence. I couldn't quite get
6993 least inform the user of their presence. I couldn't quite get
6982 them to properly re-execute, but at least the user is warned.
6994 them to properly re-execute, but at least the user is warned.
6983
6995
6984 * Started ChangeLog.
6996 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now