##// END OF EJS Templates
whitespace cleanup changelog
vivainio -
Show More
@@ -1,7065 +1,7064 b''
1 2007-08-27 Ville Vainio <vivainio@gmail.com>
1 2007-08-27 Ville Vainio <vivainio@gmail.com>
2
2
3 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
3 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
4
4
5 2007-08-26 Ville Vainio <vivainio@gmail.com>
5 2007-08-26 Ville Vainio <vivainio@gmail.com>
6
6
7 * ipmaker.py: Command line args have the highest priority again
7 * ipmaker.py: Command line args have the highest priority again
8
8
9 * iplib.py, ipmaker.py: -i command line argument now behaves as in
9 * iplib.py, ipmaker.py: -i command line argument now behaves as in
10 normal python, i.e. leaves the IPython session running after -c
10 normal python, i.e. leaves the IPython session running after -c
11 command or running a batch file from command line.
11 command or running a batch file from command line.
12
12
13 *
14 2007-08-22 Ville Vainio <vivainio@gmail.com>
13 2007-08-22 Ville Vainio <vivainio@gmail.com>
15
14
16 * iplib.py: no extra empty (last) line in raw hist w/ multiline
15 * iplib.py: no extra empty (last) line in raw hist w/ multiline
17 statements
16 statements
18
17
19 * logger.py: Fix bug where blank lines in history were not
18 * logger.py: Fix bug where blank lines in history were not
20 added until AFTER adding the current line; translated and raw
19 added until AFTER adding the current line; translated and raw
21 history should finally be in sync with prompt now.
20 history should finally be in sync with prompt now.
22
21
23 * ipy_completers.py: quick_completer now makes it easy to create
22 * ipy_completers.py: quick_completer now makes it easy to create
24 trivial custom completers
23 trivial custom completers
25
24
26 * clearcmd.py: shadow history compression & erasing, fixed input hist
25 * clearcmd.py: shadow history compression & erasing, fixed input hist
27 clearing.
26 clearing.
28
27
29 * envpersist.py, history.py: %env (sh profile only), %hist completers
28 * envpersist.py, history.py: %env (sh profile only), %hist completers
30
29
31 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
30 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
32 term title now include the drive letter, and always use / instead of
31 term title now include the drive letter, and always use / instead of
33 os.sep (as per recommended approach for win32 ipython in general).
32 os.sep (as per recommended approach for win32 ipython in general).
34
33
35 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
34 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
36 plain python scripts from ipykit command line by running
35 plain python scripts from ipykit command line by running
37 "py myscript.py", even w/o installed python.
36 "py myscript.py", even w/o installed python.
38
37
39 2007-08-21 Ville Vainio <vivainio@gmail.com>
38 2007-08-21 Ville Vainio <vivainio@gmail.com>
40
39
41 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
40 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
42 (for backwards compatibility)
41 (for backwards compatibility)
43
42
44 * history.py: switch back to %hist -t from %hist -r as default.
43 * history.py: switch back to %hist -t from %hist -r as default.
45 At least until raw history is fixed for good.
44 At least until raw history is fixed for good.
46
45
47 2007-08-20 Ville Vainio <vivainio@gmail.com>
46 2007-08-20 Ville Vainio <vivainio@gmail.com>
48
47
49 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
48 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
50 locate alias redeclarations etc. Also, avoid handling
49 locate alias redeclarations etc. Also, avoid handling
51 _ip.IP.alias_table directly, prefer using _ip.defalias.
50 _ip.IP.alias_table directly, prefer using _ip.defalias.
52
51
53
52
54 2007-08-15 Ville Vainio <vivainio@gmail.com>
53 2007-08-15 Ville Vainio <vivainio@gmail.com>
55
54
56 * prefilter.py: ! is now always served first
55 * prefilter.py: ! is now always served first
57
56
58 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
57 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
59
58
60 * IPython/iplib.py (safe_execfile): fix the SystemExit
59 * IPython/iplib.py (safe_execfile): fix the SystemExit
61 auto-suppression code to work in Python2.4 (the internal structure
60 auto-suppression code to work in Python2.4 (the internal structure
62 of that exception changed and I'd only tested the code with 2.5).
61 of that exception changed and I'd only tested the code with 2.5).
63 Bug reported by a SciPy attendee.
62 Bug reported by a SciPy attendee.
64
63
65 2007-08-13 Ville Vainio <vivainio@gmail.com>
64 2007-08-13 Ville Vainio <vivainio@gmail.com>
66
65
67 * prefilter.py: reverted !c:/bin/foo fix, made % in
66 * prefilter.py: reverted !c:/bin/foo fix, made % in
68 multiline specials work again
67 multiline specials work again
69
68
70 2007-08-13 Ville Vainio <vivainio@gmail.com>
69 2007-08-13 Ville Vainio <vivainio@gmail.com>
71
70
72 * prefilter.py: Take more care to special-case !, so that
71 * prefilter.py: Take more care to special-case !, so that
73 !c:/bin/foo.exe works.
72 !c:/bin/foo.exe works.
74
73
75 * setup.py: if we are building eggs, strip all docs and
74 * setup.py: if we are building eggs, strip all docs and
76 examples (it doesn't make sense to bytecompile examples,
75 examples (it doesn't make sense to bytecompile examples,
77 and docs would be in an awkward place anyway).
76 and docs would be in an awkward place anyway).
78
77
79 * Ryan Krauss' patch fixes start menu shortcuts when IPython
78 * Ryan Krauss' patch fixes start menu shortcuts when IPython
80 is installed into a directory that has spaces in the name.
79 is installed into a directory that has spaces in the name.
81
80
82 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
81 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
83
82
84 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
83 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
85 doctest profile and %doctest_mode, so they actually generate the
84 doctest profile and %doctest_mode, so they actually generate the
86 blank lines needed by doctest to separate individual tests.
85 blank lines needed by doctest to separate individual tests.
87
86
88 * IPython/iplib.py (safe_execfile): modify so that running code
87 * IPython/iplib.py (safe_execfile): modify so that running code
89 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
88 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
90 doesn't get a printed traceback. Any other value in sys.exit(),
89 doesn't get a printed traceback. Any other value in sys.exit(),
91 including the empty call, still generates a traceback. This
90 including the empty call, still generates a traceback. This
92 enables use of %run without having to pass '-e' for codes that
91 enables use of %run without having to pass '-e' for codes that
93 correctly set the exit status flag.
92 correctly set the exit status flag.
94
93
95 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
94 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
96
95
97 * IPython/iplib.py (InteractiveShell.post_config_initialization):
96 * IPython/iplib.py (InteractiveShell.post_config_initialization):
98 fix problems with doctests failing when run inside IPython due to
97 fix problems with doctests failing when run inside IPython due to
99 IPython's modifications of sys.displayhook.
98 IPython's modifications of sys.displayhook.
100
99
101 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
100 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
102
101
103 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
102 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
104 a string with names.
103 a string with names.
105
104
106 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
105 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
107
106
108 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
107 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
109 magic to toggle on/off the doctest pasting support without having
108 magic to toggle on/off the doctest pasting support without having
110 to leave a session to switch to a separate profile.
109 to leave a session to switch to a separate profile.
111
110
112 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
111 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
113
112
114 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
113 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
115 introduce a blank line between inputs, to conform to doctest
114 introduce a blank line between inputs, to conform to doctest
116 requirements.
115 requirements.
117
116
118 * IPython/OInspect.py (Inspector.pinfo): fix another part where
117 * IPython/OInspect.py (Inspector.pinfo): fix another part where
119 auto-generated docstrings for new-style classes were showing up.
118 auto-generated docstrings for new-style classes were showing up.
120
119
121 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
120 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
122
121
123 * api_changes: Add new file to track backward-incompatible
122 * api_changes: Add new file to track backward-incompatible
124 user-visible changes.
123 user-visible changes.
125
124
126 2007-08-06 Ville Vainio <vivainio@gmail.com>
125 2007-08-06 Ville Vainio <vivainio@gmail.com>
127
126
128 * ipmaker.py: fix bug where user_config_ns didn't exist at all
127 * ipmaker.py: fix bug where user_config_ns didn't exist at all
129 before all the config files were handled.
128 before all the config files were handled.
130
129
131 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
130 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
132
131
133 * IPython/irunner.py (RunnerFactory): Add new factory class for
132 * IPython/irunner.py (RunnerFactory): Add new factory class for
134 creating reusable runners based on filenames.
133 creating reusable runners based on filenames.
135
134
136 * IPython/Extensions/ipy_profile_doctest.py: New profile for
135 * IPython/Extensions/ipy_profile_doctest.py: New profile for
137 doctest support. It sets prompts/exceptions as similar to
136 doctest support. It sets prompts/exceptions as similar to
138 standard Python as possible, so that ipython sessions in this
137 standard Python as possible, so that ipython sessions in this
139 profile can be easily pasted as doctests with minimal
138 profile can be easily pasted as doctests with minimal
140 modifications. It also enables pasting of doctests from external
139 modifications. It also enables pasting of doctests from external
141 sources (even if they have leading whitespace), so that you can
140 sources (even if they have leading whitespace), so that you can
142 rerun doctests from existing sources.
141 rerun doctests from existing sources.
143
142
144 * IPython/iplib.py (_prefilter): fix a buglet where after entering
143 * IPython/iplib.py (_prefilter): fix a buglet where after entering
145 some whitespace, the prompt would become a continuation prompt
144 some whitespace, the prompt would become a continuation prompt
146 with no way of exiting it other than Ctrl-C. This fix brings us
145 with no way of exiting it other than Ctrl-C. This fix brings us
147 into conformity with how the default python prompt works.
146 into conformity with how the default python prompt works.
148
147
149 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
148 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
150 Add support for pasting not only lines that start with '>>>', but
149 Add support for pasting not only lines that start with '>>>', but
151 also with ' >>>'. That is, arbitrary whitespace can now precede
150 also with ' >>>'. That is, arbitrary whitespace can now precede
152 the prompts. This makes the system useful for pasting doctests
151 the prompts. This makes the system useful for pasting doctests
153 from docstrings back into a normal session.
152 from docstrings back into a normal session.
154
153
155 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
154 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
156
155
157 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
156 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
158 r1357, which had killed multiple invocations of an embedded
157 r1357, which had killed multiple invocations of an embedded
159 ipython (this means that example-embed has been broken for over 1
158 ipython (this means that example-embed has been broken for over 1
160 year!!!). Rather than possibly breaking the batch stuff for which
159 year!!!). Rather than possibly breaking the batch stuff for which
161 the code in iplib.py/interact was introduced, I worked around the
160 the code in iplib.py/interact was introduced, I worked around the
162 problem in the embedding class in Shell.py. We really need a
161 problem in the embedding class in Shell.py. We really need a
163 bloody test suite for this code, I'm sick of finding stuff that
162 bloody test suite for this code, I'm sick of finding stuff that
164 used to work breaking left and right every time I use an old
163 used to work breaking left and right every time I use an old
165 feature I hadn't touched in a few months.
164 feature I hadn't touched in a few months.
166 (kill_embedded): Add a new magic that only shows up in embedded
165 (kill_embedded): Add a new magic that only shows up in embedded
167 mode, to allow users to permanently deactivate an embedded instance.
166 mode, to allow users to permanently deactivate an embedded instance.
168
167
169 2007-08-01 Ville Vainio <vivainio@gmail.com>
168 2007-08-01 Ville Vainio <vivainio@gmail.com>
170
169
171 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
170 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
172 history gets out of sync on runlines (e.g. when running macros).
171 history gets out of sync on runlines (e.g. when running macros).
173
172
174 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
173 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
175
174
176 * IPython/Magic.py (magic_colors): fix win32-related error message
175 * IPython/Magic.py (magic_colors): fix win32-related error message
177 that could appear under *nix when readline was missing. Patch by
176 that could appear under *nix when readline was missing. Patch by
178 Scott Jackson, closes #175.
177 Scott Jackson, closes #175.
179
178
180 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
179 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
181
180
182 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
181 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
183 completer that it traits-aware, so that traits objects don't show
182 completer that it traits-aware, so that traits objects don't show
184 all of their internal attributes all the time.
183 all of their internal attributes all the time.
185
184
186 * IPython/genutils.py (dir2): moved this code from inside
185 * IPython/genutils.py (dir2): moved this code from inside
187 completer.py to expose it publicly, so I could use it in the
186 completer.py to expose it publicly, so I could use it in the
188 wildcards bugfix.
187 wildcards bugfix.
189
188
190 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
189 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
191 Stefan with Traits.
190 Stefan with Traits.
192
191
193 * IPython/completer.py (Completer.attr_matches): change internal
192 * IPython/completer.py (Completer.attr_matches): change internal
194 var name from 'object' to 'obj', since 'object' is now a builtin
193 var name from 'object' to 'obj', since 'object' is now a builtin
195 and this can lead to weird bugs if reusing this code elsewhere.
194 and this can lead to weird bugs if reusing this code elsewhere.
196
195
197 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
196 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
198
197
199 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
198 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
200 'foo?' and update the code to prevent printing of default
199 'foo?' and update the code to prevent printing of default
201 docstrings that started appearing after I added support for
200 docstrings that started appearing after I added support for
202 new-style classes. The approach I'm using isn't ideal (I just
201 new-style classes. The approach I'm using isn't ideal (I just
203 special-case those strings) but I'm not sure how to more robustly
202 special-case those strings) but I'm not sure how to more robustly
204 differentiate between truly user-written strings and Python's
203 differentiate between truly user-written strings and Python's
205 automatic ones.
204 automatic ones.
206
205
207 2007-07-09 Ville Vainio <vivainio@gmail.com>
206 2007-07-09 Ville Vainio <vivainio@gmail.com>
208
207
209 * completer.py: Applied Matthew Neeley's patch:
208 * completer.py: Applied Matthew Neeley's patch:
210 Dynamic attributes from trait_names and _getAttributeNames are added
209 Dynamic attributes from trait_names and _getAttributeNames are added
211 to the list of tab completions, but when this happens, the attribute
210 to the list of tab completions, but when this happens, the attribute
212 list is turned into a set, so the attributes are unordered when
211 list is turned into a set, so the attributes are unordered when
213 printed, which makes it hard to find the right completion. This patch
212 printed, which makes it hard to find the right completion. This patch
214 turns this set back into a list and sort it.
213 turns this set back into a list and sort it.
215
214
216 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
215 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
217
216
218 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
217 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
219 classes in various inspector functions.
218 classes in various inspector functions.
220
219
221 2007-06-28 Ville Vainio <vivainio@gmail.com>
220 2007-06-28 Ville Vainio <vivainio@gmail.com>
222
221
223 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
222 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
224 Implement "shadow" namespace, and callable aliases that reside there.
223 Implement "shadow" namespace, and callable aliases that reside there.
225 Use them by:
224 Use them by:
226
225
227 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
226 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
228
227
229 foo hello world
228 foo hello world
230 (gets translated to:)
229 (gets translated to:)
231 _sh.foo(r"""hello world""")
230 _sh.foo(r"""hello world""")
232
231
233 In practice, this kind of alias can take the role of a magic function
232 In practice, this kind of alias can take the role of a magic function
234
233
235 * New generic inspect_object, called on obj? and obj??
234 * New generic inspect_object, called on obj? and obj??
236
235
237 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
236 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
238
237
239 * IPython/ultraTB.py (findsource): fix a problem with
238 * IPython/ultraTB.py (findsource): fix a problem with
240 inspect.getfile that can cause crashes during traceback construction.
239 inspect.getfile that can cause crashes during traceback construction.
241
240
242 2007-06-14 Ville Vainio <vivainio@gmail.com>
241 2007-06-14 Ville Vainio <vivainio@gmail.com>
243
242
244 * iplib.py (handle_auto): Try to use ascii for printing "--->"
243 * iplib.py (handle_auto): Try to use ascii for printing "--->"
245 autocall rewrite indication, becausesometimes unicode fails to print
244 autocall rewrite indication, becausesometimes unicode fails to print
246 properly (and you get ' - - - '). Use plain uncoloured ---> for
245 properly (and you get ' - - - '). Use plain uncoloured ---> for
247 unicode.
246 unicode.
248
247
249 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
248 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
250
249
251 . pickleshare 'hash' commands (hget, hset, hcompress,
250 . pickleshare 'hash' commands (hget, hset, hcompress,
252 hdict) for efficient shadow history storage.
251 hdict) for efficient shadow history storage.
253
252
254 2007-06-13 Ville Vainio <vivainio@gmail.com>
253 2007-06-13 Ville Vainio <vivainio@gmail.com>
255
254
256 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
255 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
257 Added kw arg 'interactive', tell whether vars should be visible
256 Added kw arg 'interactive', tell whether vars should be visible
258 with %whos.
257 with %whos.
259
258
260 2007-06-11 Ville Vainio <vivainio@gmail.com>
259 2007-06-11 Ville Vainio <vivainio@gmail.com>
261
260
262 * pspersistence.py, Magic.py, iplib.py: directory history now saved
261 * pspersistence.py, Magic.py, iplib.py: directory history now saved
263 to db
262 to db
264
263
265 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
264 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
266 Also, it exits IPython immediately after evaluating the command (just like
265 Also, it exits IPython immediately after evaluating the command (just like
267 std python)
266 std python)
268
267
269 2007-06-05 Walter Doerwald <walter@livinglogic.de>
268 2007-06-05 Walter Doerwald <walter@livinglogic.de>
270
269
271 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
270 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
272 Python string and captures the output. (Idea and original patch by
271 Python string and captures the output. (Idea and original patch by
273 StοΏ½fan van der Walt)
272 StοΏ½fan van der Walt)
274
273
275 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
274 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
276
275
277 * IPython/ultraTB.py (VerboseTB.text): update printing of
276 * IPython/ultraTB.py (VerboseTB.text): update printing of
278 exception types for Python 2.5 (now all exceptions in the stdlib
277 exception types for Python 2.5 (now all exceptions in the stdlib
279 are new-style classes).
278 are new-style classes).
280
279
281 2007-05-31 Walter Doerwald <walter@livinglogic.de>
280 2007-05-31 Walter Doerwald <walter@livinglogic.de>
282
281
283 * IPython/Extensions/igrid.py: Add new commands refresh and
282 * IPython/Extensions/igrid.py: Add new commands refresh and
284 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
283 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
285 the iterator once (refresh) or after every x seconds (refresh_timer).
284 the iterator once (refresh) or after every x seconds (refresh_timer).
286 Add a working implementation of "searchexpression", where the text
285 Add a working implementation of "searchexpression", where the text
287 entered is not the text to search for, but an expression that must
286 entered is not the text to search for, but an expression that must
288 be true. Added display of shortcuts to the menu. Added commands "pickinput"
287 be true. Added display of shortcuts to the menu. Added commands "pickinput"
289 and "pickinputattr" that put the object or attribute under the cursor
288 and "pickinputattr" that put the object or attribute under the cursor
290 in the input line. Split the statusbar to be able to display the currently
289 in the input line. Split the statusbar to be able to display the currently
291 active refresh interval. (Patch by Nik Tautenhahn)
290 active refresh interval. (Patch by Nik Tautenhahn)
292
291
293 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
292 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
294
293
295 * fixing set_term_title to use ctypes as default
294 * fixing set_term_title to use ctypes as default
296
295
297 * fixing set_term_title fallback to work when curent dir
296 * fixing set_term_title fallback to work when curent dir
298 is on a windows network share
297 is on a windows network share
299
298
300 2007-05-28 Ville Vainio <vivainio@gmail.com>
299 2007-05-28 Ville Vainio <vivainio@gmail.com>
301
300
302 * %cpaste: strip + with > from left (diffs).
301 * %cpaste: strip + with > from left (diffs).
303
302
304 * iplib.py: Fix crash when readline not installed
303 * iplib.py: Fix crash when readline not installed
305
304
306 2007-05-26 Ville Vainio <vivainio@gmail.com>
305 2007-05-26 Ville Vainio <vivainio@gmail.com>
307
306
308 * generics.py: intruduce easy to extend result_display generic
307 * generics.py: intruduce easy to extend result_display generic
309 function (using simplegeneric.py).
308 function (using simplegeneric.py).
310
309
311 * Fixed the append functionality of %set.
310 * Fixed the append functionality of %set.
312
311
313 2007-05-25 Ville Vainio <vivainio@gmail.com>
312 2007-05-25 Ville Vainio <vivainio@gmail.com>
314
313
315 * New magic: %rep (fetch / run old commands from history)
314 * New magic: %rep (fetch / run old commands from history)
316
315
317 * New extension: mglob (%mglob magic), for powerful glob / find /filter
316 * New extension: mglob (%mglob magic), for powerful glob / find /filter
318 like functionality
317 like functionality
319
318
320 % maghistory.py: %hist -g PATTERM greps the history for pattern
319 % maghistory.py: %hist -g PATTERM greps the history for pattern
321
320
322 2007-05-24 Walter Doerwald <walter@livinglogic.de>
321 2007-05-24 Walter Doerwald <walter@livinglogic.de>
323
322
324 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
323 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
325 browse the IPython input history
324 browse the IPython input history
326
325
327 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
326 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
328 (mapped to "i") can be used to put the object under the curser in the input
327 (mapped to "i") can be used to put the object under the curser in the input
329 line. pickinputattr (mapped to "I") does the same for the attribute under
328 line. pickinputattr (mapped to "I") does the same for the attribute under
330 the cursor.
329 the cursor.
331
330
332 2007-05-24 Ville Vainio <vivainio@gmail.com>
331 2007-05-24 Ville Vainio <vivainio@gmail.com>
333
332
334 * Grand magic cleansing (changeset [2380]):
333 * Grand magic cleansing (changeset [2380]):
335
334
336 * Introduce ipy_legacy.py where the following magics were
335 * Introduce ipy_legacy.py where the following magics were
337 moved:
336 moved:
338
337
339 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
338 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
340
339
341 If you need them, either use default profile or "import ipy_legacy"
340 If you need them, either use default profile or "import ipy_legacy"
342 in your ipy_user_conf.py
341 in your ipy_user_conf.py
343
342
344 * Move sh and scipy profile to Extensions from UserConfig. this implies
343 * Move sh and scipy profile to Extensions from UserConfig. this implies
345 you should not edit them, but you don't need to run %upgrade when
344 you should not edit them, but you don't need to run %upgrade when
346 upgrading IPython anymore.
345 upgrading IPython anymore.
347
346
348 * %hist/%history now operates in "raw" mode by default. To get the old
347 * %hist/%history now operates in "raw" mode by default. To get the old
349 behaviour, run '%hist -n' (native mode).
348 behaviour, run '%hist -n' (native mode).
350
349
351 * split ipy_stock_completers.py to ipy_stock_completers.py and
350 * split ipy_stock_completers.py to ipy_stock_completers.py and
352 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
351 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
353 installed as default.
352 installed as default.
354
353
355 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
354 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
356 handling.
355 handling.
357
356
358 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
357 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
359 input if readline is available.
358 input if readline is available.
360
359
361 2007-05-23 Ville Vainio <vivainio@gmail.com>
360 2007-05-23 Ville Vainio <vivainio@gmail.com>
362
361
363 * macro.py: %store uses __getstate__ properly
362 * macro.py: %store uses __getstate__ properly
364
363
365 * exesetup.py: added new setup script for creating
364 * exesetup.py: added new setup script for creating
366 standalone IPython executables with py2exe (i.e.
365 standalone IPython executables with py2exe (i.e.
367 no python installation required).
366 no python installation required).
368
367
369 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
368 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
370 its place.
369 its place.
371
370
372 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
371 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
373
372
374 2007-05-21 Ville Vainio <vivainio@gmail.com>
373 2007-05-21 Ville Vainio <vivainio@gmail.com>
375
374
376 * platutil_win32.py (set_term_title): handle
375 * platutil_win32.py (set_term_title): handle
377 failure of 'title' system call properly.
376 failure of 'title' system call properly.
378
377
379 2007-05-17 Walter Doerwald <walter@livinglogic.de>
378 2007-05-17 Walter Doerwald <walter@livinglogic.de>
380
379
381 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
380 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
382 (Bug detected by Paul Mueller).
381 (Bug detected by Paul Mueller).
383
382
384 2007-05-16 Ville Vainio <vivainio@gmail.com>
383 2007-05-16 Ville Vainio <vivainio@gmail.com>
385
384
386 * ipy_profile_sci.py, ipython_win_post_install.py: Create
385 * ipy_profile_sci.py, ipython_win_post_install.py: Create
387 new "sci" profile, effectively a modern version of the old
386 new "sci" profile, effectively a modern version of the old
388 "scipy" profile (which is now slated for deprecation).
387 "scipy" profile (which is now slated for deprecation).
389
388
390 2007-05-15 Ville Vainio <vivainio@gmail.com>
389 2007-05-15 Ville Vainio <vivainio@gmail.com>
391
390
392 * pycolorize.py, pycolor.1: Paul Mueller's patches that
391 * pycolorize.py, pycolor.1: Paul Mueller's patches that
393 make pycolorize read input from stdin when run without arguments.
392 make pycolorize read input from stdin when run without arguments.
394
393
395 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
394 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
396
395
397 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
396 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
398 it in sh profile (instead of ipy_system_conf.py).
397 it in sh profile (instead of ipy_system_conf.py).
399
398
400 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
399 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
401 aliases are now lower case on windows (MyCommand.exe => mycommand).
400 aliases are now lower case on windows (MyCommand.exe => mycommand).
402
401
403 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
402 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
404 Macros are now callable objects that inherit from ipapi.IPyAutocall,
403 Macros are now callable objects that inherit from ipapi.IPyAutocall,
405 i.e. get autocalled regardless of system autocall setting.
404 i.e. get autocalled regardless of system autocall setting.
406
405
407 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
406 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
408
407
409 * IPython/rlineimpl.py: check for clear_history in readline and
408 * IPython/rlineimpl.py: check for clear_history in readline and
410 make it a dummy no-op if not available. This function isn't
409 make it a dummy no-op if not available. This function isn't
411 guaranteed to be in the API and appeared in Python 2.4, so we need
410 guaranteed to be in the API and appeared in Python 2.4, so we need
412 to check it ourselves. Also, clean up this file quite a bit.
411 to check it ourselves. Also, clean up this file quite a bit.
413
412
414 * ipython.1: update man page and full manual with information
413 * ipython.1: update man page and full manual with information
415 about threads (remove outdated warning). Closes #151.
414 about threads (remove outdated warning). Closes #151.
416
415
417 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
416 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
418
417
419 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
418 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
420 in trunk (note that this made it into the 0.8.1 release already,
419 in trunk (note that this made it into the 0.8.1 release already,
421 but the changelogs didn't get coordinated). Many thanks to Gael
420 but the changelogs didn't get coordinated). Many thanks to Gael
422 Varoquaux <gael.varoquaux-AT-normalesup.org>
421 Varoquaux <gael.varoquaux-AT-normalesup.org>
423
422
424 2007-05-09 *** Released version 0.8.1
423 2007-05-09 *** Released version 0.8.1
425
424
426 2007-05-10 Walter Doerwald <walter@livinglogic.de>
425 2007-05-10 Walter Doerwald <walter@livinglogic.de>
427
426
428 * IPython/Extensions/igrid.py: Incorporate html help into
427 * IPython/Extensions/igrid.py: Incorporate html help into
429 the module, so we don't have to search for the file.
428 the module, so we don't have to search for the file.
430
429
431 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
430 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
432
431
433 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
432 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
434
433
435 2007-04-30 Ville Vainio <vivainio@gmail.com>
434 2007-04-30 Ville Vainio <vivainio@gmail.com>
436
435
437 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
436 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
438 user has illegal (non-ascii) home directory name
437 user has illegal (non-ascii) home directory name
439
438
440 2007-04-27 Ville Vainio <vivainio@gmail.com>
439 2007-04-27 Ville Vainio <vivainio@gmail.com>
441
440
442 * platutils_win32.py: implement set_term_title for windows
441 * platutils_win32.py: implement set_term_title for windows
443
442
444 * Update version number
443 * Update version number
445
444
446 * ipy_profile_sh.py: more informative prompt (2 dir levels)
445 * ipy_profile_sh.py: more informative prompt (2 dir levels)
447
446
448 2007-04-26 Walter Doerwald <walter@livinglogic.de>
447 2007-04-26 Walter Doerwald <walter@livinglogic.de>
449
448
450 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
449 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
451 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
450 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
452 bug discovered by Ville).
451 bug discovered by Ville).
453
452
454 2007-04-26 Ville Vainio <vivainio@gmail.com>
453 2007-04-26 Ville Vainio <vivainio@gmail.com>
455
454
456 * Extensions/ipy_completers.py: Olivier's module completer now
455 * Extensions/ipy_completers.py: Olivier's module completer now
457 saves the list of root modules if it takes > 4 secs on the first run.
456 saves the list of root modules if it takes > 4 secs on the first run.
458
457
459 * Magic.py (%rehashx): %rehashx now clears the completer cache
458 * Magic.py (%rehashx): %rehashx now clears the completer cache
460
459
461
460
462 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
461 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
463
462
464 * ipython.el: fix incorrect color scheme, reported by Stefan.
463 * ipython.el: fix incorrect color scheme, reported by Stefan.
465 Closes #149.
464 Closes #149.
466
465
467 * IPython/PyColorize.py (Parser.format2): fix state-handling
466 * IPython/PyColorize.py (Parser.format2): fix state-handling
468 logic. I still don't like how that code handles state, but at
467 logic. I still don't like how that code handles state, but at
469 least now it should be correct, if inelegant. Closes #146.
468 least now it should be correct, if inelegant. Closes #146.
470
469
471 2007-04-25 Ville Vainio <vivainio@gmail.com>
470 2007-04-25 Ville Vainio <vivainio@gmail.com>
472
471
473 * Extensions/ipy_which.py: added extension for %which magic, works
472 * Extensions/ipy_which.py: added extension for %which magic, works
474 a lot like unix 'which' but also finds and expands aliases, and
473 a lot like unix 'which' but also finds and expands aliases, and
475 allows wildcards.
474 allows wildcards.
476
475
477 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
476 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
478 as opposed to returning nothing.
477 as opposed to returning nothing.
479
478
480 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
479 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
481 ipy_stock_completers on default profile, do import on sh profile.
480 ipy_stock_completers on default profile, do import on sh profile.
482
481
483 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
482 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
484
483
485 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
484 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
486 like ipython.py foo.py which raised a IndexError.
485 like ipython.py foo.py which raised a IndexError.
487
486
488 2007-04-21 Ville Vainio <vivainio@gmail.com>
487 2007-04-21 Ville Vainio <vivainio@gmail.com>
489
488
490 * Extensions/ipy_extutil.py: added extension to manage other ipython
489 * Extensions/ipy_extutil.py: added extension to manage other ipython
491 extensions. Now only supports 'ls' == list extensions.
490 extensions. Now only supports 'ls' == list extensions.
492
491
493 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
492 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
494
493
495 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
494 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
496 would prevent use of the exception system outside of a running
495 would prevent use of the exception system outside of a running
497 IPython instance.
496 IPython instance.
498
497
499 2007-04-20 Ville Vainio <vivainio@gmail.com>
498 2007-04-20 Ville Vainio <vivainio@gmail.com>
500
499
501 * Extensions/ipy_render.py: added extension for easy
500 * Extensions/ipy_render.py: added extension for easy
502 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
501 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
503 'Iptl' template notation,
502 'Iptl' template notation,
504
503
505 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
504 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
506 safer & faster 'import' completer.
505 safer & faster 'import' completer.
507
506
508 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
507 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
509 and _ip.defalias(name, command).
508 and _ip.defalias(name, command).
510
509
511 * Extensions/ipy_exportdb.py: New extension for exporting all the
510 * Extensions/ipy_exportdb.py: New extension for exporting all the
512 %store'd data in a portable format (normal ipapi calls like
511 %store'd data in a portable format (normal ipapi calls like
513 defmacro() etc.)
512 defmacro() etc.)
514
513
515 2007-04-19 Ville Vainio <vivainio@gmail.com>
514 2007-04-19 Ville Vainio <vivainio@gmail.com>
516
515
517 * upgrade_dir.py: skip junk files like *.pyc
516 * upgrade_dir.py: skip junk files like *.pyc
518
517
519 * Release.py: version number to 0.8.1
518 * Release.py: version number to 0.8.1
520
519
521 2007-04-18 Ville Vainio <vivainio@gmail.com>
520 2007-04-18 Ville Vainio <vivainio@gmail.com>
522
521
523 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
522 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
524 and later on win32.
523 and later on win32.
525
524
526 2007-04-16 Ville Vainio <vivainio@gmail.com>
525 2007-04-16 Ville Vainio <vivainio@gmail.com>
527
526
528 * iplib.py (showtraceback): Do not crash when running w/o readline.
527 * iplib.py (showtraceback): Do not crash when running w/o readline.
529
528
530 2007-04-12 Walter Doerwald <walter@livinglogic.de>
529 2007-04-12 Walter Doerwald <walter@livinglogic.de>
531
530
532 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
531 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
533 sorted (case sensitive with files and dirs mixed).
532 sorted (case sensitive with files and dirs mixed).
534
533
535 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
534 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
536
535
537 * IPython/Release.py (version): Open trunk for 0.8.1 development.
536 * IPython/Release.py (version): Open trunk for 0.8.1 development.
538
537
539 2007-04-10 *** Released version 0.8.0
538 2007-04-10 *** Released version 0.8.0
540
539
541 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
540 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
542
541
543 * Tag 0.8.0 for release.
542 * Tag 0.8.0 for release.
544
543
545 * IPython/iplib.py (reloadhist): add API function to cleanly
544 * IPython/iplib.py (reloadhist): add API function to cleanly
546 reload the readline history, which was growing inappropriately on
545 reload the readline history, which was growing inappropriately on
547 every %run call.
546 every %run call.
548
547
549 * win32_manual_post_install.py (run): apply last part of Nicolas
548 * win32_manual_post_install.py (run): apply last part of Nicolas
550 Pernetty's patch (I'd accidentally applied it in a different
549 Pernetty's patch (I'd accidentally applied it in a different
551 directory and this particular file didn't get patched).
550 directory and this particular file didn't get patched).
552
551
553 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
552 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
554
553
555 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
554 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
556 find the main thread id and use the proper API call. Thanks to
555 find the main thread id and use the proper API call. Thanks to
557 Stefan for the fix.
556 Stefan for the fix.
558
557
559 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
558 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
560 unit tests to reflect fixed ticket #52, and add more tests sent by
559 unit tests to reflect fixed ticket #52, and add more tests sent by
561 him.
560 him.
562
561
563 * IPython/iplib.py (raw_input): restore the readline completer
562 * IPython/iplib.py (raw_input): restore the readline completer
564 state on every input, in case third-party code messed it up.
563 state on every input, in case third-party code messed it up.
565 (_prefilter): revert recent addition of early-escape checks which
564 (_prefilter): revert recent addition of early-escape checks which
566 prevent many valid alias calls from working.
565 prevent many valid alias calls from working.
567
566
568 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
567 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
569 flag for sigint handler so we don't run a full signal() call on
568 flag for sigint handler so we don't run a full signal() call on
570 each runcode access.
569 each runcode access.
571
570
572 * IPython/Magic.py (magic_whos): small improvement to diagnostic
571 * IPython/Magic.py (magic_whos): small improvement to diagnostic
573 message.
572 message.
574
573
575 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
574 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
576
575
577 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
576 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
578 asynchronous exceptions working, i.e., Ctrl-C can actually
577 asynchronous exceptions working, i.e., Ctrl-C can actually
579 interrupt long-running code in the multithreaded shells.
578 interrupt long-running code in the multithreaded shells.
580
579
581 This is using Tomer Filiba's great ctypes-based trick:
580 This is using Tomer Filiba's great ctypes-based trick:
582 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
581 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
583 this in the past, but hadn't been able to make it work before. So
582 this in the past, but hadn't been able to make it work before. So
584 far it looks like it's actually running, but this needs more
583 far it looks like it's actually running, but this needs more
585 testing. If it really works, I'll be *very* happy, and we'll owe
584 testing. If it really works, I'll be *very* happy, and we'll owe
586 a huge thank you to Tomer. My current implementation is ugly,
585 a huge thank you to Tomer. My current implementation is ugly,
587 hackish and uses nasty globals, but I don't want to try and clean
586 hackish and uses nasty globals, but I don't want to try and clean
588 anything up until we know if it actually works.
587 anything up until we know if it actually works.
589
588
590 NOTE: this feature needs ctypes to work. ctypes is included in
589 NOTE: this feature needs ctypes to work. ctypes is included in
591 Python2.5, but 2.4 users will need to manually install it. This
590 Python2.5, but 2.4 users will need to manually install it. This
592 feature makes multi-threaded shells so much more usable that it's
591 feature makes multi-threaded shells so much more usable that it's
593 a minor price to pay (ctypes is very easy to install, already a
592 a minor price to pay (ctypes is very easy to install, already a
594 requirement for win32 and available in major linux distros).
593 requirement for win32 and available in major linux distros).
595
594
596 2007-04-04 Ville Vainio <vivainio@gmail.com>
595 2007-04-04 Ville Vainio <vivainio@gmail.com>
597
596
598 * Extensions/ipy_completers.py, ipy_stock_completers.py:
597 * Extensions/ipy_completers.py, ipy_stock_completers.py:
599 Moved implementations of 'bundled' completers to ipy_completers.py,
598 Moved implementations of 'bundled' completers to ipy_completers.py,
600 they are only enabled in ipy_stock_completers.py.
599 they are only enabled in ipy_stock_completers.py.
601
600
602 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
601 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
603
602
604 * IPython/PyColorize.py (Parser.format2): Fix identation of
603 * IPython/PyColorize.py (Parser.format2): Fix identation of
605 colorzied output and return early if color scheme is NoColor, to
604 colorzied output and return early if color scheme is NoColor, to
606 avoid unnecessary and expensive tokenization. Closes #131.
605 avoid unnecessary and expensive tokenization. Closes #131.
607
606
608 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
607 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
609
608
610 * IPython/Debugger.py: disable the use of pydb version 1.17. It
609 * IPython/Debugger.py: disable the use of pydb version 1.17. It
611 has a critical bug (a missing import that makes post-mortem not
610 has a critical bug (a missing import that makes post-mortem not
612 work at all). Unfortunately as of this time, this is the version
611 work at all). Unfortunately as of this time, this is the version
613 shipped with Ubuntu Edgy, so quite a few people have this one. I
612 shipped with Ubuntu Edgy, so quite a few people have this one. I
614 hope Edgy will update to a more recent package.
613 hope Edgy will update to a more recent package.
615
614
616 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
615 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
617
616
618 * IPython/iplib.py (_prefilter): close #52, second part of a patch
617 * IPython/iplib.py (_prefilter): close #52, second part of a patch
619 set by Stefan (only the first part had been applied before).
618 set by Stefan (only the first part had been applied before).
620
619
621 * IPython/Extensions/ipy_stock_completers.py (module_completer):
620 * IPython/Extensions/ipy_stock_completers.py (module_completer):
622 remove usage of the dangerous pkgutil.walk_packages(). See
621 remove usage of the dangerous pkgutil.walk_packages(). See
623 details in comments left in the code.
622 details in comments left in the code.
624
623
625 * IPython/Magic.py (magic_whos): add support for numpy arrays
624 * IPython/Magic.py (magic_whos): add support for numpy arrays
626 similar to what we had for Numeric.
625 similar to what we had for Numeric.
627
626
628 * IPython/completer.py (IPCompleter.complete): extend the
627 * IPython/completer.py (IPCompleter.complete): extend the
629 complete() call API to support completions by other mechanisms
628 complete() call API to support completions by other mechanisms
630 than readline. Closes #109.
629 than readline. Closes #109.
631
630
632 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
631 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
633 protect against a bug in Python's execfile(). Closes #123.
632 protect against a bug in Python's execfile(). Closes #123.
634
633
635 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
634 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
636
635
637 * IPython/iplib.py (split_user_input): ensure that when splitting
636 * IPython/iplib.py (split_user_input): ensure that when splitting
638 user input, the part that can be treated as a python name is pure
637 user input, the part that can be treated as a python name is pure
639 ascii (Python identifiers MUST be pure ascii). Part of the
638 ascii (Python identifiers MUST be pure ascii). Part of the
640 ongoing Unicode support work.
639 ongoing Unicode support work.
641
640
642 * IPython/Prompts.py (prompt_specials_color): Add \N for the
641 * IPython/Prompts.py (prompt_specials_color): Add \N for the
643 actual prompt number, without any coloring. This allows users to
642 actual prompt number, without any coloring. This allows users to
644 produce numbered prompts with their own colors. Added after a
643 produce numbered prompts with their own colors. Added after a
645 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
644 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
646
645
647 2007-03-31 Walter Doerwald <walter@livinglogic.de>
646 2007-03-31 Walter Doerwald <walter@livinglogic.de>
648
647
649 * IPython/Extensions/igrid.py: Map the return key
648 * IPython/Extensions/igrid.py: Map the return key
650 to enter() and shift-return to enterattr().
649 to enter() and shift-return to enterattr().
651
650
652 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
651 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
653
652
654 * IPython/Magic.py (magic_psearch): add unicode support by
653 * IPython/Magic.py (magic_psearch): add unicode support by
655 encoding to ascii the input, since this routine also only deals
654 encoding to ascii the input, since this routine also only deals
656 with valid Python names. Fixes a bug reported by Stefan.
655 with valid Python names. Fixes a bug reported by Stefan.
657
656
658 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
657 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
659
658
660 * IPython/Magic.py (_inspect): convert unicode input into ascii
659 * IPython/Magic.py (_inspect): convert unicode input into ascii
661 before trying to evaluate it as a Python identifier. This fixes a
660 before trying to evaluate it as a Python identifier. This fixes a
662 problem that the new unicode support had introduced when analyzing
661 problem that the new unicode support had introduced when analyzing
663 long definition lines for functions.
662 long definition lines for functions.
664
663
665 2007-03-24 Walter Doerwald <walter@livinglogic.de>
664 2007-03-24 Walter Doerwald <walter@livinglogic.de>
666
665
667 * IPython/Extensions/igrid.py: Fix picking. Using
666 * IPython/Extensions/igrid.py: Fix picking. Using
668 igrid with wxPython 2.6 and -wthread should work now.
667 igrid with wxPython 2.6 and -wthread should work now.
669 igrid.display() simply tries to create a frame without
668 igrid.display() simply tries to create a frame without
670 an application. Only if this fails an application is created.
669 an application. Only if this fails an application is created.
671
670
672 2007-03-23 Walter Doerwald <walter@livinglogic.de>
671 2007-03-23 Walter Doerwald <walter@livinglogic.de>
673
672
674 * IPython/Extensions/path.py: Updated to version 2.2.
673 * IPython/Extensions/path.py: Updated to version 2.2.
675
674
676 2007-03-23 Ville Vainio <vivainio@gmail.com>
675 2007-03-23 Ville Vainio <vivainio@gmail.com>
677
676
678 * iplib.py: recursive alias expansion now works better, so that
677 * iplib.py: recursive alias expansion now works better, so that
679 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
678 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
680 doesn't trip up the process, if 'd' has been aliased to 'ls'.
679 doesn't trip up the process, if 'd' has been aliased to 'ls'.
681
680
682 * Extensions/ipy_gnuglobal.py added, provides %global magic
681 * Extensions/ipy_gnuglobal.py added, provides %global magic
683 for users of http://www.gnu.org/software/global
682 for users of http://www.gnu.org/software/global
684
683
685 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
684 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
686 Closes #52. Patch by Stefan van der Walt.
685 Closes #52. Patch by Stefan van der Walt.
687
686
688 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
687 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
689
688
690 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
689 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
691 respect the __file__ attribute when using %run. Thanks to a bug
690 respect the __file__ attribute when using %run. Thanks to a bug
692 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
691 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
693
692
694 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
693 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
695
694
696 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
695 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
697 input. Patch sent by Stefan.
696 input. Patch sent by Stefan.
698
697
699 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
698 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
700 * IPython/Extensions/ipy_stock_completer.py
699 * IPython/Extensions/ipy_stock_completer.py
701 shlex_split, fix bug in shlex_split. len function
700 shlex_split, fix bug in shlex_split. len function
702 call was missing an if statement. Caused shlex_split to
701 call was missing an if statement. Caused shlex_split to
703 sometimes return "" as last element.
702 sometimes return "" as last element.
704
703
705 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
704 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
706
705
707 * IPython/completer.py
706 * IPython/completer.py
708 (IPCompleter.file_matches.single_dir_expand): fix a problem
707 (IPCompleter.file_matches.single_dir_expand): fix a problem
709 reported by Stefan, where directories containign a single subdir
708 reported by Stefan, where directories containign a single subdir
710 would be completed too early.
709 would be completed too early.
711
710
712 * IPython/Shell.py (_load_pylab): Make the execution of 'from
711 * IPython/Shell.py (_load_pylab): Make the execution of 'from
713 pylab import *' when -pylab is given be optional. A new flag,
712 pylab import *' when -pylab is given be optional. A new flag,
714 pylab_import_all controls this behavior, the default is True for
713 pylab_import_all controls this behavior, the default is True for
715 backwards compatibility.
714 backwards compatibility.
716
715
717 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
716 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
718 modified) R. Bernstein's patch for fully syntax highlighted
717 modified) R. Bernstein's patch for fully syntax highlighted
719 tracebacks. The functionality is also available under ultraTB for
718 tracebacks. The functionality is also available under ultraTB for
720 non-ipython users (someone using ultraTB but outside an ipython
719 non-ipython users (someone using ultraTB but outside an ipython
721 session). They can select the color scheme by setting the
720 session). They can select the color scheme by setting the
722 module-level global DEFAULT_SCHEME. The highlight functionality
721 module-level global DEFAULT_SCHEME. The highlight functionality
723 also works when debugging.
722 also works when debugging.
724
723
725 * IPython/genutils.py (IOStream.close): small patch by
724 * IPython/genutils.py (IOStream.close): small patch by
726 R. Bernstein for improved pydb support.
725 R. Bernstein for improved pydb support.
727
726
728 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
727 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
729 DaveS <davls@telus.net> to improve support of debugging under
728 DaveS <davls@telus.net> to improve support of debugging under
730 NTEmacs, including improved pydb behavior.
729 NTEmacs, including improved pydb behavior.
731
730
732 * IPython/Magic.py (magic_prun): Fix saving of profile info for
731 * IPython/Magic.py (magic_prun): Fix saving of profile info for
733 Python 2.5, where the stats object API changed a little. Thanks
732 Python 2.5, where the stats object API changed a little. Thanks
734 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
733 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
735
734
736 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
735 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
737 Pernetty's patch to improve support for (X)Emacs under Win32.
736 Pernetty's patch to improve support for (X)Emacs under Win32.
738
737
739 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
738 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
740
739
741 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
740 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
742 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
741 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
743 a report by Nik Tautenhahn.
742 a report by Nik Tautenhahn.
744
743
745 2007-03-16 Walter Doerwald <walter@livinglogic.de>
744 2007-03-16 Walter Doerwald <walter@livinglogic.de>
746
745
747 * setup.py: Add the igrid help files to the list of data files
746 * setup.py: Add the igrid help files to the list of data files
748 to be installed alongside igrid.
747 to be installed alongside igrid.
749 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
748 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
750 Show the input object of the igrid browser as the window tile.
749 Show the input object of the igrid browser as the window tile.
751 Show the object the cursor is on in the statusbar.
750 Show the object the cursor is on in the statusbar.
752
751
753 2007-03-15 Ville Vainio <vivainio@gmail.com>
752 2007-03-15 Ville Vainio <vivainio@gmail.com>
754
753
755 * Extensions/ipy_stock_completers.py: Fixed exception
754 * Extensions/ipy_stock_completers.py: Fixed exception
756 on mismatching quotes in %run completer. Patch by
755 on mismatching quotes in %run completer. Patch by
757 JοΏ½rgen Stenarson. Closes #127.
756 JοΏ½rgen Stenarson. Closes #127.
758
757
759 2007-03-14 Ville Vainio <vivainio@gmail.com>
758 2007-03-14 Ville Vainio <vivainio@gmail.com>
760
759
761 * Extensions/ext_rehashdir.py: Do not do auto_alias
760 * Extensions/ext_rehashdir.py: Do not do auto_alias
762 in %rehashdir, it clobbers %store'd aliases.
761 in %rehashdir, it clobbers %store'd aliases.
763
762
764 * UserConfig/ipy_profile_sh.py: envpersist.py extension
763 * UserConfig/ipy_profile_sh.py: envpersist.py extension
765 (beefed up %env) imported for sh profile.
764 (beefed up %env) imported for sh profile.
766
765
767 2007-03-10 Walter Doerwald <walter@livinglogic.de>
766 2007-03-10 Walter Doerwald <walter@livinglogic.de>
768
767
769 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
768 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
770 as the default browser.
769 as the default browser.
771 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
770 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
772 As igrid displays all attributes it ever encounters, fetch() (which has
771 As igrid displays all attributes it ever encounters, fetch() (which has
773 been renamed to _fetch()) doesn't have to recalculate the display attributes
772 been renamed to _fetch()) doesn't have to recalculate the display attributes
774 every time a new item is fetched. This should speed up scrolling.
773 every time a new item is fetched. This should speed up scrolling.
775
774
776 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
775 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
777
776
778 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
777 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
779 Schmolck's recently reported tab-completion bug (my previous one
778 Schmolck's recently reported tab-completion bug (my previous one
780 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
779 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
781
780
782 2007-03-09 Walter Doerwald <walter@livinglogic.de>
781 2007-03-09 Walter Doerwald <walter@livinglogic.de>
783
782
784 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
783 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
785 Close help window if exiting igrid.
784 Close help window if exiting igrid.
786
785
787 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
786 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
788
787
789 * IPython/Extensions/ipy_defaults.py: Check if readline is available
788 * IPython/Extensions/ipy_defaults.py: Check if readline is available
790 before calling functions from readline.
789 before calling functions from readline.
791
790
792 2007-03-02 Walter Doerwald <walter@livinglogic.de>
791 2007-03-02 Walter Doerwald <walter@livinglogic.de>
793
792
794 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
793 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
795 igrid is a wxPython-based display object for ipipe. If your system has
794 igrid is a wxPython-based display object for ipipe. If your system has
796 wx installed igrid will be the default display. Without wx ipipe falls
795 wx installed igrid will be the default display. Without wx ipipe falls
797 back to ibrowse (which needs curses). If no curses is installed ipipe
796 back to ibrowse (which needs curses). If no curses is installed ipipe
798 falls back to idump.
797 falls back to idump.
799
798
800 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
799 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
801
800
802 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
801 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
803 my changes from yesterday, they introduced bugs. Will reactivate
802 my changes from yesterday, they introduced bugs. Will reactivate
804 once I get a correct solution, which will be much easier thanks to
803 once I get a correct solution, which will be much easier thanks to
805 Dan Milstein's new prefilter test suite.
804 Dan Milstein's new prefilter test suite.
806
805
807 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
806 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
808
807
809 * IPython/iplib.py (split_user_input): fix input splitting so we
808 * IPython/iplib.py (split_user_input): fix input splitting so we
810 don't attempt attribute accesses on things that can't possibly be
809 don't attempt attribute accesses on things that can't possibly be
811 valid Python attributes. After a bug report by Alex Schmolck.
810 valid Python attributes. After a bug report by Alex Schmolck.
812 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
811 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
813 %magic with explicit % prefix.
812 %magic with explicit % prefix.
814
813
815 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
814 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
816
815
817 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
816 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
818 avoid a DeprecationWarning from GTK.
817 avoid a DeprecationWarning from GTK.
819
818
820 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
819 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
821
820
822 * IPython/genutils.py (clock): I modified clock() to return total
821 * IPython/genutils.py (clock): I modified clock() to return total
823 time, user+system. This is a more commonly needed metric. I also
822 time, user+system. This is a more commonly needed metric. I also
824 introduced the new clocku/clocks to get only user/system time if
823 introduced the new clocku/clocks to get only user/system time if
825 one wants those instead.
824 one wants those instead.
826
825
827 ***WARNING: API CHANGE*** clock() used to return only user time,
826 ***WARNING: API CHANGE*** clock() used to return only user time,
828 so if you want exactly the same results as before, use clocku
827 so if you want exactly the same results as before, use clocku
829 instead.
828 instead.
830
829
831 2007-02-22 Ville Vainio <vivainio@gmail.com>
830 2007-02-22 Ville Vainio <vivainio@gmail.com>
832
831
833 * IPython/Extensions/ipy_p4.py: Extension for improved
832 * IPython/Extensions/ipy_p4.py: Extension for improved
834 p4 (perforce version control system) experience.
833 p4 (perforce version control system) experience.
835 Adds %p4 magic with p4 command completion and
834 Adds %p4 magic with p4 command completion and
836 automatic -G argument (marshall output as python dict)
835 automatic -G argument (marshall output as python dict)
837
836
838 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
837 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
839
838
840 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
839 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
841 stop marks.
840 stop marks.
842 (ClearingMixin): a simple mixin to easily make a Demo class clear
841 (ClearingMixin): a simple mixin to easily make a Demo class clear
843 the screen in between blocks and have empty marquees. The
842 the screen in between blocks and have empty marquees. The
844 ClearDemo and ClearIPDemo classes that use it are included.
843 ClearDemo and ClearIPDemo classes that use it are included.
845
844
846 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
845 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
847
846
848 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
847 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
849 protect against exceptions at Python shutdown time. Patch
848 protect against exceptions at Python shutdown time. Patch
850 sumbmitted to upstream.
849 sumbmitted to upstream.
851
850
852 2007-02-14 Walter Doerwald <walter@livinglogic.de>
851 2007-02-14 Walter Doerwald <walter@livinglogic.de>
853
852
854 * IPython/Extensions/ibrowse.py: If entering the first object level
853 * IPython/Extensions/ibrowse.py: If entering the first object level
855 (i.e. the object for which the browser has been started) fails,
854 (i.e. the object for which the browser has been started) fails,
856 now the error is raised directly (aborting the browser) instead of
855 now the error is raised directly (aborting the browser) instead of
857 running into an empty levels list later.
856 running into an empty levels list later.
858
857
859 2007-02-03 Walter Doerwald <walter@livinglogic.de>
858 2007-02-03 Walter Doerwald <walter@livinglogic.de>
860
859
861 * IPython/Extensions/ipipe.py: Add an xrepr implementation
860 * IPython/Extensions/ipipe.py: Add an xrepr implementation
862 for the noitem object.
861 for the noitem object.
863
862
864 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
863 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
865
864
866 * IPython/completer.py (Completer.attr_matches): Fix small
865 * IPython/completer.py (Completer.attr_matches): Fix small
867 tab-completion bug with Enthought Traits objects with units.
866 tab-completion bug with Enthought Traits objects with units.
868 Thanks to a bug report by Tom Denniston
867 Thanks to a bug report by Tom Denniston
869 <tom.denniston-AT-alum.dartmouth.org>.
868 <tom.denniston-AT-alum.dartmouth.org>.
870
869
871 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
870 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
872
871
873 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
872 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
874 bug where only .ipy or .py would be completed. Once the first
873 bug where only .ipy or .py would be completed. Once the first
875 argument to %run has been given, all completions are valid because
874 argument to %run has been given, all completions are valid because
876 they are the arguments to the script, which may well be non-python
875 they are the arguments to the script, which may well be non-python
877 filenames.
876 filenames.
878
877
879 * IPython/irunner.py (InteractiveRunner.run_source): major updates
878 * IPython/irunner.py (InteractiveRunner.run_source): major updates
880 to irunner to allow it to correctly support real doctesting of
879 to irunner to allow it to correctly support real doctesting of
881 out-of-process ipython code.
880 out-of-process ipython code.
882
881
883 * IPython/Magic.py (magic_cd): Make the setting of the terminal
882 * IPython/Magic.py (magic_cd): Make the setting of the terminal
884 title an option (-noterm_title) because it completely breaks
883 title an option (-noterm_title) because it completely breaks
885 doctesting.
884 doctesting.
886
885
887 * IPython/demo.py: fix IPythonDemo class that was not actually working.
886 * IPython/demo.py: fix IPythonDemo class that was not actually working.
888
887
889 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
888 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
890
889
891 * IPython/irunner.py (main): fix small bug where extensions were
890 * IPython/irunner.py (main): fix small bug where extensions were
892 not being correctly recognized.
891 not being correctly recognized.
893
892
894 2007-01-23 Walter Doerwald <walter@livinglogic.de>
893 2007-01-23 Walter Doerwald <walter@livinglogic.de>
895
894
896 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
895 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
897 a string containing a single line yields the string itself as the
896 a string containing a single line yields the string itself as the
898 only item.
897 only item.
899
898
900 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
899 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
901 object if it's the same as the one on the last level (This avoids
900 object if it's the same as the one on the last level (This avoids
902 infinite recursion for one line strings).
901 infinite recursion for one line strings).
903
902
904 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
903 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
905
904
906 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
905 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
907 all output streams before printing tracebacks. This ensures that
906 all output streams before printing tracebacks. This ensures that
908 user output doesn't end up interleaved with traceback output.
907 user output doesn't end up interleaved with traceback output.
909
908
910 2007-01-10 Ville Vainio <vivainio@gmail.com>
909 2007-01-10 Ville Vainio <vivainio@gmail.com>
911
910
912 * Extensions/envpersist.py: Turbocharged %env that remembers
911 * Extensions/envpersist.py: Turbocharged %env that remembers
913 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
912 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
914 "%env VISUAL=jed".
913 "%env VISUAL=jed".
915
914
916 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
915 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
917
916
918 * IPython/iplib.py (showtraceback): ensure that we correctly call
917 * IPython/iplib.py (showtraceback): ensure that we correctly call
919 custom handlers in all cases (some with pdb were slipping through,
918 custom handlers in all cases (some with pdb were slipping through,
920 but I'm not exactly sure why).
919 but I'm not exactly sure why).
921
920
922 * IPython/Debugger.py (Tracer.__init__): added new class to
921 * IPython/Debugger.py (Tracer.__init__): added new class to
923 support set_trace-like usage of IPython's enhanced debugger.
922 support set_trace-like usage of IPython's enhanced debugger.
924
923
925 2006-12-24 Ville Vainio <vivainio@gmail.com>
924 2006-12-24 Ville Vainio <vivainio@gmail.com>
926
925
927 * ipmaker.py: more informative message when ipy_user_conf
926 * ipmaker.py: more informative message when ipy_user_conf
928 import fails (suggest running %upgrade).
927 import fails (suggest running %upgrade).
929
928
930 * tools/run_ipy_in_profiler.py: Utility to see where
929 * tools/run_ipy_in_profiler.py: Utility to see where
931 the time during IPython startup is spent.
930 the time during IPython startup is spent.
932
931
933 2006-12-20 Ville Vainio <vivainio@gmail.com>
932 2006-12-20 Ville Vainio <vivainio@gmail.com>
934
933
935 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
934 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
936
935
937 * ipapi.py: Add new ipapi method, expand_alias.
936 * ipapi.py: Add new ipapi method, expand_alias.
938
937
939 * Release.py: Bump up version to 0.7.4.svn
938 * Release.py: Bump up version to 0.7.4.svn
940
939
941 2006-12-17 Ville Vainio <vivainio@gmail.com>
940 2006-12-17 Ville Vainio <vivainio@gmail.com>
942
941
943 * Extensions/jobctrl.py: Fixed &cmd arg arg...
942 * Extensions/jobctrl.py: Fixed &cmd arg arg...
944 to work properly on posix too
943 to work properly on posix too
945
944
946 * Release.py: Update revnum (version is still just 0.7.3).
945 * Release.py: Update revnum (version is still just 0.7.3).
947
946
948 2006-12-15 Ville Vainio <vivainio@gmail.com>
947 2006-12-15 Ville Vainio <vivainio@gmail.com>
949
948
950 * scripts/ipython_win_post_install: create ipython.py in
949 * scripts/ipython_win_post_install: create ipython.py in
951 prefix + "/scripts".
950 prefix + "/scripts".
952
951
953 * Release.py: Update version to 0.7.3.
952 * Release.py: Update version to 0.7.3.
954
953
955 2006-12-14 Ville Vainio <vivainio@gmail.com>
954 2006-12-14 Ville Vainio <vivainio@gmail.com>
956
955
957 * scripts/ipython_win_post_install: Overwrite old shortcuts
956 * scripts/ipython_win_post_install: Overwrite old shortcuts
958 if they already exist
957 if they already exist
959
958
960 * Release.py: release 0.7.3rc2
959 * Release.py: release 0.7.3rc2
961
960
962 2006-12-13 Ville Vainio <vivainio@gmail.com>
961 2006-12-13 Ville Vainio <vivainio@gmail.com>
963
962
964 * Branch and update Release.py for 0.7.3rc1
963 * Branch and update Release.py for 0.7.3rc1
965
964
966 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
965 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
967
966
968 * IPython/Shell.py (IPShellWX): update for current WX naming
967 * IPython/Shell.py (IPShellWX): update for current WX naming
969 conventions, to avoid a deprecation warning with current WX
968 conventions, to avoid a deprecation warning with current WX
970 versions. Thanks to a report by Danny Shevitz.
969 versions. Thanks to a report by Danny Shevitz.
971
970
972 2006-12-12 Ville Vainio <vivainio@gmail.com>
971 2006-12-12 Ville Vainio <vivainio@gmail.com>
973
972
974 * ipmaker.py: apply david cournapeau's patch to make
973 * ipmaker.py: apply david cournapeau's patch to make
975 import_some work properly even when ipythonrc does
974 import_some work properly even when ipythonrc does
976 import_some on empty list (it was an old bug!).
975 import_some on empty list (it was an old bug!).
977
976
978 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
977 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
979 Add deprecation note to ipythonrc and a url to wiki
978 Add deprecation note to ipythonrc and a url to wiki
980 in ipy_user_conf.py
979 in ipy_user_conf.py
981
980
982
981
983 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
982 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
984 as if it was typed on IPython command prompt, i.e.
983 as if it was typed on IPython command prompt, i.e.
985 as IPython script.
984 as IPython script.
986
985
987 * example-magic.py, magic_grepl.py: remove outdated examples
986 * example-magic.py, magic_grepl.py: remove outdated examples
988
987
989 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
988 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
990
989
991 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
990 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
992 is called before any exception has occurred.
991 is called before any exception has occurred.
993
992
994 2006-12-08 Ville Vainio <vivainio@gmail.com>
993 2006-12-08 Ville Vainio <vivainio@gmail.com>
995
994
996 * Extensions/ipy_stock_completers.py: fix cd completer
995 * Extensions/ipy_stock_completers.py: fix cd completer
997 to translate /'s to \'s again.
996 to translate /'s to \'s again.
998
997
999 * completer.py: prevent traceback on file completions w/
998 * completer.py: prevent traceback on file completions w/
1000 backslash.
999 backslash.
1001
1000
1002 * Release.py: Update release number to 0.7.3b3 for release
1001 * Release.py: Update release number to 0.7.3b3 for release
1003
1002
1004 2006-12-07 Ville Vainio <vivainio@gmail.com>
1003 2006-12-07 Ville Vainio <vivainio@gmail.com>
1005
1004
1006 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1005 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1007 while executing external code. Provides more shell-like behaviour
1006 while executing external code. Provides more shell-like behaviour
1008 and overall better response to ctrl + C / ctrl + break.
1007 and overall better response to ctrl + C / ctrl + break.
1009
1008
1010 * tools/make_tarball.py: new script to create tarball straight from svn
1009 * tools/make_tarball.py: new script to create tarball straight from svn
1011 (setup.py sdist doesn't work on win32).
1010 (setup.py sdist doesn't work on win32).
1012
1011
1013 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1012 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1014 on dirnames with spaces and use the default completer instead.
1013 on dirnames with spaces and use the default completer instead.
1015
1014
1016 * Revision.py: Change version to 0.7.3b2 for release.
1015 * Revision.py: Change version to 0.7.3b2 for release.
1017
1016
1018 2006-12-05 Ville Vainio <vivainio@gmail.com>
1017 2006-12-05 Ville Vainio <vivainio@gmail.com>
1019
1018
1020 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1019 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1021 pydb patch 4 (rm debug printing, py 2.5 checking)
1020 pydb patch 4 (rm debug printing, py 2.5 checking)
1022
1021
1023 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1022 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1024 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1023 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1025 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1024 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1026 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1025 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1027 object the cursor was on before the refresh. The command "markrange" is
1026 object the cursor was on before the refresh. The command "markrange" is
1028 mapped to "%" now.
1027 mapped to "%" now.
1029 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1028 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1030
1029
1031 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1030 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1032
1031
1033 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1032 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1034 interactive debugger on the last traceback, without having to call
1033 interactive debugger on the last traceback, without having to call
1035 %pdb and rerun your code. Made minor changes in various modules,
1034 %pdb and rerun your code. Made minor changes in various modules,
1036 should automatically recognize pydb if available.
1035 should automatically recognize pydb if available.
1037
1036
1038 2006-11-28 Ville Vainio <vivainio@gmail.com>
1037 2006-11-28 Ville Vainio <vivainio@gmail.com>
1039
1038
1040 * completer.py: If the text start with !, show file completions
1039 * completer.py: If the text start with !, show file completions
1041 properly. This helps when trying to complete command name
1040 properly. This helps when trying to complete command name
1042 for shell escapes.
1041 for shell escapes.
1043
1042
1044 2006-11-27 Ville Vainio <vivainio@gmail.com>
1043 2006-11-27 Ville Vainio <vivainio@gmail.com>
1045
1044
1046 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1045 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1047 der Walt. Clean up svn and hg completers by using a common
1046 der Walt. Clean up svn and hg completers by using a common
1048 vcs_completer.
1047 vcs_completer.
1049
1048
1050 2006-11-26 Ville Vainio <vivainio@gmail.com>
1049 2006-11-26 Ville Vainio <vivainio@gmail.com>
1051
1050
1052 * Remove ipconfig and %config; you should use _ip.options structure
1051 * Remove ipconfig and %config; you should use _ip.options structure
1053 directly instead!
1052 directly instead!
1054
1053
1055 * genutils.py: add wrap_deprecated function for deprecating callables
1054 * genutils.py: add wrap_deprecated function for deprecating callables
1056
1055
1057 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1056 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1058 _ip.system instead. ipalias is redundant.
1057 _ip.system instead. ipalias is redundant.
1059
1058
1060 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1059 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1061 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1060 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1062 explicit.
1061 explicit.
1063
1062
1064 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1063 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1065 completer. Try it by entering 'hg ' and pressing tab.
1064 completer. Try it by entering 'hg ' and pressing tab.
1066
1065
1067 * macro.py: Give Macro a useful __repr__ method
1066 * macro.py: Give Macro a useful __repr__ method
1068
1067
1069 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1068 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1070
1069
1071 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1070 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1072 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1071 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1073 we don't get a duplicate ipipe module, where registration of the xrepr
1072 we don't get a duplicate ipipe module, where registration of the xrepr
1074 implementation for Text is useless.
1073 implementation for Text is useless.
1075
1074
1076 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1075 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1077
1076
1078 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1077 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1079
1078
1080 2006-11-24 Ville Vainio <vivainio@gmail.com>
1079 2006-11-24 Ville Vainio <vivainio@gmail.com>
1081
1080
1082 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1081 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1083 try to use "cProfile" instead of the slower pure python
1082 try to use "cProfile" instead of the slower pure python
1084 "profile"
1083 "profile"
1085
1084
1086 2006-11-23 Ville Vainio <vivainio@gmail.com>
1085 2006-11-23 Ville Vainio <vivainio@gmail.com>
1087
1086
1088 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1087 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1089 Qt+IPython+Designer link in documentation.
1088 Qt+IPython+Designer link in documentation.
1090
1089
1091 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1090 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1092 correct Pdb object to %pydb.
1091 correct Pdb object to %pydb.
1093
1092
1094
1093
1095 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1094 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1096 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1095 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1097 generic xrepr(), otherwise the list implementation would kick in.
1096 generic xrepr(), otherwise the list implementation would kick in.
1098
1097
1099 2006-11-21 Ville Vainio <vivainio@gmail.com>
1098 2006-11-21 Ville Vainio <vivainio@gmail.com>
1100
1099
1101 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1100 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1102 with one from UserConfig.
1101 with one from UserConfig.
1103
1102
1104 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1103 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1105 it was missing which broke the sh profile.
1104 it was missing which broke the sh profile.
1106
1105
1107 * completer.py: file completer now uses explicit '/' instead
1106 * completer.py: file completer now uses explicit '/' instead
1108 of os.path.join, expansion of 'foo' was broken on win32
1107 of os.path.join, expansion of 'foo' was broken on win32
1109 if there was one directory with name 'foobar'.
1108 if there was one directory with name 'foobar'.
1110
1109
1111 * A bunch of patches from Kirill Smelkov:
1110 * A bunch of patches from Kirill Smelkov:
1112
1111
1113 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1112 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1114
1113
1115 * [patch 7/9] Implement %page -r (page in raw mode) -
1114 * [patch 7/9] Implement %page -r (page in raw mode) -
1116
1115
1117 * [patch 5/9] ScientificPython webpage has moved
1116 * [patch 5/9] ScientificPython webpage has moved
1118
1117
1119 * [patch 4/9] The manual mentions %ds, should be %dhist
1118 * [patch 4/9] The manual mentions %ds, should be %dhist
1120
1119
1121 * [patch 3/9] Kill old bits from %prun doc.
1120 * [patch 3/9] Kill old bits from %prun doc.
1122
1121
1123 * [patch 1/9] Fix typos here and there.
1122 * [patch 1/9] Fix typos here and there.
1124
1123
1125 2006-11-08 Ville Vainio <vivainio@gmail.com>
1124 2006-11-08 Ville Vainio <vivainio@gmail.com>
1126
1125
1127 * completer.py (attr_matches): catch all exceptions raised
1126 * completer.py (attr_matches): catch all exceptions raised
1128 by eval of expr with dots.
1127 by eval of expr with dots.
1129
1128
1130 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1129 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1131
1130
1132 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1131 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1133 input if it starts with whitespace. This allows you to paste
1132 input if it starts with whitespace. This allows you to paste
1134 indented input from any editor without manually having to type in
1133 indented input from any editor without manually having to type in
1135 the 'if 1:', which is convenient when working interactively.
1134 the 'if 1:', which is convenient when working interactively.
1136 Slightly modifed version of a patch by Bo Peng
1135 Slightly modifed version of a patch by Bo Peng
1137 <bpeng-AT-rice.edu>.
1136 <bpeng-AT-rice.edu>.
1138
1137
1139 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1138 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1140
1139
1141 * IPython/irunner.py (main): modified irunner so it automatically
1140 * IPython/irunner.py (main): modified irunner so it automatically
1142 recognizes the right runner to use based on the extension (.py for
1141 recognizes the right runner to use based on the extension (.py for
1143 python, .ipy for ipython and .sage for sage).
1142 python, .ipy for ipython and .sage for sage).
1144
1143
1145 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1144 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1146 visible in ipapi as ip.config(), to programatically control the
1145 visible in ipapi as ip.config(), to programatically control the
1147 internal rc object. There's an accompanying %config magic for
1146 internal rc object. There's an accompanying %config magic for
1148 interactive use, which has been enhanced to match the
1147 interactive use, which has been enhanced to match the
1149 funtionality in ipconfig.
1148 funtionality in ipconfig.
1150
1149
1151 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1150 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1152 so it's not just a toggle, it now takes an argument. Add support
1151 so it's not just a toggle, it now takes an argument. Add support
1153 for a customizable header when making system calls, as the new
1152 for a customizable header when making system calls, as the new
1154 system_header variable in the ipythonrc file.
1153 system_header variable in the ipythonrc file.
1155
1154
1156 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1155 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1157
1156
1158 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1157 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1159 generic functions (using Philip J. Eby's simplegeneric package).
1158 generic functions (using Philip J. Eby's simplegeneric package).
1160 This makes it possible to customize the display of third-party classes
1159 This makes it possible to customize the display of third-party classes
1161 without having to monkeypatch them. xiter() no longer supports a mode
1160 without having to monkeypatch them. xiter() no longer supports a mode
1162 argument and the XMode class has been removed. The same functionality can
1161 argument and the XMode class has been removed. The same functionality can
1163 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1162 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1164 One consequence of the switch to generic functions is that xrepr() and
1163 One consequence of the switch to generic functions is that xrepr() and
1165 xattrs() implementation must define the default value for the mode
1164 xattrs() implementation must define the default value for the mode
1166 argument themselves and xattrs() implementations must return real
1165 argument themselves and xattrs() implementations must return real
1167 descriptors.
1166 descriptors.
1168
1167
1169 * IPython/external: This new subpackage will contain all third-party
1168 * IPython/external: This new subpackage will contain all third-party
1170 packages that are bundled with IPython. (The first one is simplegeneric).
1169 packages that are bundled with IPython. (The first one is simplegeneric).
1171
1170
1172 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1171 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1173 directory which as been dropped in r1703.
1172 directory which as been dropped in r1703.
1174
1173
1175 * IPython/Extensions/ipipe.py (iless): Fixed.
1174 * IPython/Extensions/ipipe.py (iless): Fixed.
1176
1175
1177 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1176 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1178
1177
1179 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1178 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1180
1179
1181 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1180 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1182 handling in variable expansion so that shells and magics recognize
1181 handling in variable expansion so that shells and magics recognize
1183 function local scopes correctly. Bug reported by Brian.
1182 function local scopes correctly. Bug reported by Brian.
1184
1183
1185 * scripts/ipython: remove the very first entry in sys.path which
1184 * scripts/ipython: remove the very first entry in sys.path which
1186 Python auto-inserts for scripts, so that sys.path under IPython is
1185 Python auto-inserts for scripts, so that sys.path under IPython is
1187 as similar as possible to that under plain Python.
1186 as similar as possible to that under plain Python.
1188
1187
1189 * IPython/completer.py (IPCompleter.file_matches): Fix
1188 * IPython/completer.py (IPCompleter.file_matches): Fix
1190 tab-completion so that quotes are not closed unless the completion
1189 tab-completion so that quotes are not closed unless the completion
1191 is unambiguous. After a request by Stefan. Minor cleanups in
1190 is unambiguous. After a request by Stefan. Minor cleanups in
1192 ipy_stock_completers.
1191 ipy_stock_completers.
1193
1192
1194 2006-11-02 Ville Vainio <vivainio@gmail.com>
1193 2006-11-02 Ville Vainio <vivainio@gmail.com>
1195
1194
1196 * ipy_stock_completers.py: Add %run and %cd completers.
1195 * ipy_stock_completers.py: Add %run and %cd completers.
1197
1196
1198 * completer.py: Try running custom completer for both
1197 * completer.py: Try running custom completer for both
1199 "foo" and "%foo" if the command is just "foo". Ignore case
1198 "foo" and "%foo" if the command is just "foo". Ignore case
1200 when filtering possible completions.
1199 when filtering possible completions.
1201
1200
1202 * UserConfig/ipy_user_conf.py: install stock completers as default
1201 * UserConfig/ipy_user_conf.py: install stock completers as default
1203
1202
1204 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1203 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1205 simplified readline history save / restore through a wrapper
1204 simplified readline history save / restore through a wrapper
1206 function
1205 function
1207
1206
1208
1207
1209 2006-10-31 Ville Vainio <vivainio@gmail.com>
1208 2006-10-31 Ville Vainio <vivainio@gmail.com>
1210
1209
1211 * strdispatch.py, completer.py, ipy_stock_completers.py:
1210 * strdispatch.py, completer.py, ipy_stock_completers.py:
1212 Allow str_key ("command") in completer hooks. Implement
1211 Allow str_key ("command") in completer hooks. Implement
1213 trivial completer for 'import' (stdlib modules only). Rename
1212 trivial completer for 'import' (stdlib modules only). Rename
1214 ipy_linux_package_managers.py to ipy_stock_completers.py.
1213 ipy_linux_package_managers.py to ipy_stock_completers.py.
1215 SVN completer.
1214 SVN completer.
1216
1215
1217 * Extensions/ledit.py: %magic line editor for easily and
1216 * Extensions/ledit.py: %magic line editor for easily and
1218 incrementally manipulating lists of strings. The magic command
1217 incrementally manipulating lists of strings. The magic command
1219 name is %led.
1218 name is %led.
1220
1219
1221 2006-10-30 Ville Vainio <vivainio@gmail.com>
1220 2006-10-30 Ville Vainio <vivainio@gmail.com>
1222
1221
1223 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1222 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1224 Bernsteins's patches for pydb integration.
1223 Bernsteins's patches for pydb integration.
1225 http://bashdb.sourceforge.net/pydb/
1224 http://bashdb.sourceforge.net/pydb/
1226
1225
1227 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1226 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1228 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1227 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1229 custom completer hook to allow the users to implement their own
1228 custom completer hook to allow the users to implement their own
1230 completers. See ipy_linux_package_managers.py for example. The
1229 completers. See ipy_linux_package_managers.py for example. The
1231 hook name is 'complete_command'.
1230 hook name is 'complete_command'.
1232
1231
1233 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1232 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1234
1233
1235 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1234 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1236 Numeric leftovers.
1235 Numeric leftovers.
1237
1236
1238 * ipython.el (py-execute-region): apply Stefan's patch to fix
1237 * ipython.el (py-execute-region): apply Stefan's patch to fix
1239 garbled results if the python shell hasn't been previously started.
1238 garbled results if the python shell hasn't been previously started.
1240
1239
1241 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1240 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1242 pretty generic function and useful for other things.
1241 pretty generic function and useful for other things.
1243
1242
1244 * IPython/OInspect.py (getsource): Add customizable source
1243 * IPython/OInspect.py (getsource): Add customizable source
1245 extractor. After a request/patch form W. Stein (SAGE).
1244 extractor. After a request/patch form W. Stein (SAGE).
1246
1245
1247 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1246 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1248 window size to a more reasonable value from what pexpect does,
1247 window size to a more reasonable value from what pexpect does,
1249 since their choice causes wrapping bugs with long input lines.
1248 since their choice causes wrapping bugs with long input lines.
1250
1249
1251 2006-10-28 Ville Vainio <vivainio@gmail.com>
1250 2006-10-28 Ville Vainio <vivainio@gmail.com>
1252
1251
1253 * Magic.py (%run): Save and restore the readline history from
1252 * Magic.py (%run): Save and restore the readline history from
1254 file around %run commands to prevent side effects from
1253 file around %run commands to prevent side effects from
1255 %runned programs that might use readline (e.g. pydb).
1254 %runned programs that might use readline (e.g. pydb).
1256
1255
1257 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1256 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1258 invoking the pydb enhanced debugger.
1257 invoking the pydb enhanced debugger.
1259
1258
1260 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1259 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1261
1260
1262 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1261 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1263 call the base class method and propagate the return value to
1262 call the base class method and propagate the return value to
1264 ifile. This is now done by path itself.
1263 ifile. This is now done by path itself.
1265
1264
1266 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1265 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1267
1266
1268 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1267 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1269 api: set_crash_handler(), to expose the ability to change the
1268 api: set_crash_handler(), to expose the ability to change the
1270 internal crash handler.
1269 internal crash handler.
1271
1270
1272 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1271 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1273 the various parameters of the crash handler so that apps using
1272 the various parameters of the crash handler so that apps using
1274 IPython as their engine can customize crash handling. Ipmlemented
1273 IPython as their engine can customize crash handling. Ipmlemented
1275 at the request of SAGE.
1274 at the request of SAGE.
1276
1275
1277 2006-10-14 Ville Vainio <vivainio@gmail.com>
1276 2006-10-14 Ville Vainio <vivainio@gmail.com>
1278
1277
1279 * Magic.py, ipython.el: applied first "safe" part of Rocky
1278 * Magic.py, ipython.el: applied first "safe" part of Rocky
1280 Bernstein's patch set for pydb integration.
1279 Bernstein's patch set for pydb integration.
1281
1280
1282 * Magic.py (%unalias, %alias): %store'd aliases can now be
1281 * Magic.py (%unalias, %alias): %store'd aliases can now be
1283 removed with '%unalias'. %alias w/o args now shows most
1282 removed with '%unalias'. %alias w/o args now shows most
1284 interesting (stored / manually defined) aliases last
1283 interesting (stored / manually defined) aliases last
1285 where they catch the eye w/o scrolling.
1284 where they catch the eye w/o scrolling.
1286
1285
1287 * Magic.py (%rehashx), ext_rehashdir.py: files with
1286 * Magic.py (%rehashx), ext_rehashdir.py: files with
1288 'py' extension are always considered executable, even
1287 'py' extension are always considered executable, even
1289 when not in PATHEXT environment variable.
1288 when not in PATHEXT environment variable.
1290
1289
1291 2006-10-12 Ville Vainio <vivainio@gmail.com>
1290 2006-10-12 Ville Vainio <vivainio@gmail.com>
1292
1291
1293 * jobctrl.py: Add new "jobctrl" extension for spawning background
1292 * jobctrl.py: Add new "jobctrl" extension for spawning background
1294 processes with "&find /". 'import jobctrl' to try it out. Requires
1293 processes with "&find /". 'import jobctrl' to try it out. Requires
1295 'subprocess' module, standard in python 2.4+.
1294 'subprocess' module, standard in python 2.4+.
1296
1295
1297 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1296 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1298 so if foo -> bar and bar -> baz, then foo -> baz.
1297 so if foo -> bar and bar -> baz, then foo -> baz.
1299
1298
1300 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1299 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1301
1300
1302 * IPython/Magic.py (Magic.parse_options): add a new posix option
1301 * IPython/Magic.py (Magic.parse_options): add a new posix option
1303 to allow parsing of input args in magics that doesn't strip quotes
1302 to allow parsing of input args in magics that doesn't strip quotes
1304 (if posix=False). This also closes %timeit bug reported by
1303 (if posix=False). This also closes %timeit bug reported by
1305 Stefan.
1304 Stefan.
1306
1305
1307 2006-10-03 Ville Vainio <vivainio@gmail.com>
1306 2006-10-03 Ville Vainio <vivainio@gmail.com>
1308
1307
1309 * iplib.py (raw_input, interact): Return ValueError catching for
1308 * iplib.py (raw_input, interact): Return ValueError catching for
1310 raw_input. Fixes infinite loop for sys.stdin.close() or
1309 raw_input. Fixes infinite loop for sys.stdin.close() or
1311 sys.stdout.close().
1310 sys.stdout.close().
1312
1311
1313 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1312 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1314
1313
1315 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1314 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1316 to help in handling doctests. irunner is now pretty useful for
1315 to help in handling doctests. irunner is now pretty useful for
1317 running standalone scripts and simulate a full interactive session
1316 running standalone scripts and simulate a full interactive session
1318 in a format that can be then pasted as a doctest.
1317 in a format that can be then pasted as a doctest.
1319
1318
1320 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1319 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1321 on top of the default (useless) ones. This also fixes the nasty
1320 on top of the default (useless) ones. This also fixes the nasty
1322 way in which 2.5's Quitter() exits (reverted [1785]).
1321 way in which 2.5's Quitter() exits (reverted [1785]).
1323
1322
1324 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1323 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1325 2.5.
1324 2.5.
1326
1325
1327 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1326 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1328 color scheme is updated as well when color scheme is changed
1327 color scheme is updated as well when color scheme is changed
1329 interactively.
1328 interactively.
1330
1329
1331 2006-09-27 Ville Vainio <vivainio@gmail.com>
1330 2006-09-27 Ville Vainio <vivainio@gmail.com>
1332
1331
1333 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1332 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1334 infinite loop and just exit. It's a hack, but will do for a while.
1333 infinite loop and just exit. It's a hack, but will do for a while.
1335
1334
1336 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1335 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1337
1336
1338 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1337 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1339 the constructor, this makes it possible to get a list of only directories
1338 the constructor, this makes it possible to get a list of only directories
1340 or only files.
1339 or only files.
1341
1340
1342 2006-08-12 Ville Vainio <vivainio@gmail.com>
1341 2006-08-12 Ville Vainio <vivainio@gmail.com>
1343
1342
1344 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1343 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1345 they broke unittest
1344 they broke unittest
1346
1345
1347 2006-08-11 Ville Vainio <vivainio@gmail.com>
1346 2006-08-11 Ville Vainio <vivainio@gmail.com>
1348
1347
1349 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1348 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1350 by resolving issue properly, i.e. by inheriting FakeModule
1349 by resolving issue properly, i.e. by inheriting FakeModule
1351 from types.ModuleType. Pickling ipython interactive data
1350 from types.ModuleType. Pickling ipython interactive data
1352 should still work as usual (testing appreciated).
1351 should still work as usual (testing appreciated).
1353
1352
1354 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1353 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1355
1354
1356 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1355 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1357 running under python 2.3 with code from 2.4 to fix a bug with
1356 running under python 2.3 with code from 2.4 to fix a bug with
1358 help(). Reported by the Debian maintainers, Norbert Tretkowski
1357 help(). Reported by the Debian maintainers, Norbert Tretkowski
1359 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1358 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1360 <afayolle-AT-debian.org>.
1359 <afayolle-AT-debian.org>.
1361
1360
1362 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1361 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1363
1362
1364 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1363 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1365 (which was displaying "quit" twice).
1364 (which was displaying "quit" twice).
1366
1365
1367 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1366 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1368
1367
1369 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1368 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1370 the mode argument).
1369 the mode argument).
1371
1370
1372 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1371 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1373
1372
1374 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1373 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1375 not running under IPython.
1374 not running under IPython.
1376
1375
1377 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1376 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1378 and make it iterable (iterating over the attribute itself). Add two new
1377 and make it iterable (iterating over the attribute itself). Add two new
1379 magic strings for __xattrs__(): If the string starts with "-", the attribute
1378 magic strings for __xattrs__(): If the string starts with "-", the attribute
1380 will not be displayed in ibrowse's detail view (but it can still be
1379 will not be displayed in ibrowse's detail view (but it can still be
1381 iterated over). This makes it possible to add attributes that are large
1380 iterated over). This makes it possible to add attributes that are large
1382 lists or generator methods to the detail view. Replace magic attribute names
1381 lists or generator methods to the detail view. Replace magic attribute names
1383 and _attrname() and _getattr() with "descriptors": For each type of magic
1382 and _attrname() and _getattr() with "descriptors": For each type of magic
1384 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1383 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1385 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1384 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1386 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1385 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1387 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1386 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1388 are still supported.
1387 are still supported.
1389
1388
1390 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1389 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1391 fails in ibrowse.fetch(), the exception object is added as the last item
1390 fails in ibrowse.fetch(), the exception object is added as the last item
1392 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1391 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1393 a generator throws an exception midway through execution.
1392 a generator throws an exception midway through execution.
1394
1393
1395 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1394 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1396 encoding into methods.
1395 encoding into methods.
1397
1396
1398 2006-07-26 Ville Vainio <vivainio@gmail.com>
1397 2006-07-26 Ville Vainio <vivainio@gmail.com>
1399
1398
1400 * iplib.py: history now stores multiline input as single
1399 * iplib.py: history now stores multiline input as single
1401 history entries. Patch by Jorgen Cederlof.
1400 history entries. Patch by Jorgen Cederlof.
1402
1401
1403 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1402 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1404
1403
1405 * IPython/Extensions/ibrowse.py: Make cursor visible over
1404 * IPython/Extensions/ibrowse.py: Make cursor visible over
1406 non existing attributes.
1405 non existing attributes.
1407
1406
1408 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1407 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1409
1408
1410 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1409 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1411 error output of the running command doesn't mess up the screen.
1410 error output of the running command doesn't mess up the screen.
1412
1411
1413 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1412 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1414
1413
1415 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1414 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1416 argument. This sorts the items themselves.
1415 argument. This sorts the items themselves.
1417
1416
1418 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1417 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1419
1418
1420 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1419 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1421 Compile expression strings into code objects. This should speed
1420 Compile expression strings into code objects. This should speed
1422 up ifilter and friends somewhat.
1421 up ifilter and friends somewhat.
1423
1422
1424 2006-07-08 Ville Vainio <vivainio@gmail.com>
1423 2006-07-08 Ville Vainio <vivainio@gmail.com>
1425
1424
1426 * Magic.py: %cpaste now strips > from the beginning of lines
1425 * Magic.py: %cpaste now strips > from the beginning of lines
1427 to ease pasting quoted code from emails. Contributed by
1426 to ease pasting quoted code from emails. Contributed by
1428 Stefan van der Walt.
1427 Stefan van der Walt.
1429
1428
1430 2006-06-29 Ville Vainio <vivainio@gmail.com>
1429 2006-06-29 Ville Vainio <vivainio@gmail.com>
1431
1430
1432 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1431 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1433 mode, patch contributed by Darren Dale. NEEDS TESTING!
1432 mode, patch contributed by Darren Dale. NEEDS TESTING!
1434
1433
1435 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1434 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1436
1435
1437 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1436 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1438 a blue background. Fix fetching new display rows when the browser
1437 a blue background. Fix fetching new display rows when the browser
1439 scrolls more than a screenful (e.g. by using the goto command).
1438 scrolls more than a screenful (e.g. by using the goto command).
1440
1439
1441 2006-06-27 Ville Vainio <vivainio@gmail.com>
1440 2006-06-27 Ville Vainio <vivainio@gmail.com>
1442
1441
1443 * Magic.py (_inspect, _ofind) Apply David Huard's
1442 * Magic.py (_inspect, _ofind) Apply David Huard's
1444 patch for displaying the correct docstring for 'property'
1443 patch for displaying the correct docstring for 'property'
1445 attributes.
1444 attributes.
1446
1445
1447 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1446 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1448
1447
1449 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1448 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1450 commands into the methods implementing them.
1449 commands into the methods implementing them.
1451
1450
1452 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1451 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1453
1452
1454 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1453 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1455 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1454 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1456 autoindent support was authored by Jin Liu.
1455 autoindent support was authored by Jin Liu.
1457
1456
1458 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1457 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1459
1458
1460 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1459 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1461 for keymaps with a custom class that simplifies handling.
1460 for keymaps with a custom class that simplifies handling.
1462
1461
1463 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1462 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1464
1463
1465 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1464 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1466 resizing. This requires Python 2.5 to work.
1465 resizing. This requires Python 2.5 to work.
1467
1466
1468 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1467 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1469
1468
1470 * IPython/Extensions/ibrowse.py: Add two new commands to
1469 * IPython/Extensions/ibrowse.py: Add two new commands to
1471 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1470 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1472 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1471 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1473 attributes again. Remapped the help command to "?". Display
1472 attributes again. Remapped the help command to "?". Display
1474 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1473 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1475 as keys for the "home" and "end" commands. Add three new commands
1474 as keys for the "home" and "end" commands. Add three new commands
1476 to the input mode for "find" and friends: "delend" (CTRL-K)
1475 to the input mode for "find" and friends: "delend" (CTRL-K)
1477 deletes to the end of line. "incsearchup" searches upwards in the
1476 deletes to the end of line. "incsearchup" searches upwards in the
1478 command history for an input that starts with the text before the cursor.
1477 command history for an input that starts with the text before the cursor.
1479 "incsearchdown" does the same downwards. Removed a bogus mapping of
1478 "incsearchdown" does the same downwards. Removed a bogus mapping of
1480 the x key to "delete".
1479 the x key to "delete".
1481
1480
1482 2006-06-15 Ville Vainio <vivainio@gmail.com>
1481 2006-06-15 Ville Vainio <vivainio@gmail.com>
1483
1482
1484 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1483 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1485 used to create prompts dynamically, instead of the "old" way of
1484 used to create prompts dynamically, instead of the "old" way of
1486 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1485 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1487 way still works (it's invoked by the default hook), of course.
1486 way still works (it's invoked by the default hook), of course.
1488
1487
1489 * Prompts.py: added generate_output_prompt hook for altering output
1488 * Prompts.py: added generate_output_prompt hook for altering output
1490 prompt
1489 prompt
1491
1490
1492 * Release.py: Changed version string to 0.7.3.svn.
1491 * Release.py: Changed version string to 0.7.3.svn.
1493
1492
1494 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1493 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1495
1494
1496 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1495 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1497 the call to fetch() always tries to fetch enough data for at least one
1496 the call to fetch() always tries to fetch enough data for at least one
1498 full screen. This makes it possible to simply call moveto(0,0,True) in
1497 full screen. This makes it possible to simply call moveto(0,0,True) in
1499 the constructor. Fix typos and removed the obsolete goto attribute.
1498 the constructor. Fix typos and removed the obsolete goto attribute.
1500
1499
1501 2006-06-12 Ville Vainio <vivainio@gmail.com>
1500 2006-06-12 Ville Vainio <vivainio@gmail.com>
1502
1501
1503 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1502 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1504 allowing $variable interpolation within multiline statements,
1503 allowing $variable interpolation within multiline statements,
1505 though so far only with "sh" profile for a testing period.
1504 though so far only with "sh" profile for a testing period.
1506 The patch also enables splitting long commands with \ but it
1505 The patch also enables splitting long commands with \ but it
1507 doesn't work properly yet.
1506 doesn't work properly yet.
1508
1507
1509 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1508 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1510
1509
1511 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1510 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1512 input history and the position of the cursor in the input history for
1511 input history and the position of the cursor in the input history for
1513 the find, findbackwards and goto command.
1512 the find, findbackwards and goto command.
1514
1513
1515 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1514 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1516
1515
1517 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1516 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1518 implements the basic functionality of browser commands that require
1517 implements the basic functionality of browser commands that require
1519 input. Reimplement the goto, find and findbackwards commands as
1518 input. Reimplement the goto, find and findbackwards commands as
1520 subclasses of _CommandInput. Add an input history and keymaps to those
1519 subclasses of _CommandInput. Add an input history and keymaps to those
1521 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1520 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1522 execute commands.
1521 execute commands.
1523
1522
1524 2006-06-07 Ville Vainio <vivainio@gmail.com>
1523 2006-06-07 Ville Vainio <vivainio@gmail.com>
1525
1524
1526 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1525 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1527 running the batch files instead of leaving the session open.
1526 running the batch files instead of leaving the session open.
1528
1527
1529 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1528 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1530
1529
1531 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1530 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1532 the original fix was incomplete. Patch submitted by W. Maier.
1531 the original fix was incomplete. Patch submitted by W. Maier.
1533
1532
1534 2006-06-07 Ville Vainio <vivainio@gmail.com>
1533 2006-06-07 Ville Vainio <vivainio@gmail.com>
1535
1534
1536 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1535 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1537 Confirmation prompts can be supressed by 'quiet' option.
1536 Confirmation prompts can be supressed by 'quiet' option.
1538 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1537 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1539
1538
1540 2006-06-06 *** Released version 0.7.2
1539 2006-06-06 *** Released version 0.7.2
1541
1540
1542 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1541 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1543
1542
1544 * IPython/Release.py (version): Made 0.7.2 final for release.
1543 * IPython/Release.py (version): Made 0.7.2 final for release.
1545 Repo tagged and release cut.
1544 Repo tagged and release cut.
1546
1545
1547 2006-06-05 Ville Vainio <vivainio@gmail.com>
1546 2006-06-05 Ville Vainio <vivainio@gmail.com>
1548
1547
1549 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1548 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1550 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1549 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1551
1550
1552 * upgrade_dir.py: try import 'path' module a bit harder
1551 * upgrade_dir.py: try import 'path' module a bit harder
1553 (for %upgrade)
1552 (for %upgrade)
1554
1553
1555 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1554 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1556
1555
1557 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1556 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1558 instead of looping 20 times.
1557 instead of looping 20 times.
1559
1558
1560 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1559 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1561 correctly at initialization time. Bug reported by Krishna Mohan
1560 correctly at initialization time. Bug reported by Krishna Mohan
1562 Gundu <gkmohan-AT-gmail.com> on the user list.
1561 Gundu <gkmohan-AT-gmail.com> on the user list.
1563
1562
1564 * IPython/Release.py (version): Mark 0.7.2 version to start
1563 * IPython/Release.py (version): Mark 0.7.2 version to start
1565 testing for release on 06/06.
1564 testing for release on 06/06.
1566
1565
1567 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1566 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1568
1567
1569 * scripts/irunner: thin script interface so users don't have to
1568 * scripts/irunner: thin script interface so users don't have to
1570 find the module and call it as an executable, since modules rarely
1569 find the module and call it as an executable, since modules rarely
1571 live in people's PATH.
1570 live in people's PATH.
1572
1571
1573 * IPython/irunner.py (InteractiveRunner.__init__): added
1572 * IPython/irunner.py (InteractiveRunner.__init__): added
1574 delaybeforesend attribute to control delays with newer versions of
1573 delaybeforesend attribute to control delays with newer versions of
1575 pexpect. Thanks to detailed help from pexpect's author, Noah
1574 pexpect. Thanks to detailed help from pexpect's author, Noah
1576 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1575 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1577 correctly (it works in NoColor mode).
1576 correctly (it works in NoColor mode).
1578
1577
1579 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1578 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1580 SAGE list, from improper log() calls.
1579 SAGE list, from improper log() calls.
1581
1580
1582 2006-05-31 Ville Vainio <vivainio@gmail.com>
1581 2006-05-31 Ville Vainio <vivainio@gmail.com>
1583
1582
1584 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1583 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1585 with args in parens to work correctly with dirs that have spaces.
1584 with args in parens to work correctly with dirs that have spaces.
1586
1585
1587 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1586 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1588
1587
1589 * IPython/Logger.py (Logger.logstart): add option to log raw input
1588 * IPython/Logger.py (Logger.logstart): add option to log raw input
1590 instead of the processed one. A -r flag was added to the
1589 instead of the processed one. A -r flag was added to the
1591 %logstart magic used for controlling logging.
1590 %logstart magic used for controlling logging.
1592
1591
1593 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1592 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1594
1593
1595 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1594 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1596 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1595 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1597 recognize the option. After a bug report by Will Maier. This
1596 recognize the option. After a bug report by Will Maier. This
1598 closes #64 (will do it after confirmation from W. Maier).
1597 closes #64 (will do it after confirmation from W. Maier).
1599
1598
1600 * IPython/irunner.py: New module to run scripts as if manually
1599 * IPython/irunner.py: New module to run scripts as if manually
1601 typed into an interactive environment, based on pexpect. After a
1600 typed into an interactive environment, based on pexpect. After a
1602 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1601 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1603 ipython-user list. Simple unittests in the tests/ directory.
1602 ipython-user list. Simple unittests in the tests/ directory.
1604
1603
1605 * tools/release: add Will Maier, OpenBSD port maintainer, to
1604 * tools/release: add Will Maier, OpenBSD port maintainer, to
1606 recepients list. We are now officially part of the OpenBSD ports:
1605 recepients list. We are now officially part of the OpenBSD ports:
1607 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1606 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1608 work.
1607 work.
1609
1608
1610 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1609 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1611
1610
1612 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1611 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1613 so that it doesn't break tkinter apps.
1612 so that it doesn't break tkinter apps.
1614
1613
1615 * IPython/iplib.py (_prefilter): fix bug where aliases would
1614 * IPython/iplib.py (_prefilter): fix bug where aliases would
1616 shadow variables when autocall was fully off. Reported by SAGE
1615 shadow variables when autocall was fully off. Reported by SAGE
1617 author William Stein.
1616 author William Stein.
1618
1617
1619 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1618 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1620 at what detail level strings are computed when foo? is requested.
1619 at what detail level strings are computed when foo? is requested.
1621 This allows users to ask for example that the string form of an
1620 This allows users to ask for example that the string form of an
1622 object is only computed when foo?? is called, or even never, by
1621 object is only computed when foo?? is called, or even never, by
1623 setting the object_info_string_level >= 2 in the configuration
1622 setting the object_info_string_level >= 2 in the configuration
1624 file. This new option has been added and documented. After a
1623 file. This new option has been added and documented. After a
1625 request by SAGE to be able to control the printing of very large
1624 request by SAGE to be able to control the printing of very large
1626 objects more easily.
1625 objects more easily.
1627
1626
1628 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1627 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1629
1628
1630 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1629 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1631 from sys.argv, to be 100% consistent with how Python itself works
1630 from sys.argv, to be 100% consistent with how Python itself works
1632 (as seen for example with python -i file.py). After a bug report
1631 (as seen for example with python -i file.py). After a bug report
1633 by Jeffrey Collins.
1632 by Jeffrey Collins.
1634
1633
1635 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1634 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1636 nasty bug which was preventing custom namespaces with -pylab,
1635 nasty bug which was preventing custom namespaces with -pylab,
1637 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1636 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1638 compatibility (long gone from mpl).
1637 compatibility (long gone from mpl).
1639
1638
1640 * IPython/ipapi.py (make_session): name change: create->make. We
1639 * IPython/ipapi.py (make_session): name change: create->make. We
1641 use make in other places (ipmaker,...), it's shorter and easier to
1640 use make in other places (ipmaker,...), it's shorter and easier to
1642 type and say, etc. I'm trying to clean things before 0.7.2 so
1641 type and say, etc. I'm trying to clean things before 0.7.2 so
1643 that I can keep things stable wrt to ipapi in the chainsaw branch.
1642 that I can keep things stable wrt to ipapi in the chainsaw branch.
1644
1643
1645 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1644 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1646 python-mode recognizes our debugger mode. Add support for
1645 python-mode recognizes our debugger mode. Add support for
1647 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1646 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1648 <m.liu.jin-AT-gmail.com> originally written by
1647 <m.liu.jin-AT-gmail.com> originally written by
1649 doxgen-AT-newsmth.net (with minor modifications for xemacs
1648 doxgen-AT-newsmth.net (with minor modifications for xemacs
1650 compatibility)
1649 compatibility)
1651
1650
1652 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1651 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1653 tracebacks when walking the stack so that the stack tracking system
1652 tracebacks when walking the stack so that the stack tracking system
1654 in emacs' python-mode can identify the frames correctly.
1653 in emacs' python-mode can identify the frames correctly.
1655
1654
1656 * IPython/ipmaker.py (make_IPython): make the internal (and
1655 * IPython/ipmaker.py (make_IPython): make the internal (and
1657 default config) autoedit_syntax value false by default. Too many
1656 default config) autoedit_syntax value false by default. Too many
1658 users have complained to me (both on and off-list) about problems
1657 users have complained to me (both on and off-list) about problems
1659 with this option being on by default, so I'm making it default to
1658 with this option being on by default, so I'm making it default to
1660 off. It can still be enabled by anyone via the usual mechanisms.
1659 off. It can still be enabled by anyone via the usual mechanisms.
1661
1660
1662 * IPython/completer.py (Completer.attr_matches): add support for
1661 * IPython/completer.py (Completer.attr_matches): add support for
1663 PyCrust-style _getAttributeNames magic method. Patch contributed
1662 PyCrust-style _getAttributeNames magic method. Patch contributed
1664 by <mscott-AT-goldenspud.com>. Closes #50.
1663 by <mscott-AT-goldenspud.com>. Closes #50.
1665
1664
1666 * IPython/iplib.py (InteractiveShell.__init__): remove the
1665 * IPython/iplib.py (InteractiveShell.__init__): remove the
1667 deletion of exit/quit from __builtin__, which can break
1666 deletion of exit/quit from __builtin__, which can break
1668 third-party tools like the Zope debugging console. The
1667 third-party tools like the Zope debugging console. The
1669 %exit/%quit magics remain. In general, it's probably a good idea
1668 %exit/%quit magics remain. In general, it's probably a good idea
1670 not to delete anything from __builtin__, since we never know what
1669 not to delete anything from __builtin__, since we never know what
1671 that will break. In any case, python now (for 2.5) will support
1670 that will break. In any case, python now (for 2.5) will support
1672 'real' exit/quit, so this issue is moot. Closes #55.
1671 'real' exit/quit, so this issue is moot. Closes #55.
1673
1672
1674 * IPython/genutils.py (with_obj): rename the 'with' function to
1673 * IPython/genutils.py (with_obj): rename the 'with' function to
1675 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1674 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1676 becomes a language keyword. Closes #53.
1675 becomes a language keyword. Closes #53.
1677
1676
1678 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1677 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1679 __file__ attribute to this so it fools more things into thinking
1678 __file__ attribute to this so it fools more things into thinking
1680 it is a real module. Closes #59.
1679 it is a real module. Closes #59.
1681
1680
1682 * IPython/Magic.py (magic_edit): add -n option to open the editor
1681 * IPython/Magic.py (magic_edit): add -n option to open the editor
1683 at a specific line number. After a patch by Stefan van der Walt.
1682 at a specific line number. After a patch by Stefan van der Walt.
1684
1683
1685 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1684 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1686
1685
1687 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1686 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1688 reason the file could not be opened. After automatic crash
1687 reason the file could not be opened. After automatic crash
1689 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1688 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1690 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1689 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1691 (_should_recompile): Don't fire editor if using %bg, since there
1690 (_should_recompile): Don't fire editor if using %bg, since there
1692 is no file in the first place. From the same report as above.
1691 is no file in the first place. From the same report as above.
1693 (raw_input): protect against faulty third-party prefilters. After
1692 (raw_input): protect against faulty third-party prefilters. After
1694 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1693 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1695 while running under SAGE.
1694 while running under SAGE.
1696
1695
1697 2006-05-23 Ville Vainio <vivainio@gmail.com>
1696 2006-05-23 Ville Vainio <vivainio@gmail.com>
1698
1697
1699 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1698 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1700 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1699 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1701 now returns None (again), unless dummy is specifically allowed by
1700 now returns None (again), unless dummy is specifically allowed by
1702 ipapi.get(allow_dummy=True).
1701 ipapi.get(allow_dummy=True).
1703
1702
1704 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1703 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1705
1704
1706 * IPython: remove all 2.2-compatibility objects and hacks from
1705 * IPython: remove all 2.2-compatibility objects and hacks from
1707 everywhere, since we only support 2.3 at this point. Docs
1706 everywhere, since we only support 2.3 at this point. Docs
1708 updated.
1707 updated.
1709
1708
1710 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1709 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1711 Anything requiring extra validation can be turned into a Python
1710 Anything requiring extra validation can be turned into a Python
1712 property in the future. I used a property for the db one b/c
1711 property in the future. I used a property for the db one b/c
1713 there was a nasty circularity problem with the initialization
1712 there was a nasty circularity problem with the initialization
1714 order, which right now I don't have time to clean up.
1713 order, which right now I don't have time to clean up.
1715
1714
1716 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1715 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1717 another locking bug reported by Jorgen. I'm not 100% sure though,
1716 another locking bug reported by Jorgen. I'm not 100% sure though,
1718 so more testing is needed...
1717 so more testing is needed...
1719
1718
1720 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1719 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1721
1720
1722 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1721 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1723 local variables from any routine in user code (typically executed
1722 local variables from any routine in user code (typically executed
1724 with %run) directly into the interactive namespace. Very useful
1723 with %run) directly into the interactive namespace. Very useful
1725 when doing complex debugging.
1724 when doing complex debugging.
1726 (IPythonNotRunning): Changed the default None object to a dummy
1725 (IPythonNotRunning): Changed the default None object to a dummy
1727 whose attributes can be queried as well as called without
1726 whose attributes can be queried as well as called without
1728 exploding, to ease writing code which works transparently both in
1727 exploding, to ease writing code which works transparently both in
1729 and out of ipython and uses some of this API.
1728 and out of ipython and uses some of this API.
1730
1729
1731 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1730 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1732
1731
1733 * IPython/hooks.py (result_display): Fix the fact that our display
1732 * IPython/hooks.py (result_display): Fix the fact that our display
1734 hook was using str() instead of repr(), as the default python
1733 hook was using str() instead of repr(), as the default python
1735 console does. This had gone unnoticed b/c it only happened if
1734 console does. This had gone unnoticed b/c it only happened if
1736 %Pprint was off, but the inconsistency was there.
1735 %Pprint was off, but the inconsistency was there.
1737
1736
1738 2006-05-15 Ville Vainio <vivainio@gmail.com>
1737 2006-05-15 Ville Vainio <vivainio@gmail.com>
1739
1738
1740 * Oinspect.py: Only show docstring for nonexisting/binary files
1739 * Oinspect.py: Only show docstring for nonexisting/binary files
1741 when doing object??, closing ticket #62
1740 when doing object??, closing ticket #62
1742
1741
1743 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1742 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1744
1743
1745 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1744 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1746 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1745 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1747 was being released in a routine which hadn't checked if it had
1746 was being released in a routine which hadn't checked if it had
1748 been the one to acquire it.
1747 been the one to acquire it.
1749
1748
1750 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1749 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1751
1750
1752 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1751 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1753
1752
1754 2006-04-11 Ville Vainio <vivainio@gmail.com>
1753 2006-04-11 Ville Vainio <vivainio@gmail.com>
1755
1754
1756 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1755 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1757 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1756 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1758 prefilters, allowing stuff like magics and aliases in the file.
1757 prefilters, allowing stuff like magics and aliases in the file.
1759
1758
1760 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1759 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1761 added. Supported now are "%clear in" and "%clear out" (clear input and
1760 added. Supported now are "%clear in" and "%clear out" (clear input and
1762 output history, respectively). Also fixed CachedOutput.flush to
1761 output history, respectively). Also fixed CachedOutput.flush to
1763 properly flush the output cache.
1762 properly flush the output cache.
1764
1763
1765 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1764 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1766 half-success (and fail explicitly).
1765 half-success (and fail explicitly).
1767
1766
1768 2006-03-28 Ville Vainio <vivainio@gmail.com>
1767 2006-03-28 Ville Vainio <vivainio@gmail.com>
1769
1768
1770 * iplib.py: Fix quoting of aliases so that only argless ones
1769 * iplib.py: Fix quoting of aliases so that only argless ones
1771 are quoted
1770 are quoted
1772
1771
1773 2006-03-28 Ville Vainio <vivainio@gmail.com>
1772 2006-03-28 Ville Vainio <vivainio@gmail.com>
1774
1773
1775 * iplib.py: Quote aliases with spaces in the name.
1774 * iplib.py: Quote aliases with spaces in the name.
1776 "c:\program files\blah\bin" is now legal alias target.
1775 "c:\program files\blah\bin" is now legal alias target.
1777
1776
1778 * ext_rehashdir.py: Space no longer allowed as arg
1777 * ext_rehashdir.py: Space no longer allowed as arg
1779 separator, since space is legal in path names.
1778 separator, since space is legal in path names.
1780
1779
1781 2006-03-16 Ville Vainio <vivainio@gmail.com>
1780 2006-03-16 Ville Vainio <vivainio@gmail.com>
1782
1781
1783 * upgrade_dir.py: Take path.py from Extensions, correcting
1782 * upgrade_dir.py: Take path.py from Extensions, correcting
1784 %upgrade magic
1783 %upgrade magic
1785
1784
1786 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1785 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1787
1786
1788 * hooks.py: Only enclose editor binary in quotes if legal and
1787 * hooks.py: Only enclose editor binary in quotes if legal and
1789 necessary (space in the name, and is an existing file). Fixes a bug
1788 necessary (space in the name, and is an existing file). Fixes a bug
1790 reported by Zachary Pincus.
1789 reported by Zachary Pincus.
1791
1790
1792 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1791 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1793
1792
1794 * Manual: thanks to a tip on proper color handling for Emacs, by
1793 * Manual: thanks to a tip on proper color handling for Emacs, by
1795 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1794 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1796
1795
1797 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1796 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1798 by applying the provided patch. Thanks to Liu Jin
1797 by applying the provided patch. Thanks to Liu Jin
1799 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1798 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1800 XEmacs/Linux, I'm trusting the submitter that it actually helps
1799 XEmacs/Linux, I'm trusting the submitter that it actually helps
1801 under win32/GNU Emacs. Will revisit if any problems are reported.
1800 under win32/GNU Emacs. Will revisit if any problems are reported.
1802
1801
1803 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1802 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1804
1803
1805 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1804 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1806 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1805 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1807
1806
1808 2006-03-12 Ville Vainio <vivainio@gmail.com>
1807 2006-03-12 Ville Vainio <vivainio@gmail.com>
1809
1808
1810 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1809 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1811 Torsten Marek.
1810 Torsten Marek.
1812
1811
1813 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1812 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1814
1813
1815 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1814 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1816 line ranges works again.
1815 line ranges works again.
1817
1816
1818 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1817 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1819
1818
1820 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1819 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1821 and friends, after a discussion with Zach Pincus on ipython-user.
1820 and friends, after a discussion with Zach Pincus on ipython-user.
1822 I'm not 100% sure, but after thinking about it quite a bit, it may
1821 I'm not 100% sure, but after thinking about it quite a bit, it may
1823 be OK. Testing with the multithreaded shells didn't reveal any
1822 be OK. Testing with the multithreaded shells didn't reveal any
1824 problems, but let's keep an eye out.
1823 problems, but let's keep an eye out.
1825
1824
1826 In the process, I fixed a few things which were calling
1825 In the process, I fixed a few things which were calling
1827 self.InteractiveTB() directly (like safe_execfile), which is a
1826 self.InteractiveTB() directly (like safe_execfile), which is a
1828 mistake: ALL exception reporting should be done by calling
1827 mistake: ALL exception reporting should be done by calling
1829 self.showtraceback(), which handles state and tab-completion and
1828 self.showtraceback(), which handles state and tab-completion and
1830 more.
1829 more.
1831
1830
1832 2006-03-01 Ville Vainio <vivainio@gmail.com>
1831 2006-03-01 Ville Vainio <vivainio@gmail.com>
1833
1832
1834 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1833 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1835 To use, do "from ipipe import *".
1834 To use, do "from ipipe import *".
1836
1835
1837 2006-02-24 Ville Vainio <vivainio@gmail.com>
1836 2006-02-24 Ville Vainio <vivainio@gmail.com>
1838
1837
1839 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1838 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1840 "cleanly" and safely than the older upgrade mechanism.
1839 "cleanly" and safely than the older upgrade mechanism.
1841
1840
1842 2006-02-21 Ville Vainio <vivainio@gmail.com>
1841 2006-02-21 Ville Vainio <vivainio@gmail.com>
1843
1842
1844 * Magic.py: %save works again.
1843 * Magic.py: %save works again.
1845
1844
1846 2006-02-15 Ville Vainio <vivainio@gmail.com>
1845 2006-02-15 Ville Vainio <vivainio@gmail.com>
1847
1846
1848 * Magic.py: %Pprint works again
1847 * Magic.py: %Pprint works again
1849
1848
1850 * Extensions/ipy_sane_defaults.py: Provide everything provided
1849 * Extensions/ipy_sane_defaults.py: Provide everything provided
1851 in default ipythonrc, to make it possible to have a completely empty
1850 in default ipythonrc, to make it possible to have a completely empty
1852 ipythonrc (and thus completely rc-file free configuration)
1851 ipythonrc (and thus completely rc-file free configuration)
1853
1852
1854 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1853 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1855
1854
1856 * IPython/hooks.py (editor): quote the call to the editor command,
1855 * IPython/hooks.py (editor): quote the call to the editor command,
1857 to allow commands with spaces in them. Problem noted by watching
1856 to allow commands with spaces in them. Problem noted by watching
1858 Ian Oswald's video about textpad under win32 at
1857 Ian Oswald's video about textpad under win32 at
1859 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1858 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1860
1859
1861 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1860 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1862 describing magics (we haven't used @ for a loong time).
1861 describing magics (we haven't used @ for a loong time).
1863
1862
1864 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1863 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1865 contributed by marienz to close
1864 contributed by marienz to close
1866 http://www.scipy.net/roundup/ipython/issue53.
1865 http://www.scipy.net/roundup/ipython/issue53.
1867
1866
1868 2006-02-10 Ville Vainio <vivainio@gmail.com>
1867 2006-02-10 Ville Vainio <vivainio@gmail.com>
1869
1868
1870 * genutils.py: getoutput now works in win32 too
1869 * genutils.py: getoutput now works in win32 too
1871
1870
1872 * completer.py: alias and magic completion only invoked
1871 * completer.py: alias and magic completion only invoked
1873 at the first "item" in the line, to avoid "cd %store"
1872 at the first "item" in the line, to avoid "cd %store"
1874 nonsense.
1873 nonsense.
1875
1874
1876 2006-02-09 Ville Vainio <vivainio@gmail.com>
1875 2006-02-09 Ville Vainio <vivainio@gmail.com>
1877
1876
1878 * test/*: Added a unit testing framework (finally).
1877 * test/*: Added a unit testing framework (finally).
1879 '%run runtests.py' to run test_*.
1878 '%run runtests.py' to run test_*.
1880
1879
1881 * ipapi.py: Exposed runlines and set_custom_exc
1880 * ipapi.py: Exposed runlines and set_custom_exc
1882
1881
1883 2006-02-07 Ville Vainio <vivainio@gmail.com>
1882 2006-02-07 Ville Vainio <vivainio@gmail.com>
1884
1883
1885 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1884 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1886 instead use "f(1 2)" as before.
1885 instead use "f(1 2)" as before.
1887
1886
1888 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1887 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1889
1888
1890 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1889 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1891 facilities, for demos processed by the IPython input filter
1890 facilities, for demos processed by the IPython input filter
1892 (IPythonDemo), and for running a script one-line-at-a-time as a
1891 (IPythonDemo), and for running a script one-line-at-a-time as a
1893 demo, both for pure Python (LineDemo) and for IPython-processed
1892 demo, both for pure Python (LineDemo) and for IPython-processed
1894 input (IPythonLineDemo). After a request by Dave Kohel, from the
1893 input (IPythonLineDemo). After a request by Dave Kohel, from the
1895 SAGE team.
1894 SAGE team.
1896 (Demo.edit): added an edit() method to the demo objects, to edit
1895 (Demo.edit): added an edit() method to the demo objects, to edit
1897 the in-memory copy of the last executed block.
1896 the in-memory copy of the last executed block.
1898
1897
1899 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1898 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1900 processing to %edit, %macro and %save. These commands can now be
1899 processing to %edit, %macro and %save. These commands can now be
1901 invoked on the unprocessed input as it was typed by the user
1900 invoked on the unprocessed input as it was typed by the user
1902 (without any prefilters applied). After requests by the SAGE team
1901 (without any prefilters applied). After requests by the SAGE team
1903 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1902 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1904
1903
1905 2006-02-01 Ville Vainio <vivainio@gmail.com>
1904 2006-02-01 Ville Vainio <vivainio@gmail.com>
1906
1905
1907 * setup.py, eggsetup.py: easy_install ipython==dev works
1906 * setup.py, eggsetup.py: easy_install ipython==dev works
1908 correctly now (on Linux)
1907 correctly now (on Linux)
1909
1908
1910 * ipy_user_conf,ipmaker: user config changes, removed spurious
1909 * ipy_user_conf,ipmaker: user config changes, removed spurious
1911 warnings
1910 warnings
1912
1911
1913 * iplib: if rc.banner is string, use it as is.
1912 * iplib: if rc.banner is string, use it as is.
1914
1913
1915 * Magic: %pycat accepts a string argument and pages it's contents.
1914 * Magic: %pycat accepts a string argument and pages it's contents.
1916
1915
1917
1916
1918 2006-01-30 Ville Vainio <vivainio@gmail.com>
1917 2006-01-30 Ville Vainio <vivainio@gmail.com>
1919
1918
1920 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1919 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1921 Now %store and bookmarks work through PickleShare, meaning that
1920 Now %store and bookmarks work through PickleShare, meaning that
1922 concurrent access is possible and all ipython sessions see the
1921 concurrent access is possible and all ipython sessions see the
1923 same database situation all the time, instead of snapshot of
1922 same database situation all the time, instead of snapshot of
1924 the situation when the session was started. Hence, %bookmark
1923 the situation when the session was started. Hence, %bookmark
1925 results are immediately accessible from othes sessions. The database
1924 results are immediately accessible from othes sessions. The database
1926 is also available for use by user extensions. See:
1925 is also available for use by user extensions. See:
1927 http://www.python.org/pypi/pickleshare
1926 http://www.python.org/pypi/pickleshare
1928
1927
1929 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1928 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1930
1929
1931 * aliases can now be %store'd
1930 * aliases can now be %store'd
1932
1931
1933 * path.py moved to Extensions so that pickleshare does not need
1932 * path.py moved to Extensions so that pickleshare does not need
1934 IPython-specific import. Extensions added to pythonpath right
1933 IPython-specific import. Extensions added to pythonpath right
1935 at __init__.
1934 at __init__.
1936
1935
1937 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1936 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1938 called with _ip.system and the pre-transformed command string.
1937 called with _ip.system and the pre-transformed command string.
1939
1938
1940 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1939 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1941
1940
1942 * IPython/iplib.py (interact): Fix that we were not catching
1941 * IPython/iplib.py (interact): Fix that we were not catching
1943 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1942 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1944 logic here had to change, but it's fixed now.
1943 logic here had to change, but it's fixed now.
1945
1944
1946 2006-01-29 Ville Vainio <vivainio@gmail.com>
1945 2006-01-29 Ville Vainio <vivainio@gmail.com>
1947
1946
1948 * iplib.py: Try to import pyreadline on Windows.
1947 * iplib.py: Try to import pyreadline on Windows.
1949
1948
1950 2006-01-27 Ville Vainio <vivainio@gmail.com>
1949 2006-01-27 Ville Vainio <vivainio@gmail.com>
1951
1950
1952 * iplib.py: Expose ipapi as _ip in builtin namespace.
1951 * iplib.py: Expose ipapi as _ip in builtin namespace.
1953 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1952 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1954 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1953 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1955 syntax now produce _ip.* variant of the commands.
1954 syntax now produce _ip.* variant of the commands.
1956
1955
1957 * "_ip.options().autoedit_syntax = 2" automatically throws
1956 * "_ip.options().autoedit_syntax = 2" automatically throws
1958 user to editor for syntax error correction without prompting.
1957 user to editor for syntax error correction without prompting.
1959
1958
1960 2006-01-27 Ville Vainio <vivainio@gmail.com>
1959 2006-01-27 Ville Vainio <vivainio@gmail.com>
1961
1960
1962 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1961 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1963 'ipython' at argv[0]) executed through command line.
1962 'ipython' at argv[0]) executed through command line.
1964 NOTE: this DEPRECATES calling ipython with multiple scripts
1963 NOTE: this DEPRECATES calling ipython with multiple scripts
1965 ("ipython a.py b.py c.py")
1964 ("ipython a.py b.py c.py")
1966
1965
1967 * iplib.py, hooks.py: Added configurable input prefilter,
1966 * iplib.py, hooks.py: Added configurable input prefilter,
1968 named 'input_prefilter'. See ext_rescapture.py for example
1967 named 'input_prefilter'. See ext_rescapture.py for example
1969 usage.
1968 usage.
1970
1969
1971 * ext_rescapture.py, Magic.py: Better system command output capture
1970 * ext_rescapture.py, Magic.py: Better system command output capture
1972 through 'var = !ls' (deprecates user-visible %sc). Same notation
1971 through 'var = !ls' (deprecates user-visible %sc). Same notation
1973 applies for magics, 'var = %alias' assigns alias list to var.
1972 applies for magics, 'var = %alias' assigns alias list to var.
1974
1973
1975 * ipapi.py: added meta() for accessing extension-usable data store.
1974 * ipapi.py: added meta() for accessing extension-usable data store.
1976
1975
1977 * iplib.py: added InteractiveShell.getapi(). New magics should be
1976 * iplib.py: added InteractiveShell.getapi(). New magics should be
1978 written doing self.getapi() instead of using the shell directly.
1977 written doing self.getapi() instead of using the shell directly.
1979
1978
1980 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1979 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1981 %store foo >> ~/myfoo.txt to store variables to files (in clean
1980 %store foo >> ~/myfoo.txt to store variables to files (in clean
1982 textual form, not a restorable pickle).
1981 textual form, not a restorable pickle).
1983
1982
1984 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1983 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1985
1984
1986 * usage.py, Magic.py: added %quickref
1985 * usage.py, Magic.py: added %quickref
1987
1986
1988 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1987 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1989
1988
1990 * GetoptErrors when invoking magics etc. with wrong args
1989 * GetoptErrors when invoking magics etc. with wrong args
1991 are now more helpful:
1990 are now more helpful:
1992 GetoptError: option -l not recognized (allowed: "qb" )
1991 GetoptError: option -l not recognized (allowed: "qb" )
1993
1992
1994 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1993 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1995
1994
1996 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1995 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1997 computationally intensive blocks don't appear to stall the demo.
1996 computationally intensive blocks don't appear to stall the demo.
1998
1997
1999 2006-01-24 Ville Vainio <vivainio@gmail.com>
1998 2006-01-24 Ville Vainio <vivainio@gmail.com>
2000
1999
2001 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2000 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2002 value to manipulate resulting history entry.
2001 value to manipulate resulting history entry.
2003
2002
2004 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2003 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2005 to instance methods of IPApi class, to make extending an embedded
2004 to instance methods of IPApi class, to make extending an embedded
2006 IPython feasible. See ext_rehashdir.py for example usage.
2005 IPython feasible. See ext_rehashdir.py for example usage.
2007
2006
2008 * Merged 1071-1076 from branches/0.7.1
2007 * Merged 1071-1076 from branches/0.7.1
2009
2008
2010
2009
2011 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2010 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2012
2011
2013 * tools/release (daystamp): Fix build tools to use the new
2012 * tools/release (daystamp): Fix build tools to use the new
2014 eggsetup.py script to build lightweight eggs.
2013 eggsetup.py script to build lightweight eggs.
2015
2014
2016 * Applied changesets 1062 and 1064 before 0.7.1 release.
2015 * Applied changesets 1062 and 1064 before 0.7.1 release.
2017
2016
2018 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2017 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2019 see the raw input history (without conversions like %ls ->
2018 see the raw input history (without conversions like %ls ->
2020 ipmagic("ls")). After a request from W. Stein, SAGE
2019 ipmagic("ls")). After a request from W. Stein, SAGE
2021 (http://modular.ucsd.edu/sage) developer. This information is
2020 (http://modular.ucsd.edu/sage) developer. This information is
2022 stored in the input_hist_raw attribute of the IPython instance, so
2021 stored in the input_hist_raw attribute of the IPython instance, so
2023 developers can access it if needed (it's an InputList instance).
2022 developers can access it if needed (it's an InputList instance).
2024
2023
2025 * Versionstring = 0.7.2.svn
2024 * Versionstring = 0.7.2.svn
2026
2025
2027 * eggsetup.py: A separate script for constructing eggs, creates
2026 * eggsetup.py: A separate script for constructing eggs, creates
2028 proper launch scripts even on Windows (an .exe file in
2027 proper launch scripts even on Windows (an .exe file in
2029 \python24\scripts).
2028 \python24\scripts).
2030
2029
2031 * ipapi.py: launch_new_instance, launch entry point needed for the
2030 * ipapi.py: launch_new_instance, launch entry point needed for the
2032 egg.
2031 egg.
2033
2032
2034 2006-01-23 Ville Vainio <vivainio@gmail.com>
2033 2006-01-23 Ville Vainio <vivainio@gmail.com>
2035
2034
2036 * Added %cpaste magic for pasting python code
2035 * Added %cpaste magic for pasting python code
2037
2036
2038 2006-01-22 Ville Vainio <vivainio@gmail.com>
2037 2006-01-22 Ville Vainio <vivainio@gmail.com>
2039
2038
2040 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2039 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2041
2040
2042 * Versionstring = 0.7.2.svn
2041 * Versionstring = 0.7.2.svn
2043
2042
2044 * eggsetup.py: A separate script for constructing eggs, creates
2043 * eggsetup.py: A separate script for constructing eggs, creates
2045 proper launch scripts even on Windows (an .exe file in
2044 proper launch scripts even on Windows (an .exe file in
2046 \python24\scripts).
2045 \python24\scripts).
2047
2046
2048 * ipapi.py: launch_new_instance, launch entry point needed for the
2047 * ipapi.py: launch_new_instance, launch entry point needed for the
2049 egg.
2048 egg.
2050
2049
2051 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2050 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2052
2051
2053 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2052 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2054 %pfile foo would print the file for foo even if it was a binary.
2053 %pfile foo would print the file for foo even if it was a binary.
2055 Now, extensions '.so' and '.dll' are skipped.
2054 Now, extensions '.so' and '.dll' are skipped.
2056
2055
2057 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2056 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2058 bug, where macros would fail in all threaded modes. I'm not 100%
2057 bug, where macros would fail in all threaded modes. I'm not 100%
2059 sure, so I'm going to put out an rc instead of making a release
2058 sure, so I'm going to put out an rc instead of making a release
2060 today, and wait for feedback for at least a few days.
2059 today, and wait for feedback for at least a few days.
2061
2060
2062 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2061 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2063 it...) the handling of pasting external code with autoindent on.
2062 it...) the handling of pasting external code with autoindent on.
2064 To get out of a multiline input, the rule will appear for most
2063 To get out of a multiline input, the rule will appear for most
2065 users unchanged: two blank lines or change the indent level
2064 users unchanged: two blank lines or change the indent level
2066 proposed by IPython. But there is a twist now: you can
2065 proposed by IPython. But there is a twist now: you can
2067 add/subtract only *one or two spaces*. If you add/subtract three
2066 add/subtract only *one or two spaces*. If you add/subtract three
2068 or more (unless you completely delete the line), IPython will
2067 or more (unless you completely delete the line), IPython will
2069 accept that line, and you'll need to enter a second one of pure
2068 accept that line, and you'll need to enter a second one of pure
2070 whitespace. I know it sounds complicated, but I can't find a
2069 whitespace. I know it sounds complicated, but I can't find a
2071 different solution that covers all the cases, with the right
2070 different solution that covers all the cases, with the right
2072 heuristics. Hopefully in actual use, nobody will really notice
2071 heuristics. Hopefully in actual use, nobody will really notice
2073 all these strange rules and things will 'just work'.
2072 all these strange rules and things will 'just work'.
2074
2073
2075 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2074 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2076
2075
2077 * IPython/iplib.py (interact): catch exceptions which can be
2076 * IPython/iplib.py (interact): catch exceptions which can be
2078 triggered asynchronously by signal handlers. Thanks to an
2077 triggered asynchronously by signal handlers. Thanks to an
2079 automatic crash report, submitted by Colin Kingsley
2078 automatic crash report, submitted by Colin Kingsley
2080 <tercel-AT-gentoo.org>.
2079 <tercel-AT-gentoo.org>.
2081
2080
2082 2006-01-20 Ville Vainio <vivainio@gmail.com>
2081 2006-01-20 Ville Vainio <vivainio@gmail.com>
2083
2082
2084 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2083 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2085 (%rehashdir, very useful, try it out) of how to extend ipython
2084 (%rehashdir, very useful, try it out) of how to extend ipython
2086 with new magics. Also added Extensions dir to pythonpath to make
2085 with new magics. Also added Extensions dir to pythonpath to make
2087 importing extensions easy.
2086 importing extensions easy.
2088
2087
2089 * %store now complains when trying to store interactively declared
2088 * %store now complains when trying to store interactively declared
2090 classes / instances of those classes.
2089 classes / instances of those classes.
2091
2090
2092 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2091 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2093 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2092 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2094 if they exist, and ipy_user_conf.py with some defaults is created for
2093 if they exist, and ipy_user_conf.py with some defaults is created for
2095 the user.
2094 the user.
2096
2095
2097 * Startup rehashing done by the config file, not InterpreterExec.
2096 * Startup rehashing done by the config file, not InterpreterExec.
2098 This means system commands are available even without selecting the
2097 This means system commands are available even without selecting the
2099 pysh profile. It's the sensible default after all.
2098 pysh profile. It's the sensible default after all.
2100
2099
2101 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2100 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2102
2101
2103 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2102 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2104 multiline code with autoindent on working. But I am really not
2103 multiline code with autoindent on working. But I am really not
2105 sure, so this needs more testing. Will commit a debug-enabled
2104 sure, so this needs more testing. Will commit a debug-enabled
2106 version for now, while I test it some more, so that Ville and
2105 version for now, while I test it some more, so that Ville and
2107 others may also catch any problems. Also made
2106 others may also catch any problems. Also made
2108 self.indent_current_str() a method, to ensure that there's no
2107 self.indent_current_str() a method, to ensure that there's no
2109 chance of the indent space count and the corresponding string
2108 chance of the indent space count and the corresponding string
2110 falling out of sync. All code needing the string should just call
2109 falling out of sync. All code needing the string should just call
2111 the method.
2110 the method.
2112
2111
2113 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2112 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2114
2113
2115 * IPython/Magic.py (magic_edit): fix check for when users don't
2114 * IPython/Magic.py (magic_edit): fix check for when users don't
2116 save their output files, the try/except was in the wrong section.
2115 save their output files, the try/except was in the wrong section.
2117
2116
2118 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2117 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2119
2118
2120 * IPython/Magic.py (magic_run): fix __file__ global missing from
2119 * IPython/Magic.py (magic_run): fix __file__ global missing from
2121 script's namespace when executed via %run. After a report by
2120 script's namespace when executed via %run. After a report by
2122 Vivian.
2121 Vivian.
2123
2122
2124 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2123 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2125 when using python 2.4. The parent constructor changed in 2.4, and
2124 when using python 2.4. The parent constructor changed in 2.4, and
2126 we need to track it directly (we can't call it, as it messes up
2125 we need to track it directly (we can't call it, as it messes up
2127 readline and tab-completion inside our pdb would stop working).
2126 readline and tab-completion inside our pdb would stop working).
2128 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2127 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2129
2128
2130 2006-01-16 Ville Vainio <vivainio@gmail.com>
2129 2006-01-16 Ville Vainio <vivainio@gmail.com>
2131
2130
2132 * Ipython/magic.py: Reverted back to old %edit functionality
2131 * Ipython/magic.py: Reverted back to old %edit functionality
2133 that returns file contents on exit.
2132 that returns file contents on exit.
2134
2133
2135 * IPython/path.py: Added Jason Orendorff's "path" module to
2134 * IPython/path.py: Added Jason Orendorff's "path" module to
2136 IPython tree, http://www.jorendorff.com/articles/python/path/.
2135 IPython tree, http://www.jorendorff.com/articles/python/path/.
2137 You can get path objects conveniently through %sc, and !!, e.g.:
2136 You can get path objects conveniently through %sc, and !!, e.g.:
2138 sc files=ls
2137 sc files=ls
2139 for p in files.paths: # or files.p
2138 for p in files.paths: # or files.p
2140 print p,p.mtime
2139 print p,p.mtime
2141
2140
2142 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2141 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2143 now work again without considering the exclusion regexp -
2142 now work again without considering the exclusion regexp -
2144 hence, things like ',foo my/path' turn to 'foo("my/path")'
2143 hence, things like ',foo my/path' turn to 'foo("my/path")'
2145 instead of syntax error.
2144 instead of syntax error.
2146
2145
2147
2146
2148 2006-01-14 Ville Vainio <vivainio@gmail.com>
2147 2006-01-14 Ville Vainio <vivainio@gmail.com>
2149
2148
2150 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2149 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2151 ipapi decorators for python 2.4 users, options() provides access to rc
2150 ipapi decorators for python 2.4 users, options() provides access to rc
2152 data.
2151 data.
2153
2152
2154 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2153 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2155 as path separators (even on Linux ;-). Space character after
2154 as path separators (even on Linux ;-). Space character after
2156 backslash (as yielded by tab completer) is still space;
2155 backslash (as yielded by tab completer) is still space;
2157 "%cd long\ name" works as expected.
2156 "%cd long\ name" works as expected.
2158
2157
2159 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2158 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2160 as "chain of command", with priority. API stays the same,
2159 as "chain of command", with priority. API stays the same,
2161 TryNext exception raised by a hook function signals that
2160 TryNext exception raised by a hook function signals that
2162 current hook failed and next hook should try handling it, as
2161 current hook failed and next hook should try handling it, as
2163 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2162 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2164 requested configurable display hook, which is now implemented.
2163 requested configurable display hook, which is now implemented.
2165
2164
2166 2006-01-13 Ville Vainio <vivainio@gmail.com>
2165 2006-01-13 Ville Vainio <vivainio@gmail.com>
2167
2166
2168 * IPython/platutils*.py: platform specific utility functions,
2167 * IPython/platutils*.py: platform specific utility functions,
2169 so far only set_term_title is implemented (change terminal
2168 so far only set_term_title is implemented (change terminal
2170 label in windowing systems). %cd now changes the title to
2169 label in windowing systems). %cd now changes the title to
2171 current dir.
2170 current dir.
2172
2171
2173 * IPython/Release.py: Added myself to "authors" list,
2172 * IPython/Release.py: Added myself to "authors" list,
2174 had to create new files.
2173 had to create new files.
2175
2174
2176 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2175 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2177 shell escape; not a known bug but had potential to be one in the
2176 shell escape; not a known bug but had potential to be one in the
2178 future.
2177 future.
2179
2178
2180 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2179 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2181 extension API for IPython! See the module for usage example. Fix
2180 extension API for IPython! See the module for usage example. Fix
2182 OInspect for docstring-less magic functions.
2181 OInspect for docstring-less magic functions.
2183
2182
2184
2183
2185 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2184 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2186
2185
2187 * IPython/iplib.py (raw_input): temporarily deactivate all
2186 * IPython/iplib.py (raw_input): temporarily deactivate all
2188 attempts at allowing pasting of code with autoindent on. It
2187 attempts at allowing pasting of code with autoindent on. It
2189 introduced bugs (reported by Prabhu) and I can't seem to find a
2188 introduced bugs (reported by Prabhu) and I can't seem to find a
2190 robust combination which works in all cases. Will have to revisit
2189 robust combination which works in all cases. Will have to revisit
2191 later.
2190 later.
2192
2191
2193 * IPython/genutils.py: remove isspace() function. We've dropped
2192 * IPython/genutils.py: remove isspace() function. We've dropped
2194 2.2 compatibility, so it's OK to use the string method.
2193 2.2 compatibility, so it's OK to use the string method.
2195
2194
2196 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2195 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2197
2196
2198 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2197 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2199 matching what NOT to autocall on, to include all python binary
2198 matching what NOT to autocall on, to include all python binary
2200 operators (including things like 'and', 'or', 'is' and 'in').
2199 operators (including things like 'and', 'or', 'is' and 'in').
2201 Prompted by a bug report on 'foo & bar', but I realized we had
2200 Prompted by a bug report on 'foo & bar', but I realized we had
2202 many more potential bug cases with other operators. The regexp is
2201 many more potential bug cases with other operators. The regexp is
2203 self.re_exclude_auto, it's fairly commented.
2202 self.re_exclude_auto, it's fairly commented.
2204
2203
2205 2006-01-12 Ville Vainio <vivainio@gmail.com>
2204 2006-01-12 Ville Vainio <vivainio@gmail.com>
2206
2205
2207 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2206 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2208 Prettified and hardened string/backslash quoting with ipsystem(),
2207 Prettified and hardened string/backslash quoting with ipsystem(),
2209 ipalias() and ipmagic(). Now even \ characters are passed to
2208 ipalias() and ipmagic(). Now even \ characters are passed to
2210 %magics, !shell escapes and aliases exactly as they are in the
2209 %magics, !shell escapes and aliases exactly as they are in the
2211 ipython command line. Should improve backslash experience,
2210 ipython command line. Should improve backslash experience,
2212 particularly in Windows (path delimiter for some commands that
2211 particularly in Windows (path delimiter for some commands that
2213 won't understand '/'), but Unix benefits as well (regexps). %cd
2212 won't understand '/'), but Unix benefits as well (regexps). %cd
2214 magic still doesn't support backslash path delimiters, though. Also
2213 magic still doesn't support backslash path delimiters, though. Also
2215 deleted all pretense of supporting multiline command strings in
2214 deleted all pretense of supporting multiline command strings in
2216 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2215 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2217
2216
2218 * doc/build_doc_instructions.txt added. Documentation on how to
2217 * doc/build_doc_instructions.txt added. Documentation on how to
2219 use doc/update_manual.py, added yesterday. Both files contributed
2218 use doc/update_manual.py, added yesterday. Both files contributed
2220 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2219 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2221 doc/*.sh for deprecation at a later date.
2220 doc/*.sh for deprecation at a later date.
2222
2221
2223 * /ipython.py Added ipython.py to root directory for
2222 * /ipython.py Added ipython.py to root directory for
2224 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2223 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2225 ipython.py) and development convenience (no need to keep doing
2224 ipython.py) and development convenience (no need to keep doing
2226 "setup.py install" between changes).
2225 "setup.py install" between changes).
2227
2226
2228 * Made ! and !! shell escapes work (again) in multiline expressions:
2227 * Made ! and !! shell escapes work (again) in multiline expressions:
2229 if 1:
2228 if 1:
2230 !ls
2229 !ls
2231 !!ls
2230 !!ls
2232
2231
2233 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2232 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2234
2233
2235 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2234 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2236 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2235 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2237 module in case-insensitive installation. Was causing crashes
2236 module in case-insensitive installation. Was causing crashes
2238 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2237 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2239
2238
2240 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2239 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2241 <marienz-AT-gentoo.org>, closes
2240 <marienz-AT-gentoo.org>, closes
2242 http://www.scipy.net/roundup/ipython/issue51.
2241 http://www.scipy.net/roundup/ipython/issue51.
2243
2242
2244 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2243 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2245
2244
2246 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2245 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2247 problem of excessive CPU usage under *nix and keyboard lag under
2246 problem of excessive CPU usage under *nix and keyboard lag under
2248 win32.
2247 win32.
2249
2248
2250 2006-01-10 *** Released version 0.7.0
2249 2006-01-10 *** Released version 0.7.0
2251
2250
2252 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2251 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2253
2252
2254 * IPython/Release.py (revision): tag version number to 0.7.0,
2253 * IPython/Release.py (revision): tag version number to 0.7.0,
2255 ready for release.
2254 ready for release.
2256
2255
2257 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2256 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2258 it informs the user of the name of the temp. file used. This can
2257 it informs the user of the name of the temp. file used. This can
2259 help if you decide later to reuse that same file, so you know
2258 help if you decide later to reuse that same file, so you know
2260 where to copy the info from.
2259 where to copy the info from.
2261
2260
2262 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2261 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2263
2262
2264 * setup_bdist_egg.py: little script to build an egg. Added
2263 * setup_bdist_egg.py: little script to build an egg. Added
2265 support in the release tools as well.
2264 support in the release tools as well.
2266
2265
2267 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2266 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2268
2267
2269 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2268 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2270 version selection (new -wxversion command line and ipythonrc
2269 version selection (new -wxversion command line and ipythonrc
2271 parameter). Patch contributed by Arnd Baecker
2270 parameter). Patch contributed by Arnd Baecker
2272 <arnd.baecker-AT-web.de>.
2271 <arnd.baecker-AT-web.de>.
2273
2272
2274 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2273 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2275 embedded instances, for variables defined at the interactive
2274 embedded instances, for variables defined at the interactive
2276 prompt of the embedded ipython. Reported by Arnd.
2275 prompt of the embedded ipython. Reported by Arnd.
2277
2276
2278 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2277 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2279 it can be used as a (stateful) toggle, or with a direct parameter.
2278 it can be used as a (stateful) toggle, or with a direct parameter.
2280
2279
2281 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2280 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2282 could be triggered in certain cases and cause the traceback
2281 could be triggered in certain cases and cause the traceback
2283 printer not to work.
2282 printer not to work.
2284
2283
2285 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2284 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2286
2285
2287 * IPython/iplib.py (_should_recompile): Small fix, closes
2286 * IPython/iplib.py (_should_recompile): Small fix, closes
2288 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2287 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2289
2288
2290 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2289 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2291
2290
2292 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2291 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2293 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2292 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2294 Moad for help with tracking it down.
2293 Moad for help with tracking it down.
2295
2294
2296 * IPython/iplib.py (handle_auto): fix autocall handling for
2295 * IPython/iplib.py (handle_auto): fix autocall handling for
2297 objects which support BOTH __getitem__ and __call__ (so that f [x]
2296 objects which support BOTH __getitem__ and __call__ (so that f [x]
2298 is left alone, instead of becoming f([x]) automatically).
2297 is left alone, instead of becoming f([x]) automatically).
2299
2298
2300 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2299 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2301 Ville's patch.
2300 Ville's patch.
2302
2301
2303 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2302 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2304
2303
2305 * IPython/iplib.py (handle_auto): changed autocall semantics to
2304 * IPython/iplib.py (handle_auto): changed autocall semantics to
2306 include 'smart' mode, where the autocall transformation is NOT
2305 include 'smart' mode, where the autocall transformation is NOT
2307 applied if there are no arguments on the line. This allows you to
2306 applied if there are no arguments on the line. This allows you to
2308 just type 'foo' if foo is a callable to see its internal form,
2307 just type 'foo' if foo is a callable to see its internal form,
2309 instead of having it called with no arguments (typically a
2308 instead of having it called with no arguments (typically a
2310 mistake). The old 'full' autocall still exists: for that, you
2309 mistake). The old 'full' autocall still exists: for that, you
2311 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2310 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2312
2311
2313 * IPython/completer.py (Completer.attr_matches): add
2312 * IPython/completer.py (Completer.attr_matches): add
2314 tab-completion support for Enthoughts' traits. After a report by
2313 tab-completion support for Enthoughts' traits. After a report by
2315 Arnd and a patch by Prabhu.
2314 Arnd and a patch by Prabhu.
2316
2315
2317 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2316 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2318
2317
2319 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2318 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2320 Schmolck's patch to fix inspect.getinnerframes().
2319 Schmolck's patch to fix inspect.getinnerframes().
2321
2320
2322 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2321 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2323 for embedded instances, regarding handling of namespaces and items
2322 for embedded instances, regarding handling of namespaces and items
2324 added to the __builtin__ one. Multiple embedded instances and
2323 added to the __builtin__ one. Multiple embedded instances and
2325 recursive embeddings should work better now (though I'm not sure
2324 recursive embeddings should work better now (though I'm not sure
2326 I've got all the corner cases fixed, that code is a bit of a brain
2325 I've got all the corner cases fixed, that code is a bit of a brain
2327 twister).
2326 twister).
2328
2327
2329 * IPython/Magic.py (magic_edit): added support to edit in-memory
2328 * IPython/Magic.py (magic_edit): added support to edit in-memory
2330 macros (automatically creates the necessary temp files). %edit
2329 macros (automatically creates the necessary temp files). %edit
2331 also doesn't return the file contents anymore, it's just noise.
2330 also doesn't return the file contents anymore, it's just noise.
2332
2331
2333 * IPython/completer.py (Completer.attr_matches): revert change to
2332 * IPython/completer.py (Completer.attr_matches): revert change to
2334 complete only on attributes listed in __all__. I realized it
2333 complete only on attributes listed in __all__. I realized it
2335 cripples the tab-completion system as a tool for exploring the
2334 cripples the tab-completion system as a tool for exploring the
2336 internals of unknown libraries (it renders any non-__all__
2335 internals of unknown libraries (it renders any non-__all__
2337 attribute off-limits). I got bit by this when trying to see
2336 attribute off-limits). I got bit by this when trying to see
2338 something inside the dis module.
2337 something inside the dis module.
2339
2338
2340 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2339 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2341
2340
2342 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2341 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2343 namespace for users and extension writers to hold data in. This
2342 namespace for users and extension writers to hold data in. This
2344 follows the discussion in
2343 follows the discussion in
2345 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2344 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2346
2345
2347 * IPython/completer.py (IPCompleter.complete): small patch to help
2346 * IPython/completer.py (IPCompleter.complete): small patch to help
2348 tab-completion under Emacs, after a suggestion by John Barnard
2347 tab-completion under Emacs, after a suggestion by John Barnard
2349 <barnarj-AT-ccf.org>.
2348 <barnarj-AT-ccf.org>.
2350
2349
2351 * IPython/Magic.py (Magic.extract_input_slices): added support for
2350 * IPython/Magic.py (Magic.extract_input_slices): added support for
2352 the slice notation in magics to use N-M to represent numbers N...M
2351 the slice notation in magics to use N-M to represent numbers N...M
2353 (closed endpoints). This is used by %macro and %save.
2352 (closed endpoints). This is used by %macro and %save.
2354
2353
2355 * IPython/completer.py (Completer.attr_matches): for modules which
2354 * IPython/completer.py (Completer.attr_matches): for modules which
2356 define __all__, complete only on those. After a patch by Jeffrey
2355 define __all__, complete only on those. After a patch by Jeffrey
2357 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2356 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2358 speed up this routine.
2357 speed up this routine.
2359
2358
2360 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2359 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2361 don't know if this is the end of it, but the behavior now is
2360 don't know if this is the end of it, but the behavior now is
2362 certainly much more correct. Note that coupled with macros,
2361 certainly much more correct. Note that coupled with macros,
2363 slightly surprising (at first) behavior may occur: a macro will in
2362 slightly surprising (at first) behavior may occur: a macro will in
2364 general expand to multiple lines of input, so upon exiting, the
2363 general expand to multiple lines of input, so upon exiting, the
2365 in/out counters will both be bumped by the corresponding amount
2364 in/out counters will both be bumped by the corresponding amount
2366 (as if the macro's contents had been typed interactively). Typing
2365 (as if the macro's contents had been typed interactively). Typing
2367 %hist will reveal the intermediate (silently processed) lines.
2366 %hist will reveal the intermediate (silently processed) lines.
2368
2367
2369 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2368 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2370 pickle to fail (%run was overwriting __main__ and not restoring
2369 pickle to fail (%run was overwriting __main__ and not restoring
2371 it, but pickle relies on __main__ to operate).
2370 it, but pickle relies on __main__ to operate).
2372
2371
2373 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2372 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2374 using properties, but forgot to make the main InteractiveShell
2373 using properties, but forgot to make the main InteractiveShell
2375 class a new-style class. Properties fail silently, and
2374 class a new-style class. Properties fail silently, and
2376 mysteriously, with old-style class (getters work, but
2375 mysteriously, with old-style class (getters work, but
2377 setters don't do anything).
2376 setters don't do anything).
2378
2377
2379 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2378 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2380
2379
2381 * IPython/Magic.py (magic_history): fix history reporting bug (I
2380 * IPython/Magic.py (magic_history): fix history reporting bug (I
2382 know some nasties are still there, I just can't seem to find a
2381 know some nasties are still there, I just can't seem to find a
2383 reproducible test case to track them down; the input history is
2382 reproducible test case to track them down; the input history is
2384 falling out of sync...)
2383 falling out of sync...)
2385
2384
2386 * IPython/iplib.py (handle_shell_escape): fix bug where both
2385 * IPython/iplib.py (handle_shell_escape): fix bug where both
2387 aliases and system accesses where broken for indented code (such
2386 aliases and system accesses where broken for indented code (such
2388 as loops).
2387 as loops).
2389
2388
2390 * IPython/genutils.py (shell): fix small but critical bug for
2389 * IPython/genutils.py (shell): fix small but critical bug for
2391 win32 system access.
2390 win32 system access.
2392
2391
2393 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2392 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2394
2393
2395 * IPython/iplib.py (showtraceback): remove use of the
2394 * IPython/iplib.py (showtraceback): remove use of the
2396 sys.last_{type/value/traceback} structures, which are non
2395 sys.last_{type/value/traceback} structures, which are non
2397 thread-safe.
2396 thread-safe.
2398 (_prefilter): change control flow to ensure that we NEVER
2397 (_prefilter): change control flow to ensure that we NEVER
2399 introspect objects when autocall is off. This will guarantee that
2398 introspect objects when autocall is off. This will guarantee that
2400 having an input line of the form 'x.y', where access to attribute
2399 having an input line of the form 'x.y', where access to attribute
2401 'y' has side effects, doesn't trigger the side effect TWICE. It
2400 'y' has side effects, doesn't trigger the side effect TWICE. It
2402 is important to note that, with autocall on, these side effects
2401 is important to note that, with autocall on, these side effects
2403 can still happen.
2402 can still happen.
2404 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2403 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2405 trio. IPython offers these three kinds of special calls which are
2404 trio. IPython offers these three kinds of special calls which are
2406 not python code, and it's a good thing to have their call method
2405 not python code, and it's a good thing to have their call method
2407 be accessible as pure python functions (not just special syntax at
2406 be accessible as pure python functions (not just special syntax at
2408 the command line). It gives us a better internal implementation
2407 the command line). It gives us a better internal implementation
2409 structure, as well as exposing these for user scripting more
2408 structure, as well as exposing these for user scripting more
2410 cleanly.
2409 cleanly.
2411
2410
2412 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2411 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2413 file. Now that they'll be more likely to be used with the
2412 file. Now that they'll be more likely to be used with the
2414 persistance system (%store), I want to make sure their module path
2413 persistance system (%store), I want to make sure their module path
2415 doesn't change in the future, so that we don't break things for
2414 doesn't change in the future, so that we don't break things for
2416 users' persisted data.
2415 users' persisted data.
2417
2416
2418 * IPython/iplib.py (autoindent_update): move indentation
2417 * IPython/iplib.py (autoindent_update): move indentation
2419 management into the _text_ processing loop, not the keyboard
2418 management into the _text_ processing loop, not the keyboard
2420 interactive one. This is necessary to correctly process non-typed
2419 interactive one. This is necessary to correctly process non-typed
2421 multiline input (such as macros).
2420 multiline input (such as macros).
2422
2421
2423 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2422 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2424 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2423 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2425 which was producing problems in the resulting manual.
2424 which was producing problems in the resulting manual.
2426 (magic_whos): improve reporting of instances (show their class,
2425 (magic_whos): improve reporting of instances (show their class,
2427 instead of simply printing 'instance' which isn't terribly
2426 instead of simply printing 'instance' which isn't terribly
2428 informative).
2427 informative).
2429
2428
2430 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2429 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2431 (minor mods) to support network shares under win32.
2430 (minor mods) to support network shares under win32.
2432
2431
2433 * IPython/winconsole.py (get_console_size): add new winconsole
2432 * IPython/winconsole.py (get_console_size): add new winconsole
2434 module and fixes to page_dumb() to improve its behavior under
2433 module and fixes to page_dumb() to improve its behavior under
2435 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2434 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2436
2435
2437 * IPython/Magic.py (Macro): simplified Macro class to just
2436 * IPython/Magic.py (Macro): simplified Macro class to just
2438 subclass list. We've had only 2.2 compatibility for a very long
2437 subclass list. We've had only 2.2 compatibility for a very long
2439 time, yet I was still avoiding subclassing the builtin types. No
2438 time, yet I was still avoiding subclassing the builtin types. No
2440 more (I'm also starting to use properties, though I won't shift to
2439 more (I'm also starting to use properties, though I won't shift to
2441 2.3-specific features quite yet).
2440 2.3-specific features quite yet).
2442 (magic_store): added Ville's patch for lightweight variable
2441 (magic_store): added Ville's patch for lightweight variable
2443 persistence, after a request on the user list by Matt Wilkie
2442 persistence, after a request on the user list by Matt Wilkie
2444 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2443 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2445 details.
2444 details.
2446
2445
2447 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2446 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2448 changed the default logfile name from 'ipython.log' to
2447 changed the default logfile name from 'ipython.log' to
2449 'ipython_log.py'. These logs are real python files, and now that
2448 'ipython_log.py'. These logs are real python files, and now that
2450 we have much better multiline support, people are more likely to
2449 we have much better multiline support, people are more likely to
2451 want to use them as such. Might as well name them correctly.
2450 want to use them as such. Might as well name them correctly.
2452
2451
2453 * IPython/Magic.py: substantial cleanup. While we can't stop
2452 * IPython/Magic.py: substantial cleanup. While we can't stop
2454 using magics as mixins, due to the existing customizations 'out
2453 using magics as mixins, due to the existing customizations 'out
2455 there' which rely on the mixin naming conventions, at least I
2454 there' which rely on the mixin naming conventions, at least I
2456 cleaned out all cross-class name usage. So once we are OK with
2455 cleaned out all cross-class name usage. So once we are OK with
2457 breaking compatibility, the two systems can be separated.
2456 breaking compatibility, the two systems can be separated.
2458
2457
2459 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2458 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2460 anymore, and the class is a fair bit less hideous as well. New
2459 anymore, and the class is a fair bit less hideous as well. New
2461 features were also introduced: timestamping of input, and logging
2460 features were also introduced: timestamping of input, and logging
2462 of output results. These are user-visible with the -t and -o
2461 of output results. These are user-visible with the -t and -o
2463 options to %logstart. Closes
2462 options to %logstart. Closes
2464 http://www.scipy.net/roundup/ipython/issue11 and a request by
2463 http://www.scipy.net/roundup/ipython/issue11 and a request by
2465 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2464 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2466
2465
2467 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2466 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2468
2467
2469 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2468 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2470 better handle backslashes in paths. See the thread 'More Windows
2469 better handle backslashes in paths. See the thread 'More Windows
2471 questions part 2 - \/ characters revisited' on the iypthon user
2470 questions part 2 - \/ characters revisited' on the iypthon user
2472 list:
2471 list:
2473 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2472 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2474
2473
2475 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2474 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2476
2475
2477 (InteractiveShell.__init__): change threaded shells to not use the
2476 (InteractiveShell.__init__): change threaded shells to not use the
2478 ipython crash handler. This was causing more problems than not,
2477 ipython crash handler. This was causing more problems than not,
2479 as exceptions in the main thread (GUI code, typically) would
2478 as exceptions in the main thread (GUI code, typically) would
2480 always show up as a 'crash', when they really weren't.
2479 always show up as a 'crash', when they really weren't.
2481
2480
2482 The colors and exception mode commands (%colors/%xmode) have been
2481 The colors and exception mode commands (%colors/%xmode) have been
2483 synchronized to also take this into account, so users can get
2482 synchronized to also take this into account, so users can get
2484 verbose exceptions for their threaded code as well. I also added
2483 verbose exceptions for their threaded code as well. I also added
2485 support for activating pdb inside this exception handler as well,
2484 support for activating pdb inside this exception handler as well,
2486 so now GUI authors can use IPython's enhanced pdb at runtime.
2485 so now GUI authors can use IPython's enhanced pdb at runtime.
2487
2486
2488 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2487 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2489 true by default, and add it to the shipped ipythonrc file. Since
2488 true by default, and add it to the shipped ipythonrc file. Since
2490 this asks the user before proceeding, I think it's OK to make it
2489 this asks the user before proceeding, I think it's OK to make it
2491 true by default.
2490 true by default.
2492
2491
2493 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2492 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2494 of the previous special-casing of input in the eval loop. I think
2493 of the previous special-casing of input in the eval loop. I think
2495 this is cleaner, as they really are commands and shouldn't have
2494 this is cleaner, as they really are commands and shouldn't have
2496 a special role in the middle of the core code.
2495 a special role in the middle of the core code.
2497
2496
2498 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2497 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2499
2498
2500 * IPython/iplib.py (edit_syntax_error): added support for
2499 * IPython/iplib.py (edit_syntax_error): added support for
2501 automatically reopening the editor if the file had a syntax error
2500 automatically reopening the editor if the file had a syntax error
2502 in it. Thanks to scottt who provided the patch at:
2501 in it. Thanks to scottt who provided the patch at:
2503 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2502 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2504 version committed).
2503 version committed).
2505
2504
2506 * IPython/iplib.py (handle_normal): add suport for multi-line
2505 * IPython/iplib.py (handle_normal): add suport for multi-line
2507 input with emtpy lines. This fixes
2506 input with emtpy lines. This fixes
2508 http://www.scipy.net/roundup/ipython/issue43 and a similar
2507 http://www.scipy.net/roundup/ipython/issue43 and a similar
2509 discussion on the user list.
2508 discussion on the user list.
2510
2509
2511 WARNING: a behavior change is necessarily introduced to support
2510 WARNING: a behavior change is necessarily introduced to support
2512 blank lines: now a single blank line with whitespace does NOT
2511 blank lines: now a single blank line with whitespace does NOT
2513 break the input loop, which means that when autoindent is on, by
2512 break the input loop, which means that when autoindent is on, by
2514 default hitting return on the next (indented) line does NOT exit.
2513 default hitting return on the next (indented) line does NOT exit.
2515
2514
2516 Instead, to exit a multiline input you can either have:
2515 Instead, to exit a multiline input you can either have:
2517
2516
2518 - TWO whitespace lines (just hit return again), or
2517 - TWO whitespace lines (just hit return again), or
2519 - a single whitespace line of a different length than provided
2518 - a single whitespace line of a different length than provided
2520 by the autoindent (add or remove a space).
2519 by the autoindent (add or remove a space).
2521
2520
2522 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2521 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2523 module to better organize all readline-related functionality.
2522 module to better organize all readline-related functionality.
2524 I've deleted FlexCompleter and put all completion clases here.
2523 I've deleted FlexCompleter and put all completion clases here.
2525
2524
2526 * IPython/iplib.py (raw_input): improve indentation management.
2525 * IPython/iplib.py (raw_input): improve indentation management.
2527 It is now possible to paste indented code with autoindent on, and
2526 It is now possible to paste indented code with autoindent on, and
2528 the code is interpreted correctly (though it still looks bad on
2527 the code is interpreted correctly (though it still looks bad on
2529 screen, due to the line-oriented nature of ipython).
2528 screen, due to the line-oriented nature of ipython).
2530 (MagicCompleter.complete): change behavior so that a TAB key on an
2529 (MagicCompleter.complete): change behavior so that a TAB key on an
2531 otherwise empty line actually inserts a tab, instead of completing
2530 otherwise empty line actually inserts a tab, instead of completing
2532 on the entire global namespace. This makes it easier to use the
2531 on the entire global namespace. This makes it easier to use the
2533 TAB key for indentation. After a request by Hans Meine
2532 TAB key for indentation. After a request by Hans Meine
2534 <hans_meine-AT-gmx.net>
2533 <hans_meine-AT-gmx.net>
2535 (_prefilter): add support so that typing plain 'exit' or 'quit'
2534 (_prefilter): add support so that typing plain 'exit' or 'quit'
2536 does a sensible thing. Originally I tried to deviate as little as
2535 does a sensible thing. Originally I tried to deviate as little as
2537 possible from the default python behavior, but even that one may
2536 possible from the default python behavior, but even that one may
2538 change in this direction (thread on python-dev to that effect).
2537 change in this direction (thread on python-dev to that effect).
2539 Regardless, ipython should do the right thing even if CPython's
2538 Regardless, ipython should do the right thing even if CPython's
2540 '>>>' prompt doesn't.
2539 '>>>' prompt doesn't.
2541 (InteractiveShell): removed subclassing code.InteractiveConsole
2540 (InteractiveShell): removed subclassing code.InteractiveConsole
2542 class. By now we'd overridden just about all of its methods: I've
2541 class. By now we'd overridden just about all of its methods: I've
2543 copied the remaining two over, and now ipython is a standalone
2542 copied the remaining two over, and now ipython is a standalone
2544 class. This will provide a clearer picture for the chainsaw
2543 class. This will provide a clearer picture for the chainsaw
2545 branch refactoring.
2544 branch refactoring.
2546
2545
2547 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2546 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2548
2547
2549 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2548 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2550 failures for objects which break when dir() is called on them.
2549 failures for objects which break when dir() is called on them.
2551
2550
2552 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2551 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2553 distinct local and global namespaces in the completer API. This
2552 distinct local and global namespaces in the completer API. This
2554 change allows us to properly handle completion with distinct
2553 change allows us to properly handle completion with distinct
2555 scopes, including in embedded instances (this had never really
2554 scopes, including in embedded instances (this had never really
2556 worked correctly).
2555 worked correctly).
2557
2556
2558 Note: this introduces a change in the constructor for
2557 Note: this introduces a change in the constructor for
2559 MagicCompleter, as a new global_namespace parameter is now the
2558 MagicCompleter, as a new global_namespace parameter is now the
2560 second argument (the others were bumped one position).
2559 second argument (the others were bumped one position).
2561
2560
2562 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2561 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2563
2562
2564 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2563 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2565 embedded instances (which can be done now thanks to Vivian's
2564 embedded instances (which can be done now thanks to Vivian's
2566 frame-handling fixes for pdb).
2565 frame-handling fixes for pdb).
2567 (InteractiveShell.__init__): Fix namespace handling problem in
2566 (InteractiveShell.__init__): Fix namespace handling problem in
2568 embedded instances. We were overwriting __main__ unconditionally,
2567 embedded instances. We were overwriting __main__ unconditionally,
2569 and this should only be done for 'full' (non-embedded) IPython;
2568 and this should only be done for 'full' (non-embedded) IPython;
2570 embedded instances must respect the caller's __main__. Thanks to
2569 embedded instances must respect the caller's __main__. Thanks to
2571 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2570 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2572
2571
2573 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2572 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2574
2573
2575 * setup.py: added download_url to setup(). This registers the
2574 * setup.py: added download_url to setup(). This registers the
2576 download address at PyPI, which is not only useful to humans
2575 download address at PyPI, which is not only useful to humans
2577 browsing the site, but is also picked up by setuptools (the Eggs
2576 browsing the site, but is also picked up by setuptools (the Eggs
2578 machinery). Thanks to Ville and R. Kern for the info/discussion
2577 machinery). Thanks to Ville and R. Kern for the info/discussion
2579 on this.
2578 on this.
2580
2579
2581 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2580 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2582
2581
2583 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2582 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2584 This brings a lot of nice functionality to the pdb mode, which now
2583 This brings a lot of nice functionality to the pdb mode, which now
2585 has tab-completion, syntax highlighting, and better stack handling
2584 has tab-completion, syntax highlighting, and better stack handling
2586 than before. Many thanks to Vivian De Smedt
2585 than before. Many thanks to Vivian De Smedt
2587 <vivian-AT-vdesmedt.com> for the original patches.
2586 <vivian-AT-vdesmedt.com> for the original patches.
2588
2587
2589 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2588 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2590
2589
2591 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2590 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2592 sequence to consistently accept the banner argument. The
2591 sequence to consistently accept the banner argument. The
2593 inconsistency was tripping SAGE, thanks to Gary Zablackis
2592 inconsistency was tripping SAGE, thanks to Gary Zablackis
2594 <gzabl-AT-yahoo.com> for the report.
2593 <gzabl-AT-yahoo.com> for the report.
2595
2594
2596 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2595 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2597
2596
2598 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2597 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2599 Fix bug where a naked 'alias' call in the ipythonrc file would
2598 Fix bug where a naked 'alias' call in the ipythonrc file would
2600 cause a crash. Bug reported by Jorgen Stenarson.
2599 cause a crash. Bug reported by Jorgen Stenarson.
2601
2600
2602 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2601 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2603
2602
2604 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2603 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2605 startup time.
2604 startup time.
2606
2605
2607 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2606 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2608 instances had introduced a bug with globals in normal code. Now
2607 instances had introduced a bug with globals in normal code. Now
2609 it's working in all cases.
2608 it's working in all cases.
2610
2609
2611 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2610 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2612 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2611 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2613 has been introduced to set the default case sensitivity of the
2612 has been introduced to set the default case sensitivity of the
2614 searches. Users can still select either mode at runtime on a
2613 searches. Users can still select either mode at runtime on a
2615 per-search basis.
2614 per-search basis.
2616
2615
2617 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2616 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2618
2617
2619 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2618 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2620 attributes in wildcard searches for subclasses. Modified version
2619 attributes in wildcard searches for subclasses. Modified version
2621 of a patch by Jorgen.
2620 of a patch by Jorgen.
2622
2621
2623 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2622 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2624
2623
2625 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2624 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2626 embedded instances. I added a user_global_ns attribute to the
2625 embedded instances. I added a user_global_ns attribute to the
2627 InteractiveShell class to handle this.
2626 InteractiveShell class to handle this.
2628
2627
2629 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2628 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2630
2629
2631 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2630 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2632 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2631 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2633 (reported under win32, but may happen also in other platforms).
2632 (reported under win32, but may happen also in other platforms).
2634 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2633 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2635
2634
2636 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2635 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2637
2636
2638 * IPython/Magic.py (magic_psearch): new support for wildcard
2637 * IPython/Magic.py (magic_psearch): new support for wildcard
2639 patterns. Now, typing ?a*b will list all names which begin with a
2638 patterns. Now, typing ?a*b will list all names which begin with a
2640 and end in b, for example. The %psearch magic has full
2639 and end in b, for example. The %psearch magic has full
2641 docstrings. Many thanks to JΓΆrgen Stenarson
2640 docstrings. Many thanks to JΓΆrgen Stenarson
2642 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2641 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2643 implementing this functionality.
2642 implementing this functionality.
2644
2643
2645 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2644 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2646
2645
2647 * Manual: fixed long-standing annoyance of double-dashes (as in
2646 * Manual: fixed long-standing annoyance of double-dashes (as in
2648 --prefix=~, for example) being stripped in the HTML version. This
2647 --prefix=~, for example) being stripped in the HTML version. This
2649 is a latex2html bug, but a workaround was provided. Many thanks
2648 is a latex2html bug, but a workaround was provided. Many thanks
2650 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2649 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2651 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2650 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2652 rolling. This seemingly small issue had tripped a number of users
2651 rolling. This seemingly small issue had tripped a number of users
2653 when first installing, so I'm glad to see it gone.
2652 when first installing, so I'm glad to see it gone.
2654
2653
2655 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2654 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2656
2655
2657 * IPython/Extensions/numeric_formats.py: fix missing import,
2656 * IPython/Extensions/numeric_formats.py: fix missing import,
2658 reported by Stephen Walton.
2657 reported by Stephen Walton.
2659
2658
2660 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2659 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2661
2660
2662 * IPython/demo.py: finish demo module, fully documented now.
2661 * IPython/demo.py: finish demo module, fully documented now.
2663
2662
2664 * IPython/genutils.py (file_read): simple little utility to read a
2663 * IPython/genutils.py (file_read): simple little utility to read a
2665 file and ensure it's closed afterwards.
2664 file and ensure it's closed afterwards.
2666
2665
2667 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2666 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2668
2667
2669 * IPython/demo.py (Demo.__init__): added support for individually
2668 * IPython/demo.py (Demo.__init__): added support for individually
2670 tagging blocks for automatic execution.
2669 tagging blocks for automatic execution.
2671
2670
2672 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2671 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2673 syntax-highlighted python sources, requested by John.
2672 syntax-highlighted python sources, requested by John.
2674
2673
2675 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2674 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2676
2675
2677 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2676 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2678 finishing.
2677 finishing.
2679
2678
2680 * IPython/genutils.py (shlex_split): moved from Magic to here,
2679 * IPython/genutils.py (shlex_split): moved from Magic to here,
2681 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2680 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2682
2681
2683 * IPython/demo.py (Demo.__init__): added support for silent
2682 * IPython/demo.py (Demo.__init__): added support for silent
2684 blocks, improved marks as regexps, docstrings written.
2683 blocks, improved marks as regexps, docstrings written.
2685 (Demo.__init__): better docstring, added support for sys.argv.
2684 (Demo.__init__): better docstring, added support for sys.argv.
2686
2685
2687 * IPython/genutils.py (marquee): little utility used by the demo
2686 * IPython/genutils.py (marquee): little utility used by the demo
2688 code, handy in general.
2687 code, handy in general.
2689
2688
2690 * IPython/demo.py (Demo.__init__): new class for interactive
2689 * IPython/demo.py (Demo.__init__): new class for interactive
2691 demos. Not documented yet, I just wrote it in a hurry for
2690 demos. Not documented yet, I just wrote it in a hurry for
2692 scipy'05. Will docstring later.
2691 scipy'05. Will docstring later.
2693
2692
2694 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2693 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2695
2694
2696 * IPython/Shell.py (sigint_handler): Drastic simplification which
2695 * IPython/Shell.py (sigint_handler): Drastic simplification which
2697 also seems to make Ctrl-C work correctly across threads! This is
2696 also seems to make Ctrl-C work correctly across threads! This is
2698 so simple, that I can't beleive I'd missed it before. Needs more
2697 so simple, that I can't beleive I'd missed it before. Needs more
2699 testing, though.
2698 testing, though.
2700 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2699 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2701 like this before...
2700 like this before...
2702
2701
2703 * IPython/genutils.py (get_home_dir): add protection against
2702 * IPython/genutils.py (get_home_dir): add protection against
2704 non-dirs in win32 registry.
2703 non-dirs in win32 registry.
2705
2704
2706 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2705 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2707 bug where dict was mutated while iterating (pysh crash).
2706 bug where dict was mutated while iterating (pysh crash).
2708
2707
2709 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2708 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2710
2709
2711 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2710 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2712 spurious newlines added by this routine. After a report by
2711 spurious newlines added by this routine. After a report by
2713 F. Mantegazza.
2712 F. Mantegazza.
2714
2713
2715 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2714 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2716
2715
2717 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2716 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2718 calls. These were a leftover from the GTK 1.x days, and can cause
2717 calls. These were a leftover from the GTK 1.x days, and can cause
2719 problems in certain cases (after a report by John Hunter).
2718 problems in certain cases (after a report by John Hunter).
2720
2719
2721 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2720 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2722 os.getcwd() fails at init time. Thanks to patch from David Remahl
2721 os.getcwd() fails at init time. Thanks to patch from David Remahl
2723 <chmod007-AT-mac.com>.
2722 <chmod007-AT-mac.com>.
2724 (InteractiveShell.__init__): prevent certain special magics from
2723 (InteractiveShell.__init__): prevent certain special magics from
2725 being shadowed by aliases. Closes
2724 being shadowed by aliases. Closes
2726 http://www.scipy.net/roundup/ipython/issue41.
2725 http://www.scipy.net/roundup/ipython/issue41.
2727
2726
2728 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2727 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2729
2728
2730 * IPython/iplib.py (InteractiveShell.complete): Added new
2729 * IPython/iplib.py (InteractiveShell.complete): Added new
2731 top-level completion method to expose the completion mechanism
2730 top-level completion method to expose the completion mechanism
2732 beyond readline-based environments.
2731 beyond readline-based environments.
2733
2732
2734 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2733 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2735
2734
2736 * tools/ipsvnc (svnversion): fix svnversion capture.
2735 * tools/ipsvnc (svnversion): fix svnversion capture.
2737
2736
2738 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2737 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2739 attribute to self, which was missing. Before, it was set by a
2738 attribute to self, which was missing. Before, it was set by a
2740 routine which in certain cases wasn't being called, so the
2739 routine which in certain cases wasn't being called, so the
2741 instance could end up missing the attribute. This caused a crash.
2740 instance could end up missing the attribute. This caused a crash.
2742 Closes http://www.scipy.net/roundup/ipython/issue40.
2741 Closes http://www.scipy.net/roundup/ipython/issue40.
2743
2742
2744 2005-08-16 Fernando Perez <fperez@colorado.edu>
2743 2005-08-16 Fernando Perez <fperez@colorado.edu>
2745
2744
2746 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2745 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2747 contains non-string attribute. Closes
2746 contains non-string attribute. Closes
2748 http://www.scipy.net/roundup/ipython/issue38.
2747 http://www.scipy.net/roundup/ipython/issue38.
2749
2748
2750 2005-08-14 Fernando Perez <fperez@colorado.edu>
2749 2005-08-14 Fernando Perez <fperez@colorado.edu>
2751
2750
2752 * tools/ipsvnc: Minor improvements, to add changeset info.
2751 * tools/ipsvnc: Minor improvements, to add changeset info.
2753
2752
2754 2005-08-12 Fernando Perez <fperez@colorado.edu>
2753 2005-08-12 Fernando Perez <fperez@colorado.edu>
2755
2754
2756 * IPython/iplib.py (runsource): remove self.code_to_run_src
2755 * IPython/iplib.py (runsource): remove self.code_to_run_src
2757 attribute. I realized this is nothing more than
2756 attribute. I realized this is nothing more than
2758 '\n'.join(self.buffer), and having the same data in two different
2757 '\n'.join(self.buffer), and having the same data in two different
2759 places is just asking for synchronization bugs. This may impact
2758 places is just asking for synchronization bugs. This may impact
2760 people who have custom exception handlers, so I need to warn
2759 people who have custom exception handlers, so I need to warn
2761 ipython-dev about it (F. Mantegazza may use them).
2760 ipython-dev about it (F. Mantegazza may use them).
2762
2761
2763 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2762 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2764
2763
2765 * IPython/genutils.py: fix 2.2 compatibility (generators)
2764 * IPython/genutils.py: fix 2.2 compatibility (generators)
2766
2765
2767 2005-07-18 Fernando Perez <fperez@colorado.edu>
2766 2005-07-18 Fernando Perez <fperez@colorado.edu>
2768
2767
2769 * IPython/genutils.py (get_home_dir): fix to help users with
2768 * IPython/genutils.py (get_home_dir): fix to help users with
2770 invalid $HOME under win32.
2769 invalid $HOME under win32.
2771
2770
2772 2005-07-17 Fernando Perez <fperez@colorado.edu>
2771 2005-07-17 Fernando Perez <fperez@colorado.edu>
2773
2772
2774 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2773 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2775 some old hacks and clean up a bit other routines; code should be
2774 some old hacks and clean up a bit other routines; code should be
2776 simpler and a bit faster.
2775 simpler and a bit faster.
2777
2776
2778 * IPython/iplib.py (interact): removed some last-resort attempts
2777 * IPython/iplib.py (interact): removed some last-resort attempts
2779 to survive broken stdout/stderr. That code was only making it
2778 to survive broken stdout/stderr. That code was only making it
2780 harder to abstract out the i/o (necessary for gui integration),
2779 harder to abstract out the i/o (necessary for gui integration),
2781 and the crashes it could prevent were extremely rare in practice
2780 and the crashes it could prevent were extremely rare in practice
2782 (besides being fully user-induced in a pretty violent manner).
2781 (besides being fully user-induced in a pretty violent manner).
2783
2782
2784 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2783 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2785 Nothing major yet, but the code is simpler to read; this should
2784 Nothing major yet, but the code is simpler to read; this should
2786 make it easier to do more serious modifications in the future.
2785 make it easier to do more serious modifications in the future.
2787
2786
2788 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2787 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2789 which broke in .15 (thanks to a report by Ville).
2788 which broke in .15 (thanks to a report by Ville).
2790
2789
2791 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2790 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2792 be quite correct, I know next to nothing about unicode). This
2791 be quite correct, I know next to nothing about unicode). This
2793 will allow unicode strings to be used in prompts, amongst other
2792 will allow unicode strings to be used in prompts, amongst other
2794 cases. It also will prevent ipython from crashing when unicode
2793 cases. It also will prevent ipython from crashing when unicode
2795 shows up unexpectedly in many places. If ascii encoding fails, we
2794 shows up unexpectedly in many places. If ascii encoding fails, we
2796 assume utf_8. Currently the encoding is not a user-visible
2795 assume utf_8. Currently the encoding is not a user-visible
2797 setting, though it could be made so if there is demand for it.
2796 setting, though it could be made so if there is demand for it.
2798
2797
2799 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2798 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2800
2799
2801 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2800 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2802
2801
2803 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2802 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2804
2803
2805 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2804 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2806 code can work transparently for 2.2/2.3.
2805 code can work transparently for 2.2/2.3.
2807
2806
2808 2005-07-16 Fernando Perez <fperez@colorado.edu>
2807 2005-07-16 Fernando Perez <fperez@colorado.edu>
2809
2808
2810 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2809 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2811 out of the color scheme table used for coloring exception
2810 out of the color scheme table used for coloring exception
2812 tracebacks. This allows user code to add new schemes at runtime.
2811 tracebacks. This allows user code to add new schemes at runtime.
2813 This is a minimally modified version of the patch at
2812 This is a minimally modified version of the patch at
2814 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2813 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2815 for the contribution.
2814 for the contribution.
2816
2815
2817 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2816 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2818 slightly modified version of the patch in
2817 slightly modified version of the patch in
2819 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2818 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2820 to remove the previous try/except solution (which was costlier).
2819 to remove the previous try/except solution (which was costlier).
2821 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2820 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2822
2821
2823 2005-06-08 Fernando Perez <fperez@colorado.edu>
2822 2005-06-08 Fernando Perez <fperez@colorado.edu>
2824
2823
2825 * IPython/iplib.py (write/write_err): Add methods to abstract all
2824 * IPython/iplib.py (write/write_err): Add methods to abstract all
2826 I/O a bit more.
2825 I/O a bit more.
2827
2826
2828 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2827 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2829 warning, reported by Aric Hagberg, fix by JD Hunter.
2828 warning, reported by Aric Hagberg, fix by JD Hunter.
2830
2829
2831 2005-06-02 *** Released version 0.6.15
2830 2005-06-02 *** Released version 0.6.15
2832
2831
2833 2005-06-01 Fernando Perez <fperez@colorado.edu>
2832 2005-06-01 Fernando Perez <fperez@colorado.edu>
2834
2833
2835 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2834 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2836 tab-completion of filenames within open-quoted strings. Note that
2835 tab-completion of filenames within open-quoted strings. Note that
2837 this requires that in ~/.ipython/ipythonrc, users change the
2836 this requires that in ~/.ipython/ipythonrc, users change the
2838 readline delimiters configuration to read:
2837 readline delimiters configuration to read:
2839
2838
2840 readline_remove_delims -/~
2839 readline_remove_delims -/~
2841
2840
2842
2841
2843 2005-05-31 *** Released version 0.6.14
2842 2005-05-31 *** Released version 0.6.14
2844
2843
2845 2005-05-29 Fernando Perez <fperez@colorado.edu>
2844 2005-05-29 Fernando Perez <fperez@colorado.edu>
2846
2845
2847 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2846 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2848 with files not on the filesystem. Reported by Eliyahu Sandler
2847 with files not on the filesystem. Reported by Eliyahu Sandler
2849 <eli@gondolin.net>
2848 <eli@gondolin.net>
2850
2849
2851 2005-05-22 Fernando Perez <fperez@colorado.edu>
2850 2005-05-22 Fernando Perez <fperez@colorado.edu>
2852
2851
2853 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2852 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2854 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2853 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2855
2854
2856 2005-05-19 Fernando Perez <fperez@colorado.edu>
2855 2005-05-19 Fernando Perez <fperez@colorado.edu>
2857
2856
2858 * IPython/iplib.py (safe_execfile): close a file which could be
2857 * IPython/iplib.py (safe_execfile): close a file which could be
2859 left open (causing problems in win32, which locks open files).
2858 left open (causing problems in win32, which locks open files).
2860 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2859 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2861
2860
2862 2005-05-18 Fernando Perez <fperez@colorado.edu>
2861 2005-05-18 Fernando Perez <fperez@colorado.edu>
2863
2862
2864 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2863 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2865 keyword arguments correctly to safe_execfile().
2864 keyword arguments correctly to safe_execfile().
2866
2865
2867 2005-05-13 Fernando Perez <fperez@colorado.edu>
2866 2005-05-13 Fernando Perez <fperez@colorado.edu>
2868
2867
2869 * ipython.1: Added info about Qt to manpage, and threads warning
2868 * ipython.1: Added info about Qt to manpage, and threads warning
2870 to usage page (invoked with --help).
2869 to usage page (invoked with --help).
2871
2870
2872 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2871 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2873 new matcher (it goes at the end of the priority list) to do
2872 new matcher (it goes at the end of the priority list) to do
2874 tab-completion on named function arguments. Submitted by George
2873 tab-completion on named function arguments. Submitted by George
2875 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2874 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2876 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2875 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2877 for more details.
2876 for more details.
2878
2877
2879 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2878 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2880 SystemExit exceptions in the script being run. Thanks to a report
2879 SystemExit exceptions in the script being run. Thanks to a report
2881 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2880 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2882 producing very annoying behavior when running unit tests.
2881 producing very annoying behavior when running unit tests.
2883
2882
2884 2005-05-12 Fernando Perez <fperez@colorado.edu>
2883 2005-05-12 Fernando Perez <fperez@colorado.edu>
2885
2884
2886 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2885 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2887 which I'd broken (again) due to a changed regexp. In the process,
2886 which I'd broken (again) due to a changed regexp. In the process,
2888 added ';' as an escape to auto-quote the whole line without
2887 added ';' as an escape to auto-quote the whole line without
2889 splitting its arguments. Thanks to a report by Jerry McRae
2888 splitting its arguments. Thanks to a report by Jerry McRae
2890 <qrs0xyc02-AT-sneakemail.com>.
2889 <qrs0xyc02-AT-sneakemail.com>.
2891
2890
2892 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2891 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2893 possible crashes caused by a TokenError. Reported by Ed Schofield
2892 possible crashes caused by a TokenError. Reported by Ed Schofield
2894 <schofield-AT-ftw.at>.
2893 <schofield-AT-ftw.at>.
2895
2894
2896 2005-05-06 Fernando Perez <fperez@colorado.edu>
2895 2005-05-06 Fernando Perez <fperez@colorado.edu>
2897
2896
2898 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2897 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2899
2898
2900 2005-04-29 Fernando Perez <fperez@colorado.edu>
2899 2005-04-29 Fernando Perez <fperez@colorado.edu>
2901
2900
2902 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2901 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2903 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2902 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2904 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2903 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2905 which provides support for Qt interactive usage (similar to the
2904 which provides support for Qt interactive usage (similar to the
2906 existing one for WX and GTK). This had been often requested.
2905 existing one for WX and GTK). This had been often requested.
2907
2906
2908 2005-04-14 *** Released version 0.6.13
2907 2005-04-14 *** Released version 0.6.13
2909
2908
2910 2005-04-08 Fernando Perez <fperez@colorado.edu>
2909 2005-04-08 Fernando Perez <fperez@colorado.edu>
2911
2910
2912 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2911 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2913 from _ofind, which gets called on almost every input line. Now,
2912 from _ofind, which gets called on almost every input line. Now,
2914 we only try to get docstrings if they are actually going to be
2913 we only try to get docstrings if they are actually going to be
2915 used (the overhead of fetching unnecessary docstrings can be
2914 used (the overhead of fetching unnecessary docstrings can be
2916 noticeable for certain objects, such as Pyro proxies).
2915 noticeable for certain objects, such as Pyro proxies).
2917
2916
2918 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2917 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2919 for completers. For some reason I had been passing them the state
2918 for completers. For some reason I had been passing them the state
2920 variable, which completers never actually need, and was in
2919 variable, which completers never actually need, and was in
2921 conflict with the rlcompleter API. Custom completers ONLY need to
2920 conflict with the rlcompleter API. Custom completers ONLY need to
2922 take the text parameter.
2921 take the text parameter.
2923
2922
2924 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2923 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2925 work correctly in pysh. I've also moved all the logic which used
2924 work correctly in pysh. I've also moved all the logic which used
2926 to be in pysh.py here, which will prevent problems with future
2925 to be in pysh.py here, which will prevent problems with future
2927 upgrades. However, this time I must warn users to update their
2926 upgrades. However, this time I must warn users to update their
2928 pysh profile to include the line
2927 pysh profile to include the line
2929
2928
2930 import_all IPython.Extensions.InterpreterExec
2929 import_all IPython.Extensions.InterpreterExec
2931
2930
2932 because otherwise things won't work for them. They MUST also
2931 because otherwise things won't work for them. They MUST also
2933 delete pysh.py and the line
2932 delete pysh.py and the line
2934
2933
2935 execfile pysh.py
2934 execfile pysh.py
2936
2935
2937 from their ipythonrc-pysh.
2936 from their ipythonrc-pysh.
2938
2937
2939 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2938 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2940 robust in the face of objects whose dir() returns non-strings
2939 robust in the face of objects whose dir() returns non-strings
2941 (which it shouldn't, but some broken libs like ITK do). Thanks to
2940 (which it shouldn't, but some broken libs like ITK do). Thanks to
2942 a patch by John Hunter (implemented differently, though). Also
2941 a patch by John Hunter (implemented differently, though). Also
2943 minor improvements by using .extend instead of + on lists.
2942 minor improvements by using .extend instead of + on lists.
2944
2943
2945 * pysh.py:
2944 * pysh.py:
2946
2945
2947 2005-04-06 Fernando Perez <fperez@colorado.edu>
2946 2005-04-06 Fernando Perez <fperez@colorado.edu>
2948
2947
2949 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2948 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2950 by default, so that all users benefit from it. Those who don't
2949 by default, so that all users benefit from it. Those who don't
2951 want it can still turn it off.
2950 want it can still turn it off.
2952
2951
2953 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2952 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2954 config file, I'd forgotten about this, so users were getting it
2953 config file, I'd forgotten about this, so users were getting it
2955 off by default.
2954 off by default.
2956
2955
2957 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2956 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2958 consistency. Now magics can be called in multiline statements,
2957 consistency. Now magics can be called in multiline statements,
2959 and python variables can be expanded in magic calls via $var.
2958 and python variables can be expanded in magic calls via $var.
2960 This makes the magic system behave just like aliases or !system
2959 This makes the magic system behave just like aliases or !system
2961 calls.
2960 calls.
2962
2961
2963 2005-03-28 Fernando Perez <fperez@colorado.edu>
2962 2005-03-28 Fernando Perez <fperez@colorado.edu>
2964
2963
2965 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2964 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2966 expensive string additions for building command. Add support for
2965 expensive string additions for building command. Add support for
2967 trailing ';' when autocall is used.
2966 trailing ';' when autocall is used.
2968
2967
2969 2005-03-26 Fernando Perez <fperez@colorado.edu>
2968 2005-03-26 Fernando Perez <fperez@colorado.edu>
2970
2969
2971 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2970 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2972 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2971 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2973 ipython.el robust against prompts with any number of spaces
2972 ipython.el robust against prompts with any number of spaces
2974 (including 0) after the ':' character.
2973 (including 0) after the ':' character.
2975
2974
2976 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2975 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2977 continuation prompt, which misled users to think the line was
2976 continuation prompt, which misled users to think the line was
2978 already indented. Closes debian Bug#300847, reported to me by
2977 already indented. Closes debian Bug#300847, reported to me by
2979 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2978 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2980
2979
2981 2005-03-23 Fernando Perez <fperez@colorado.edu>
2980 2005-03-23 Fernando Perez <fperez@colorado.edu>
2982
2981
2983 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2982 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2984 properly aligned if they have embedded newlines.
2983 properly aligned if they have embedded newlines.
2985
2984
2986 * IPython/iplib.py (runlines): Add a public method to expose
2985 * IPython/iplib.py (runlines): Add a public method to expose
2987 IPython's code execution machinery, so that users can run strings
2986 IPython's code execution machinery, so that users can run strings
2988 as if they had been typed at the prompt interactively.
2987 as if they had been typed at the prompt interactively.
2989 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2988 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2990 methods which can call the system shell, but with python variable
2989 methods which can call the system shell, but with python variable
2991 expansion. The three such methods are: __IPYTHON__.system,
2990 expansion. The three such methods are: __IPYTHON__.system,
2992 .getoutput and .getoutputerror. These need to be documented in a
2991 .getoutput and .getoutputerror. These need to be documented in a
2993 'public API' section (to be written) of the manual.
2992 'public API' section (to be written) of the manual.
2994
2993
2995 2005-03-20 Fernando Perez <fperez@colorado.edu>
2994 2005-03-20 Fernando Perez <fperez@colorado.edu>
2996
2995
2997 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2996 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2998 for custom exception handling. This is quite powerful, and it
2997 for custom exception handling. This is quite powerful, and it
2999 allows for user-installable exception handlers which can trap
2998 allows for user-installable exception handlers which can trap
3000 custom exceptions at runtime and treat them separately from
2999 custom exceptions at runtime and treat them separately from
3001 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3000 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3002 Mantegazza <mantegazza-AT-ill.fr>.
3001 Mantegazza <mantegazza-AT-ill.fr>.
3003 (InteractiveShell.set_custom_completer): public API function to
3002 (InteractiveShell.set_custom_completer): public API function to
3004 add new completers at runtime.
3003 add new completers at runtime.
3005
3004
3006 2005-03-19 Fernando Perez <fperez@colorado.edu>
3005 2005-03-19 Fernando Perez <fperez@colorado.edu>
3007
3006
3008 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3007 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3009 allow objects which provide their docstrings via non-standard
3008 allow objects which provide their docstrings via non-standard
3010 mechanisms (like Pyro proxies) to still be inspected by ipython's
3009 mechanisms (like Pyro proxies) to still be inspected by ipython's
3011 ? system.
3010 ? system.
3012
3011
3013 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3012 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3014 automatic capture system. I tried quite hard to make it work
3013 automatic capture system. I tried quite hard to make it work
3015 reliably, and simply failed. I tried many combinations with the
3014 reliably, and simply failed. I tried many combinations with the
3016 subprocess module, but eventually nothing worked in all needed
3015 subprocess module, but eventually nothing worked in all needed
3017 cases (not blocking stdin for the child, duplicating stdout
3016 cases (not blocking stdin for the child, duplicating stdout
3018 without blocking, etc). The new %sc/%sx still do capture to these
3017 without blocking, etc). The new %sc/%sx still do capture to these
3019 magical list/string objects which make shell use much more
3018 magical list/string objects which make shell use much more
3020 conveninent, so not all is lost.
3019 conveninent, so not all is lost.
3021
3020
3022 XXX - FIX MANUAL for the change above!
3021 XXX - FIX MANUAL for the change above!
3023
3022
3024 (runsource): I copied code.py's runsource() into ipython to modify
3023 (runsource): I copied code.py's runsource() into ipython to modify
3025 it a bit. Now the code object and source to be executed are
3024 it a bit. Now the code object and source to be executed are
3026 stored in ipython. This makes this info accessible to third-party
3025 stored in ipython. This makes this info accessible to third-party
3027 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3026 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3028 Mantegazza <mantegazza-AT-ill.fr>.
3027 Mantegazza <mantegazza-AT-ill.fr>.
3029
3028
3030 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3029 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3031 history-search via readline (like C-p/C-n). I'd wanted this for a
3030 history-search via readline (like C-p/C-n). I'd wanted this for a
3032 long time, but only recently found out how to do it. For users
3031 long time, but only recently found out how to do it. For users
3033 who already have their ipythonrc files made and want this, just
3032 who already have their ipythonrc files made and want this, just
3034 add:
3033 add:
3035
3034
3036 readline_parse_and_bind "\e[A": history-search-backward
3035 readline_parse_and_bind "\e[A": history-search-backward
3037 readline_parse_and_bind "\e[B": history-search-forward
3036 readline_parse_and_bind "\e[B": history-search-forward
3038
3037
3039 2005-03-18 Fernando Perez <fperez@colorado.edu>
3038 2005-03-18 Fernando Perez <fperez@colorado.edu>
3040
3039
3041 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3040 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3042 LSString and SList classes which allow transparent conversions
3041 LSString and SList classes which allow transparent conversions
3043 between list mode and whitespace-separated string.
3042 between list mode and whitespace-separated string.
3044 (magic_r): Fix recursion problem in %r.
3043 (magic_r): Fix recursion problem in %r.
3045
3044
3046 * IPython/genutils.py (LSString): New class to be used for
3045 * IPython/genutils.py (LSString): New class to be used for
3047 automatic storage of the results of all alias/system calls in _o
3046 automatic storage of the results of all alias/system calls in _o
3048 and _e (stdout/err). These provide a .l/.list attribute which
3047 and _e (stdout/err). These provide a .l/.list attribute which
3049 does automatic splitting on newlines. This means that for most
3048 does automatic splitting on newlines. This means that for most
3050 uses, you'll never need to do capturing of output with %sc/%sx
3049 uses, you'll never need to do capturing of output with %sc/%sx
3051 anymore, since ipython keeps this always done for you. Note that
3050 anymore, since ipython keeps this always done for you. Note that
3052 only the LAST results are stored, the _o/e variables are
3051 only the LAST results are stored, the _o/e variables are
3053 overwritten on each call. If you need to save their contents
3052 overwritten on each call. If you need to save their contents
3054 further, simply bind them to any other name.
3053 further, simply bind them to any other name.
3055
3054
3056 2005-03-17 Fernando Perez <fperez@colorado.edu>
3055 2005-03-17 Fernando Perez <fperez@colorado.edu>
3057
3056
3058 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3057 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3059 prompt namespace handling.
3058 prompt namespace handling.
3060
3059
3061 2005-03-16 Fernando Perez <fperez@colorado.edu>
3060 2005-03-16 Fernando Perez <fperez@colorado.edu>
3062
3061
3063 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3062 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3064 classic prompts to be '>>> ' (final space was missing, and it
3063 classic prompts to be '>>> ' (final space was missing, and it
3065 trips the emacs python mode).
3064 trips the emacs python mode).
3066 (BasePrompt.__str__): Added safe support for dynamic prompt
3065 (BasePrompt.__str__): Added safe support for dynamic prompt
3067 strings. Now you can set your prompt string to be '$x', and the
3066 strings. Now you can set your prompt string to be '$x', and the
3068 value of x will be printed from your interactive namespace. The
3067 value of x will be printed from your interactive namespace. The
3069 interpolation syntax includes the full Itpl support, so
3068 interpolation syntax includes the full Itpl support, so
3070 ${foo()+x+bar()} is a valid prompt string now, and the function
3069 ${foo()+x+bar()} is a valid prompt string now, and the function
3071 calls will be made at runtime.
3070 calls will be made at runtime.
3072
3071
3073 2005-03-15 Fernando Perez <fperez@colorado.edu>
3072 2005-03-15 Fernando Perez <fperez@colorado.edu>
3074
3073
3075 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3074 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3076 avoid name clashes in pylab. %hist still works, it just forwards
3075 avoid name clashes in pylab. %hist still works, it just forwards
3077 the call to %history.
3076 the call to %history.
3078
3077
3079 2005-03-02 *** Released version 0.6.12
3078 2005-03-02 *** Released version 0.6.12
3080
3079
3081 2005-03-02 Fernando Perez <fperez@colorado.edu>
3080 2005-03-02 Fernando Perez <fperez@colorado.edu>
3082
3081
3083 * IPython/iplib.py (handle_magic): log magic calls properly as
3082 * IPython/iplib.py (handle_magic): log magic calls properly as
3084 ipmagic() function calls.
3083 ipmagic() function calls.
3085
3084
3086 * IPython/Magic.py (magic_time): Improved %time to support
3085 * IPython/Magic.py (magic_time): Improved %time to support
3087 statements and provide wall-clock as well as CPU time.
3086 statements and provide wall-clock as well as CPU time.
3088
3087
3089 2005-02-27 Fernando Perez <fperez@colorado.edu>
3088 2005-02-27 Fernando Perez <fperez@colorado.edu>
3090
3089
3091 * IPython/hooks.py: New hooks module, to expose user-modifiable
3090 * IPython/hooks.py: New hooks module, to expose user-modifiable
3092 IPython functionality in a clean manner. For now only the editor
3091 IPython functionality in a clean manner. For now only the editor
3093 hook is actually written, and other thigns which I intend to turn
3092 hook is actually written, and other thigns which I intend to turn
3094 into proper hooks aren't yet there. The display and prefilter
3093 into proper hooks aren't yet there. The display and prefilter
3095 stuff, for example, should be hooks. But at least now the
3094 stuff, for example, should be hooks. But at least now the
3096 framework is in place, and the rest can be moved here with more
3095 framework is in place, and the rest can be moved here with more
3097 time later. IPython had had a .hooks variable for a long time for
3096 time later. IPython had had a .hooks variable for a long time for
3098 this purpose, but I'd never actually used it for anything.
3097 this purpose, but I'd never actually used it for anything.
3099
3098
3100 2005-02-26 Fernando Perez <fperez@colorado.edu>
3099 2005-02-26 Fernando Perez <fperez@colorado.edu>
3101
3100
3102 * IPython/ipmaker.py (make_IPython): make the default ipython
3101 * IPython/ipmaker.py (make_IPython): make the default ipython
3103 directory be called _ipython under win32, to follow more the
3102 directory be called _ipython under win32, to follow more the
3104 naming peculiarities of that platform (where buggy software like
3103 naming peculiarities of that platform (where buggy software like
3105 Visual Sourcesafe breaks with .named directories). Reported by
3104 Visual Sourcesafe breaks with .named directories). Reported by
3106 Ville Vainio.
3105 Ville Vainio.
3107
3106
3108 2005-02-23 Fernando Perez <fperez@colorado.edu>
3107 2005-02-23 Fernando Perez <fperez@colorado.edu>
3109
3108
3110 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3109 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3111 auto_aliases for win32 which were causing problems. Users can
3110 auto_aliases for win32 which were causing problems. Users can
3112 define the ones they personally like.
3111 define the ones they personally like.
3113
3112
3114 2005-02-21 Fernando Perez <fperez@colorado.edu>
3113 2005-02-21 Fernando Perez <fperez@colorado.edu>
3115
3114
3116 * IPython/Magic.py (magic_time): new magic to time execution of
3115 * IPython/Magic.py (magic_time): new magic to time execution of
3117 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3116 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3118
3117
3119 2005-02-19 Fernando Perez <fperez@colorado.edu>
3118 2005-02-19 Fernando Perez <fperez@colorado.edu>
3120
3119
3121 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3120 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3122 into keys (for prompts, for example).
3121 into keys (for prompts, for example).
3123
3122
3124 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3123 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3125 prompts in case users want them. This introduces a small behavior
3124 prompts in case users want them. This introduces a small behavior
3126 change: ipython does not automatically add a space to all prompts
3125 change: ipython does not automatically add a space to all prompts
3127 anymore. To get the old prompts with a space, users should add it
3126 anymore. To get the old prompts with a space, users should add it
3128 manually to their ipythonrc file, so for example prompt_in1 should
3127 manually to their ipythonrc file, so for example prompt_in1 should
3129 now read 'In [\#]: ' instead of 'In [\#]:'.
3128 now read 'In [\#]: ' instead of 'In [\#]:'.
3130 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3129 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3131 file) to control left-padding of secondary prompts.
3130 file) to control left-padding of secondary prompts.
3132
3131
3133 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3132 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3134 the profiler can't be imported. Fix for Debian, which removed
3133 the profiler can't be imported. Fix for Debian, which removed
3135 profile.py because of License issues. I applied a slightly
3134 profile.py because of License issues. I applied a slightly
3136 modified version of the original Debian patch at
3135 modified version of the original Debian patch at
3137 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3136 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3138
3137
3139 2005-02-17 Fernando Perez <fperez@colorado.edu>
3138 2005-02-17 Fernando Perez <fperez@colorado.edu>
3140
3139
3141 * IPython/genutils.py (native_line_ends): Fix bug which would
3140 * IPython/genutils.py (native_line_ends): Fix bug which would
3142 cause improper line-ends under win32 b/c I was not opening files
3141 cause improper line-ends under win32 b/c I was not opening files
3143 in binary mode. Bug report and fix thanks to Ville.
3142 in binary mode. Bug report and fix thanks to Ville.
3144
3143
3145 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3144 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3146 trying to catch spurious foo[1] autocalls. My fix actually broke
3145 trying to catch spurious foo[1] autocalls. My fix actually broke
3147 ',/' autoquote/call with explicit escape (bad regexp).
3146 ',/' autoquote/call with explicit escape (bad regexp).
3148
3147
3149 2005-02-15 *** Released version 0.6.11
3148 2005-02-15 *** Released version 0.6.11
3150
3149
3151 2005-02-14 Fernando Perez <fperez@colorado.edu>
3150 2005-02-14 Fernando Perez <fperez@colorado.edu>
3152
3151
3153 * IPython/background_jobs.py: New background job management
3152 * IPython/background_jobs.py: New background job management
3154 subsystem. This is implemented via a new set of classes, and
3153 subsystem. This is implemented via a new set of classes, and
3155 IPython now provides a builtin 'jobs' object for background job
3154 IPython now provides a builtin 'jobs' object for background job
3156 execution. A convenience %bg magic serves as a lightweight
3155 execution. A convenience %bg magic serves as a lightweight
3157 frontend for starting the more common type of calls. This was
3156 frontend for starting the more common type of calls. This was
3158 inspired by discussions with B. Granger and the BackgroundCommand
3157 inspired by discussions with B. Granger and the BackgroundCommand
3159 class described in the book Python Scripting for Computational
3158 class described in the book Python Scripting for Computational
3160 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3159 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3161 (although ultimately no code from this text was used, as IPython's
3160 (although ultimately no code from this text was used, as IPython's
3162 system is a separate implementation).
3161 system is a separate implementation).
3163
3162
3164 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3163 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3165 to control the completion of single/double underscore names
3164 to control the completion of single/double underscore names
3166 separately. As documented in the example ipytonrc file, the
3165 separately. As documented in the example ipytonrc file, the
3167 readline_omit__names variable can now be set to 2, to omit even
3166 readline_omit__names variable can now be set to 2, to omit even
3168 single underscore names. Thanks to a patch by Brian Wong
3167 single underscore names. Thanks to a patch by Brian Wong
3169 <BrianWong-AT-AirgoNetworks.Com>.
3168 <BrianWong-AT-AirgoNetworks.Com>.
3170 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3169 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3171 be autocalled as foo([1]) if foo were callable. A problem for
3170 be autocalled as foo([1]) if foo were callable. A problem for
3172 things which are both callable and implement __getitem__.
3171 things which are both callable and implement __getitem__.
3173 (init_readline): Fix autoindentation for win32. Thanks to a patch
3172 (init_readline): Fix autoindentation for win32. Thanks to a patch
3174 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3173 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3175
3174
3176 2005-02-12 Fernando Perez <fperez@colorado.edu>
3175 2005-02-12 Fernando Perez <fperez@colorado.edu>
3177
3176
3178 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3177 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3179 which I had written long ago to sort out user error messages which
3178 which I had written long ago to sort out user error messages which
3180 may occur during startup. This seemed like a good idea initially,
3179 may occur during startup. This seemed like a good idea initially,
3181 but it has proven a disaster in retrospect. I don't want to
3180 but it has proven a disaster in retrospect. I don't want to
3182 change much code for now, so my fix is to set the internal 'debug'
3181 change much code for now, so my fix is to set the internal 'debug'
3183 flag to true everywhere, whose only job was precisely to control
3182 flag to true everywhere, whose only job was precisely to control
3184 this subsystem. This closes issue 28 (as well as avoiding all
3183 this subsystem. This closes issue 28 (as well as avoiding all
3185 sorts of strange hangups which occur from time to time).
3184 sorts of strange hangups which occur from time to time).
3186
3185
3187 2005-02-07 Fernando Perez <fperez@colorado.edu>
3186 2005-02-07 Fernando Perez <fperez@colorado.edu>
3188
3187
3189 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3188 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3190 previous call produced a syntax error.
3189 previous call produced a syntax error.
3191
3190
3192 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3191 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3193 classes without constructor.
3192 classes without constructor.
3194
3193
3195 2005-02-06 Fernando Perez <fperez@colorado.edu>
3194 2005-02-06 Fernando Perez <fperez@colorado.edu>
3196
3195
3197 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3196 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3198 completions with the results of each matcher, so we return results
3197 completions with the results of each matcher, so we return results
3199 to the user from all namespaces. This breaks with ipython
3198 to the user from all namespaces. This breaks with ipython
3200 tradition, but I think it's a nicer behavior. Now you get all
3199 tradition, but I think it's a nicer behavior. Now you get all
3201 possible completions listed, from all possible namespaces (python,
3200 possible completions listed, from all possible namespaces (python,
3202 filesystem, magics...) After a request by John Hunter
3201 filesystem, magics...) After a request by John Hunter
3203 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3202 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3204
3203
3205 2005-02-05 Fernando Perez <fperez@colorado.edu>
3204 2005-02-05 Fernando Perez <fperez@colorado.edu>
3206
3205
3207 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3206 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3208 the call had quote characters in it (the quotes were stripped).
3207 the call had quote characters in it (the quotes were stripped).
3209
3208
3210 2005-01-31 Fernando Perez <fperez@colorado.edu>
3209 2005-01-31 Fernando Perez <fperez@colorado.edu>
3211
3210
3212 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3211 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3213 Itpl.itpl() to make the code more robust against psyco
3212 Itpl.itpl() to make the code more robust against psyco
3214 optimizations.
3213 optimizations.
3215
3214
3216 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3215 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3217 of causing an exception. Quicker, cleaner.
3216 of causing an exception. Quicker, cleaner.
3218
3217
3219 2005-01-28 Fernando Perez <fperez@colorado.edu>
3218 2005-01-28 Fernando Perez <fperez@colorado.edu>
3220
3219
3221 * scripts/ipython_win_post_install.py (install): hardcode
3220 * scripts/ipython_win_post_install.py (install): hardcode
3222 sys.prefix+'python.exe' as the executable path. It turns out that
3221 sys.prefix+'python.exe' as the executable path. It turns out that
3223 during the post-installation run, sys.executable resolves to the
3222 during the post-installation run, sys.executable resolves to the
3224 name of the binary installer! I should report this as a distutils
3223 name of the binary installer! I should report this as a distutils
3225 bug, I think. I updated the .10 release with this tiny fix, to
3224 bug, I think. I updated the .10 release with this tiny fix, to
3226 avoid annoying the lists further.
3225 avoid annoying the lists further.
3227
3226
3228 2005-01-27 *** Released version 0.6.10
3227 2005-01-27 *** Released version 0.6.10
3229
3228
3230 2005-01-27 Fernando Perez <fperez@colorado.edu>
3229 2005-01-27 Fernando Perez <fperez@colorado.edu>
3231
3230
3232 * IPython/numutils.py (norm): Added 'inf' as optional name for
3231 * IPython/numutils.py (norm): Added 'inf' as optional name for
3233 L-infinity norm, included references to mathworld.com for vector
3232 L-infinity norm, included references to mathworld.com for vector
3234 norm definitions.
3233 norm definitions.
3235 (amin/amax): added amin/amax for array min/max. Similar to what
3234 (amin/amax): added amin/amax for array min/max. Similar to what
3236 pylab ships with after the recent reorganization of names.
3235 pylab ships with after the recent reorganization of names.
3237 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3236 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3238
3237
3239 * ipython.el: committed Alex's recent fixes and improvements.
3238 * ipython.el: committed Alex's recent fixes and improvements.
3240 Tested with python-mode from CVS, and it looks excellent. Since
3239 Tested with python-mode from CVS, and it looks excellent. Since
3241 python-mode hasn't released anything in a while, I'm temporarily
3240 python-mode hasn't released anything in a while, I'm temporarily
3242 putting a copy of today's CVS (v 4.70) of python-mode in:
3241 putting a copy of today's CVS (v 4.70) of python-mode in:
3243 http://ipython.scipy.org/tmp/python-mode.el
3242 http://ipython.scipy.org/tmp/python-mode.el
3244
3243
3245 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3244 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3246 sys.executable for the executable name, instead of assuming it's
3245 sys.executable for the executable name, instead of assuming it's
3247 called 'python.exe' (the post-installer would have produced broken
3246 called 'python.exe' (the post-installer would have produced broken
3248 setups on systems with a differently named python binary).
3247 setups on systems with a differently named python binary).
3249
3248
3250 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3249 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3251 references to os.linesep, to make the code more
3250 references to os.linesep, to make the code more
3252 platform-independent. This is also part of the win32 coloring
3251 platform-independent. This is also part of the win32 coloring
3253 fixes.
3252 fixes.
3254
3253
3255 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3254 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3256 lines, which actually cause coloring bugs because the length of
3255 lines, which actually cause coloring bugs because the length of
3257 the line is very difficult to correctly compute with embedded
3256 the line is very difficult to correctly compute with embedded
3258 escapes. This was the source of all the coloring problems under
3257 escapes. This was the source of all the coloring problems under
3259 Win32. I think that _finally_, Win32 users have a properly
3258 Win32. I think that _finally_, Win32 users have a properly
3260 working ipython in all respects. This would never have happened
3259 working ipython in all respects. This would never have happened
3261 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3260 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3262
3261
3263 2005-01-26 *** Released version 0.6.9
3262 2005-01-26 *** Released version 0.6.9
3264
3263
3265 2005-01-25 Fernando Perez <fperez@colorado.edu>
3264 2005-01-25 Fernando Perez <fperez@colorado.edu>
3266
3265
3267 * setup.py: finally, we have a true Windows installer, thanks to
3266 * setup.py: finally, we have a true Windows installer, thanks to
3268 the excellent work of Viktor Ransmayr
3267 the excellent work of Viktor Ransmayr
3269 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3268 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3270 Windows users. The setup routine is quite a bit cleaner thanks to
3269 Windows users. The setup routine is quite a bit cleaner thanks to
3271 this, and the post-install script uses the proper functions to
3270 this, and the post-install script uses the proper functions to
3272 allow a clean de-installation using the standard Windows Control
3271 allow a clean de-installation using the standard Windows Control
3273 Panel.
3272 Panel.
3274
3273
3275 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3274 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3276 environment variable under all OSes (including win32) if
3275 environment variable under all OSes (including win32) if
3277 available. This will give consistency to win32 users who have set
3276 available. This will give consistency to win32 users who have set
3278 this variable for any reason. If os.environ['HOME'] fails, the
3277 this variable for any reason. If os.environ['HOME'] fails, the
3279 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3278 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3280
3279
3281 2005-01-24 Fernando Perez <fperez@colorado.edu>
3280 2005-01-24 Fernando Perez <fperez@colorado.edu>
3282
3281
3283 * IPython/numutils.py (empty_like): add empty_like(), similar to
3282 * IPython/numutils.py (empty_like): add empty_like(), similar to
3284 zeros_like() but taking advantage of the new empty() Numeric routine.
3283 zeros_like() but taking advantage of the new empty() Numeric routine.
3285
3284
3286 2005-01-23 *** Released version 0.6.8
3285 2005-01-23 *** Released version 0.6.8
3287
3286
3288 2005-01-22 Fernando Perez <fperez@colorado.edu>
3287 2005-01-22 Fernando Perez <fperez@colorado.edu>
3289
3288
3290 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3289 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3291 automatic show() calls. After discussing things with JDH, it
3290 automatic show() calls. After discussing things with JDH, it
3292 turns out there are too many corner cases where this can go wrong.
3291 turns out there are too many corner cases where this can go wrong.
3293 It's best not to try to be 'too smart', and simply have ipython
3292 It's best not to try to be 'too smart', and simply have ipython
3294 reproduce as much as possible the default behavior of a normal
3293 reproduce as much as possible the default behavior of a normal
3295 python shell.
3294 python shell.
3296
3295
3297 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3296 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3298 line-splitting regexp and _prefilter() to avoid calling getattr()
3297 line-splitting regexp and _prefilter() to avoid calling getattr()
3299 on assignments. This closes
3298 on assignments. This closes
3300 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3299 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3301 readline uses getattr(), so a simple <TAB> keypress is still
3300 readline uses getattr(), so a simple <TAB> keypress is still
3302 enough to trigger getattr() calls on an object.
3301 enough to trigger getattr() calls on an object.
3303
3302
3304 2005-01-21 Fernando Perez <fperez@colorado.edu>
3303 2005-01-21 Fernando Perez <fperez@colorado.edu>
3305
3304
3306 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3305 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3307 docstring under pylab so it doesn't mask the original.
3306 docstring under pylab so it doesn't mask the original.
3308
3307
3309 2005-01-21 *** Released version 0.6.7
3308 2005-01-21 *** Released version 0.6.7
3310
3309
3311 2005-01-21 Fernando Perez <fperez@colorado.edu>
3310 2005-01-21 Fernando Perez <fperez@colorado.edu>
3312
3311
3313 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3312 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3314 signal handling for win32 users in multithreaded mode.
3313 signal handling for win32 users in multithreaded mode.
3315
3314
3316 2005-01-17 Fernando Perez <fperez@colorado.edu>
3315 2005-01-17 Fernando Perez <fperez@colorado.edu>
3317
3316
3318 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3317 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3319 instances with no __init__. After a crash report by Norbert Nemec
3318 instances with no __init__. After a crash report by Norbert Nemec
3320 <Norbert-AT-nemec-online.de>.
3319 <Norbert-AT-nemec-online.de>.
3321
3320
3322 2005-01-14 Fernando Perez <fperez@colorado.edu>
3321 2005-01-14 Fernando Perez <fperez@colorado.edu>
3323
3322
3324 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3323 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3325 names for verbose exceptions, when multiple dotted names and the
3324 names for verbose exceptions, when multiple dotted names and the
3326 'parent' object were present on the same line.
3325 'parent' object were present on the same line.
3327
3326
3328 2005-01-11 Fernando Perez <fperez@colorado.edu>
3327 2005-01-11 Fernando Perez <fperez@colorado.edu>
3329
3328
3330 * IPython/genutils.py (flag_calls): new utility to trap and flag
3329 * IPython/genutils.py (flag_calls): new utility to trap and flag
3331 calls in functions. I need it to clean up matplotlib support.
3330 calls in functions. I need it to clean up matplotlib support.
3332 Also removed some deprecated code in genutils.
3331 Also removed some deprecated code in genutils.
3333
3332
3334 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3333 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3335 that matplotlib scripts called with %run, which don't call show()
3334 that matplotlib scripts called with %run, which don't call show()
3336 themselves, still have their plotting windows open.
3335 themselves, still have their plotting windows open.
3337
3336
3338 2005-01-05 Fernando Perez <fperez@colorado.edu>
3337 2005-01-05 Fernando Perez <fperez@colorado.edu>
3339
3338
3340 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3339 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3341 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3340 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3342
3341
3343 2004-12-19 Fernando Perez <fperez@colorado.edu>
3342 2004-12-19 Fernando Perez <fperez@colorado.edu>
3344
3343
3345 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3344 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3346 parent_runcode, which was an eyesore. The same result can be
3345 parent_runcode, which was an eyesore. The same result can be
3347 obtained with Python's regular superclass mechanisms.
3346 obtained with Python's regular superclass mechanisms.
3348
3347
3349 2004-12-17 Fernando Perez <fperez@colorado.edu>
3348 2004-12-17 Fernando Perez <fperez@colorado.edu>
3350
3349
3351 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3350 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3352 reported by Prabhu.
3351 reported by Prabhu.
3353 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3352 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3354 sys.stderr) instead of explicitly calling sys.stderr. This helps
3353 sys.stderr) instead of explicitly calling sys.stderr. This helps
3355 maintain our I/O abstractions clean, for future GUI embeddings.
3354 maintain our I/O abstractions clean, for future GUI embeddings.
3356
3355
3357 * IPython/genutils.py (info): added new utility for sys.stderr
3356 * IPython/genutils.py (info): added new utility for sys.stderr
3358 unified info message handling (thin wrapper around warn()).
3357 unified info message handling (thin wrapper around warn()).
3359
3358
3360 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3359 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3361 composite (dotted) names on verbose exceptions.
3360 composite (dotted) names on verbose exceptions.
3362 (VerboseTB.nullrepr): harden against another kind of errors which
3361 (VerboseTB.nullrepr): harden against another kind of errors which
3363 Python's inspect module can trigger, and which were crashing
3362 Python's inspect module can trigger, and which were crashing
3364 IPython. Thanks to a report by Marco Lombardi
3363 IPython. Thanks to a report by Marco Lombardi
3365 <mlombard-AT-ma010192.hq.eso.org>.
3364 <mlombard-AT-ma010192.hq.eso.org>.
3366
3365
3367 2004-12-13 *** Released version 0.6.6
3366 2004-12-13 *** Released version 0.6.6
3368
3367
3369 2004-12-12 Fernando Perez <fperez@colorado.edu>
3368 2004-12-12 Fernando Perez <fperez@colorado.edu>
3370
3369
3371 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3370 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3372 generated by pygtk upon initialization if it was built without
3371 generated by pygtk upon initialization if it was built without
3373 threads (for matplotlib users). After a crash reported by
3372 threads (for matplotlib users). After a crash reported by
3374 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3373 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3375
3374
3376 * IPython/ipmaker.py (make_IPython): fix small bug in the
3375 * IPython/ipmaker.py (make_IPython): fix small bug in the
3377 import_some parameter for multiple imports.
3376 import_some parameter for multiple imports.
3378
3377
3379 * IPython/iplib.py (ipmagic): simplified the interface of
3378 * IPython/iplib.py (ipmagic): simplified the interface of
3380 ipmagic() to take a single string argument, just as it would be
3379 ipmagic() to take a single string argument, just as it would be
3381 typed at the IPython cmd line.
3380 typed at the IPython cmd line.
3382 (ipalias): Added new ipalias() with an interface identical to
3381 (ipalias): Added new ipalias() with an interface identical to
3383 ipmagic(). This completes exposing a pure python interface to the
3382 ipmagic(). This completes exposing a pure python interface to the
3384 alias and magic system, which can be used in loops or more complex
3383 alias and magic system, which can be used in loops or more complex
3385 code where IPython's automatic line mangling is not active.
3384 code where IPython's automatic line mangling is not active.
3386
3385
3387 * IPython/genutils.py (timing): changed interface of timing to
3386 * IPython/genutils.py (timing): changed interface of timing to
3388 simply run code once, which is the most common case. timings()
3387 simply run code once, which is the most common case. timings()
3389 remains unchanged, for the cases where you want multiple runs.
3388 remains unchanged, for the cases where you want multiple runs.
3390
3389
3391 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3390 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3392 bug where Python2.2 crashes with exec'ing code which does not end
3391 bug where Python2.2 crashes with exec'ing code which does not end
3393 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3392 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3394 before.
3393 before.
3395
3394
3396 2004-12-10 Fernando Perez <fperez@colorado.edu>
3395 2004-12-10 Fernando Perez <fperez@colorado.edu>
3397
3396
3398 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3397 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3399 -t to -T, to accomodate the new -t flag in %run (the %run and
3398 -t to -T, to accomodate the new -t flag in %run (the %run and
3400 %prun options are kind of intermixed, and it's not easy to change
3399 %prun options are kind of intermixed, and it's not easy to change
3401 this with the limitations of python's getopt).
3400 this with the limitations of python's getopt).
3402
3401
3403 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3402 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3404 the execution of scripts. It's not as fine-tuned as timeit.py,
3403 the execution of scripts. It's not as fine-tuned as timeit.py,
3405 but it works from inside ipython (and under 2.2, which lacks
3404 but it works from inside ipython (and under 2.2, which lacks
3406 timeit.py). Optionally a number of runs > 1 can be given for
3405 timeit.py). Optionally a number of runs > 1 can be given for
3407 timing very short-running code.
3406 timing very short-running code.
3408
3407
3409 * IPython/genutils.py (uniq_stable): new routine which returns a
3408 * IPython/genutils.py (uniq_stable): new routine which returns a
3410 list of unique elements in any iterable, but in stable order of
3409 list of unique elements in any iterable, but in stable order of
3411 appearance. I needed this for the ultraTB fixes, and it's a handy
3410 appearance. I needed this for the ultraTB fixes, and it's a handy
3412 utility.
3411 utility.
3413
3412
3414 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3413 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3415 dotted names in Verbose exceptions. This had been broken since
3414 dotted names in Verbose exceptions. This had been broken since
3416 the very start, now x.y will properly be printed in a Verbose
3415 the very start, now x.y will properly be printed in a Verbose
3417 traceback, instead of x being shown and y appearing always as an
3416 traceback, instead of x being shown and y appearing always as an
3418 'undefined global'. Getting this to work was a bit tricky,
3417 'undefined global'. Getting this to work was a bit tricky,
3419 because by default python tokenizers are stateless. Saved by
3418 because by default python tokenizers are stateless. Saved by
3420 python's ability to easily add a bit of state to an arbitrary
3419 python's ability to easily add a bit of state to an arbitrary
3421 function (without needing to build a full-blown callable object).
3420 function (without needing to build a full-blown callable object).
3422
3421
3423 Also big cleanup of this code, which had horrendous runtime
3422 Also big cleanup of this code, which had horrendous runtime
3424 lookups of zillions of attributes for colorization. Moved all
3423 lookups of zillions of attributes for colorization. Moved all
3425 this code into a few templates, which make it cleaner and quicker.
3424 this code into a few templates, which make it cleaner and quicker.
3426
3425
3427 Printout quality was also improved for Verbose exceptions: one
3426 Printout quality was also improved for Verbose exceptions: one
3428 variable per line, and memory addresses are printed (this can be
3427 variable per line, and memory addresses are printed (this can be
3429 quite handy in nasty debugging situations, which is what Verbose
3428 quite handy in nasty debugging situations, which is what Verbose
3430 is for).
3429 is for).
3431
3430
3432 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3431 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3433 the command line as scripts to be loaded by embedded instances.
3432 the command line as scripts to be loaded by embedded instances.
3434 Doing so has the potential for an infinite recursion if there are
3433 Doing so has the potential for an infinite recursion if there are
3435 exceptions thrown in the process. This fixes a strange crash
3434 exceptions thrown in the process. This fixes a strange crash
3436 reported by Philippe MULLER <muller-AT-irit.fr>.
3435 reported by Philippe MULLER <muller-AT-irit.fr>.
3437
3436
3438 2004-12-09 Fernando Perez <fperez@colorado.edu>
3437 2004-12-09 Fernando Perez <fperez@colorado.edu>
3439
3438
3440 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3439 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3441 to reflect new names in matplotlib, which now expose the
3440 to reflect new names in matplotlib, which now expose the
3442 matlab-compatible interface via a pylab module instead of the
3441 matlab-compatible interface via a pylab module instead of the
3443 'matlab' name. The new code is backwards compatible, so users of
3442 'matlab' name. The new code is backwards compatible, so users of
3444 all matplotlib versions are OK. Patch by J. Hunter.
3443 all matplotlib versions are OK. Patch by J. Hunter.
3445
3444
3446 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3445 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3447 of __init__ docstrings for instances (class docstrings are already
3446 of __init__ docstrings for instances (class docstrings are already
3448 automatically printed). Instances with customized docstrings
3447 automatically printed). Instances with customized docstrings
3449 (indep. of the class) are also recognized and all 3 separate
3448 (indep. of the class) are also recognized and all 3 separate
3450 docstrings are printed (instance, class, constructor). After some
3449 docstrings are printed (instance, class, constructor). After some
3451 comments/suggestions by J. Hunter.
3450 comments/suggestions by J. Hunter.
3452
3451
3453 2004-12-05 Fernando Perez <fperez@colorado.edu>
3452 2004-12-05 Fernando Perez <fperez@colorado.edu>
3454
3453
3455 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3454 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3456 warnings when tab-completion fails and triggers an exception.
3455 warnings when tab-completion fails and triggers an exception.
3457
3456
3458 2004-12-03 Fernando Perez <fperez@colorado.edu>
3457 2004-12-03 Fernando Perez <fperez@colorado.edu>
3459
3458
3460 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3459 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3461 be triggered when using 'run -p'. An incorrect option flag was
3460 be triggered when using 'run -p'. An incorrect option flag was
3462 being set ('d' instead of 'D').
3461 being set ('d' instead of 'D').
3463 (manpage): fix missing escaped \- sign.
3462 (manpage): fix missing escaped \- sign.
3464
3463
3465 2004-11-30 *** Released version 0.6.5
3464 2004-11-30 *** Released version 0.6.5
3466
3465
3467 2004-11-30 Fernando Perez <fperez@colorado.edu>
3466 2004-11-30 Fernando Perez <fperez@colorado.edu>
3468
3467
3469 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3468 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3470 setting with -d option.
3469 setting with -d option.
3471
3470
3472 * setup.py (docfiles): Fix problem where the doc glob I was using
3471 * setup.py (docfiles): Fix problem where the doc glob I was using
3473 was COMPLETELY BROKEN. It was giving the right files by pure
3472 was COMPLETELY BROKEN. It was giving the right files by pure
3474 accident, but failed once I tried to include ipython.el. Note:
3473 accident, but failed once I tried to include ipython.el. Note:
3475 glob() does NOT allow you to do exclusion on multiple endings!
3474 glob() does NOT allow you to do exclusion on multiple endings!
3476
3475
3477 2004-11-29 Fernando Perez <fperez@colorado.edu>
3476 2004-11-29 Fernando Perez <fperez@colorado.edu>
3478
3477
3479 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3478 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3480 the manpage as the source. Better formatting & consistency.
3479 the manpage as the source. Better formatting & consistency.
3481
3480
3482 * IPython/Magic.py (magic_run): Added new -d option, to run
3481 * IPython/Magic.py (magic_run): Added new -d option, to run
3483 scripts under the control of the python pdb debugger. Note that
3482 scripts under the control of the python pdb debugger. Note that
3484 this required changing the %prun option -d to -D, to avoid a clash
3483 this required changing the %prun option -d to -D, to avoid a clash
3485 (since %run must pass options to %prun, and getopt is too dumb to
3484 (since %run must pass options to %prun, and getopt is too dumb to
3486 handle options with string values with embedded spaces). Thanks
3485 handle options with string values with embedded spaces). Thanks
3487 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3486 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3488 (magic_who_ls): added type matching to %who and %whos, so that one
3487 (magic_who_ls): added type matching to %who and %whos, so that one
3489 can filter their output to only include variables of certain
3488 can filter their output to only include variables of certain
3490 types. Another suggestion by Matthew.
3489 types. Another suggestion by Matthew.
3491 (magic_whos): Added memory summaries in kb and Mb for arrays.
3490 (magic_whos): Added memory summaries in kb and Mb for arrays.
3492 (magic_who): Improve formatting (break lines every 9 vars).
3491 (magic_who): Improve formatting (break lines every 9 vars).
3493
3492
3494 2004-11-28 Fernando Perez <fperez@colorado.edu>
3493 2004-11-28 Fernando Perez <fperez@colorado.edu>
3495
3494
3496 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3495 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3497 cache when empty lines were present.
3496 cache when empty lines were present.
3498
3497
3499 2004-11-24 Fernando Perez <fperez@colorado.edu>
3498 2004-11-24 Fernando Perez <fperez@colorado.edu>
3500
3499
3501 * IPython/usage.py (__doc__): document the re-activated threading
3500 * IPython/usage.py (__doc__): document the re-activated threading
3502 options for WX and GTK.
3501 options for WX and GTK.
3503
3502
3504 2004-11-23 Fernando Perez <fperez@colorado.edu>
3503 2004-11-23 Fernando Perez <fperez@colorado.edu>
3505
3504
3506 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3505 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3507 the -wthread and -gthread options, along with a new -tk one to try
3506 the -wthread and -gthread options, along with a new -tk one to try
3508 and coordinate Tk threading with wx/gtk. The tk support is very
3507 and coordinate Tk threading with wx/gtk. The tk support is very
3509 platform dependent, since it seems to require Tcl and Tk to be
3508 platform dependent, since it seems to require Tcl and Tk to be
3510 built with threads (Fedora1/2 appears NOT to have it, but in
3509 built with threads (Fedora1/2 appears NOT to have it, but in
3511 Prabhu's Debian boxes it works OK). But even with some Tk
3510 Prabhu's Debian boxes it works OK). But even with some Tk
3512 limitations, this is a great improvement.
3511 limitations, this is a great improvement.
3513
3512
3514 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3513 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3515 info in user prompts. Patch by Prabhu.
3514 info in user prompts. Patch by Prabhu.
3516
3515
3517 2004-11-18 Fernando Perez <fperez@colorado.edu>
3516 2004-11-18 Fernando Perez <fperez@colorado.edu>
3518
3517
3519 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3518 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3520 EOFErrors and bail, to avoid infinite loops if a non-terminating
3519 EOFErrors and bail, to avoid infinite loops if a non-terminating
3521 file is fed into ipython. Patch submitted in issue 19 by user,
3520 file is fed into ipython. Patch submitted in issue 19 by user,
3522 many thanks.
3521 many thanks.
3523
3522
3524 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3523 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3525 autoquote/parens in continuation prompts, which can cause lots of
3524 autoquote/parens in continuation prompts, which can cause lots of
3526 problems. Closes roundup issue 20.
3525 problems. Closes roundup issue 20.
3527
3526
3528 2004-11-17 Fernando Perez <fperez@colorado.edu>
3527 2004-11-17 Fernando Perez <fperez@colorado.edu>
3529
3528
3530 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3529 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3531 reported as debian bug #280505. I'm not sure my local changelog
3530 reported as debian bug #280505. I'm not sure my local changelog
3532 entry has the proper debian format (Jack?).
3531 entry has the proper debian format (Jack?).
3533
3532
3534 2004-11-08 *** Released version 0.6.4
3533 2004-11-08 *** Released version 0.6.4
3535
3534
3536 2004-11-08 Fernando Perez <fperez@colorado.edu>
3535 2004-11-08 Fernando Perez <fperez@colorado.edu>
3537
3536
3538 * IPython/iplib.py (init_readline): Fix exit message for Windows
3537 * IPython/iplib.py (init_readline): Fix exit message for Windows
3539 when readline is active. Thanks to a report by Eric Jones
3538 when readline is active. Thanks to a report by Eric Jones
3540 <eric-AT-enthought.com>.
3539 <eric-AT-enthought.com>.
3541
3540
3542 2004-11-07 Fernando Perez <fperez@colorado.edu>
3541 2004-11-07 Fernando Perez <fperez@colorado.edu>
3543
3542
3544 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3543 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3545 sometimes seen by win2k/cygwin users.
3544 sometimes seen by win2k/cygwin users.
3546
3545
3547 2004-11-06 Fernando Perez <fperez@colorado.edu>
3546 2004-11-06 Fernando Perez <fperez@colorado.edu>
3548
3547
3549 * IPython/iplib.py (interact): Change the handling of %Exit from
3548 * IPython/iplib.py (interact): Change the handling of %Exit from
3550 trying to propagate a SystemExit to an internal ipython flag.
3549 trying to propagate a SystemExit to an internal ipython flag.
3551 This is less elegant than using Python's exception mechanism, but
3550 This is less elegant than using Python's exception mechanism, but
3552 I can't get that to work reliably with threads, so under -pylab
3551 I can't get that to work reliably with threads, so under -pylab
3553 %Exit was hanging IPython. Cross-thread exception handling is
3552 %Exit was hanging IPython. Cross-thread exception handling is
3554 really a bitch. Thaks to a bug report by Stephen Walton
3553 really a bitch. Thaks to a bug report by Stephen Walton
3555 <stephen.walton-AT-csun.edu>.
3554 <stephen.walton-AT-csun.edu>.
3556
3555
3557 2004-11-04 Fernando Perez <fperez@colorado.edu>
3556 2004-11-04 Fernando Perez <fperez@colorado.edu>
3558
3557
3559 * IPython/iplib.py (raw_input_original): store a pointer to the
3558 * IPython/iplib.py (raw_input_original): store a pointer to the
3560 true raw_input to harden against code which can modify it
3559 true raw_input to harden against code which can modify it
3561 (wx.py.PyShell does this and would otherwise crash ipython).
3560 (wx.py.PyShell does this and would otherwise crash ipython).
3562 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3561 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3563
3562
3564 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3563 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3565 Ctrl-C problem, which does not mess up the input line.
3564 Ctrl-C problem, which does not mess up the input line.
3566
3565
3567 2004-11-03 Fernando Perez <fperez@colorado.edu>
3566 2004-11-03 Fernando Perez <fperez@colorado.edu>
3568
3567
3569 * IPython/Release.py: Changed licensing to BSD, in all files.
3568 * IPython/Release.py: Changed licensing to BSD, in all files.
3570 (name): lowercase name for tarball/RPM release.
3569 (name): lowercase name for tarball/RPM release.
3571
3570
3572 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3571 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3573 use throughout ipython.
3572 use throughout ipython.
3574
3573
3575 * IPython/Magic.py (Magic._ofind): Switch to using the new
3574 * IPython/Magic.py (Magic._ofind): Switch to using the new
3576 OInspect.getdoc() function.
3575 OInspect.getdoc() function.
3577
3576
3578 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3577 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3579 of the line currently being canceled via Ctrl-C. It's extremely
3578 of the line currently being canceled via Ctrl-C. It's extremely
3580 ugly, but I don't know how to do it better (the problem is one of
3579 ugly, but I don't know how to do it better (the problem is one of
3581 handling cross-thread exceptions).
3580 handling cross-thread exceptions).
3582
3581
3583 2004-10-28 Fernando Perez <fperez@colorado.edu>
3582 2004-10-28 Fernando Perez <fperez@colorado.edu>
3584
3583
3585 * IPython/Shell.py (signal_handler): add signal handlers to trap
3584 * IPython/Shell.py (signal_handler): add signal handlers to trap
3586 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3585 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3587 report by Francesc Alted.
3586 report by Francesc Alted.
3588
3587
3589 2004-10-21 Fernando Perez <fperez@colorado.edu>
3588 2004-10-21 Fernando Perez <fperez@colorado.edu>
3590
3589
3591 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3590 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3592 to % for pysh syntax extensions.
3591 to % for pysh syntax extensions.
3593
3592
3594 2004-10-09 Fernando Perez <fperez@colorado.edu>
3593 2004-10-09 Fernando Perez <fperez@colorado.edu>
3595
3594
3596 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3595 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3597 arrays to print a more useful summary, without calling str(arr).
3596 arrays to print a more useful summary, without calling str(arr).
3598 This avoids the problem of extremely lengthy computations which
3597 This avoids the problem of extremely lengthy computations which
3599 occur if arr is large, and appear to the user as a system lockup
3598 occur if arr is large, and appear to the user as a system lockup
3600 with 100% cpu activity. After a suggestion by Kristian Sandberg
3599 with 100% cpu activity. After a suggestion by Kristian Sandberg
3601 <Kristian.Sandberg@colorado.edu>.
3600 <Kristian.Sandberg@colorado.edu>.
3602 (Magic.__init__): fix bug in global magic escapes not being
3601 (Magic.__init__): fix bug in global magic escapes not being
3603 correctly set.
3602 correctly set.
3604
3603
3605 2004-10-08 Fernando Perez <fperez@colorado.edu>
3604 2004-10-08 Fernando Perez <fperez@colorado.edu>
3606
3605
3607 * IPython/Magic.py (__license__): change to absolute imports of
3606 * IPython/Magic.py (__license__): change to absolute imports of
3608 ipython's own internal packages, to start adapting to the absolute
3607 ipython's own internal packages, to start adapting to the absolute
3609 import requirement of PEP-328.
3608 import requirement of PEP-328.
3610
3609
3611 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3610 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3612 files, and standardize author/license marks through the Release
3611 files, and standardize author/license marks through the Release
3613 module instead of having per/file stuff (except for files with
3612 module instead of having per/file stuff (except for files with
3614 particular licenses, like the MIT/PSF-licensed codes).
3613 particular licenses, like the MIT/PSF-licensed codes).
3615
3614
3616 * IPython/Debugger.py: remove dead code for python 2.1
3615 * IPython/Debugger.py: remove dead code for python 2.1
3617
3616
3618 2004-10-04 Fernando Perez <fperez@colorado.edu>
3617 2004-10-04 Fernando Perez <fperez@colorado.edu>
3619
3618
3620 * IPython/iplib.py (ipmagic): New function for accessing magics
3619 * IPython/iplib.py (ipmagic): New function for accessing magics
3621 via a normal python function call.
3620 via a normal python function call.
3622
3621
3623 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3622 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3624 from '@' to '%', to accomodate the new @decorator syntax of python
3623 from '@' to '%', to accomodate the new @decorator syntax of python
3625 2.4.
3624 2.4.
3626
3625
3627 2004-09-29 Fernando Perez <fperez@colorado.edu>
3626 2004-09-29 Fernando Perez <fperez@colorado.edu>
3628
3627
3629 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3628 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3630 matplotlib.use to prevent running scripts which try to switch
3629 matplotlib.use to prevent running scripts which try to switch
3631 interactive backends from within ipython. This will just crash
3630 interactive backends from within ipython. This will just crash
3632 the python interpreter, so we can't allow it (but a detailed error
3631 the python interpreter, so we can't allow it (but a detailed error
3633 is given to the user).
3632 is given to the user).
3634
3633
3635 2004-09-28 Fernando Perez <fperez@colorado.edu>
3634 2004-09-28 Fernando Perez <fperez@colorado.edu>
3636
3635
3637 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3636 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3638 matplotlib-related fixes so that using @run with non-matplotlib
3637 matplotlib-related fixes so that using @run with non-matplotlib
3639 scripts doesn't pop up spurious plot windows. This requires
3638 scripts doesn't pop up spurious plot windows. This requires
3640 matplotlib >= 0.63, where I had to make some changes as well.
3639 matplotlib >= 0.63, where I had to make some changes as well.
3641
3640
3642 * IPython/ipmaker.py (make_IPython): update version requirement to
3641 * IPython/ipmaker.py (make_IPython): update version requirement to
3643 python 2.2.
3642 python 2.2.
3644
3643
3645 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3644 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3646 banner arg for embedded customization.
3645 banner arg for embedded customization.
3647
3646
3648 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3647 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3649 explicit uses of __IP as the IPython's instance name. Now things
3648 explicit uses of __IP as the IPython's instance name. Now things
3650 are properly handled via the shell.name value. The actual code
3649 are properly handled via the shell.name value. The actual code
3651 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3650 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3652 is much better than before. I'll clean things completely when the
3651 is much better than before. I'll clean things completely when the
3653 magic stuff gets a real overhaul.
3652 magic stuff gets a real overhaul.
3654
3653
3655 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3654 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3656 minor changes to debian dir.
3655 minor changes to debian dir.
3657
3656
3658 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3657 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3659 pointer to the shell itself in the interactive namespace even when
3658 pointer to the shell itself in the interactive namespace even when
3660 a user-supplied dict is provided. This is needed for embedding
3659 a user-supplied dict is provided. This is needed for embedding
3661 purposes (found by tests with Michel Sanner).
3660 purposes (found by tests with Michel Sanner).
3662
3661
3663 2004-09-27 Fernando Perez <fperez@colorado.edu>
3662 2004-09-27 Fernando Perez <fperez@colorado.edu>
3664
3663
3665 * IPython/UserConfig/ipythonrc: remove []{} from
3664 * IPython/UserConfig/ipythonrc: remove []{} from
3666 readline_remove_delims, so that things like [modname.<TAB> do
3665 readline_remove_delims, so that things like [modname.<TAB> do
3667 proper completion. This disables [].TAB, but that's a less common
3666 proper completion. This disables [].TAB, but that's a less common
3668 case than module names in list comprehensions, for example.
3667 case than module names in list comprehensions, for example.
3669 Thanks to a report by Andrea Riciputi.
3668 Thanks to a report by Andrea Riciputi.
3670
3669
3671 2004-09-09 Fernando Perez <fperez@colorado.edu>
3670 2004-09-09 Fernando Perez <fperez@colorado.edu>
3672
3671
3673 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3672 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3674 blocking problems in win32 and osx. Fix by John.
3673 blocking problems in win32 and osx. Fix by John.
3675
3674
3676 2004-09-08 Fernando Perez <fperez@colorado.edu>
3675 2004-09-08 Fernando Perez <fperez@colorado.edu>
3677
3676
3678 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3677 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3679 for Win32 and OSX. Fix by John Hunter.
3678 for Win32 and OSX. Fix by John Hunter.
3680
3679
3681 2004-08-30 *** Released version 0.6.3
3680 2004-08-30 *** Released version 0.6.3
3682
3681
3683 2004-08-30 Fernando Perez <fperez@colorado.edu>
3682 2004-08-30 Fernando Perez <fperez@colorado.edu>
3684
3683
3685 * setup.py (isfile): Add manpages to list of dependent files to be
3684 * setup.py (isfile): Add manpages to list of dependent files to be
3686 updated.
3685 updated.
3687
3686
3688 2004-08-27 Fernando Perez <fperez@colorado.edu>
3687 2004-08-27 Fernando Perez <fperez@colorado.edu>
3689
3688
3690 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3689 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3691 for now. They don't really work with standalone WX/GTK code
3690 for now. They don't really work with standalone WX/GTK code
3692 (though matplotlib IS working fine with both of those backends).
3691 (though matplotlib IS working fine with both of those backends).
3693 This will neeed much more testing. I disabled most things with
3692 This will neeed much more testing. I disabled most things with
3694 comments, so turning it back on later should be pretty easy.
3693 comments, so turning it back on later should be pretty easy.
3695
3694
3696 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3695 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3697 autocalling of expressions like r'foo', by modifying the line
3696 autocalling of expressions like r'foo', by modifying the line
3698 split regexp. Closes
3697 split regexp. Closes
3699 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3698 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3700 Riley <ipythonbugs-AT-sabi.net>.
3699 Riley <ipythonbugs-AT-sabi.net>.
3701 (InteractiveShell.mainloop): honor --nobanner with banner
3700 (InteractiveShell.mainloop): honor --nobanner with banner
3702 extensions.
3701 extensions.
3703
3702
3704 * IPython/Shell.py: Significant refactoring of all classes, so
3703 * IPython/Shell.py: Significant refactoring of all classes, so
3705 that we can really support ALL matplotlib backends and threading
3704 that we can really support ALL matplotlib backends and threading
3706 models (John spotted a bug with Tk which required this). Now we
3705 models (John spotted a bug with Tk which required this). Now we
3707 should support single-threaded, WX-threads and GTK-threads, both
3706 should support single-threaded, WX-threads and GTK-threads, both
3708 for generic code and for matplotlib.
3707 for generic code and for matplotlib.
3709
3708
3710 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3709 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3711 -pylab, to simplify things for users. Will also remove the pylab
3710 -pylab, to simplify things for users. Will also remove the pylab
3712 profile, since now all of matplotlib configuration is directly
3711 profile, since now all of matplotlib configuration is directly
3713 handled here. This also reduces startup time.
3712 handled here. This also reduces startup time.
3714
3713
3715 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3714 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3716 shell wasn't being correctly called. Also in IPShellWX.
3715 shell wasn't being correctly called. Also in IPShellWX.
3717
3716
3718 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3717 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3719 fine-tune banner.
3718 fine-tune banner.
3720
3719
3721 * IPython/numutils.py (spike): Deprecate these spike functions,
3720 * IPython/numutils.py (spike): Deprecate these spike functions,
3722 delete (long deprecated) gnuplot_exec handler.
3721 delete (long deprecated) gnuplot_exec handler.
3723
3722
3724 2004-08-26 Fernando Perez <fperez@colorado.edu>
3723 2004-08-26 Fernando Perez <fperez@colorado.edu>
3725
3724
3726 * ipython.1: Update for threading options, plus some others which
3725 * ipython.1: Update for threading options, plus some others which
3727 were missing.
3726 were missing.
3728
3727
3729 * IPython/ipmaker.py (__call__): Added -wthread option for
3728 * IPython/ipmaker.py (__call__): Added -wthread option for
3730 wxpython thread handling. Make sure threading options are only
3729 wxpython thread handling. Make sure threading options are only
3731 valid at the command line.
3730 valid at the command line.
3732
3731
3733 * scripts/ipython: moved shell selection into a factory function
3732 * scripts/ipython: moved shell selection into a factory function
3734 in Shell.py, to keep the starter script to a minimum.
3733 in Shell.py, to keep the starter script to a minimum.
3735
3734
3736 2004-08-25 Fernando Perez <fperez@colorado.edu>
3735 2004-08-25 Fernando Perez <fperez@colorado.edu>
3737
3736
3738 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3737 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3739 John. Along with some recent changes he made to matplotlib, the
3738 John. Along with some recent changes he made to matplotlib, the
3740 next versions of both systems should work very well together.
3739 next versions of both systems should work very well together.
3741
3740
3742 2004-08-24 Fernando Perez <fperez@colorado.edu>
3741 2004-08-24 Fernando Perez <fperez@colorado.edu>
3743
3742
3744 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3743 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3745 tried to switch the profiling to using hotshot, but I'm getting
3744 tried to switch the profiling to using hotshot, but I'm getting
3746 strange errors from prof.runctx() there. I may be misreading the
3745 strange errors from prof.runctx() there. I may be misreading the
3747 docs, but it looks weird. For now the profiling code will
3746 docs, but it looks weird. For now the profiling code will
3748 continue to use the standard profiler.
3747 continue to use the standard profiler.
3749
3748
3750 2004-08-23 Fernando Perez <fperez@colorado.edu>
3749 2004-08-23 Fernando Perez <fperez@colorado.edu>
3751
3750
3752 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3751 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3753 threaded shell, by John Hunter. It's not quite ready yet, but
3752 threaded shell, by John Hunter. It's not quite ready yet, but
3754 close.
3753 close.
3755
3754
3756 2004-08-22 Fernando Perez <fperez@colorado.edu>
3755 2004-08-22 Fernando Perez <fperez@colorado.edu>
3757
3756
3758 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3757 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3759 in Magic and ultraTB.
3758 in Magic and ultraTB.
3760
3759
3761 * ipython.1: document threading options in manpage.
3760 * ipython.1: document threading options in manpage.
3762
3761
3763 * scripts/ipython: Changed name of -thread option to -gthread,
3762 * scripts/ipython: Changed name of -thread option to -gthread,
3764 since this is GTK specific. I want to leave the door open for a
3763 since this is GTK specific. I want to leave the door open for a
3765 -wthread option for WX, which will most likely be necessary. This
3764 -wthread option for WX, which will most likely be necessary. This
3766 change affects usage and ipmaker as well.
3765 change affects usage and ipmaker as well.
3767
3766
3768 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3767 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3769 handle the matplotlib shell issues. Code by John Hunter
3768 handle the matplotlib shell issues. Code by John Hunter
3770 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3769 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3771 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3770 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3772 broken (and disabled for end users) for now, but it puts the
3771 broken (and disabled for end users) for now, but it puts the
3773 infrastructure in place.
3772 infrastructure in place.
3774
3773
3775 2004-08-21 Fernando Perez <fperez@colorado.edu>
3774 2004-08-21 Fernando Perez <fperez@colorado.edu>
3776
3775
3777 * ipythonrc-pylab: Add matplotlib support.
3776 * ipythonrc-pylab: Add matplotlib support.
3778
3777
3779 * matplotlib_config.py: new files for matplotlib support, part of
3778 * matplotlib_config.py: new files for matplotlib support, part of
3780 the pylab profile.
3779 the pylab profile.
3781
3780
3782 * IPython/usage.py (__doc__): documented the threading options.
3781 * IPython/usage.py (__doc__): documented the threading options.
3783
3782
3784 2004-08-20 Fernando Perez <fperez@colorado.edu>
3783 2004-08-20 Fernando Perez <fperez@colorado.edu>
3785
3784
3786 * ipython: Modified the main calling routine to handle the -thread
3785 * ipython: Modified the main calling routine to handle the -thread
3787 and -mpthread options. This needs to be done as a top-level hack,
3786 and -mpthread options. This needs to be done as a top-level hack,
3788 because it determines which class to instantiate for IPython
3787 because it determines which class to instantiate for IPython
3789 itself.
3788 itself.
3790
3789
3791 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3790 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3792 classes to support multithreaded GTK operation without blocking,
3791 classes to support multithreaded GTK operation without blocking,
3793 and matplotlib with all backends. This is a lot of still very
3792 and matplotlib with all backends. This is a lot of still very
3794 experimental code, and threads are tricky. So it may still have a
3793 experimental code, and threads are tricky. So it may still have a
3795 few rough edges... This code owes a lot to
3794 few rough edges... This code owes a lot to
3796 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3795 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3797 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3796 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3798 to John Hunter for all the matplotlib work.
3797 to John Hunter for all the matplotlib work.
3799
3798
3800 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3799 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3801 options for gtk thread and matplotlib support.
3800 options for gtk thread and matplotlib support.
3802
3801
3803 2004-08-16 Fernando Perez <fperez@colorado.edu>
3802 2004-08-16 Fernando Perez <fperez@colorado.edu>
3804
3803
3805 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3804 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3806 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3805 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3807 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3806 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3808
3807
3809 2004-08-11 Fernando Perez <fperez@colorado.edu>
3808 2004-08-11 Fernando Perez <fperez@colorado.edu>
3810
3809
3811 * setup.py (isfile): Fix build so documentation gets updated for
3810 * setup.py (isfile): Fix build so documentation gets updated for
3812 rpms (it was only done for .tgz builds).
3811 rpms (it was only done for .tgz builds).
3813
3812
3814 2004-08-10 Fernando Perez <fperez@colorado.edu>
3813 2004-08-10 Fernando Perez <fperez@colorado.edu>
3815
3814
3816 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3815 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3817
3816
3818 * iplib.py : Silence syntax error exceptions in tab-completion.
3817 * iplib.py : Silence syntax error exceptions in tab-completion.
3819
3818
3820 2004-08-05 Fernando Perez <fperez@colorado.edu>
3819 2004-08-05 Fernando Perez <fperez@colorado.edu>
3821
3820
3822 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3821 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3823 'color off' mark for continuation prompts. This was causing long
3822 'color off' mark for continuation prompts. This was causing long
3824 continuation lines to mis-wrap.
3823 continuation lines to mis-wrap.
3825
3824
3826 2004-08-01 Fernando Perez <fperez@colorado.edu>
3825 2004-08-01 Fernando Perez <fperez@colorado.edu>
3827
3826
3828 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3827 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3829 for building ipython to be a parameter. All this is necessary
3828 for building ipython to be a parameter. All this is necessary
3830 right now to have a multithreaded version, but this insane
3829 right now to have a multithreaded version, but this insane
3831 non-design will be cleaned up soon. For now, it's a hack that
3830 non-design will be cleaned up soon. For now, it's a hack that
3832 works.
3831 works.
3833
3832
3834 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3833 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3835 args in various places. No bugs so far, but it's a dangerous
3834 args in various places. No bugs so far, but it's a dangerous
3836 practice.
3835 practice.
3837
3836
3838 2004-07-31 Fernando Perez <fperez@colorado.edu>
3837 2004-07-31 Fernando Perez <fperez@colorado.edu>
3839
3838
3840 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3839 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3841 fix completion of files with dots in their names under most
3840 fix completion of files with dots in their names under most
3842 profiles (pysh was OK because the completion order is different).
3841 profiles (pysh was OK because the completion order is different).
3843
3842
3844 2004-07-27 Fernando Perez <fperez@colorado.edu>
3843 2004-07-27 Fernando Perez <fperez@colorado.edu>
3845
3844
3846 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3845 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3847 keywords manually, b/c the one in keyword.py was removed in python
3846 keywords manually, b/c the one in keyword.py was removed in python
3848 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3847 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3849 This is NOT a bug under python 2.3 and earlier.
3848 This is NOT a bug under python 2.3 and earlier.
3850
3849
3851 2004-07-26 Fernando Perez <fperez@colorado.edu>
3850 2004-07-26 Fernando Perez <fperez@colorado.edu>
3852
3851
3853 * IPython/ultraTB.py (VerboseTB.text): Add another
3852 * IPython/ultraTB.py (VerboseTB.text): Add another
3854 linecache.checkcache() call to try to prevent inspect.py from
3853 linecache.checkcache() call to try to prevent inspect.py from
3855 crashing under python 2.3. I think this fixes
3854 crashing under python 2.3. I think this fixes
3856 http://www.scipy.net/roundup/ipython/issue17.
3855 http://www.scipy.net/roundup/ipython/issue17.
3857
3856
3858 2004-07-26 *** Released version 0.6.2
3857 2004-07-26 *** Released version 0.6.2
3859
3858
3860 2004-07-26 Fernando Perez <fperez@colorado.edu>
3859 2004-07-26 Fernando Perez <fperez@colorado.edu>
3861
3860
3862 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3861 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3863 fail for any number.
3862 fail for any number.
3864 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3863 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3865 empty bookmarks.
3864 empty bookmarks.
3866
3865
3867 2004-07-26 *** Released version 0.6.1
3866 2004-07-26 *** Released version 0.6.1
3868
3867
3869 2004-07-26 Fernando Perez <fperez@colorado.edu>
3868 2004-07-26 Fernando Perez <fperez@colorado.edu>
3870
3869
3871 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3870 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3872
3871
3873 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3872 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3874 escaping '()[]{}' in filenames.
3873 escaping '()[]{}' in filenames.
3875
3874
3876 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3875 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3877 Python 2.2 users who lack a proper shlex.split.
3876 Python 2.2 users who lack a proper shlex.split.
3878
3877
3879 2004-07-19 Fernando Perez <fperez@colorado.edu>
3878 2004-07-19 Fernando Perez <fperez@colorado.edu>
3880
3879
3881 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3880 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3882 for reading readline's init file. I follow the normal chain:
3881 for reading readline's init file. I follow the normal chain:
3883 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3882 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3884 report by Mike Heeter. This closes
3883 report by Mike Heeter. This closes
3885 http://www.scipy.net/roundup/ipython/issue16.
3884 http://www.scipy.net/roundup/ipython/issue16.
3886
3885
3887 2004-07-18 Fernando Perez <fperez@colorado.edu>
3886 2004-07-18 Fernando Perez <fperez@colorado.edu>
3888
3887
3889 * IPython/iplib.py (__init__): Add better handling of '\' under
3888 * IPython/iplib.py (__init__): Add better handling of '\' under
3890 Win32 for filenames. After a patch by Ville.
3889 Win32 for filenames. After a patch by Ville.
3891
3890
3892 2004-07-17 Fernando Perez <fperez@colorado.edu>
3891 2004-07-17 Fernando Perez <fperez@colorado.edu>
3893
3892
3894 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3893 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3895 autocalling would be triggered for 'foo is bar' if foo is
3894 autocalling would be triggered for 'foo is bar' if foo is
3896 callable. I also cleaned up the autocall detection code to use a
3895 callable. I also cleaned up the autocall detection code to use a
3897 regexp, which is faster. Bug reported by Alexander Schmolck.
3896 regexp, which is faster. Bug reported by Alexander Schmolck.
3898
3897
3899 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3898 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3900 '?' in them would confuse the help system. Reported by Alex
3899 '?' in them would confuse the help system. Reported by Alex
3901 Schmolck.
3900 Schmolck.
3902
3901
3903 2004-07-16 Fernando Perez <fperez@colorado.edu>
3902 2004-07-16 Fernando Perez <fperez@colorado.edu>
3904
3903
3905 * IPython/GnuplotInteractive.py (__all__): added plot2.
3904 * IPython/GnuplotInteractive.py (__all__): added plot2.
3906
3905
3907 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3906 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3908 plotting dictionaries, lists or tuples of 1d arrays.
3907 plotting dictionaries, lists or tuples of 1d arrays.
3909
3908
3910 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3909 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3911 optimizations.
3910 optimizations.
3912
3911
3913 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3912 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3914 the information which was there from Janko's original IPP code:
3913 the information which was there from Janko's original IPP code:
3915
3914
3916 03.05.99 20:53 porto.ifm.uni-kiel.de
3915 03.05.99 20:53 porto.ifm.uni-kiel.de
3917 --Started changelog.
3916 --Started changelog.
3918 --make clear do what it say it does
3917 --make clear do what it say it does
3919 --added pretty output of lines from inputcache
3918 --added pretty output of lines from inputcache
3920 --Made Logger a mixin class, simplifies handling of switches
3919 --Made Logger a mixin class, simplifies handling of switches
3921 --Added own completer class. .string<TAB> expands to last history
3920 --Added own completer class. .string<TAB> expands to last history
3922 line which starts with string. The new expansion is also present
3921 line which starts with string. The new expansion is also present
3923 with Ctrl-r from the readline library. But this shows, who this
3922 with Ctrl-r from the readline library. But this shows, who this
3924 can be done for other cases.
3923 can be done for other cases.
3925 --Added convention that all shell functions should accept a
3924 --Added convention that all shell functions should accept a
3926 parameter_string This opens the door for different behaviour for
3925 parameter_string This opens the door for different behaviour for
3927 each function. @cd is a good example of this.
3926 each function. @cd is a good example of this.
3928
3927
3929 04.05.99 12:12 porto.ifm.uni-kiel.de
3928 04.05.99 12:12 porto.ifm.uni-kiel.de
3930 --added logfile rotation
3929 --added logfile rotation
3931 --added new mainloop method which freezes first the namespace
3930 --added new mainloop method which freezes first the namespace
3932
3931
3933 07.05.99 21:24 porto.ifm.uni-kiel.de
3932 07.05.99 21:24 porto.ifm.uni-kiel.de
3934 --added the docreader classes. Now there is a help system.
3933 --added the docreader classes. Now there is a help system.
3935 -This is only a first try. Currently it's not easy to put new
3934 -This is only a first try. Currently it's not easy to put new
3936 stuff in the indices. But this is the way to go. Info would be
3935 stuff in the indices. But this is the way to go. Info would be
3937 better, but HTML is every where and not everybody has an info
3936 better, but HTML is every where and not everybody has an info
3938 system installed and it's not so easy to change html-docs to info.
3937 system installed and it's not so easy to change html-docs to info.
3939 --added global logfile option
3938 --added global logfile option
3940 --there is now a hook for object inspection method pinfo needs to
3939 --there is now a hook for object inspection method pinfo needs to
3941 be provided for this. Can be reached by two '??'.
3940 be provided for this. Can be reached by two '??'.
3942
3941
3943 08.05.99 20:51 porto.ifm.uni-kiel.de
3942 08.05.99 20:51 porto.ifm.uni-kiel.de
3944 --added a README
3943 --added a README
3945 --bug in rc file. Something has changed so functions in the rc
3944 --bug in rc file. Something has changed so functions in the rc
3946 file need to reference the shell and not self. Not clear if it's a
3945 file need to reference the shell and not self. Not clear if it's a
3947 bug or feature.
3946 bug or feature.
3948 --changed rc file for new behavior
3947 --changed rc file for new behavior
3949
3948
3950 2004-07-15 Fernando Perez <fperez@colorado.edu>
3949 2004-07-15 Fernando Perez <fperez@colorado.edu>
3951
3950
3952 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3951 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3953 cache was falling out of sync in bizarre manners when multi-line
3952 cache was falling out of sync in bizarre manners when multi-line
3954 input was present. Minor optimizations and cleanup.
3953 input was present. Minor optimizations and cleanup.
3955
3954
3956 (Logger): Remove old Changelog info for cleanup. This is the
3955 (Logger): Remove old Changelog info for cleanup. This is the
3957 information which was there from Janko's original code:
3956 information which was there from Janko's original code:
3958
3957
3959 Changes to Logger: - made the default log filename a parameter
3958 Changes to Logger: - made the default log filename a parameter
3960
3959
3961 - put a check for lines beginning with !@? in log(). Needed
3960 - put a check for lines beginning with !@? in log(). Needed
3962 (even if the handlers properly log their lines) for mid-session
3961 (even if the handlers properly log their lines) for mid-session
3963 logging activation to work properly. Without this, lines logged
3962 logging activation to work properly. Without this, lines logged
3964 in mid session, which get read from the cache, would end up
3963 in mid session, which get read from the cache, would end up
3965 'bare' (with !@? in the open) in the log. Now they are caught
3964 'bare' (with !@? in the open) in the log. Now they are caught
3966 and prepended with a #.
3965 and prepended with a #.
3967
3966
3968 * IPython/iplib.py (InteractiveShell.init_readline): added check
3967 * IPython/iplib.py (InteractiveShell.init_readline): added check
3969 in case MagicCompleter fails to be defined, so we don't crash.
3968 in case MagicCompleter fails to be defined, so we don't crash.
3970
3969
3971 2004-07-13 Fernando Perez <fperez@colorado.edu>
3970 2004-07-13 Fernando Perez <fperez@colorado.edu>
3972
3971
3973 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3972 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3974 of EPS if the requested filename ends in '.eps'.
3973 of EPS if the requested filename ends in '.eps'.
3975
3974
3976 2004-07-04 Fernando Perez <fperez@colorado.edu>
3975 2004-07-04 Fernando Perez <fperez@colorado.edu>
3977
3976
3978 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3977 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3979 escaping of quotes when calling the shell.
3978 escaping of quotes when calling the shell.
3980
3979
3981 2004-07-02 Fernando Perez <fperez@colorado.edu>
3980 2004-07-02 Fernando Perez <fperez@colorado.edu>
3982
3981
3983 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3982 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3984 gettext not working because we were clobbering '_'. Fixes
3983 gettext not working because we were clobbering '_'. Fixes
3985 http://www.scipy.net/roundup/ipython/issue6.
3984 http://www.scipy.net/roundup/ipython/issue6.
3986
3985
3987 2004-07-01 Fernando Perez <fperez@colorado.edu>
3986 2004-07-01 Fernando Perez <fperez@colorado.edu>
3988
3987
3989 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3988 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3990 into @cd. Patch by Ville.
3989 into @cd. Patch by Ville.
3991
3990
3992 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3991 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3993 new function to store things after ipmaker runs. Patch by Ville.
3992 new function to store things after ipmaker runs. Patch by Ville.
3994 Eventually this will go away once ipmaker is removed and the class
3993 Eventually this will go away once ipmaker is removed and the class
3995 gets cleaned up, but for now it's ok. Key functionality here is
3994 gets cleaned up, but for now it's ok. Key functionality here is
3996 the addition of the persistent storage mechanism, a dict for
3995 the addition of the persistent storage mechanism, a dict for
3997 keeping data across sessions (for now just bookmarks, but more can
3996 keeping data across sessions (for now just bookmarks, but more can
3998 be implemented later).
3997 be implemented later).
3999
3998
4000 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3999 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4001 persistent across sections. Patch by Ville, I modified it
4000 persistent across sections. Patch by Ville, I modified it
4002 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4001 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4003 added a '-l' option to list all bookmarks.
4002 added a '-l' option to list all bookmarks.
4004
4003
4005 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4004 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4006 center for cleanup. Registered with atexit.register(). I moved
4005 center for cleanup. Registered with atexit.register(). I moved
4007 here the old exit_cleanup(). After a patch by Ville.
4006 here the old exit_cleanup(). After a patch by Ville.
4008
4007
4009 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4008 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4010 characters in the hacked shlex_split for python 2.2.
4009 characters in the hacked shlex_split for python 2.2.
4011
4010
4012 * IPython/iplib.py (file_matches): more fixes to filenames with
4011 * IPython/iplib.py (file_matches): more fixes to filenames with
4013 whitespace in them. It's not perfect, but limitations in python's
4012 whitespace in them. It's not perfect, but limitations in python's
4014 readline make it impossible to go further.
4013 readline make it impossible to go further.
4015
4014
4016 2004-06-29 Fernando Perez <fperez@colorado.edu>
4015 2004-06-29 Fernando Perez <fperez@colorado.edu>
4017
4016
4018 * IPython/iplib.py (file_matches): escape whitespace correctly in
4017 * IPython/iplib.py (file_matches): escape whitespace correctly in
4019 filename completions. Bug reported by Ville.
4018 filename completions. Bug reported by Ville.
4020
4019
4021 2004-06-28 Fernando Perez <fperez@colorado.edu>
4020 2004-06-28 Fernando Perez <fperez@colorado.edu>
4022
4021
4023 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4022 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4024 the history file will be called 'history-PROFNAME' (or just
4023 the history file will be called 'history-PROFNAME' (or just
4025 'history' if no profile is loaded). I was getting annoyed at
4024 'history' if no profile is loaded). I was getting annoyed at
4026 getting my Numerical work history clobbered by pysh sessions.
4025 getting my Numerical work history clobbered by pysh sessions.
4027
4026
4028 * IPython/iplib.py (InteractiveShell.__init__): Internal
4027 * IPython/iplib.py (InteractiveShell.__init__): Internal
4029 getoutputerror() function so that we can honor the system_verbose
4028 getoutputerror() function so that we can honor the system_verbose
4030 flag for _all_ system calls. I also added escaping of #
4029 flag for _all_ system calls. I also added escaping of #
4031 characters here to avoid confusing Itpl.
4030 characters here to avoid confusing Itpl.
4032
4031
4033 * IPython/Magic.py (shlex_split): removed call to shell in
4032 * IPython/Magic.py (shlex_split): removed call to shell in
4034 parse_options and replaced it with shlex.split(). The annoying
4033 parse_options and replaced it with shlex.split(). The annoying
4035 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4034 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4036 to backport it from 2.3, with several frail hacks (the shlex
4035 to backport it from 2.3, with several frail hacks (the shlex
4037 module is rather limited in 2.2). Thanks to a suggestion by Ville
4036 module is rather limited in 2.2). Thanks to a suggestion by Ville
4038 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4037 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4039 problem.
4038 problem.
4040
4039
4041 (Magic.magic_system_verbose): new toggle to print the actual
4040 (Magic.magic_system_verbose): new toggle to print the actual
4042 system calls made by ipython. Mainly for debugging purposes.
4041 system calls made by ipython. Mainly for debugging purposes.
4043
4042
4044 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4043 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4045 doesn't support persistence. Reported (and fix suggested) by
4044 doesn't support persistence. Reported (and fix suggested) by
4046 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4045 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4047
4046
4048 2004-06-26 Fernando Perez <fperez@colorado.edu>
4047 2004-06-26 Fernando Perez <fperez@colorado.edu>
4049
4048
4050 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4049 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4051 continue prompts.
4050 continue prompts.
4052
4051
4053 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4052 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4054 function (basically a big docstring) and a few more things here to
4053 function (basically a big docstring) and a few more things here to
4055 speedup startup. pysh.py is now very lightweight. We want because
4054 speedup startup. pysh.py is now very lightweight. We want because
4056 it gets execfile'd, while InterpreterExec gets imported, so
4055 it gets execfile'd, while InterpreterExec gets imported, so
4057 byte-compilation saves time.
4056 byte-compilation saves time.
4058
4057
4059 2004-06-25 Fernando Perez <fperez@colorado.edu>
4058 2004-06-25 Fernando Perez <fperez@colorado.edu>
4060
4059
4061 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4060 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4062 -NUM', which was recently broken.
4061 -NUM', which was recently broken.
4063
4062
4064 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4063 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4065 in multi-line input (but not !!, which doesn't make sense there).
4064 in multi-line input (but not !!, which doesn't make sense there).
4066
4065
4067 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4066 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4068 It's just too useful, and people can turn it off in the less
4067 It's just too useful, and people can turn it off in the less
4069 common cases where it's a problem.
4068 common cases where it's a problem.
4070
4069
4071 2004-06-24 Fernando Perez <fperez@colorado.edu>
4070 2004-06-24 Fernando Perez <fperez@colorado.edu>
4072
4071
4073 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4072 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4074 special syntaxes (like alias calling) is now allied in multi-line
4073 special syntaxes (like alias calling) is now allied in multi-line
4075 input. This is still _very_ experimental, but it's necessary for
4074 input. This is still _very_ experimental, but it's necessary for
4076 efficient shell usage combining python looping syntax with system
4075 efficient shell usage combining python looping syntax with system
4077 calls. For now it's restricted to aliases, I don't think it
4076 calls. For now it's restricted to aliases, I don't think it
4078 really even makes sense to have this for magics.
4077 really even makes sense to have this for magics.
4079
4078
4080 2004-06-23 Fernando Perez <fperez@colorado.edu>
4079 2004-06-23 Fernando Perez <fperez@colorado.edu>
4081
4080
4082 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4081 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4083 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4082 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4084
4083
4085 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4084 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4086 extensions under Windows (after code sent by Gary Bishop). The
4085 extensions under Windows (after code sent by Gary Bishop). The
4087 extensions considered 'executable' are stored in IPython's rc
4086 extensions considered 'executable' are stored in IPython's rc
4088 structure as win_exec_ext.
4087 structure as win_exec_ext.
4089
4088
4090 * IPython/genutils.py (shell): new function, like system() but
4089 * IPython/genutils.py (shell): new function, like system() but
4091 without return value. Very useful for interactive shell work.
4090 without return value. Very useful for interactive shell work.
4092
4091
4093 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4092 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4094 delete aliases.
4093 delete aliases.
4095
4094
4096 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4095 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4097 sure that the alias table doesn't contain python keywords.
4096 sure that the alias table doesn't contain python keywords.
4098
4097
4099 2004-06-21 Fernando Perez <fperez@colorado.edu>
4098 2004-06-21 Fernando Perez <fperez@colorado.edu>
4100
4099
4101 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4100 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4102 non-existent items are found in $PATH. Reported by Thorsten.
4101 non-existent items are found in $PATH. Reported by Thorsten.
4103
4102
4104 2004-06-20 Fernando Perez <fperez@colorado.edu>
4103 2004-06-20 Fernando Perez <fperez@colorado.edu>
4105
4104
4106 * IPython/iplib.py (complete): modified the completer so that the
4105 * IPython/iplib.py (complete): modified the completer so that the
4107 order of priorities can be easily changed at runtime.
4106 order of priorities can be easily changed at runtime.
4108
4107
4109 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4108 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4110 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4109 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4111
4110
4112 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4111 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4113 expand Python variables prepended with $ in all system calls. The
4112 expand Python variables prepended with $ in all system calls. The
4114 same was done to InteractiveShell.handle_shell_escape. Now all
4113 same was done to InteractiveShell.handle_shell_escape. Now all
4115 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4114 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4116 expansion of python variables and expressions according to the
4115 expansion of python variables and expressions according to the
4117 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4116 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4118
4117
4119 Though PEP-215 has been rejected, a similar (but simpler) one
4118 Though PEP-215 has been rejected, a similar (but simpler) one
4120 seems like it will go into Python 2.4, PEP-292 -
4119 seems like it will go into Python 2.4, PEP-292 -
4121 http://www.python.org/peps/pep-0292.html.
4120 http://www.python.org/peps/pep-0292.html.
4122
4121
4123 I'll keep the full syntax of PEP-215, since IPython has since the
4122 I'll keep the full syntax of PEP-215, since IPython has since the
4124 start used Ka-Ping Yee's reference implementation discussed there
4123 start used Ka-Ping Yee's reference implementation discussed there
4125 (Itpl), and I actually like the powerful semantics it offers.
4124 (Itpl), and I actually like the powerful semantics it offers.
4126
4125
4127 In order to access normal shell variables, the $ has to be escaped
4126 In order to access normal shell variables, the $ has to be escaped
4128 via an extra $. For example:
4127 via an extra $. For example:
4129
4128
4130 In [7]: PATH='a python variable'
4129 In [7]: PATH='a python variable'
4131
4130
4132 In [8]: !echo $PATH
4131 In [8]: !echo $PATH
4133 a python variable
4132 a python variable
4134
4133
4135 In [9]: !echo $$PATH
4134 In [9]: !echo $$PATH
4136 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4135 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4137
4136
4138 (Magic.parse_options): escape $ so the shell doesn't evaluate
4137 (Magic.parse_options): escape $ so the shell doesn't evaluate
4139 things prematurely.
4138 things prematurely.
4140
4139
4141 * IPython/iplib.py (InteractiveShell.call_alias): added the
4140 * IPython/iplib.py (InteractiveShell.call_alias): added the
4142 ability for aliases to expand python variables via $.
4141 ability for aliases to expand python variables via $.
4143
4142
4144 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4143 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4145 system, now there's a @rehash/@rehashx pair of magics. These work
4144 system, now there's a @rehash/@rehashx pair of magics. These work
4146 like the csh rehash command, and can be invoked at any time. They
4145 like the csh rehash command, and can be invoked at any time. They
4147 build a table of aliases to everything in the user's $PATH
4146 build a table of aliases to everything in the user's $PATH
4148 (@rehash uses everything, @rehashx is slower but only adds
4147 (@rehash uses everything, @rehashx is slower but only adds
4149 executable files). With this, the pysh.py-based shell profile can
4148 executable files). With this, the pysh.py-based shell profile can
4150 now simply call rehash upon startup, and full access to all
4149 now simply call rehash upon startup, and full access to all
4151 programs in the user's path is obtained.
4150 programs in the user's path is obtained.
4152
4151
4153 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4152 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4154 functionality is now fully in place. I removed the old dynamic
4153 functionality is now fully in place. I removed the old dynamic
4155 code generation based approach, in favor of a much lighter one
4154 code generation based approach, in favor of a much lighter one
4156 based on a simple dict. The advantage is that this allows me to
4155 based on a simple dict. The advantage is that this allows me to
4157 now have thousands of aliases with negligible cost (unthinkable
4156 now have thousands of aliases with negligible cost (unthinkable
4158 with the old system).
4157 with the old system).
4159
4158
4160 2004-06-19 Fernando Perez <fperez@colorado.edu>
4159 2004-06-19 Fernando Perez <fperez@colorado.edu>
4161
4160
4162 * IPython/iplib.py (__init__): extended MagicCompleter class to
4161 * IPython/iplib.py (__init__): extended MagicCompleter class to
4163 also complete (last in priority) on user aliases.
4162 also complete (last in priority) on user aliases.
4164
4163
4165 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4164 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4166 call to eval.
4165 call to eval.
4167 (ItplNS.__init__): Added a new class which functions like Itpl,
4166 (ItplNS.__init__): Added a new class which functions like Itpl,
4168 but allows configuring the namespace for the evaluation to occur
4167 but allows configuring the namespace for the evaluation to occur
4169 in.
4168 in.
4170
4169
4171 2004-06-18 Fernando Perez <fperez@colorado.edu>
4170 2004-06-18 Fernando Perez <fperez@colorado.edu>
4172
4171
4173 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4172 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4174 better message when 'exit' or 'quit' are typed (a common newbie
4173 better message when 'exit' or 'quit' are typed (a common newbie
4175 confusion).
4174 confusion).
4176
4175
4177 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4176 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4178 check for Windows users.
4177 check for Windows users.
4179
4178
4180 * IPython/iplib.py (InteractiveShell.user_setup): removed
4179 * IPython/iplib.py (InteractiveShell.user_setup): removed
4181 disabling of colors for Windows. I'll test at runtime and issue a
4180 disabling of colors for Windows. I'll test at runtime and issue a
4182 warning if Gary's readline isn't found, as to nudge users to
4181 warning if Gary's readline isn't found, as to nudge users to
4183 download it.
4182 download it.
4184
4183
4185 2004-06-16 Fernando Perez <fperez@colorado.edu>
4184 2004-06-16 Fernando Perez <fperez@colorado.edu>
4186
4185
4187 * IPython/genutils.py (Stream.__init__): changed to print errors
4186 * IPython/genutils.py (Stream.__init__): changed to print errors
4188 to sys.stderr. I had a circular dependency here. Now it's
4187 to sys.stderr. I had a circular dependency here. Now it's
4189 possible to run ipython as IDLE's shell (consider this pre-alpha,
4188 possible to run ipython as IDLE's shell (consider this pre-alpha,
4190 since true stdout things end up in the starting terminal instead
4189 since true stdout things end up in the starting terminal instead
4191 of IDLE's out).
4190 of IDLE's out).
4192
4191
4193 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4192 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4194 users who haven't # updated their prompt_in2 definitions. Remove
4193 users who haven't # updated their prompt_in2 definitions. Remove
4195 eventually.
4194 eventually.
4196 (multiple_replace): added credit to original ASPN recipe.
4195 (multiple_replace): added credit to original ASPN recipe.
4197
4196
4198 2004-06-15 Fernando Perez <fperez@colorado.edu>
4197 2004-06-15 Fernando Perez <fperez@colorado.edu>
4199
4198
4200 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4199 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4201 list of auto-defined aliases.
4200 list of auto-defined aliases.
4202
4201
4203 2004-06-13 Fernando Perez <fperez@colorado.edu>
4202 2004-06-13 Fernando Perez <fperez@colorado.edu>
4204
4203
4205 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4204 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4206 install was really requested (so setup.py can be used for other
4205 install was really requested (so setup.py can be used for other
4207 things under Windows).
4206 things under Windows).
4208
4207
4209 2004-06-10 Fernando Perez <fperez@colorado.edu>
4208 2004-06-10 Fernando Perez <fperez@colorado.edu>
4210
4209
4211 * IPython/Logger.py (Logger.create_log): Manually remove any old
4210 * IPython/Logger.py (Logger.create_log): Manually remove any old
4212 backup, since os.remove may fail under Windows. Fixes bug
4211 backup, since os.remove may fail under Windows. Fixes bug
4213 reported by Thorsten.
4212 reported by Thorsten.
4214
4213
4215 2004-06-09 Fernando Perez <fperez@colorado.edu>
4214 2004-06-09 Fernando Perez <fperez@colorado.edu>
4216
4215
4217 * examples/example-embed.py: fixed all references to %n (replaced
4216 * examples/example-embed.py: fixed all references to %n (replaced
4218 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4217 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4219 for all examples and the manual as well.
4218 for all examples and the manual as well.
4220
4219
4221 2004-06-08 Fernando Perez <fperez@colorado.edu>
4220 2004-06-08 Fernando Perez <fperez@colorado.edu>
4222
4221
4223 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4222 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4224 alignment and color management. All 3 prompt subsystems now
4223 alignment and color management. All 3 prompt subsystems now
4225 inherit from BasePrompt.
4224 inherit from BasePrompt.
4226
4225
4227 * tools/release: updates for windows installer build and tag rpms
4226 * tools/release: updates for windows installer build and tag rpms
4228 with python version (since paths are fixed).
4227 with python version (since paths are fixed).
4229
4228
4230 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4229 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4231 which will become eventually obsolete. Also fixed the default
4230 which will become eventually obsolete. Also fixed the default
4232 prompt_in2 to use \D, so at least new users start with the correct
4231 prompt_in2 to use \D, so at least new users start with the correct
4233 defaults.
4232 defaults.
4234 WARNING: Users with existing ipythonrc files will need to apply
4233 WARNING: Users with existing ipythonrc files will need to apply
4235 this fix manually!
4234 this fix manually!
4236
4235
4237 * setup.py: make windows installer (.exe). This is finally the
4236 * setup.py: make windows installer (.exe). This is finally the
4238 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4237 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4239 which I hadn't included because it required Python 2.3 (or recent
4238 which I hadn't included because it required Python 2.3 (or recent
4240 distutils).
4239 distutils).
4241
4240
4242 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4241 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4243 usage of new '\D' escape.
4242 usage of new '\D' escape.
4244
4243
4245 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4244 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4246 lacks os.getuid())
4245 lacks os.getuid())
4247 (CachedOutput.set_colors): Added the ability to turn coloring
4246 (CachedOutput.set_colors): Added the ability to turn coloring
4248 on/off with @colors even for manually defined prompt colors. It
4247 on/off with @colors even for manually defined prompt colors. It
4249 uses a nasty global, but it works safely and via the generic color
4248 uses a nasty global, but it works safely and via the generic color
4250 handling mechanism.
4249 handling mechanism.
4251 (Prompt2.__init__): Introduced new escape '\D' for continuation
4250 (Prompt2.__init__): Introduced new escape '\D' for continuation
4252 prompts. It represents the counter ('\#') as dots.
4251 prompts. It represents the counter ('\#') as dots.
4253 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4252 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4254 need to update their ipythonrc files and replace '%n' with '\D' in
4253 need to update their ipythonrc files and replace '%n' with '\D' in
4255 their prompt_in2 settings everywhere. Sorry, but there's
4254 their prompt_in2 settings everywhere. Sorry, but there's
4256 otherwise no clean way to get all prompts to properly align. The
4255 otherwise no clean way to get all prompts to properly align. The
4257 ipythonrc shipped with IPython has been updated.
4256 ipythonrc shipped with IPython has been updated.
4258
4257
4259 2004-06-07 Fernando Perez <fperez@colorado.edu>
4258 2004-06-07 Fernando Perez <fperez@colorado.edu>
4260
4259
4261 * setup.py (isfile): Pass local_icons option to latex2html, so the
4260 * setup.py (isfile): Pass local_icons option to latex2html, so the
4262 resulting HTML file is self-contained. Thanks to
4261 resulting HTML file is self-contained. Thanks to
4263 dryice-AT-liu.com.cn for the tip.
4262 dryice-AT-liu.com.cn for the tip.
4264
4263
4265 * pysh.py: I created a new profile 'shell', which implements a
4264 * pysh.py: I created a new profile 'shell', which implements a
4266 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4265 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4267 system shell, nor will it become one anytime soon. It's mainly
4266 system shell, nor will it become one anytime soon. It's mainly
4268 meant to illustrate the use of the new flexible bash-like prompts.
4267 meant to illustrate the use of the new flexible bash-like prompts.
4269 I guess it could be used by hardy souls for true shell management,
4268 I guess it could be used by hardy souls for true shell management,
4270 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4269 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4271 profile. This uses the InterpreterExec extension provided by
4270 profile. This uses the InterpreterExec extension provided by
4272 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4271 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4273
4272
4274 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4273 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4275 auto-align itself with the length of the previous input prompt
4274 auto-align itself with the length of the previous input prompt
4276 (taking into account the invisible color escapes).
4275 (taking into account the invisible color escapes).
4277 (CachedOutput.__init__): Large restructuring of this class. Now
4276 (CachedOutput.__init__): Large restructuring of this class. Now
4278 all three prompts (primary1, primary2, output) are proper objects,
4277 all three prompts (primary1, primary2, output) are proper objects,
4279 managed by the 'parent' CachedOutput class. The code is still a
4278 managed by the 'parent' CachedOutput class. The code is still a
4280 bit hackish (all prompts share state via a pointer to the cache),
4279 bit hackish (all prompts share state via a pointer to the cache),
4281 but it's overall far cleaner than before.
4280 but it's overall far cleaner than before.
4282
4281
4283 * IPython/genutils.py (getoutputerror): modified to add verbose,
4282 * IPython/genutils.py (getoutputerror): modified to add verbose,
4284 debug and header options. This makes the interface of all getout*
4283 debug and header options. This makes the interface of all getout*
4285 functions uniform.
4284 functions uniform.
4286 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4285 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4287
4286
4288 * IPython/Magic.py (Magic.default_option): added a function to
4287 * IPython/Magic.py (Magic.default_option): added a function to
4289 allow registering default options for any magic command. This
4288 allow registering default options for any magic command. This
4290 makes it easy to have profiles which customize the magics globally
4289 makes it easy to have profiles which customize the magics globally
4291 for a certain use. The values set through this function are
4290 for a certain use. The values set through this function are
4292 picked up by the parse_options() method, which all magics should
4291 picked up by the parse_options() method, which all magics should
4293 use to parse their options.
4292 use to parse their options.
4294
4293
4295 * IPython/genutils.py (warn): modified the warnings framework to
4294 * IPython/genutils.py (warn): modified the warnings framework to
4296 use the Term I/O class. I'm trying to slowly unify all of
4295 use the Term I/O class. I'm trying to slowly unify all of
4297 IPython's I/O operations to pass through Term.
4296 IPython's I/O operations to pass through Term.
4298
4297
4299 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4298 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4300 the secondary prompt to correctly match the length of the primary
4299 the secondary prompt to correctly match the length of the primary
4301 one for any prompt. Now multi-line code will properly line up
4300 one for any prompt. Now multi-line code will properly line up
4302 even for path dependent prompts, such as the new ones available
4301 even for path dependent prompts, such as the new ones available
4303 via the prompt_specials.
4302 via the prompt_specials.
4304
4303
4305 2004-06-06 Fernando Perez <fperez@colorado.edu>
4304 2004-06-06 Fernando Perez <fperez@colorado.edu>
4306
4305
4307 * IPython/Prompts.py (prompt_specials): Added the ability to have
4306 * IPython/Prompts.py (prompt_specials): Added the ability to have
4308 bash-like special sequences in the prompts, which get
4307 bash-like special sequences in the prompts, which get
4309 automatically expanded. Things like hostname, current working
4308 automatically expanded. Things like hostname, current working
4310 directory and username are implemented already, but it's easy to
4309 directory and username are implemented already, but it's easy to
4311 add more in the future. Thanks to a patch by W.J. van der Laan
4310 add more in the future. Thanks to a patch by W.J. van der Laan
4312 <gnufnork-AT-hetdigitalegat.nl>
4311 <gnufnork-AT-hetdigitalegat.nl>
4313 (prompt_specials): Added color support for prompt strings, so
4312 (prompt_specials): Added color support for prompt strings, so
4314 users can define arbitrary color setups for their prompts.
4313 users can define arbitrary color setups for their prompts.
4315
4314
4316 2004-06-05 Fernando Perez <fperez@colorado.edu>
4315 2004-06-05 Fernando Perez <fperez@colorado.edu>
4317
4316
4318 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4317 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4319 code to load Gary Bishop's readline and configure it
4318 code to load Gary Bishop's readline and configure it
4320 automatically. Thanks to Gary for help on this.
4319 automatically. Thanks to Gary for help on this.
4321
4320
4322 2004-06-01 Fernando Perez <fperez@colorado.edu>
4321 2004-06-01 Fernando Perez <fperez@colorado.edu>
4323
4322
4324 * IPython/Logger.py (Logger.create_log): fix bug for logging
4323 * IPython/Logger.py (Logger.create_log): fix bug for logging
4325 with no filename (previous fix was incomplete).
4324 with no filename (previous fix was incomplete).
4326
4325
4327 2004-05-25 Fernando Perez <fperez@colorado.edu>
4326 2004-05-25 Fernando Perez <fperez@colorado.edu>
4328
4327
4329 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4328 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4330 parens would get passed to the shell.
4329 parens would get passed to the shell.
4331
4330
4332 2004-05-20 Fernando Perez <fperez@colorado.edu>
4331 2004-05-20 Fernando Perez <fperez@colorado.edu>
4333
4332
4334 * IPython/Magic.py (Magic.magic_prun): changed default profile
4333 * IPython/Magic.py (Magic.magic_prun): changed default profile
4335 sort order to 'time' (the more common profiling need).
4334 sort order to 'time' (the more common profiling need).
4336
4335
4337 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4336 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4338 so that source code shown is guaranteed in sync with the file on
4337 so that source code shown is guaranteed in sync with the file on
4339 disk (also changed in psource). Similar fix to the one for
4338 disk (also changed in psource). Similar fix to the one for
4340 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4339 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4341 <yann.ledu-AT-noos.fr>.
4340 <yann.ledu-AT-noos.fr>.
4342
4341
4343 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4342 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4344 with a single option would not be correctly parsed. Closes
4343 with a single option would not be correctly parsed. Closes
4345 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4344 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4346 introduced in 0.6.0 (on 2004-05-06).
4345 introduced in 0.6.0 (on 2004-05-06).
4347
4346
4348 2004-05-13 *** Released version 0.6.0
4347 2004-05-13 *** Released version 0.6.0
4349
4348
4350 2004-05-13 Fernando Perez <fperez@colorado.edu>
4349 2004-05-13 Fernando Perez <fperez@colorado.edu>
4351
4350
4352 * debian/: Added debian/ directory to CVS, so that debian support
4351 * debian/: Added debian/ directory to CVS, so that debian support
4353 is publicly accessible. The debian package is maintained by Jack
4352 is publicly accessible. The debian package is maintained by Jack
4354 Moffit <jack-AT-xiph.org>.
4353 Moffit <jack-AT-xiph.org>.
4355
4354
4356 * Documentation: included the notes about an ipython-based system
4355 * Documentation: included the notes about an ipython-based system
4357 shell (the hypothetical 'pysh') into the new_design.pdf document,
4356 shell (the hypothetical 'pysh') into the new_design.pdf document,
4358 so that these ideas get distributed to users along with the
4357 so that these ideas get distributed to users along with the
4359 official documentation.
4358 official documentation.
4360
4359
4361 2004-05-10 Fernando Perez <fperez@colorado.edu>
4360 2004-05-10 Fernando Perez <fperez@colorado.edu>
4362
4361
4363 * IPython/Logger.py (Logger.create_log): fix recently introduced
4362 * IPython/Logger.py (Logger.create_log): fix recently introduced
4364 bug (misindented line) where logstart would fail when not given an
4363 bug (misindented line) where logstart would fail when not given an
4365 explicit filename.
4364 explicit filename.
4366
4365
4367 2004-05-09 Fernando Perez <fperez@colorado.edu>
4366 2004-05-09 Fernando Perez <fperez@colorado.edu>
4368
4367
4369 * IPython/Magic.py (Magic.parse_options): skip system call when
4368 * IPython/Magic.py (Magic.parse_options): skip system call when
4370 there are no options to look for. Faster, cleaner for the common
4369 there are no options to look for. Faster, cleaner for the common
4371 case.
4370 case.
4372
4371
4373 * Documentation: many updates to the manual: describing Windows
4372 * Documentation: many updates to the manual: describing Windows
4374 support better, Gnuplot updates, credits, misc small stuff. Also
4373 support better, Gnuplot updates, credits, misc small stuff. Also
4375 updated the new_design doc a bit.
4374 updated the new_design doc a bit.
4376
4375
4377 2004-05-06 *** Released version 0.6.0.rc1
4376 2004-05-06 *** Released version 0.6.0.rc1
4378
4377
4379 2004-05-06 Fernando Perez <fperez@colorado.edu>
4378 2004-05-06 Fernando Perez <fperez@colorado.edu>
4380
4379
4381 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4380 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4382 operations to use the vastly more efficient list/''.join() method.
4381 operations to use the vastly more efficient list/''.join() method.
4383 (FormattedTB.text): Fix
4382 (FormattedTB.text): Fix
4384 http://www.scipy.net/roundup/ipython/issue12 - exception source
4383 http://www.scipy.net/roundup/ipython/issue12 - exception source
4385 extract not updated after reload. Thanks to Mike Salib
4384 extract not updated after reload. Thanks to Mike Salib
4386 <msalib-AT-mit.edu> for pinning the source of the problem.
4385 <msalib-AT-mit.edu> for pinning the source of the problem.
4387 Fortunately, the solution works inside ipython and doesn't require
4386 Fortunately, the solution works inside ipython and doesn't require
4388 any changes to python proper.
4387 any changes to python proper.
4389
4388
4390 * IPython/Magic.py (Magic.parse_options): Improved to process the
4389 * IPython/Magic.py (Magic.parse_options): Improved to process the
4391 argument list as a true shell would (by actually using the
4390 argument list as a true shell would (by actually using the
4392 underlying system shell). This way, all @magics automatically get
4391 underlying system shell). This way, all @magics automatically get
4393 shell expansion for variables. Thanks to a comment by Alex
4392 shell expansion for variables. Thanks to a comment by Alex
4394 Schmolck.
4393 Schmolck.
4395
4394
4396 2004-04-04 Fernando Perez <fperez@colorado.edu>
4395 2004-04-04 Fernando Perez <fperez@colorado.edu>
4397
4396
4398 * IPython/iplib.py (InteractiveShell.interact): Added a special
4397 * IPython/iplib.py (InteractiveShell.interact): Added a special
4399 trap for a debugger quit exception, which is basically impossible
4398 trap for a debugger quit exception, which is basically impossible
4400 to handle by normal mechanisms, given what pdb does to the stack.
4399 to handle by normal mechanisms, given what pdb does to the stack.
4401 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4400 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4402
4401
4403 2004-04-03 Fernando Perez <fperez@colorado.edu>
4402 2004-04-03 Fernando Perez <fperez@colorado.edu>
4404
4403
4405 * IPython/genutils.py (Term): Standardized the names of the Term
4404 * IPython/genutils.py (Term): Standardized the names of the Term
4406 class streams to cin/cout/cerr, following C++ naming conventions
4405 class streams to cin/cout/cerr, following C++ naming conventions
4407 (I can't use in/out/err because 'in' is not a valid attribute
4406 (I can't use in/out/err because 'in' is not a valid attribute
4408 name).
4407 name).
4409
4408
4410 * IPython/iplib.py (InteractiveShell.interact): don't increment
4409 * IPython/iplib.py (InteractiveShell.interact): don't increment
4411 the prompt if there's no user input. By Daniel 'Dang' Griffith
4410 the prompt if there's no user input. By Daniel 'Dang' Griffith
4412 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4411 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4413 Francois Pinard.
4412 Francois Pinard.
4414
4413
4415 2004-04-02 Fernando Perez <fperez@colorado.edu>
4414 2004-04-02 Fernando Perez <fperez@colorado.edu>
4416
4415
4417 * IPython/genutils.py (Stream.__init__): Modified to survive at
4416 * IPython/genutils.py (Stream.__init__): Modified to survive at
4418 least importing in contexts where stdin/out/err aren't true file
4417 least importing in contexts where stdin/out/err aren't true file
4419 objects, such as PyCrust (they lack fileno() and mode). However,
4418 objects, such as PyCrust (they lack fileno() and mode). However,
4420 the recovery facilities which rely on these things existing will
4419 the recovery facilities which rely on these things existing will
4421 not work.
4420 not work.
4422
4421
4423 2004-04-01 Fernando Perez <fperez@colorado.edu>
4422 2004-04-01 Fernando Perez <fperez@colorado.edu>
4424
4423
4425 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4424 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4426 use the new getoutputerror() function, so it properly
4425 use the new getoutputerror() function, so it properly
4427 distinguishes stdout/err.
4426 distinguishes stdout/err.
4428
4427
4429 * IPython/genutils.py (getoutputerror): added a function to
4428 * IPython/genutils.py (getoutputerror): added a function to
4430 capture separately the standard output and error of a command.
4429 capture separately the standard output and error of a command.
4431 After a comment from dang on the mailing lists. This code is
4430 After a comment from dang on the mailing lists. This code is
4432 basically a modified version of commands.getstatusoutput(), from
4431 basically a modified version of commands.getstatusoutput(), from
4433 the standard library.
4432 the standard library.
4434
4433
4435 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4434 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4436 '!!' as a special syntax (shorthand) to access @sx.
4435 '!!' as a special syntax (shorthand) to access @sx.
4437
4436
4438 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4437 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4439 command and return its output as a list split on '\n'.
4438 command and return its output as a list split on '\n'.
4440
4439
4441 2004-03-31 Fernando Perez <fperez@colorado.edu>
4440 2004-03-31 Fernando Perez <fperez@colorado.edu>
4442
4441
4443 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4442 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4444 method to dictionaries used as FakeModule instances if they lack
4443 method to dictionaries used as FakeModule instances if they lack
4445 it. At least pydoc in python2.3 breaks for runtime-defined
4444 it. At least pydoc in python2.3 breaks for runtime-defined
4446 functions without this hack. At some point I need to _really_
4445 functions without this hack. At some point I need to _really_
4447 understand what FakeModule is doing, because it's a gross hack.
4446 understand what FakeModule is doing, because it's a gross hack.
4448 But it solves Arnd's problem for now...
4447 But it solves Arnd's problem for now...
4449
4448
4450 2004-02-27 Fernando Perez <fperez@colorado.edu>
4449 2004-02-27 Fernando Perez <fperez@colorado.edu>
4451
4450
4452 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4451 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4453 mode would behave erratically. Also increased the number of
4452 mode would behave erratically. Also increased the number of
4454 possible logs in rotate mod to 999. Thanks to Rod Holland
4453 possible logs in rotate mod to 999. Thanks to Rod Holland
4455 <rhh@StructureLABS.com> for the report and fixes.
4454 <rhh@StructureLABS.com> for the report and fixes.
4456
4455
4457 2004-02-26 Fernando Perez <fperez@colorado.edu>
4456 2004-02-26 Fernando Perez <fperez@colorado.edu>
4458
4457
4459 * IPython/genutils.py (page): Check that the curses module really
4458 * IPython/genutils.py (page): Check that the curses module really
4460 has the initscr attribute before trying to use it. For some
4459 has the initscr attribute before trying to use it. For some
4461 reason, the Solaris curses module is missing this. I think this
4460 reason, the Solaris curses module is missing this. I think this
4462 should be considered a Solaris python bug, but I'm not sure.
4461 should be considered a Solaris python bug, but I'm not sure.
4463
4462
4464 2004-01-17 Fernando Perez <fperez@colorado.edu>
4463 2004-01-17 Fernando Perez <fperez@colorado.edu>
4465
4464
4466 * IPython/genutils.py (Stream.__init__): Changes to try to make
4465 * IPython/genutils.py (Stream.__init__): Changes to try to make
4467 ipython robust against stdin/out/err being closed by the user.
4466 ipython robust against stdin/out/err being closed by the user.
4468 This is 'user error' (and blocks a normal python session, at least
4467 This is 'user error' (and blocks a normal python session, at least
4469 the stdout case). However, Ipython should be able to survive such
4468 the stdout case). However, Ipython should be able to survive such
4470 instances of abuse as gracefully as possible. To simplify the
4469 instances of abuse as gracefully as possible. To simplify the
4471 coding and maintain compatibility with Gary Bishop's Term
4470 coding and maintain compatibility with Gary Bishop's Term
4472 contributions, I've made use of classmethods for this. I think
4471 contributions, I've made use of classmethods for this. I think
4473 this introduces a dependency on python 2.2.
4472 this introduces a dependency on python 2.2.
4474
4473
4475 2004-01-13 Fernando Perez <fperez@colorado.edu>
4474 2004-01-13 Fernando Perez <fperez@colorado.edu>
4476
4475
4477 * IPython/numutils.py (exp_safe): simplified the code a bit and
4476 * IPython/numutils.py (exp_safe): simplified the code a bit and
4478 removed the need for importing the kinds module altogether.
4477 removed the need for importing the kinds module altogether.
4479
4478
4480 2004-01-06 Fernando Perez <fperez@colorado.edu>
4479 2004-01-06 Fernando Perez <fperez@colorado.edu>
4481
4480
4482 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4481 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4483 a magic function instead, after some community feedback. No
4482 a magic function instead, after some community feedback. No
4484 special syntax will exist for it, but its name is deliberately
4483 special syntax will exist for it, but its name is deliberately
4485 very short.
4484 very short.
4486
4485
4487 2003-12-20 Fernando Perez <fperez@colorado.edu>
4486 2003-12-20 Fernando Perez <fperez@colorado.edu>
4488
4487
4489 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4488 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4490 new functionality, to automagically assign the result of a shell
4489 new functionality, to automagically assign the result of a shell
4491 command to a variable. I'll solicit some community feedback on
4490 command to a variable. I'll solicit some community feedback on
4492 this before making it permanent.
4491 this before making it permanent.
4493
4492
4494 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4493 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4495 requested about callables for which inspect couldn't obtain a
4494 requested about callables for which inspect couldn't obtain a
4496 proper argspec. Thanks to a crash report sent by Etienne
4495 proper argspec. Thanks to a crash report sent by Etienne
4497 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4496 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4498
4497
4499 2003-12-09 Fernando Perez <fperez@colorado.edu>
4498 2003-12-09 Fernando Perez <fperez@colorado.edu>
4500
4499
4501 * IPython/genutils.py (page): patch for the pager to work across
4500 * IPython/genutils.py (page): patch for the pager to work across
4502 various versions of Windows. By Gary Bishop.
4501 various versions of Windows. By Gary Bishop.
4503
4502
4504 2003-12-04 Fernando Perez <fperez@colorado.edu>
4503 2003-12-04 Fernando Perez <fperez@colorado.edu>
4505
4504
4506 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4505 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4507 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4506 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4508 While I tested this and it looks ok, there may still be corner
4507 While I tested this and it looks ok, there may still be corner
4509 cases I've missed.
4508 cases I've missed.
4510
4509
4511 2003-12-01 Fernando Perez <fperez@colorado.edu>
4510 2003-12-01 Fernando Perez <fperez@colorado.edu>
4512
4511
4513 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4512 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4514 where a line like 'p,q=1,2' would fail because the automagic
4513 where a line like 'p,q=1,2' would fail because the automagic
4515 system would be triggered for @p.
4514 system would be triggered for @p.
4516
4515
4517 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4516 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4518 cleanups, code unmodified.
4517 cleanups, code unmodified.
4519
4518
4520 * IPython/genutils.py (Term): added a class for IPython to handle
4519 * IPython/genutils.py (Term): added a class for IPython to handle
4521 output. In most cases it will just be a proxy for stdout/err, but
4520 output. In most cases it will just be a proxy for stdout/err, but
4522 having this allows modifications to be made for some platforms,
4521 having this allows modifications to be made for some platforms,
4523 such as handling color escapes under Windows. All of this code
4522 such as handling color escapes under Windows. All of this code
4524 was contributed by Gary Bishop, with minor modifications by me.
4523 was contributed by Gary Bishop, with minor modifications by me.
4525 The actual changes affect many files.
4524 The actual changes affect many files.
4526
4525
4527 2003-11-30 Fernando Perez <fperez@colorado.edu>
4526 2003-11-30 Fernando Perez <fperez@colorado.edu>
4528
4527
4529 * IPython/iplib.py (file_matches): new completion code, courtesy
4528 * IPython/iplib.py (file_matches): new completion code, courtesy
4530 of Jeff Collins. This enables filename completion again under
4529 of Jeff Collins. This enables filename completion again under
4531 python 2.3, which disabled it at the C level.
4530 python 2.3, which disabled it at the C level.
4532
4531
4533 2003-11-11 Fernando Perez <fperez@colorado.edu>
4532 2003-11-11 Fernando Perez <fperez@colorado.edu>
4534
4533
4535 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4534 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4536 for Numeric.array(map(...)), but often convenient.
4535 for Numeric.array(map(...)), but often convenient.
4537
4536
4538 2003-11-05 Fernando Perez <fperez@colorado.edu>
4537 2003-11-05 Fernando Perez <fperez@colorado.edu>
4539
4538
4540 * IPython/numutils.py (frange): Changed a call from int() to
4539 * IPython/numutils.py (frange): Changed a call from int() to
4541 int(round()) to prevent a problem reported with arange() in the
4540 int(round()) to prevent a problem reported with arange() in the
4542 numpy list.
4541 numpy list.
4543
4542
4544 2003-10-06 Fernando Perez <fperez@colorado.edu>
4543 2003-10-06 Fernando Perez <fperez@colorado.edu>
4545
4544
4546 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4545 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4547 prevent crashes if sys lacks an argv attribute (it happens with
4546 prevent crashes if sys lacks an argv attribute (it happens with
4548 embedded interpreters which build a bare-bones sys module).
4547 embedded interpreters which build a bare-bones sys module).
4549 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4548 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4550
4549
4551 2003-09-24 Fernando Perez <fperez@colorado.edu>
4550 2003-09-24 Fernando Perez <fperez@colorado.edu>
4552
4551
4553 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4552 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4554 to protect against poorly written user objects where __getattr__
4553 to protect against poorly written user objects where __getattr__
4555 raises exceptions other than AttributeError. Thanks to a bug
4554 raises exceptions other than AttributeError. Thanks to a bug
4556 report by Oliver Sander <osander-AT-gmx.de>.
4555 report by Oliver Sander <osander-AT-gmx.de>.
4557
4556
4558 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4557 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4559 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4558 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4560
4559
4561 2003-09-09 Fernando Perez <fperez@colorado.edu>
4560 2003-09-09 Fernando Perez <fperez@colorado.edu>
4562
4561
4563 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4562 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4564 unpacking a list whith a callable as first element would
4563 unpacking a list whith a callable as first element would
4565 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4564 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4566 Collins.
4565 Collins.
4567
4566
4568 2003-08-25 *** Released version 0.5.0
4567 2003-08-25 *** Released version 0.5.0
4569
4568
4570 2003-08-22 Fernando Perez <fperez@colorado.edu>
4569 2003-08-22 Fernando Perez <fperez@colorado.edu>
4571
4570
4572 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4571 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4573 improperly defined user exceptions. Thanks to feedback from Mark
4572 improperly defined user exceptions. Thanks to feedback from Mark
4574 Russell <mrussell-AT-verio.net>.
4573 Russell <mrussell-AT-verio.net>.
4575
4574
4576 2003-08-20 Fernando Perez <fperez@colorado.edu>
4575 2003-08-20 Fernando Perez <fperez@colorado.edu>
4577
4576
4578 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4577 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4579 printing so that it would print multi-line string forms starting
4578 printing so that it would print multi-line string forms starting
4580 with a new line. This way the formatting is better respected for
4579 with a new line. This way the formatting is better respected for
4581 objects which work hard to make nice string forms.
4580 objects which work hard to make nice string forms.
4582
4581
4583 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4582 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4584 autocall would overtake data access for objects with both
4583 autocall would overtake data access for objects with both
4585 __getitem__ and __call__.
4584 __getitem__ and __call__.
4586
4585
4587 2003-08-19 *** Released version 0.5.0-rc1
4586 2003-08-19 *** Released version 0.5.0-rc1
4588
4587
4589 2003-08-19 Fernando Perez <fperez@colorado.edu>
4588 2003-08-19 Fernando Perez <fperez@colorado.edu>
4590
4589
4591 * IPython/deep_reload.py (load_tail): single tiny change here
4590 * IPython/deep_reload.py (load_tail): single tiny change here
4592 seems to fix the long-standing bug of dreload() failing to work
4591 seems to fix the long-standing bug of dreload() failing to work
4593 for dotted names. But this module is pretty tricky, so I may have
4592 for dotted names. But this module is pretty tricky, so I may have
4594 missed some subtlety. Needs more testing!.
4593 missed some subtlety. Needs more testing!.
4595
4594
4596 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4595 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4597 exceptions which have badly implemented __str__ methods.
4596 exceptions which have badly implemented __str__ methods.
4598 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4597 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4599 which I've been getting reports about from Python 2.3 users. I
4598 which I've been getting reports about from Python 2.3 users. I
4600 wish I had a simple test case to reproduce the problem, so I could
4599 wish I had a simple test case to reproduce the problem, so I could
4601 either write a cleaner workaround or file a bug report if
4600 either write a cleaner workaround or file a bug report if
4602 necessary.
4601 necessary.
4603
4602
4604 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4603 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4605 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4604 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4606 a bug report by Tjabo Kloppenburg.
4605 a bug report by Tjabo Kloppenburg.
4607
4606
4608 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4607 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4609 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4608 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4610 seems rather unstable. Thanks to a bug report by Tjabo
4609 seems rather unstable. Thanks to a bug report by Tjabo
4611 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4610 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4612
4611
4613 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4612 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4614 this out soon because of the critical fixes in the inner loop for
4613 this out soon because of the critical fixes in the inner loop for
4615 generators.
4614 generators.
4616
4615
4617 * IPython/Magic.py (Magic.getargspec): removed. This (and
4616 * IPython/Magic.py (Magic.getargspec): removed. This (and
4618 _get_def) have been obsoleted by OInspect for a long time, I
4617 _get_def) have been obsoleted by OInspect for a long time, I
4619 hadn't noticed that they were dead code.
4618 hadn't noticed that they were dead code.
4620 (Magic._ofind): restored _ofind functionality for a few literals
4619 (Magic._ofind): restored _ofind functionality for a few literals
4621 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4620 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4622 for things like "hello".capitalize?, since that would require a
4621 for things like "hello".capitalize?, since that would require a
4623 potentially dangerous eval() again.
4622 potentially dangerous eval() again.
4624
4623
4625 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4624 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4626 logic a bit more to clean up the escapes handling and minimize the
4625 logic a bit more to clean up the escapes handling and minimize the
4627 use of _ofind to only necessary cases. The interactive 'feel' of
4626 use of _ofind to only necessary cases. The interactive 'feel' of
4628 IPython should have improved quite a bit with the changes in
4627 IPython should have improved quite a bit with the changes in
4629 _prefilter and _ofind (besides being far safer than before).
4628 _prefilter and _ofind (besides being far safer than before).
4630
4629
4631 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4630 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4632 obscure, never reported). Edit would fail to find the object to
4631 obscure, never reported). Edit would fail to find the object to
4633 edit under some circumstances.
4632 edit under some circumstances.
4634 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4633 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4635 which were causing double-calling of generators. Those eval calls
4634 which were causing double-calling of generators. Those eval calls
4636 were _very_ dangerous, since code with side effects could be
4635 were _very_ dangerous, since code with side effects could be
4637 triggered. As they say, 'eval is evil'... These were the
4636 triggered. As they say, 'eval is evil'... These were the
4638 nastiest evals in IPython. Besides, _ofind is now far simpler,
4637 nastiest evals in IPython. Besides, _ofind is now far simpler,
4639 and it should also be quite a bit faster. Its use of inspect is
4638 and it should also be quite a bit faster. Its use of inspect is
4640 also safer, so perhaps some of the inspect-related crashes I've
4639 also safer, so perhaps some of the inspect-related crashes I've
4641 seen lately with Python 2.3 might be taken care of. That will
4640 seen lately with Python 2.3 might be taken care of. That will
4642 need more testing.
4641 need more testing.
4643
4642
4644 2003-08-17 Fernando Perez <fperez@colorado.edu>
4643 2003-08-17 Fernando Perez <fperez@colorado.edu>
4645
4644
4646 * IPython/iplib.py (InteractiveShell._prefilter): significant
4645 * IPython/iplib.py (InteractiveShell._prefilter): significant
4647 simplifications to the logic for handling user escapes. Faster
4646 simplifications to the logic for handling user escapes. Faster
4648 and simpler code.
4647 and simpler code.
4649
4648
4650 2003-08-14 Fernando Perez <fperez@colorado.edu>
4649 2003-08-14 Fernando Perez <fperez@colorado.edu>
4651
4650
4652 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4651 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4653 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4652 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4654 but it should be quite a bit faster. And the recursive version
4653 but it should be quite a bit faster. And the recursive version
4655 generated O(log N) intermediate storage for all rank>1 arrays,
4654 generated O(log N) intermediate storage for all rank>1 arrays,
4656 even if they were contiguous.
4655 even if they were contiguous.
4657 (l1norm): Added this function.
4656 (l1norm): Added this function.
4658 (norm): Added this function for arbitrary norms (including
4657 (norm): Added this function for arbitrary norms (including
4659 l-infinity). l1 and l2 are still special cases for convenience
4658 l-infinity). l1 and l2 are still special cases for convenience
4660 and speed.
4659 and speed.
4661
4660
4662 2003-08-03 Fernando Perez <fperez@colorado.edu>
4661 2003-08-03 Fernando Perez <fperez@colorado.edu>
4663
4662
4664 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4663 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4665 exceptions, which now raise PendingDeprecationWarnings in Python
4664 exceptions, which now raise PendingDeprecationWarnings in Python
4666 2.3. There were some in Magic and some in Gnuplot2.
4665 2.3. There were some in Magic and some in Gnuplot2.
4667
4666
4668 2003-06-30 Fernando Perez <fperez@colorado.edu>
4667 2003-06-30 Fernando Perez <fperez@colorado.edu>
4669
4668
4670 * IPython/genutils.py (page): modified to call curses only for
4669 * IPython/genutils.py (page): modified to call curses only for
4671 terminals where TERM=='xterm'. After problems under many other
4670 terminals where TERM=='xterm'. After problems under many other
4672 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4671 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4673
4672
4674 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4673 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4675 would be triggered when readline was absent. This was just an old
4674 would be triggered when readline was absent. This was just an old
4676 debugging statement I'd forgotten to take out.
4675 debugging statement I'd forgotten to take out.
4677
4676
4678 2003-06-20 Fernando Perez <fperez@colorado.edu>
4677 2003-06-20 Fernando Perez <fperez@colorado.edu>
4679
4678
4680 * IPython/genutils.py (clock): modified to return only user time
4679 * IPython/genutils.py (clock): modified to return only user time
4681 (not counting system time), after a discussion on scipy. While
4680 (not counting system time), after a discussion on scipy. While
4682 system time may be a useful quantity occasionally, it may much
4681 system time may be a useful quantity occasionally, it may much
4683 more easily be skewed by occasional swapping or other similar
4682 more easily be skewed by occasional swapping or other similar
4684 activity.
4683 activity.
4685
4684
4686 2003-06-05 Fernando Perez <fperez@colorado.edu>
4685 2003-06-05 Fernando Perez <fperez@colorado.edu>
4687
4686
4688 * IPython/numutils.py (identity): new function, for building
4687 * IPython/numutils.py (identity): new function, for building
4689 arbitrary rank Kronecker deltas (mostly backwards compatible with
4688 arbitrary rank Kronecker deltas (mostly backwards compatible with
4690 Numeric.identity)
4689 Numeric.identity)
4691
4690
4692 2003-06-03 Fernando Perez <fperez@colorado.edu>
4691 2003-06-03 Fernando Perez <fperez@colorado.edu>
4693
4692
4694 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4693 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4695 arguments passed to magics with spaces, to allow trailing '\' to
4694 arguments passed to magics with spaces, to allow trailing '\' to
4696 work normally (mainly for Windows users).
4695 work normally (mainly for Windows users).
4697
4696
4698 2003-05-29 Fernando Perez <fperez@colorado.edu>
4697 2003-05-29 Fernando Perez <fperez@colorado.edu>
4699
4698
4700 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4699 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4701 instead of pydoc.help. This fixes a bizarre behavior where
4700 instead of pydoc.help. This fixes a bizarre behavior where
4702 printing '%s' % locals() would trigger the help system. Now
4701 printing '%s' % locals() would trigger the help system. Now
4703 ipython behaves like normal python does.
4702 ipython behaves like normal python does.
4704
4703
4705 Note that if one does 'from pydoc import help', the bizarre
4704 Note that if one does 'from pydoc import help', the bizarre
4706 behavior returns, but this will also happen in normal python, so
4705 behavior returns, but this will also happen in normal python, so
4707 it's not an ipython bug anymore (it has to do with how pydoc.help
4706 it's not an ipython bug anymore (it has to do with how pydoc.help
4708 is implemented).
4707 is implemented).
4709
4708
4710 2003-05-22 Fernando Perez <fperez@colorado.edu>
4709 2003-05-22 Fernando Perez <fperez@colorado.edu>
4711
4710
4712 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4711 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4713 return [] instead of None when nothing matches, also match to end
4712 return [] instead of None when nothing matches, also match to end
4714 of line. Patch by Gary Bishop.
4713 of line. Patch by Gary Bishop.
4715
4714
4716 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4715 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4717 protection as before, for files passed on the command line. This
4716 protection as before, for files passed on the command line. This
4718 prevents the CrashHandler from kicking in if user files call into
4717 prevents the CrashHandler from kicking in if user files call into
4719 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4718 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4720 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4719 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4721
4720
4722 2003-05-20 *** Released version 0.4.0
4721 2003-05-20 *** Released version 0.4.0
4723
4722
4724 2003-05-20 Fernando Perez <fperez@colorado.edu>
4723 2003-05-20 Fernando Perez <fperez@colorado.edu>
4725
4724
4726 * setup.py: added support for manpages. It's a bit hackish b/c of
4725 * setup.py: added support for manpages. It's a bit hackish b/c of
4727 a bug in the way the bdist_rpm distutils target handles gzipped
4726 a bug in the way the bdist_rpm distutils target handles gzipped
4728 manpages, but it works. After a patch by Jack.
4727 manpages, but it works. After a patch by Jack.
4729
4728
4730 2003-05-19 Fernando Perez <fperez@colorado.edu>
4729 2003-05-19 Fernando Perez <fperez@colorado.edu>
4731
4730
4732 * IPython/numutils.py: added a mockup of the kinds module, since
4731 * IPython/numutils.py: added a mockup of the kinds module, since
4733 it was recently removed from Numeric. This way, numutils will
4732 it was recently removed from Numeric. This way, numutils will
4734 work for all users even if they are missing kinds.
4733 work for all users even if they are missing kinds.
4735
4734
4736 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4735 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4737 failure, which can occur with SWIG-wrapped extensions. After a
4736 failure, which can occur with SWIG-wrapped extensions. After a
4738 crash report from Prabhu.
4737 crash report from Prabhu.
4739
4738
4740 2003-05-16 Fernando Perez <fperez@colorado.edu>
4739 2003-05-16 Fernando Perez <fperez@colorado.edu>
4741
4740
4742 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4741 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4743 protect ipython from user code which may call directly
4742 protect ipython from user code which may call directly
4744 sys.excepthook (this looks like an ipython crash to the user, even
4743 sys.excepthook (this looks like an ipython crash to the user, even
4745 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4744 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4746 This is especially important to help users of WxWindows, but may
4745 This is especially important to help users of WxWindows, but may
4747 also be useful in other cases.
4746 also be useful in other cases.
4748
4747
4749 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4748 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4750 an optional tb_offset to be specified, and to preserve exception
4749 an optional tb_offset to be specified, and to preserve exception
4751 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4750 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4752
4751
4753 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4752 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4754
4753
4755 2003-05-15 Fernando Perez <fperez@colorado.edu>
4754 2003-05-15 Fernando Perez <fperez@colorado.edu>
4756
4755
4757 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4756 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4758 installing for a new user under Windows.
4757 installing for a new user under Windows.
4759
4758
4760 2003-05-12 Fernando Perez <fperez@colorado.edu>
4759 2003-05-12 Fernando Perez <fperez@colorado.edu>
4761
4760
4762 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4761 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4763 handler for Emacs comint-based lines. Currently it doesn't do
4762 handler for Emacs comint-based lines. Currently it doesn't do
4764 much (but importantly, it doesn't update the history cache). In
4763 much (but importantly, it doesn't update the history cache). In
4765 the future it may be expanded if Alex needs more functionality
4764 the future it may be expanded if Alex needs more functionality
4766 there.
4765 there.
4767
4766
4768 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4767 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4769 info to crash reports.
4768 info to crash reports.
4770
4769
4771 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4770 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4772 just like Python's -c. Also fixed crash with invalid -color
4771 just like Python's -c. Also fixed crash with invalid -color
4773 option value at startup. Thanks to Will French
4772 option value at startup. Thanks to Will French
4774 <wfrench-AT-bestweb.net> for the bug report.
4773 <wfrench-AT-bestweb.net> for the bug report.
4775
4774
4776 2003-05-09 Fernando Perez <fperez@colorado.edu>
4775 2003-05-09 Fernando Perez <fperez@colorado.edu>
4777
4776
4778 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4777 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4779 to EvalDict (it's a mapping, after all) and simplified its code
4778 to EvalDict (it's a mapping, after all) and simplified its code
4780 quite a bit, after a nice discussion on c.l.py where Gustavo
4779 quite a bit, after a nice discussion on c.l.py where Gustavo
4781 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4780 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4782
4781
4783 2003-04-30 Fernando Perez <fperez@colorado.edu>
4782 2003-04-30 Fernando Perez <fperez@colorado.edu>
4784
4783
4785 * IPython/genutils.py (timings_out): modified it to reduce its
4784 * IPython/genutils.py (timings_out): modified it to reduce its
4786 overhead in the common reps==1 case.
4785 overhead in the common reps==1 case.
4787
4786
4788 2003-04-29 Fernando Perez <fperez@colorado.edu>
4787 2003-04-29 Fernando Perez <fperez@colorado.edu>
4789
4788
4790 * IPython/genutils.py (timings_out): Modified to use the resource
4789 * IPython/genutils.py (timings_out): Modified to use the resource
4791 module, which avoids the wraparound problems of time.clock().
4790 module, which avoids the wraparound problems of time.clock().
4792
4791
4793 2003-04-17 *** Released version 0.2.15pre4
4792 2003-04-17 *** Released version 0.2.15pre4
4794
4793
4795 2003-04-17 Fernando Perez <fperez@colorado.edu>
4794 2003-04-17 Fernando Perez <fperez@colorado.edu>
4796
4795
4797 * setup.py (scriptfiles): Split windows-specific stuff over to a
4796 * setup.py (scriptfiles): Split windows-specific stuff over to a
4798 separate file, in an attempt to have a Windows GUI installer.
4797 separate file, in an attempt to have a Windows GUI installer.
4799 That didn't work, but part of the groundwork is done.
4798 That didn't work, but part of the groundwork is done.
4800
4799
4801 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4800 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4802 indent/unindent with 4 spaces. Particularly useful in combination
4801 indent/unindent with 4 spaces. Particularly useful in combination
4803 with the new auto-indent option.
4802 with the new auto-indent option.
4804
4803
4805 2003-04-16 Fernando Perez <fperez@colorado.edu>
4804 2003-04-16 Fernando Perez <fperez@colorado.edu>
4806
4805
4807 * IPython/Magic.py: various replacements of self.rc for
4806 * IPython/Magic.py: various replacements of self.rc for
4808 self.shell.rc. A lot more remains to be done to fully disentangle
4807 self.shell.rc. A lot more remains to be done to fully disentangle
4809 this class from the main Shell class.
4808 this class from the main Shell class.
4810
4809
4811 * IPython/GnuplotRuntime.py: added checks for mouse support so
4810 * IPython/GnuplotRuntime.py: added checks for mouse support so
4812 that we don't try to enable it if the current gnuplot doesn't
4811 that we don't try to enable it if the current gnuplot doesn't
4813 really support it. Also added checks so that we don't try to
4812 really support it. Also added checks so that we don't try to
4814 enable persist under Windows (where Gnuplot doesn't recognize the
4813 enable persist under Windows (where Gnuplot doesn't recognize the
4815 option).
4814 option).
4816
4815
4817 * IPython/iplib.py (InteractiveShell.interact): Added optional
4816 * IPython/iplib.py (InteractiveShell.interact): Added optional
4818 auto-indenting code, after a patch by King C. Shu
4817 auto-indenting code, after a patch by King C. Shu
4819 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4818 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4820 get along well with pasting indented code. If I ever figure out
4819 get along well with pasting indented code. If I ever figure out
4821 how to make that part go well, it will become on by default.
4820 how to make that part go well, it will become on by default.
4822
4821
4823 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4822 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4824 crash ipython if there was an unmatched '%' in the user's prompt
4823 crash ipython if there was an unmatched '%' in the user's prompt
4825 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4824 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4826
4825
4827 * IPython/iplib.py (InteractiveShell.interact): removed the
4826 * IPython/iplib.py (InteractiveShell.interact): removed the
4828 ability to ask the user whether he wants to crash or not at the
4827 ability to ask the user whether he wants to crash or not at the
4829 'last line' exception handler. Calling functions at that point
4828 'last line' exception handler. Calling functions at that point
4830 changes the stack, and the error reports would have incorrect
4829 changes the stack, and the error reports would have incorrect
4831 tracebacks.
4830 tracebacks.
4832
4831
4833 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4832 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4834 pass through a peger a pretty-printed form of any object. After a
4833 pass through a peger a pretty-printed form of any object. After a
4835 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4834 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4836
4835
4837 2003-04-14 Fernando Perez <fperez@colorado.edu>
4836 2003-04-14 Fernando Perez <fperez@colorado.edu>
4838
4837
4839 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4838 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4840 all files in ~ would be modified at first install (instead of
4839 all files in ~ would be modified at first install (instead of
4841 ~/.ipython). This could be potentially disastrous, as the
4840 ~/.ipython). This could be potentially disastrous, as the
4842 modification (make line-endings native) could damage binary files.
4841 modification (make line-endings native) could damage binary files.
4843
4842
4844 2003-04-10 Fernando Perez <fperez@colorado.edu>
4843 2003-04-10 Fernando Perez <fperez@colorado.edu>
4845
4844
4846 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4845 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4847 handle only lines which are invalid python. This now means that
4846 handle only lines which are invalid python. This now means that
4848 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4847 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4849 for the bug report.
4848 for the bug report.
4850
4849
4851 2003-04-01 Fernando Perez <fperez@colorado.edu>
4850 2003-04-01 Fernando Perez <fperez@colorado.edu>
4852
4851
4853 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4852 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4854 where failing to set sys.last_traceback would crash pdb.pm().
4853 where failing to set sys.last_traceback would crash pdb.pm().
4855 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4854 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4856 report.
4855 report.
4857
4856
4858 2003-03-25 Fernando Perez <fperez@colorado.edu>
4857 2003-03-25 Fernando Perez <fperez@colorado.edu>
4859
4858
4860 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4859 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4861 before printing it (it had a lot of spurious blank lines at the
4860 before printing it (it had a lot of spurious blank lines at the
4862 end).
4861 end).
4863
4862
4864 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4863 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4865 output would be sent 21 times! Obviously people don't use this
4864 output would be sent 21 times! Obviously people don't use this
4866 too often, or I would have heard about it.
4865 too often, or I would have heard about it.
4867
4866
4868 2003-03-24 Fernando Perez <fperez@colorado.edu>
4867 2003-03-24 Fernando Perez <fperez@colorado.edu>
4869
4868
4870 * setup.py (scriptfiles): renamed the data_files parameter from
4869 * setup.py (scriptfiles): renamed the data_files parameter from
4871 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4870 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4872 for the patch.
4871 for the patch.
4873
4872
4874 2003-03-20 Fernando Perez <fperez@colorado.edu>
4873 2003-03-20 Fernando Perez <fperez@colorado.edu>
4875
4874
4876 * IPython/genutils.py (error): added error() and fatal()
4875 * IPython/genutils.py (error): added error() and fatal()
4877 functions.
4876 functions.
4878
4877
4879 2003-03-18 *** Released version 0.2.15pre3
4878 2003-03-18 *** Released version 0.2.15pre3
4880
4879
4881 2003-03-18 Fernando Perez <fperez@colorado.edu>
4880 2003-03-18 Fernando Perez <fperez@colorado.edu>
4882
4881
4883 * setupext/install_data_ext.py
4882 * setupext/install_data_ext.py
4884 (install_data_ext.initialize_options): Class contributed by Jack
4883 (install_data_ext.initialize_options): Class contributed by Jack
4885 Moffit for fixing the old distutils hack. He is sending this to
4884 Moffit for fixing the old distutils hack. He is sending this to
4886 the distutils folks so in the future we may not need it as a
4885 the distutils folks so in the future we may not need it as a
4887 private fix.
4886 private fix.
4888
4887
4889 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4888 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4890 changes for Debian packaging. See his patch for full details.
4889 changes for Debian packaging. See his patch for full details.
4891 The old distutils hack of making the ipythonrc* files carry a
4890 The old distutils hack of making the ipythonrc* files carry a
4892 bogus .py extension is gone, at last. Examples were moved to a
4891 bogus .py extension is gone, at last. Examples were moved to a
4893 separate subdir under doc/, and the separate executable scripts
4892 separate subdir under doc/, and the separate executable scripts
4894 now live in their own directory. Overall a great cleanup. The
4893 now live in their own directory. Overall a great cleanup. The
4895 manual was updated to use the new files, and setup.py has been
4894 manual was updated to use the new files, and setup.py has been
4896 fixed for this setup.
4895 fixed for this setup.
4897
4896
4898 * IPython/PyColorize.py (Parser.usage): made non-executable and
4897 * IPython/PyColorize.py (Parser.usage): made non-executable and
4899 created a pycolor wrapper around it to be included as a script.
4898 created a pycolor wrapper around it to be included as a script.
4900
4899
4901 2003-03-12 *** Released version 0.2.15pre2
4900 2003-03-12 *** Released version 0.2.15pre2
4902
4901
4903 2003-03-12 Fernando Perez <fperez@colorado.edu>
4902 2003-03-12 Fernando Perez <fperez@colorado.edu>
4904
4903
4905 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4904 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4906 long-standing problem with garbage characters in some terminals.
4905 long-standing problem with garbage characters in some terminals.
4907 The issue was really that the \001 and \002 escapes must _only_ be
4906 The issue was really that the \001 and \002 escapes must _only_ be
4908 passed to input prompts (which call readline), but _never_ to
4907 passed to input prompts (which call readline), but _never_ to
4909 normal text to be printed on screen. I changed ColorANSI to have
4908 normal text to be printed on screen. I changed ColorANSI to have
4910 two classes: TermColors and InputTermColors, each with the
4909 two classes: TermColors and InputTermColors, each with the
4911 appropriate escapes for input prompts or normal text. The code in
4910 appropriate escapes for input prompts or normal text. The code in
4912 Prompts.py got slightly more complicated, but this very old and
4911 Prompts.py got slightly more complicated, but this very old and
4913 annoying bug is finally fixed.
4912 annoying bug is finally fixed.
4914
4913
4915 All the credit for nailing down the real origin of this problem
4914 All the credit for nailing down the real origin of this problem
4916 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4915 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4917 *Many* thanks to him for spending quite a bit of effort on this.
4916 *Many* thanks to him for spending quite a bit of effort on this.
4918
4917
4919 2003-03-05 *** Released version 0.2.15pre1
4918 2003-03-05 *** Released version 0.2.15pre1
4920
4919
4921 2003-03-03 Fernando Perez <fperez@colorado.edu>
4920 2003-03-03 Fernando Perez <fperez@colorado.edu>
4922
4921
4923 * IPython/FakeModule.py: Moved the former _FakeModule to a
4922 * IPython/FakeModule.py: Moved the former _FakeModule to a
4924 separate file, because it's also needed by Magic (to fix a similar
4923 separate file, because it's also needed by Magic (to fix a similar
4925 pickle-related issue in @run).
4924 pickle-related issue in @run).
4926
4925
4927 2003-03-02 Fernando Perez <fperez@colorado.edu>
4926 2003-03-02 Fernando Perez <fperez@colorado.edu>
4928
4927
4929 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4928 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4930 the autocall option at runtime.
4929 the autocall option at runtime.
4931 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4930 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4932 across Magic.py to start separating Magic from InteractiveShell.
4931 across Magic.py to start separating Magic from InteractiveShell.
4933 (Magic._ofind): Fixed to return proper namespace for dotted
4932 (Magic._ofind): Fixed to return proper namespace for dotted
4934 names. Before, a dotted name would always return 'not currently
4933 names. Before, a dotted name would always return 'not currently
4935 defined', because it would find the 'parent'. s.x would be found,
4934 defined', because it would find the 'parent'. s.x would be found,
4936 but since 'x' isn't defined by itself, it would get confused.
4935 but since 'x' isn't defined by itself, it would get confused.
4937 (Magic.magic_run): Fixed pickling problems reported by Ralf
4936 (Magic.magic_run): Fixed pickling problems reported by Ralf
4938 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4937 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4939 that I'd used when Mike Heeter reported similar issues at the
4938 that I'd used when Mike Heeter reported similar issues at the
4940 top-level, but now for @run. It boils down to injecting the
4939 top-level, but now for @run. It boils down to injecting the
4941 namespace where code is being executed with something that looks
4940 namespace where code is being executed with something that looks
4942 enough like a module to fool pickle.dump(). Since a pickle stores
4941 enough like a module to fool pickle.dump(). Since a pickle stores
4943 a named reference to the importing module, we need this for
4942 a named reference to the importing module, we need this for
4944 pickles to save something sensible.
4943 pickles to save something sensible.
4945
4944
4946 * IPython/ipmaker.py (make_IPython): added an autocall option.
4945 * IPython/ipmaker.py (make_IPython): added an autocall option.
4947
4946
4948 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4947 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4949 the auto-eval code. Now autocalling is an option, and the code is
4948 the auto-eval code. Now autocalling is an option, and the code is
4950 also vastly safer. There is no more eval() involved at all.
4949 also vastly safer. There is no more eval() involved at all.
4951
4950
4952 2003-03-01 Fernando Perez <fperez@colorado.edu>
4951 2003-03-01 Fernando Perez <fperez@colorado.edu>
4953
4952
4954 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4953 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4955 dict with named keys instead of a tuple.
4954 dict with named keys instead of a tuple.
4956
4955
4957 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4956 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4958
4957
4959 * setup.py (make_shortcut): Fixed message about directories
4958 * setup.py (make_shortcut): Fixed message about directories
4960 created during Windows installation (the directories were ok, just
4959 created during Windows installation (the directories were ok, just
4961 the printed message was misleading). Thanks to Chris Liechti
4960 the printed message was misleading). Thanks to Chris Liechti
4962 <cliechti-AT-gmx.net> for the heads up.
4961 <cliechti-AT-gmx.net> for the heads up.
4963
4962
4964 2003-02-21 Fernando Perez <fperez@colorado.edu>
4963 2003-02-21 Fernando Perez <fperez@colorado.edu>
4965
4964
4966 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4965 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4967 of ValueError exception when checking for auto-execution. This
4966 of ValueError exception when checking for auto-execution. This
4968 one is raised by things like Numeric arrays arr.flat when the
4967 one is raised by things like Numeric arrays arr.flat when the
4969 array is non-contiguous.
4968 array is non-contiguous.
4970
4969
4971 2003-01-31 Fernando Perez <fperez@colorado.edu>
4970 2003-01-31 Fernando Perez <fperez@colorado.edu>
4972
4971
4973 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4972 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4974 not return any value at all (even though the command would get
4973 not return any value at all (even though the command would get
4975 executed).
4974 executed).
4976 (xsys): Flush stdout right after printing the command to ensure
4975 (xsys): Flush stdout right after printing the command to ensure
4977 proper ordering of commands and command output in the total
4976 proper ordering of commands and command output in the total
4978 output.
4977 output.
4979 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4978 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4980 system/getoutput as defaults. The old ones are kept for
4979 system/getoutput as defaults. The old ones are kept for
4981 compatibility reasons, so no code which uses this library needs
4980 compatibility reasons, so no code which uses this library needs
4982 changing.
4981 changing.
4983
4982
4984 2003-01-27 *** Released version 0.2.14
4983 2003-01-27 *** Released version 0.2.14
4985
4984
4986 2003-01-25 Fernando Perez <fperez@colorado.edu>
4985 2003-01-25 Fernando Perez <fperez@colorado.edu>
4987
4986
4988 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4987 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4989 functions defined in previous edit sessions could not be re-edited
4988 functions defined in previous edit sessions could not be re-edited
4990 (because the temp files were immediately removed). Now temp files
4989 (because the temp files were immediately removed). Now temp files
4991 are removed only at IPython's exit.
4990 are removed only at IPython's exit.
4992 (Magic.magic_run): Improved @run to perform shell-like expansions
4991 (Magic.magic_run): Improved @run to perform shell-like expansions
4993 on its arguments (~users and $VARS). With this, @run becomes more
4992 on its arguments (~users and $VARS). With this, @run becomes more
4994 like a normal command-line.
4993 like a normal command-line.
4995
4994
4996 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4995 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4997 bugs related to embedding and cleaned up that code. A fairly
4996 bugs related to embedding and cleaned up that code. A fairly
4998 important one was the impossibility to access the global namespace
4997 important one was the impossibility to access the global namespace
4999 through the embedded IPython (only local variables were visible).
4998 through the embedded IPython (only local variables were visible).
5000
4999
5001 2003-01-14 Fernando Perez <fperez@colorado.edu>
5000 2003-01-14 Fernando Perez <fperez@colorado.edu>
5002
5001
5003 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5002 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5004 auto-calling to be a bit more conservative. Now it doesn't get
5003 auto-calling to be a bit more conservative. Now it doesn't get
5005 triggered if any of '!=()<>' are in the rest of the input line, to
5004 triggered if any of '!=()<>' are in the rest of the input line, to
5006 allow comparing callables. Thanks to Alex for the heads up.
5005 allow comparing callables. Thanks to Alex for the heads up.
5007
5006
5008 2003-01-07 Fernando Perez <fperez@colorado.edu>
5007 2003-01-07 Fernando Perez <fperez@colorado.edu>
5009
5008
5010 * IPython/genutils.py (page): fixed estimation of the number of
5009 * IPython/genutils.py (page): fixed estimation of the number of
5011 lines in a string to be paged to simply count newlines. This
5010 lines in a string to be paged to simply count newlines. This
5012 prevents over-guessing due to embedded escape sequences. A better
5011 prevents over-guessing due to embedded escape sequences. A better
5013 long-term solution would involve stripping out the control chars
5012 long-term solution would involve stripping out the control chars
5014 for the count, but it's potentially so expensive I just don't
5013 for the count, but it's potentially so expensive I just don't
5015 think it's worth doing.
5014 think it's worth doing.
5016
5015
5017 2002-12-19 *** Released version 0.2.14pre50
5016 2002-12-19 *** Released version 0.2.14pre50
5018
5017
5019 2002-12-19 Fernando Perez <fperez@colorado.edu>
5018 2002-12-19 Fernando Perez <fperez@colorado.edu>
5020
5019
5021 * tools/release (version): Changed release scripts to inform
5020 * tools/release (version): Changed release scripts to inform
5022 Andrea and build a NEWS file with a list of recent changes.
5021 Andrea and build a NEWS file with a list of recent changes.
5023
5022
5024 * IPython/ColorANSI.py (__all__): changed terminal detection
5023 * IPython/ColorANSI.py (__all__): changed terminal detection
5025 code. Seems to work better for xterms without breaking
5024 code. Seems to work better for xterms without breaking
5026 konsole. Will need more testing to determine if WinXP and Mac OSX
5025 konsole. Will need more testing to determine if WinXP and Mac OSX
5027 also work ok.
5026 also work ok.
5028
5027
5029 2002-12-18 *** Released version 0.2.14pre49
5028 2002-12-18 *** Released version 0.2.14pre49
5030
5029
5031 2002-12-18 Fernando Perez <fperez@colorado.edu>
5030 2002-12-18 Fernando Perez <fperez@colorado.edu>
5032
5031
5033 * Docs: added new info about Mac OSX, from Andrea.
5032 * Docs: added new info about Mac OSX, from Andrea.
5034
5033
5035 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5034 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5036 allow direct plotting of python strings whose format is the same
5035 allow direct plotting of python strings whose format is the same
5037 of gnuplot data files.
5036 of gnuplot data files.
5038
5037
5039 2002-12-16 Fernando Perez <fperez@colorado.edu>
5038 2002-12-16 Fernando Perez <fperez@colorado.edu>
5040
5039
5041 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5040 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5042 value of exit question to be acknowledged.
5041 value of exit question to be acknowledged.
5043
5042
5044 2002-12-03 Fernando Perez <fperez@colorado.edu>
5043 2002-12-03 Fernando Perez <fperez@colorado.edu>
5045
5044
5046 * IPython/ipmaker.py: removed generators, which had been added
5045 * IPython/ipmaker.py: removed generators, which had been added
5047 by mistake in an earlier debugging run. This was causing trouble
5046 by mistake in an earlier debugging run. This was causing trouble
5048 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5047 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5049 for pointing this out.
5048 for pointing this out.
5050
5049
5051 2002-11-17 Fernando Perez <fperez@colorado.edu>
5050 2002-11-17 Fernando Perez <fperez@colorado.edu>
5052
5051
5053 * Manual: updated the Gnuplot section.
5052 * Manual: updated the Gnuplot section.
5054
5053
5055 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5054 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5056 a much better split of what goes in Runtime and what goes in
5055 a much better split of what goes in Runtime and what goes in
5057 Interactive.
5056 Interactive.
5058
5057
5059 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5058 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5060 being imported from iplib.
5059 being imported from iplib.
5061
5060
5062 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5061 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5063 for command-passing. Now the global Gnuplot instance is called
5062 for command-passing. Now the global Gnuplot instance is called
5064 'gp' instead of 'g', which was really a far too fragile and
5063 'gp' instead of 'g', which was really a far too fragile and
5065 common name.
5064 common name.
5066
5065
5067 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5066 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5068 bounding boxes generated by Gnuplot for square plots.
5067 bounding boxes generated by Gnuplot for square plots.
5069
5068
5070 * IPython/genutils.py (popkey): new function added. I should
5069 * IPython/genutils.py (popkey): new function added. I should
5071 suggest this on c.l.py as a dict method, it seems useful.
5070 suggest this on c.l.py as a dict method, it seems useful.
5072
5071
5073 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5072 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5074 to transparently handle PostScript generation. MUCH better than
5073 to transparently handle PostScript generation. MUCH better than
5075 the previous plot_eps/replot_eps (which I removed now). The code
5074 the previous plot_eps/replot_eps (which I removed now). The code
5076 is also fairly clean and well documented now (including
5075 is also fairly clean and well documented now (including
5077 docstrings).
5076 docstrings).
5078
5077
5079 2002-11-13 Fernando Perez <fperez@colorado.edu>
5078 2002-11-13 Fernando Perez <fperez@colorado.edu>
5080
5079
5081 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5080 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5082 (inconsistent with options).
5081 (inconsistent with options).
5083
5082
5084 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5083 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5085 manually disabled, I don't know why. Fixed it.
5084 manually disabled, I don't know why. Fixed it.
5086 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5085 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5087 eps output.
5086 eps output.
5088
5087
5089 2002-11-12 Fernando Perez <fperez@colorado.edu>
5088 2002-11-12 Fernando Perez <fperez@colorado.edu>
5090
5089
5091 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5090 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5092 don't propagate up to caller. Fixes crash reported by François
5091 don't propagate up to caller. Fixes crash reported by François
5093 Pinard.
5092 Pinard.
5094
5093
5095 2002-11-09 Fernando Perez <fperez@colorado.edu>
5094 2002-11-09 Fernando Perez <fperez@colorado.edu>
5096
5095
5097 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5096 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5098 history file for new users.
5097 history file for new users.
5099 (make_IPython): fixed bug where initial install would leave the
5098 (make_IPython): fixed bug where initial install would leave the
5100 user running in the .ipython dir.
5099 user running in the .ipython dir.
5101 (make_IPython): fixed bug where config dir .ipython would be
5100 (make_IPython): fixed bug where config dir .ipython would be
5102 created regardless of the given -ipythondir option. Thanks to Cory
5101 created regardless of the given -ipythondir option. Thanks to Cory
5103 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5102 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5104
5103
5105 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5104 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5106 type confirmations. Will need to use it in all of IPython's code
5105 type confirmations. Will need to use it in all of IPython's code
5107 consistently.
5106 consistently.
5108
5107
5109 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5108 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5110 context to print 31 lines instead of the default 5. This will make
5109 context to print 31 lines instead of the default 5. This will make
5111 the crash reports extremely detailed in case the problem is in
5110 the crash reports extremely detailed in case the problem is in
5112 libraries I don't have access to.
5111 libraries I don't have access to.
5113
5112
5114 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5113 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5115 line of defense' code to still crash, but giving users fair
5114 line of defense' code to still crash, but giving users fair
5116 warning. I don't want internal errors to go unreported: if there's
5115 warning. I don't want internal errors to go unreported: if there's
5117 an internal problem, IPython should crash and generate a full
5116 an internal problem, IPython should crash and generate a full
5118 report.
5117 report.
5119
5118
5120 2002-11-08 Fernando Perez <fperez@colorado.edu>
5119 2002-11-08 Fernando Perez <fperez@colorado.edu>
5121
5120
5122 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5121 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5123 otherwise uncaught exceptions which can appear if people set
5122 otherwise uncaught exceptions which can appear if people set
5124 sys.stdout to something badly broken. Thanks to a crash report
5123 sys.stdout to something badly broken. Thanks to a crash report
5125 from henni-AT-mail.brainbot.com.
5124 from henni-AT-mail.brainbot.com.
5126
5125
5127 2002-11-04 Fernando Perez <fperez@colorado.edu>
5126 2002-11-04 Fernando Perez <fperez@colorado.edu>
5128
5127
5129 * IPython/iplib.py (InteractiveShell.interact): added
5128 * IPython/iplib.py (InteractiveShell.interact): added
5130 __IPYTHON__active to the builtins. It's a flag which goes on when
5129 __IPYTHON__active to the builtins. It's a flag which goes on when
5131 the interaction starts and goes off again when it stops. This
5130 the interaction starts and goes off again when it stops. This
5132 allows embedding code to detect being inside IPython. Before this
5131 allows embedding code to detect being inside IPython. Before this
5133 was done via __IPYTHON__, but that only shows that an IPython
5132 was done via __IPYTHON__, but that only shows that an IPython
5134 instance has been created.
5133 instance has been created.
5135
5134
5136 * IPython/Magic.py (Magic.magic_env): I realized that in a
5135 * IPython/Magic.py (Magic.magic_env): I realized that in a
5137 UserDict, instance.data holds the data as a normal dict. So I
5136 UserDict, instance.data holds the data as a normal dict. So I
5138 modified @env to return os.environ.data instead of rebuilding a
5137 modified @env to return os.environ.data instead of rebuilding a
5139 dict by hand.
5138 dict by hand.
5140
5139
5141 2002-11-02 Fernando Perez <fperez@colorado.edu>
5140 2002-11-02 Fernando Perez <fperez@colorado.edu>
5142
5141
5143 * IPython/genutils.py (warn): changed so that level 1 prints no
5142 * IPython/genutils.py (warn): changed so that level 1 prints no
5144 header. Level 2 is now the default (with 'WARNING' header, as
5143 header. Level 2 is now the default (with 'WARNING' header, as
5145 before). I think I tracked all places where changes were needed in
5144 before). I think I tracked all places where changes were needed in
5146 IPython, but outside code using the old level numbering may have
5145 IPython, but outside code using the old level numbering may have
5147 broken.
5146 broken.
5148
5147
5149 * IPython/iplib.py (InteractiveShell.runcode): added this to
5148 * IPython/iplib.py (InteractiveShell.runcode): added this to
5150 handle the tracebacks in SystemExit traps correctly. The previous
5149 handle the tracebacks in SystemExit traps correctly. The previous
5151 code (through interact) was printing more of the stack than
5150 code (through interact) was printing more of the stack than
5152 necessary, showing IPython internal code to the user.
5151 necessary, showing IPython internal code to the user.
5153
5152
5154 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5153 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5155 default. Now that the default at the confirmation prompt is yes,
5154 default. Now that the default at the confirmation prompt is yes,
5156 it's not so intrusive. François' argument that ipython sessions
5155 it's not so intrusive. François' argument that ipython sessions
5157 tend to be complex enough not to lose them from an accidental C-d,
5156 tend to be complex enough not to lose them from an accidental C-d,
5158 is a valid one.
5157 is a valid one.
5159
5158
5160 * IPython/iplib.py (InteractiveShell.interact): added a
5159 * IPython/iplib.py (InteractiveShell.interact): added a
5161 showtraceback() call to the SystemExit trap, and modified the exit
5160 showtraceback() call to the SystemExit trap, and modified the exit
5162 confirmation to have yes as the default.
5161 confirmation to have yes as the default.
5163
5162
5164 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5163 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5165 this file. It's been gone from the code for a long time, this was
5164 this file. It's been gone from the code for a long time, this was
5166 simply leftover junk.
5165 simply leftover junk.
5167
5166
5168 2002-11-01 Fernando Perez <fperez@colorado.edu>
5167 2002-11-01 Fernando Perez <fperez@colorado.edu>
5169
5168
5170 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5169 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5171 added. If set, IPython now traps EOF and asks for
5170 added. If set, IPython now traps EOF and asks for
5172 confirmation. After a request by François Pinard.
5171 confirmation. After a request by François Pinard.
5173
5172
5174 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5173 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5175 of @abort, and with a new (better) mechanism for handling the
5174 of @abort, and with a new (better) mechanism for handling the
5176 exceptions.
5175 exceptions.
5177
5176
5178 2002-10-27 Fernando Perez <fperez@colorado.edu>
5177 2002-10-27 Fernando Perez <fperez@colorado.edu>
5179
5178
5180 * IPython/usage.py (__doc__): updated the --help information and
5179 * IPython/usage.py (__doc__): updated the --help information and
5181 the ipythonrc file to indicate that -log generates
5180 the ipythonrc file to indicate that -log generates
5182 ./ipython.log. Also fixed the corresponding info in @logstart.
5181 ./ipython.log. Also fixed the corresponding info in @logstart.
5183 This and several other fixes in the manuals thanks to reports by
5182 This and several other fixes in the manuals thanks to reports by
5184 François Pinard <pinard-AT-iro.umontreal.ca>.
5183 François Pinard <pinard-AT-iro.umontreal.ca>.
5185
5184
5186 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5185 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5187 refer to @logstart (instead of @log, which doesn't exist).
5186 refer to @logstart (instead of @log, which doesn't exist).
5188
5187
5189 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5188 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5190 AttributeError crash. Thanks to Christopher Armstrong
5189 AttributeError crash. Thanks to Christopher Armstrong
5191 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5190 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5192 introduced recently (in 0.2.14pre37) with the fix to the eval
5191 introduced recently (in 0.2.14pre37) with the fix to the eval
5193 problem mentioned below.
5192 problem mentioned below.
5194
5193
5195 2002-10-17 Fernando Perez <fperez@colorado.edu>
5194 2002-10-17 Fernando Perez <fperez@colorado.edu>
5196
5195
5197 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5196 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5198 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5197 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5199
5198
5200 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5199 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5201 this function to fix a problem reported by Alex Schmolck. He saw
5200 this function to fix a problem reported by Alex Schmolck. He saw
5202 it with list comprehensions and generators, which were getting
5201 it with list comprehensions and generators, which were getting
5203 called twice. The real problem was an 'eval' call in testing for
5202 called twice. The real problem was an 'eval' call in testing for
5204 automagic which was evaluating the input line silently.
5203 automagic which was evaluating the input line silently.
5205
5204
5206 This is a potentially very nasty bug, if the input has side
5205 This is a potentially very nasty bug, if the input has side
5207 effects which must not be repeated. The code is much cleaner now,
5206 effects which must not be repeated. The code is much cleaner now,
5208 without any blanket 'except' left and with a regexp test for
5207 without any blanket 'except' left and with a regexp test for
5209 actual function names.
5208 actual function names.
5210
5209
5211 But an eval remains, which I'm not fully comfortable with. I just
5210 But an eval remains, which I'm not fully comfortable with. I just
5212 don't know how to find out if an expression could be a callable in
5211 don't know how to find out if an expression could be a callable in
5213 the user's namespace without doing an eval on the string. However
5212 the user's namespace without doing an eval on the string. However
5214 that string is now much more strictly checked so that no code
5213 that string is now much more strictly checked so that no code
5215 slips by, so the eval should only happen for things that can
5214 slips by, so the eval should only happen for things that can
5216 really be only function/method names.
5215 really be only function/method names.
5217
5216
5218 2002-10-15 Fernando Perez <fperez@colorado.edu>
5217 2002-10-15 Fernando Perez <fperez@colorado.edu>
5219
5218
5220 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5219 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5221 OSX information to main manual, removed README_Mac_OSX file from
5220 OSX information to main manual, removed README_Mac_OSX file from
5222 distribution. Also updated credits for recent additions.
5221 distribution. Also updated credits for recent additions.
5223
5222
5224 2002-10-10 Fernando Perez <fperez@colorado.edu>
5223 2002-10-10 Fernando Perez <fperez@colorado.edu>
5225
5224
5226 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5225 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5227 terminal-related issues. Many thanks to Andrea Riciputi
5226 terminal-related issues. Many thanks to Andrea Riciputi
5228 <andrea.riciputi-AT-libero.it> for writing it.
5227 <andrea.riciputi-AT-libero.it> for writing it.
5229
5228
5230 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5229 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5231 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5230 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5232
5231
5233 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5232 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5234 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5233 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5235 <syver-en-AT-online.no> who both submitted patches for this problem.
5234 <syver-en-AT-online.no> who both submitted patches for this problem.
5236
5235
5237 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5236 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5238 global embedding to make sure that things don't overwrite user
5237 global embedding to make sure that things don't overwrite user
5239 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5238 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5240
5239
5241 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5240 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5242 compatibility. Thanks to Hayden Callow
5241 compatibility. Thanks to Hayden Callow
5243 <h.callow-AT-elec.canterbury.ac.nz>
5242 <h.callow-AT-elec.canterbury.ac.nz>
5244
5243
5245 2002-10-04 Fernando Perez <fperez@colorado.edu>
5244 2002-10-04 Fernando Perez <fperez@colorado.edu>
5246
5245
5247 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5246 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5248 Gnuplot.File objects.
5247 Gnuplot.File objects.
5249
5248
5250 2002-07-23 Fernando Perez <fperez@colorado.edu>
5249 2002-07-23 Fernando Perez <fperez@colorado.edu>
5251
5250
5252 * IPython/genutils.py (timing): Added timings() and timing() for
5251 * IPython/genutils.py (timing): Added timings() and timing() for
5253 quick access to the most commonly needed data, the execution
5252 quick access to the most commonly needed data, the execution
5254 times. Old timing() renamed to timings_out().
5253 times. Old timing() renamed to timings_out().
5255
5254
5256 2002-07-18 Fernando Perez <fperez@colorado.edu>
5255 2002-07-18 Fernando Perez <fperez@colorado.edu>
5257
5256
5258 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5257 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5259 bug with nested instances disrupting the parent's tab completion.
5258 bug with nested instances disrupting the parent's tab completion.
5260
5259
5261 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5260 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5262 all_completions code to begin the emacs integration.
5261 all_completions code to begin the emacs integration.
5263
5262
5264 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5263 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5265 argument to allow titling individual arrays when plotting.
5264 argument to allow titling individual arrays when plotting.
5266
5265
5267 2002-07-15 Fernando Perez <fperez@colorado.edu>
5266 2002-07-15 Fernando Perez <fperez@colorado.edu>
5268
5267
5269 * setup.py (make_shortcut): changed to retrieve the value of
5268 * setup.py (make_shortcut): changed to retrieve the value of
5270 'Program Files' directory from the registry (this value changes in
5269 'Program Files' directory from the registry (this value changes in
5271 non-english versions of Windows). Thanks to Thomas Fanslau
5270 non-english versions of Windows). Thanks to Thomas Fanslau
5272 <tfanslau-AT-gmx.de> for the report.
5271 <tfanslau-AT-gmx.de> for the report.
5273
5272
5274 2002-07-10 Fernando Perez <fperez@colorado.edu>
5273 2002-07-10 Fernando Perez <fperez@colorado.edu>
5275
5274
5276 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5275 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5277 a bug in pdb, which crashes if a line with only whitespace is
5276 a bug in pdb, which crashes if a line with only whitespace is
5278 entered. Bug report submitted to sourceforge.
5277 entered. Bug report submitted to sourceforge.
5279
5278
5280 2002-07-09 Fernando Perez <fperez@colorado.edu>
5279 2002-07-09 Fernando Perez <fperez@colorado.edu>
5281
5280
5282 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5281 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5283 reporting exceptions (it's a bug in inspect.py, I just set a
5282 reporting exceptions (it's a bug in inspect.py, I just set a
5284 workaround).
5283 workaround).
5285
5284
5286 2002-07-08 Fernando Perez <fperez@colorado.edu>
5285 2002-07-08 Fernando Perez <fperez@colorado.edu>
5287
5286
5288 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5287 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5289 __IPYTHON__ in __builtins__ to show up in user_ns.
5288 __IPYTHON__ in __builtins__ to show up in user_ns.
5290
5289
5291 2002-07-03 Fernando Perez <fperez@colorado.edu>
5290 2002-07-03 Fernando Perez <fperez@colorado.edu>
5292
5291
5293 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5292 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5294 name from @gp_set_instance to @gp_set_default.
5293 name from @gp_set_instance to @gp_set_default.
5295
5294
5296 * IPython/ipmaker.py (make_IPython): default editor value set to
5295 * IPython/ipmaker.py (make_IPython): default editor value set to
5297 '0' (a string), to match the rc file. Otherwise will crash when
5296 '0' (a string), to match the rc file. Otherwise will crash when
5298 .strip() is called on it.
5297 .strip() is called on it.
5299
5298
5300
5299
5301 2002-06-28 Fernando Perez <fperez@colorado.edu>
5300 2002-06-28 Fernando Perez <fperez@colorado.edu>
5302
5301
5303 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5302 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5304 of files in current directory when a file is executed via
5303 of files in current directory when a file is executed via
5305 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5304 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5306
5305
5307 * setup.py (manfiles): fix for rpm builds, submitted by RA
5306 * setup.py (manfiles): fix for rpm builds, submitted by RA
5308 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5307 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5309
5308
5310 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5309 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5311 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5310 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5312 string!). A. Schmolck caught this one.
5311 string!). A. Schmolck caught this one.
5313
5312
5314 2002-06-27 Fernando Perez <fperez@colorado.edu>
5313 2002-06-27 Fernando Perez <fperez@colorado.edu>
5315
5314
5316 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5315 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5317 defined files at the cmd line. __name__ wasn't being set to
5316 defined files at the cmd line. __name__ wasn't being set to
5318 __main__.
5317 __main__.
5319
5318
5320 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5319 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5321 regular lists and tuples besides Numeric arrays.
5320 regular lists and tuples besides Numeric arrays.
5322
5321
5323 * IPython/Prompts.py (CachedOutput.__call__): Added output
5322 * IPython/Prompts.py (CachedOutput.__call__): Added output
5324 supression for input ending with ';'. Similar to Mathematica and
5323 supression for input ending with ';'. Similar to Mathematica and
5325 Matlab. The _* vars and Out[] list are still updated, just like
5324 Matlab. The _* vars and Out[] list are still updated, just like
5326 Mathematica behaves.
5325 Mathematica behaves.
5327
5326
5328 2002-06-25 Fernando Perez <fperez@colorado.edu>
5327 2002-06-25 Fernando Perez <fperez@colorado.edu>
5329
5328
5330 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5329 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5331 .ini extensions for profiels under Windows.
5330 .ini extensions for profiels under Windows.
5332
5331
5333 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5332 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5334 string form. Fix contributed by Alexander Schmolck
5333 string form. Fix contributed by Alexander Schmolck
5335 <a.schmolck-AT-gmx.net>
5334 <a.schmolck-AT-gmx.net>
5336
5335
5337 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5336 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5338 pre-configured Gnuplot instance.
5337 pre-configured Gnuplot instance.
5339
5338
5340 2002-06-21 Fernando Perez <fperez@colorado.edu>
5339 2002-06-21 Fernando Perez <fperez@colorado.edu>
5341
5340
5342 * IPython/numutils.py (exp_safe): new function, works around the
5341 * IPython/numutils.py (exp_safe): new function, works around the
5343 underflow problems in Numeric.
5342 underflow problems in Numeric.
5344 (log2): New fn. Safe log in base 2: returns exact integer answer
5343 (log2): New fn. Safe log in base 2: returns exact integer answer
5345 for exact integer powers of 2.
5344 for exact integer powers of 2.
5346
5345
5347 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5346 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5348 properly.
5347 properly.
5349
5348
5350 2002-06-20 Fernando Perez <fperez@colorado.edu>
5349 2002-06-20 Fernando Perez <fperez@colorado.edu>
5351
5350
5352 * IPython/genutils.py (timing): new function like
5351 * IPython/genutils.py (timing): new function like
5353 Mathematica's. Similar to time_test, but returns more info.
5352 Mathematica's. Similar to time_test, but returns more info.
5354
5353
5355 2002-06-18 Fernando Perez <fperez@colorado.edu>
5354 2002-06-18 Fernando Perez <fperez@colorado.edu>
5356
5355
5357 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5356 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5358 according to Mike Heeter's suggestions.
5357 according to Mike Heeter's suggestions.
5359
5358
5360 2002-06-16 Fernando Perez <fperez@colorado.edu>
5359 2002-06-16 Fernando Perez <fperez@colorado.edu>
5361
5360
5362 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5361 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5363 system. GnuplotMagic is gone as a user-directory option. New files
5362 system. GnuplotMagic is gone as a user-directory option. New files
5364 make it easier to use all the gnuplot stuff both from external
5363 make it easier to use all the gnuplot stuff both from external
5365 programs as well as from IPython. Had to rewrite part of
5364 programs as well as from IPython. Had to rewrite part of
5366 hardcopy() b/c of a strange bug: often the ps files simply don't
5365 hardcopy() b/c of a strange bug: often the ps files simply don't
5367 get created, and require a repeat of the command (often several
5366 get created, and require a repeat of the command (often several
5368 times).
5367 times).
5369
5368
5370 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5369 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5371 resolve output channel at call time, so that if sys.stderr has
5370 resolve output channel at call time, so that if sys.stderr has
5372 been redirected by user this gets honored.
5371 been redirected by user this gets honored.
5373
5372
5374 2002-06-13 Fernando Perez <fperez@colorado.edu>
5373 2002-06-13 Fernando Perez <fperez@colorado.edu>
5375
5374
5376 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5375 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5377 IPShell. Kept a copy with the old names to avoid breaking people's
5376 IPShell. Kept a copy with the old names to avoid breaking people's
5378 embedded code.
5377 embedded code.
5379
5378
5380 * IPython/ipython: simplified it to the bare minimum after
5379 * IPython/ipython: simplified it to the bare minimum after
5381 Holger's suggestions. Added info about how to use it in
5380 Holger's suggestions. Added info about how to use it in
5382 PYTHONSTARTUP.
5381 PYTHONSTARTUP.
5383
5382
5384 * IPython/Shell.py (IPythonShell): changed the options passing
5383 * IPython/Shell.py (IPythonShell): changed the options passing
5385 from a string with funky %s replacements to a straight list. Maybe
5384 from a string with funky %s replacements to a straight list. Maybe
5386 a bit more typing, but it follows sys.argv conventions, so there's
5385 a bit more typing, but it follows sys.argv conventions, so there's
5387 less special-casing to remember.
5386 less special-casing to remember.
5388
5387
5389 2002-06-12 Fernando Perez <fperez@colorado.edu>
5388 2002-06-12 Fernando Perez <fperez@colorado.edu>
5390
5389
5391 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5390 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5392 command. Thanks to a suggestion by Mike Heeter.
5391 command. Thanks to a suggestion by Mike Heeter.
5393 (Magic.magic_pfile): added behavior to look at filenames if given
5392 (Magic.magic_pfile): added behavior to look at filenames if given
5394 arg is not a defined object.
5393 arg is not a defined object.
5395 (Magic.magic_save): New @save function to save code snippets. Also
5394 (Magic.magic_save): New @save function to save code snippets. Also
5396 a Mike Heeter idea.
5395 a Mike Heeter idea.
5397
5396
5398 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5397 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5399 plot() and replot(). Much more convenient now, especially for
5398 plot() and replot(). Much more convenient now, especially for
5400 interactive use.
5399 interactive use.
5401
5400
5402 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5401 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5403 filenames.
5402 filenames.
5404
5403
5405 2002-06-02 Fernando Perez <fperez@colorado.edu>
5404 2002-06-02 Fernando Perez <fperez@colorado.edu>
5406
5405
5407 * IPython/Struct.py (Struct.__init__): modified to admit
5406 * IPython/Struct.py (Struct.__init__): modified to admit
5408 initialization via another struct.
5407 initialization via another struct.
5409
5408
5410 * IPython/genutils.py (SystemExec.__init__): New stateful
5409 * IPython/genutils.py (SystemExec.__init__): New stateful
5411 interface to xsys and bq. Useful for writing system scripts.
5410 interface to xsys and bq. Useful for writing system scripts.
5412
5411
5413 2002-05-30 Fernando Perez <fperez@colorado.edu>
5412 2002-05-30 Fernando Perez <fperez@colorado.edu>
5414
5413
5415 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5414 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5416 documents. This will make the user download smaller (it's getting
5415 documents. This will make the user download smaller (it's getting
5417 too big).
5416 too big).
5418
5417
5419 2002-05-29 Fernando Perez <fperez@colorado.edu>
5418 2002-05-29 Fernando Perez <fperez@colorado.edu>
5420
5419
5421 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5420 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5422 fix problems with shelve and pickle. Seems to work, but I don't
5421 fix problems with shelve and pickle. Seems to work, but I don't
5423 know if corner cases break it. Thanks to Mike Heeter
5422 know if corner cases break it. Thanks to Mike Heeter
5424 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5423 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5425
5424
5426 2002-05-24 Fernando Perez <fperez@colorado.edu>
5425 2002-05-24 Fernando Perez <fperez@colorado.edu>
5427
5426
5428 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5427 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5429 macros having broken.
5428 macros having broken.
5430
5429
5431 2002-05-21 Fernando Perez <fperez@colorado.edu>
5430 2002-05-21 Fernando Perez <fperez@colorado.edu>
5432
5431
5433 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5432 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5434 introduced logging bug: all history before logging started was
5433 introduced logging bug: all history before logging started was
5435 being written one character per line! This came from the redesign
5434 being written one character per line! This came from the redesign
5436 of the input history as a special list which slices to strings,
5435 of the input history as a special list which slices to strings,
5437 not to lists.
5436 not to lists.
5438
5437
5439 2002-05-20 Fernando Perez <fperez@colorado.edu>
5438 2002-05-20 Fernando Perez <fperez@colorado.edu>
5440
5439
5441 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5440 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5442 be an attribute of all classes in this module. The design of these
5441 be an attribute of all classes in this module. The design of these
5443 classes needs some serious overhauling.
5442 classes needs some serious overhauling.
5444
5443
5445 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5444 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5446 which was ignoring '_' in option names.
5445 which was ignoring '_' in option names.
5447
5446
5448 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5447 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5449 'Verbose_novars' to 'Context' and made it the new default. It's a
5448 'Verbose_novars' to 'Context' and made it the new default. It's a
5450 bit more readable and also safer than verbose.
5449 bit more readable and also safer than verbose.
5451
5450
5452 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5451 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5453 triple-quoted strings.
5452 triple-quoted strings.
5454
5453
5455 * IPython/OInspect.py (__all__): new module exposing the object
5454 * IPython/OInspect.py (__all__): new module exposing the object
5456 introspection facilities. Now the corresponding magics are dummy
5455 introspection facilities. Now the corresponding magics are dummy
5457 wrappers around this. Having this module will make it much easier
5456 wrappers around this. Having this module will make it much easier
5458 to put these functions into our modified pdb.
5457 to put these functions into our modified pdb.
5459 This new object inspector system uses the new colorizing module,
5458 This new object inspector system uses the new colorizing module,
5460 so source code and other things are nicely syntax highlighted.
5459 so source code and other things are nicely syntax highlighted.
5461
5460
5462 2002-05-18 Fernando Perez <fperez@colorado.edu>
5461 2002-05-18 Fernando Perez <fperez@colorado.edu>
5463
5462
5464 * IPython/ColorANSI.py: Split the coloring tools into a separate
5463 * IPython/ColorANSI.py: Split the coloring tools into a separate
5465 module so I can use them in other code easier (they were part of
5464 module so I can use them in other code easier (they were part of
5466 ultraTB).
5465 ultraTB).
5467
5466
5468 2002-05-17 Fernando Perez <fperez@colorado.edu>
5467 2002-05-17 Fernando Perez <fperez@colorado.edu>
5469
5468
5470 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5469 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5471 fixed it to set the global 'g' also to the called instance, as
5470 fixed it to set the global 'g' also to the called instance, as
5472 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5471 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5473 user's 'g' variables).
5472 user's 'g' variables).
5474
5473
5475 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5474 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5476 global variables (aliases to _ih,_oh) so that users which expect
5475 global variables (aliases to _ih,_oh) so that users which expect
5477 In[5] or Out[7] to work aren't unpleasantly surprised.
5476 In[5] or Out[7] to work aren't unpleasantly surprised.
5478 (InputList.__getslice__): new class to allow executing slices of
5477 (InputList.__getslice__): new class to allow executing slices of
5479 input history directly. Very simple class, complements the use of
5478 input history directly. Very simple class, complements the use of
5480 macros.
5479 macros.
5481
5480
5482 2002-05-16 Fernando Perez <fperez@colorado.edu>
5481 2002-05-16 Fernando Perez <fperez@colorado.edu>
5483
5482
5484 * setup.py (docdirbase): make doc directory be just doc/IPython
5483 * setup.py (docdirbase): make doc directory be just doc/IPython
5485 without version numbers, it will reduce clutter for users.
5484 without version numbers, it will reduce clutter for users.
5486
5485
5487 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5486 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5488 execfile call to prevent possible memory leak. See for details:
5487 execfile call to prevent possible memory leak. See for details:
5489 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5488 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5490
5489
5491 2002-05-15 Fernando Perez <fperez@colorado.edu>
5490 2002-05-15 Fernando Perez <fperez@colorado.edu>
5492
5491
5493 * IPython/Magic.py (Magic.magic_psource): made the object
5492 * IPython/Magic.py (Magic.magic_psource): made the object
5494 introspection names be more standard: pdoc, pdef, pfile and
5493 introspection names be more standard: pdoc, pdef, pfile and
5495 psource. They all print/page their output, and it makes
5494 psource. They all print/page their output, and it makes
5496 remembering them easier. Kept old names for compatibility as
5495 remembering them easier. Kept old names for compatibility as
5497 aliases.
5496 aliases.
5498
5497
5499 2002-05-14 Fernando Perez <fperez@colorado.edu>
5498 2002-05-14 Fernando Perez <fperez@colorado.edu>
5500
5499
5501 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5500 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5502 what the mouse problem was. The trick is to use gnuplot with temp
5501 what the mouse problem was. The trick is to use gnuplot with temp
5503 files and NOT with pipes (for data communication), because having
5502 files and NOT with pipes (for data communication), because having
5504 both pipes and the mouse on is bad news.
5503 both pipes and the mouse on is bad news.
5505
5504
5506 2002-05-13 Fernando Perez <fperez@colorado.edu>
5505 2002-05-13 Fernando Perez <fperez@colorado.edu>
5507
5506
5508 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5507 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5509 bug. Information would be reported about builtins even when
5508 bug. Information would be reported about builtins even when
5510 user-defined functions overrode them.
5509 user-defined functions overrode them.
5511
5510
5512 2002-05-11 Fernando Perez <fperez@colorado.edu>
5511 2002-05-11 Fernando Perez <fperez@colorado.edu>
5513
5512
5514 * IPython/__init__.py (__all__): removed FlexCompleter from
5513 * IPython/__init__.py (__all__): removed FlexCompleter from
5515 __all__ so that things don't fail in platforms without readline.
5514 __all__ so that things don't fail in platforms without readline.
5516
5515
5517 2002-05-10 Fernando Perez <fperez@colorado.edu>
5516 2002-05-10 Fernando Perez <fperez@colorado.edu>
5518
5517
5519 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5518 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5520 it requires Numeric, effectively making Numeric a dependency for
5519 it requires Numeric, effectively making Numeric a dependency for
5521 IPython.
5520 IPython.
5522
5521
5523 * Released 0.2.13
5522 * Released 0.2.13
5524
5523
5525 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5524 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5526 profiler interface. Now all the major options from the profiler
5525 profiler interface. Now all the major options from the profiler
5527 module are directly supported in IPython, both for single
5526 module are directly supported in IPython, both for single
5528 expressions (@prun) and for full programs (@run -p).
5527 expressions (@prun) and for full programs (@run -p).
5529
5528
5530 2002-05-09 Fernando Perez <fperez@colorado.edu>
5529 2002-05-09 Fernando Perez <fperez@colorado.edu>
5531
5530
5532 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5531 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5533 magic properly formatted for screen.
5532 magic properly formatted for screen.
5534
5533
5535 * setup.py (make_shortcut): Changed things to put pdf version in
5534 * setup.py (make_shortcut): Changed things to put pdf version in
5536 doc/ instead of doc/manual (had to change lyxport a bit).
5535 doc/ instead of doc/manual (had to change lyxport a bit).
5537
5536
5538 * IPython/Magic.py (Profile.string_stats): made profile runs go
5537 * IPython/Magic.py (Profile.string_stats): made profile runs go
5539 through pager (they are long and a pager allows searching, saving,
5538 through pager (they are long and a pager allows searching, saving,
5540 etc.)
5539 etc.)
5541
5540
5542 2002-05-08 Fernando Perez <fperez@colorado.edu>
5541 2002-05-08 Fernando Perez <fperez@colorado.edu>
5543
5542
5544 * Released 0.2.12
5543 * Released 0.2.12
5545
5544
5546 2002-05-06 Fernando Perez <fperez@colorado.edu>
5545 2002-05-06 Fernando Perez <fperez@colorado.edu>
5547
5546
5548 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5547 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5549 introduced); 'hist n1 n2' was broken.
5548 introduced); 'hist n1 n2' was broken.
5550 (Magic.magic_pdb): added optional on/off arguments to @pdb
5549 (Magic.magic_pdb): added optional on/off arguments to @pdb
5551 (Magic.magic_run): added option -i to @run, which executes code in
5550 (Magic.magic_run): added option -i to @run, which executes code in
5552 the IPython namespace instead of a clean one. Also added @irun as
5551 the IPython namespace instead of a clean one. Also added @irun as
5553 an alias to @run -i.
5552 an alias to @run -i.
5554
5553
5555 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5554 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5556 fixed (it didn't really do anything, the namespaces were wrong).
5555 fixed (it didn't really do anything, the namespaces were wrong).
5557
5556
5558 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5557 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5559
5558
5560 * IPython/__init__.py (__all__): Fixed package namespace, now
5559 * IPython/__init__.py (__all__): Fixed package namespace, now
5561 'import IPython' does give access to IPython.<all> as
5560 'import IPython' does give access to IPython.<all> as
5562 expected. Also renamed __release__ to Release.
5561 expected. Also renamed __release__ to Release.
5563
5562
5564 * IPython/Debugger.py (__license__): created new Pdb class which
5563 * IPython/Debugger.py (__license__): created new Pdb class which
5565 functions like a drop-in for the normal pdb.Pdb but does NOT
5564 functions like a drop-in for the normal pdb.Pdb but does NOT
5566 import readline by default. This way it doesn't muck up IPython's
5565 import readline by default. This way it doesn't muck up IPython's
5567 readline handling, and now tab-completion finally works in the
5566 readline handling, and now tab-completion finally works in the
5568 debugger -- sort of. It completes things globally visible, but the
5567 debugger -- sort of. It completes things globally visible, but the
5569 completer doesn't track the stack as pdb walks it. That's a bit
5568 completer doesn't track the stack as pdb walks it. That's a bit
5570 tricky, and I'll have to implement it later.
5569 tricky, and I'll have to implement it later.
5571
5570
5572 2002-05-05 Fernando Perez <fperez@colorado.edu>
5571 2002-05-05 Fernando Perez <fperez@colorado.edu>
5573
5572
5574 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5573 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5575 magic docstrings when printed via ? (explicit \'s were being
5574 magic docstrings when printed via ? (explicit \'s were being
5576 printed).
5575 printed).
5577
5576
5578 * IPython/ipmaker.py (make_IPython): fixed namespace
5577 * IPython/ipmaker.py (make_IPython): fixed namespace
5579 identification bug. Now variables loaded via logs or command-line
5578 identification bug. Now variables loaded via logs or command-line
5580 files are recognized in the interactive namespace by @who.
5579 files are recognized in the interactive namespace by @who.
5581
5580
5582 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5581 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5583 log replay system stemming from the string form of Structs.
5582 log replay system stemming from the string form of Structs.
5584
5583
5585 * IPython/Magic.py (Macro.__init__): improved macros to properly
5584 * IPython/Magic.py (Macro.__init__): improved macros to properly
5586 handle magic commands in them.
5585 handle magic commands in them.
5587 (Magic.magic_logstart): usernames are now expanded so 'logstart
5586 (Magic.magic_logstart): usernames are now expanded so 'logstart
5588 ~/mylog' now works.
5587 ~/mylog' now works.
5589
5588
5590 * IPython/iplib.py (complete): fixed bug where paths starting with
5589 * IPython/iplib.py (complete): fixed bug where paths starting with
5591 '/' would be completed as magic names.
5590 '/' would be completed as magic names.
5592
5591
5593 2002-05-04 Fernando Perez <fperez@colorado.edu>
5592 2002-05-04 Fernando Perez <fperez@colorado.edu>
5594
5593
5595 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5594 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5596 allow running full programs under the profiler's control.
5595 allow running full programs under the profiler's control.
5597
5596
5598 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5597 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5599 mode to report exceptions verbosely but without formatting
5598 mode to report exceptions verbosely but without formatting
5600 variables. This addresses the issue of ipython 'freezing' (it's
5599 variables. This addresses the issue of ipython 'freezing' (it's
5601 not frozen, but caught in an expensive formatting loop) when huge
5600 not frozen, but caught in an expensive formatting loop) when huge
5602 variables are in the context of an exception.
5601 variables are in the context of an exception.
5603 (VerboseTB.text): Added '--->' markers at line where exception was
5602 (VerboseTB.text): Added '--->' markers at line where exception was
5604 triggered. Much clearer to read, especially in NoColor modes.
5603 triggered. Much clearer to read, especially in NoColor modes.
5605
5604
5606 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5605 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5607 implemented in reverse when changing to the new parse_options().
5606 implemented in reverse when changing to the new parse_options().
5608
5607
5609 2002-05-03 Fernando Perez <fperez@colorado.edu>
5608 2002-05-03 Fernando Perez <fperez@colorado.edu>
5610
5609
5611 * IPython/Magic.py (Magic.parse_options): new function so that
5610 * IPython/Magic.py (Magic.parse_options): new function so that
5612 magics can parse options easier.
5611 magics can parse options easier.
5613 (Magic.magic_prun): new function similar to profile.run(),
5612 (Magic.magic_prun): new function similar to profile.run(),
5614 suggested by Chris Hart.
5613 suggested by Chris Hart.
5615 (Magic.magic_cd): fixed behavior so that it only changes if
5614 (Magic.magic_cd): fixed behavior so that it only changes if
5616 directory actually is in history.
5615 directory actually is in history.
5617
5616
5618 * IPython/usage.py (__doc__): added information about potential
5617 * IPython/usage.py (__doc__): added information about potential
5619 slowness of Verbose exception mode when there are huge data
5618 slowness of Verbose exception mode when there are huge data
5620 structures to be formatted (thanks to Archie Paulson).
5619 structures to be formatted (thanks to Archie Paulson).
5621
5620
5622 * IPython/ipmaker.py (make_IPython): Changed default logging
5621 * IPython/ipmaker.py (make_IPython): Changed default logging
5623 (when simply called with -log) to use curr_dir/ipython.log in
5622 (when simply called with -log) to use curr_dir/ipython.log in
5624 rotate mode. Fixed crash which was occuring with -log before
5623 rotate mode. Fixed crash which was occuring with -log before
5625 (thanks to Jim Boyle).
5624 (thanks to Jim Boyle).
5626
5625
5627 2002-05-01 Fernando Perez <fperez@colorado.edu>
5626 2002-05-01 Fernando Perez <fperez@colorado.edu>
5628
5627
5629 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5628 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5630 was nasty -- though somewhat of a corner case).
5629 was nasty -- though somewhat of a corner case).
5631
5630
5632 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5631 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5633 text (was a bug).
5632 text (was a bug).
5634
5633
5635 2002-04-30 Fernando Perez <fperez@colorado.edu>
5634 2002-04-30 Fernando Perez <fperez@colorado.edu>
5636
5635
5637 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5636 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5638 a print after ^D or ^C from the user so that the In[] prompt
5637 a print after ^D or ^C from the user so that the In[] prompt
5639 doesn't over-run the gnuplot one.
5638 doesn't over-run the gnuplot one.
5640
5639
5641 2002-04-29 Fernando Perez <fperez@colorado.edu>
5640 2002-04-29 Fernando Perez <fperez@colorado.edu>
5642
5641
5643 * Released 0.2.10
5642 * Released 0.2.10
5644
5643
5645 * IPython/__release__.py (version): get date dynamically.
5644 * IPython/__release__.py (version): get date dynamically.
5646
5645
5647 * Misc. documentation updates thanks to Arnd's comments. Also ran
5646 * Misc. documentation updates thanks to Arnd's comments. Also ran
5648 a full spellcheck on the manual (hadn't been done in a while).
5647 a full spellcheck on the manual (hadn't been done in a while).
5649
5648
5650 2002-04-27 Fernando Perez <fperez@colorado.edu>
5649 2002-04-27 Fernando Perez <fperez@colorado.edu>
5651
5650
5652 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5651 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5653 starting a log in mid-session would reset the input history list.
5652 starting a log in mid-session would reset the input history list.
5654
5653
5655 2002-04-26 Fernando Perez <fperez@colorado.edu>
5654 2002-04-26 Fernando Perez <fperez@colorado.edu>
5656
5655
5657 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5656 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5658 all files were being included in an update. Now anything in
5657 all files were being included in an update. Now anything in
5659 UserConfig that matches [A-Za-z]*.py will go (this excludes
5658 UserConfig that matches [A-Za-z]*.py will go (this excludes
5660 __init__.py)
5659 __init__.py)
5661
5660
5662 2002-04-25 Fernando Perez <fperez@colorado.edu>
5661 2002-04-25 Fernando Perez <fperez@colorado.edu>
5663
5662
5664 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5663 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5665 to __builtins__ so that any form of embedded or imported code can
5664 to __builtins__ so that any form of embedded or imported code can
5666 test for being inside IPython.
5665 test for being inside IPython.
5667
5666
5668 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5667 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5669 changed to GnuplotMagic because it's now an importable module,
5668 changed to GnuplotMagic because it's now an importable module,
5670 this makes the name follow that of the standard Gnuplot module.
5669 this makes the name follow that of the standard Gnuplot module.
5671 GnuplotMagic can now be loaded at any time in mid-session.
5670 GnuplotMagic can now be loaded at any time in mid-session.
5672
5671
5673 2002-04-24 Fernando Perez <fperez@colorado.edu>
5672 2002-04-24 Fernando Perez <fperez@colorado.edu>
5674
5673
5675 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5674 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5676 the globals (IPython has its own namespace) and the
5675 the globals (IPython has its own namespace) and the
5677 PhysicalQuantity stuff is much better anyway.
5676 PhysicalQuantity stuff is much better anyway.
5678
5677
5679 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5678 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5680 embedding example to standard user directory for
5679 embedding example to standard user directory for
5681 distribution. Also put it in the manual.
5680 distribution. Also put it in the manual.
5682
5681
5683 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5682 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5684 instance as first argument (so it doesn't rely on some obscure
5683 instance as first argument (so it doesn't rely on some obscure
5685 hidden global).
5684 hidden global).
5686
5685
5687 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5686 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5688 delimiters. While it prevents ().TAB from working, it allows
5687 delimiters. While it prevents ().TAB from working, it allows
5689 completions in open (... expressions. This is by far a more common
5688 completions in open (... expressions. This is by far a more common
5690 case.
5689 case.
5691
5690
5692 2002-04-23 Fernando Perez <fperez@colorado.edu>
5691 2002-04-23 Fernando Perez <fperez@colorado.edu>
5693
5692
5694 * IPython/Extensions/InterpreterPasteInput.py: new
5693 * IPython/Extensions/InterpreterPasteInput.py: new
5695 syntax-processing module for pasting lines with >>> or ... at the
5694 syntax-processing module for pasting lines with >>> or ... at the
5696 start.
5695 start.
5697
5696
5698 * IPython/Extensions/PhysicalQ_Interactive.py
5697 * IPython/Extensions/PhysicalQ_Interactive.py
5699 (PhysicalQuantityInteractive.__int__): fixed to work with either
5698 (PhysicalQuantityInteractive.__int__): fixed to work with either
5700 Numeric or math.
5699 Numeric or math.
5701
5700
5702 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5701 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5703 provided profiles. Now we have:
5702 provided profiles. Now we have:
5704 -math -> math module as * and cmath with its own namespace.
5703 -math -> math module as * and cmath with its own namespace.
5705 -numeric -> Numeric as *, plus gnuplot & grace
5704 -numeric -> Numeric as *, plus gnuplot & grace
5706 -physics -> same as before
5705 -physics -> same as before
5707
5706
5708 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5707 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5709 user-defined magics wouldn't be found by @magic if they were
5708 user-defined magics wouldn't be found by @magic if they were
5710 defined as class methods. Also cleaned up the namespace search
5709 defined as class methods. Also cleaned up the namespace search
5711 logic and the string building (to use %s instead of many repeated
5710 logic and the string building (to use %s instead of many repeated
5712 string adds).
5711 string adds).
5713
5712
5714 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5713 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5715 of user-defined magics to operate with class methods (cleaner, in
5714 of user-defined magics to operate with class methods (cleaner, in
5716 line with the gnuplot code).
5715 line with the gnuplot code).
5717
5716
5718 2002-04-22 Fernando Perez <fperez@colorado.edu>
5717 2002-04-22 Fernando Perez <fperez@colorado.edu>
5719
5718
5720 * setup.py: updated dependency list so that manual is updated when
5719 * setup.py: updated dependency list so that manual is updated when
5721 all included files change.
5720 all included files change.
5722
5721
5723 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5722 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5724 the delimiter removal option (the fix is ugly right now).
5723 the delimiter removal option (the fix is ugly right now).
5725
5724
5726 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5725 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5727 all of the math profile (quicker loading, no conflict between
5726 all of the math profile (quicker loading, no conflict between
5728 g-9.8 and g-gnuplot).
5727 g-9.8 and g-gnuplot).
5729
5728
5730 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5729 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5731 name of post-mortem files to IPython_crash_report.txt.
5730 name of post-mortem files to IPython_crash_report.txt.
5732
5731
5733 * Cleanup/update of the docs. Added all the new readline info and
5732 * Cleanup/update of the docs. Added all the new readline info and
5734 formatted all lists as 'real lists'.
5733 formatted all lists as 'real lists'.
5735
5734
5736 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5735 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5737 tab-completion options, since the full readline parse_and_bind is
5736 tab-completion options, since the full readline parse_and_bind is
5738 now accessible.
5737 now accessible.
5739
5738
5740 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5739 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5741 handling of readline options. Now users can specify any string to
5740 handling of readline options. Now users can specify any string to
5742 be passed to parse_and_bind(), as well as the delimiters to be
5741 be passed to parse_and_bind(), as well as the delimiters to be
5743 removed.
5742 removed.
5744 (InteractiveShell.__init__): Added __name__ to the global
5743 (InteractiveShell.__init__): Added __name__ to the global
5745 namespace so that things like Itpl which rely on its existence
5744 namespace so that things like Itpl which rely on its existence
5746 don't crash.
5745 don't crash.
5747 (InteractiveShell._prefilter): Defined the default with a _ so
5746 (InteractiveShell._prefilter): Defined the default with a _ so
5748 that prefilter() is easier to override, while the default one
5747 that prefilter() is easier to override, while the default one
5749 remains available.
5748 remains available.
5750
5749
5751 2002-04-18 Fernando Perez <fperez@colorado.edu>
5750 2002-04-18 Fernando Perez <fperez@colorado.edu>
5752
5751
5753 * Added information about pdb in the docs.
5752 * Added information about pdb in the docs.
5754
5753
5755 2002-04-17 Fernando Perez <fperez@colorado.edu>
5754 2002-04-17 Fernando Perez <fperez@colorado.edu>
5756
5755
5757 * IPython/ipmaker.py (make_IPython): added rc_override option to
5756 * IPython/ipmaker.py (make_IPython): added rc_override option to
5758 allow passing config options at creation time which may override
5757 allow passing config options at creation time which may override
5759 anything set in the config files or command line. This is
5758 anything set in the config files or command line. This is
5760 particularly useful for configuring embedded instances.
5759 particularly useful for configuring embedded instances.
5761
5760
5762 2002-04-15 Fernando Perez <fperez@colorado.edu>
5761 2002-04-15 Fernando Perez <fperez@colorado.edu>
5763
5762
5764 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5763 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5765 crash embedded instances because of the input cache falling out of
5764 crash embedded instances because of the input cache falling out of
5766 sync with the output counter.
5765 sync with the output counter.
5767
5766
5768 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5767 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5769 mode which calls pdb after an uncaught exception in IPython itself.
5768 mode which calls pdb after an uncaught exception in IPython itself.
5770
5769
5771 2002-04-14 Fernando Perez <fperez@colorado.edu>
5770 2002-04-14 Fernando Perez <fperez@colorado.edu>
5772
5771
5773 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5772 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5774 readline, fix it back after each call.
5773 readline, fix it back after each call.
5775
5774
5776 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5775 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5777 method to force all access via __call__(), which guarantees that
5776 method to force all access via __call__(), which guarantees that
5778 traceback references are properly deleted.
5777 traceback references are properly deleted.
5779
5778
5780 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5779 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5781 improve printing when pprint is in use.
5780 improve printing when pprint is in use.
5782
5781
5783 2002-04-13 Fernando Perez <fperez@colorado.edu>
5782 2002-04-13 Fernando Perez <fperez@colorado.edu>
5784
5783
5785 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5784 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5786 exceptions aren't caught anymore. If the user triggers one, he
5785 exceptions aren't caught anymore. If the user triggers one, he
5787 should know why he's doing it and it should go all the way up,
5786 should know why he's doing it and it should go all the way up,
5788 just like any other exception. So now @abort will fully kill the
5787 just like any other exception. So now @abort will fully kill the
5789 embedded interpreter and the embedding code (unless that happens
5788 embedded interpreter and the embedding code (unless that happens
5790 to catch SystemExit).
5789 to catch SystemExit).
5791
5790
5792 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5791 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5793 and a debugger() method to invoke the interactive pdb debugger
5792 and a debugger() method to invoke the interactive pdb debugger
5794 after printing exception information. Also added the corresponding
5793 after printing exception information. Also added the corresponding
5795 -pdb option and @pdb magic to control this feature, and updated
5794 -pdb option and @pdb magic to control this feature, and updated
5796 the docs. After a suggestion from Christopher Hart
5795 the docs. After a suggestion from Christopher Hart
5797 (hart-AT-caltech.edu).
5796 (hart-AT-caltech.edu).
5798
5797
5799 2002-04-12 Fernando Perez <fperez@colorado.edu>
5798 2002-04-12 Fernando Perez <fperez@colorado.edu>
5800
5799
5801 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5800 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5802 the exception handlers defined by the user (not the CrashHandler)
5801 the exception handlers defined by the user (not the CrashHandler)
5803 so that user exceptions don't trigger an ipython bug report.
5802 so that user exceptions don't trigger an ipython bug report.
5804
5803
5805 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5804 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5806 configurable (it should have always been so).
5805 configurable (it should have always been so).
5807
5806
5808 2002-03-26 Fernando Perez <fperez@colorado.edu>
5807 2002-03-26 Fernando Perez <fperez@colorado.edu>
5809
5808
5810 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5809 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5811 and there to fix embedding namespace issues. This should all be
5810 and there to fix embedding namespace issues. This should all be
5812 done in a more elegant way.
5811 done in a more elegant way.
5813
5812
5814 2002-03-25 Fernando Perez <fperez@colorado.edu>
5813 2002-03-25 Fernando Perez <fperez@colorado.edu>
5815
5814
5816 * IPython/genutils.py (get_home_dir): Try to make it work under
5815 * IPython/genutils.py (get_home_dir): Try to make it work under
5817 win9x also.
5816 win9x also.
5818
5817
5819 2002-03-20 Fernando Perez <fperez@colorado.edu>
5818 2002-03-20 Fernando Perez <fperez@colorado.edu>
5820
5819
5821 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5820 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5822 sys.displayhook untouched upon __init__.
5821 sys.displayhook untouched upon __init__.
5823
5822
5824 2002-03-19 Fernando Perez <fperez@colorado.edu>
5823 2002-03-19 Fernando Perez <fperez@colorado.edu>
5825
5824
5826 * Released 0.2.9 (for embedding bug, basically).
5825 * Released 0.2.9 (for embedding bug, basically).
5827
5826
5828 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5827 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5829 exceptions so that enclosing shell's state can be restored.
5828 exceptions so that enclosing shell's state can be restored.
5830
5829
5831 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5830 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5832 naming conventions in the .ipython/ dir.
5831 naming conventions in the .ipython/ dir.
5833
5832
5834 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5833 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5835 from delimiters list so filenames with - in them get expanded.
5834 from delimiters list so filenames with - in them get expanded.
5836
5835
5837 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5836 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5838 sys.displayhook not being properly restored after an embedded call.
5837 sys.displayhook not being properly restored after an embedded call.
5839
5838
5840 2002-03-18 Fernando Perez <fperez@colorado.edu>
5839 2002-03-18 Fernando Perez <fperez@colorado.edu>
5841
5840
5842 * Released 0.2.8
5841 * Released 0.2.8
5843
5842
5844 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5843 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5845 some files weren't being included in a -upgrade.
5844 some files weren't being included in a -upgrade.
5846 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5845 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5847 on' so that the first tab completes.
5846 on' so that the first tab completes.
5848 (InteractiveShell.handle_magic): fixed bug with spaces around
5847 (InteractiveShell.handle_magic): fixed bug with spaces around
5849 quotes breaking many magic commands.
5848 quotes breaking many magic commands.
5850
5849
5851 * setup.py: added note about ignoring the syntax error messages at
5850 * setup.py: added note about ignoring the syntax error messages at
5852 installation.
5851 installation.
5853
5852
5854 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5853 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5855 streamlining the gnuplot interface, now there's only one magic @gp.
5854 streamlining the gnuplot interface, now there's only one magic @gp.
5856
5855
5857 2002-03-17 Fernando Perez <fperez@colorado.edu>
5856 2002-03-17 Fernando Perez <fperez@colorado.edu>
5858
5857
5859 * IPython/UserConfig/magic_gnuplot.py: new name for the
5858 * IPython/UserConfig/magic_gnuplot.py: new name for the
5860 example-magic_pm.py file. Much enhanced system, now with a shell
5859 example-magic_pm.py file. Much enhanced system, now with a shell
5861 for communicating directly with gnuplot, one command at a time.
5860 for communicating directly with gnuplot, one command at a time.
5862
5861
5863 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5862 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5864 setting __name__=='__main__'.
5863 setting __name__=='__main__'.
5865
5864
5866 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5865 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5867 mini-shell for accessing gnuplot from inside ipython. Should
5866 mini-shell for accessing gnuplot from inside ipython. Should
5868 extend it later for grace access too. Inspired by Arnd's
5867 extend it later for grace access too. Inspired by Arnd's
5869 suggestion.
5868 suggestion.
5870
5869
5871 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5870 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5872 calling magic functions with () in their arguments. Thanks to Arnd
5871 calling magic functions with () in their arguments. Thanks to Arnd
5873 Baecker for pointing this to me.
5872 Baecker for pointing this to me.
5874
5873
5875 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5874 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5876 infinitely for integer or complex arrays (only worked with floats).
5875 infinitely for integer or complex arrays (only worked with floats).
5877
5876
5878 2002-03-16 Fernando Perez <fperez@colorado.edu>
5877 2002-03-16 Fernando Perez <fperez@colorado.edu>
5879
5878
5880 * setup.py: Merged setup and setup_windows into a single script
5879 * setup.py: Merged setup and setup_windows into a single script
5881 which properly handles things for windows users.
5880 which properly handles things for windows users.
5882
5881
5883 2002-03-15 Fernando Perez <fperez@colorado.edu>
5882 2002-03-15 Fernando Perez <fperez@colorado.edu>
5884
5883
5885 * Big change to the manual: now the magics are all automatically
5884 * Big change to the manual: now the magics are all automatically
5886 documented. This information is generated from their docstrings
5885 documented. This information is generated from their docstrings
5887 and put in a latex file included by the manual lyx file. This way
5886 and put in a latex file included by the manual lyx file. This way
5888 we get always up to date information for the magics. The manual
5887 we get always up to date information for the magics. The manual
5889 now also has proper version information, also auto-synced.
5888 now also has proper version information, also auto-synced.
5890
5889
5891 For this to work, an undocumented --magic_docstrings option was added.
5890 For this to work, an undocumented --magic_docstrings option was added.
5892
5891
5893 2002-03-13 Fernando Perez <fperez@colorado.edu>
5892 2002-03-13 Fernando Perez <fperez@colorado.edu>
5894
5893
5895 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5894 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5896 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5895 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5897
5896
5898 2002-03-12 Fernando Perez <fperez@colorado.edu>
5897 2002-03-12 Fernando Perez <fperez@colorado.edu>
5899
5898
5900 * IPython/ultraTB.py (TermColors): changed color escapes again to
5899 * IPython/ultraTB.py (TermColors): changed color escapes again to
5901 fix the (old, reintroduced) line-wrapping bug. Basically, if
5900 fix the (old, reintroduced) line-wrapping bug. Basically, if
5902 \001..\002 aren't given in the color escapes, lines get wrapped
5901 \001..\002 aren't given in the color escapes, lines get wrapped
5903 weirdly. But giving those screws up old xterms and emacs terms. So
5902 weirdly. But giving those screws up old xterms and emacs terms. So
5904 I added some logic for emacs terms to be ok, but I can't identify old
5903 I added some logic for emacs terms to be ok, but I can't identify old
5905 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5904 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5906
5905
5907 2002-03-10 Fernando Perez <fperez@colorado.edu>
5906 2002-03-10 Fernando Perez <fperez@colorado.edu>
5908
5907
5909 * IPython/usage.py (__doc__): Various documentation cleanups and
5908 * IPython/usage.py (__doc__): Various documentation cleanups and
5910 updates, both in usage docstrings and in the manual.
5909 updates, both in usage docstrings and in the manual.
5911
5910
5912 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5911 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5913 handling of caching. Set minimum acceptabe value for having a
5912 handling of caching. Set minimum acceptabe value for having a
5914 cache at 20 values.
5913 cache at 20 values.
5915
5914
5916 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5915 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5917 install_first_time function to a method, renamed it and added an
5916 install_first_time function to a method, renamed it and added an
5918 'upgrade' mode. Now people can update their config directory with
5917 'upgrade' mode. Now people can update their config directory with
5919 a simple command line switch (-upgrade, also new).
5918 a simple command line switch (-upgrade, also new).
5920
5919
5921 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5920 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5922 @file (convenient for automagic users under Python >= 2.2).
5921 @file (convenient for automagic users under Python >= 2.2).
5923 Removed @files (it seemed more like a plural than an abbrev. of
5922 Removed @files (it seemed more like a plural than an abbrev. of
5924 'file show').
5923 'file show').
5925
5924
5926 * IPython/iplib.py (install_first_time): Fixed crash if there were
5925 * IPython/iplib.py (install_first_time): Fixed crash if there were
5927 backup files ('~') in .ipython/ install directory.
5926 backup files ('~') in .ipython/ install directory.
5928
5927
5929 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5928 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5930 system. Things look fine, but these changes are fairly
5929 system. Things look fine, but these changes are fairly
5931 intrusive. Test them for a few days.
5930 intrusive. Test them for a few days.
5932
5931
5933 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5932 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5934 the prompts system. Now all in/out prompt strings are user
5933 the prompts system. Now all in/out prompt strings are user
5935 controllable. This is particularly useful for embedding, as one
5934 controllable. This is particularly useful for embedding, as one
5936 can tag embedded instances with particular prompts.
5935 can tag embedded instances with particular prompts.
5937
5936
5938 Also removed global use of sys.ps1/2, which now allows nested
5937 Also removed global use of sys.ps1/2, which now allows nested
5939 embeddings without any problems. Added command-line options for
5938 embeddings without any problems. Added command-line options for
5940 the prompt strings.
5939 the prompt strings.
5941
5940
5942 2002-03-08 Fernando Perez <fperez@colorado.edu>
5941 2002-03-08 Fernando Perez <fperez@colorado.edu>
5943
5942
5944 * IPython/UserConfig/example-embed-short.py (ipshell): added
5943 * IPython/UserConfig/example-embed-short.py (ipshell): added
5945 example file with the bare minimum code for embedding.
5944 example file with the bare minimum code for embedding.
5946
5945
5947 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5946 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5948 functionality for the embeddable shell to be activated/deactivated
5947 functionality for the embeddable shell to be activated/deactivated
5949 either globally or at each call.
5948 either globally or at each call.
5950
5949
5951 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5950 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5952 rewriting the prompt with '--->' for auto-inputs with proper
5951 rewriting the prompt with '--->' for auto-inputs with proper
5953 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5952 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5954 this is handled by the prompts class itself, as it should.
5953 this is handled by the prompts class itself, as it should.
5955
5954
5956 2002-03-05 Fernando Perez <fperez@colorado.edu>
5955 2002-03-05 Fernando Perez <fperez@colorado.edu>
5957
5956
5958 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5957 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5959 @logstart to avoid name clashes with the math log function.
5958 @logstart to avoid name clashes with the math log function.
5960
5959
5961 * Big updates to X/Emacs section of the manual.
5960 * Big updates to X/Emacs section of the manual.
5962
5961
5963 * Removed ipython_emacs. Milan explained to me how to pass
5962 * Removed ipython_emacs. Milan explained to me how to pass
5964 arguments to ipython through Emacs. Some day I'm going to end up
5963 arguments to ipython through Emacs. Some day I'm going to end up
5965 learning some lisp...
5964 learning some lisp...
5966
5965
5967 2002-03-04 Fernando Perez <fperez@colorado.edu>
5966 2002-03-04 Fernando Perez <fperez@colorado.edu>
5968
5967
5969 * IPython/ipython_emacs: Created script to be used as the
5968 * IPython/ipython_emacs: Created script to be used as the
5970 py-python-command Emacs variable so we can pass IPython
5969 py-python-command Emacs variable so we can pass IPython
5971 parameters. I can't figure out how to tell Emacs directly to pass
5970 parameters. I can't figure out how to tell Emacs directly to pass
5972 parameters to IPython, so a dummy shell script will do it.
5971 parameters to IPython, so a dummy shell script will do it.
5973
5972
5974 Other enhancements made for things to work better under Emacs'
5973 Other enhancements made for things to work better under Emacs'
5975 various types of terminals. Many thanks to Milan Zamazal
5974 various types of terminals. Many thanks to Milan Zamazal
5976 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5975 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5977
5976
5978 2002-03-01 Fernando Perez <fperez@colorado.edu>
5977 2002-03-01 Fernando Perez <fperez@colorado.edu>
5979
5978
5980 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5979 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5981 that loading of readline is now optional. This gives better
5980 that loading of readline is now optional. This gives better
5982 control to emacs users.
5981 control to emacs users.
5983
5982
5984 * IPython/ultraTB.py (__date__): Modified color escape sequences
5983 * IPython/ultraTB.py (__date__): Modified color escape sequences
5985 and now things work fine under xterm and in Emacs' term buffers
5984 and now things work fine under xterm and in Emacs' term buffers
5986 (though not shell ones). Well, in emacs you get colors, but all
5985 (though not shell ones). Well, in emacs you get colors, but all
5987 seem to be 'light' colors (no difference between dark and light
5986 seem to be 'light' colors (no difference between dark and light
5988 ones). But the garbage chars are gone, and also in xterms. It
5987 ones). But the garbage chars are gone, and also in xterms. It
5989 seems that now I'm using 'cleaner' ansi sequences.
5988 seems that now I'm using 'cleaner' ansi sequences.
5990
5989
5991 2002-02-21 Fernando Perez <fperez@colorado.edu>
5990 2002-02-21 Fernando Perez <fperez@colorado.edu>
5992
5991
5993 * Released 0.2.7 (mainly to publish the scoping fix).
5992 * Released 0.2.7 (mainly to publish the scoping fix).
5994
5993
5995 * IPython/Logger.py (Logger.logstate): added. A corresponding
5994 * IPython/Logger.py (Logger.logstate): added. A corresponding
5996 @logstate magic was created.
5995 @logstate magic was created.
5997
5996
5998 * IPython/Magic.py: fixed nested scoping problem under Python
5997 * IPython/Magic.py: fixed nested scoping problem under Python
5999 2.1.x (automagic wasn't working).
5998 2.1.x (automagic wasn't working).
6000
5999
6001 2002-02-20 Fernando Perez <fperez@colorado.edu>
6000 2002-02-20 Fernando Perez <fperez@colorado.edu>
6002
6001
6003 * Released 0.2.6.
6002 * Released 0.2.6.
6004
6003
6005 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6004 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6006 option so that logs can come out without any headers at all.
6005 option so that logs can come out without any headers at all.
6007
6006
6008 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6007 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6009 SciPy.
6008 SciPy.
6010
6009
6011 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6010 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6012 that embedded IPython calls don't require vars() to be explicitly
6011 that embedded IPython calls don't require vars() to be explicitly
6013 passed. Now they are extracted from the caller's frame (code
6012 passed. Now they are extracted from the caller's frame (code
6014 snatched from Eric Jones' weave). Added better documentation to
6013 snatched from Eric Jones' weave). Added better documentation to
6015 the section on embedding and the example file.
6014 the section on embedding and the example file.
6016
6015
6017 * IPython/genutils.py (page): Changed so that under emacs, it just
6016 * IPython/genutils.py (page): Changed so that under emacs, it just
6018 prints the string. You can then page up and down in the emacs
6017 prints the string. You can then page up and down in the emacs
6019 buffer itself. This is how the builtin help() works.
6018 buffer itself. This is how the builtin help() works.
6020
6019
6021 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6020 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6022 macro scoping: macros need to be executed in the user's namespace
6021 macro scoping: macros need to be executed in the user's namespace
6023 to work as if they had been typed by the user.
6022 to work as if they had been typed by the user.
6024
6023
6025 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6024 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6026 execute automatically (no need to type 'exec...'). They then
6025 execute automatically (no need to type 'exec...'). They then
6027 behave like 'true macros'. The printing system was also modified
6026 behave like 'true macros'. The printing system was also modified
6028 for this to work.
6027 for this to work.
6029
6028
6030 2002-02-19 Fernando Perez <fperez@colorado.edu>
6029 2002-02-19 Fernando Perez <fperez@colorado.edu>
6031
6030
6032 * IPython/genutils.py (page_file): new function for paging files
6031 * IPython/genutils.py (page_file): new function for paging files
6033 in an OS-independent way. Also necessary for file viewing to work
6032 in an OS-independent way. Also necessary for file viewing to work
6034 well inside Emacs buffers.
6033 well inside Emacs buffers.
6035 (page): Added checks for being in an emacs buffer.
6034 (page): Added checks for being in an emacs buffer.
6036 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6035 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6037 same bug in iplib.
6036 same bug in iplib.
6038
6037
6039 2002-02-18 Fernando Perez <fperez@colorado.edu>
6038 2002-02-18 Fernando Perez <fperez@colorado.edu>
6040
6039
6041 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6040 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6042 of readline so that IPython can work inside an Emacs buffer.
6041 of readline so that IPython can work inside an Emacs buffer.
6043
6042
6044 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6043 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6045 method signatures (they weren't really bugs, but it looks cleaner
6044 method signatures (they weren't really bugs, but it looks cleaner
6046 and keeps PyChecker happy).
6045 and keeps PyChecker happy).
6047
6046
6048 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6047 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6049 for implementing various user-defined hooks. Currently only
6048 for implementing various user-defined hooks. Currently only
6050 display is done.
6049 display is done.
6051
6050
6052 * IPython/Prompts.py (CachedOutput._display): changed display
6051 * IPython/Prompts.py (CachedOutput._display): changed display
6053 functions so that they can be dynamically changed by users easily.
6052 functions so that they can be dynamically changed by users easily.
6054
6053
6055 * IPython/Extensions/numeric_formats.py (num_display): added an
6054 * IPython/Extensions/numeric_formats.py (num_display): added an
6056 extension for printing NumPy arrays in flexible manners. It
6055 extension for printing NumPy arrays in flexible manners. It
6057 doesn't do anything yet, but all the structure is in
6056 doesn't do anything yet, but all the structure is in
6058 place. Ultimately the plan is to implement output format control
6057 place. Ultimately the plan is to implement output format control
6059 like in Octave.
6058 like in Octave.
6060
6059
6061 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6060 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6062 methods are found at run-time by all the automatic machinery.
6061 methods are found at run-time by all the automatic machinery.
6063
6062
6064 2002-02-17 Fernando Perez <fperez@colorado.edu>
6063 2002-02-17 Fernando Perez <fperez@colorado.edu>
6065
6064
6066 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6065 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6067 whole file a little.
6066 whole file a little.
6068
6067
6069 * ToDo: closed this document. Now there's a new_design.lyx
6068 * ToDo: closed this document. Now there's a new_design.lyx
6070 document for all new ideas. Added making a pdf of it for the
6069 document for all new ideas. Added making a pdf of it for the
6071 end-user distro.
6070 end-user distro.
6072
6071
6073 * IPython/Logger.py (Logger.switch_log): Created this to replace
6072 * IPython/Logger.py (Logger.switch_log): Created this to replace
6074 logon() and logoff(). It also fixes a nasty crash reported by
6073 logon() and logoff(). It also fixes a nasty crash reported by
6075 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6074 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6076
6075
6077 * IPython/iplib.py (complete): got auto-completion to work with
6076 * IPython/iplib.py (complete): got auto-completion to work with
6078 automagic (I had wanted this for a long time).
6077 automagic (I had wanted this for a long time).
6079
6078
6080 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6079 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6081 to @file, since file() is now a builtin and clashes with automagic
6080 to @file, since file() is now a builtin and clashes with automagic
6082 for @file.
6081 for @file.
6083
6082
6084 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6083 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6085 of this was previously in iplib, which had grown to more than 2000
6084 of this was previously in iplib, which had grown to more than 2000
6086 lines, way too long. No new functionality, but it makes managing
6085 lines, way too long. No new functionality, but it makes managing
6087 the code a bit easier.
6086 the code a bit easier.
6088
6087
6089 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6088 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6090 information to crash reports.
6089 information to crash reports.
6091
6090
6092 2002-02-12 Fernando Perez <fperez@colorado.edu>
6091 2002-02-12 Fernando Perez <fperez@colorado.edu>
6093
6092
6094 * Released 0.2.5.
6093 * Released 0.2.5.
6095
6094
6096 2002-02-11 Fernando Perez <fperez@colorado.edu>
6095 2002-02-11 Fernando Perez <fperez@colorado.edu>
6097
6096
6098 * Wrote a relatively complete Windows installer. It puts
6097 * Wrote a relatively complete Windows installer. It puts
6099 everything in place, creates Start Menu entries and fixes the
6098 everything in place, creates Start Menu entries and fixes the
6100 color issues. Nothing fancy, but it works.
6099 color issues. Nothing fancy, but it works.
6101
6100
6102 2002-02-10 Fernando Perez <fperez@colorado.edu>
6101 2002-02-10 Fernando Perez <fperez@colorado.edu>
6103
6102
6104 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6103 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6105 os.path.expanduser() call so that we can type @run ~/myfile.py and
6104 os.path.expanduser() call so that we can type @run ~/myfile.py and
6106 have thigs work as expected.
6105 have thigs work as expected.
6107
6106
6108 * IPython/genutils.py (page): fixed exception handling so things
6107 * IPython/genutils.py (page): fixed exception handling so things
6109 work both in Unix and Windows correctly. Quitting a pager triggers
6108 work both in Unix and Windows correctly. Quitting a pager triggers
6110 an IOError/broken pipe in Unix, and in windows not finding a pager
6109 an IOError/broken pipe in Unix, and in windows not finding a pager
6111 is also an IOError, so I had to actually look at the return value
6110 is also an IOError, so I had to actually look at the return value
6112 of the exception, not just the exception itself. Should be ok now.
6111 of the exception, not just the exception itself. Should be ok now.
6113
6112
6114 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6113 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6115 modified to allow case-insensitive color scheme changes.
6114 modified to allow case-insensitive color scheme changes.
6116
6115
6117 2002-02-09 Fernando Perez <fperez@colorado.edu>
6116 2002-02-09 Fernando Perez <fperez@colorado.edu>
6118
6117
6119 * IPython/genutils.py (native_line_ends): new function to leave
6118 * IPython/genutils.py (native_line_ends): new function to leave
6120 user config files with os-native line-endings.
6119 user config files with os-native line-endings.
6121
6120
6122 * README and manual updates.
6121 * README and manual updates.
6123
6122
6124 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6123 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6125 instead of StringType to catch Unicode strings.
6124 instead of StringType to catch Unicode strings.
6126
6125
6127 * IPython/genutils.py (filefind): fixed bug for paths with
6126 * IPython/genutils.py (filefind): fixed bug for paths with
6128 embedded spaces (very common in Windows).
6127 embedded spaces (very common in Windows).
6129
6128
6130 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6129 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6131 files under Windows, so that they get automatically associated
6130 files under Windows, so that they get automatically associated
6132 with a text editor. Windows makes it a pain to handle
6131 with a text editor. Windows makes it a pain to handle
6133 extension-less files.
6132 extension-less files.
6134
6133
6135 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6134 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6136 warning about readline only occur for Posix. In Windows there's no
6135 warning about readline only occur for Posix. In Windows there's no
6137 way to get readline, so why bother with the warning.
6136 way to get readline, so why bother with the warning.
6138
6137
6139 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6138 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6140 for __str__ instead of dir(self), since dir() changed in 2.2.
6139 for __str__ instead of dir(self), since dir() changed in 2.2.
6141
6140
6142 * Ported to Windows! Tested on XP, I suspect it should work fine
6141 * Ported to Windows! Tested on XP, I suspect it should work fine
6143 on NT/2000, but I don't think it will work on 98 et al. That
6142 on NT/2000, but I don't think it will work on 98 et al. That
6144 series of Windows is such a piece of junk anyway that I won't try
6143 series of Windows is such a piece of junk anyway that I won't try
6145 porting it there. The XP port was straightforward, showed a few
6144 porting it there. The XP port was straightforward, showed a few
6146 bugs here and there (fixed all), in particular some string
6145 bugs here and there (fixed all), in particular some string
6147 handling stuff which required considering Unicode strings (which
6146 handling stuff which required considering Unicode strings (which
6148 Windows uses). This is good, but hasn't been too tested :) No
6147 Windows uses). This is good, but hasn't been too tested :) No
6149 fancy installer yet, I'll put a note in the manual so people at
6148 fancy installer yet, I'll put a note in the manual so people at
6150 least make manually a shortcut.
6149 least make manually a shortcut.
6151
6150
6152 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6151 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6153 into a single one, "colors". This now controls both prompt and
6152 into a single one, "colors". This now controls both prompt and
6154 exception color schemes, and can be changed both at startup
6153 exception color schemes, and can be changed both at startup
6155 (either via command-line switches or via ipythonrc files) and at
6154 (either via command-line switches or via ipythonrc files) and at
6156 runtime, with @colors.
6155 runtime, with @colors.
6157 (Magic.magic_run): renamed @prun to @run and removed the old
6156 (Magic.magic_run): renamed @prun to @run and removed the old
6158 @run. The two were too similar to warrant keeping both.
6157 @run. The two were too similar to warrant keeping both.
6159
6158
6160 2002-02-03 Fernando Perez <fperez@colorado.edu>
6159 2002-02-03 Fernando Perez <fperez@colorado.edu>
6161
6160
6162 * IPython/iplib.py (install_first_time): Added comment on how to
6161 * IPython/iplib.py (install_first_time): Added comment on how to
6163 configure the color options for first-time users. Put a <return>
6162 configure the color options for first-time users. Put a <return>
6164 request at the end so that small-terminal users get a chance to
6163 request at the end so that small-terminal users get a chance to
6165 read the startup info.
6164 read the startup info.
6166
6165
6167 2002-01-23 Fernando Perez <fperez@colorado.edu>
6166 2002-01-23 Fernando Perez <fperez@colorado.edu>
6168
6167
6169 * IPython/iplib.py (CachedOutput.update): Changed output memory
6168 * IPython/iplib.py (CachedOutput.update): Changed output memory
6170 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6169 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6171 input history we still use _i. Did this b/c these variable are
6170 input history we still use _i. Did this b/c these variable are
6172 very commonly used in interactive work, so the less we need to
6171 very commonly used in interactive work, so the less we need to
6173 type the better off we are.
6172 type the better off we are.
6174 (Magic.magic_prun): updated @prun to better handle the namespaces
6173 (Magic.magic_prun): updated @prun to better handle the namespaces
6175 the file will run in, including a fix for __name__ not being set
6174 the file will run in, including a fix for __name__ not being set
6176 before.
6175 before.
6177
6176
6178 2002-01-20 Fernando Perez <fperez@colorado.edu>
6177 2002-01-20 Fernando Perez <fperez@colorado.edu>
6179
6178
6180 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6179 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6181 extra garbage for Python 2.2. Need to look more carefully into
6180 extra garbage for Python 2.2. Need to look more carefully into
6182 this later.
6181 this later.
6183
6182
6184 2002-01-19 Fernando Perez <fperez@colorado.edu>
6183 2002-01-19 Fernando Perez <fperez@colorado.edu>
6185
6184
6186 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6185 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6187 display SyntaxError exceptions properly formatted when they occur
6186 display SyntaxError exceptions properly formatted when they occur
6188 (they can be triggered by imported code).
6187 (they can be triggered by imported code).
6189
6188
6190 2002-01-18 Fernando Perez <fperez@colorado.edu>
6189 2002-01-18 Fernando Perez <fperez@colorado.edu>
6191
6190
6192 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6191 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6193 SyntaxError exceptions are reported nicely formatted, instead of
6192 SyntaxError exceptions are reported nicely formatted, instead of
6194 spitting out only offset information as before.
6193 spitting out only offset information as before.
6195 (Magic.magic_prun): Added the @prun function for executing
6194 (Magic.magic_prun): Added the @prun function for executing
6196 programs with command line args inside IPython.
6195 programs with command line args inside IPython.
6197
6196
6198 2002-01-16 Fernando Perez <fperez@colorado.edu>
6197 2002-01-16 Fernando Perez <fperez@colorado.edu>
6199
6198
6200 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6199 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6201 to *not* include the last item given in a range. This brings their
6200 to *not* include the last item given in a range. This brings their
6202 behavior in line with Python's slicing:
6201 behavior in line with Python's slicing:
6203 a[n1:n2] -> a[n1]...a[n2-1]
6202 a[n1:n2] -> a[n1]...a[n2-1]
6204 It may be a bit less convenient, but I prefer to stick to Python's
6203 It may be a bit less convenient, but I prefer to stick to Python's
6205 conventions *everywhere*, so users never have to wonder.
6204 conventions *everywhere*, so users never have to wonder.
6206 (Magic.magic_macro): Added @macro function to ease the creation of
6205 (Magic.magic_macro): Added @macro function to ease the creation of
6207 macros.
6206 macros.
6208
6207
6209 2002-01-05 Fernando Perez <fperez@colorado.edu>
6208 2002-01-05 Fernando Perez <fperez@colorado.edu>
6210
6209
6211 * Released 0.2.4.
6210 * Released 0.2.4.
6212
6211
6213 * IPython/iplib.py (Magic.magic_pdef):
6212 * IPython/iplib.py (Magic.magic_pdef):
6214 (InteractiveShell.safe_execfile): report magic lines and error
6213 (InteractiveShell.safe_execfile): report magic lines and error
6215 lines without line numbers so one can easily copy/paste them for
6214 lines without line numbers so one can easily copy/paste them for
6216 re-execution.
6215 re-execution.
6217
6216
6218 * Updated manual with recent changes.
6217 * Updated manual with recent changes.
6219
6218
6220 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6219 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6221 docstring printing when class? is called. Very handy for knowing
6220 docstring printing when class? is called. Very handy for knowing
6222 how to create class instances (as long as __init__ is well
6221 how to create class instances (as long as __init__ is well
6223 documented, of course :)
6222 documented, of course :)
6224 (Magic.magic_doc): print both class and constructor docstrings.
6223 (Magic.magic_doc): print both class and constructor docstrings.
6225 (Magic.magic_pdef): give constructor info if passed a class and
6224 (Magic.magic_pdef): give constructor info if passed a class and
6226 __call__ info for callable object instances.
6225 __call__ info for callable object instances.
6227
6226
6228 2002-01-04 Fernando Perez <fperez@colorado.edu>
6227 2002-01-04 Fernando Perez <fperez@colorado.edu>
6229
6228
6230 * Made deep_reload() off by default. It doesn't always work
6229 * Made deep_reload() off by default. It doesn't always work
6231 exactly as intended, so it's probably safer to have it off. It's
6230 exactly as intended, so it's probably safer to have it off. It's
6232 still available as dreload() anyway, so nothing is lost.
6231 still available as dreload() anyway, so nothing is lost.
6233
6232
6234 2002-01-02 Fernando Perez <fperez@colorado.edu>
6233 2002-01-02 Fernando Perez <fperez@colorado.edu>
6235
6234
6236 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6235 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6237 so I wanted an updated release).
6236 so I wanted an updated release).
6238
6237
6239 2001-12-27 Fernando Perez <fperez@colorado.edu>
6238 2001-12-27 Fernando Perez <fperez@colorado.edu>
6240
6239
6241 * IPython/iplib.py (InteractiveShell.interact): Added the original
6240 * IPython/iplib.py (InteractiveShell.interact): Added the original
6242 code from 'code.py' for this module in order to change the
6241 code from 'code.py' for this module in order to change the
6243 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6242 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6244 the history cache would break when the user hit Ctrl-C, and
6243 the history cache would break when the user hit Ctrl-C, and
6245 interact() offers no way to add any hooks to it.
6244 interact() offers no way to add any hooks to it.
6246
6245
6247 2001-12-23 Fernando Perez <fperez@colorado.edu>
6246 2001-12-23 Fernando Perez <fperez@colorado.edu>
6248
6247
6249 * setup.py: added check for 'MANIFEST' before trying to remove
6248 * setup.py: added check for 'MANIFEST' before trying to remove
6250 it. Thanks to Sean Reifschneider.
6249 it. Thanks to Sean Reifschneider.
6251
6250
6252 2001-12-22 Fernando Perez <fperez@colorado.edu>
6251 2001-12-22 Fernando Perez <fperez@colorado.edu>
6253
6252
6254 * Released 0.2.2.
6253 * Released 0.2.2.
6255
6254
6256 * Finished (reasonably) writing the manual. Later will add the
6255 * Finished (reasonably) writing the manual. Later will add the
6257 python-standard navigation stylesheets, but for the time being
6256 python-standard navigation stylesheets, but for the time being
6258 it's fairly complete. Distribution will include html and pdf
6257 it's fairly complete. Distribution will include html and pdf
6259 versions.
6258 versions.
6260
6259
6261 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6260 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6262 (MayaVi author).
6261 (MayaVi author).
6263
6262
6264 2001-12-21 Fernando Perez <fperez@colorado.edu>
6263 2001-12-21 Fernando Perez <fperez@colorado.edu>
6265
6264
6266 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6265 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6267 good public release, I think (with the manual and the distutils
6266 good public release, I think (with the manual and the distutils
6268 installer). The manual can use some work, but that can go
6267 installer). The manual can use some work, but that can go
6269 slowly. Otherwise I think it's quite nice for end users. Next
6268 slowly. Otherwise I think it's quite nice for end users. Next
6270 summer, rewrite the guts of it...
6269 summer, rewrite the guts of it...
6271
6270
6272 * Changed format of ipythonrc files to use whitespace as the
6271 * Changed format of ipythonrc files to use whitespace as the
6273 separator instead of an explicit '='. Cleaner.
6272 separator instead of an explicit '='. Cleaner.
6274
6273
6275 2001-12-20 Fernando Perez <fperez@colorado.edu>
6274 2001-12-20 Fernando Perez <fperez@colorado.edu>
6276
6275
6277 * Started a manual in LyX. For now it's just a quick merge of the
6276 * Started a manual in LyX. For now it's just a quick merge of the
6278 various internal docstrings and READMEs. Later it may grow into a
6277 various internal docstrings and READMEs. Later it may grow into a
6279 nice, full-blown manual.
6278 nice, full-blown manual.
6280
6279
6281 * Set up a distutils based installer. Installation should now be
6280 * Set up a distutils based installer. Installation should now be
6282 trivially simple for end-users.
6281 trivially simple for end-users.
6283
6282
6284 2001-12-11 Fernando Perez <fperez@colorado.edu>
6283 2001-12-11 Fernando Perez <fperez@colorado.edu>
6285
6284
6286 * Released 0.2.0. First public release, announced it at
6285 * Released 0.2.0. First public release, announced it at
6287 comp.lang.python. From now on, just bugfixes...
6286 comp.lang.python. From now on, just bugfixes...
6288
6287
6289 * Went through all the files, set copyright/license notices and
6288 * Went through all the files, set copyright/license notices and
6290 cleaned up things. Ready for release.
6289 cleaned up things. Ready for release.
6291
6290
6292 2001-12-10 Fernando Perez <fperez@colorado.edu>
6291 2001-12-10 Fernando Perez <fperez@colorado.edu>
6293
6292
6294 * Changed the first-time installer not to use tarfiles. It's more
6293 * Changed the first-time installer not to use tarfiles. It's more
6295 robust now and less unix-dependent. Also makes it easier for
6294 robust now and less unix-dependent. Also makes it easier for
6296 people to later upgrade versions.
6295 people to later upgrade versions.
6297
6296
6298 * Changed @exit to @abort to reflect the fact that it's pretty
6297 * Changed @exit to @abort to reflect the fact that it's pretty
6299 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6298 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6300 becomes significant only when IPyhton is embedded: in that case,
6299 becomes significant only when IPyhton is embedded: in that case,
6301 C-D closes IPython only, but @abort kills the enclosing program
6300 C-D closes IPython only, but @abort kills the enclosing program
6302 too (unless it had called IPython inside a try catching
6301 too (unless it had called IPython inside a try catching
6303 SystemExit).
6302 SystemExit).
6304
6303
6305 * Created Shell module which exposes the actuall IPython Shell
6304 * Created Shell module which exposes the actuall IPython Shell
6306 classes, currently the normal and the embeddable one. This at
6305 classes, currently the normal and the embeddable one. This at
6307 least offers a stable interface we won't need to change when
6306 least offers a stable interface we won't need to change when
6308 (later) the internals are rewritten. That rewrite will be confined
6307 (later) the internals are rewritten. That rewrite will be confined
6309 to iplib and ipmaker, but the Shell interface should remain as is.
6308 to iplib and ipmaker, but the Shell interface should remain as is.
6310
6309
6311 * Added embed module which offers an embeddable IPShell object,
6310 * Added embed module which offers an embeddable IPShell object,
6312 useful to fire up IPython *inside* a running program. Great for
6311 useful to fire up IPython *inside* a running program. Great for
6313 debugging or dynamical data analysis.
6312 debugging or dynamical data analysis.
6314
6313
6315 2001-12-08 Fernando Perez <fperez@colorado.edu>
6314 2001-12-08 Fernando Perez <fperez@colorado.edu>
6316
6315
6317 * Fixed small bug preventing seeing info from methods of defined
6316 * Fixed small bug preventing seeing info from methods of defined
6318 objects (incorrect namespace in _ofind()).
6317 objects (incorrect namespace in _ofind()).
6319
6318
6320 * Documentation cleanup. Moved the main usage docstrings to a
6319 * Documentation cleanup. Moved the main usage docstrings to a
6321 separate file, usage.py (cleaner to maintain, and hopefully in the
6320 separate file, usage.py (cleaner to maintain, and hopefully in the
6322 future some perlpod-like way of producing interactive, man and
6321 future some perlpod-like way of producing interactive, man and
6323 html docs out of it will be found).
6322 html docs out of it will be found).
6324
6323
6325 * Added @profile to see your profile at any time.
6324 * Added @profile to see your profile at any time.
6326
6325
6327 * Added @p as an alias for 'print'. It's especially convenient if
6326 * Added @p as an alias for 'print'. It's especially convenient if
6328 using automagic ('p x' prints x).
6327 using automagic ('p x' prints x).
6329
6328
6330 * Small cleanups and fixes after a pychecker run.
6329 * Small cleanups and fixes after a pychecker run.
6331
6330
6332 * Changed the @cd command to handle @cd - and @cd -<n> for
6331 * Changed the @cd command to handle @cd - and @cd -<n> for
6333 visiting any directory in _dh.
6332 visiting any directory in _dh.
6334
6333
6335 * Introduced _dh, a history of visited directories. @dhist prints
6334 * Introduced _dh, a history of visited directories. @dhist prints
6336 it out with numbers.
6335 it out with numbers.
6337
6336
6338 2001-12-07 Fernando Perez <fperez@colorado.edu>
6337 2001-12-07 Fernando Perez <fperez@colorado.edu>
6339
6338
6340 * Released 0.1.22
6339 * Released 0.1.22
6341
6340
6342 * Made initialization a bit more robust against invalid color
6341 * Made initialization a bit more robust against invalid color
6343 options in user input (exit, not traceback-crash).
6342 options in user input (exit, not traceback-crash).
6344
6343
6345 * Changed the bug crash reporter to write the report only in the
6344 * Changed the bug crash reporter to write the report only in the
6346 user's .ipython directory. That way IPython won't litter people's
6345 user's .ipython directory. That way IPython won't litter people's
6347 hard disks with crash files all over the place. Also print on
6346 hard disks with crash files all over the place. Also print on
6348 screen the necessary mail command.
6347 screen the necessary mail command.
6349
6348
6350 * With the new ultraTB, implemented LightBG color scheme for light
6349 * With the new ultraTB, implemented LightBG color scheme for light
6351 background terminals. A lot of people like white backgrounds, so I
6350 background terminals. A lot of people like white backgrounds, so I
6352 guess we should at least give them something readable.
6351 guess we should at least give them something readable.
6353
6352
6354 2001-12-06 Fernando Perez <fperez@colorado.edu>
6353 2001-12-06 Fernando Perez <fperez@colorado.edu>
6355
6354
6356 * Modified the structure of ultraTB. Now there's a proper class
6355 * Modified the structure of ultraTB. Now there's a proper class
6357 for tables of color schemes which allow adding schemes easily and
6356 for tables of color schemes which allow adding schemes easily and
6358 switching the active scheme without creating a new instance every
6357 switching the active scheme without creating a new instance every
6359 time (which was ridiculous). The syntax for creating new schemes
6358 time (which was ridiculous). The syntax for creating new schemes
6360 is also cleaner. I think ultraTB is finally done, with a clean
6359 is also cleaner. I think ultraTB is finally done, with a clean
6361 class structure. Names are also much cleaner (now there's proper
6360 class structure. Names are also much cleaner (now there's proper
6362 color tables, no need for every variable to also have 'color' in
6361 color tables, no need for every variable to also have 'color' in
6363 its name).
6362 its name).
6364
6363
6365 * Broke down genutils into separate files. Now genutils only
6364 * Broke down genutils into separate files. Now genutils only
6366 contains utility functions, and classes have been moved to their
6365 contains utility functions, and classes have been moved to their
6367 own files (they had enough independent functionality to warrant
6366 own files (they had enough independent functionality to warrant
6368 it): ConfigLoader, OutputTrap, Struct.
6367 it): ConfigLoader, OutputTrap, Struct.
6369
6368
6370 2001-12-05 Fernando Perez <fperez@colorado.edu>
6369 2001-12-05 Fernando Perez <fperez@colorado.edu>
6371
6370
6372 * IPython turns 21! Released version 0.1.21, as a candidate for
6371 * IPython turns 21! Released version 0.1.21, as a candidate for
6373 public consumption. If all goes well, release in a few days.
6372 public consumption. If all goes well, release in a few days.
6374
6373
6375 * Fixed path bug (files in Extensions/ directory wouldn't be found
6374 * Fixed path bug (files in Extensions/ directory wouldn't be found
6376 unless IPython/ was explicitly in sys.path).
6375 unless IPython/ was explicitly in sys.path).
6377
6376
6378 * Extended the FlexCompleter class as MagicCompleter to allow
6377 * Extended the FlexCompleter class as MagicCompleter to allow
6379 completion of @-starting lines.
6378 completion of @-starting lines.
6380
6379
6381 * Created __release__.py file as a central repository for release
6380 * Created __release__.py file as a central repository for release
6382 info that other files can read from.
6381 info that other files can read from.
6383
6382
6384 * Fixed small bug in logging: when logging was turned on in
6383 * Fixed small bug in logging: when logging was turned on in
6385 mid-session, old lines with special meanings (!@?) were being
6384 mid-session, old lines with special meanings (!@?) were being
6386 logged without the prepended comment, which is necessary since
6385 logged without the prepended comment, which is necessary since
6387 they are not truly valid python syntax. This should make session
6386 they are not truly valid python syntax. This should make session
6388 restores produce less errors.
6387 restores produce less errors.
6389
6388
6390 * The namespace cleanup forced me to make a FlexCompleter class
6389 * The namespace cleanup forced me to make a FlexCompleter class
6391 which is nothing but a ripoff of rlcompleter, but with selectable
6390 which is nothing but a ripoff of rlcompleter, but with selectable
6392 namespace (rlcompleter only works in __main__.__dict__). I'll try
6391 namespace (rlcompleter only works in __main__.__dict__). I'll try
6393 to submit a note to the authors to see if this change can be
6392 to submit a note to the authors to see if this change can be
6394 incorporated in future rlcompleter releases (Dec.6: done)
6393 incorporated in future rlcompleter releases (Dec.6: done)
6395
6394
6396 * More fixes to namespace handling. It was a mess! Now all
6395 * More fixes to namespace handling. It was a mess! Now all
6397 explicit references to __main__.__dict__ are gone (except when
6396 explicit references to __main__.__dict__ are gone (except when
6398 really needed) and everything is handled through the namespace
6397 really needed) and everything is handled through the namespace
6399 dicts in the IPython instance. We seem to be getting somewhere
6398 dicts in the IPython instance. We seem to be getting somewhere
6400 with this, finally...
6399 with this, finally...
6401
6400
6402 * Small documentation updates.
6401 * Small documentation updates.
6403
6402
6404 * Created the Extensions directory under IPython (with an
6403 * Created the Extensions directory under IPython (with an
6405 __init__.py). Put the PhysicalQ stuff there. This directory should
6404 __init__.py). Put the PhysicalQ stuff there. This directory should
6406 be used for all special-purpose extensions.
6405 be used for all special-purpose extensions.
6407
6406
6408 * File renaming:
6407 * File renaming:
6409 ipythonlib --> ipmaker
6408 ipythonlib --> ipmaker
6410 ipplib --> iplib
6409 ipplib --> iplib
6411 This makes a bit more sense in terms of what these files actually do.
6410 This makes a bit more sense in terms of what these files actually do.
6412
6411
6413 * Moved all the classes and functions in ipythonlib to ipplib, so
6412 * Moved all the classes and functions in ipythonlib to ipplib, so
6414 now ipythonlib only has make_IPython(). This will ease up its
6413 now ipythonlib only has make_IPython(). This will ease up its
6415 splitting in smaller functional chunks later.
6414 splitting in smaller functional chunks later.
6416
6415
6417 * Cleaned up (done, I think) output of @whos. Better column
6416 * Cleaned up (done, I think) output of @whos. Better column
6418 formatting, and now shows str(var) for as much as it can, which is
6417 formatting, and now shows str(var) for as much as it can, which is
6419 typically what one gets with a 'print var'.
6418 typically what one gets with a 'print var'.
6420
6419
6421 2001-12-04 Fernando Perez <fperez@colorado.edu>
6420 2001-12-04 Fernando Perez <fperez@colorado.edu>
6422
6421
6423 * Fixed namespace problems. Now builtin/IPyhton/user names get
6422 * Fixed namespace problems. Now builtin/IPyhton/user names get
6424 properly reported in their namespace. Internal namespace handling
6423 properly reported in their namespace. Internal namespace handling
6425 is finally getting decent (not perfect yet, but much better than
6424 is finally getting decent (not perfect yet, but much better than
6426 the ad-hoc mess we had).
6425 the ad-hoc mess we had).
6427
6426
6428 * Removed -exit option. If people just want to run a python
6427 * Removed -exit option. If people just want to run a python
6429 script, that's what the normal interpreter is for. Less
6428 script, that's what the normal interpreter is for. Less
6430 unnecessary options, less chances for bugs.
6429 unnecessary options, less chances for bugs.
6431
6430
6432 * Added a crash handler which generates a complete post-mortem if
6431 * Added a crash handler which generates a complete post-mortem if
6433 IPython crashes. This will help a lot in tracking bugs down the
6432 IPython crashes. This will help a lot in tracking bugs down the
6434 road.
6433 road.
6435
6434
6436 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6435 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6437 which were boud to functions being reassigned would bypass the
6436 which were boud to functions being reassigned would bypass the
6438 logger, breaking the sync of _il with the prompt counter. This
6437 logger, breaking the sync of _il with the prompt counter. This
6439 would then crash IPython later when a new line was logged.
6438 would then crash IPython later when a new line was logged.
6440
6439
6441 2001-12-02 Fernando Perez <fperez@colorado.edu>
6440 2001-12-02 Fernando Perez <fperez@colorado.edu>
6442
6441
6443 * Made IPython a package. This means people don't have to clutter
6442 * Made IPython a package. This means people don't have to clutter
6444 their sys.path with yet another directory. Changed the INSTALL
6443 their sys.path with yet another directory. Changed the INSTALL
6445 file accordingly.
6444 file accordingly.
6446
6445
6447 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6446 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6448 sorts its output (so @who shows it sorted) and @whos formats the
6447 sorts its output (so @who shows it sorted) and @whos formats the
6449 table according to the width of the first column. Nicer, easier to
6448 table according to the width of the first column. Nicer, easier to
6450 read. Todo: write a generic table_format() which takes a list of
6449 read. Todo: write a generic table_format() which takes a list of
6451 lists and prints it nicely formatted, with optional row/column
6450 lists and prints it nicely formatted, with optional row/column
6452 separators and proper padding and justification.
6451 separators and proper padding and justification.
6453
6452
6454 * Released 0.1.20
6453 * Released 0.1.20
6455
6454
6456 * Fixed bug in @log which would reverse the inputcache list (a
6455 * Fixed bug in @log which would reverse the inputcache list (a
6457 copy operation was missing).
6456 copy operation was missing).
6458
6457
6459 * Code cleanup. @config was changed to use page(). Better, since
6458 * Code cleanup. @config was changed to use page(). Better, since
6460 its output is always quite long.
6459 its output is always quite long.
6461
6460
6462 * Itpl is back as a dependency. I was having too many problems
6461 * Itpl is back as a dependency. I was having too many problems
6463 getting the parametric aliases to work reliably, and it's just
6462 getting the parametric aliases to work reliably, and it's just
6464 easier to code weird string operations with it than playing %()s
6463 easier to code weird string operations with it than playing %()s
6465 games. It's only ~6k, so I don't think it's too big a deal.
6464 games. It's only ~6k, so I don't think it's too big a deal.
6466
6465
6467 * Found (and fixed) a very nasty bug with history. !lines weren't
6466 * Found (and fixed) a very nasty bug with history. !lines weren't
6468 getting cached, and the out of sync caches would crash
6467 getting cached, and the out of sync caches would crash
6469 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6468 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6470 division of labor a bit better. Bug fixed, cleaner structure.
6469 division of labor a bit better. Bug fixed, cleaner structure.
6471
6470
6472 2001-12-01 Fernando Perez <fperez@colorado.edu>
6471 2001-12-01 Fernando Perez <fperez@colorado.edu>
6473
6472
6474 * Released 0.1.19
6473 * Released 0.1.19
6475
6474
6476 * Added option -n to @hist to prevent line number printing. Much
6475 * Added option -n to @hist to prevent line number printing. Much
6477 easier to copy/paste code this way.
6476 easier to copy/paste code this way.
6478
6477
6479 * Created global _il to hold the input list. Allows easy
6478 * Created global _il to hold the input list. Allows easy
6480 re-execution of blocks of code by slicing it (inspired by Janko's
6479 re-execution of blocks of code by slicing it (inspired by Janko's
6481 comment on 'macros').
6480 comment on 'macros').
6482
6481
6483 * Small fixes and doc updates.
6482 * Small fixes and doc updates.
6484
6483
6485 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6484 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6486 much too fragile with automagic. Handles properly multi-line
6485 much too fragile with automagic. Handles properly multi-line
6487 statements and takes parameters.
6486 statements and takes parameters.
6488
6487
6489 2001-11-30 Fernando Perez <fperez@colorado.edu>
6488 2001-11-30 Fernando Perez <fperez@colorado.edu>
6490
6489
6491 * Version 0.1.18 released.
6490 * Version 0.1.18 released.
6492
6491
6493 * Fixed nasty namespace bug in initial module imports.
6492 * Fixed nasty namespace bug in initial module imports.
6494
6493
6495 * Added copyright/license notes to all code files (except
6494 * Added copyright/license notes to all code files (except
6496 DPyGetOpt). For the time being, LGPL. That could change.
6495 DPyGetOpt). For the time being, LGPL. That could change.
6497
6496
6498 * Rewrote a much nicer README, updated INSTALL, cleaned up
6497 * Rewrote a much nicer README, updated INSTALL, cleaned up
6499 ipythonrc-* samples.
6498 ipythonrc-* samples.
6500
6499
6501 * Overall code/documentation cleanup. Basically ready for
6500 * Overall code/documentation cleanup. Basically ready for
6502 release. Only remaining thing: licence decision (LGPL?).
6501 release. Only remaining thing: licence decision (LGPL?).
6503
6502
6504 * Converted load_config to a class, ConfigLoader. Now recursion
6503 * Converted load_config to a class, ConfigLoader. Now recursion
6505 control is better organized. Doesn't include the same file twice.
6504 control is better organized. Doesn't include the same file twice.
6506
6505
6507 2001-11-29 Fernando Perez <fperez@colorado.edu>
6506 2001-11-29 Fernando Perez <fperez@colorado.edu>
6508
6507
6509 * Got input history working. Changed output history variables from
6508 * Got input history working. Changed output history variables from
6510 _p to _o so that _i is for input and _o for output. Just cleaner
6509 _p to _o so that _i is for input and _o for output. Just cleaner
6511 convention.
6510 convention.
6512
6511
6513 * Implemented parametric aliases. This pretty much allows the
6512 * Implemented parametric aliases. This pretty much allows the
6514 alias system to offer full-blown shell convenience, I think.
6513 alias system to offer full-blown shell convenience, I think.
6515
6514
6516 * Version 0.1.17 released, 0.1.18 opened.
6515 * Version 0.1.17 released, 0.1.18 opened.
6517
6516
6518 * dot_ipython/ipythonrc (alias): added documentation.
6517 * dot_ipython/ipythonrc (alias): added documentation.
6519 (xcolor): Fixed small bug (xcolors -> xcolor)
6518 (xcolor): Fixed small bug (xcolors -> xcolor)
6520
6519
6521 * Changed the alias system. Now alias is a magic command to define
6520 * Changed the alias system. Now alias is a magic command to define
6522 aliases just like the shell. Rationale: the builtin magics should
6521 aliases just like the shell. Rationale: the builtin magics should
6523 be there for things deeply connected to IPython's
6522 be there for things deeply connected to IPython's
6524 architecture. And this is a much lighter system for what I think
6523 architecture. And this is a much lighter system for what I think
6525 is the really important feature: allowing users to define quickly
6524 is the really important feature: allowing users to define quickly
6526 magics that will do shell things for them, so they can customize
6525 magics that will do shell things for them, so they can customize
6527 IPython easily to match their work habits. If someone is really
6526 IPython easily to match their work habits. If someone is really
6528 desperate to have another name for a builtin alias, they can
6527 desperate to have another name for a builtin alias, they can
6529 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6528 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6530 works.
6529 works.
6531
6530
6532 2001-11-28 Fernando Perez <fperez@colorado.edu>
6531 2001-11-28 Fernando Perez <fperez@colorado.edu>
6533
6532
6534 * Changed @file so that it opens the source file at the proper
6533 * Changed @file so that it opens the source file at the proper
6535 line. Since it uses less, if your EDITOR environment is
6534 line. Since it uses less, if your EDITOR environment is
6536 configured, typing v will immediately open your editor of choice
6535 configured, typing v will immediately open your editor of choice
6537 right at the line where the object is defined. Not as quick as
6536 right at the line where the object is defined. Not as quick as
6538 having a direct @edit command, but for all intents and purposes it
6537 having a direct @edit command, but for all intents and purposes it
6539 works. And I don't have to worry about writing @edit to deal with
6538 works. And I don't have to worry about writing @edit to deal with
6540 all the editors, less does that.
6539 all the editors, less does that.
6541
6540
6542 * Version 0.1.16 released, 0.1.17 opened.
6541 * Version 0.1.16 released, 0.1.17 opened.
6543
6542
6544 * Fixed some nasty bugs in the page/page_dumb combo that could
6543 * Fixed some nasty bugs in the page/page_dumb combo that could
6545 crash IPython.
6544 crash IPython.
6546
6545
6547 2001-11-27 Fernando Perez <fperez@colorado.edu>
6546 2001-11-27 Fernando Perez <fperez@colorado.edu>
6548
6547
6549 * Version 0.1.15 released, 0.1.16 opened.
6548 * Version 0.1.15 released, 0.1.16 opened.
6550
6549
6551 * Finally got ? and ?? to work for undefined things: now it's
6550 * Finally got ? and ?? to work for undefined things: now it's
6552 possible to type {}.get? and get information about the get method
6551 possible to type {}.get? and get information about the get method
6553 of dicts, or os.path? even if only os is defined (so technically
6552 of dicts, or os.path? even if only os is defined (so technically
6554 os.path isn't). Works at any level. For example, after import os,
6553 os.path isn't). Works at any level. For example, after import os,
6555 os?, os.path?, os.path.abspath? all work. This is great, took some
6554 os?, os.path?, os.path.abspath? all work. This is great, took some
6556 work in _ofind.
6555 work in _ofind.
6557
6556
6558 * Fixed more bugs with logging. The sanest way to do it was to add
6557 * Fixed more bugs with logging. The sanest way to do it was to add
6559 to @log a 'mode' parameter. Killed two in one shot (this mode
6558 to @log a 'mode' parameter. Killed two in one shot (this mode
6560 option was a request of Janko's). I think it's finally clean
6559 option was a request of Janko's). I think it's finally clean
6561 (famous last words).
6560 (famous last words).
6562
6561
6563 * Added a page_dumb() pager which does a decent job of paging on
6562 * Added a page_dumb() pager which does a decent job of paging on
6564 screen, if better things (like less) aren't available. One less
6563 screen, if better things (like less) aren't available. One less
6565 unix dependency (someday maybe somebody will port this to
6564 unix dependency (someday maybe somebody will port this to
6566 windows).
6565 windows).
6567
6566
6568 * Fixed problem in magic_log: would lock of logging out if log
6567 * Fixed problem in magic_log: would lock of logging out if log
6569 creation failed (because it would still think it had succeeded).
6568 creation failed (because it would still think it had succeeded).
6570
6569
6571 * Improved the page() function using curses to auto-detect screen
6570 * Improved the page() function using curses to auto-detect screen
6572 size. Now it can make a much better decision on whether to print
6571 size. Now it can make a much better decision on whether to print
6573 or page a string. Option screen_length was modified: a value 0
6572 or page a string. Option screen_length was modified: a value 0
6574 means auto-detect, and that's the default now.
6573 means auto-detect, and that's the default now.
6575
6574
6576 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6575 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6577 go out. I'll test it for a few days, then talk to Janko about
6576 go out. I'll test it for a few days, then talk to Janko about
6578 licences and announce it.
6577 licences and announce it.
6579
6578
6580 * Fixed the length of the auto-generated ---> prompt which appears
6579 * Fixed the length of the auto-generated ---> prompt which appears
6581 for auto-parens and auto-quotes. Getting this right isn't trivial,
6580 for auto-parens and auto-quotes. Getting this right isn't trivial,
6582 with all the color escapes, different prompt types and optional
6581 with all the color escapes, different prompt types and optional
6583 separators. But it seems to be working in all the combinations.
6582 separators. But it seems to be working in all the combinations.
6584
6583
6585 2001-11-26 Fernando Perez <fperez@colorado.edu>
6584 2001-11-26 Fernando Perez <fperez@colorado.edu>
6586
6585
6587 * Wrote a regexp filter to get option types from the option names
6586 * Wrote a regexp filter to get option types from the option names
6588 string. This eliminates the need to manually keep two duplicate
6587 string. This eliminates the need to manually keep two duplicate
6589 lists.
6588 lists.
6590
6589
6591 * Removed the unneeded check_option_names. Now options are handled
6590 * Removed the unneeded check_option_names. Now options are handled
6592 in a much saner manner and it's easy to visually check that things
6591 in a much saner manner and it's easy to visually check that things
6593 are ok.
6592 are ok.
6594
6593
6595 * Updated version numbers on all files I modified to carry a
6594 * Updated version numbers on all files I modified to carry a
6596 notice so Janko and Nathan have clear version markers.
6595 notice so Janko and Nathan have clear version markers.
6597
6596
6598 * Updated docstring for ultraTB with my changes. I should send
6597 * Updated docstring for ultraTB with my changes. I should send
6599 this to Nathan.
6598 this to Nathan.
6600
6599
6601 * Lots of small fixes. Ran everything through pychecker again.
6600 * Lots of small fixes. Ran everything through pychecker again.
6602
6601
6603 * Made loading of deep_reload an cmd line option. If it's not too
6602 * Made loading of deep_reload an cmd line option. If it's not too
6604 kosher, now people can just disable it. With -nodeep_reload it's
6603 kosher, now people can just disable it. With -nodeep_reload it's
6605 still available as dreload(), it just won't overwrite reload().
6604 still available as dreload(), it just won't overwrite reload().
6606
6605
6607 * Moved many options to the no| form (-opt and -noopt
6606 * Moved many options to the no| form (-opt and -noopt
6608 accepted). Cleaner.
6607 accepted). Cleaner.
6609
6608
6610 * Changed magic_log so that if called with no parameters, it uses
6609 * Changed magic_log so that if called with no parameters, it uses
6611 'rotate' mode. That way auto-generated logs aren't automatically
6610 'rotate' mode. That way auto-generated logs aren't automatically
6612 over-written. For normal logs, now a backup is made if it exists
6611 over-written. For normal logs, now a backup is made if it exists
6613 (only 1 level of backups). A new 'backup' mode was added to the
6612 (only 1 level of backups). A new 'backup' mode was added to the
6614 Logger class to support this. This was a request by Janko.
6613 Logger class to support this. This was a request by Janko.
6615
6614
6616 * Added @logoff/@logon to stop/restart an active log.
6615 * Added @logoff/@logon to stop/restart an active log.
6617
6616
6618 * Fixed a lot of bugs in log saving/replay. It was pretty
6617 * Fixed a lot of bugs in log saving/replay. It was pretty
6619 broken. Now special lines (!@,/) appear properly in the command
6618 broken. Now special lines (!@,/) appear properly in the command
6620 history after a log replay.
6619 history after a log replay.
6621
6620
6622 * Tried and failed to implement full session saving via pickle. My
6621 * Tried and failed to implement full session saving via pickle. My
6623 idea was to pickle __main__.__dict__, but modules can't be
6622 idea was to pickle __main__.__dict__, but modules can't be
6624 pickled. This would be a better alternative to replaying logs, but
6623 pickled. This would be a better alternative to replaying logs, but
6625 seems quite tricky to get to work. Changed -session to be called
6624 seems quite tricky to get to work. Changed -session to be called
6626 -logplay, which more accurately reflects what it does. And if we
6625 -logplay, which more accurately reflects what it does. And if we
6627 ever get real session saving working, -session is now available.
6626 ever get real session saving working, -session is now available.
6628
6627
6629 * Implemented color schemes for prompts also. As for tracebacks,
6628 * Implemented color schemes for prompts also. As for tracebacks,
6630 currently only NoColor and Linux are supported. But now the
6629 currently only NoColor and Linux are supported. But now the
6631 infrastructure is in place, based on a generic ColorScheme
6630 infrastructure is in place, based on a generic ColorScheme
6632 class. So writing and activating new schemes both for the prompts
6631 class. So writing and activating new schemes both for the prompts
6633 and the tracebacks should be straightforward.
6632 and the tracebacks should be straightforward.
6634
6633
6635 * Version 0.1.13 released, 0.1.14 opened.
6634 * Version 0.1.13 released, 0.1.14 opened.
6636
6635
6637 * Changed handling of options for output cache. Now counter is
6636 * Changed handling of options for output cache. Now counter is
6638 hardwired starting at 1 and one specifies the maximum number of
6637 hardwired starting at 1 and one specifies the maximum number of
6639 entries *in the outcache* (not the max prompt counter). This is
6638 entries *in the outcache* (not the max prompt counter). This is
6640 much better, since many statements won't increase the cache
6639 much better, since many statements won't increase the cache
6641 count. It also eliminated some confusing options, now there's only
6640 count. It also eliminated some confusing options, now there's only
6642 one: cache_size.
6641 one: cache_size.
6643
6642
6644 * Added 'alias' magic function and magic_alias option in the
6643 * Added 'alias' magic function and magic_alias option in the
6645 ipythonrc file. Now the user can easily define whatever names he
6644 ipythonrc file. Now the user can easily define whatever names he
6646 wants for the magic functions without having to play weird
6645 wants for the magic functions without having to play weird
6647 namespace games. This gives IPython a real shell-like feel.
6646 namespace games. This gives IPython a real shell-like feel.
6648
6647
6649 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6648 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6650 @ or not).
6649 @ or not).
6651
6650
6652 This was one of the last remaining 'visible' bugs (that I know
6651 This was one of the last remaining 'visible' bugs (that I know
6653 of). I think if I can clean up the session loading so it works
6652 of). I think if I can clean up the session loading so it works
6654 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6653 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6655 about licensing).
6654 about licensing).
6656
6655
6657 2001-11-25 Fernando Perez <fperez@colorado.edu>
6656 2001-11-25 Fernando Perez <fperez@colorado.edu>
6658
6657
6659 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6658 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6660 there's a cleaner distinction between what ? and ?? show.
6659 there's a cleaner distinction between what ? and ?? show.
6661
6660
6662 * Added screen_length option. Now the user can define his own
6661 * Added screen_length option. Now the user can define his own
6663 screen size for page() operations.
6662 screen size for page() operations.
6664
6663
6665 * Implemented magic shell-like functions with automatic code
6664 * Implemented magic shell-like functions with automatic code
6666 generation. Now adding another function is just a matter of adding
6665 generation. Now adding another function is just a matter of adding
6667 an entry to a dict, and the function is dynamically generated at
6666 an entry to a dict, and the function is dynamically generated at
6668 run-time. Python has some really cool features!
6667 run-time. Python has some really cool features!
6669
6668
6670 * Renamed many options to cleanup conventions a little. Now all
6669 * Renamed many options to cleanup conventions a little. Now all
6671 are lowercase, and only underscores where needed. Also in the code
6670 are lowercase, and only underscores where needed. Also in the code
6672 option name tables are clearer.
6671 option name tables are clearer.
6673
6672
6674 * Changed prompts a little. Now input is 'In [n]:' instead of
6673 * Changed prompts a little. Now input is 'In [n]:' instead of
6675 'In[n]:='. This allows it the numbers to be aligned with the
6674 'In[n]:='. This allows it the numbers to be aligned with the
6676 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6675 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6677 Python (it was a Mathematica thing). The '...' continuation prompt
6676 Python (it was a Mathematica thing). The '...' continuation prompt
6678 was also changed a little to align better.
6677 was also changed a little to align better.
6679
6678
6680 * Fixed bug when flushing output cache. Not all _p<n> variables
6679 * Fixed bug when flushing output cache. Not all _p<n> variables
6681 exist, so their deletion needs to be wrapped in a try:
6680 exist, so their deletion needs to be wrapped in a try:
6682
6681
6683 * Figured out how to properly use inspect.formatargspec() (it
6682 * Figured out how to properly use inspect.formatargspec() (it
6684 requires the args preceded by *). So I removed all the code from
6683 requires the args preceded by *). So I removed all the code from
6685 _get_pdef in Magic, which was just replicating that.
6684 _get_pdef in Magic, which was just replicating that.
6686
6685
6687 * Added test to prefilter to allow redefining magic function names
6686 * Added test to prefilter to allow redefining magic function names
6688 as variables. This is ok, since the @ form is always available,
6687 as variables. This is ok, since the @ form is always available,
6689 but whe should allow the user to define a variable called 'ls' if
6688 but whe should allow the user to define a variable called 'ls' if
6690 he needs it.
6689 he needs it.
6691
6690
6692 * Moved the ToDo information from README into a separate ToDo.
6691 * Moved the ToDo information from README into a separate ToDo.
6693
6692
6694 * General code cleanup and small bugfixes. I think it's close to a
6693 * General code cleanup and small bugfixes. I think it's close to a
6695 state where it can be released, obviously with a big 'beta'
6694 state where it can be released, obviously with a big 'beta'
6696 warning on it.
6695 warning on it.
6697
6696
6698 * Got the magic function split to work. Now all magics are defined
6697 * Got the magic function split to work. Now all magics are defined
6699 in a separate class. It just organizes things a bit, and now
6698 in a separate class. It just organizes things a bit, and now
6700 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6699 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6701 was too long).
6700 was too long).
6702
6701
6703 * Changed @clear to @reset to avoid potential confusions with
6702 * Changed @clear to @reset to avoid potential confusions with
6704 the shell command clear. Also renamed @cl to @clear, which does
6703 the shell command clear. Also renamed @cl to @clear, which does
6705 exactly what people expect it to from their shell experience.
6704 exactly what people expect it to from their shell experience.
6706
6705
6707 Added a check to the @reset command (since it's so
6706 Added a check to the @reset command (since it's so
6708 destructive, it's probably a good idea to ask for confirmation).
6707 destructive, it's probably a good idea to ask for confirmation).
6709 But now reset only works for full namespace resetting. Since the
6708 But now reset only works for full namespace resetting. Since the
6710 del keyword is already there for deleting a few specific
6709 del keyword is already there for deleting a few specific
6711 variables, I don't see the point of having a redundant magic
6710 variables, I don't see the point of having a redundant magic
6712 function for the same task.
6711 function for the same task.
6713
6712
6714 2001-11-24 Fernando Perez <fperez@colorado.edu>
6713 2001-11-24 Fernando Perez <fperez@colorado.edu>
6715
6714
6716 * Updated the builtin docs (esp. the ? ones).
6715 * Updated the builtin docs (esp. the ? ones).
6717
6716
6718 * Ran all the code through pychecker. Not terribly impressed with
6717 * Ran all the code through pychecker. Not terribly impressed with
6719 it: lots of spurious warnings and didn't really find anything of
6718 it: lots of spurious warnings and didn't really find anything of
6720 substance (just a few modules being imported and not used).
6719 substance (just a few modules being imported and not used).
6721
6720
6722 * Implemented the new ultraTB functionality into IPython. New
6721 * Implemented the new ultraTB functionality into IPython. New
6723 option: xcolors. This chooses color scheme. xmode now only selects
6722 option: xcolors. This chooses color scheme. xmode now only selects
6724 between Plain and Verbose. Better orthogonality.
6723 between Plain and Verbose. Better orthogonality.
6725
6724
6726 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6725 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6727 mode and color scheme for the exception handlers. Now it's
6726 mode and color scheme for the exception handlers. Now it's
6728 possible to have the verbose traceback with no coloring.
6727 possible to have the verbose traceback with no coloring.
6729
6728
6730 2001-11-23 Fernando Perez <fperez@colorado.edu>
6729 2001-11-23 Fernando Perez <fperez@colorado.edu>
6731
6730
6732 * Version 0.1.12 released, 0.1.13 opened.
6731 * Version 0.1.12 released, 0.1.13 opened.
6733
6732
6734 * Removed option to set auto-quote and auto-paren escapes by
6733 * Removed option to set auto-quote and auto-paren escapes by
6735 user. The chances of breaking valid syntax are just too high. If
6734 user. The chances of breaking valid syntax are just too high. If
6736 someone *really* wants, they can always dig into the code.
6735 someone *really* wants, they can always dig into the code.
6737
6736
6738 * Made prompt separators configurable.
6737 * Made prompt separators configurable.
6739
6738
6740 2001-11-22 Fernando Perez <fperez@colorado.edu>
6739 2001-11-22 Fernando Perez <fperez@colorado.edu>
6741
6740
6742 * Small bugfixes in many places.
6741 * Small bugfixes in many places.
6743
6742
6744 * Removed the MyCompleter class from ipplib. It seemed redundant
6743 * Removed the MyCompleter class from ipplib. It seemed redundant
6745 with the C-p,C-n history search functionality. Less code to
6744 with the C-p,C-n history search functionality. Less code to
6746 maintain.
6745 maintain.
6747
6746
6748 * Moved all the original ipython.py code into ipythonlib.py. Right
6747 * Moved all the original ipython.py code into ipythonlib.py. Right
6749 now it's just one big dump into a function called make_IPython, so
6748 now it's just one big dump into a function called make_IPython, so
6750 no real modularity has been gained. But at least it makes the
6749 no real modularity has been gained. But at least it makes the
6751 wrapper script tiny, and since ipythonlib is a module, it gets
6750 wrapper script tiny, and since ipythonlib is a module, it gets
6752 compiled and startup is much faster.
6751 compiled and startup is much faster.
6753
6752
6754 This is a reasobably 'deep' change, so we should test it for a
6753 This is a reasobably 'deep' change, so we should test it for a
6755 while without messing too much more with the code.
6754 while without messing too much more with the code.
6756
6755
6757 2001-11-21 Fernando Perez <fperez@colorado.edu>
6756 2001-11-21 Fernando Perez <fperez@colorado.edu>
6758
6757
6759 * Version 0.1.11 released, 0.1.12 opened for further work.
6758 * Version 0.1.11 released, 0.1.12 opened for further work.
6760
6759
6761 * Removed dependency on Itpl. It was only needed in one place. It
6760 * Removed dependency on Itpl. It was only needed in one place. It
6762 would be nice if this became part of python, though. It makes life
6761 would be nice if this became part of python, though. It makes life
6763 *a lot* easier in some cases.
6762 *a lot* easier in some cases.
6764
6763
6765 * Simplified the prefilter code a bit. Now all handlers are
6764 * Simplified the prefilter code a bit. Now all handlers are
6766 expected to explicitly return a value (at least a blank string).
6765 expected to explicitly return a value (at least a blank string).
6767
6766
6768 * Heavy edits in ipplib. Removed the help system altogether. Now
6767 * Heavy edits in ipplib. Removed the help system altogether. Now
6769 obj?/?? is used for inspecting objects, a magic @doc prints
6768 obj?/?? is used for inspecting objects, a magic @doc prints
6770 docstrings, and full-blown Python help is accessed via the 'help'
6769 docstrings, and full-blown Python help is accessed via the 'help'
6771 keyword. This cleans up a lot of code (less to maintain) and does
6770 keyword. This cleans up a lot of code (less to maintain) and does
6772 the job. Since 'help' is now a standard Python component, might as
6771 the job. Since 'help' is now a standard Python component, might as
6773 well use it and remove duplicate functionality.
6772 well use it and remove duplicate functionality.
6774
6773
6775 Also removed the option to use ipplib as a standalone program. By
6774 Also removed the option to use ipplib as a standalone program. By
6776 now it's too dependent on other parts of IPython to function alone.
6775 now it's too dependent on other parts of IPython to function alone.
6777
6776
6778 * Fixed bug in genutils.pager. It would crash if the pager was
6777 * Fixed bug in genutils.pager. It would crash if the pager was
6779 exited immediately after opening (broken pipe).
6778 exited immediately after opening (broken pipe).
6780
6779
6781 * Trimmed down the VerboseTB reporting a little. The header is
6780 * Trimmed down the VerboseTB reporting a little. The header is
6782 much shorter now and the repeated exception arguments at the end
6781 much shorter now and the repeated exception arguments at the end
6783 have been removed. For interactive use the old header seemed a bit
6782 have been removed. For interactive use the old header seemed a bit
6784 excessive.
6783 excessive.
6785
6784
6786 * Fixed small bug in output of @whos for variables with multi-word
6785 * Fixed small bug in output of @whos for variables with multi-word
6787 types (only first word was displayed).
6786 types (only first word was displayed).
6788
6787
6789 2001-11-17 Fernando Perez <fperez@colorado.edu>
6788 2001-11-17 Fernando Perez <fperez@colorado.edu>
6790
6789
6791 * Version 0.1.10 released, 0.1.11 opened for further work.
6790 * Version 0.1.10 released, 0.1.11 opened for further work.
6792
6791
6793 * Modified dirs and friends. dirs now *returns* the stack (not
6792 * Modified dirs and friends. dirs now *returns* the stack (not
6794 prints), so one can manipulate it as a variable. Convenient to
6793 prints), so one can manipulate it as a variable. Convenient to
6795 travel along many directories.
6794 travel along many directories.
6796
6795
6797 * Fixed bug in magic_pdef: would only work with functions with
6796 * Fixed bug in magic_pdef: would only work with functions with
6798 arguments with default values.
6797 arguments with default values.
6799
6798
6800 2001-11-14 Fernando Perez <fperez@colorado.edu>
6799 2001-11-14 Fernando Perez <fperez@colorado.edu>
6801
6800
6802 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6801 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6803 example with IPython. Various other minor fixes and cleanups.
6802 example with IPython. Various other minor fixes and cleanups.
6804
6803
6805 * Version 0.1.9 released, 0.1.10 opened for further work.
6804 * Version 0.1.9 released, 0.1.10 opened for further work.
6806
6805
6807 * Added sys.path to the list of directories searched in the
6806 * Added sys.path to the list of directories searched in the
6808 execfile= option. It used to be the current directory and the
6807 execfile= option. It used to be the current directory and the
6809 user's IPYTHONDIR only.
6808 user's IPYTHONDIR only.
6810
6809
6811 2001-11-13 Fernando Perez <fperez@colorado.edu>
6810 2001-11-13 Fernando Perez <fperez@colorado.edu>
6812
6811
6813 * Reinstated the raw_input/prefilter separation that Janko had
6812 * Reinstated the raw_input/prefilter separation that Janko had
6814 initially. This gives a more convenient setup for extending the
6813 initially. This gives a more convenient setup for extending the
6815 pre-processor from the outside: raw_input always gets a string,
6814 pre-processor from the outside: raw_input always gets a string,
6816 and prefilter has to process it. We can then redefine prefilter
6815 and prefilter has to process it. We can then redefine prefilter
6817 from the outside and implement extensions for special
6816 from the outside and implement extensions for special
6818 purposes.
6817 purposes.
6819
6818
6820 Today I got one for inputting PhysicalQuantity objects
6819 Today I got one for inputting PhysicalQuantity objects
6821 (from Scientific) without needing any function calls at
6820 (from Scientific) without needing any function calls at
6822 all. Extremely convenient, and it's all done as a user-level
6821 all. Extremely convenient, and it's all done as a user-level
6823 extension (no IPython code was touched). Now instead of:
6822 extension (no IPython code was touched). Now instead of:
6824 a = PhysicalQuantity(4.2,'m/s**2')
6823 a = PhysicalQuantity(4.2,'m/s**2')
6825 one can simply say
6824 one can simply say
6826 a = 4.2 m/s**2
6825 a = 4.2 m/s**2
6827 or even
6826 or even
6828 a = 4.2 m/s^2
6827 a = 4.2 m/s^2
6829
6828
6830 I use this, but it's also a proof of concept: IPython really is
6829 I use this, but it's also a proof of concept: IPython really is
6831 fully user-extensible, even at the level of the parsing of the
6830 fully user-extensible, even at the level of the parsing of the
6832 command line. It's not trivial, but it's perfectly doable.
6831 command line. It's not trivial, but it's perfectly doable.
6833
6832
6834 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6833 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6835 the problem of modules being loaded in the inverse order in which
6834 the problem of modules being loaded in the inverse order in which
6836 they were defined in
6835 they were defined in
6837
6836
6838 * Version 0.1.8 released, 0.1.9 opened for further work.
6837 * Version 0.1.8 released, 0.1.9 opened for further work.
6839
6838
6840 * Added magics pdef, source and file. They respectively show the
6839 * Added magics pdef, source and file. They respectively show the
6841 definition line ('prototype' in C), source code and full python
6840 definition line ('prototype' in C), source code and full python
6842 file for any callable object. The object inspector oinfo uses
6841 file for any callable object. The object inspector oinfo uses
6843 these to show the same information.
6842 these to show the same information.
6844
6843
6845 * Version 0.1.7 released, 0.1.8 opened for further work.
6844 * Version 0.1.7 released, 0.1.8 opened for further work.
6846
6845
6847 * Separated all the magic functions into a class called Magic. The
6846 * Separated all the magic functions into a class called Magic. The
6848 InteractiveShell class was becoming too big for Xemacs to handle
6847 InteractiveShell class was becoming too big for Xemacs to handle
6849 (de-indenting a line would lock it up for 10 seconds while it
6848 (de-indenting a line would lock it up for 10 seconds while it
6850 backtracked on the whole class!)
6849 backtracked on the whole class!)
6851
6850
6852 FIXME: didn't work. It can be done, but right now namespaces are
6851 FIXME: didn't work. It can be done, but right now namespaces are
6853 all messed up. Do it later (reverted it for now, so at least
6852 all messed up. Do it later (reverted it for now, so at least
6854 everything works as before).
6853 everything works as before).
6855
6854
6856 * Got the object introspection system (magic_oinfo) working! I
6855 * Got the object introspection system (magic_oinfo) working! I
6857 think this is pretty much ready for release to Janko, so he can
6856 think this is pretty much ready for release to Janko, so he can
6858 test it for a while and then announce it. Pretty much 100% of what
6857 test it for a while and then announce it. Pretty much 100% of what
6859 I wanted for the 'phase 1' release is ready. Happy, tired.
6858 I wanted for the 'phase 1' release is ready. Happy, tired.
6860
6859
6861 2001-11-12 Fernando Perez <fperez@colorado.edu>
6860 2001-11-12 Fernando Perez <fperez@colorado.edu>
6862
6861
6863 * Version 0.1.6 released, 0.1.7 opened for further work.
6862 * Version 0.1.6 released, 0.1.7 opened for further work.
6864
6863
6865 * Fixed bug in printing: it used to test for truth before
6864 * Fixed bug in printing: it used to test for truth before
6866 printing, so 0 wouldn't print. Now checks for None.
6865 printing, so 0 wouldn't print. Now checks for None.
6867
6866
6868 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6867 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6869 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6868 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6870 reaches by hand into the outputcache. Think of a better way to do
6869 reaches by hand into the outputcache. Think of a better way to do
6871 this later.
6870 this later.
6872
6871
6873 * Various small fixes thanks to Nathan's comments.
6872 * Various small fixes thanks to Nathan's comments.
6874
6873
6875 * Changed magic_pprint to magic_Pprint. This way it doesn't
6874 * Changed magic_pprint to magic_Pprint. This way it doesn't
6876 collide with pprint() and the name is consistent with the command
6875 collide with pprint() and the name is consistent with the command
6877 line option.
6876 line option.
6878
6877
6879 * Changed prompt counter behavior to be fully like
6878 * Changed prompt counter behavior to be fully like
6880 Mathematica's. That is, even input that doesn't return a result
6879 Mathematica's. That is, even input that doesn't return a result
6881 raises the prompt counter. The old behavior was kind of confusing
6880 raises the prompt counter. The old behavior was kind of confusing
6882 (getting the same prompt number several times if the operation
6881 (getting the same prompt number several times if the operation
6883 didn't return a result).
6882 didn't return a result).
6884
6883
6885 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6884 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6886
6885
6887 * Fixed -Classic mode (wasn't working anymore).
6886 * Fixed -Classic mode (wasn't working anymore).
6888
6887
6889 * Added colored prompts using Nathan's new code. Colors are
6888 * Added colored prompts using Nathan's new code. Colors are
6890 currently hardwired, they can be user-configurable. For
6889 currently hardwired, they can be user-configurable. For
6891 developers, they can be chosen in file ipythonlib.py, at the
6890 developers, they can be chosen in file ipythonlib.py, at the
6892 beginning of the CachedOutput class def.
6891 beginning of the CachedOutput class def.
6893
6892
6894 2001-11-11 Fernando Perez <fperez@colorado.edu>
6893 2001-11-11 Fernando Perez <fperez@colorado.edu>
6895
6894
6896 * Version 0.1.5 released, 0.1.6 opened for further work.
6895 * Version 0.1.5 released, 0.1.6 opened for further work.
6897
6896
6898 * Changed magic_env to *return* the environment as a dict (not to
6897 * Changed magic_env to *return* the environment as a dict (not to
6899 print it). This way it prints, but it can also be processed.
6898 print it). This way it prints, but it can also be processed.
6900
6899
6901 * Added Verbose exception reporting to interactive
6900 * Added Verbose exception reporting to interactive
6902 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6901 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6903 traceback. Had to make some changes to the ultraTB file. This is
6902 traceback. Had to make some changes to the ultraTB file. This is
6904 probably the last 'big' thing in my mental todo list. This ties
6903 probably the last 'big' thing in my mental todo list. This ties
6905 in with the next entry:
6904 in with the next entry:
6906
6905
6907 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6906 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6908 has to specify is Plain, Color or Verbose for all exception
6907 has to specify is Plain, Color or Verbose for all exception
6909 handling.
6908 handling.
6910
6909
6911 * Removed ShellServices option. All this can really be done via
6910 * Removed ShellServices option. All this can really be done via
6912 the magic system. It's easier to extend, cleaner and has automatic
6911 the magic system. It's easier to extend, cleaner and has automatic
6913 namespace protection and documentation.
6912 namespace protection and documentation.
6914
6913
6915 2001-11-09 Fernando Perez <fperez@colorado.edu>
6914 2001-11-09 Fernando Perez <fperez@colorado.edu>
6916
6915
6917 * Fixed bug in output cache flushing (missing parameter to
6916 * Fixed bug in output cache flushing (missing parameter to
6918 __init__). Other small bugs fixed (found using pychecker).
6917 __init__). Other small bugs fixed (found using pychecker).
6919
6918
6920 * Version 0.1.4 opened for bugfixing.
6919 * Version 0.1.4 opened for bugfixing.
6921
6920
6922 2001-11-07 Fernando Perez <fperez@colorado.edu>
6921 2001-11-07 Fernando Perez <fperez@colorado.edu>
6923
6922
6924 * Version 0.1.3 released, mainly because of the raw_input bug.
6923 * Version 0.1.3 released, mainly because of the raw_input bug.
6925
6924
6926 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6925 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6927 and when testing for whether things were callable, a call could
6926 and when testing for whether things were callable, a call could
6928 actually be made to certain functions. They would get called again
6927 actually be made to certain functions. They would get called again
6929 once 'really' executed, with a resulting double call. A disaster
6928 once 'really' executed, with a resulting double call. A disaster
6930 in many cases (list.reverse() would never work!).
6929 in many cases (list.reverse() would never work!).
6931
6930
6932 * Removed prefilter() function, moved its code to raw_input (which
6931 * Removed prefilter() function, moved its code to raw_input (which
6933 after all was just a near-empty caller for prefilter). This saves
6932 after all was just a near-empty caller for prefilter). This saves
6934 a function call on every prompt, and simplifies the class a tiny bit.
6933 a function call on every prompt, and simplifies the class a tiny bit.
6935
6934
6936 * Fix _ip to __ip name in magic example file.
6935 * Fix _ip to __ip name in magic example file.
6937
6936
6938 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6937 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6939 work with non-gnu versions of tar.
6938 work with non-gnu versions of tar.
6940
6939
6941 2001-11-06 Fernando Perez <fperez@colorado.edu>
6940 2001-11-06 Fernando Perez <fperez@colorado.edu>
6942
6941
6943 * Version 0.1.2. Just to keep track of the recent changes.
6942 * Version 0.1.2. Just to keep track of the recent changes.
6944
6943
6945 * Fixed nasty bug in output prompt routine. It used to check 'if
6944 * Fixed nasty bug in output prompt routine. It used to check 'if
6946 arg != None...'. Problem is, this fails if arg implements a
6945 arg != None...'. Problem is, this fails if arg implements a
6947 special comparison (__cmp__) which disallows comparing to
6946 special comparison (__cmp__) which disallows comparing to
6948 None. Found it when trying to use the PhysicalQuantity module from
6947 None. Found it when trying to use the PhysicalQuantity module from
6949 ScientificPython.
6948 ScientificPython.
6950
6949
6951 2001-11-05 Fernando Perez <fperez@colorado.edu>
6950 2001-11-05 Fernando Perez <fperez@colorado.edu>
6952
6951
6953 * Also added dirs. Now the pushd/popd/dirs family functions
6952 * Also added dirs. Now the pushd/popd/dirs family functions
6954 basically like the shell, with the added convenience of going home
6953 basically like the shell, with the added convenience of going home
6955 when called with no args.
6954 when called with no args.
6956
6955
6957 * pushd/popd slightly modified to mimic shell behavior more
6956 * pushd/popd slightly modified to mimic shell behavior more
6958 closely.
6957 closely.
6959
6958
6960 * Added env,pushd,popd from ShellServices as magic functions. I
6959 * Added env,pushd,popd from ShellServices as magic functions. I
6961 think the cleanest will be to port all desired functions from
6960 think the cleanest will be to port all desired functions from
6962 ShellServices as magics and remove ShellServices altogether. This
6961 ShellServices as magics and remove ShellServices altogether. This
6963 will provide a single, clean way of adding functionality
6962 will provide a single, clean way of adding functionality
6964 (shell-type or otherwise) to IP.
6963 (shell-type or otherwise) to IP.
6965
6964
6966 2001-11-04 Fernando Perez <fperez@colorado.edu>
6965 2001-11-04 Fernando Perez <fperez@colorado.edu>
6967
6966
6968 * Added .ipython/ directory to sys.path. This way users can keep
6967 * Added .ipython/ directory to sys.path. This way users can keep
6969 customizations there and access them via import.
6968 customizations there and access them via import.
6970
6969
6971 2001-11-03 Fernando Perez <fperez@colorado.edu>
6970 2001-11-03 Fernando Perez <fperez@colorado.edu>
6972
6971
6973 * Opened version 0.1.1 for new changes.
6972 * Opened version 0.1.1 for new changes.
6974
6973
6975 * Changed version number to 0.1.0: first 'public' release, sent to
6974 * Changed version number to 0.1.0: first 'public' release, sent to
6976 Nathan and Janko.
6975 Nathan and Janko.
6977
6976
6978 * Lots of small fixes and tweaks.
6977 * Lots of small fixes and tweaks.
6979
6978
6980 * Minor changes to whos format. Now strings are shown, snipped if
6979 * Minor changes to whos format. Now strings are shown, snipped if
6981 too long.
6980 too long.
6982
6981
6983 * Changed ShellServices to work on __main__ so they show up in @who
6982 * Changed ShellServices to work on __main__ so they show up in @who
6984
6983
6985 * Help also works with ? at the end of a line:
6984 * Help also works with ? at the end of a line:
6986 ?sin and sin?
6985 ?sin and sin?
6987 both produce the same effect. This is nice, as often I use the
6986 both produce the same effect. This is nice, as often I use the
6988 tab-complete to find the name of a method, but I used to then have
6987 tab-complete to find the name of a method, but I used to then have
6989 to go to the beginning of the line to put a ? if I wanted more
6988 to go to the beginning of the line to put a ? if I wanted more
6990 info. Now I can just add the ? and hit return. Convenient.
6989 info. Now I can just add the ? and hit return. Convenient.
6991
6990
6992 2001-11-02 Fernando Perez <fperez@colorado.edu>
6991 2001-11-02 Fernando Perez <fperez@colorado.edu>
6993
6992
6994 * Python version check (>=2.1) added.
6993 * Python version check (>=2.1) added.
6995
6994
6996 * Added LazyPython documentation. At this point the docs are quite
6995 * Added LazyPython documentation. At this point the docs are quite
6997 a mess. A cleanup is in order.
6996 a mess. A cleanup is in order.
6998
6997
6999 * Auto-installer created. For some bizarre reason, the zipfiles
6998 * Auto-installer created. For some bizarre reason, the zipfiles
7000 module isn't working on my system. So I made a tar version
6999 module isn't working on my system. So I made a tar version
7001 (hopefully the command line options in various systems won't kill
7000 (hopefully the command line options in various systems won't kill
7002 me).
7001 me).
7003
7002
7004 * Fixes to Struct in genutils. Now all dictionary-like methods are
7003 * Fixes to Struct in genutils. Now all dictionary-like methods are
7005 protected (reasonably).
7004 protected (reasonably).
7006
7005
7007 * Added pager function to genutils and changed ? to print usage
7006 * Added pager function to genutils and changed ? to print usage
7008 note through it (it was too long).
7007 note through it (it was too long).
7009
7008
7010 * Added the LazyPython functionality. Works great! I changed the
7009 * Added the LazyPython functionality. Works great! I changed the
7011 auto-quote escape to ';', it's on home row and next to '. But
7010 auto-quote escape to ';', it's on home row and next to '. But
7012 both auto-quote and auto-paren (still /) escapes are command-line
7011 both auto-quote and auto-paren (still /) escapes are command-line
7013 parameters.
7012 parameters.
7014
7013
7015
7014
7016 2001-11-01 Fernando Perez <fperez@colorado.edu>
7015 2001-11-01 Fernando Perez <fperez@colorado.edu>
7017
7016
7018 * Version changed to 0.0.7. Fairly large change: configuration now
7017 * Version changed to 0.0.7. Fairly large change: configuration now
7019 is all stored in a directory, by default .ipython. There, all
7018 is all stored in a directory, by default .ipython. There, all
7020 config files have normal looking names (not .names)
7019 config files have normal looking names (not .names)
7021
7020
7022 * Version 0.0.6 Released first to Lucas and Archie as a test
7021 * Version 0.0.6 Released first to Lucas and Archie as a test
7023 run. Since it's the first 'semi-public' release, change version to
7022 run. Since it's the first 'semi-public' release, change version to
7024 > 0.0.6 for any changes now.
7023 > 0.0.6 for any changes now.
7025
7024
7026 * Stuff I had put in the ipplib.py changelog:
7025 * Stuff I had put in the ipplib.py changelog:
7027
7026
7028 Changes to InteractiveShell:
7027 Changes to InteractiveShell:
7029
7028
7030 - Made the usage message a parameter.
7029 - Made the usage message a parameter.
7031
7030
7032 - Require the name of the shell variable to be given. It's a bit
7031 - Require the name of the shell variable to be given. It's a bit
7033 of a hack, but allows the name 'shell' not to be hardwired in the
7032 of a hack, but allows the name 'shell' not to be hardwired in the
7034 magic (@) handler, which is problematic b/c it requires
7033 magic (@) handler, which is problematic b/c it requires
7035 polluting the global namespace with 'shell'. This in turn is
7034 polluting the global namespace with 'shell'. This in turn is
7036 fragile: if a user redefines a variable called shell, things
7035 fragile: if a user redefines a variable called shell, things
7037 break.
7036 break.
7038
7037
7039 - magic @: all functions available through @ need to be defined
7038 - magic @: all functions available through @ need to be defined
7040 as magic_<name>, even though they can be called simply as
7039 as magic_<name>, even though they can be called simply as
7041 @<name>. This allows the special command @magic to gather
7040 @<name>. This allows the special command @magic to gather
7042 information automatically about all existing magic functions,
7041 information automatically about all existing magic functions,
7043 even if they are run-time user extensions, by parsing the shell
7042 even if they are run-time user extensions, by parsing the shell
7044 instance __dict__ looking for special magic_ names.
7043 instance __dict__ looking for special magic_ names.
7045
7044
7046 - mainloop: added *two* local namespace parameters. This allows
7045 - mainloop: added *two* local namespace parameters. This allows
7047 the class to differentiate between parameters which were there
7046 the class to differentiate between parameters which were there
7048 before and after command line initialization was processed. This
7047 before and after command line initialization was processed. This
7049 way, later @who can show things loaded at startup by the
7048 way, later @who can show things loaded at startup by the
7050 user. This trick was necessary to make session saving/reloading
7049 user. This trick was necessary to make session saving/reloading
7051 really work: ideally after saving/exiting/reloading a session,
7050 really work: ideally after saving/exiting/reloading a session,
7052 *everything* should look the same, including the output of @who. I
7051 *everything* should look the same, including the output of @who. I
7053 was only able to make this work with this double namespace
7052 was only able to make this work with this double namespace
7054 trick.
7053 trick.
7055
7054
7056 - added a header to the logfile which allows (almost) full
7055 - added a header to the logfile which allows (almost) full
7057 session restoring.
7056 session restoring.
7058
7057
7059 - prepend lines beginning with @ or !, with a and log
7058 - prepend lines beginning with @ or !, with a and log
7060 them. Why? !lines: may be useful to know what you did @lines:
7059 them. Why? !lines: may be useful to know what you did @lines:
7061 they may affect session state. So when restoring a session, at
7060 they may affect session state. So when restoring a session, at
7062 least inform the user of their presence. I couldn't quite get
7061 least inform the user of their presence. I couldn't quite get
7063 them to properly re-execute, but at least the user is warned.
7062 them to properly re-execute, but at least the user is warned.
7064
7063
7065 * Started ChangeLog.
7064 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now