##// END OF EJS Templates
fix changelog
vivainio -
Show More
@@ -1,7218 +1,7223 b''
1 2007-16-6 Ville Vainio <vivainio@gmail.com>
1 2007-11-06 Ville Vainio <vivainio@gmail.com>
2
2
3 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
3 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
4 true. Closes #194.
4 true. Closes #194.
5
5
6 2007-11-01 Brian Granger <ellisonbg@gmail.com>
6 2007-11-01 Brian Granger <ellisonbg@gmail.com>
7
7
8 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
8 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
9 working with OS X 10.5 libedit implementation of readline.
9 working with OS X 10.5 libedit implementation of readline.
10
10
11 2007-10-24 Ville Vainio <vivainio@gmail.com>
11 2007-10-24 Ville Vainio <vivainio@gmail.com>
12
12
13 * iplib.py(user_setup): To route around buggy installations where
13 * iplib.py(user_setup): To route around buggy installations where
14 UserConfig is not available, create a minimal _ipython.
14 UserConfig is not available, create a minimal _ipython.
15
15
16 * iplib.py: Unicode fixes from Jorgen.
17
18 * genutils.py: Slist now has new method 'fields()' for extraction of
19 whitespace-separated fields from line-oriented data.
20
16 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
21 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
17
22
18 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
23 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
19 when querying objects with no __class__ attribute (such as
24 when querying objects with no __class__ attribute (such as
20 f2py-generated modules).
25 f2py-generated modules).
21
26
22 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
27 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
23
28
24 * IPython/Magic.py (magic_time): track compilation time and report
29 * IPython/Magic.py (magic_time): track compilation time and report
25 it if longer than 0.1s (fix done to %time and %timeit). After a
30 it if longer than 0.1s (fix done to %time and %timeit). After a
26 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
31 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
27
32
28 2007-09-18 Ville Vainio <vivainio@gmail.com>
33 2007-09-18 Ville Vainio <vivainio@gmail.com>
29
34
30 * genutils.py(make_quoted_expr): Do not use Itpl, it does
35 * genutils.py(make_quoted_expr): Do not use Itpl, it does
31 not support unicode at the moment. Fixes (many) magic calls with
36 not support unicode at the moment. Fixes (many) magic calls with
32 special characters.
37 special characters.
33
38
34 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
39 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
35
40
36 * IPython/genutils.py (doctest_reload): expose the doctest
41 * IPython/genutils.py (doctest_reload): expose the doctest
37 reloader to the user so that people can easily reset doctest while
42 reloader to the user so that people can easily reset doctest while
38 using it interactively. Fixes a problem reported by Jorgen.
43 using it interactively. Fixes a problem reported by Jorgen.
39
44
40 * IPython/iplib.py (InteractiveShell.__init__): protect the
45 * IPython/iplib.py (InteractiveShell.__init__): protect the
41 FakeModule instances used for __main__ in %run calls from
46 FakeModule instances used for __main__ in %run calls from
42 deletion, so that user code defined in them isn't left with
47 deletion, so that user code defined in them isn't left with
43 dangling references due to the Python module deletion machinery.
48 dangling references due to the Python module deletion machinery.
44 This should fix the problems reported by Darren.
49 This should fix the problems reported by Darren.
45
50
46 2007-09-10 Darren Dale <dd55@cornell.edu>
51 2007-09-10 Darren Dale <dd55@cornell.edu>
47
52
48 * Cleanup of IPShellQt and IPShellQt4
53 * Cleanup of IPShellQt and IPShellQt4
49
54
50 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
55 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
51
56
52 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
57 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
53 doctest support.
58 doctest support.
54
59
55 * IPython/iplib.py (safe_execfile): minor docstring improvements.
60 * IPython/iplib.py (safe_execfile): minor docstring improvements.
56
61
57 2007-09-08 Ville Vainio <vivainio@gmail.com>
62 2007-09-08 Ville Vainio <vivainio@gmail.com>
58
63
59 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
64 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
60 directory, not the target directory.
65 directory, not the target directory.
61
66
62 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
67 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
63 exception that won't print the tracebacks. Switched many magics to
68 exception that won't print the tracebacks. Switched many magics to
64 raise them on error situations, also GetoptError is not printed
69 raise them on error situations, also GetoptError is not printed
65 anymore.
70 anymore.
66
71
67 2007-09-07 Ville Vainio <vivainio@gmail.com>
72 2007-09-07 Ville Vainio <vivainio@gmail.com>
68
73
69 * iplib.py: do not auto-alias "dir", it screws up other dir auto
74 * iplib.py: do not auto-alias "dir", it screws up other dir auto
70 aliases.
75 aliases.
71
76
72 * genutils.py: SList.grep() implemented.
77 * genutils.py: SList.grep() implemented.
73
78
74 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
79 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
75 for easy "out of the box" setup of several common editors, so that
80 for easy "out of the box" setup of several common editors, so that
76 e.g. '%edit os.path.isfile' will jump to the correct line
81 e.g. '%edit os.path.isfile' will jump to the correct line
77 automatically. Contributions for command lines of your favourite
82 automatically. Contributions for command lines of your favourite
78 editors welcome.
83 editors welcome.
79
84
80 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
85 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
81
86
82 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
87 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
83 preventing source display in certain cases. In reality I think
88 preventing source display in certain cases. In reality I think
84 the problem is with Ubuntu's Python build, but this change works
89 the problem is with Ubuntu's Python build, but this change works
85 around the issue in some cases (not in all, unfortunately). I'd
90 around the issue in some cases (not in all, unfortunately). I'd
86 filed a Python bug on this with more details, but in the change of
91 filed a Python bug on this with more details, but in the change of
87 bug trackers it seems to have been lost.
92 bug trackers it seems to have been lost.
88
93
89 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
94 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
90 not the same, it's not self-documenting, doesn't allow range
95 not the same, it's not self-documenting, doesn't allow range
91 selection, and sorts alphabetically instead of numerically.
96 selection, and sorts alphabetically instead of numerically.
92 (magic_r): restore %r. No, "up + enter. One char magic" is not
97 (magic_r): restore %r. No, "up + enter. One char magic" is not
93 the same thing, since %r takes parameters to allow fast retrieval
98 the same thing, since %r takes parameters to allow fast retrieval
94 of old commands. I've received emails from users who use this a
99 of old commands. I've received emails from users who use this a
95 LOT, so it stays.
100 LOT, so it stays.
96 (magic_automagic): restore %automagic. "use _ip.option.automagic"
101 (magic_automagic): restore %automagic. "use _ip.option.automagic"
97 is not a valid replacement b/c it doesn't provide an complete
102 is not a valid replacement b/c it doesn't provide an complete
98 explanation (which the automagic docstring does).
103 explanation (which the automagic docstring does).
99 (magic_autocall): restore %autocall, with improved docstring.
104 (magic_autocall): restore %autocall, with improved docstring.
100 Same argument as for others, "use _ip.options.autocall" is not a
105 Same argument as for others, "use _ip.options.autocall" is not a
101 valid replacement.
106 valid replacement.
102 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
107 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
103 tutorials and online docs.
108 tutorials and online docs.
104
109
105 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
110 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
106
111
107 * IPython/usage.py (quick_reference): mention magics in quickref,
112 * IPython/usage.py (quick_reference): mention magics in quickref,
108 modified main banner to mention %quickref.
113 modified main banner to mention %quickref.
109
114
110 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
115 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
111
116
112 2007-09-06 Ville Vainio <vivainio@gmail.com>
117 2007-09-06 Ville Vainio <vivainio@gmail.com>
113
118
114 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
119 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
115 Callable aliases now pass the _ip as first arg. This breaks
120 Callable aliases now pass the _ip as first arg. This breaks
116 compatibility with earlier 0.8.2.svn series! (though they should
121 compatibility with earlier 0.8.2.svn series! (though they should
117 not have been in use yet outside these few extensions)
122 not have been in use yet outside these few extensions)
118
123
119 2007-09-05 Ville Vainio <vivainio@gmail.com>
124 2007-09-05 Ville Vainio <vivainio@gmail.com>
120
125
121 * external/mglob.py: expand('dirname') => ['dirname'], instead
126 * external/mglob.py: expand('dirname') => ['dirname'], instead
122 of ['dirname/foo','dirname/bar', ...].
127 of ['dirname/foo','dirname/bar', ...].
123
128
124 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
129 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
125 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
130 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
126 is useful for others as well).
131 is useful for others as well).
127
132
128 * iplib.py: on callable aliases (as opposed to old style aliases),
133 * iplib.py: on callable aliases (as opposed to old style aliases),
129 do var_expand() immediately, and use make_quoted_expr instead
134 do var_expand() immediately, and use make_quoted_expr instead
130 of hardcoded r"""
135 of hardcoded r"""
131
136
132 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
137 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
133 if not available load ipy_fsops.py for cp, mv, etc. replacements
138 if not available load ipy_fsops.py for cp, mv, etc. replacements
134
139
135 * OInspect.py, ipy_which.py: improve %which and obj? for callable
140 * OInspect.py, ipy_which.py: improve %which and obj? for callable
136 aliases
141 aliases
137
142
138 2007-09-04 Ville Vainio <vivainio@gmail.com>
143 2007-09-04 Ville Vainio <vivainio@gmail.com>
139
144
140 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
145 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
141 Relicensed under BSD with the authors approval.
146 Relicensed under BSD with the authors approval.
142
147
143 * ipmaker.py, usage.py: Remove %magic from default banner, improve
148 * ipmaker.py, usage.py: Remove %magic from default banner, improve
144 %quickref
149 %quickref
145
150
146 2007-09-03 Ville Vainio <vivainio@gmail.com>
151 2007-09-03 Ville Vainio <vivainio@gmail.com>
147
152
148 * Magic.py: %time now passes expression through prefilter,
153 * Magic.py: %time now passes expression through prefilter,
149 allowing IPython syntax.
154 allowing IPython syntax.
150
155
151 2007-09-01 Ville Vainio <vivainio@gmail.com>
156 2007-09-01 Ville Vainio <vivainio@gmail.com>
152
157
153 * ipmaker.py: Always show full traceback when newstyle config fails
158 * ipmaker.py: Always show full traceback when newstyle config fails
154
159
155 2007-08-27 Ville Vainio <vivainio@gmail.com>
160 2007-08-27 Ville Vainio <vivainio@gmail.com>
156
161
157 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
162 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
158
163
159 2007-08-26 Ville Vainio <vivainio@gmail.com>
164 2007-08-26 Ville Vainio <vivainio@gmail.com>
160
165
161 * ipmaker.py: Command line args have the highest priority again
166 * ipmaker.py: Command line args have the highest priority again
162
167
163 * iplib.py, ipmaker.py: -i command line argument now behaves as in
168 * iplib.py, ipmaker.py: -i command line argument now behaves as in
164 normal python, i.e. leaves the IPython session running after -c
169 normal python, i.e. leaves the IPython session running after -c
165 command or running a batch file from command line.
170 command or running a batch file from command line.
166
171
167 2007-08-22 Ville Vainio <vivainio@gmail.com>
172 2007-08-22 Ville Vainio <vivainio@gmail.com>
168
173
169 * iplib.py: no extra empty (last) line in raw hist w/ multiline
174 * iplib.py: no extra empty (last) line in raw hist w/ multiline
170 statements
175 statements
171
176
172 * logger.py: Fix bug where blank lines in history were not
177 * logger.py: Fix bug where blank lines in history were not
173 added until AFTER adding the current line; translated and raw
178 added until AFTER adding the current line; translated and raw
174 history should finally be in sync with prompt now.
179 history should finally be in sync with prompt now.
175
180
176 * ipy_completers.py: quick_completer now makes it easy to create
181 * ipy_completers.py: quick_completer now makes it easy to create
177 trivial custom completers
182 trivial custom completers
178
183
179 * clearcmd.py: shadow history compression & erasing, fixed input hist
184 * clearcmd.py: shadow history compression & erasing, fixed input hist
180 clearing.
185 clearing.
181
186
182 * envpersist.py, history.py: %env (sh profile only), %hist completers
187 * envpersist.py, history.py: %env (sh profile only), %hist completers
183
188
184 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
189 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
185 term title now include the drive letter, and always use / instead of
190 term title now include the drive letter, and always use / instead of
186 os.sep (as per recommended approach for win32 ipython in general).
191 os.sep (as per recommended approach for win32 ipython in general).
187
192
188 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
193 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
189 plain python scripts from ipykit command line by running
194 plain python scripts from ipykit command line by running
190 "py myscript.py", even w/o installed python.
195 "py myscript.py", even w/o installed python.
191
196
192 2007-08-21 Ville Vainio <vivainio@gmail.com>
197 2007-08-21 Ville Vainio <vivainio@gmail.com>
193
198
194 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
199 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
195 (for backwards compatibility)
200 (for backwards compatibility)
196
201
197 * history.py: switch back to %hist -t from %hist -r as default.
202 * history.py: switch back to %hist -t from %hist -r as default.
198 At least until raw history is fixed for good.
203 At least until raw history is fixed for good.
199
204
200 2007-08-20 Ville Vainio <vivainio@gmail.com>
205 2007-08-20 Ville Vainio <vivainio@gmail.com>
201
206
202 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
207 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
203 locate alias redeclarations etc. Also, avoid handling
208 locate alias redeclarations etc. Also, avoid handling
204 _ip.IP.alias_table directly, prefer using _ip.defalias.
209 _ip.IP.alias_table directly, prefer using _ip.defalias.
205
210
206
211
207 2007-08-15 Ville Vainio <vivainio@gmail.com>
212 2007-08-15 Ville Vainio <vivainio@gmail.com>
208
213
209 * prefilter.py: ! is now always served first
214 * prefilter.py: ! is now always served first
210
215
211 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
216 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
212
217
213 * IPython/iplib.py (safe_execfile): fix the SystemExit
218 * IPython/iplib.py (safe_execfile): fix the SystemExit
214 auto-suppression code to work in Python2.4 (the internal structure
219 auto-suppression code to work in Python2.4 (the internal structure
215 of that exception changed and I'd only tested the code with 2.5).
220 of that exception changed and I'd only tested the code with 2.5).
216 Bug reported by a SciPy attendee.
221 Bug reported by a SciPy attendee.
217
222
218 2007-08-13 Ville Vainio <vivainio@gmail.com>
223 2007-08-13 Ville Vainio <vivainio@gmail.com>
219
224
220 * prefilter.py: reverted !c:/bin/foo fix, made % in
225 * prefilter.py: reverted !c:/bin/foo fix, made % in
221 multiline specials work again
226 multiline specials work again
222
227
223 2007-08-13 Ville Vainio <vivainio@gmail.com>
228 2007-08-13 Ville Vainio <vivainio@gmail.com>
224
229
225 * prefilter.py: Take more care to special-case !, so that
230 * prefilter.py: Take more care to special-case !, so that
226 !c:/bin/foo.exe works.
231 !c:/bin/foo.exe works.
227
232
228 * setup.py: if we are building eggs, strip all docs and
233 * setup.py: if we are building eggs, strip all docs and
229 examples (it doesn't make sense to bytecompile examples,
234 examples (it doesn't make sense to bytecompile examples,
230 and docs would be in an awkward place anyway).
235 and docs would be in an awkward place anyway).
231
236
232 * Ryan Krauss' patch fixes start menu shortcuts when IPython
237 * Ryan Krauss' patch fixes start menu shortcuts when IPython
233 is installed into a directory that has spaces in the name.
238 is installed into a directory that has spaces in the name.
234
239
235 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
240 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
236
241
237 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
242 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
238 doctest profile and %doctest_mode, so they actually generate the
243 doctest profile and %doctest_mode, so they actually generate the
239 blank lines needed by doctest to separate individual tests.
244 blank lines needed by doctest to separate individual tests.
240
245
241 * IPython/iplib.py (safe_execfile): modify so that running code
246 * IPython/iplib.py (safe_execfile): modify so that running code
242 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
247 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
243 doesn't get a printed traceback. Any other value in sys.exit(),
248 doesn't get a printed traceback. Any other value in sys.exit(),
244 including the empty call, still generates a traceback. This
249 including the empty call, still generates a traceback. This
245 enables use of %run without having to pass '-e' for codes that
250 enables use of %run without having to pass '-e' for codes that
246 correctly set the exit status flag.
251 correctly set the exit status flag.
247
252
248 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
253 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
249
254
250 * IPython/iplib.py (InteractiveShell.post_config_initialization):
255 * IPython/iplib.py (InteractiveShell.post_config_initialization):
251 fix problems with doctests failing when run inside IPython due to
256 fix problems with doctests failing when run inside IPython due to
252 IPython's modifications of sys.displayhook.
257 IPython's modifications of sys.displayhook.
253
258
254 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
259 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
255
260
256 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
261 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
257 a string with names.
262 a string with names.
258
263
259 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
264 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
260
265
261 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
266 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
262 magic to toggle on/off the doctest pasting support without having
267 magic to toggle on/off the doctest pasting support without having
263 to leave a session to switch to a separate profile.
268 to leave a session to switch to a separate profile.
264
269
265 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
270 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
266
271
267 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
272 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
268 introduce a blank line between inputs, to conform to doctest
273 introduce a blank line between inputs, to conform to doctest
269 requirements.
274 requirements.
270
275
271 * IPython/OInspect.py (Inspector.pinfo): fix another part where
276 * IPython/OInspect.py (Inspector.pinfo): fix another part where
272 auto-generated docstrings for new-style classes were showing up.
277 auto-generated docstrings for new-style classes were showing up.
273
278
274 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
279 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
275
280
276 * api_changes: Add new file to track backward-incompatible
281 * api_changes: Add new file to track backward-incompatible
277 user-visible changes.
282 user-visible changes.
278
283
279 2007-08-06 Ville Vainio <vivainio@gmail.com>
284 2007-08-06 Ville Vainio <vivainio@gmail.com>
280
285
281 * ipmaker.py: fix bug where user_config_ns didn't exist at all
286 * ipmaker.py: fix bug where user_config_ns didn't exist at all
282 before all the config files were handled.
287 before all the config files were handled.
283
288
284 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
289 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
285
290
286 * IPython/irunner.py (RunnerFactory): Add new factory class for
291 * IPython/irunner.py (RunnerFactory): Add new factory class for
287 creating reusable runners based on filenames.
292 creating reusable runners based on filenames.
288
293
289 * IPython/Extensions/ipy_profile_doctest.py: New profile for
294 * IPython/Extensions/ipy_profile_doctest.py: New profile for
290 doctest support. It sets prompts/exceptions as similar to
295 doctest support. It sets prompts/exceptions as similar to
291 standard Python as possible, so that ipython sessions in this
296 standard Python as possible, so that ipython sessions in this
292 profile can be easily pasted as doctests with minimal
297 profile can be easily pasted as doctests with minimal
293 modifications. It also enables pasting of doctests from external
298 modifications. It also enables pasting of doctests from external
294 sources (even if they have leading whitespace), so that you can
299 sources (even if they have leading whitespace), so that you can
295 rerun doctests from existing sources.
300 rerun doctests from existing sources.
296
301
297 * IPython/iplib.py (_prefilter): fix a buglet where after entering
302 * IPython/iplib.py (_prefilter): fix a buglet where after entering
298 some whitespace, the prompt would become a continuation prompt
303 some whitespace, the prompt would become a continuation prompt
299 with no way of exiting it other than Ctrl-C. This fix brings us
304 with no way of exiting it other than Ctrl-C. This fix brings us
300 into conformity with how the default python prompt works.
305 into conformity with how the default python prompt works.
301
306
302 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
307 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
303 Add support for pasting not only lines that start with '>>>', but
308 Add support for pasting not only lines that start with '>>>', but
304 also with ' >>>'. That is, arbitrary whitespace can now precede
309 also with ' >>>'. That is, arbitrary whitespace can now precede
305 the prompts. This makes the system useful for pasting doctests
310 the prompts. This makes the system useful for pasting doctests
306 from docstrings back into a normal session.
311 from docstrings back into a normal session.
307
312
308 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
313 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
309
314
310 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
315 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
311 r1357, which had killed multiple invocations of an embedded
316 r1357, which had killed multiple invocations of an embedded
312 ipython (this means that example-embed has been broken for over 1
317 ipython (this means that example-embed has been broken for over 1
313 year!!!). Rather than possibly breaking the batch stuff for which
318 year!!!). Rather than possibly breaking the batch stuff for which
314 the code in iplib.py/interact was introduced, I worked around the
319 the code in iplib.py/interact was introduced, I worked around the
315 problem in the embedding class in Shell.py. We really need a
320 problem in the embedding class in Shell.py. We really need a
316 bloody test suite for this code, I'm sick of finding stuff that
321 bloody test suite for this code, I'm sick of finding stuff that
317 used to work breaking left and right every time I use an old
322 used to work breaking left and right every time I use an old
318 feature I hadn't touched in a few months.
323 feature I hadn't touched in a few months.
319 (kill_embedded): Add a new magic that only shows up in embedded
324 (kill_embedded): Add a new magic that only shows up in embedded
320 mode, to allow users to permanently deactivate an embedded instance.
325 mode, to allow users to permanently deactivate an embedded instance.
321
326
322 2007-08-01 Ville Vainio <vivainio@gmail.com>
327 2007-08-01 Ville Vainio <vivainio@gmail.com>
323
328
324 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
329 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
325 history gets out of sync on runlines (e.g. when running macros).
330 history gets out of sync on runlines (e.g. when running macros).
326
331
327 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
332 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
328
333
329 * IPython/Magic.py (magic_colors): fix win32-related error message
334 * IPython/Magic.py (magic_colors): fix win32-related error message
330 that could appear under *nix when readline was missing. Patch by
335 that could appear under *nix when readline was missing. Patch by
331 Scott Jackson, closes #175.
336 Scott Jackson, closes #175.
332
337
333 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
338 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
334
339
335 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
340 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
336 completer that it traits-aware, so that traits objects don't show
341 completer that it traits-aware, so that traits objects don't show
337 all of their internal attributes all the time.
342 all of their internal attributes all the time.
338
343
339 * IPython/genutils.py (dir2): moved this code from inside
344 * IPython/genutils.py (dir2): moved this code from inside
340 completer.py to expose it publicly, so I could use it in the
345 completer.py to expose it publicly, so I could use it in the
341 wildcards bugfix.
346 wildcards bugfix.
342
347
343 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
348 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
344 Stefan with Traits.
349 Stefan with Traits.
345
350
346 * IPython/completer.py (Completer.attr_matches): change internal
351 * IPython/completer.py (Completer.attr_matches): change internal
347 var name from 'object' to 'obj', since 'object' is now a builtin
352 var name from 'object' to 'obj', since 'object' is now a builtin
348 and this can lead to weird bugs if reusing this code elsewhere.
353 and this can lead to weird bugs if reusing this code elsewhere.
349
354
350 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
355 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
351
356
352 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
357 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
353 'foo?' and update the code to prevent printing of default
358 'foo?' and update the code to prevent printing of default
354 docstrings that started appearing after I added support for
359 docstrings that started appearing after I added support for
355 new-style classes. The approach I'm using isn't ideal (I just
360 new-style classes. The approach I'm using isn't ideal (I just
356 special-case those strings) but I'm not sure how to more robustly
361 special-case those strings) but I'm not sure how to more robustly
357 differentiate between truly user-written strings and Python's
362 differentiate between truly user-written strings and Python's
358 automatic ones.
363 automatic ones.
359
364
360 2007-07-09 Ville Vainio <vivainio@gmail.com>
365 2007-07-09 Ville Vainio <vivainio@gmail.com>
361
366
362 * completer.py: Applied Matthew Neeley's patch:
367 * completer.py: Applied Matthew Neeley's patch:
363 Dynamic attributes from trait_names and _getAttributeNames are added
368 Dynamic attributes from trait_names and _getAttributeNames are added
364 to the list of tab completions, but when this happens, the attribute
369 to the list of tab completions, but when this happens, the attribute
365 list is turned into a set, so the attributes are unordered when
370 list is turned into a set, so the attributes are unordered when
366 printed, which makes it hard to find the right completion. This patch
371 printed, which makes it hard to find the right completion. This patch
367 turns this set back into a list and sort it.
372 turns this set back into a list and sort it.
368
373
369 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
374 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
370
375
371 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
376 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
372 classes in various inspector functions.
377 classes in various inspector functions.
373
378
374 2007-06-28 Ville Vainio <vivainio@gmail.com>
379 2007-06-28 Ville Vainio <vivainio@gmail.com>
375
380
376 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
381 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
377 Implement "shadow" namespace, and callable aliases that reside there.
382 Implement "shadow" namespace, and callable aliases that reside there.
378 Use them by:
383 Use them by:
379
384
380 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
385 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
381
386
382 foo hello world
387 foo hello world
383 (gets translated to:)
388 (gets translated to:)
384 _sh.foo(r"""hello world""")
389 _sh.foo(r"""hello world""")
385
390
386 In practice, this kind of alias can take the role of a magic function
391 In practice, this kind of alias can take the role of a magic function
387
392
388 * New generic inspect_object, called on obj? and obj??
393 * New generic inspect_object, called on obj? and obj??
389
394
390 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
395 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
391
396
392 * IPython/ultraTB.py (findsource): fix a problem with
397 * IPython/ultraTB.py (findsource): fix a problem with
393 inspect.getfile that can cause crashes during traceback construction.
398 inspect.getfile that can cause crashes during traceback construction.
394
399
395 2007-06-14 Ville Vainio <vivainio@gmail.com>
400 2007-06-14 Ville Vainio <vivainio@gmail.com>
396
401
397 * iplib.py (handle_auto): Try to use ascii for printing "--->"
402 * iplib.py (handle_auto): Try to use ascii for printing "--->"
398 autocall rewrite indication, becausesometimes unicode fails to print
403 autocall rewrite indication, becausesometimes unicode fails to print
399 properly (and you get ' - - - '). Use plain uncoloured ---> for
404 properly (and you get ' - - - '). Use plain uncoloured ---> for
400 unicode.
405 unicode.
401
406
402 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
407 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
403
408
404 . pickleshare 'hash' commands (hget, hset, hcompress,
409 . pickleshare 'hash' commands (hget, hset, hcompress,
405 hdict) for efficient shadow history storage.
410 hdict) for efficient shadow history storage.
406
411
407 2007-06-13 Ville Vainio <vivainio@gmail.com>
412 2007-06-13 Ville Vainio <vivainio@gmail.com>
408
413
409 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
414 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
410 Added kw arg 'interactive', tell whether vars should be visible
415 Added kw arg 'interactive', tell whether vars should be visible
411 with %whos.
416 with %whos.
412
417
413 2007-06-11 Ville Vainio <vivainio@gmail.com>
418 2007-06-11 Ville Vainio <vivainio@gmail.com>
414
419
415 * pspersistence.py, Magic.py, iplib.py: directory history now saved
420 * pspersistence.py, Magic.py, iplib.py: directory history now saved
416 to db
421 to db
417
422
418 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
423 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
419 Also, it exits IPython immediately after evaluating the command (just like
424 Also, it exits IPython immediately after evaluating the command (just like
420 std python)
425 std python)
421
426
422 2007-06-05 Walter Doerwald <walter@livinglogic.de>
427 2007-06-05 Walter Doerwald <walter@livinglogic.de>
423
428
424 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
429 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
425 Python string and captures the output. (Idea and original patch by
430 Python string and captures the output. (Idea and original patch by
426 Stefan van der Walt)
431 Stefan van der Walt)
427
432
428 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
433 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
429
434
430 * IPython/ultraTB.py (VerboseTB.text): update printing of
435 * IPython/ultraTB.py (VerboseTB.text): update printing of
431 exception types for Python 2.5 (now all exceptions in the stdlib
436 exception types for Python 2.5 (now all exceptions in the stdlib
432 are new-style classes).
437 are new-style classes).
433
438
434 2007-05-31 Walter Doerwald <walter@livinglogic.de>
439 2007-05-31 Walter Doerwald <walter@livinglogic.de>
435
440
436 * IPython/Extensions/igrid.py: Add new commands refresh and
441 * IPython/Extensions/igrid.py: Add new commands refresh and
437 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
442 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
438 the iterator once (refresh) or after every x seconds (refresh_timer).
443 the iterator once (refresh) or after every x seconds (refresh_timer).
439 Add a working implementation of "searchexpression", where the text
444 Add a working implementation of "searchexpression", where the text
440 entered is not the text to search for, but an expression that must
445 entered is not the text to search for, but an expression that must
441 be true. Added display of shortcuts to the menu. Added commands "pickinput"
446 be true. Added display of shortcuts to the menu. Added commands "pickinput"
442 and "pickinputattr" that put the object or attribute under the cursor
447 and "pickinputattr" that put the object or attribute under the cursor
443 in the input line. Split the statusbar to be able to display the currently
448 in the input line. Split the statusbar to be able to display the currently
444 active refresh interval. (Patch by Nik Tautenhahn)
449 active refresh interval. (Patch by Nik Tautenhahn)
445
450
446 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
451 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
447
452
448 * fixing set_term_title to use ctypes as default
453 * fixing set_term_title to use ctypes as default
449
454
450 * fixing set_term_title fallback to work when curent dir
455 * fixing set_term_title fallback to work when curent dir
451 is on a windows network share
456 is on a windows network share
452
457
453 2007-05-28 Ville Vainio <vivainio@gmail.com>
458 2007-05-28 Ville Vainio <vivainio@gmail.com>
454
459
455 * %cpaste: strip + with > from left (diffs).
460 * %cpaste: strip + with > from left (diffs).
456
461
457 * iplib.py: Fix crash when readline not installed
462 * iplib.py: Fix crash when readline not installed
458
463
459 2007-05-26 Ville Vainio <vivainio@gmail.com>
464 2007-05-26 Ville Vainio <vivainio@gmail.com>
460
465
461 * generics.py: intruduce easy to extend result_display generic
466 * generics.py: intruduce easy to extend result_display generic
462 function (using simplegeneric.py).
467 function (using simplegeneric.py).
463
468
464 * Fixed the append functionality of %set.
469 * Fixed the append functionality of %set.
465
470
466 2007-05-25 Ville Vainio <vivainio@gmail.com>
471 2007-05-25 Ville Vainio <vivainio@gmail.com>
467
472
468 * New magic: %rep (fetch / run old commands from history)
473 * New magic: %rep (fetch / run old commands from history)
469
474
470 * New extension: mglob (%mglob magic), for powerful glob / find /filter
475 * New extension: mglob (%mglob magic), for powerful glob / find /filter
471 like functionality
476 like functionality
472
477
473 % maghistory.py: %hist -g PATTERM greps the history for pattern
478 % maghistory.py: %hist -g PATTERM greps the history for pattern
474
479
475 2007-05-24 Walter Doerwald <walter@livinglogic.de>
480 2007-05-24 Walter Doerwald <walter@livinglogic.de>
476
481
477 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
482 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
478 browse the IPython input history
483 browse the IPython input history
479
484
480 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
485 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
481 (mapped to "i") can be used to put the object under the curser in the input
486 (mapped to "i") can be used to put the object under the curser in the input
482 line. pickinputattr (mapped to "I") does the same for the attribute under
487 line. pickinputattr (mapped to "I") does the same for the attribute under
483 the cursor.
488 the cursor.
484
489
485 2007-05-24 Ville Vainio <vivainio@gmail.com>
490 2007-05-24 Ville Vainio <vivainio@gmail.com>
486
491
487 * Grand magic cleansing (changeset [2380]):
492 * Grand magic cleansing (changeset [2380]):
488
493
489 * Introduce ipy_legacy.py where the following magics were
494 * Introduce ipy_legacy.py where the following magics were
490 moved:
495 moved:
491
496
492 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
497 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
493
498
494 If you need them, either use default profile or "import ipy_legacy"
499 If you need them, either use default profile or "import ipy_legacy"
495 in your ipy_user_conf.py
500 in your ipy_user_conf.py
496
501
497 * Move sh and scipy profile to Extensions from UserConfig. this implies
502 * Move sh and scipy profile to Extensions from UserConfig. this implies
498 you should not edit them, but you don't need to run %upgrade when
503 you should not edit them, but you don't need to run %upgrade when
499 upgrading IPython anymore.
504 upgrading IPython anymore.
500
505
501 * %hist/%history now operates in "raw" mode by default. To get the old
506 * %hist/%history now operates in "raw" mode by default. To get the old
502 behaviour, run '%hist -n' (native mode).
507 behaviour, run '%hist -n' (native mode).
503
508
504 * split ipy_stock_completers.py to ipy_stock_completers.py and
509 * split ipy_stock_completers.py to ipy_stock_completers.py and
505 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
510 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
506 installed as default.
511 installed as default.
507
512
508 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
513 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
509 handling.
514 handling.
510
515
511 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
516 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
512 input if readline is available.
517 input if readline is available.
513
518
514 2007-05-23 Ville Vainio <vivainio@gmail.com>
519 2007-05-23 Ville Vainio <vivainio@gmail.com>
515
520
516 * macro.py: %store uses __getstate__ properly
521 * macro.py: %store uses __getstate__ properly
517
522
518 * exesetup.py: added new setup script for creating
523 * exesetup.py: added new setup script for creating
519 standalone IPython executables with py2exe (i.e.
524 standalone IPython executables with py2exe (i.e.
520 no python installation required).
525 no python installation required).
521
526
522 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
527 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
523 its place.
528 its place.
524
529
525 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
530 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
526
531
527 2007-05-21 Ville Vainio <vivainio@gmail.com>
532 2007-05-21 Ville Vainio <vivainio@gmail.com>
528
533
529 * platutil_win32.py (set_term_title): handle
534 * platutil_win32.py (set_term_title): handle
530 failure of 'title' system call properly.
535 failure of 'title' system call properly.
531
536
532 2007-05-17 Walter Doerwald <walter@livinglogic.de>
537 2007-05-17 Walter Doerwald <walter@livinglogic.de>
533
538
534 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
539 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
535 (Bug detected by Paul Mueller).
540 (Bug detected by Paul Mueller).
536
541
537 2007-05-16 Ville Vainio <vivainio@gmail.com>
542 2007-05-16 Ville Vainio <vivainio@gmail.com>
538
543
539 * ipy_profile_sci.py, ipython_win_post_install.py: Create
544 * ipy_profile_sci.py, ipython_win_post_install.py: Create
540 new "sci" profile, effectively a modern version of the old
545 new "sci" profile, effectively a modern version of the old
541 "scipy" profile (which is now slated for deprecation).
546 "scipy" profile (which is now slated for deprecation).
542
547
543 2007-05-15 Ville Vainio <vivainio@gmail.com>
548 2007-05-15 Ville Vainio <vivainio@gmail.com>
544
549
545 * pycolorize.py, pycolor.1: Paul Mueller's patches that
550 * pycolorize.py, pycolor.1: Paul Mueller's patches that
546 make pycolorize read input from stdin when run without arguments.
551 make pycolorize read input from stdin when run without arguments.
547
552
548 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
553 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
549
554
550 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
555 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
551 it in sh profile (instead of ipy_system_conf.py).
556 it in sh profile (instead of ipy_system_conf.py).
552
557
553 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
558 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
554 aliases are now lower case on windows (MyCommand.exe => mycommand).
559 aliases are now lower case on windows (MyCommand.exe => mycommand).
555
560
556 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
561 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
557 Macros are now callable objects that inherit from ipapi.IPyAutocall,
562 Macros are now callable objects that inherit from ipapi.IPyAutocall,
558 i.e. get autocalled regardless of system autocall setting.
563 i.e. get autocalled regardless of system autocall setting.
559
564
560 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
565 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
561
566
562 * IPython/rlineimpl.py: check for clear_history in readline and
567 * IPython/rlineimpl.py: check for clear_history in readline and
563 make it a dummy no-op if not available. This function isn't
568 make it a dummy no-op if not available. This function isn't
564 guaranteed to be in the API and appeared in Python 2.4, so we need
569 guaranteed to be in the API and appeared in Python 2.4, so we need
565 to check it ourselves. Also, clean up this file quite a bit.
570 to check it ourselves. Also, clean up this file quite a bit.
566
571
567 * ipython.1: update man page and full manual with information
572 * ipython.1: update man page and full manual with information
568 about threads (remove outdated warning). Closes #151.
573 about threads (remove outdated warning). Closes #151.
569
574
570 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
575 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
571
576
572 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
577 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
573 in trunk (note that this made it into the 0.8.1 release already,
578 in trunk (note that this made it into the 0.8.1 release already,
574 but the changelogs didn't get coordinated). Many thanks to Gael
579 but the changelogs didn't get coordinated). Many thanks to Gael
575 Varoquaux <gael.varoquaux-AT-normalesup.org>
580 Varoquaux <gael.varoquaux-AT-normalesup.org>
576
581
577 2007-05-09 *** Released version 0.8.1
582 2007-05-09 *** Released version 0.8.1
578
583
579 2007-05-10 Walter Doerwald <walter@livinglogic.de>
584 2007-05-10 Walter Doerwald <walter@livinglogic.de>
580
585
581 * IPython/Extensions/igrid.py: Incorporate html help into
586 * IPython/Extensions/igrid.py: Incorporate html help into
582 the module, so we don't have to search for the file.
587 the module, so we don't have to search for the file.
583
588
584 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
589 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
585
590
586 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
591 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
587
592
588 2007-04-30 Ville Vainio <vivainio@gmail.com>
593 2007-04-30 Ville Vainio <vivainio@gmail.com>
589
594
590 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
595 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
591 user has illegal (non-ascii) home directory name
596 user has illegal (non-ascii) home directory name
592
597
593 2007-04-27 Ville Vainio <vivainio@gmail.com>
598 2007-04-27 Ville Vainio <vivainio@gmail.com>
594
599
595 * platutils_win32.py: implement set_term_title for windows
600 * platutils_win32.py: implement set_term_title for windows
596
601
597 * Update version number
602 * Update version number
598
603
599 * ipy_profile_sh.py: more informative prompt (2 dir levels)
604 * ipy_profile_sh.py: more informative prompt (2 dir levels)
600
605
601 2007-04-26 Walter Doerwald <walter@livinglogic.de>
606 2007-04-26 Walter Doerwald <walter@livinglogic.de>
602
607
603 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
608 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
604 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
609 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
605 bug discovered by Ville).
610 bug discovered by Ville).
606
611
607 2007-04-26 Ville Vainio <vivainio@gmail.com>
612 2007-04-26 Ville Vainio <vivainio@gmail.com>
608
613
609 * Extensions/ipy_completers.py: Olivier's module completer now
614 * Extensions/ipy_completers.py: Olivier's module completer now
610 saves the list of root modules if it takes > 4 secs on the first run.
615 saves the list of root modules if it takes > 4 secs on the first run.
611
616
612 * Magic.py (%rehashx): %rehashx now clears the completer cache
617 * Magic.py (%rehashx): %rehashx now clears the completer cache
613
618
614
619
615 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
620 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
616
621
617 * ipython.el: fix incorrect color scheme, reported by Stefan.
622 * ipython.el: fix incorrect color scheme, reported by Stefan.
618 Closes #149.
623 Closes #149.
619
624
620 * IPython/PyColorize.py (Parser.format2): fix state-handling
625 * IPython/PyColorize.py (Parser.format2): fix state-handling
621 logic. I still don't like how that code handles state, but at
626 logic. I still don't like how that code handles state, but at
622 least now it should be correct, if inelegant. Closes #146.
627 least now it should be correct, if inelegant. Closes #146.
623
628
624 2007-04-25 Ville Vainio <vivainio@gmail.com>
629 2007-04-25 Ville Vainio <vivainio@gmail.com>
625
630
626 * Extensions/ipy_which.py: added extension for %which magic, works
631 * Extensions/ipy_which.py: added extension for %which magic, works
627 a lot like unix 'which' but also finds and expands aliases, and
632 a lot like unix 'which' but also finds and expands aliases, and
628 allows wildcards.
633 allows wildcards.
629
634
630 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
635 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
631 as opposed to returning nothing.
636 as opposed to returning nothing.
632
637
633 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
638 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
634 ipy_stock_completers on default profile, do import on sh profile.
639 ipy_stock_completers on default profile, do import on sh profile.
635
640
636 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
641 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
637
642
638 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
643 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
639 like ipython.py foo.py which raised a IndexError.
644 like ipython.py foo.py which raised a IndexError.
640
645
641 2007-04-21 Ville Vainio <vivainio@gmail.com>
646 2007-04-21 Ville Vainio <vivainio@gmail.com>
642
647
643 * Extensions/ipy_extutil.py: added extension to manage other ipython
648 * Extensions/ipy_extutil.py: added extension to manage other ipython
644 extensions. Now only supports 'ls' == list extensions.
649 extensions. Now only supports 'ls' == list extensions.
645
650
646 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
651 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
647
652
648 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
653 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
649 would prevent use of the exception system outside of a running
654 would prevent use of the exception system outside of a running
650 IPython instance.
655 IPython instance.
651
656
652 2007-04-20 Ville Vainio <vivainio@gmail.com>
657 2007-04-20 Ville Vainio <vivainio@gmail.com>
653
658
654 * Extensions/ipy_render.py: added extension for easy
659 * Extensions/ipy_render.py: added extension for easy
655 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
660 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
656 'Iptl' template notation,
661 'Iptl' template notation,
657
662
658 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
663 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
659 safer & faster 'import' completer.
664 safer & faster 'import' completer.
660
665
661 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
666 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
662 and _ip.defalias(name, command).
667 and _ip.defalias(name, command).
663
668
664 * Extensions/ipy_exportdb.py: New extension for exporting all the
669 * Extensions/ipy_exportdb.py: New extension for exporting all the
665 %store'd data in a portable format (normal ipapi calls like
670 %store'd data in a portable format (normal ipapi calls like
666 defmacro() etc.)
671 defmacro() etc.)
667
672
668 2007-04-19 Ville Vainio <vivainio@gmail.com>
673 2007-04-19 Ville Vainio <vivainio@gmail.com>
669
674
670 * upgrade_dir.py: skip junk files like *.pyc
675 * upgrade_dir.py: skip junk files like *.pyc
671
676
672 * Release.py: version number to 0.8.1
677 * Release.py: version number to 0.8.1
673
678
674 2007-04-18 Ville Vainio <vivainio@gmail.com>
679 2007-04-18 Ville Vainio <vivainio@gmail.com>
675
680
676 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
681 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
677 and later on win32.
682 and later on win32.
678
683
679 2007-04-16 Ville Vainio <vivainio@gmail.com>
684 2007-04-16 Ville Vainio <vivainio@gmail.com>
680
685
681 * iplib.py (showtraceback): Do not crash when running w/o readline.
686 * iplib.py (showtraceback): Do not crash when running w/o readline.
682
687
683 2007-04-12 Walter Doerwald <walter@livinglogic.de>
688 2007-04-12 Walter Doerwald <walter@livinglogic.de>
684
689
685 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
690 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
686 sorted (case sensitive with files and dirs mixed).
691 sorted (case sensitive with files and dirs mixed).
687
692
688 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
693 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
689
694
690 * IPython/Release.py (version): Open trunk for 0.8.1 development.
695 * IPython/Release.py (version): Open trunk for 0.8.1 development.
691
696
692 2007-04-10 *** Released version 0.8.0
697 2007-04-10 *** Released version 0.8.0
693
698
694 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
699 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
695
700
696 * Tag 0.8.0 for release.
701 * Tag 0.8.0 for release.
697
702
698 * IPython/iplib.py (reloadhist): add API function to cleanly
703 * IPython/iplib.py (reloadhist): add API function to cleanly
699 reload the readline history, which was growing inappropriately on
704 reload the readline history, which was growing inappropriately on
700 every %run call.
705 every %run call.
701
706
702 * win32_manual_post_install.py (run): apply last part of Nicolas
707 * win32_manual_post_install.py (run): apply last part of Nicolas
703 Pernetty's patch (I'd accidentally applied it in a different
708 Pernetty's patch (I'd accidentally applied it in a different
704 directory and this particular file didn't get patched).
709 directory and this particular file didn't get patched).
705
710
706 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
711 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
707
712
708 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
713 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
709 find the main thread id and use the proper API call. Thanks to
714 find the main thread id and use the proper API call. Thanks to
710 Stefan for the fix.
715 Stefan for the fix.
711
716
712 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
717 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
713 unit tests to reflect fixed ticket #52, and add more tests sent by
718 unit tests to reflect fixed ticket #52, and add more tests sent by
714 him.
719 him.
715
720
716 * IPython/iplib.py (raw_input): restore the readline completer
721 * IPython/iplib.py (raw_input): restore the readline completer
717 state on every input, in case third-party code messed it up.
722 state on every input, in case third-party code messed it up.
718 (_prefilter): revert recent addition of early-escape checks which
723 (_prefilter): revert recent addition of early-escape checks which
719 prevent many valid alias calls from working.
724 prevent many valid alias calls from working.
720
725
721 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
726 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
722 flag for sigint handler so we don't run a full signal() call on
727 flag for sigint handler so we don't run a full signal() call on
723 each runcode access.
728 each runcode access.
724
729
725 * IPython/Magic.py (magic_whos): small improvement to diagnostic
730 * IPython/Magic.py (magic_whos): small improvement to diagnostic
726 message.
731 message.
727
732
728 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
733 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
729
734
730 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
735 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
731 asynchronous exceptions working, i.e., Ctrl-C can actually
736 asynchronous exceptions working, i.e., Ctrl-C can actually
732 interrupt long-running code in the multithreaded shells.
737 interrupt long-running code in the multithreaded shells.
733
738
734 This is using Tomer Filiba's great ctypes-based trick:
739 This is using Tomer Filiba's great ctypes-based trick:
735 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
740 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
736 this in the past, but hadn't been able to make it work before. So
741 this in the past, but hadn't been able to make it work before. So
737 far it looks like it's actually running, but this needs more
742 far it looks like it's actually running, but this needs more
738 testing. If it really works, I'll be *very* happy, and we'll owe
743 testing. If it really works, I'll be *very* happy, and we'll owe
739 a huge thank you to Tomer. My current implementation is ugly,
744 a huge thank you to Tomer. My current implementation is ugly,
740 hackish and uses nasty globals, but I don't want to try and clean
745 hackish and uses nasty globals, but I don't want to try and clean
741 anything up until we know if it actually works.
746 anything up until we know if it actually works.
742
747
743 NOTE: this feature needs ctypes to work. ctypes is included in
748 NOTE: this feature needs ctypes to work. ctypes is included in
744 Python2.5, but 2.4 users will need to manually install it. This
749 Python2.5, but 2.4 users will need to manually install it. This
745 feature makes multi-threaded shells so much more usable that it's
750 feature makes multi-threaded shells so much more usable that it's
746 a minor price to pay (ctypes is very easy to install, already a
751 a minor price to pay (ctypes is very easy to install, already a
747 requirement for win32 and available in major linux distros).
752 requirement for win32 and available in major linux distros).
748
753
749 2007-04-04 Ville Vainio <vivainio@gmail.com>
754 2007-04-04 Ville Vainio <vivainio@gmail.com>
750
755
751 * Extensions/ipy_completers.py, ipy_stock_completers.py:
756 * Extensions/ipy_completers.py, ipy_stock_completers.py:
752 Moved implementations of 'bundled' completers to ipy_completers.py,
757 Moved implementations of 'bundled' completers to ipy_completers.py,
753 they are only enabled in ipy_stock_completers.py.
758 they are only enabled in ipy_stock_completers.py.
754
759
755 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
760 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
756
761
757 * IPython/PyColorize.py (Parser.format2): Fix identation of
762 * IPython/PyColorize.py (Parser.format2): Fix identation of
758 colorzied output and return early if color scheme is NoColor, to
763 colorzied output and return early if color scheme is NoColor, to
759 avoid unnecessary and expensive tokenization. Closes #131.
764 avoid unnecessary and expensive tokenization. Closes #131.
760
765
761 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
766 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
762
767
763 * IPython/Debugger.py: disable the use of pydb version 1.17. It
768 * IPython/Debugger.py: disable the use of pydb version 1.17. It
764 has a critical bug (a missing import that makes post-mortem not
769 has a critical bug (a missing import that makes post-mortem not
765 work at all). Unfortunately as of this time, this is the version
770 work at all). Unfortunately as of this time, this is the version
766 shipped with Ubuntu Edgy, so quite a few people have this one. I
771 shipped with Ubuntu Edgy, so quite a few people have this one. I
767 hope Edgy will update to a more recent package.
772 hope Edgy will update to a more recent package.
768
773
769 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
774 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
770
775
771 * IPython/iplib.py (_prefilter): close #52, second part of a patch
776 * IPython/iplib.py (_prefilter): close #52, second part of a patch
772 set by Stefan (only the first part had been applied before).
777 set by Stefan (only the first part had been applied before).
773
778
774 * IPython/Extensions/ipy_stock_completers.py (module_completer):
779 * IPython/Extensions/ipy_stock_completers.py (module_completer):
775 remove usage of the dangerous pkgutil.walk_packages(). See
780 remove usage of the dangerous pkgutil.walk_packages(). See
776 details in comments left in the code.
781 details in comments left in the code.
777
782
778 * IPython/Magic.py (magic_whos): add support for numpy arrays
783 * IPython/Magic.py (magic_whos): add support for numpy arrays
779 similar to what we had for Numeric.
784 similar to what we had for Numeric.
780
785
781 * IPython/completer.py (IPCompleter.complete): extend the
786 * IPython/completer.py (IPCompleter.complete): extend the
782 complete() call API to support completions by other mechanisms
787 complete() call API to support completions by other mechanisms
783 than readline. Closes #109.
788 than readline. Closes #109.
784
789
785 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
790 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
786 protect against a bug in Python's execfile(). Closes #123.
791 protect against a bug in Python's execfile(). Closes #123.
787
792
788 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
793 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
789
794
790 * IPython/iplib.py (split_user_input): ensure that when splitting
795 * IPython/iplib.py (split_user_input): ensure that when splitting
791 user input, the part that can be treated as a python name is pure
796 user input, the part that can be treated as a python name is pure
792 ascii (Python identifiers MUST be pure ascii). Part of the
797 ascii (Python identifiers MUST be pure ascii). Part of the
793 ongoing Unicode support work.
798 ongoing Unicode support work.
794
799
795 * IPython/Prompts.py (prompt_specials_color): Add \N for the
800 * IPython/Prompts.py (prompt_specials_color): Add \N for the
796 actual prompt number, without any coloring. This allows users to
801 actual prompt number, without any coloring. This allows users to
797 produce numbered prompts with their own colors. Added after a
802 produce numbered prompts with their own colors. Added after a
798 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
803 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
799
804
800 2007-03-31 Walter Doerwald <walter@livinglogic.de>
805 2007-03-31 Walter Doerwald <walter@livinglogic.de>
801
806
802 * IPython/Extensions/igrid.py: Map the return key
807 * IPython/Extensions/igrid.py: Map the return key
803 to enter() and shift-return to enterattr().
808 to enter() and shift-return to enterattr().
804
809
805 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
810 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
806
811
807 * IPython/Magic.py (magic_psearch): add unicode support by
812 * IPython/Magic.py (magic_psearch): add unicode support by
808 encoding to ascii the input, since this routine also only deals
813 encoding to ascii the input, since this routine also only deals
809 with valid Python names. Fixes a bug reported by Stefan.
814 with valid Python names. Fixes a bug reported by Stefan.
810
815
811 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
816 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
812
817
813 * IPython/Magic.py (_inspect): convert unicode input into ascii
818 * IPython/Magic.py (_inspect): convert unicode input into ascii
814 before trying to evaluate it as a Python identifier. This fixes a
819 before trying to evaluate it as a Python identifier. This fixes a
815 problem that the new unicode support had introduced when analyzing
820 problem that the new unicode support had introduced when analyzing
816 long definition lines for functions.
821 long definition lines for functions.
817
822
818 2007-03-24 Walter Doerwald <walter@livinglogic.de>
823 2007-03-24 Walter Doerwald <walter@livinglogic.de>
819
824
820 * IPython/Extensions/igrid.py: Fix picking. Using
825 * IPython/Extensions/igrid.py: Fix picking. Using
821 igrid with wxPython 2.6 and -wthread should work now.
826 igrid with wxPython 2.6 and -wthread should work now.
822 igrid.display() simply tries to create a frame without
827 igrid.display() simply tries to create a frame without
823 an application. Only if this fails an application is created.
828 an application. Only if this fails an application is created.
824
829
825 2007-03-23 Walter Doerwald <walter@livinglogic.de>
830 2007-03-23 Walter Doerwald <walter@livinglogic.de>
826
831
827 * IPython/Extensions/path.py: Updated to version 2.2.
832 * IPython/Extensions/path.py: Updated to version 2.2.
828
833
829 2007-03-23 Ville Vainio <vivainio@gmail.com>
834 2007-03-23 Ville Vainio <vivainio@gmail.com>
830
835
831 * iplib.py: recursive alias expansion now works better, so that
836 * iplib.py: recursive alias expansion now works better, so that
832 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
837 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
833 doesn't trip up the process, if 'd' has been aliased to 'ls'.
838 doesn't trip up the process, if 'd' has been aliased to 'ls'.
834
839
835 * Extensions/ipy_gnuglobal.py added, provides %global magic
840 * Extensions/ipy_gnuglobal.py added, provides %global magic
836 for users of http://www.gnu.org/software/global
841 for users of http://www.gnu.org/software/global
837
842
838 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
843 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
839 Closes #52. Patch by Stefan van der Walt.
844 Closes #52. Patch by Stefan van der Walt.
840
845
841 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
846 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
842
847
843 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
848 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
844 respect the __file__ attribute when using %run. Thanks to a bug
849 respect the __file__ attribute when using %run. Thanks to a bug
845 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
850 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
846
851
847 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
852 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
848
853
849 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
854 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
850 input. Patch sent by Stefan.
855 input. Patch sent by Stefan.
851
856
852 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
857 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
853 * IPython/Extensions/ipy_stock_completer.py
858 * IPython/Extensions/ipy_stock_completer.py
854 shlex_split, fix bug in shlex_split. len function
859 shlex_split, fix bug in shlex_split. len function
855 call was missing an if statement. Caused shlex_split to
860 call was missing an if statement. Caused shlex_split to
856 sometimes return "" as last element.
861 sometimes return "" as last element.
857
862
858 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
863 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
859
864
860 * IPython/completer.py
865 * IPython/completer.py
861 (IPCompleter.file_matches.single_dir_expand): fix a problem
866 (IPCompleter.file_matches.single_dir_expand): fix a problem
862 reported by Stefan, where directories containign a single subdir
867 reported by Stefan, where directories containign a single subdir
863 would be completed too early.
868 would be completed too early.
864
869
865 * IPython/Shell.py (_load_pylab): Make the execution of 'from
870 * IPython/Shell.py (_load_pylab): Make the execution of 'from
866 pylab import *' when -pylab is given be optional. A new flag,
871 pylab import *' when -pylab is given be optional. A new flag,
867 pylab_import_all controls this behavior, the default is True for
872 pylab_import_all controls this behavior, the default is True for
868 backwards compatibility.
873 backwards compatibility.
869
874
870 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
875 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
871 modified) R. Bernstein's patch for fully syntax highlighted
876 modified) R. Bernstein's patch for fully syntax highlighted
872 tracebacks. The functionality is also available under ultraTB for
877 tracebacks. The functionality is also available under ultraTB for
873 non-ipython users (someone using ultraTB but outside an ipython
878 non-ipython users (someone using ultraTB but outside an ipython
874 session). They can select the color scheme by setting the
879 session). They can select the color scheme by setting the
875 module-level global DEFAULT_SCHEME. The highlight functionality
880 module-level global DEFAULT_SCHEME. The highlight functionality
876 also works when debugging.
881 also works when debugging.
877
882
878 * IPython/genutils.py (IOStream.close): small patch by
883 * IPython/genutils.py (IOStream.close): small patch by
879 R. Bernstein for improved pydb support.
884 R. Bernstein for improved pydb support.
880
885
881 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
886 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
882 DaveS <davls@telus.net> to improve support of debugging under
887 DaveS <davls@telus.net> to improve support of debugging under
883 NTEmacs, including improved pydb behavior.
888 NTEmacs, including improved pydb behavior.
884
889
885 * IPython/Magic.py (magic_prun): Fix saving of profile info for
890 * IPython/Magic.py (magic_prun): Fix saving of profile info for
886 Python 2.5, where the stats object API changed a little. Thanks
891 Python 2.5, where the stats object API changed a little. Thanks
887 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
892 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
888
893
889 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
894 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
890 Pernetty's patch to improve support for (X)Emacs under Win32.
895 Pernetty's patch to improve support for (X)Emacs under Win32.
891
896
892 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
897 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
893
898
894 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
899 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
895 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
900 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
896 a report by Nik Tautenhahn.
901 a report by Nik Tautenhahn.
897
902
898 2007-03-16 Walter Doerwald <walter@livinglogic.de>
903 2007-03-16 Walter Doerwald <walter@livinglogic.de>
899
904
900 * setup.py: Add the igrid help files to the list of data files
905 * setup.py: Add the igrid help files to the list of data files
901 to be installed alongside igrid.
906 to be installed alongside igrid.
902 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
907 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
903 Show the input object of the igrid browser as the window tile.
908 Show the input object of the igrid browser as the window tile.
904 Show the object the cursor is on in the statusbar.
909 Show the object the cursor is on in the statusbar.
905
910
906 2007-03-15 Ville Vainio <vivainio@gmail.com>
911 2007-03-15 Ville Vainio <vivainio@gmail.com>
907
912
908 * Extensions/ipy_stock_completers.py: Fixed exception
913 * Extensions/ipy_stock_completers.py: Fixed exception
909 on mismatching quotes in %run completer. Patch by
914 on mismatching quotes in %run completer. Patch by
910 Jorgen Stenarson. Closes #127.
915 Jorgen Stenarson. Closes #127.
911
916
912 2007-03-14 Ville Vainio <vivainio@gmail.com>
917 2007-03-14 Ville Vainio <vivainio@gmail.com>
913
918
914 * Extensions/ext_rehashdir.py: Do not do auto_alias
919 * Extensions/ext_rehashdir.py: Do not do auto_alias
915 in %rehashdir, it clobbers %store'd aliases.
920 in %rehashdir, it clobbers %store'd aliases.
916
921
917 * UserConfig/ipy_profile_sh.py: envpersist.py extension
922 * UserConfig/ipy_profile_sh.py: envpersist.py extension
918 (beefed up %env) imported for sh profile.
923 (beefed up %env) imported for sh profile.
919
924
920 2007-03-10 Walter Doerwald <walter@livinglogic.de>
925 2007-03-10 Walter Doerwald <walter@livinglogic.de>
921
926
922 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
927 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
923 as the default browser.
928 as the default browser.
924 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
929 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
925 As igrid displays all attributes it ever encounters, fetch() (which has
930 As igrid displays all attributes it ever encounters, fetch() (which has
926 been renamed to _fetch()) doesn't have to recalculate the display attributes
931 been renamed to _fetch()) doesn't have to recalculate the display attributes
927 every time a new item is fetched. This should speed up scrolling.
932 every time a new item is fetched. This should speed up scrolling.
928
933
929 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
934 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
930
935
931 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
936 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
932 Schmolck's recently reported tab-completion bug (my previous one
937 Schmolck's recently reported tab-completion bug (my previous one
933 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
938 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
934
939
935 2007-03-09 Walter Doerwald <walter@livinglogic.de>
940 2007-03-09 Walter Doerwald <walter@livinglogic.de>
936
941
937 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
942 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
938 Close help window if exiting igrid.
943 Close help window if exiting igrid.
939
944
940 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
945 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
941
946
942 * IPython/Extensions/ipy_defaults.py: Check if readline is available
947 * IPython/Extensions/ipy_defaults.py: Check if readline is available
943 before calling functions from readline.
948 before calling functions from readline.
944
949
945 2007-03-02 Walter Doerwald <walter@livinglogic.de>
950 2007-03-02 Walter Doerwald <walter@livinglogic.de>
946
951
947 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
952 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
948 igrid is a wxPython-based display object for ipipe. If your system has
953 igrid is a wxPython-based display object for ipipe. If your system has
949 wx installed igrid will be the default display. Without wx ipipe falls
954 wx installed igrid will be the default display. Without wx ipipe falls
950 back to ibrowse (which needs curses). If no curses is installed ipipe
955 back to ibrowse (which needs curses). If no curses is installed ipipe
951 falls back to idump.
956 falls back to idump.
952
957
953 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
958 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
954
959
955 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
960 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
956 my changes from yesterday, they introduced bugs. Will reactivate
961 my changes from yesterday, they introduced bugs. Will reactivate
957 once I get a correct solution, which will be much easier thanks to
962 once I get a correct solution, which will be much easier thanks to
958 Dan Milstein's new prefilter test suite.
963 Dan Milstein's new prefilter test suite.
959
964
960 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
965 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
961
966
962 * IPython/iplib.py (split_user_input): fix input splitting so we
967 * IPython/iplib.py (split_user_input): fix input splitting so we
963 don't attempt attribute accesses on things that can't possibly be
968 don't attempt attribute accesses on things that can't possibly be
964 valid Python attributes. After a bug report by Alex Schmolck.
969 valid Python attributes. After a bug report by Alex Schmolck.
965 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
970 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
966 %magic with explicit % prefix.
971 %magic with explicit % prefix.
967
972
968 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
973 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
969
974
970 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
975 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
971 avoid a DeprecationWarning from GTK.
976 avoid a DeprecationWarning from GTK.
972
977
973 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
978 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
974
979
975 * IPython/genutils.py (clock): I modified clock() to return total
980 * IPython/genutils.py (clock): I modified clock() to return total
976 time, user+system. This is a more commonly needed metric. I also
981 time, user+system. This is a more commonly needed metric. I also
977 introduced the new clocku/clocks to get only user/system time if
982 introduced the new clocku/clocks to get only user/system time if
978 one wants those instead.
983 one wants those instead.
979
984
980 ***WARNING: API CHANGE*** clock() used to return only user time,
985 ***WARNING: API CHANGE*** clock() used to return only user time,
981 so if you want exactly the same results as before, use clocku
986 so if you want exactly the same results as before, use clocku
982 instead.
987 instead.
983
988
984 2007-02-22 Ville Vainio <vivainio@gmail.com>
989 2007-02-22 Ville Vainio <vivainio@gmail.com>
985
990
986 * IPython/Extensions/ipy_p4.py: Extension for improved
991 * IPython/Extensions/ipy_p4.py: Extension for improved
987 p4 (perforce version control system) experience.
992 p4 (perforce version control system) experience.
988 Adds %p4 magic with p4 command completion and
993 Adds %p4 magic with p4 command completion and
989 automatic -G argument (marshall output as python dict)
994 automatic -G argument (marshall output as python dict)
990
995
991 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
996 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
992
997
993 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
998 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
994 stop marks.
999 stop marks.
995 (ClearingMixin): a simple mixin to easily make a Demo class clear
1000 (ClearingMixin): a simple mixin to easily make a Demo class clear
996 the screen in between blocks and have empty marquees. The
1001 the screen in between blocks and have empty marquees. The
997 ClearDemo and ClearIPDemo classes that use it are included.
1002 ClearDemo and ClearIPDemo classes that use it are included.
998
1003
999 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1004 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1000
1005
1001 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1006 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1002 protect against exceptions at Python shutdown time. Patch
1007 protect against exceptions at Python shutdown time. Patch
1003 sumbmitted to upstream.
1008 sumbmitted to upstream.
1004
1009
1005 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1010 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1006
1011
1007 * IPython/Extensions/ibrowse.py: If entering the first object level
1012 * IPython/Extensions/ibrowse.py: If entering the first object level
1008 (i.e. the object for which the browser has been started) fails,
1013 (i.e. the object for which the browser has been started) fails,
1009 now the error is raised directly (aborting the browser) instead of
1014 now the error is raised directly (aborting the browser) instead of
1010 running into an empty levels list later.
1015 running into an empty levels list later.
1011
1016
1012 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1017 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1013
1018
1014 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1019 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1015 for the noitem object.
1020 for the noitem object.
1016
1021
1017 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1022 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1018
1023
1019 * IPython/completer.py (Completer.attr_matches): Fix small
1024 * IPython/completer.py (Completer.attr_matches): Fix small
1020 tab-completion bug with Enthought Traits objects with units.
1025 tab-completion bug with Enthought Traits objects with units.
1021 Thanks to a bug report by Tom Denniston
1026 Thanks to a bug report by Tom Denniston
1022 <tom.denniston-AT-alum.dartmouth.org>.
1027 <tom.denniston-AT-alum.dartmouth.org>.
1023
1028
1024 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1029 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1025
1030
1026 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1031 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1027 bug where only .ipy or .py would be completed. Once the first
1032 bug where only .ipy or .py would be completed. Once the first
1028 argument to %run has been given, all completions are valid because
1033 argument to %run has been given, all completions are valid because
1029 they are the arguments to the script, which may well be non-python
1034 they are the arguments to the script, which may well be non-python
1030 filenames.
1035 filenames.
1031
1036
1032 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1037 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1033 to irunner to allow it to correctly support real doctesting of
1038 to irunner to allow it to correctly support real doctesting of
1034 out-of-process ipython code.
1039 out-of-process ipython code.
1035
1040
1036 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1041 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1037 title an option (-noterm_title) because it completely breaks
1042 title an option (-noterm_title) because it completely breaks
1038 doctesting.
1043 doctesting.
1039
1044
1040 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1045 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1041
1046
1042 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1047 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1043
1048
1044 * IPython/irunner.py (main): fix small bug where extensions were
1049 * IPython/irunner.py (main): fix small bug where extensions were
1045 not being correctly recognized.
1050 not being correctly recognized.
1046
1051
1047 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1052 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1048
1053
1049 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1054 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1050 a string containing a single line yields the string itself as the
1055 a string containing a single line yields the string itself as the
1051 only item.
1056 only item.
1052
1057
1053 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1058 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1054 object if it's the same as the one on the last level (This avoids
1059 object if it's the same as the one on the last level (This avoids
1055 infinite recursion for one line strings).
1060 infinite recursion for one line strings).
1056
1061
1057 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1062 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1058
1063
1059 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1064 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1060 all output streams before printing tracebacks. This ensures that
1065 all output streams before printing tracebacks. This ensures that
1061 user output doesn't end up interleaved with traceback output.
1066 user output doesn't end up interleaved with traceback output.
1062
1067
1063 2007-01-10 Ville Vainio <vivainio@gmail.com>
1068 2007-01-10 Ville Vainio <vivainio@gmail.com>
1064
1069
1065 * Extensions/envpersist.py: Turbocharged %env that remembers
1070 * Extensions/envpersist.py: Turbocharged %env that remembers
1066 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1071 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1067 "%env VISUAL=jed".
1072 "%env VISUAL=jed".
1068
1073
1069 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1074 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1070
1075
1071 * IPython/iplib.py (showtraceback): ensure that we correctly call
1076 * IPython/iplib.py (showtraceback): ensure that we correctly call
1072 custom handlers in all cases (some with pdb were slipping through,
1077 custom handlers in all cases (some with pdb were slipping through,
1073 but I'm not exactly sure why).
1078 but I'm not exactly sure why).
1074
1079
1075 * IPython/Debugger.py (Tracer.__init__): added new class to
1080 * IPython/Debugger.py (Tracer.__init__): added new class to
1076 support set_trace-like usage of IPython's enhanced debugger.
1081 support set_trace-like usage of IPython's enhanced debugger.
1077
1082
1078 2006-12-24 Ville Vainio <vivainio@gmail.com>
1083 2006-12-24 Ville Vainio <vivainio@gmail.com>
1079
1084
1080 * ipmaker.py: more informative message when ipy_user_conf
1085 * ipmaker.py: more informative message when ipy_user_conf
1081 import fails (suggest running %upgrade).
1086 import fails (suggest running %upgrade).
1082
1087
1083 * tools/run_ipy_in_profiler.py: Utility to see where
1088 * tools/run_ipy_in_profiler.py: Utility to see where
1084 the time during IPython startup is spent.
1089 the time during IPython startup is spent.
1085
1090
1086 2006-12-20 Ville Vainio <vivainio@gmail.com>
1091 2006-12-20 Ville Vainio <vivainio@gmail.com>
1087
1092
1088 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1093 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1089
1094
1090 * ipapi.py: Add new ipapi method, expand_alias.
1095 * ipapi.py: Add new ipapi method, expand_alias.
1091
1096
1092 * Release.py: Bump up version to 0.7.4.svn
1097 * Release.py: Bump up version to 0.7.4.svn
1093
1098
1094 2006-12-17 Ville Vainio <vivainio@gmail.com>
1099 2006-12-17 Ville Vainio <vivainio@gmail.com>
1095
1100
1096 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1101 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1097 to work properly on posix too
1102 to work properly on posix too
1098
1103
1099 * Release.py: Update revnum (version is still just 0.7.3).
1104 * Release.py: Update revnum (version is still just 0.7.3).
1100
1105
1101 2006-12-15 Ville Vainio <vivainio@gmail.com>
1106 2006-12-15 Ville Vainio <vivainio@gmail.com>
1102
1107
1103 * scripts/ipython_win_post_install: create ipython.py in
1108 * scripts/ipython_win_post_install: create ipython.py in
1104 prefix + "/scripts".
1109 prefix + "/scripts".
1105
1110
1106 * Release.py: Update version to 0.7.3.
1111 * Release.py: Update version to 0.7.3.
1107
1112
1108 2006-12-14 Ville Vainio <vivainio@gmail.com>
1113 2006-12-14 Ville Vainio <vivainio@gmail.com>
1109
1114
1110 * scripts/ipython_win_post_install: Overwrite old shortcuts
1115 * scripts/ipython_win_post_install: Overwrite old shortcuts
1111 if they already exist
1116 if they already exist
1112
1117
1113 * Release.py: release 0.7.3rc2
1118 * Release.py: release 0.7.3rc2
1114
1119
1115 2006-12-13 Ville Vainio <vivainio@gmail.com>
1120 2006-12-13 Ville Vainio <vivainio@gmail.com>
1116
1121
1117 * Branch and update Release.py for 0.7.3rc1
1122 * Branch and update Release.py for 0.7.3rc1
1118
1123
1119 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1124 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1120
1125
1121 * IPython/Shell.py (IPShellWX): update for current WX naming
1126 * IPython/Shell.py (IPShellWX): update for current WX naming
1122 conventions, to avoid a deprecation warning with current WX
1127 conventions, to avoid a deprecation warning with current WX
1123 versions. Thanks to a report by Danny Shevitz.
1128 versions. Thanks to a report by Danny Shevitz.
1124
1129
1125 2006-12-12 Ville Vainio <vivainio@gmail.com>
1130 2006-12-12 Ville Vainio <vivainio@gmail.com>
1126
1131
1127 * ipmaker.py: apply david cournapeau's patch to make
1132 * ipmaker.py: apply david cournapeau's patch to make
1128 import_some work properly even when ipythonrc does
1133 import_some work properly even when ipythonrc does
1129 import_some on empty list (it was an old bug!).
1134 import_some on empty list (it was an old bug!).
1130
1135
1131 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1136 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1132 Add deprecation note to ipythonrc and a url to wiki
1137 Add deprecation note to ipythonrc and a url to wiki
1133 in ipy_user_conf.py
1138 in ipy_user_conf.py
1134
1139
1135
1140
1136 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1141 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1137 as if it was typed on IPython command prompt, i.e.
1142 as if it was typed on IPython command prompt, i.e.
1138 as IPython script.
1143 as IPython script.
1139
1144
1140 * example-magic.py, magic_grepl.py: remove outdated examples
1145 * example-magic.py, magic_grepl.py: remove outdated examples
1141
1146
1142 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1147 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1143
1148
1144 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1149 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1145 is called before any exception has occurred.
1150 is called before any exception has occurred.
1146
1151
1147 2006-12-08 Ville Vainio <vivainio@gmail.com>
1152 2006-12-08 Ville Vainio <vivainio@gmail.com>
1148
1153
1149 * Extensions/ipy_stock_completers.py: fix cd completer
1154 * Extensions/ipy_stock_completers.py: fix cd completer
1150 to translate /'s to \'s again.
1155 to translate /'s to \'s again.
1151
1156
1152 * completer.py: prevent traceback on file completions w/
1157 * completer.py: prevent traceback on file completions w/
1153 backslash.
1158 backslash.
1154
1159
1155 * Release.py: Update release number to 0.7.3b3 for release
1160 * Release.py: Update release number to 0.7.3b3 for release
1156
1161
1157 2006-12-07 Ville Vainio <vivainio@gmail.com>
1162 2006-12-07 Ville Vainio <vivainio@gmail.com>
1158
1163
1159 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1164 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1160 while executing external code. Provides more shell-like behaviour
1165 while executing external code. Provides more shell-like behaviour
1161 and overall better response to ctrl + C / ctrl + break.
1166 and overall better response to ctrl + C / ctrl + break.
1162
1167
1163 * tools/make_tarball.py: new script to create tarball straight from svn
1168 * tools/make_tarball.py: new script to create tarball straight from svn
1164 (setup.py sdist doesn't work on win32).
1169 (setup.py sdist doesn't work on win32).
1165
1170
1166 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1171 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1167 on dirnames with spaces and use the default completer instead.
1172 on dirnames with spaces and use the default completer instead.
1168
1173
1169 * Revision.py: Change version to 0.7.3b2 for release.
1174 * Revision.py: Change version to 0.7.3b2 for release.
1170
1175
1171 2006-12-05 Ville Vainio <vivainio@gmail.com>
1176 2006-12-05 Ville Vainio <vivainio@gmail.com>
1172
1177
1173 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1178 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1174 pydb patch 4 (rm debug printing, py 2.5 checking)
1179 pydb patch 4 (rm debug printing, py 2.5 checking)
1175
1180
1176 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1181 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1177 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1182 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1178 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1183 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1179 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1184 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1180 object the cursor was on before the refresh. The command "markrange" is
1185 object the cursor was on before the refresh. The command "markrange" is
1181 mapped to "%" now.
1186 mapped to "%" now.
1182 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1187 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1183
1188
1184 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1189 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1185
1190
1186 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1191 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1187 interactive debugger on the last traceback, without having to call
1192 interactive debugger on the last traceback, without having to call
1188 %pdb and rerun your code. Made minor changes in various modules,
1193 %pdb and rerun your code. Made minor changes in various modules,
1189 should automatically recognize pydb if available.
1194 should automatically recognize pydb if available.
1190
1195
1191 2006-11-28 Ville Vainio <vivainio@gmail.com>
1196 2006-11-28 Ville Vainio <vivainio@gmail.com>
1192
1197
1193 * completer.py: If the text start with !, show file completions
1198 * completer.py: If the text start with !, show file completions
1194 properly. This helps when trying to complete command name
1199 properly. This helps when trying to complete command name
1195 for shell escapes.
1200 for shell escapes.
1196
1201
1197 2006-11-27 Ville Vainio <vivainio@gmail.com>
1202 2006-11-27 Ville Vainio <vivainio@gmail.com>
1198
1203
1199 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1204 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1200 der Walt. Clean up svn and hg completers by using a common
1205 der Walt. Clean up svn and hg completers by using a common
1201 vcs_completer.
1206 vcs_completer.
1202
1207
1203 2006-11-26 Ville Vainio <vivainio@gmail.com>
1208 2006-11-26 Ville Vainio <vivainio@gmail.com>
1204
1209
1205 * Remove ipconfig and %config; you should use _ip.options structure
1210 * Remove ipconfig and %config; you should use _ip.options structure
1206 directly instead!
1211 directly instead!
1207
1212
1208 * genutils.py: add wrap_deprecated function for deprecating callables
1213 * genutils.py: add wrap_deprecated function for deprecating callables
1209
1214
1210 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1215 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1211 _ip.system instead. ipalias is redundant.
1216 _ip.system instead. ipalias is redundant.
1212
1217
1213 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1218 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1214 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1219 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1215 explicit.
1220 explicit.
1216
1221
1217 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1222 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1218 completer. Try it by entering 'hg ' and pressing tab.
1223 completer. Try it by entering 'hg ' and pressing tab.
1219
1224
1220 * macro.py: Give Macro a useful __repr__ method
1225 * macro.py: Give Macro a useful __repr__ method
1221
1226
1222 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1227 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1223
1228
1224 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1229 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1225 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1230 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1226 we don't get a duplicate ipipe module, where registration of the xrepr
1231 we don't get a duplicate ipipe module, where registration of the xrepr
1227 implementation for Text is useless.
1232 implementation for Text is useless.
1228
1233
1229 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1234 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1230
1235
1231 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1236 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1232
1237
1233 2006-11-24 Ville Vainio <vivainio@gmail.com>
1238 2006-11-24 Ville Vainio <vivainio@gmail.com>
1234
1239
1235 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1240 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1236 try to use "cProfile" instead of the slower pure python
1241 try to use "cProfile" instead of the slower pure python
1237 "profile"
1242 "profile"
1238
1243
1239 2006-11-23 Ville Vainio <vivainio@gmail.com>
1244 2006-11-23 Ville Vainio <vivainio@gmail.com>
1240
1245
1241 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1246 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1242 Qt+IPython+Designer link in documentation.
1247 Qt+IPython+Designer link in documentation.
1243
1248
1244 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1249 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1245 correct Pdb object to %pydb.
1250 correct Pdb object to %pydb.
1246
1251
1247
1252
1248 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1253 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1249 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1254 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1250 generic xrepr(), otherwise the list implementation would kick in.
1255 generic xrepr(), otherwise the list implementation would kick in.
1251
1256
1252 2006-11-21 Ville Vainio <vivainio@gmail.com>
1257 2006-11-21 Ville Vainio <vivainio@gmail.com>
1253
1258
1254 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1259 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1255 with one from UserConfig.
1260 with one from UserConfig.
1256
1261
1257 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1262 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1258 it was missing which broke the sh profile.
1263 it was missing which broke the sh profile.
1259
1264
1260 * completer.py: file completer now uses explicit '/' instead
1265 * completer.py: file completer now uses explicit '/' instead
1261 of os.path.join, expansion of 'foo' was broken on win32
1266 of os.path.join, expansion of 'foo' was broken on win32
1262 if there was one directory with name 'foobar'.
1267 if there was one directory with name 'foobar'.
1263
1268
1264 * A bunch of patches from Kirill Smelkov:
1269 * A bunch of patches from Kirill Smelkov:
1265
1270
1266 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1271 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1267
1272
1268 * [patch 7/9] Implement %page -r (page in raw mode) -
1273 * [patch 7/9] Implement %page -r (page in raw mode) -
1269
1274
1270 * [patch 5/9] ScientificPython webpage has moved
1275 * [patch 5/9] ScientificPython webpage has moved
1271
1276
1272 * [patch 4/9] The manual mentions %ds, should be %dhist
1277 * [patch 4/9] The manual mentions %ds, should be %dhist
1273
1278
1274 * [patch 3/9] Kill old bits from %prun doc.
1279 * [patch 3/9] Kill old bits from %prun doc.
1275
1280
1276 * [patch 1/9] Fix typos here and there.
1281 * [patch 1/9] Fix typos here and there.
1277
1282
1278 2006-11-08 Ville Vainio <vivainio@gmail.com>
1283 2006-11-08 Ville Vainio <vivainio@gmail.com>
1279
1284
1280 * completer.py (attr_matches): catch all exceptions raised
1285 * completer.py (attr_matches): catch all exceptions raised
1281 by eval of expr with dots.
1286 by eval of expr with dots.
1282
1287
1283 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1288 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1284
1289
1285 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1290 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1286 input if it starts with whitespace. This allows you to paste
1291 input if it starts with whitespace. This allows you to paste
1287 indented input from any editor without manually having to type in
1292 indented input from any editor without manually having to type in
1288 the 'if 1:', which is convenient when working interactively.
1293 the 'if 1:', which is convenient when working interactively.
1289 Slightly modifed version of a patch by Bo Peng
1294 Slightly modifed version of a patch by Bo Peng
1290 <bpeng-AT-rice.edu>.
1295 <bpeng-AT-rice.edu>.
1291
1296
1292 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1297 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1293
1298
1294 * IPython/irunner.py (main): modified irunner so it automatically
1299 * IPython/irunner.py (main): modified irunner so it automatically
1295 recognizes the right runner to use based on the extension (.py for
1300 recognizes the right runner to use based on the extension (.py for
1296 python, .ipy for ipython and .sage for sage).
1301 python, .ipy for ipython and .sage for sage).
1297
1302
1298 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1303 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1299 visible in ipapi as ip.config(), to programatically control the
1304 visible in ipapi as ip.config(), to programatically control the
1300 internal rc object. There's an accompanying %config magic for
1305 internal rc object. There's an accompanying %config magic for
1301 interactive use, which has been enhanced to match the
1306 interactive use, which has been enhanced to match the
1302 funtionality in ipconfig.
1307 funtionality in ipconfig.
1303
1308
1304 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1309 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1305 so it's not just a toggle, it now takes an argument. Add support
1310 so it's not just a toggle, it now takes an argument. Add support
1306 for a customizable header when making system calls, as the new
1311 for a customizable header when making system calls, as the new
1307 system_header variable in the ipythonrc file.
1312 system_header variable in the ipythonrc file.
1308
1313
1309 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1314 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1310
1315
1311 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1316 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1312 generic functions (using Philip J. Eby's simplegeneric package).
1317 generic functions (using Philip J. Eby's simplegeneric package).
1313 This makes it possible to customize the display of third-party classes
1318 This makes it possible to customize the display of third-party classes
1314 without having to monkeypatch them. xiter() no longer supports a mode
1319 without having to monkeypatch them. xiter() no longer supports a mode
1315 argument and the XMode class has been removed. The same functionality can
1320 argument and the XMode class has been removed. The same functionality can
1316 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1321 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1317 One consequence of the switch to generic functions is that xrepr() and
1322 One consequence of the switch to generic functions is that xrepr() and
1318 xattrs() implementation must define the default value for the mode
1323 xattrs() implementation must define the default value for the mode
1319 argument themselves and xattrs() implementations must return real
1324 argument themselves and xattrs() implementations must return real
1320 descriptors.
1325 descriptors.
1321
1326
1322 * IPython/external: This new subpackage will contain all third-party
1327 * IPython/external: This new subpackage will contain all third-party
1323 packages that are bundled with IPython. (The first one is simplegeneric).
1328 packages that are bundled with IPython. (The first one is simplegeneric).
1324
1329
1325 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1330 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1326 directory which as been dropped in r1703.
1331 directory which as been dropped in r1703.
1327
1332
1328 * IPython/Extensions/ipipe.py (iless): Fixed.
1333 * IPython/Extensions/ipipe.py (iless): Fixed.
1329
1334
1330 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1335 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1331
1336
1332 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1337 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1333
1338
1334 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1339 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1335 handling in variable expansion so that shells and magics recognize
1340 handling in variable expansion so that shells and magics recognize
1336 function local scopes correctly. Bug reported by Brian.
1341 function local scopes correctly. Bug reported by Brian.
1337
1342
1338 * scripts/ipython: remove the very first entry in sys.path which
1343 * scripts/ipython: remove the very first entry in sys.path which
1339 Python auto-inserts for scripts, so that sys.path under IPython is
1344 Python auto-inserts for scripts, so that sys.path under IPython is
1340 as similar as possible to that under plain Python.
1345 as similar as possible to that under plain Python.
1341
1346
1342 * IPython/completer.py (IPCompleter.file_matches): Fix
1347 * IPython/completer.py (IPCompleter.file_matches): Fix
1343 tab-completion so that quotes are not closed unless the completion
1348 tab-completion so that quotes are not closed unless the completion
1344 is unambiguous. After a request by Stefan. Minor cleanups in
1349 is unambiguous. After a request by Stefan. Minor cleanups in
1345 ipy_stock_completers.
1350 ipy_stock_completers.
1346
1351
1347 2006-11-02 Ville Vainio <vivainio@gmail.com>
1352 2006-11-02 Ville Vainio <vivainio@gmail.com>
1348
1353
1349 * ipy_stock_completers.py: Add %run and %cd completers.
1354 * ipy_stock_completers.py: Add %run and %cd completers.
1350
1355
1351 * completer.py: Try running custom completer for both
1356 * completer.py: Try running custom completer for both
1352 "foo" and "%foo" if the command is just "foo". Ignore case
1357 "foo" and "%foo" if the command is just "foo". Ignore case
1353 when filtering possible completions.
1358 when filtering possible completions.
1354
1359
1355 * UserConfig/ipy_user_conf.py: install stock completers as default
1360 * UserConfig/ipy_user_conf.py: install stock completers as default
1356
1361
1357 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1362 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1358 simplified readline history save / restore through a wrapper
1363 simplified readline history save / restore through a wrapper
1359 function
1364 function
1360
1365
1361
1366
1362 2006-10-31 Ville Vainio <vivainio@gmail.com>
1367 2006-10-31 Ville Vainio <vivainio@gmail.com>
1363
1368
1364 * strdispatch.py, completer.py, ipy_stock_completers.py:
1369 * strdispatch.py, completer.py, ipy_stock_completers.py:
1365 Allow str_key ("command") in completer hooks. Implement
1370 Allow str_key ("command") in completer hooks. Implement
1366 trivial completer for 'import' (stdlib modules only). Rename
1371 trivial completer for 'import' (stdlib modules only). Rename
1367 ipy_linux_package_managers.py to ipy_stock_completers.py.
1372 ipy_linux_package_managers.py to ipy_stock_completers.py.
1368 SVN completer.
1373 SVN completer.
1369
1374
1370 * Extensions/ledit.py: %magic line editor for easily and
1375 * Extensions/ledit.py: %magic line editor for easily and
1371 incrementally manipulating lists of strings. The magic command
1376 incrementally manipulating lists of strings. The magic command
1372 name is %led.
1377 name is %led.
1373
1378
1374 2006-10-30 Ville Vainio <vivainio@gmail.com>
1379 2006-10-30 Ville Vainio <vivainio@gmail.com>
1375
1380
1376 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1381 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1377 Bernsteins's patches for pydb integration.
1382 Bernsteins's patches for pydb integration.
1378 http://bashdb.sourceforge.net/pydb/
1383 http://bashdb.sourceforge.net/pydb/
1379
1384
1380 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1385 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1381 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1386 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1382 custom completer hook to allow the users to implement their own
1387 custom completer hook to allow the users to implement their own
1383 completers. See ipy_linux_package_managers.py for example. The
1388 completers. See ipy_linux_package_managers.py for example. The
1384 hook name is 'complete_command'.
1389 hook name is 'complete_command'.
1385
1390
1386 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1391 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1387
1392
1388 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1393 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1389 Numeric leftovers.
1394 Numeric leftovers.
1390
1395
1391 * ipython.el (py-execute-region): apply Stefan's patch to fix
1396 * ipython.el (py-execute-region): apply Stefan's patch to fix
1392 garbled results if the python shell hasn't been previously started.
1397 garbled results if the python shell hasn't been previously started.
1393
1398
1394 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1399 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1395 pretty generic function and useful for other things.
1400 pretty generic function and useful for other things.
1396
1401
1397 * IPython/OInspect.py (getsource): Add customizable source
1402 * IPython/OInspect.py (getsource): Add customizable source
1398 extractor. After a request/patch form W. Stein (SAGE).
1403 extractor. After a request/patch form W. Stein (SAGE).
1399
1404
1400 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1405 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1401 window size to a more reasonable value from what pexpect does,
1406 window size to a more reasonable value from what pexpect does,
1402 since their choice causes wrapping bugs with long input lines.
1407 since their choice causes wrapping bugs with long input lines.
1403
1408
1404 2006-10-28 Ville Vainio <vivainio@gmail.com>
1409 2006-10-28 Ville Vainio <vivainio@gmail.com>
1405
1410
1406 * Magic.py (%run): Save and restore the readline history from
1411 * Magic.py (%run): Save and restore the readline history from
1407 file around %run commands to prevent side effects from
1412 file around %run commands to prevent side effects from
1408 %runned programs that might use readline (e.g. pydb).
1413 %runned programs that might use readline (e.g. pydb).
1409
1414
1410 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1415 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1411 invoking the pydb enhanced debugger.
1416 invoking the pydb enhanced debugger.
1412
1417
1413 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1418 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1414
1419
1415 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1420 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1416 call the base class method and propagate the return value to
1421 call the base class method and propagate the return value to
1417 ifile. This is now done by path itself.
1422 ifile. This is now done by path itself.
1418
1423
1419 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1424 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1420
1425
1421 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1426 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1422 api: set_crash_handler(), to expose the ability to change the
1427 api: set_crash_handler(), to expose the ability to change the
1423 internal crash handler.
1428 internal crash handler.
1424
1429
1425 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1430 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1426 the various parameters of the crash handler so that apps using
1431 the various parameters of the crash handler so that apps using
1427 IPython as their engine can customize crash handling. Ipmlemented
1432 IPython as their engine can customize crash handling. Ipmlemented
1428 at the request of SAGE.
1433 at the request of SAGE.
1429
1434
1430 2006-10-14 Ville Vainio <vivainio@gmail.com>
1435 2006-10-14 Ville Vainio <vivainio@gmail.com>
1431
1436
1432 * Magic.py, ipython.el: applied first "safe" part of Rocky
1437 * Magic.py, ipython.el: applied first "safe" part of Rocky
1433 Bernstein's patch set for pydb integration.
1438 Bernstein's patch set for pydb integration.
1434
1439
1435 * Magic.py (%unalias, %alias): %store'd aliases can now be
1440 * Magic.py (%unalias, %alias): %store'd aliases can now be
1436 removed with '%unalias'. %alias w/o args now shows most
1441 removed with '%unalias'. %alias w/o args now shows most
1437 interesting (stored / manually defined) aliases last
1442 interesting (stored / manually defined) aliases last
1438 where they catch the eye w/o scrolling.
1443 where they catch the eye w/o scrolling.
1439
1444
1440 * Magic.py (%rehashx), ext_rehashdir.py: files with
1445 * Magic.py (%rehashx), ext_rehashdir.py: files with
1441 'py' extension are always considered executable, even
1446 'py' extension are always considered executable, even
1442 when not in PATHEXT environment variable.
1447 when not in PATHEXT environment variable.
1443
1448
1444 2006-10-12 Ville Vainio <vivainio@gmail.com>
1449 2006-10-12 Ville Vainio <vivainio@gmail.com>
1445
1450
1446 * jobctrl.py: Add new "jobctrl" extension for spawning background
1451 * jobctrl.py: Add new "jobctrl" extension for spawning background
1447 processes with "&find /". 'import jobctrl' to try it out. Requires
1452 processes with "&find /". 'import jobctrl' to try it out. Requires
1448 'subprocess' module, standard in python 2.4+.
1453 'subprocess' module, standard in python 2.4+.
1449
1454
1450 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1455 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1451 so if foo -> bar and bar -> baz, then foo -> baz.
1456 so if foo -> bar and bar -> baz, then foo -> baz.
1452
1457
1453 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1458 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1454
1459
1455 * IPython/Magic.py (Magic.parse_options): add a new posix option
1460 * IPython/Magic.py (Magic.parse_options): add a new posix option
1456 to allow parsing of input args in magics that doesn't strip quotes
1461 to allow parsing of input args in magics that doesn't strip quotes
1457 (if posix=False). This also closes %timeit bug reported by
1462 (if posix=False). This also closes %timeit bug reported by
1458 Stefan.
1463 Stefan.
1459
1464
1460 2006-10-03 Ville Vainio <vivainio@gmail.com>
1465 2006-10-03 Ville Vainio <vivainio@gmail.com>
1461
1466
1462 * iplib.py (raw_input, interact): Return ValueError catching for
1467 * iplib.py (raw_input, interact): Return ValueError catching for
1463 raw_input. Fixes infinite loop for sys.stdin.close() or
1468 raw_input. Fixes infinite loop for sys.stdin.close() or
1464 sys.stdout.close().
1469 sys.stdout.close().
1465
1470
1466 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1471 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1467
1472
1468 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1473 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1469 to help in handling doctests. irunner is now pretty useful for
1474 to help in handling doctests. irunner is now pretty useful for
1470 running standalone scripts and simulate a full interactive session
1475 running standalone scripts and simulate a full interactive session
1471 in a format that can be then pasted as a doctest.
1476 in a format that can be then pasted as a doctest.
1472
1477
1473 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1478 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1474 on top of the default (useless) ones. This also fixes the nasty
1479 on top of the default (useless) ones. This also fixes the nasty
1475 way in which 2.5's Quitter() exits (reverted [1785]).
1480 way in which 2.5's Quitter() exits (reverted [1785]).
1476
1481
1477 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1482 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1478 2.5.
1483 2.5.
1479
1484
1480 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1485 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1481 color scheme is updated as well when color scheme is changed
1486 color scheme is updated as well when color scheme is changed
1482 interactively.
1487 interactively.
1483
1488
1484 2006-09-27 Ville Vainio <vivainio@gmail.com>
1489 2006-09-27 Ville Vainio <vivainio@gmail.com>
1485
1490
1486 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1491 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1487 infinite loop and just exit. It's a hack, but will do for a while.
1492 infinite loop and just exit. It's a hack, but will do for a while.
1488
1493
1489 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1494 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1490
1495
1491 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1496 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1492 the constructor, this makes it possible to get a list of only directories
1497 the constructor, this makes it possible to get a list of only directories
1493 or only files.
1498 or only files.
1494
1499
1495 2006-08-12 Ville Vainio <vivainio@gmail.com>
1500 2006-08-12 Ville Vainio <vivainio@gmail.com>
1496
1501
1497 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1502 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1498 they broke unittest
1503 they broke unittest
1499
1504
1500 2006-08-11 Ville Vainio <vivainio@gmail.com>
1505 2006-08-11 Ville Vainio <vivainio@gmail.com>
1501
1506
1502 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1507 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1503 by resolving issue properly, i.e. by inheriting FakeModule
1508 by resolving issue properly, i.e. by inheriting FakeModule
1504 from types.ModuleType. Pickling ipython interactive data
1509 from types.ModuleType. Pickling ipython interactive data
1505 should still work as usual (testing appreciated).
1510 should still work as usual (testing appreciated).
1506
1511
1507 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1512 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1508
1513
1509 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1514 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1510 running under python 2.3 with code from 2.4 to fix a bug with
1515 running under python 2.3 with code from 2.4 to fix a bug with
1511 help(). Reported by the Debian maintainers, Norbert Tretkowski
1516 help(). Reported by the Debian maintainers, Norbert Tretkowski
1512 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1517 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1513 <afayolle-AT-debian.org>.
1518 <afayolle-AT-debian.org>.
1514
1519
1515 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1520 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1516
1521
1517 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1522 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1518 (which was displaying "quit" twice).
1523 (which was displaying "quit" twice).
1519
1524
1520 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1525 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1521
1526
1522 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1527 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1523 the mode argument).
1528 the mode argument).
1524
1529
1525 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1530 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1526
1531
1527 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1532 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1528 not running under IPython.
1533 not running under IPython.
1529
1534
1530 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1535 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1531 and make it iterable (iterating over the attribute itself). Add two new
1536 and make it iterable (iterating over the attribute itself). Add two new
1532 magic strings for __xattrs__(): If the string starts with "-", the attribute
1537 magic strings for __xattrs__(): If the string starts with "-", the attribute
1533 will not be displayed in ibrowse's detail view (but it can still be
1538 will not be displayed in ibrowse's detail view (but it can still be
1534 iterated over). This makes it possible to add attributes that are large
1539 iterated over). This makes it possible to add attributes that are large
1535 lists or generator methods to the detail view. Replace magic attribute names
1540 lists or generator methods to the detail view. Replace magic attribute names
1536 and _attrname() and _getattr() with "descriptors": For each type of magic
1541 and _attrname() and _getattr() with "descriptors": For each type of magic
1537 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1542 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1538 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1543 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1539 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1544 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1540 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1545 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1541 are still supported.
1546 are still supported.
1542
1547
1543 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1548 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1544 fails in ibrowse.fetch(), the exception object is added as the last item
1549 fails in ibrowse.fetch(), the exception object is added as the last item
1545 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1550 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1546 a generator throws an exception midway through execution.
1551 a generator throws an exception midway through execution.
1547
1552
1548 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1553 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1549 encoding into methods.
1554 encoding into methods.
1550
1555
1551 2006-07-26 Ville Vainio <vivainio@gmail.com>
1556 2006-07-26 Ville Vainio <vivainio@gmail.com>
1552
1557
1553 * iplib.py: history now stores multiline input as single
1558 * iplib.py: history now stores multiline input as single
1554 history entries. Patch by Jorgen Cederlof.
1559 history entries. Patch by Jorgen Cederlof.
1555
1560
1556 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1561 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1557
1562
1558 * IPython/Extensions/ibrowse.py: Make cursor visible over
1563 * IPython/Extensions/ibrowse.py: Make cursor visible over
1559 non existing attributes.
1564 non existing attributes.
1560
1565
1561 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1566 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1562
1567
1563 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1568 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1564 error output of the running command doesn't mess up the screen.
1569 error output of the running command doesn't mess up the screen.
1565
1570
1566 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1571 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1567
1572
1568 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1573 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1569 argument. This sorts the items themselves.
1574 argument. This sorts the items themselves.
1570
1575
1571 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1576 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1572
1577
1573 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1578 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1574 Compile expression strings into code objects. This should speed
1579 Compile expression strings into code objects. This should speed
1575 up ifilter and friends somewhat.
1580 up ifilter and friends somewhat.
1576
1581
1577 2006-07-08 Ville Vainio <vivainio@gmail.com>
1582 2006-07-08 Ville Vainio <vivainio@gmail.com>
1578
1583
1579 * Magic.py: %cpaste now strips > from the beginning of lines
1584 * Magic.py: %cpaste now strips > from the beginning of lines
1580 to ease pasting quoted code from emails. Contributed by
1585 to ease pasting quoted code from emails. Contributed by
1581 Stefan van der Walt.
1586 Stefan van der Walt.
1582
1587
1583 2006-06-29 Ville Vainio <vivainio@gmail.com>
1588 2006-06-29 Ville Vainio <vivainio@gmail.com>
1584
1589
1585 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1590 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1586 mode, patch contributed by Darren Dale. NEEDS TESTING!
1591 mode, patch contributed by Darren Dale. NEEDS TESTING!
1587
1592
1588 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1593 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1589
1594
1590 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1595 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1591 a blue background. Fix fetching new display rows when the browser
1596 a blue background. Fix fetching new display rows when the browser
1592 scrolls more than a screenful (e.g. by using the goto command).
1597 scrolls more than a screenful (e.g. by using the goto command).
1593
1598
1594 2006-06-27 Ville Vainio <vivainio@gmail.com>
1599 2006-06-27 Ville Vainio <vivainio@gmail.com>
1595
1600
1596 * Magic.py (_inspect, _ofind) Apply David Huard's
1601 * Magic.py (_inspect, _ofind) Apply David Huard's
1597 patch for displaying the correct docstring for 'property'
1602 patch for displaying the correct docstring for 'property'
1598 attributes.
1603 attributes.
1599
1604
1600 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1605 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1601
1606
1602 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1607 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1603 commands into the methods implementing them.
1608 commands into the methods implementing them.
1604
1609
1605 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1610 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1606
1611
1607 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1612 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1608 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1613 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1609 autoindent support was authored by Jin Liu.
1614 autoindent support was authored by Jin Liu.
1610
1615
1611 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1616 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1612
1617
1613 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1618 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1614 for keymaps with a custom class that simplifies handling.
1619 for keymaps with a custom class that simplifies handling.
1615
1620
1616 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1621 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1617
1622
1618 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1623 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1619 resizing. This requires Python 2.5 to work.
1624 resizing. This requires Python 2.5 to work.
1620
1625
1621 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1626 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1622
1627
1623 * IPython/Extensions/ibrowse.py: Add two new commands to
1628 * IPython/Extensions/ibrowse.py: Add two new commands to
1624 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1629 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1625 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1630 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1626 attributes again. Remapped the help command to "?". Display
1631 attributes again. Remapped the help command to "?". Display
1627 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1632 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1628 as keys for the "home" and "end" commands. Add three new commands
1633 as keys for the "home" and "end" commands. Add three new commands
1629 to the input mode for "find" and friends: "delend" (CTRL-K)
1634 to the input mode for "find" and friends: "delend" (CTRL-K)
1630 deletes to the end of line. "incsearchup" searches upwards in the
1635 deletes to the end of line. "incsearchup" searches upwards in the
1631 command history for an input that starts with the text before the cursor.
1636 command history for an input that starts with the text before the cursor.
1632 "incsearchdown" does the same downwards. Removed a bogus mapping of
1637 "incsearchdown" does the same downwards. Removed a bogus mapping of
1633 the x key to "delete".
1638 the x key to "delete".
1634
1639
1635 2006-06-15 Ville Vainio <vivainio@gmail.com>
1640 2006-06-15 Ville Vainio <vivainio@gmail.com>
1636
1641
1637 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1642 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1638 used to create prompts dynamically, instead of the "old" way of
1643 used to create prompts dynamically, instead of the "old" way of
1639 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1644 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1640 way still works (it's invoked by the default hook), of course.
1645 way still works (it's invoked by the default hook), of course.
1641
1646
1642 * Prompts.py: added generate_output_prompt hook for altering output
1647 * Prompts.py: added generate_output_prompt hook for altering output
1643 prompt
1648 prompt
1644
1649
1645 * Release.py: Changed version string to 0.7.3.svn.
1650 * Release.py: Changed version string to 0.7.3.svn.
1646
1651
1647 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1652 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1648
1653
1649 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1654 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1650 the call to fetch() always tries to fetch enough data for at least one
1655 the call to fetch() always tries to fetch enough data for at least one
1651 full screen. This makes it possible to simply call moveto(0,0,True) in
1656 full screen. This makes it possible to simply call moveto(0,0,True) in
1652 the constructor. Fix typos and removed the obsolete goto attribute.
1657 the constructor. Fix typos and removed the obsolete goto attribute.
1653
1658
1654 2006-06-12 Ville Vainio <vivainio@gmail.com>
1659 2006-06-12 Ville Vainio <vivainio@gmail.com>
1655
1660
1656 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1661 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1657 allowing $variable interpolation within multiline statements,
1662 allowing $variable interpolation within multiline statements,
1658 though so far only with "sh" profile for a testing period.
1663 though so far only with "sh" profile for a testing period.
1659 The patch also enables splitting long commands with \ but it
1664 The patch also enables splitting long commands with \ but it
1660 doesn't work properly yet.
1665 doesn't work properly yet.
1661
1666
1662 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1667 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1663
1668
1664 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1669 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1665 input history and the position of the cursor in the input history for
1670 input history and the position of the cursor in the input history for
1666 the find, findbackwards and goto command.
1671 the find, findbackwards and goto command.
1667
1672
1668 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1673 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1669
1674
1670 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1675 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1671 implements the basic functionality of browser commands that require
1676 implements the basic functionality of browser commands that require
1672 input. Reimplement the goto, find and findbackwards commands as
1677 input. Reimplement the goto, find and findbackwards commands as
1673 subclasses of _CommandInput. Add an input history and keymaps to those
1678 subclasses of _CommandInput. Add an input history and keymaps to those
1674 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1679 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1675 execute commands.
1680 execute commands.
1676
1681
1677 2006-06-07 Ville Vainio <vivainio@gmail.com>
1682 2006-06-07 Ville Vainio <vivainio@gmail.com>
1678
1683
1679 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1684 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1680 running the batch files instead of leaving the session open.
1685 running the batch files instead of leaving the session open.
1681
1686
1682 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1687 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1683
1688
1684 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1689 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1685 the original fix was incomplete. Patch submitted by W. Maier.
1690 the original fix was incomplete. Patch submitted by W. Maier.
1686
1691
1687 2006-06-07 Ville Vainio <vivainio@gmail.com>
1692 2006-06-07 Ville Vainio <vivainio@gmail.com>
1688
1693
1689 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1694 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1690 Confirmation prompts can be supressed by 'quiet' option.
1695 Confirmation prompts can be supressed by 'quiet' option.
1691 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1696 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1692
1697
1693 2006-06-06 *** Released version 0.7.2
1698 2006-06-06 *** Released version 0.7.2
1694
1699
1695 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1700 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1696
1701
1697 * IPython/Release.py (version): Made 0.7.2 final for release.
1702 * IPython/Release.py (version): Made 0.7.2 final for release.
1698 Repo tagged and release cut.
1703 Repo tagged and release cut.
1699
1704
1700 2006-06-05 Ville Vainio <vivainio@gmail.com>
1705 2006-06-05 Ville Vainio <vivainio@gmail.com>
1701
1706
1702 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1707 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1703 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1708 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1704
1709
1705 * upgrade_dir.py: try import 'path' module a bit harder
1710 * upgrade_dir.py: try import 'path' module a bit harder
1706 (for %upgrade)
1711 (for %upgrade)
1707
1712
1708 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1713 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1709
1714
1710 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1715 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1711 instead of looping 20 times.
1716 instead of looping 20 times.
1712
1717
1713 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1718 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1714 correctly at initialization time. Bug reported by Krishna Mohan
1719 correctly at initialization time. Bug reported by Krishna Mohan
1715 Gundu <gkmohan-AT-gmail.com> on the user list.
1720 Gundu <gkmohan-AT-gmail.com> on the user list.
1716
1721
1717 * IPython/Release.py (version): Mark 0.7.2 version to start
1722 * IPython/Release.py (version): Mark 0.7.2 version to start
1718 testing for release on 06/06.
1723 testing for release on 06/06.
1719
1724
1720 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1725 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1721
1726
1722 * scripts/irunner: thin script interface so users don't have to
1727 * scripts/irunner: thin script interface so users don't have to
1723 find the module and call it as an executable, since modules rarely
1728 find the module and call it as an executable, since modules rarely
1724 live in people's PATH.
1729 live in people's PATH.
1725
1730
1726 * IPython/irunner.py (InteractiveRunner.__init__): added
1731 * IPython/irunner.py (InteractiveRunner.__init__): added
1727 delaybeforesend attribute to control delays with newer versions of
1732 delaybeforesend attribute to control delays with newer versions of
1728 pexpect. Thanks to detailed help from pexpect's author, Noah
1733 pexpect. Thanks to detailed help from pexpect's author, Noah
1729 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1734 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1730 correctly (it works in NoColor mode).
1735 correctly (it works in NoColor mode).
1731
1736
1732 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1737 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1733 SAGE list, from improper log() calls.
1738 SAGE list, from improper log() calls.
1734
1739
1735 2006-05-31 Ville Vainio <vivainio@gmail.com>
1740 2006-05-31 Ville Vainio <vivainio@gmail.com>
1736
1741
1737 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1742 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1738 with args in parens to work correctly with dirs that have spaces.
1743 with args in parens to work correctly with dirs that have spaces.
1739
1744
1740 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1745 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1741
1746
1742 * IPython/Logger.py (Logger.logstart): add option to log raw input
1747 * IPython/Logger.py (Logger.logstart): add option to log raw input
1743 instead of the processed one. A -r flag was added to the
1748 instead of the processed one. A -r flag was added to the
1744 %logstart magic used for controlling logging.
1749 %logstart magic used for controlling logging.
1745
1750
1746 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1751 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1747
1752
1748 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1753 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1749 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1754 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1750 recognize the option. After a bug report by Will Maier. This
1755 recognize the option. After a bug report by Will Maier. This
1751 closes #64 (will do it after confirmation from W. Maier).
1756 closes #64 (will do it after confirmation from W. Maier).
1752
1757
1753 * IPython/irunner.py: New module to run scripts as if manually
1758 * IPython/irunner.py: New module to run scripts as if manually
1754 typed into an interactive environment, based on pexpect. After a
1759 typed into an interactive environment, based on pexpect. After a
1755 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1760 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1756 ipython-user list. Simple unittests in the tests/ directory.
1761 ipython-user list. Simple unittests in the tests/ directory.
1757
1762
1758 * tools/release: add Will Maier, OpenBSD port maintainer, to
1763 * tools/release: add Will Maier, OpenBSD port maintainer, to
1759 recepients list. We are now officially part of the OpenBSD ports:
1764 recepients list. We are now officially part of the OpenBSD ports:
1760 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1765 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1761 work.
1766 work.
1762
1767
1763 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1768 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1764
1769
1765 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1770 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1766 so that it doesn't break tkinter apps.
1771 so that it doesn't break tkinter apps.
1767
1772
1768 * IPython/iplib.py (_prefilter): fix bug where aliases would
1773 * IPython/iplib.py (_prefilter): fix bug where aliases would
1769 shadow variables when autocall was fully off. Reported by SAGE
1774 shadow variables when autocall was fully off. Reported by SAGE
1770 author William Stein.
1775 author William Stein.
1771
1776
1772 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1777 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1773 at what detail level strings are computed when foo? is requested.
1778 at what detail level strings are computed when foo? is requested.
1774 This allows users to ask for example that the string form of an
1779 This allows users to ask for example that the string form of an
1775 object is only computed when foo?? is called, or even never, by
1780 object is only computed when foo?? is called, or even never, by
1776 setting the object_info_string_level >= 2 in the configuration
1781 setting the object_info_string_level >= 2 in the configuration
1777 file. This new option has been added and documented. After a
1782 file. This new option has been added and documented. After a
1778 request by SAGE to be able to control the printing of very large
1783 request by SAGE to be able to control the printing of very large
1779 objects more easily.
1784 objects more easily.
1780
1785
1781 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1786 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1782
1787
1783 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1788 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1784 from sys.argv, to be 100% consistent with how Python itself works
1789 from sys.argv, to be 100% consistent with how Python itself works
1785 (as seen for example with python -i file.py). After a bug report
1790 (as seen for example with python -i file.py). After a bug report
1786 by Jeffrey Collins.
1791 by Jeffrey Collins.
1787
1792
1788 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1793 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1789 nasty bug which was preventing custom namespaces with -pylab,
1794 nasty bug which was preventing custom namespaces with -pylab,
1790 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1795 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1791 compatibility (long gone from mpl).
1796 compatibility (long gone from mpl).
1792
1797
1793 * IPython/ipapi.py (make_session): name change: create->make. We
1798 * IPython/ipapi.py (make_session): name change: create->make. We
1794 use make in other places (ipmaker,...), it's shorter and easier to
1799 use make in other places (ipmaker,...), it's shorter and easier to
1795 type and say, etc. I'm trying to clean things before 0.7.2 so
1800 type and say, etc. I'm trying to clean things before 0.7.2 so
1796 that I can keep things stable wrt to ipapi in the chainsaw branch.
1801 that I can keep things stable wrt to ipapi in the chainsaw branch.
1797
1802
1798 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1803 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1799 python-mode recognizes our debugger mode. Add support for
1804 python-mode recognizes our debugger mode. Add support for
1800 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1805 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1801 <m.liu.jin-AT-gmail.com> originally written by
1806 <m.liu.jin-AT-gmail.com> originally written by
1802 doxgen-AT-newsmth.net (with minor modifications for xemacs
1807 doxgen-AT-newsmth.net (with minor modifications for xemacs
1803 compatibility)
1808 compatibility)
1804
1809
1805 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1810 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1806 tracebacks when walking the stack so that the stack tracking system
1811 tracebacks when walking the stack so that the stack tracking system
1807 in emacs' python-mode can identify the frames correctly.
1812 in emacs' python-mode can identify the frames correctly.
1808
1813
1809 * IPython/ipmaker.py (make_IPython): make the internal (and
1814 * IPython/ipmaker.py (make_IPython): make the internal (and
1810 default config) autoedit_syntax value false by default. Too many
1815 default config) autoedit_syntax value false by default. Too many
1811 users have complained to me (both on and off-list) about problems
1816 users have complained to me (both on and off-list) about problems
1812 with this option being on by default, so I'm making it default to
1817 with this option being on by default, so I'm making it default to
1813 off. It can still be enabled by anyone via the usual mechanisms.
1818 off. It can still be enabled by anyone via the usual mechanisms.
1814
1819
1815 * IPython/completer.py (Completer.attr_matches): add support for
1820 * IPython/completer.py (Completer.attr_matches): add support for
1816 PyCrust-style _getAttributeNames magic method. Patch contributed
1821 PyCrust-style _getAttributeNames magic method. Patch contributed
1817 by <mscott-AT-goldenspud.com>. Closes #50.
1822 by <mscott-AT-goldenspud.com>. Closes #50.
1818
1823
1819 * IPython/iplib.py (InteractiveShell.__init__): remove the
1824 * IPython/iplib.py (InteractiveShell.__init__): remove the
1820 deletion of exit/quit from __builtin__, which can break
1825 deletion of exit/quit from __builtin__, which can break
1821 third-party tools like the Zope debugging console. The
1826 third-party tools like the Zope debugging console. The
1822 %exit/%quit magics remain. In general, it's probably a good idea
1827 %exit/%quit magics remain. In general, it's probably a good idea
1823 not to delete anything from __builtin__, since we never know what
1828 not to delete anything from __builtin__, since we never know what
1824 that will break. In any case, python now (for 2.5) will support
1829 that will break. In any case, python now (for 2.5) will support
1825 'real' exit/quit, so this issue is moot. Closes #55.
1830 'real' exit/quit, so this issue is moot. Closes #55.
1826
1831
1827 * IPython/genutils.py (with_obj): rename the 'with' function to
1832 * IPython/genutils.py (with_obj): rename the 'with' function to
1828 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1833 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1829 becomes a language keyword. Closes #53.
1834 becomes a language keyword. Closes #53.
1830
1835
1831 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1836 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1832 __file__ attribute to this so it fools more things into thinking
1837 __file__ attribute to this so it fools more things into thinking
1833 it is a real module. Closes #59.
1838 it is a real module. Closes #59.
1834
1839
1835 * IPython/Magic.py (magic_edit): add -n option to open the editor
1840 * IPython/Magic.py (magic_edit): add -n option to open the editor
1836 at a specific line number. After a patch by Stefan van der Walt.
1841 at a specific line number. After a patch by Stefan van der Walt.
1837
1842
1838 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1843 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1839
1844
1840 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1845 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1841 reason the file could not be opened. After automatic crash
1846 reason the file could not be opened. After automatic crash
1842 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1847 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1843 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1848 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1844 (_should_recompile): Don't fire editor if using %bg, since there
1849 (_should_recompile): Don't fire editor if using %bg, since there
1845 is no file in the first place. From the same report as above.
1850 is no file in the first place. From the same report as above.
1846 (raw_input): protect against faulty third-party prefilters. After
1851 (raw_input): protect against faulty third-party prefilters. After
1847 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1852 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1848 while running under SAGE.
1853 while running under SAGE.
1849
1854
1850 2006-05-23 Ville Vainio <vivainio@gmail.com>
1855 2006-05-23 Ville Vainio <vivainio@gmail.com>
1851
1856
1852 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1857 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1853 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1858 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1854 now returns None (again), unless dummy is specifically allowed by
1859 now returns None (again), unless dummy is specifically allowed by
1855 ipapi.get(allow_dummy=True).
1860 ipapi.get(allow_dummy=True).
1856
1861
1857 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1862 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1858
1863
1859 * IPython: remove all 2.2-compatibility objects and hacks from
1864 * IPython: remove all 2.2-compatibility objects and hacks from
1860 everywhere, since we only support 2.3 at this point. Docs
1865 everywhere, since we only support 2.3 at this point. Docs
1861 updated.
1866 updated.
1862
1867
1863 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1868 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1864 Anything requiring extra validation can be turned into a Python
1869 Anything requiring extra validation can be turned into a Python
1865 property in the future. I used a property for the db one b/c
1870 property in the future. I used a property for the db one b/c
1866 there was a nasty circularity problem with the initialization
1871 there was a nasty circularity problem with the initialization
1867 order, which right now I don't have time to clean up.
1872 order, which right now I don't have time to clean up.
1868
1873
1869 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1874 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1870 another locking bug reported by Jorgen. I'm not 100% sure though,
1875 another locking bug reported by Jorgen. I'm not 100% sure though,
1871 so more testing is needed...
1876 so more testing is needed...
1872
1877
1873 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1878 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1874
1879
1875 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1880 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1876 local variables from any routine in user code (typically executed
1881 local variables from any routine in user code (typically executed
1877 with %run) directly into the interactive namespace. Very useful
1882 with %run) directly into the interactive namespace. Very useful
1878 when doing complex debugging.
1883 when doing complex debugging.
1879 (IPythonNotRunning): Changed the default None object to a dummy
1884 (IPythonNotRunning): Changed the default None object to a dummy
1880 whose attributes can be queried as well as called without
1885 whose attributes can be queried as well as called without
1881 exploding, to ease writing code which works transparently both in
1886 exploding, to ease writing code which works transparently both in
1882 and out of ipython and uses some of this API.
1887 and out of ipython and uses some of this API.
1883
1888
1884 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1889 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1885
1890
1886 * IPython/hooks.py (result_display): Fix the fact that our display
1891 * IPython/hooks.py (result_display): Fix the fact that our display
1887 hook was using str() instead of repr(), as the default python
1892 hook was using str() instead of repr(), as the default python
1888 console does. This had gone unnoticed b/c it only happened if
1893 console does. This had gone unnoticed b/c it only happened if
1889 %Pprint was off, but the inconsistency was there.
1894 %Pprint was off, but the inconsistency was there.
1890
1895
1891 2006-05-15 Ville Vainio <vivainio@gmail.com>
1896 2006-05-15 Ville Vainio <vivainio@gmail.com>
1892
1897
1893 * Oinspect.py: Only show docstring for nonexisting/binary files
1898 * Oinspect.py: Only show docstring for nonexisting/binary files
1894 when doing object??, closing ticket #62
1899 when doing object??, closing ticket #62
1895
1900
1896 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1901 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1897
1902
1898 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1903 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1899 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1904 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1900 was being released in a routine which hadn't checked if it had
1905 was being released in a routine which hadn't checked if it had
1901 been the one to acquire it.
1906 been the one to acquire it.
1902
1907
1903 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1908 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1904
1909
1905 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1910 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1906
1911
1907 2006-04-11 Ville Vainio <vivainio@gmail.com>
1912 2006-04-11 Ville Vainio <vivainio@gmail.com>
1908
1913
1909 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1914 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1910 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1915 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1911 prefilters, allowing stuff like magics and aliases in the file.
1916 prefilters, allowing stuff like magics and aliases in the file.
1912
1917
1913 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1918 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1914 added. Supported now are "%clear in" and "%clear out" (clear input and
1919 added. Supported now are "%clear in" and "%clear out" (clear input and
1915 output history, respectively). Also fixed CachedOutput.flush to
1920 output history, respectively). Also fixed CachedOutput.flush to
1916 properly flush the output cache.
1921 properly flush the output cache.
1917
1922
1918 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1923 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1919 half-success (and fail explicitly).
1924 half-success (and fail explicitly).
1920
1925
1921 2006-03-28 Ville Vainio <vivainio@gmail.com>
1926 2006-03-28 Ville Vainio <vivainio@gmail.com>
1922
1927
1923 * iplib.py: Fix quoting of aliases so that only argless ones
1928 * iplib.py: Fix quoting of aliases so that only argless ones
1924 are quoted
1929 are quoted
1925
1930
1926 2006-03-28 Ville Vainio <vivainio@gmail.com>
1931 2006-03-28 Ville Vainio <vivainio@gmail.com>
1927
1932
1928 * iplib.py: Quote aliases with spaces in the name.
1933 * iplib.py: Quote aliases with spaces in the name.
1929 "c:\program files\blah\bin" is now legal alias target.
1934 "c:\program files\blah\bin" is now legal alias target.
1930
1935
1931 * ext_rehashdir.py: Space no longer allowed as arg
1936 * ext_rehashdir.py: Space no longer allowed as arg
1932 separator, since space is legal in path names.
1937 separator, since space is legal in path names.
1933
1938
1934 2006-03-16 Ville Vainio <vivainio@gmail.com>
1939 2006-03-16 Ville Vainio <vivainio@gmail.com>
1935
1940
1936 * upgrade_dir.py: Take path.py from Extensions, correcting
1941 * upgrade_dir.py: Take path.py from Extensions, correcting
1937 %upgrade magic
1942 %upgrade magic
1938
1943
1939 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1944 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1940
1945
1941 * hooks.py: Only enclose editor binary in quotes if legal and
1946 * hooks.py: Only enclose editor binary in quotes if legal and
1942 necessary (space in the name, and is an existing file). Fixes a bug
1947 necessary (space in the name, and is an existing file). Fixes a bug
1943 reported by Zachary Pincus.
1948 reported by Zachary Pincus.
1944
1949
1945 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1950 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1946
1951
1947 * Manual: thanks to a tip on proper color handling for Emacs, by
1952 * Manual: thanks to a tip on proper color handling for Emacs, by
1948 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1953 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1949
1954
1950 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1955 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1951 by applying the provided patch. Thanks to Liu Jin
1956 by applying the provided patch. Thanks to Liu Jin
1952 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1957 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1953 XEmacs/Linux, I'm trusting the submitter that it actually helps
1958 XEmacs/Linux, I'm trusting the submitter that it actually helps
1954 under win32/GNU Emacs. Will revisit if any problems are reported.
1959 under win32/GNU Emacs. Will revisit if any problems are reported.
1955
1960
1956 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1961 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1957
1962
1958 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1963 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1959 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1964 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1960
1965
1961 2006-03-12 Ville Vainio <vivainio@gmail.com>
1966 2006-03-12 Ville Vainio <vivainio@gmail.com>
1962
1967
1963 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1968 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1964 Torsten Marek.
1969 Torsten Marek.
1965
1970
1966 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1971 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1967
1972
1968 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1973 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1969 line ranges works again.
1974 line ranges works again.
1970
1975
1971 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1976 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1972
1977
1973 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1978 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1974 and friends, after a discussion with Zach Pincus on ipython-user.
1979 and friends, after a discussion with Zach Pincus on ipython-user.
1975 I'm not 100% sure, but after thinking about it quite a bit, it may
1980 I'm not 100% sure, but after thinking about it quite a bit, it may
1976 be OK. Testing with the multithreaded shells didn't reveal any
1981 be OK. Testing with the multithreaded shells didn't reveal any
1977 problems, but let's keep an eye out.
1982 problems, but let's keep an eye out.
1978
1983
1979 In the process, I fixed a few things which were calling
1984 In the process, I fixed a few things which were calling
1980 self.InteractiveTB() directly (like safe_execfile), which is a
1985 self.InteractiveTB() directly (like safe_execfile), which is a
1981 mistake: ALL exception reporting should be done by calling
1986 mistake: ALL exception reporting should be done by calling
1982 self.showtraceback(), which handles state and tab-completion and
1987 self.showtraceback(), which handles state and tab-completion and
1983 more.
1988 more.
1984
1989
1985 2006-03-01 Ville Vainio <vivainio@gmail.com>
1990 2006-03-01 Ville Vainio <vivainio@gmail.com>
1986
1991
1987 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1992 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1988 To use, do "from ipipe import *".
1993 To use, do "from ipipe import *".
1989
1994
1990 2006-02-24 Ville Vainio <vivainio@gmail.com>
1995 2006-02-24 Ville Vainio <vivainio@gmail.com>
1991
1996
1992 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1997 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1993 "cleanly" and safely than the older upgrade mechanism.
1998 "cleanly" and safely than the older upgrade mechanism.
1994
1999
1995 2006-02-21 Ville Vainio <vivainio@gmail.com>
2000 2006-02-21 Ville Vainio <vivainio@gmail.com>
1996
2001
1997 * Magic.py: %save works again.
2002 * Magic.py: %save works again.
1998
2003
1999 2006-02-15 Ville Vainio <vivainio@gmail.com>
2004 2006-02-15 Ville Vainio <vivainio@gmail.com>
2000
2005
2001 * Magic.py: %Pprint works again
2006 * Magic.py: %Pprint works again
2002
2007
2003 * Extensions/ipy_sane_defaults.py: Provide everything provided
2008 * Extensions/ipy_sane_defaults.py: Provide everything provided
2004 in default ipythonrc, to make it possible to have a completely empty
2009 in default ipythonrc, to make it possible to have a completely empty
2005 ipythonrc (and thus completely rc-file free configuration)
2010 ipythonrc (and thus completely rc-file free configuration)
2006
2011
2007 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2012 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2008
2013
2009 * IPython/hooks.py (editor): quote the call to the editor command,
2014 * IPython/hooks.py (editor): quote the call to the editor command,
2010 to allow commands with spaces in them. Problem noted by watching
2015 to allow commands with spaces in them. Problem noted by watching
2011 Ian Oswald's video about textpad under win32 at
2016 Ian Oswald's video about textpad under win32 at
2012 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2017 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2013
2018
2014 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2019 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2015 describing magics (we haven't used @ for a loong time).
2020 describing magics (we haven't used @ for a loong time).
2016
2021
2017 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2022 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2018 contributed by marienz to close
2023 contributed by marienz to close
2019 http://www.scipy.net/roundup/ipython/issue53.
2024 http://www.scipy.net/roundup/ipython/issue53.
2020
2025
2021 2006-02-10 Ville Vainio <vivainio@gmail.com>
2026 2006-02-10 Ville Vainio <vivainio@gmail.com>
2022
2027
2023 * genutils.py: getoutput now works in win32 too
2028 * genutils.py: getoutput now works in win32 too
2024
2029
2025 * completer.py: alias and magic completion only invoked
2030 * completer.py: alias and magic completion only invoked
2026 at the first "item" in the line, to avoid "cd %store"
2031 at the first "item" in the line, to avoid "cd %store"
2027 nonsense.
2032 nonsense.
2028
2033
2029 2006-02-09 Ville Vainio <vivainio@gmail.com>
2034 2006-02-09 Ville Vainio <vivainio@gmail.com>
2030
2035
2031 * test/*: Added a unit testing framework (finally).
2036 * test/*: Added a unit testing framework (finally).
2032 '%run runtests.py' to run test_*.
2037 '%run runtests.py' to run test_*.
2033
2038
2034 * ipapi.py: Exposed runlines and set_custom_exc
2039 * ipapi.py: Exposed runlines and set_custom_exc
2035
2040
2036 2006-02-07 Ville Vainio <vivainio@gmail.com>
2041 2006-02-07 Ville Vainio <vivainio@gmail.com>
2037
2042
2038 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2043 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2039 instead use "f(1 2)" as before.
2044 instead use "f(1 2)" as before.
2040
2045
2041 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2046 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2042
2047
2043 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2048 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2044 facilities, for demos processed by the IPython input filter
2049 facilities, for demos processed by the IPython input filter
2045 (IPythonDemo), and for running a script one-line-at-a-time as a
2050 (IPythonDemo), and for running a script one-line-at-a-time as a
2046 demo, both for pure Python (LineDemo) and for IPython-processed
2051 demo, both for pure Python (LineDemo) and for IPython-processed
2047 input (IPythonLineDemo). After a request by Dave Kohel, from the
2052 input (IPythonLineDemo). After a request by Dave Kohel, from the
2048 SAGE team.
2053 SAGE team.
2049 (Demo.edit): added an edit() method to the demo objects, to edit
2054 (Demo.edit): added an edit() method to the demo objects, to edit
2050 the in-memory copy of the last executed block.
2055 the in-memory copy of the last executed block.
2051
2056
2052 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2057 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2053 processing to %edit, %macro and %save. These commands can now be
2058 processing to %edit, %macro and %save. These commands can now be
2054 invoked on the unprocessed input as it was typed by the user
2059 invoked on the unprocessed input as it was typed by the user
2055 (without any prefilters applied). After requests by the SAGE team
2060 (without any prefilters applied). After requests by the SAGE team
2056 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2061 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2057
2062
2058 2006-02-01 Ville Vainio <vivainio@gmail.com>
2063 2006-02-01 Ville Vainio <vivainio@gmail.com>
2059
2064
2060 * setup.py, eggsetup.py: easy_install ipython==dev works
2065 * setup.py, eggsetup.py: easy_install ipython==dev works
2061 correctly now (on Linux)
2066 correctly now (on Linux)
2062
2067
2063 * ipy_user_conf,ipmaker: user config changes, removed spurious
2068 * ipy_user_conf,ipmaker: user config changes, removed spurious
2064 warnings
2069 warnings
2065
2070
2066 * iplib: if rc.banner is string, use it as is.
2071 * iplib: if rc.banner is string, use it as is.
2067
2072
2068 * Magic: %pycat accepts a string argument and pages it's contents.
2073 * Magic: %pycat accepts a string argument and pages it's contents.
2069
2074
2070
2075
2071 2006-01-30 Ville Vainio <vivainio@gmail.com>
2076 2006-01-30 Ville Vainio <vivainio@gmail.com>
2072
2077
2073 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2078 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2074 Now %store and bookmarks work through PickleShare, meaning that
2079 Now %store and bookmarks work through PickleShare, meaning that
2075 concurrent access is possible and all ipython sessions see the
2080 concurrent access is possible and all ipython sessions see the
2076 same database situation all the time, instead of snapshot of
2081 same database situation all the time, instead of snapshot of
2077 the situation when the session was started. Hence, %bookmark
2082 the situation when the session was started. Hence, %bookmark
2078 results are immediately accessible from othes sessions. The database
2083 results are immediately accessible from othes sessions. The database
2079 is also available for use by user extensions. See:
2084 is also available for use by user extensions. See:
2080 http://www.python.org/pypi/pickleshare
2085 http://www.python.org/pypi/pickleshare
2081
2086
2082 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2087 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2083
2088
2084 * aliases can now be %store'd
2089 * aliases can now be %store'd
2085
2090
2086 * path.py moved to Extensions so that pickleshare does not need
2091 * path.py moved to Extensions so that pickleshare does not need
2087 IPython-specific import. Extensions added to pythonpath right
2092 IPython-specific import. Extensions added to pythonpath right
2088 at __init__.
2093 at __init__.
2089
2094
2090 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2095 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2091 called with _ip.system and the pre-transformed command string.
2096 called with _ip.system and the pre-transformed command string.
2092
2097
2093 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2098 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2094
2099
2095 * IPython/iplib.py (interact): Fix that we were not catching
2100 * IPython/iplib.py (interact): Fix that we were not catching
2096 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2101 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2097 logic here had to change, but it's fixed now.
2102 logic here had to change, but it's fixed now.
2098
2103
2099 2006-01-29 Ville Vainio <vivainio@gmail.com>
2104 2006-01-29 Ville Vainio <vivainio@gmail.com>
2100
2105
2101 * iplib.py: Try to import pyreadline on Windows.
2106 * iplib.py: Try to import pyreadline on Windows.
2102
2107
2103 2006-01-27 Ville Vainio <vivainio@gmail.com>
2108 2006-01-27 Ville Vainio <vivainio@gmail.com>
2104
2109
2105 * iplib.py: Expose ipapi as _ip in builtin namespace.
2110 * iplib.py: Expose ipapi as _ip in builtin namespace.
2106 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2111 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2107 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2112 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2108 syntax now produce _ip.* variant of the commands.
2113 syntax now produce _ip.* variant of the commands.
2109
2114
2110 * "_ip.options().autoedit_syntax = 2" automatically throws
2115 * "_ip.options().autoedit_syntax = 2" automatically throws
2111 user to editor for syntax error correction without prompting.
2116 user to editor for syntax error correction without prompting.
2112
2117
2113 2006-01-27 Ville Vainio <vivainio@gmail.com>
2118 2006-01-27 Ville Vainio <vivainio@gmail.com>
2114
2119
2115 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2120 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2116 'ipython' at argv[0]) executed through command line.
2121 'ipython' at argv[0]) executed through command line.
2117 NOTE: this DEPRECATES calling ipython with multiple scripts
2122 NOTE: this DEPRECATES calling ipython with multiple scripts
2118 ("ipython a.py b.py c.py")
2123 ("ipython a.py b.py c.py")
2119
2124
2120 * iplib.py, hooks.py: Added configurable input prefilter,
2125 * iplib.py, hooks.py: Added configurable input prefilter,
2121 named 'input_prefilter'. See ext_rescapture.py for example
2126 named 'input_prefilter'. See ext_rescapture.py for example
2122 usage.
2127 usage.
2123
2128
2124 * ext_rescapture.py, Magic.py: Better system command output capture
2129 * ext_rescapture.py, Magic.py: Better system command output capture
2125 through 'var = !ls' (deprecates user-visible %sc). Same notation
2130 through 'var = !ls' (deprecates user-visible %sc). Same notation
2126 applies for magics, 'var = %alias' assigns alias list to var.
2131 applies for magics, 'var = %alias' assigns alias list to var.
2127
2132
2128 * ipapi.py: added meta() for accessing extension-usable data store.
2133 * ipapi.py: added meta() for accessing extension-usable data store.
2129
2134
2130 * iplib.py: added InteractiveShell.getapi(). New magics should be
2135 * iplib.py: added InteractiveShell.getapi(). New magics should be
2131 written doing self.getapi() instead of using the shell directly.
2136 written doing self.getapi() instead of using the shell directly.
2132
2137
2133 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2138 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2134 %store foo >> ~/myfoo.txt to store variables to files (in clean
2139 %store foo >> ~/myfoo.txt to store variables to files (in clean
2135 textual form, not a restorable pickle).
2140 textual form, not a restorable pickle).
2136
2141
2137 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2142 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2138
2143
2139 * usage.py, Magic.py: added %quickref
2144 * usage.py, Magic.py: added %quickref
2140
2145
2141 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2146 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2142
2147
2143 * GetoptErrors when invoking magics etc. with wrong args
2148 * GetoptErrors when invoking magics etc. with wrong args
2144 are now more helpful:
2149 are now more helpful:
2145 GetoptError: option -l not recognized (allowed: "qb" )
2150 GetoptError: option -l not recognized (allowed: "qb" )
2146
2151
2147 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2152 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2148
2153
2149 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2154 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2150 computationally intensive blocks don't appear to stall the demo.
2155 computationally intensive blocks don't appear to stall the demo.
2151
2156
2152 2006-01-24 Ville Vainio <vivainio@gmail.com>
2157 2006-01-24 Ville Vainio <vivainio@gmail.com>
2153
2158
2154 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2159 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2155 value to manipulate resulting history entry.
2160 value to manipulate resulting history entry.
2156
2161
2157 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2162 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2158 to instance methods of IPApi class, to make extending an embedded
2163 to instance methods of IPApi class, to make extending an embedded
2159 IPython feasible. See ext_rehashdir.py for example usage.
2164 IPython feasible. See ext_rehashdir.py for example usage.
2160
2165
2161 * Merged 1071-1076 from branches/0.7.1
2166 * Merged 1071-1076 from branches/0.7.1
2162
2167
2163
2168
2164 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2169 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2165
2170
2166 * tools/release (daystamp): Fix build tools to use the new
2171 * tools/release (daystamp): Fix build tools to use the new
2167 eggsetup.py script to build lightweight eggs.
2172 eggsetup.py script to build lightweight eggs.
2168
2173
2169 * Applied changesets 1062 and 1064 before 0.7.1 release.
2174 * Applied changesets 1062 and 1064 before 0.7.1 release.
2170
2175
2171 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2176 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2172 see the raw input history (without conversions like %ls ->
2177 see the raw input history (without conversions like %ls ->
2173 ipmagic("ls")). After a request from W. Stein, SAGE
2178 ipmagic("ls")). After a request from W. Stein, SAGE
2174 (http://modular.ucsd.edu/sage) developer. This information is
2179 (http://modular.ucsd.edu/sage) developer. This information is
2175 stored in the input_hist_raw attribute of the IPython instance, so
2180 stored in the input_hist_raw attribute of the IPython instance, so
2176 developers can access it if needed (it's an InputList instance).
2181 developers can access it if needed (it's an InputList instance).
2177
2182
2178 * Versionstring = 0.7.2.svn
2183 * Versionstring = 0.7.2.svn
2179
2184
2180 * eggsetup.py: A separate script for constructing eggs, creates
2185 * eggsetup.py: A separate script for constructing eggs, creates
2181 proper launch scripts even on Windows (an .exe file in
2186 proper launch scripts even on Windows (an .exe file in
2182 \python24\scripts).
2187 \python24\scripts).
2183
2188
2184 * ipapi.py: launch_new_instance, launch entry point needed for the
2189 * ipapi.py: launch_new_instance, launch entry point needed for the
2185 egg.
2190 egg.
2186
2191
2187 2006-01-23 Ville Vainio <vivainio@gmail.com>
2192 2006-01-23 Ville Vainio <vivainio@gmail.com>
2188
2193
2189 * Added %cpaste magic for pasting python code
2194 * Added %cpaste magic for pasting python code
2190
2195
2191 2006-01-22 Ville Vainio <vivainio@gmail.com>
2196 2006-01-22 Ville Vainio <vivainio@gmail.com>
2192
2197
2193 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2198 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2194
2199
2195 * Versionstring = 0.7.2.svn
2200 * Versionstring = 0.7.2.svn
2196
2201
2197 * eggsetup.py: A separate script for constructing eggs, creates
2202 * eggsetup.py: A separate script for constructing eggs, creates
2198 proper launch scripts even on Windows (an .exe file in
2203 proper launch scripts even on Windows (an .exe file in
2199 \python24\scripts).
2204 \python24\scripts).
2200
2205
2201 * ipapi.py: launch_new_instance, launch entry point needed for the
2206 * ipapi.py: launch_new_instance, launch entry point needed for the
2202 egg.
2207 egg.
2203
2208
2204 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2209 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2205
2210
2206 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2211 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2207 %pfile foo would print the file for foo even if it was a binary.
2212 %pfile foo would print the file for foo even if it was a binary.
2208 Now, extensions '.so' and '.dll' are skipped.
2213 Now, extensions '.so' and '.dll' are skipped.
2209
2214
2210 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2215 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2211 bug, where macros would fail in all threaded modes. I'm not 100%
2216 bug, where macros would fail in all threaded modes. I'm not 100%
2212 sure, so I'm going to put out an rc instead of making a release
2217 sure, so I'm going to put out an rc instead of making a release
2213 today, and wait for feedback for at least a few days.
2218 today, and wait for feedback for at least a few days.
2214
2219
2215 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2220 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2216 it...) the handling of pasting external code with autoindent on.
2221 it...) the handling of pasting external code with autoindent on.
2217 To get out of a multiline input, the rule will appear for most
2222 To get out of a multiline input, the rule will appear for most
2218 users unchanged: two blank lines or change the indent level
2223 users unchanged: two blank lines or change the indent level
2219 proposed by IPython. But there is a twist now: you can
2224 proposed by IPython. But there is a twist now: you can
2220 add/subtract only *one or two spaces*. If you add/subtract three
2225 add/subtract only *one or two spaces*. If you add/subtract three
2221 or more (unless you completely delete the line), IPython will
2226 or more (unless you completely delete the line), IPython will
2222 accept that line, and you'll need to enter a second one of pure
2227 accept that line, and you'll need to enter a second one of pure
2223 whitespace. I know it sounds complicated, but I can't find a
2228 whitespace. I know it sounds complicated, but I can't find a
2224 different solution that covers all the cases, with the right
2229 different solution that covers all the cases, with the right
2225 heuristics. Hopefully in actual use, nobody will really notice
2230 heuristics. Hopefully in actual use, nobody will really notice
2226 all these strange rules and things will 'just work'.
2231 all these strange rules and things will 'just work'.
2227
2232
2228 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2233 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2229
2234
2230 * IPython/iplib.py (interact): catch exceptions which can be
2235 * IPython/iplib.py (interact): catch exceptions which can be
2231 triggered asynchronously by signal handlers. Thanks to an
2236 triggered asynchronously by signal handlers. Thanks to an
2232 automatic crash report, submitted by Colin Kingsley
2237 automatic crash report, submitted by Colin Kingsley
2233 <tercel-AT-gentoo.org>.
2238 <tercel-AT-gentoo.org>.
2234
2239
2235 2006-01-20 Ville Vainio <vivainio@gmail.com>
2240 2006-01-20 Ville Vainio <vivainio@gmail.com>
2236
2241
2237 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2242 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2238 (%rehashdir, very useful, try it out) of how to extend ipython
2243 (%rehashdir, very useful, try it out) of how to extend ipython
2239 with new magics. Also added Extensions dir to pythonpath to make
2244 with new magics. Also added Extensions dir to pythonpath to make
2240 importing extensions easy.
2245 importing extensions easy.
2241
2246
2242 * %store now complains when trying to store interactively declared
2247 * %store now complains when trying to store interactively declared
2243 classes / instances of those classes.
2248 classes / instances of those classes.
2244
2249
2245 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2250 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2246 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2251 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2247 if they exist, and ipy_user_conf.py with some defaults is created for
2252 if they exist, and ipy_user_conf.py with some defaults is created for
2248 the user.
2253 the user.
2249
2254
2250 * Startup rehashing done by the config file, not InterpreterExec.
2255 * Startup rehashing done by the config file, not InterpreterExec.
2251 This means system commands are available even without selecting the
2256 This means system commands are available even without selecting the
2252 pysh profile. It's the sensible default after all.
2257 pysh profile. It's the sensible default after all.
2253
2258
2254 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2259 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2255
2260
2256 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2261 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2257 multiline code with autoindent on working. But I am really not
2262 multiline code with autoindent on working. But I am really not
2258 sure, so this needs more testing. Will commit a debug-enabled
2263 sure, so this needs more testing. Will commit a debug-enabled
2259 version for now, while I test it some more, so that Ville and
2264 version for now, while I test it some more, so that Ville and
2260 others may also catch any problems. Also made
2265 others may also catch any problems. Also made
2261 self.indent_current_str() a method, to ensure that there's no
2266 self.indent_current_str() a method, to ensure that there's no
2262 chance of the indent space count and the corresponding string
2267 chance of the indent space count and the corresponding string
2263 falling out of sync. All code needing the string should just call
2268 falling out of sync. All code needing the string should just call
2264 the method.
2269 the method.
2265
2270
2266 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2271 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2267
2272
2268 * IPython/Magic.py (magic_edit): fix check for when users don't
2273 * IPython/Magic.py (magic_edit): fix check for when users don't
2269 save their output files, the try/except was in the wrong section.
2274 save their output files, the try/except was in the wrong section.
2270
2275
2271 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2276 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2272
2277
2273 * IPython/Magic.py (magic_run): fix __file__ global missing from
2278 * IPython/Magic.py (magic_run): fix __file__ global missing from
2274 script's namespace when executed via %run. After a report by
2279 script's namespace when executed via %run. After a report by
2275 Vivian.
2280 Vivian.
2276
2281
2277 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2282 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2278 when using python 2.4. The parent constructor changed in 2.4, and
2283 when using python 2.4. The parent constructor changed in 2.4, and
2279 we need to track it directly (we can't call it, as it messes up
2284 we need to track it directly (we can't call it, as it messes up
2280 readline and tab-completion inside our pdb would stop working).
2285 readline and tab-completion inside our pdb would stop working).
2281 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2286 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2282
2287
2283 2006-01-16 Ville Vainio <vivainio@gmail.com>
2288 2006-01-16 Ville Vainio <vivainio@gmail.com>
2284
2289
2285 * Ipython/magic.py: Reverted back to old %edit functionality
2290 * Ipython/magic.py: Reverted back to old %edit functionality
2286 that returns file contents on exit.
2291 that returns file contents on exit.
2287
2292
2288 * IPython/path.py: Added Jason Orendorff's "path" module to
2293 * IPython/path.py: Added Jason Orendorff's "path" module to
2289 IPython tree, http://www.jorendorff.com/articles/python/path/.
2294 IPython tree, http://www.jorendorff.com/articles/python/path/.
2290 You can get path objects conveniently through %sc, and !!, e.g.:
2295 You can get path objects conveniently through %sc, and !!, e.g.:
2291 sc files=ls
2296 sc files=ls
2292 for p in files.paths: # or files.p
2297 for p in files.paths: # or files.p
2293 print p,p.mtime
2298 print p,p.mtime
2294
2299
2295 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2300 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2296 now work again without considering the exclusion regexp -
2301 now work again without considering the exclusion regexp -
2297 hence, things like ',foo my/path' turn to 'foo("my/path")'
2302 hence, things like ',foo my/path' turn to 'foo("my/path")'
2298 instead of syntax error.
2303 instead of syntax error.
2299
2304
2300
2305
2301 2006-01-14 Ville Vainio <vivainio@gmail.com>
2306 2006-01-14 Ville Vainio <vivainio@gmail.com>
2302
2307
2303 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2308 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2304 ipapi decorators for python 2.4 users, options() provides access to rc
2309 ipapi decorators for python 2.4 users, options() provides access to rc
2305 data.
2310 data.
2306
2311
2307 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2312 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2308 as path separators (even on Linux ;-). Space character after
2313 as path separators (even on Linux ;-). Space character after
2309 backslash (as yielded by tab completer) is still space;
2314 backslash (as yielded by tab completer) is still space;
2310 "%cd long\ name" works as expected.
2315 "%cd long\ name" works as expected.
2311
2316
2312 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2317 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2313 as "chain of command", with priority. API stays the same,
2318 as "chain of command", with priority. API stays the same,
2314 TryNext exception raised by a hook function signals that
2319 TryNext exception raised by a hook function signals that
2315 current hook failed and next hook should try handling it, as
2320 current hook failed and next hook should try handling it, as
2316 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2321 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2317 requested configurable display hook, which is now implemented.
2322 requested configurable display hook, which is now implemented.
2318
2323
2319 2006-01-13 Ville Vainio <vivainio@gmail.com>
2324 2006-01-13 Ville Vainio <vivainio@gmail.com>
2320
2325
2321 * IPython/platutils*.py: platform specific utility functions,
2326 * IPython/platutils*.py: platform specific utility functions,
2322 so far only set_term_title is implemented (change terminal
2327 so far only set_term_title is implemented (change terminal
2323 label in windowing systems). %cd now changes the title to
2328 label in windowing systems). %cd now changes the title to
2324 current dir.
2329 current dir.
2325
2330
2326 * IPython/Release.py: Added myself to "authors" list,
2331 * IPython/Release.py: Added myself to "authors" list,
2327 had to create new files.
2332 had to create new files.
2328
2333
2329 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2334 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2330 shell escape; not a known bug but had potential to be one in the
2335 shell escape; not a known bug but had potential to be one in the
2331 future.
2336 future.
2332
2337
2333 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2338 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2334 extension API for IPython! See the module for usage example. Fix
2339 extension API for IPython! See the module for usage example. Fix
2335 OInspect for docstring-less magic functions.
2340 OInspect for docstring-less magic functions.
2336
2341
2337
2342
2338 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2343 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2339
2344
2340 * IPython/iplib.py (raw_input): temporarily deactivate all
2345 * IPython/iplib.py (raw_input): temporarily deactivate all
2341 attempts at allowing pasting of code with autoindent on. It
2346 attempts at allowing pasting of code with autoindent on. It
2342 introduced bugs (reported by Prabhu) and I can't seem to find a
2347 introduced bugs (reported by Prabhu) and I can't seem to find a
2343 robust combination which works in all cases. Will have to revisit
2348 robust combination which works in all cases. Will have to revisit
2344 later.
2349 later.
2345
2350
2346 * IPython/genutils.py: remove isspace() function. We've dropped
2351 * IPython/genutils.py: remove isspace() function. We've dropped
2347 2.2 compatibility, so it's OK to use the string method.
2352 2.2 compatibility, so it's OK to use the string method.
2348
2353
2349 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2354 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2350
2355
2351 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2356 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2352 matching what NOT to autocall on, to include all python binary
2357 matching what NOT to autocall on, to include all python binary
2353 operators (including things like 'and', 'or', 'is' and 'in').
2358 operators (including things like 'and', 'or', 'is' and 'in').
2354 Prompted by a bug report on 'foo & bar', but I realized we had
2359 Prompted by a bug report on 'foo & bar', but I realized we had
2355 many more potential bug cases with other operators. The regexp is
2360 many more potential bug cases with other operators. The regexp is
2356 self.re_exclude_auto, it's fairly commented.
2361 self.re_exclude_auto, it's fairly commented.
2357
2362
2358 2006-01-12 Ville Vainio <vivainio@gmail.com>
2363 2006-01-12 Ville Vainio <vivainio@gmail.com>
2359
2364
2360 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2365 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2361 Prettified and hardened string/backslash quoting with ipsystem(),
2366 Prettified and hardened string/backslash quoting with ipsystem(),
2362 ipalias() and ipmagic(). Now even \ characters are passed to
2367 ipalias() and ipmagic(). Now even \ characters are passed to
2363 %magics, !shell escapes and aliases exactly as they are in the
2368 %magics, !shell escapes and aliases exactly as they are in the
2364 ipython command line. Should improve backslash experience,
2369 ipython command line. Should improve backslash experience,
2365 particularly in Windows (path delimiter for some commands that
2370 particularly in Windows (path delimiter for some commands that
2366 won't understand '/'), but Unix benefits as well (regexps). %cd
2371 won't understand '/'), but Unix benefits as well (regexps). %cd
2367 magic still doesn't support backslash path delimiters, though. Also
2372 magic still doesn't support backslash path delimiters, though. Also
2368 deleted all pretense of supporting multiline command strings in
2373 deleted all pretense of supporting multiline command strings in
2369 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2374 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2370
2375
2371 * doc/build_doc_instructions.txt added. Documentation on how to
2376 * doc/build_doc_instructions.txt added. Documentation on how to
2372 use doc/update_manual.py, added yesterday. Both files contributed
2377 use doc/update_manual.py, added yesterday. Both files contributed
2373 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2378 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2374 doc/*.sh for deprecation at a later date.
2379 doc/*.sh for deprecation at a later date.
2375
2380
2376 * /ipython.py Added ipython.py to root directory for
2381 * /ipython.py Added ipython.py to root directory for
2377 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2382 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2378 ipython.py) and development convenience (no need to keep doing
2383 ipython.py) and development convenience (no need to keep doing
2379 "setup.py install" between changes).
2384 "setup.py install" between changes).
2380
2385
2381 * Made ! and !! shell escapes work (again) in multiline expressions:
2386 * Made ! and !! shell escapes work (again) in multiline expressions:
2382 if 1:
2387 if 1:
2383 !ls
2388 !ls
2384 !!ls
2389 !!ls
2385
2390
2386 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2391 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2387
2392
2388 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2393 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2389 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2394 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2390 module in case-insensitive installation. Was causing crashes
2395 module in case-insensitive installation. Was causing crashes
2391 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2396 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2392
2397
2393 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2398 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2394 <marienz-AT-gentoo.org>, closes
2399 <marienz-AT-gentoo.org>, closes
2395 http://www.scipy.net/roundup/ipython/issue51.
2400 http://www.scipy.net/roundup/ipython/issue51.
2396
2401
2397 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2402 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2398
2403
2399 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2404 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2400 problem of excessive CPU usage under *nix and keyboard lag under
2405 problem of excessive CPU usage under *nix and keyboard lag under
2401 win32.
2406 win32.
2402
2407
2403 2006-01-10 *** Released version 0.7.0
2408 2006-01-10 *** Released version 0.7.0
2404
2409
2405 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2410 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2406
2411
2407 * IPython/Release.py (revision): tag version number to 0.7.0,
2412 * IPython/Release.py (revision): tag version number to 0.7.0,
2408 ready for release.
2413 ready for release.
2409
2414
2410 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2415 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2411 it informs the user of the name of the temp. file used. This can
2416 it informs the user of the name of the temp. file used. This can
2412 help if you decide later to reuse that same file, so you know
2417 help if you decide later to reuse that same file, so you know
2413 where to copy the info from.
2418 where to copy the info from.
2414
2419
2415 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2420 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2416
2421
2417 * setup_bdist_egg.py: little script to build an egg. Added
2422 * setup_bdist_egg.py: little script to build an egg. Added
2418 support in the release tools as well.
2423 support in the release tools as well.
2419
2424
2420 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2425 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2421
2426
2422 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2427 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2423 version selection (new -wxversion command line and ipythonrc
2428 version selection (new -wxversion command line and ipythonrc
2424 parameter). Patch contributed by Arnd Baecker
2429 parameter). Patch contributed by Arnd Baecker
2425 <arnd.baecker-AT-web.de>.
2430 <arnd.baecker-AT-web.de>.
2426
2431
2427 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2432 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2428 embedded instances, for variables defined at the interactive
2433 embedded instances, for variables defined at the interactive
2429 prompt of the embedded ipython. Reported by Arnd.
2434 prompt of the embedded ipython. Reported by Arnd.
2430
2435
2431 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2436 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2432 it can be used as a (stateful) toggle, or with a direct parameter.
2437 it can be used as a (stateful) toggle, or with a direct parameter.
2433
2438
2434 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2439 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2435 could be triggered in certain cases and cause the traceback
2440 could be triggered in certain cases and cause the traceback
2436 printer not to work.
2441 printer not to work.
2437
2442
2438 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2443 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2439
2444
2440 * IPython/iplib.py (_should_recompile): Small fix, closes
2445 * IPython/iplib.py (_should_recompile): Small fix, closes
2441 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2446 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2442
2447
2443 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2448 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2444
2449
2445 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2450 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2446 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2451 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2447 Moad for help with tracking it down.
2452 Moad for help with tracking it down.
2448
2453
2449 * IPython/iplib.py (handle_auto): fix autocall handling for
2454 * IPython/iplib.py (handle_auto): fix autocall handling for
2450 objects which support BOTH __getitem__ and __call__ (so that f [x]
2455 objects which support BOTH __getitem__ and __call__ (so that f [x]
2451 is left alone, instead of becoming f([x]) automatically).
2456 is left alone, instead of becoming f([x]) automatically).
2452
2457
2453 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2458 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2454 Ville's patch.
2459 Ville's patch.
2455
2460
2456 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2461 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2457
2462
2458 * IPython/iplib.py (handle_auto): changed autocall semantics to
2463 * IPython/iplib.py (handle_auto): changed autocall semantics to
2459 include 'smart' mode, where the autocall transformation is NOT
2464 include 'smart' mode, where the autocall transformation is NOT
2460 applied if there are no arguments on the line. This allows you to
2465 applied if there are no arguments on the line. This allows you to
2461 just type 'foo' if foo is a callable to see its internal form,
2466 just type 'foo' if foo is a callable to see its internal form,
2462 instead of having it called with no arguments (typically a
2467 instead of having it called with no arguments (typically a
2463 mistake). The old 'full' autocall still exists: for that, you
2468 mistake). The old 'full' autocall still exists: for that, you
2464 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2469 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2465
2470
2466 * IPython/completer.py (Completer.attr_matches): add
2471 * IPython/completer.py (Completer.attr_matches): add
2467 tab-completion support for Enthoughts' traits. After a report by
2472 tab-completion support for Enthoughts' traits. After a report by
2468 Arnd and a patch by Prabhu.
2473 Arnd and a patch by Prabhu.
2469
2474
2470 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2475 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2471
2476
2472 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2477 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2473 Schmolck's patch to fix inspect.getinnerframes().
2478 Schmolck's patch to fix inspect.getinnerframes().
2474
2479
2475 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2480 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2476 for embedded instances, regarding handling of namespaces and items
2481 for embedded instances, regarding handling of namespaces and items
2477 added to the __builtin__ one. Multiple embedded instances and
2482 added to the __builtin__ one. Multiple embedded instances and
2478 recursive embeddings should work better now (though I'm not sure
2483 recursive embeddings should work better now (though I'm not sure
2479 I've got all the corner cases fixed, that code is a bit of a brain
2484 I've got all the corner cases fixed, that code is a bit of a brain
2480 twister).
2485 twister).
2481
2486
2482 * IPython/Magic.py (magic_edit): added support to edit in-memory
2487 * IPython/Magic.py (magic_edit): added support to edit in-memory
2483 macros (automatically creates the necessary temp files). %edit
2488 macros (automatically creates the necessary temp files). %edit
2484 also doesn't return the file contents anymore, it's just noise.
2489 also doesn't return the file contents anymore, it's just noise.
2485
2490
2486 * IPython/completer.py (Completer.attr_matches): revert change to
2491 * IPython/completer.py (Completer.attr_matches): revert change to
2487 complete only on attributes listed in __all__. I realized it
2492 complete only on attributes listed in __all__. I realized it
2488 cripples the tab-completion system as a tool for exploring the
2493 cripples the tab-completion system as a tool for exploring the
2489 internals of unknown libraries (it renders any non-__all__
2494 internals of unknown libraries (it renders any non-__all__
2490 attribute off-limits). I got bit by this when trying to see
2495 attribute off-limits). I got bit by this when trying to see
2491 something inside the dis module.
2496 something inside the dis module.
2492
2497
2493 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2498 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2494
2499
2495 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2500 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2496 namespace for users and extension writers to hold data in. This
2501 namespace for users and extension writers to hold data in. This
2497 follows the discussion in
2502 follows the discussion in
2498 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2503 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2499
2504
2500 * IPython/completer.py (IPCompleter.complete): small patch to help
2505 * IPython/completer.py (IPCompleter.complete): small patch to help
2501 tab-completion under Emacs, after a suggestion by John Barnard
2506 tab-completion under Emacs, after a suggestion by John Barnard
2502 <barnarj-AT-ccf.org>.
2507 <barnarj-AT-ccf.org>.
2503
2508
2504 * IPython/Magic.py (Magic.extract_input_slices): added support for
2509 * IPython/Magic.py (Magic.extract_input_slices): added support for
2505 the slice notation in magics to use N-M to represent numbers N...M
2510 the slice notation in magics to use N-M to represent numbers N...M
2506 (closed endpoints). This is used by %macro and %save.
2511 (closed endpoints). This is used by %macro and %save.
2507
2512
2508 * IPython/completer.py (Completer.attr_matches): for modules which
2513 * IPython/completer.py (Completer.attr_matches): for modules which
2509 define __all__, complete only on those. After a patch by Jeffrey
2514 define __all__, complete only on those. After a patch by Jeffrey
2510 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2515 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2511 speed up this routine.
2516 speed up this routine.
2512
2517
2513 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2518 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2514 don't know if this is the end of it, but the behavior now is
2519 don't know if this is the end of it, but the behavior now is
2515 certainly much more correct. Note that coupled with macros,
2520 certainly much more correct. Note that coupled with macros,
2516 slightly surprising (at first) behavior may occur: a macro will in
2521 slightly surprising (at first) behavior may occur: a macro will in
2517 general expand to multiple lines of input, so upon exiting, the
2522 general expand to multiple lines of input, so upon exiting, the
2518 in/out counters will both be bumped by the corresponding amount
2523 in/out counters will both be bumped by the corresponding amount
2519 (as if the macro's contents had been typed interactively). Typing
2524 (as if the macro's contents had been typed interactively). Typing
2520 %hist will reveal the intermediate (silently processed) lines.
2525 %hist will reveal the intermediate (silently processed) lines.
2521
2526
2522 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2527 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2523 pickle to fail (%run was overwriting __main__ and not restoring
2528 pickle to fail (%run was overwriting __main__ and not restoring
2524 it, but pickle relies on __main__ to operate).
2529 it, but pickle relies on __main__ to operate).
2525
2530
2526 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2531 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2527 using properties, but forgot to make the main InteractiveShell
2532 using properties, but forgot to make the main InteractiveShell
2528 class a new-style class. Properties fail silently, and
2533 class a new-style class. Properties fail silently, and
2529 mysteriously, with old-style class (getters work, but
2534 mysteriously, with old-style class (getters work, but
2530 setters don't do anything).
2535 setters don't do anything).
2531
2536
2532 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2537 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2533
2538
2534 * IPython/Magic.py (magic_history): fix history reporting bug (I
2539 * IPython/Magic.py (magic_history): fix history reporting bug (I
2535 know some nasties are still there, I just can't seem to find a
2540 know some nasties are still there, I just can't seem to find a
2536 reproducible test case to track them down; the input history is
2541 reproducible test case to track them down; the input history is
2537 falling out of sync...)
2542 falling out of sync...)
2538
2543
2539 * IPython/iplib.py (handle_shell_escape): fix bug where both
2544 * IPython/iplib.py (handle_shell_escape): fix bug where both
2540 aliases and system accesses where broken for indented code (such
2545 aliases and system accesses where broken for indented code (such
2541 as loops).
2546 as loops).
2542
2547
2543 * IPython/genutils.py (shell): fix small but critical bug for
2548 * IPython/genutils.py (shell): fix small but critical bug for
2544 win32 system access.
2549 win32 system access.
2545
2550
2546 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2551 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2547
2552
2548 * IPython/iplib.py (showtraceback): remove use of the
2553 * IPython/iplib.py (showtraceback): remove use of the
2549 sys.last_{type/value/traceback} structures, which are non
2554 sys.last_{type/value/traceback} structures, which are non
2550 thread-safe.
2555 thread-safe.
2551 (_prefilter): change control flow to ensure that we NEVER
2556 (_prefilter): change control flow to ensure that we NEVER
2552 introspect objects when autocall is off. This will guarantee that
2557 introspect objects when autocall is off. This will guarantee that
2553 having an input line of the form 'x.y', where access to attribute
2558 having an input line of the form 'x.y', where access to attribute
2554 'y' has side effects, doesn't trigger the side effect TWICE. It
2559 'y' has side effects, doesn't trigger the side effect TWICE. It
2555 is important to note that, with autocall on, these side effects
2560 is important to note that, with autocall on, these side effects
2556 can still happen.
2561 can still happen.
2557 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2562 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2558 trio. IPython offers these three kinds of special calls which are
2563 trio. IPython offers these three kinds of special calls which are
2559 not python code, and it's a good thing to have their call method
2564 not python code, and it's a good thing to have their call method
2560 be accessible as pure python functions (not just special syntax at
2565 be accessible as pure python functions (not just special syntax at
2561 the command line). It gives us a better internal implementation
2566 the command line). It gives us a better internal implementation
2562 structure, as well as exposing these for user scripting more
2567 structure, as well as exposing these for user scripting more
2563 cleanly.
2568 cleanly.
2564
2569
2565 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2570 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2566 file. Now that they'll be more likely to be used with the
2571 file. Now that they'll be more likely to be used with the
2567 persistance system (%store), I want to make sure their module path
2572 persistance system (%store), I want to make sure their module path
2568 doesn't change in the future, so that we don't break things for
2573 doesn't change in the future, so that we don't break things for
2569 users' persisted data.
2574 users' persisted data.
2570
2575
2571 * IPython/iplib.py (autoindent_update): move indentation
2576 * IPython/iplib.py (autoindent_update): move indentation
2572 management into the _text_ processing loop, not the keyboard
2577 management into the _text_ processing loop, not the keyboard
2573 interactive one. This is necessary to correctly process non-typed
2578 interactive one. This is necessary to correctly process non-typed
2574 multiline input (such as macros).
2579 multiline input (such as macros).
2575
2580
2576 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2581 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2577 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2582 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2578 which was producing problems in the resulting manual.
2583 which was producing problems in the resulting manual.
2579 (magic_whos): improve reporting of instances (show their class,
2584 (magic_whos): improve reporting of instances (show their class,
2580 instead of simply printing 'instance' which isn't terribly
2585 instead of simply printing 'instance' which isn't terribly
2581 informative).
2586 informative).
2582
2587
2583 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2588 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2584 (minor mods) to support network shares under win32.
2589 (minor mods) to support network shares under win32.
2585
2590
2586 * IPython/winconsole.py (get_console_size): add new winconsole
2591 * IPython/winconsole.py (get_console_size): add new winconsole
2587 module and fixes to page_dumb() to improve its behavior under
2592 module and fixes to page_dumb() to improve its behavior under
2588 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2593 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2589
2594
2590 * IPython/Magic.py (Macro): simplified Macro class to just
2595 * IPython/Magic.py (Macro): simplified Macro class to just
2591 subclass list. We've had only 2.2 compatibility for a very long
2596 subclass list. We've had only 2.2 compatibility for a very long
2592 time, yet I was still avoiding subclassing the builtin types. No
2597 time, yet I was still avoiding subclassing the builtin types. No
2593 more (I'm also starting to use properties, though I won't shift to
2598 more (I'm also starting to use properties, though I won't shift to
2594 2.3-specific features quite yet).
2599 2.3-specific features quite yet).
2595 (magic_store): added Ville's patch for lightweight variable
2600 (magic_store): added Ville's patch for lightweight variable
2596 persistence, after a request on the user list by Matt Wilkie
2601 persistence, after a request on the user list by Matt Wilkie
2597 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2602 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2598 details.
2603 details.
2599
2604
2600 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2605 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2601 changed the default logfile name from 'ipython.log' to
2606 changed the default logfile name from 'ipython.log' to
2602 'ipython_log.py'. These logs are real python files, and now that
2607 'ipython_log.py'. These logs are real python files, and now that
2603 we have much better multiline support, people are more likely to
2608 we have much better multiline support, people are more likely to
2604 want to use them as such. Might as well name them correctly.
2609 want to use them as such. Might as well name them correctly.
2605
2610
2606 * IPython/Magic.py: substantial cleanup. While we can't stop
2611 * IPython/Magic.py: substantial cleanup. While we can't stop
2607 using magics as mixins, due to the existing customizations 'out
2612 using magics as mixins, due to the existing customizations 'out
2608 there' which rely on the mixin naming conventions, at least I
2613 there' which rely on the mixin naming conventions, at least I
2609 cleaned out all cross-class name usage. So once we are OK with
2614 cleaned out all cross-class name usage. So once we are OK with
2610 breaking compatibility, the two systems can be separated.
2615 breaking compatibility, the two systems can be separated.
2611
2616
2612 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2617 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2613 anymore, and the class is a fair bit less hideous as well. New
2618 anymore, and the class is a fair bit less hideous as well. New
2614 features were also introduced: timestamping of input, and logging
2619 features were also introduced: timestamping of input, and logging
2615 of output results. These are user-visible with the -t and -o
2620 of output results. These are user-visible with the -t and -o
2616 options to %logstart. Closes
2621 options to %logstart. Closes
2617 http://www.scipy.net/roundup/ipython/issue11 and a request by
2622 http://www.scipy.net/roundup/ipython/issue11 and a request by
2618 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2623 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2619
2624
2620 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2625 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2621
2626
2622 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2627 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2623 better handle backslashes in paths. See the thread 'More Windows
2628 better handle backslashes in paths. See the thread 'More Windows
2624 questions part 2 - \/ characters revisited' on the iypthon user
2629 questions part 2 - \/ characters revisited' on the iypthon user
2625 list:
2630 list:
2626 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2631 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2627
2632
2628 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2633 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2629
2634
2630 (InteractiveShell.__init__): change threaded shells to not use the
2635 (InteractiveShell.__init__): change threaded shells to not use the
2631 ipython crash handler. This was causing more problems than not,
2636 ipython crash handler. This was causing more problems than not,
2632 as exceptions in the main thread (GUI code, typically) would
2637 as exceptions in the main thread (GUI code, typically) would
2633 always show up as a 'crash', when they really weren't.
2638 always show up as a 'crash', when they really weren't.
2634
2639
2635 The colors and exception mode commands (%colors/%xmode) have been
2640 The colors and exception mode commands (%colors/%xmode) have been
2636 synchronized to also take this into account, so users can get
2641 synchronized to also take this into account, so users can get
2637 verbose exceptions for their threaded code as well. I also added
2642 verbose exceptions for their threaded code as well. I also added
2638 support for activating pdb inside this exception handler as well,
2643 support for activating pdb inside this exception handler as well,
2639 so now GUI authors can use IPython's enhanced pdb at runtime.
2644 so now GUI authors can use IPython's enhanced pdb at runtime.
2640
2645
2641 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2646 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2642 true by default, and add it to the shipped ipythonrc file. Since
2647 true by default, and add it to the shipped ipythonrc file. Since
2643 this asks the user before proceeding, I think it's OK to make it
2648 this asks the user before proceeding, I think it's OK to make it
2644 true by default.
2649 true by default.
2645
2650
2646 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2651 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2647 of the previous special-casing of input in the eval loop. I think
2652 of the previous special-casing of input in the eval loop. I think
2648 this is cleaner, as they really are commands and shouldn't have
2653 this is cleaner, as they really are commands and shouldn't have
2649 a special role in the middle of the core code.
2654 a special role in the middle of the core code.
2650
2655
2651 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2656 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2652
2657
2653 * IPython/iplib.py (edit_syntax_error): added support for
2658 * IPython/iplib.py (edit_syntax_error): added support for
2654 automatically reopening the editor if the file had a syntax error
2659 automatically reopening the editor if the file had a syntax error
2655 in it. Thanks to scottt who provided the patch at:
2660 in it. Thanks to scottt who provided the patch at:
2656 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2661 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2657 version committed).
2662 version committed).
2658
2663
2659 * IPython/iplib.py (handle_normal): add suport for multi-line
2664 * IPython/iplib.py (handle_normal): add suport for multi-line
2660 input with emtpy lines. This fixes
2665 input with emtpy lines. This fixes
2661 http://www.scipy.net/roundup/ipython/issue43 and a similar
2666 http://www.scipy.net/roundup/ipython/issue43 and a similar
2662 discussion on the user list.
2667 discussion on the user list.
2663
2668
2664 WARNING: a behavior change is necessarily introduced to support
2669 WARNING: a behavior change is necessarily introduced to support
2665 blank lines: now a single blank line with whitespace does NOT
2670 blank lines: now a single blank line with whitespace does NOT
2666 break the input loop, which means that when autoindent is on, by
2671 break the input loop, which means that when autoindent is on, by
2667 default hitting return on the next (indented) line does NOT exit.
2672 default hitting return on the next (indented) line does NOT exit.
2668
2673
2669 Instead, to exit a multiline input you can either have:
2674 Instead, to exit a multiline input you can either have:
2670
2675
2671 - TWO whitespace lines (just hit return again), or
2676 - TWO whitespace lines (just hit return again), or
2672 - a single whitespace line of a different length than provided
2677 - a single whitespace line of a different length than provided
2673 by the autoindent (add or remove a space).
2678 by the autoindent (add or remove a space).
2674
2679
2675 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2680 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2676 module to better organize all readline-related functionality.
2681 module to better organize all readline-related functionality.
2677 I've deleted FlexCompleter and put all completion clases here.
2682 I've deleted FlexCompleter and put all completion clases here.
2678
2683
2679 * IPython/iplib.py (raw_input): improve indentation management.
2684 * IPython/iplib.py (raw_input): improve indentation management.
2680 It is now possible to paste indented code with autoindent on, and
2685 It is now possible to paste indented code with autoindent on, and
2681 the code is interpreted correctly (though it still looks bad on
2686 the code is interpreted correctly (though it still looks bad on
2682 screen, due to the line-oriented nature of ipython).
2687 screen, due to the line-oriented nature of ipython).
2683 (MagicCompleter.complete): change behavior so that a TAB key on an
2688 (MagicCompleter.complete): change behavior so that a TAB key on an
2684 otherwise empty line actually inserts a tab, instead of completing
2689 otherwise empty line actually inserts a tab, instead of completing
2685 on the entire global namespace. This makes it easier to use the
2690 on the entire global namespace. This makes it easier to use the
2686 TAB key for indentation. After a request by Hans Meine
2691 TAB key for indentation. After a request by Hans Meine
2687 <hans_meine-AT-gmx.net>
2692 <hans_meine-AT-gmx.net>
2688 (_prefilter): add support so that typing plain 'exit' or 'quit'
2693 (_prefilter): add support so that typing plain 'exit' or 'quit'
2689 does a sensible thing. Originally I tried to deviate as little as
2694 does a sensible thing. Originally I tried to deviate as little as
2690 possible from the default python behavior, but even that one may
2695 possible from the default python behavior, but even that one may
2691 change in this direction (thread on python-dev to that effect).
2696 change in this direction (thread on python-dev to that effect).
2692 Regardless, ipython should do the right thing even if CPython's
2697 Regardless, ipython should do the right thing even if CPython's
2693 '>>>' prompt doesn't.
2698 '>>>' prompt doesn't.
2694 (InteractiveShell): removed subclassing code.InteractiveConsole
2699 (InteractiveShell): removed subclassing code.InteractiveConsole
2695 class. By now we'd overridden just about all of its methods: I've
2700 class. By now we'd overridden just about all of its methods: I've
2696 copied the remaining two over, and now ipython is a standalone
2701 copied the remaining two over, and now ipython is a standalone
2697 class. This will provide a clearer picture for the chainsaw
2702 class. This will provide a clearer picture for the chainsaw
2698 branch refactoring.
2703 branch refactoring.
2699
2704
2700 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2705 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2701
2706
2702 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2707 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2703 failures for objects which break when dir() is called on them.
2708 failures for objects which break when dir() is called on them.
2704
2709
2705 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2710 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2706 distinct local and global namespaces in the completer API. This
2711 distinct local and global namespaces in the completer API. This
2707 change allows us to properly handle completion with distinct
2712 change allows us to properly handle completion with distinct
2708 scopes, including in embedded instances (this had never really
2713 scopes, including in embedded instances (this had never really
2709 worked correctly).
2714 worked correctly).
2710
2715
2711 Note: this introduces a change in the constructor for
2716 Note: this introduces a change in the constructor for
2712 MagicCompleter, as a new global_namespace parameter is now the
2717 MagicCompleter, as a new global_namespace parameter is now the
2713 second argument (the others were bumped one position).
2718 second argument (the others were bumped one position).
2714
2719
2715 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2720 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2716
2721
2717 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2722 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2718 embedded instances (which can be done now thanks to Vivian's
2723 embedded instances (which can be done now thanks to Vivian's
2719 frame-handling fixes for pdb).
2724 frame-handling fixes for pdb).
2720 (InteractiveShell.__init__): Fix namespace handling problem in
2725 (InteractiveShell.__init__): Fix namespace handling problem in
2721 embedded instances. We were overwriting __main__ unconditionally,
2726 embedded instances. We were overwriting __main__ unconditionally,
2722 and this should only be done for 'full' (non-embedded) IPython;
2727 and this should only be done for 'full' (non-embedded) IPython;
2723 embedded instances must respect the caller's __main__. Thanks to
2728 embedded instances must respect the caller's __main__. Thanks to
2724 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2729 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2725
2730
2726 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2731 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2727
2732
2728 * setup.py: added download_url to setup(). This registers the
2733 * setup.py: added download_url to setup(). This registers the
2729 download address at PyPI, which is not only useful to humans
2734 download address at PyPI, which is not only useful to humans
2730 browsing the site, but is also picked up by setuptools (the Eggs
2735 browsing the site, but is also picked up by setuptools (the Eggs
2731 machinery). Thanks to Ville and R. Kern for the info/discussion
2736 machinery). Thanks to Ville and R. Kern for the info/discussion
2732 on this.
2737 on this.
2733
2738
2734 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2739 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2735
2740
2736 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2741 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2737 This brings a lot of nice functionality to the pdb mode, which now
2742 This brings a lot of nice functionality to the pdb mode, which now
2738 has tab-completion, syntax highlighting, and better stack handling
2743 has tab-completion, syntax highlighting, and better stack handling
2739 than before. Many thanks to Vivian De Smedt
2744 than before. Many thanks to Vivian De Smedt
2740 <vivian-AT-vdesmedt.com> for the original patches.
2745 <vivian-AT-vdesmedt.com> for the original patches.
2741
2746
2742 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2747 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2743
2748
2744 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2749 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2745 sequence to consistently accept the banner argument. The
2750 sequence to consistently accept the banner argument. The
2746 inconsistency was tripping SAGE, thanks to Gary Zablackis
2751 inconsistency was tripping SAGE, thanks to Gary Zablackis
2747 <gzabl-AT-yahoo.com> for the report.
2752 <gzabl-AT-yahoo.com> for the report.
2748
2753
2749 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2754 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2750
2755
2751 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2756 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2752 Fix bug where a naked 'alias' call in the ipythonrc file would
2757 Fix bug where a naked 'alias' call in the ipythonrc file would
2753 cause a crash. Bug reported by Jorgen Stenarson.
2758 cause a crash. Bug reported by Jorgen Stenarson.
2754
2759
2755 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2760 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2756
2761
2757 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2762 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2758 startup time.
2763 startup time.
2759
2764
2760 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2765 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2761 instances had introduced a bug with globals in normal code. Now
2766 instances had introduced a bug with globals in normal code. Now
2762 it's working in all cases.
2767 it's working in all cases.
2763
2768
2764 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2769 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2765 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2770 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2766 has been introduced to set the default case sensitivity of the
2771 has been introduced to set the default case sensitivity of the
2767 searches. Users can still select either mode at runtime on a
2772 searches. Users can still select either mode at runtime on a
2768 per-search basis.
2773 per-search basis.
2769
2774
2770 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2775 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2771
2776
2772 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2777 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2773 attributes in wildcard searches for subclasses. Modified version
2778 attributes in wildcard searches for subclasses. Modified version
2774 of a patch by Jorgen.
2779 of a patch by Jorgen.
2775
2780
2776 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2781 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2777
2782
2778 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2783 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2779 embedded instances. I added a user_global_ns attribute to the
2784 embedded instances. I added a user_global_ns attribute to the
2780 InteractiveShell class to handle this.
2785 InteractiveShell class to handle this.
2781
2786
2782 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2787 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2783
2788
2784 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2789 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2785 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2790 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2786 (reported under win32, but may happen also in other platforms).
2791 (reported under win32, but may happen also in other platforms).
2787 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2792 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2788
2793
2789 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2794 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2790
2795
2791 * IPython/Magic.py (magic_psearch): new support for wildcard
2796 * IPython/Magic.py (magic_psearch): new support for wildcard
2792 patterns. Now, typing ?a*b will list all names which begin with a
2797 patterns. Now, typing ?a*b will list all names which begin with a
2793 and end in b, for example. The %psearch magic has full
2798 and end in b, for example. The %psearch magic has full
2794 docstrings. Many thanks to JΓΆrgen Stenarson
2799 docstrings. Many thanks to JΓΆrgen Stenarson
2795 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2800 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2796 implementing this functionality.
2801 implementing this functionality.
2797
2802
2798 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2803 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2799
2804
2800 * Manual: fixed long-standing annoyance of double-dashes (as in
2805 * Manual: fixed long-standing annoyance of double-dashes (as in
2801 --prefix=~, for example) being stripped in the HTML version. This
2806 --prefix=~, for example) being stripped in the HTML version. This
2802 is a latex2html bug, but a workaround was provided. Many thanks
2807 is a latex2html bug, but a workaround was provided. Many thanks
2803 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2808 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2804 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2809 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2805 rolling. This seemingly small issue had tripped a number of users
2810 rolling. This seemingly small issue had tripped a number of users
2806 when first installing, so I'm glad to see it gone.
2811 when first installing, so I'm glad to see it gone.
2807
2812
2808 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2813 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2809
2814
2810 * IPython/Extensions/numeric_formats.py: fix missing import,
2815 * IPython/Extensions/numeric_formats.py: fix missing import,
2811 reported by Stephen Walton.
2816 reported by Stephen Walton.
2812
2817
2813 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2818 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2814
2819
2815 * IPython/demo.py: finish demo module, fully documented now.
2820 * IPython/demo.py: finish demo module, fully documented now.
2816
2821
2817 * IPython/genutils.py (file_read): simple little utility to read a
2822 * IPython/genutils.py (file_read): simple little utility to read a
2818 file and ensure it's closed afterwards.
2823 file and ensure it's closed afterwards.
2819
2824
2820 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2825 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2821
2826
2822 * IPython/demo.py (Demo.__init__): added support for individually
2827 * IPython/demo.py (Demo.__init__): added support for individually
2823 tagging blocks for automatic execution.
2828 tagging blocks for automatic execution.
2824
2829
2825 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2830 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2826 syntax-highlighted python sources, requested by John.
2831 syntax-highlighted python sources, requested by John.
2827
2832
2828 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2833 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2829
2834
2830 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2835 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2831 finishing.
2836 finishing.
2832
2837
2833 * IPython/genutils.py (shlex_split): moved from Magic to here,
2838 * IPython/genutils.py (shlex_split): moved from Magic to here,
2834 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2839 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2835
2840
2836 * IPython/demo.py (Demo.__init__): added support for silent
2841 * IPython/demo.py (Demo.__init__): added support for silent
2837 blocks, improved marks as regexps, docstrings written.
2842 blocks, improved marks as regexps, docstrings written.
2838 (Demo.__init__): better docstring, added support for sys.argv.
2843 (Demo.__init__): better docstring, added support for sys.argv.
2839
2844
2840 * IPython/genutils.py (marquee): little utility used by the demo
2845 * IPython/genutils.py (marquee): little utility used by the demo
2841 code, handy in general.
2846 code, handy in general.
2842
2847
2843 * IPython/demo.py (Demo.__init__): new class for interactive
2848 * IPython/demo.py (Demo.__init__): new class for interactive
2844 demos. Not documented yet, I just wrote it in a hurry for
2849 demos. Not documented yet, I just wrote it in a hurry for
2845 scipy'05. Will docstring later.
2850 scipy'05. Will docstring later.
2846
2851
2847 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2852 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2848
2853
2849 * IPython/Shell.py (sigint_handler): Drastic simplification which
2854 * IPython/Shell.py (sigint_handler): Drastic simplification which
2850 also seems to make Ctrl-C work correctly across threads! This is
2855 also seems to make Ctrl-C work correctly across threads! This is
2851 so simple, that I can't beleive I'd missed it before. Needs more
2856 so simple, that I can't beleive I'd missed it before. Needs more
2852 testing, though.
2857 testing, though.
2853 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2858 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2854 like this before...
2859 like this before...
2855
2860
2856 * IPython/genutils.py (get_home_dir): add protection against
2861 * IPython/genutils.py (get_home_dir): add protection against
2857 non-dirs in win32 registry.
2862 non-dirs in win32 registry.
2858
2863
2859 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2864 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2860 bug where dict was mutated while iterating (pysh crash).
2865 bug where dict was mutated while iterating (pysh crash).
2861
2866
2862 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2867 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2863
2868
2864 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2869 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2865 spurious newlines added by this routine. After a report by
2870 spurious newlines added by this routine. After a report by
2866 F. Mantegazza.
2871 F. Mantegazza.
2867
2872
2868 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2873 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2869
2874
2870 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2875 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2871 calls. These were a leftover from the GTK 1.x days, and can cause
2876 calls. These were a leftover from the GTK 1.x days, and can cause
2872 problems in certain cases (after a report by John Hunter).
2877 problems in certain cases (after a report by John Hunter).
2873
2878
2874 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2879 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2875 os.getcwd() fails at init time. Thanks to patch from David Remahl
2880 os.getcwd() fails at init time. Thanks to patch from David Remahl
2876 <chmod007-AT-mac.com>.
2881 <chmod007-AT-mac.com>.
2877 (InteractiveShell.__init__): prevent certain special magics from
2882 (InteractiveShell.__init__): prevent certain special magics from
2878 being shadowed by aliases. Closes
2883 being shadowed by aliases. Closes
2879 http://www.scipy.net/roundup/ipython/issue41.
2884 http://www.scipy.net/roundup/ipython/issue41.
2880
2885
2881 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2886 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2882
2887
2883 * IPython/iplib.py (InteractiveShell.complete): Added new
2888 * IPython/iplib.py (InteractiveShell.complete): Added new
2884 top-level completion method to expose the completion mechanism
2889 top-level completion method to expose the completion mechanism
2885 beyond readline-based environments.
2890 beyond readline-based environments.
2886
2891
2887 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2892 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2888
2893
2889 * tools/ipsvnc (svnversion): fix svnversion capture.
2894 * tools/ipsvnc (svnversion): fix svnversion capture.
2890
2895
2891 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2896 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2892 attribute to self, which was missing. Before, it was set by a
2897 attribute to self, which was missing. Before, it was set by a
2893 routine which in certain cases wasn't being called, so the
2898 routine which in certain cases wasn't being called, so the
2894 instance could end up missing the attribute. This caused a crash.
2899 instance could end up missing the attribute. This caused a crash.
2895 Closes http://www.scipy.net/roundup/ipython/issue40.
2900 Closes http://www.scipy.net/roundup/ipython/issue40.
2896
2901
2897 2005-08-16 Fernando Perez <fperez@colorado.edu>
2902 2005-08-16 Fernando Perez <fperez@colorado.edu>
2898
2903
2899 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2904 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2900 contains non-string attribute. Closes
2905 contains non-string attribute. Closes
2901 http://www.scipy.net/roundup/ipython/issue38.
2906 http://www.scipy.net/roundup/ipython/issue38.
2902
2907
2903 2005-08-14 Fernando Perez <fperez@colorado.edu>
2908 2005-08-14 Fernando Perez <fperez@colorado.edu>
2904
2909
2905 * tools/ipsvnc: Minor improvements, to add changeset info.
2910 * tools/ipsvnc: Minor improvements, to add changeset info.
2906
2911
2907 2005-08-12 Fernando Perez <fperez@colorado.edu>
2912 2005-08-12 Fernando Perez <fperez@colorado.edu>
2908
2913
2909 * IPython/iplib.py (runsource): remove self.code_to_run_src
2914 * IPython/iplib.py (runsource): remove self.code_to_run_src
2910 attribute. I realized this is nothing more than
2915 attribute. I realized this is nothing more than
2911 '\n'.join(self.buffer), and having the same data in two different
2916 '\n'.join(self.buffer), and having the same data in two different
2912 places is just asking for synchronization bugs. This may impact
2917 places is just asking for synchronization bugs. This may impact
2913 people who have custom exception handlers, so I need to warn
2918 people who have custom exception handlers, so I need to warn
2914 ipython-dev about it (F. Mantegazza may use them).
2919 ipython-dev about it (F. Mantegazza may use them).
2915
2920
2916 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2921 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2917
2922
2918 * IPython/genutils.py: fix 2.2 compatibility (generators)
2923 * IPython/genutils.py: fix 2.2 compatibility (generators)
2919
2924
2920 2005-07-18 Fernando Perez <fperez@colorado.edu>
2925 2005-07-18 Fernando Perez <fperez@colorado.edu>
2921
2926
2922 * IPython/genutils.py (get_home_dir): fix to help users with
2927 * IPython/genutils.py (get_home_dir): fix to help users with
2923 invalid $HOME under win32.
2928 invalid $HOME under win32.
2924
2929
2925 2005-07-17 Fernando Perez <fperez@colorado.edu>
2930 2005-07-17 Fernando Perez <fperez@colorado.edu>
2926
2931
2927 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2932 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2928 some old hacks and clean up a bit other routines; code should be
2933 some old hacks and clean up a bit other routines; code should be
2929 simpler and a bit faster.
2934 simpler and a bit faster.
2930
2935
2931 * IPython/iplib.py (interact): removed some last-resort attempts
2936 * IPython/iplib.py (interact): removed some last-resort attempts
2932 to survive broken stdout/stderr. That code was only making it
2937 to survive broken stdout/stderr. That code was only making it
2933 harder to abstract out the i/o (necessary for gui integration),
2938 harder to abstract out the i/o (necessary for gui integration),
2934 and the crashes it could prevent were extremely rare in practice
2939 and the crashes it could prevent were extremely rare in practice
2935 (besides being fully user-induced in a pretty violent manner).
2940 (besides being fully user-induced in a pretty violent manner).
2936
2941
2937 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2942 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2938 Nothing major yet, but the code is simpler to read; this should
2943 Nothing major yet, but the code is simpler to read; this should
2939 make it easier to do more serious modifications in the future.
2944 make it easier to do more serious modifications in the future.
2940
2945
2941 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2946 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2942 which broke in .15 (thanks to a report by Ville).
2947 which broke in .15 (thanks to a report by Ville).
2943
2948
2944 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2949 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2945 be quite correct, I know next to nothing about unicode). This
2950 be quite correct, I know next to nothing about unicode). This
2946 will allow unicode strings to be used in prompts, amongst other
2951 will allow unicode strings to be used in prompts, amongst other
2947 cases. It also will prevent ipython from crashing when unicode
2952 cases. It also will prevent ipython from crashing when unicode
2948 shows up unexpectedly in many places. If ascii encoding fails, we
2953 shows up unexpectedly in many places. If ascii encoding fails, we
2949 assume utf_8. Currently the encoding is not a user-visible
2954 assume utf_8. Currently the encoding is not a user-visible
2950 setting, though it could be made so if there is demand for it.
2955 setting, though it could be made so if there is demand for it.
2951
2956
2952 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2957 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2953
2958
2954 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2959 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2955
2960
2956 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2961 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2957
2962
2958 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2963 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2959 code can work transparently for 2.2/2.3.
2964 code can work transparently for 2.2/2.3.
2960
2965
2961 2005-07-16 Fernando Perez <fperez@colorado.edu>
2966 2005-07-16 Fernando Perez <fperez@colorado.edu>
2962
2967
2963 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2968 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2964 out of the color scheme table used for coloring exception
2969 out of the color scheme table used for coloring exception
2965 tracebacks. This allows user code to add new schemes at runtime.
2970 tracebacks. This allows user code to add new schemes at runtime.
2966 This is a minimally modified version of the patch at
2971 This is a minimally modified version of the patch at
2967 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2972 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2968 for the contribution.
2973 for the contribution.
2969
2974
2970 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2975 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2971 slightly modified version of the patch in
2976 slightly modified version of the patch in
2972 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2977 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2973 to remove the previous try/except solution (which was costlier).
2978 to remove the previous try/except solution (which was costlier).
2974 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2979 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2975
2980
2976 2005-06-08 Fernando Perez <fperez@colorado.edu>
2981 2005-06-08 Fernando Perez <fperez@colorado.edu>
2977
2982
2978 * IPython/iplib.py (write/write_err): Add methods to abstract all
2983 * IPython/iplib.py (write/write_err): Add methods to abstract all
2979 I/O a bit more.
2984 I/O a bit more.
2980
2985
2981 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2986 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2982 warning, reported by Aric Hagberg, fix by JD Hunter.
2987 warning, reported by Aric Hagberg, fix by JD Hunter.
2983
2988
2984 2005-06-02 *** Released version 0.6.15
2989 2005-06-02 *** Released version 0.6.15
2985
2990
2986 2005-06-01 Fernando Perez <fperez@colorado.edu>
2991 2005-06-01 Fernando Perez <fperez@colorado.edu>
2987
2992
2988 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2993 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2989 tab-completion of filenames within open-quoted strings. Note that
2994 tab-completion of filenames within open-quoted strings. Note that
2990 this requires that in ~/.ipython/ipythonrc, users change the
2995 this requires that in ~/.ipython/ipythonrc, users change the
2991 readline delimiters configuration to read:
2996 readline delimiters configuration to read:
2992
2997
2993 readline_remove_delims -/~
2998 readline_remove_delims -/~
2994
2999
2995
3000
2996 2005-05-31 *** Released version 0.6.14
3001 2005-05-31 *** Released version 0.6.14
2997
3002
2998 2005-05-29 Fernando Perez <fperez@colorado.edu>
3003 2005-05-29 Fernando Perez <fperez@colorado.edu>
2999
3004
3000 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3005 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3001 with files not on the filesystem. Reported by Eliyahu Sandler
3006 with files not on the filesystem. Reported by Eliyahu Sandler
3002 <eli@gondolin.net>
3007 <eli@gondolin.net>
3003
3008
3004 2005-05-22 Fernando Perez <fperez@colorado.edu>
3009 2005-05-22 Fernando Perez <fperez@colorado.edu>
3005
3010
3006 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3011 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3007 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3012 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3008
3013
3009 2005-05-19 Fernando Perez <fperez@colorado.edu>
3014 2005-05-19 Fernando Perez <fperez@colorado.edu>
3010
3015
3011 * IPython/iplib.py (safe_execfile): close a file which could be
3016 * IPython/iplib.py (safe_execfile): close a file which could be
3012 left open (causing problems in win32, which locks open files).
3017 left open (causing problems in win32, which locks open files).
3013 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3018 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3014
3019
3015 2005-05-18 Fernando Perez <fperez@colorado.edu>
3020 2005-05-18 Fernando Perez <fperez@colorado.edu>
3016
3021
3017 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3022 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3018 keyword arguments correctly to safe_execfile().
3023 keyword arguments correctly to safe_execfile().
3019
3024
3020 2005-05-13 Fernando Perez <fperez@colorado.edu>
3025 2005-05-13 Fernando Perez <fperez@colorado.edu>
3021
3026
3022 * ipython.1: Added info about Qt to manpage, and threads warning
3027 * ipython.1: Added info about Qt to manpage, and threads warning
3023 to usage page (invoked with --help).
3028 to usage page (invoked with --help).
3024
3029
3025 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3030 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3026 new matcher (it goes at the end of the priority list) to do
3031 new matcher (it goes at the end of the priority list) to do
3027 tab-completion on named function arguments. Submitted by George
3032 tab-completion on named function arguments. Submitted by George
3028 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3033 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3029 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3034 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3030 for more details.
3035 for more details.
3031
3036
3032 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3037 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3033 SystemExit exceptions in the script being run. Thanks to a report
3038 SystemExit exceptions in the script being run. Thanks to a report
3034 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3039 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3035 producing very annoying behavior when running unit tests.
3040 producing very annoying behavior when running unit tests.
3036
3041
3037 2005-05-12 Fernando Perez <fperez@colorado.edu>
3042 2005-05-12 Fernando Perez <fperez@colorado.edu>
3038
3043
3039 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3044 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3040 which I'd broken (again) due to a changed regexp. In the process,
3045 which I'd broken (again) due to a changed regexp. In the process,
3041 added ';' as an escape to auto-quote the whole line without
3046 added ';' as an escape to auto-quote the whole line without
3042 splitting its arguments. Thanks to a report by Jerry McRae
3047 splitting its arguments. Thanks to a report by Jerry McRae
3043 <qrs0xyc02-AT-sneakemail.com>.
3048 <qrs0xyc02-AT-sneakemail.com>.
3044
3049
3045 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3050 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3046 possible crashes caused by a TokenError. Reported by Ed Schofield
3051 possible crashes caused by a TokenError. Reported by Ed Schofield
3047 <schofield-AT-ftw.at>.
3052 <schofield-AT-ftw.at>.
3048
3053
3049 2005-05-06 Fernando Perez <fperez@colorado.edu>
3054 2005-05-06 Fernando Perez <fperez@colorado.edu>
3050
3055
3051 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3056 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3052
3057
3053 2005-04-29 Fernando Perez <fperez@colorado.edu>
3058 2005-04-29 Fernando Perez <fperez@colorado.edu>
3054
3059
3055 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3060 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3056 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3061 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3057 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3062 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3058 which provides support for Qt interactive usage (similar to the
3063 which provides support for Qt interactive usage (similar to the
3059 existing one for WX and GTK). This had been often requested.
3064 existing one for WX and GTK). This had been often requested.
3060
3065
3061 2005-04-14 *** Released version 0.6.13
3066 2005-04-14 *** Released version 0.6.13
3062
3067
3063 2005-04-08 Fernando Perez <fperez@colorado.edu>
3068 2005-04-08 Fernando Perez <fperez@colorado.edu>
3064
3069
3065 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3070 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3066 from _ofind, which gets called on almost every input line. Now,
3071 from _ofind, which gets called on almost every input line. Now,
3067 we only try to get docstrings if they are actually going to be
3072 we only try to get docstrings if they are actually going to be
3068 used (the overhead of fetching unnecessary docstrings can be
3073 used (the overhead of fetching unnecessary docstrings can be
3069 noticeable for certain objects, such as Pyro proxies).
3074 noticeable for certain objects, such as Pyro proxies).
3070
3075
3071 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3076 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3072 for completers. For some reason I had been passing them the state
3077 for completers. For some reason I had been passing them the state
3073 variable, which completers never actually need, and was in
3078 variable, which completers never actually need, and was in
3074 conflict with the rlcompleter API. Custom completers ONLY need to
3079 conflict with the rlcompleter API. Custom completers ONLY need to
3075 take the text parameter.
3080 take the text parameter.
3076
3081
3077 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3082 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3078 work correctly in pysh. I've also moved all the logic which used
3083 work correctly in pysh. I've also moved all the logic which used
3079 to be in pysh.py here, which will prevent problems with future
3084 to be in pysh.py here, which will prevent problems with future
3080 upgrades. However, this time I must warn users to update their
3085 upgrades. However, this time I must warn users to update their
3081 pysh profile to include the line
3086 pysh profile to include the line
3082
3087
3083 import_all IPython.Extensions.InterpreterExec
3088 import_all IPython.Extensions.InterpreterExec
3084
3089
3085 because otherwise things won't work for them. They MUST also
3090 because otherwise things won't work for them. They MUST also
3086 delete pysh.py and the line
3091 delete pysh.py and the line
3087
3092
3088 execfile pysh.py
3093 execfile pysh.py
3089
3094
3090 from their ipythonrc-pysh.
3095 from their ipythonrc-pysh.
3091
3096
3092 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3097 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3093 robust in the face of objects whose dir() returns non-strings
3098 robust in the face of objects whose dir() returns non-strings
3094 (which it shouldn't, but some broken libs like ITK do). Thanks to
3099 (which it shouldn't, but some broken libs like ITK do). Thanks to
3095 a patch by John Hunter (implemented differently, though). Also
3100 a patch by John Hunter (implemented differently, though). Also
3096 minor improvements by using .extend instead of + on lists.
3101 minor improvements by using .extend instead of + on lists.
3097
3102
3098 * pysh.py:
3103 * pysh.py:
3099
3104
3100 2005-04-06 Fernando Perez <fperez@colorado.edu>
3105 2005-04-06 Fernando Perez <fperez@colorado.edu>
3101
3106
3102 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3107 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3103 by default, so that all users benefit from it. Those who don't
3108 by default, so that all users benefit from it. Those who don't
3104 want it can still turn it off.
3109 want it can still turn it off.
3105
3110
3106 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3111 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3107 config file, I'd forgotten about this, so users were getting it
3112 config file, I'd forgotten about this, so users were getting it
3108 off by default.
3113 off by default.
3109
3114
3110 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3115 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3111 consistency. Now magics can be called in multiline statements,
3116 consistency. Now magics can be called in multiline statements,
3112 and python variables can be expanded in magic calls via $var.
3117 and python variables can be expanded in magic calls via $var.
3113 This makes the magic system behave just like aliases or !system
3118 This makes the magic system behave just like aliases or !system
3114 calls.
3119 calls.
3115
3120
3116 2005-03-28 Fernando Perez <fperez@colorado.edu>
3121 2005-03-28 Fernando Perez <fperez@colorado.edu>
3117
3122
3118 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3123 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3119 expensive string additions for building command. Add support for
3124 expensive string additions for building command. Add support for
3120 trailing ';' when autocall is used.
3125 trailing ';' when autocall is used.
3121
3126
3122 2005-03-26 Fernando Perez <fperez@colorado.edu>
3127 2005-03-26 Fernando Perez <fperez@colorado.edu>
3123
3128
3124 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3129 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3125 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3130 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3126 ipython.el robust against prompts with any number of spaces
3131 ipython.el robust against prompts with any number of spaces
3127 (including 0) after the ':' character.
3132 (including 0) after the ':' character.
3128
3133
3129 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3134 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3130 continuation prompt, which misled users to think the line was
3135 continuation prompt, which misled users to think the line was
3131 already indented. Closes debian Bug#300847, reported to me by
3136 already indented. Closes debian Bug#300847, reported to me by
3132 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3137 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3133
3138
3134 2005-03-23 Fernando Perez <fperez@colorado.edu>
3139 2005-03-23 Fernando Perez <fperez@colorado.edu>
3135
3140
3136 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3141 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3137 properly aligned if they have embedded newlines.
3142 properly aligned if they have embedded newlines.
3138
3143
3139 * IPython/iplib.py (runlines): Add a public method to expose
3144 * IPython/iplib.py (runlines): Add a public method to expose
3140 IPython's code execution machinery, so that users can run strings
3145 IPython's code execution machinery, so that users can run strings
3141 as if they had been typed at the prompt interactively.
3146 as if they had been typed at the prompt interactively.
3142 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3147 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3143 methods which can call the system shell, but with python variable
3148 methods which can call the system shell, but with python variable
3144 expansion. The three such methods are: __IPYTHON__.system,
3149 expansion. The three such methods are: __IPYTHON__.system,
3145 .getoutput and .getoutputerror. These need to be documented in a
3150 .getoutput and .getoutputerror. These need to be documented in a
3146 'public API' section (to be written) of the manual.
3151 'public API' section (to be written) of the manual.
3147
3152
3148 2005-03-20 Fernando Perez <fperez@colorado.edu>
3153 2005-03-20 Fernando Perez <fperez@colorado.edu>
3149
3154
3150 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3155 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3151 for custom exception handling. This is quite powerful, and it
3156 for custom exception handling. This is quite powerful, and it
3152 allows for user-installable exception handlers which can trap
3157 allows for user-installable exception handlers which can trap
3153 custom exceptions at runtime and treat them separately from
3158 custom exceptions at runtime and treat them separately from
3154 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3159 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3155 Mantegazza <mantegazza-AT-ill.fr>.
3160 Mantegazza <mantegazza-AT-ill.fr>.
3156 (InteractiveShell.set_custom_completer): public API function to
3161 (InteractiveShell.set_custom_completer): public API function to
3157 add new completers at runtime.
3162 add new completers at runtime.
3158
3163
3159 2005-03-19 Fernando Perez <fperez@colorado.edu>
3164 2005-03-19 Fernando Perez <fperez@colorado.edu>
3160
3165
3161 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3166 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3162 allow objects which provide their docstrings via non-standard
3167 allow objects which provide their docstrings via non-standard
3163 mechanisms (like Pyro proxies) to still be inspected by ipython's
3168 mechanisms (like Pyro proxies) to still be inspected by ipython's
3164 ? system.
3169 ? system.
3165
3170
3166 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3171 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3167 automatic capture system. I tried quite hard to make it work
3172 automatic capture system. I tried quite hard to make it work
3168 reliably, and simply failed. I tried many combinations with the
3173 reliably, and simply failed. I tried many combinations with the
3169 subprocess module, but eventually nothing worked in all needed
3174 subprocess module, but eventually nothing worked in all needed
3170 cases (not blocking stdin for the child, duplicating stdout
3175 cases (not blocking stdin for the child, duplicating stdout
3171 without blocking, etc). The new %sc/%sx still do capture to these
3176 without blocking, etc). The new %sc/%sx still do capture to these
3172 magical list/string objects which make shell use much more
3177 magical list/string objects which make shell use much more
3173 conveninent, so not all is lost.
3178 conveninent, so not all is lost.
3174
3179
3175 XXX - FIX MANUAL for the change above!
3180 XXX - FIX MANUAL for the change above!
3176
3181
3177 (runsource): I copied code.py's runsource() into ipython to modify
3182 (runsource): I copied code.py's runsource() into ipython to modify
3178 it a bit. Now the code object and source to be executed are
3183 it a bit. Now the code object and source to be executed are
3179 stored in ipython. This makes this info accessible to third-party
3184 stored in ipython. This makes this info accessible to third-party
3180 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3185 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3181 Mantegazza <mantegazza-AT-ill.fr>.
3186 Mantegazza <mantegazza-AT-ill.fr>.
3182
3187
3183 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3188 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3184 history-search via readline (like C-p/C-n). I'd wanted this for a
3189 history-search via readline (like C-p/C-n). I'd wanted this for a
3185 long time, but only recently found out how to do it. For users
3190 long time, but only recently found out how to do it. For users
3186 who already have their ipythonrc files made and want this, just
3191 who already have their ipythonrc files made and want this, just
3187 add:
3192 add:
3188
3193
3189 readline_parse_and_bind "\e[A": history-search-backward
3194 readline_parse_and_bind "\e[A": history-search-backward
3190 readline_parse_and_bind "\e[B": history-search-forward
3195 readline_parse_and_bind "\e[B": history-search-forward
3191
3196
3192 2005-03-18 Fernando Perez <fperez@colorado.edu>
3197 2005-03-18 Fernando Perez <fperez@colorado.edu>
3193
3198
3194 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3199 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3195 LSString and SList classes which allow transparent conversions
3200 LSString and SList classes which allow transparent conversions
3196 between list mode and whitespace-separated string.
3201 between list mode and whitespace-separated string.
3197 (magic_r): Fix recursion problem in %r.
3202 (magic_r): Fix recursion problem in %r.
3198
3203
3199 * IPython/genutils.py (LSString): New class to be used for
3204 * IPython/genutils.py (LSString): New class to be used for
3200 automatic storage of the results of all alias/system calls in _o
3205 automatic storage of the results of all alias/system calls in _o
3201 and _e (stdout/err). These provide a .l/.list attribute which
3206 and _e (stdout/err). These provide a .l/.list attribute which
3202 does automatic splitting on newlines. This means that for most
3207 does automatic splitting on newlines. This means that for most
3203 uses, you'll never need to do capturing of output with %sc/%sx
3208 uses, you'll never need to do capturing of output with %sc/%sx
3204 anymore, since ipython keeps this always done for you. Note that
3209 anymore, since ipython keeps this always done for you. Note that
3205 only the LAST results are stored, the _o/e variables are
3210 only the LAST results are stored, the _o/e variables are
3206 overwritten on each call. If you need to save their contents
3211 overwritten on each call. If you need to save their contents
3207 further, simply bind them to any other name.
3212 further, simply bind them to any other name.
3208
3213
3209 2005-03-17 Fernando Perez <fperez@colorado.edu>
3214 2005-03-17 Fernando Perez <fperez@colorado.edu>
3210
3215
3211 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3216 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3212 prompt namespace handling.
3217 prompt namespace handling.
3213
3218
3214 2005-03-16 Fernando Perez <fperez@colorado.edu>
3219 2005-03-16 Fernando Perez <fperez@colorado.edu>
3215
3220
3216 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3221 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3217 classic prompts to be '>>> ' (final space was missing, and it
3222 classic prompts to be '>>> ' (final space was missing, and it
3218 trips the emacs python mode).
3223 trips the emacs python mode).
3219 (BasePrompt.__str__): Added safe support for dynamic prompt
3224 (BasePrompt.__str__): Added safe support for dynamic prompt
3220 strings. Now you can set your prompt string to be '$x', and the
3225 strings. Now you can set your prompt string to be '$x', and the
3221 value of x will be printed from your interactive namespace. The
3226 value of x will be printed from your interactive namespace. The
3222 interpolation syntax includes the full Itpl support, so
3227 interpolation syntax includes the full Itpl support, so
3223 ${foo()+x+bar()} is a valid prompt string now, and the function
3228 ${foo()+x+bar()} is a valid prompt string now, and the function
3224 calls will be made at runtime.
3229 calls will be made at runtime.
3225
3230
3226 2005-03-15 Fernando Perez <fperez@colorado.edu>
3231 2005-03-15 Fernando Perez <fperez@colorado.edu>
3227
3232
3228 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3233 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3229 avoid name clashes in pylab. %hist still works, it just forwards
3234 avoid name clashes in pylab. %hist still works, it just forwards
3230 the call to %history.
3235 the call to %history.
3231
3236
3232 2005-03-02 *** Released version 0.6.12
3237 2005-03-02 *** Released version 0.6.12
3233
3238
3234 2005-03-02 Fernando Perez <fperez@colorado.edu>
3239 2005-03-02 Fernando Perez <fperez@colorado.edu>
3235
3240
3236 * IPython/iplib.py (handle_magic): log magic calls properly as
3241 * IPython/iplib.py (handle_magic): log magic calls properly as
3237 ipmagic() function calls.
3242 ipmagic() function calls.
3238
3243
3239 * IPython/Magic.py (magic_time): Improved %time to support
3244 * IPython/Magic.py (magic_time): Improved %time to support
3240 statements and provide wall-clock as well as CPU time.
3245 statements and provide wall-clock as well as CPU time.
3241
3246
3242 2005-02-27 Fernando Perez <fperez@colorado.edu>
3247 2005-02-27 Fernando Perez <fperez@colorado.edu>
3243
3248
3244 * IPython/hooks.py: New hooks module, to expose user-modifiable
3249 * IPython/hooks.py: New hooks module, to expose user-modifiable
3245 IPython functionality in a clean manner. For now only the editor
3250 IPython functionality in a clean manner. For now only the editor
3246 hook is actually written, and other thigns which I intend to turn
3251 hook is actually written, and other thigns which I intend to turn
3247 into proper hooks aren't yet there. The display and prefilter
3252 into proper hooks aren't yet there. The display and prefilter
3248 stuff, for example, should be hooks. But at least now the
3253 stuff, for example, should be hooks. But at least now the
3249 framework is in place, and the rest can be moved here with more
3254 framework is in place, and the rest can be moved here with more
3250 time later. IPython had had a .hooks variable for a long time for
3255 time later. IPython had had a .hooks variable for a long time for
3251 this purpose, but I'd never actually used it for anything.
3256 this purpose, but I'd never actually used it for anything.
3252
3257
3253 2005-02-26 Fernando Perez <fperez@colorado.edu>
3258 2005-02-26 Fernando Perez <fperez@colorado.edu>
3254
3259
3255 * IPython/ipmaker.py (make_IPython): make the default ipython
3260 * IPython/ipmaker.py (make_IPython): make the default ipython
3256 directory be called _ipython under win32, to follow more the
3261 directory be called _ipython under win32, to follow more the
3257 naming peculiarities of that platform (where buggy software like
3262 naming peculiarities of that platform (where buggy software like
3258 Visual Sourcesafe breaks with .named directories). Reported by
3263 Visual Sourcesafe breaks with .named directories). Reported by
3259 Ville Vainio.
3264 Ville Vainio.
3260
3265
3261 2005-02-23 Fernando Perez <fperez@colorado.edu>
3266 2005-02-23 Fernando Perez <fperez@colorado.edu>
3262
3267
3263 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3268 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3264 auto_aliases for win32 which were causing problems. Users can
3269 auto_aliases for win32 which were causing problems. Users can
3265 define the ones they personally like.
3270 define the ones they personally like.
3266
3271
3267 2005-02-21 Fernando Perez <fperez@colorado.edu>
3272 2005-02-21 Fernando Perez <fperez@colorado.edu>
3268
3273
3269 * IPython/Magic.py (magic_time): new magic to time execution of
3274 * IPython/Magic.py (magic_time): new magic to time execution of
3270 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3275 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3271
3276
3272 2005-02-19 Fernando Perez <fperez@colorado.edu>
3277 2005-02-19 Fernando Perez <fperez@colorado.edu>
3273
3278
3274 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3279 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3275 into keys (for prompts, for example).
3280 into keys (for prompts, for example).
3276
3281
3277 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3282 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3278 prompts in case users want them. This introduces a small behavior
3283 prompts in case users want them. This introduces a small behavior
3279 change: ipython does not automatically add a space to all prompts
3284 change: ipython does not automatically add a space to all prompts
3280 anymore. To get the old prompts with a space, users should add it
3285 anymore. To get the old prompts with a space, users should add it
3281 manually to their ipythonrc file, so for example prompt_in1 should
3286 manually to their ipythonrc file, so for example prompt_in1 should
3282 now read 'In [\#]: ' instead of 'In [\#]:'.
3287 now read 'In [\#]: ' instead of 'In [\#]:'.
3283 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3288 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3284 file) to control left-padding of secondary prompts.
3289 file) to control left-padding of secondary prompts.
3285
3290
3286 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3291 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3287 the profiler can't be imported. Fix for Debian, which removed
3292 the profiler can't be imported. Fix for Debian, which removed
3288 profile.py because of License issues. I applied a slightly
3293 profile.py because of License issues. I applied a slightly
3289 modified version of the original Debian patch at
3294 modified version of the original Debian patch at
3290 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3295 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3291
3296
3292 2005-02-17 Fernando Perez <fperez@colorado.edu>
3297 2005-02-17 Fernando Perez <fperez@colorado.edu>
3293
3298
3294 * IPython/genutils.py (native_line_ends): Fix bug which would
3299 * IPython/genutils.py (native_line_ends): Fix bug which would
3295 cause improper line-ends under win32 b/c I was not opening files
3300 cause improper line-ends under win32 b/c I was not opening files
3296 in binary mode. Bug report and fix thanks to Ville.
3301 in binary mode. Bug report and fix thanks to Ville.
3297
3302
3298 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3303 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3299 trying to catch spurious foo[1] autocalls. My fix actually broke
3304 trying to catch spurious foo[1] autocalls. My fix actually broke
3300 ',/' autoquote/call with explicit escape (bad regexp).
3305 ',/' autoquote/call with explicit escape (bad regexp).
3301
3306
3302 2005-02-15 *** Released version 0.6.11
3307 2005-02-15 *** Released version 0.6.11
3303
3308
3304 2005-02-14 Fernando Perez <fperez@colorado.edu>
3309 2005-02-14 Fernando Perez <fperez@colorado.edu>
3305
3310
3306 * IPython/background_jobs.py: New background job management
3311 * IPython/background_jobs.py: New background job management
3307 subsystem. This is implemented via a new set of classes, and
3312 subsystem. This is implemented via a new set of classes, and
3308 IPython now provides a builtin 'jobs' object for background job
3313 IPython now provides a builtin 'jobs' object for background job
3309 execution. A convenience %bg magic serves as a lightweight
3314 execution. A convenience %bg magic serves as a lightweight
3310 frontend for starting the more common type of calls. This was
3315 frontend for starting the more common type of calls. This was
3311 inspired by discussions with B. Granger and the BackgroundCommand
3316 inspired by discussions with B. Granger and the BackgroundCommand
3312 class described in the book Python Scripting for Computational
3317 class described in the book Python Scripting for Computational
3313 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3318 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3314 (although ultimately no code from this text was used, as IPython's
3319 (although ultimately no code from this text was used, as IPython's
3315 system is a separate implementation).
3320 system is a separate implementation).
3316
3321
3317 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3322 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3318 to control the completion of single/double underscore names
3323 to control the completion of single/double underscore names
3319 separately. As documented in the example ipytonrc file, the
3324 separately. As documented in the example ipytonrc file, the
3320 readline_omit__names variable can now be set to 2, to omit even
3325 readline_omit__names variable can now be set to 2, to omit even
3321 single underscore names. Thanks to a patch by Brian Wong
3326 single underscore names. Thanks to a patch by Brian Wong
3322 <BrianWong-AT-AirgoNetworks.Com>.
3327 <BrianWong-AT-AirgoNetworks.Com>.
3323 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3328 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3324 be autocalled as foo([1]) if foo were callable. A problem for
3329 be autocalled as foo([1]) if foo were callable. A problem for
3325 things which are both callable and implement __getitem__.
3330 things which are both callable and implement __getitem__.
3326 (init_readline): Fix autoindentation for win32. Thanks to a patch
3331 (init_readline): Fix autoindentation for win32. Thanks to a patch
3327 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3332 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3328
3333
3329 2005-02-12 Fernando Perez <fperez@colorado.edu>
3334 2005-02-12 Fernando Perez <fperez@colorado.edu>
3330
3335
3331 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3336 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3332 which I had written long ago to sort out user error messages which
3337 which I had written long ago to sort out user error messages which
3333 may occur during startup. This seemed like a good idea initially,
3338 may occur during startup. This seemed like a good idea initially,
3334 but it has proven a disaster in retrospect. I don't want to
3339 but it has proven a disaster in retrospect. I don't want to
3335 change much code for now, so my fix is to set the internal 'debug'
3340 change much code for now, so my fix is to set the internal 'debug'
3336 flag to true everywhere, whose only job was precisely to control
3341 flag to true everywhere, whose only job was precisely to control
3337 this subsystem. This closes issue 28 (as well as avoiding all
3342 this subsystem. This closes issue 28 (as well as avoiding all
3338 sorts of strange hangups which occur from time to time).
3343 sorts of strange hangups which occur from time to time).
3339
3344
3340 2005-02-07 Fernando Perez <fperez@colorado.edu>
3345 2005-02-07 Fernando Perez <fperez@colorado.edu>
3341
3346
3342 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3347 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3343 previous call produced a syntax error.
3348 previous call produced a syntax error.
3344
3349
3345 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3350 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3346 classes without constructor.
3351 classes without constructor.
3347
3352
3348 2005-02-06 Fernando Perez <fperez@colorado.edu>
3353 2005-02-06 Fernando Perez <fperez@colorado.edu>
3349
3354
3350 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3355 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3351 completions with the results of each matcher, so we return results
3356 completions with the results of each matcher, so we return results
3352 to the user from all namespaces. This breaks with ipython
3357 to the user from all namespaces. This breaks with ipython
3353 tradition, but I think it's a nicer behavior. Now you get all
3358 tradition, but I think it's a nicer behavior. Now you get all
3354 possible completions listed, from all possible namespaces (python,
3359 possible completions listed, from all possible namespaces (python,
3355 filesystem, magics...) After a request by John Hunter
3360 filesystem, magics...) After a request by John Hunter
3356 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3361 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3357
3362
3358 2005-02-05 Fernando Perez <fperez@colorado.edu>
3363 2005-02-05 Fernando Perez <fperez@colorado.edu>
3359
3364
3360 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3365 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3361 the call had quote characters in it (the quotes were stripped).
3366 the call had quote characters in it (the quotes were stripped).
3362
3367
3363 2005-01-31 Fernando Perez <fperez@colorado.edu>
3368 2005-01-31 Fernando Perez <fperez@colorado.edu>
3364
3369
3365 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3370 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3366 Itpl.itpl() to make the code more robust against psyco
3371 Itpl.itpl() to make the code more robust against psyco
3367 optimizations.
3372 optimizations.
3368
3373
3369 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3374 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3370 of causing an exception. Quicker, cleaner.
3375 of causing an exception. Quicker, cleaner.
3371
3376
3372 2005-01-28 Fernando Perez <fperez@colorado.edu>
3377 2005-01-28 Fernando Perez <fperez@colorado.edu>
3373
3378
3374 * scripts/ipython_win_post_install.py (install): hardcode
3379 * scripts/ipython_win_post_install.py (install): hardcode
3375 sys.prefix+'python.exe' as the executable path. It turns out that
3380 sys.prefix+'python.exe' as the executable path. It turns out that
3376 during the post-installation run, sys.executable resolves to the
3381 during the post-installation run, sys.executable resolves to the
3377 name of the binary installer! I should report this as a distutils
3382 name of the binary installer! I should report this as a distutils
3378 bug, I think. I updated the .10 release with this tiny fix, to
3383 bug, I think. I updated the .10 release with this tiny fix, to
3379 avoid annoying the lists further.
3384 avoid annoying the lists further.
3380
3385
3381 2005-01-27 *** Released version 0.6.10
3386 2005-01-27 *** Released version 0.6.10
3382
3387
3383 2005-01-27 Fernando Perez <fperez@colorado.edu>
3388 2005-01-27 Fernando Perez <fperez@colorado.edu>
3384
3389
3385 * IPython/numutils.py (norm): Added 'inf' as optional name for
3390 * IPython/numutils.py (norm): Added 'inf' as optional name for
3386 L-infinity norm, included references to mathworld.com for vector
3391 L-infinity norm, included references to mathworld.com for vector
3387 norm definitions.
3392 norm definitions.
3388 (amin/amax): added amin/amax for array min/max. Similar to what
3393 (amin/amax): added amin/amax for array min/max. Similar to what
3389 pylab ships with after the recent reorganization of names.
3394 pylab ships with after the recent reorganization of names.
3390 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3395 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3391
3396
3392 * ipython.el: committed Alex's recent fixes and improvements.
3397 * ipython.el: committed Alex's recent fixes and improvements.
3393 Tested with python-mode from CVS, and it looks excellent. Since
3398 Tested with python-mode from CVS, and it looks excellent. Since
3394 python-mode hasn't released anything in a while, I'm temporarily
3399 python-mode hasn't released anything in a while, I'm temporarily
3395 putting a copy of today's CVS (v 4.70) of python-mode in:
3400 putting a copy of today's CVS (v 4.70) of python-mode in:
3396 http://ipython.scipy.org/tmp/python-mode.el
3401 http://ipython.scipy.org/tmp/python-mode.el
3397
3402
3398 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3403 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3399 sys.executable for the executable name, instead of assuming it's
3404 sys.executable for the executable name, instead of assuming it's
3400 called 'python.exe' (the post-installer would have produced broken
3405 called 'python.exe' (the post-installer would have produced broken
3401 setups on systems with a differently named python binary).
3406 setups on systems with a differently named python binary).
3402
3407
3403 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3408 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3404 references to os.linesep, to make the code more
3409 references to os.linesep, to make the code more
3405 platform-independent. This is also part of the win32 coloring
3410 platform-independent. This is also part of the win32 coloring
3406 fixes.
3411 fixes.
3407
3412
3408 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3413 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3409 lines, which actually cause coloring bugs because the length of
3414 lines, which actually cause coloring bugs because the length of
3410 the line is very difficult to correctly compute with embedded
3415 the line is very difficult to correctly compute with embedded
3411 escapes. This was the source of all the coloring problems under
3416 escapes. This was the source of all the coloring problems under
3412 Win32. I think that _finally_, Win32 users have a properly
3417 Win32. I think that _finally_, Win32 users have a properly
3413 working ipython in all respects. This would never have happened
3418 working ipython in all respects. This would never have happened
3414 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3419 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3415
3420
3416 2005-01-26 *** Released version 0.6.9
3421 2005-01-26 *** Released version 0.6.9
3417
3422
3418 2005-01-25 Fernando Perez <fperez@colorado.edu>
3423 2005-01-25 Fernando Perez <fperez@colorado.edu>
3419
3424
3420 * setup.py: finally, we have a true Windows installer, thanks to
3425 * setup.py: finally, we have a true Windows installer, thanks to
3421 the excellent work of Viktor Ransmayr
3426 the excellent work of Viktor Ransmayr
3422 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3427 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3423 Windows users. The setup routine is quite a bit cleaner thanks to
3428 Windows users. The setup routine is quite a bit cleaner thanks to
3424 this, and the post-install script uses the proper functions to
3429 this, and the post-install script uses the proper functions to
3425 allow a clean de-installation using the standard Windows Control
3430 allow a clean de-installation using the standard Windows Control
3426 Panel.
3431 Panel.
3427
3432
3428 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3433 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3429 environment variable under all OSes (including win32) if
3434 environment variable under all OSes (including win32) if
3430 available. This will give consistency to win32 users who have set
3435 available. This will give consistency to win32 users who have set
3431 this variable for any reason. If os.environ['HOME'] fails, the
3436 this variable for any reason. If os.environ['HOME'] fails, the
3432 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3437 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3433
3438
3434 2005-01-24 Fernando Perez <fperez@colorado.edu>
3439 2005-01-24 Fernando Perez <fperez@colorado.edu>
3435
3440
3436 * IPython/numutils.py (empty_like): add empty_like(), similar to
3441 * IPython/numutils.py (empty_like): add empty_like(), similar to
3437 zeros_like() but taking advantage of the new empty() Numeric routine.
3442 zeros_like() but taking advantage of the new empty() Numeric routine.
3438
3443
3439 2005-01-23 *** Released version 0.6.8
3444 2005-01-23 *** Released version 0.6.8
3440
3445
3441 2005-01-22 Fernando Perez <fperez@colorado.edu>
3446 2005-01-22 Fernando Perez <fperez@colorado.edu>
3442
3447
3443 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3448 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3444 automatic show() calls. After discussing things with JDH, it
3449 automatic show() calls. After discussing things with JDH, it
3445 turns out there are too many corner cases where this can go wrong.
3450 turns out there are too many corner cases where this can go wrong.
3446 It's best not to try to be 'too smart', and simply have ipython
3451 It's best not to try to be 'too smart', and simply have ipython
3447 reproduce as much as possible the default behavior of a normal
3452 reproduce as much as possible the default behavior of a normal
3448 python shell.
3453 python shell.
3449
3454
3450 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3455 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3451 line-splitting regexp and _prefilter() to avoid calling getattr()
3456 line-splitting regexp and _prefilter() to avoid calling getattr()
3452 on assignments. This closes
3457 on assignments. This closes
3453 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3458 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3454 readline uses getattr(), so a simple <TAB> keypress is still
3459 readline uses getattr(), so a simple <TAB> keypress is still
3455 enough to trigger getattr() calls on an object.
3460 enough to trigger getattr() calls on an object.
3456
3461
3457 2005-01-21 Fernando Perez <fperez@colorado.edu>
3462 2005-01-21 Fernando Perez <fperez@colorado.edu>
3458
3463
3459 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3464 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3460 docstring under pylab so it doesn't mask the original.
3465 docstring under pylab so it doesn't mask the original.
3461
3466
3462 2005-01-21 *** Released version 0.6.7
3467 2005-01-21 *** Released version 0.6.7
3463
3468
3464 2005-01-21 Fernando Perez <fperez@colorado.edu>
3469 2005-01-21 Fernando Perez <fperez@colorado.edu>
3465
3470
3466 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3471 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3467 signal handling for win32 users in multithreaded mode.
3472 signal handling for win32 users in multithreaded mode.
3468
3473
3469 2005-01-17 Fernando Perez <fperez@colorado.edu>
3474 2005-01-17 Fernando Perez <fperez@colorado.edu>
3470
3475
3471 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3476 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3472 instances with no __init__. After a crash report by Norbert Nemec
3477 instances with no __init__. After a crash report by Norbert Nemec
3473 <Norbert-AT-nemec-online.de>.
3478 <Norbert-AT-nemec-online.de>.
3474
3479
3475 2005-01-14 Fernando Perez <fperez@colorado.edu>
3480 2005-01-14 Fernando Perez <fperez@colorado.edu>
3476
3481
3477 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3482 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3478 names for verbose exceptions, when multiple dotted names and the
3483 names for verbose exceptions, when multiple dotted names and the
3479 'parent' object were present on the same line.
3484 'parent' object were present on the same line.
3480
3485
3481 2005-01-11 Fernando Perez <fperez@colorado.edu>
3486 2005-01-11 Fernando Perez <fperez@colorado.edu>
3482
3487
3483 * IPython/genutils.py (flag_calls): new utility to trap and flag
3488 * IPython/genutils.py (flag_calls): new utility to trap and flag
3484 calls in functions. I need it to clean up matplotlib support.
3489 calls in functions. I need it to clean up matplotlib support.
3485 Also removed some deprecated code in genutils.
3490 Also removed some deprecated code in genutils.
3486
3491
3487 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3492 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3488 that matplotlib scripts called with %run, which don't call show()
3493 that matplotlib scripts called with %run, which don't call show()
3489 themselves, still have their plotting windows open.
3494 themselves, still have their plotting windows open.
3490
3495
3491 2005-01-05 Fernando Perez <fperez@colorado.edu>
3496 2005-01-05 Fernando Perez <fperez@colorado.edu>
3492
3497
3493 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3498 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3494 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3499 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3495
3500
3496 2004-12-19 Fernando Perez <fperez@colorado.edu>
3501 2004-12-19 Fernando Perez <fperez@colorado.edu>
3497
3502
3498 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3503 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3499 parent_runcode, which was an eyesore. The same result can be
3504 parent_runcode, which was an eyesore. The same result can be
3500 obtained with Python's regular superclass mechanisms.
3505 obtained with Python's regular superclass mechanisms.
3501
3506
3502 2004-12-17 Fernando Perez <fperez@colorado.edu>
3507 2004-12-17 Fernando Perez <fperez@colorado.edu>
3503
3508
3504 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3509 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3505 reported by Prabhu.
3510 reported by Prabhu.
3506 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3511 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3507 sys.stderr) instead of explicitly calling sys.stderr. This helps
3512 sys.stderr) instead of explicitly calling sys.stderr. This helps
3508 maintain our I/O abstractions clean, for future GUI embeddings.
3513 maintain our I/O abstractions clean, for future GUI embeddings.
3509
3514
3510 * IPython/genutils.py (info): added new utility for sys.stderr
3515 * IPython/genutils.py (info): added new utility for sys.stderr
3511 unified info message handling (thin wrapper around warn()).
3516 unified info message handling (thin wrapper around warn()).
3512
3517
3513 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3518 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3514 composite (dotted) names on verbose exceptions.
3519 composite (dotted) names on verbose exceptions.
3515 (VerboseTB.nullrepr): harden against another kind of errors which
3520 (VerboseTB.nullrepr): harden against another kind of errors which
3516 Python's inspect module can trigger, and which were crashing
3521 Python's inspect module can trigger, and which were crashing
3517 IPython. Thanks to a report by Marco Lombardi
3522 IPython. Thanks to a report by Marco Lombardi
3518 <mlombard-AT-ma010192.hq.eso.org>.
3523 <mlombard-AT-ma010192.hq.eso.org>.
3519
3524
3520 2004-12-13 *** Released version 0.6.6
3525 2004-12-13 *** Released version 0.6.6
3521
3526
3522 2004-12-12 Fernando Perez <fperez@colorado.edu>
3527 2004-12-12 Fernando Perez <fperez@colorado.edu>
3523
3528
3524 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3529 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3525 generated by pygtk upon initialization if it was built without
3530 generated by pygtk upon initialization if it was built without
3526 threads (for matplotlib users). After a crash reported by
3531 threads (for matplotlib users). After a crash reported by
3527 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3532 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3528
3533
3529 * IPython/ipmaker.py (make_IPython): fix small bug in the
3534 * IPython/ipmaker.py (make_IPython): fix small bug in the
3530 import_some parameter for multiple imports.
3535 import_some parameter for multiple imports.
3531
3536
3532 * IPython/iplib.py (ipmagic): simplified the interface of
3537 * IPython/iplib.py (ipmagic): simplified the interface of
3533 ipmagic() to take a single string argument, just as it would be
3538 ipmagic() to take a single string argument, just as it would be
3534 typed at the IPython cmd line.
3539 typed at the IPython cmd line.
3535 (ipalias): Added new ipalias() with an interface identical to
3540 (ipalias): Added new ipalias() with an interface identical to
3536 ipmagic(). This completes exposing a pure python interface to the
3541 ipmagic(). This completes exposing a pure python interface to the
3537 alias and magic system, which can be used in loops or more complex
3542 alias and magic system, which can be used in loops or more complex
3538 code where IPython's automatic line mangling is not active.
3543 code where IPython's automatic line mangling is not active.
3539
3544
3540 * IPython/genutils.py (timing): changed interface of timing to
3545 * IPython/genutils.py (timing): changed interface of timing to
3541 simply run code once, which is the most common case. timings()
3546 simply run code once, which is the most common case. timings()
3542 remains unchanged, for the cases where you want multiple runs.
3547 remains unchanged, for the cases where you want multiple runs.
3543
3548
3544 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3549 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3545 bug where Python2.2 crashes with exec'ing code which does not end
3550 bug where Python2.2 crashes with exec'ing code which does not end
3546 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3551 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3547 before.
3552 before.
3548
3553
3549 2004-12-10 Fernando Perez <fperez@colorado.edu>
3554 2004-12-10 Fernando Perez <fperez@colorado.edu>
3550
3555
3551 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3556 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3552 -t to -T, to accomodate the new -t flag in %run (the %run and
3557 -t to -T, to accomodate the new -t flag in %run (the %run and
3553 %prun options are kind of intermixed, and it's not easy to change
3558 %prun options are kind of intermixed, and it's not easy to change
3554 this with the limitations of python's getopt).
3559 this with the limitations of python's getopt).
3555
3560
3556 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3561 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3557 the execution of scripts. It's not as fine-tuned as timeit.py,
3562 the execution of scripts. It's not as fine-tuned as timeit.py,
3558 but it works from inside ipython (and under 2.2, which lacks
3563 but it works from inside ipython (and under 2.2, which lacks
3559 timeit.py). Optionally a number of runs > 1 can be given for
3564 timeit.py). Optionally a number of runs > 1 can be given for
3560 timing very short-running code.
3565 timing very short-running code.
3561
3566
3562 * IPython/genutils.py (uniq_stable): new routine which returns a
3567 * IPython/genutils.py (uniq_stable): new routine which returns a
3563 list of unique elements in any iterable, but in stable order of
3568 list of unique elements in any iterable, but in stable order of
3564 appearance. I needed this for the ultraTB fixes, and it's a handy
3569 appearance. I needed this for the ultraTB fixes, and it's a handy
3565 utility.
3570 utility.
3566
3571
3567 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3572 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3568 dotted names in Verbose exceptions. This had been broken since
3573 dotted names in Verbose exceptions. This had been broken since
3569 the very start, now x.y will properly be printed in a Verbose
3574 the very start, now x.y will properly be printed in a Verbose
3570 traceback, instead of x being shown and y appearing always as an
3575 traceback, instead of x being shown and y appearing always as an
3571 'undefined global'. Getting this to work was a bit tricky,
3576 'undefined global'. Getting this to work was a bit tricky,
3572 because by default python tokenizers are stateless. Saved by
3577 because by default python tokenizers are stateless. Saved by
3573 python's ability to easily add a bit of state to an arbitrary
3578 python's ability to easily add a bit of state to an arbitrary
3574 function (without needing to build a full-blown callable object).
3579 function (without needing to build a full-blown callable object).
3575
3580
3576 Also big cleanup of this code, which had horrendous runtime
3581 Also big cleanup of this code, which had horrendous runtime
3577 lookups of zillions of attributes for colorization. Moved all
3582 lookups of zillions of attributes for colorization. Moved all
3578 this code into a few templates, which make it cleaner and quicker.
3583 this code into a few templates, which make it cleaner and quicker.
3579
3584
3580 Printout quality was also improved for Verbose exceptions: one
3585 Printout quality was also improved for Verbose exceptions: one
3581 variable per line, and memory addresses are printed (this can be
3586 variable per line, and memory addresses are printed (this can be
3582 quite handy in nasty debugging situations, which is what Verbose
3587 quite handy in nasty debugging situations, which is what Verbose
3583 is for).
3588 is for).
3584
3589
3585 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3590 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3586 the command line as scripts to be loaded by embedded instances.
3591 the command line as scripts to be loaded by embedded instances.
3587 Doing so has the potential for an infinite recursion if there are
3592 Doing so has the potential for an infinite recursion if there are
3588 exceptions thrown in the process. This fixes a strange crash
3593 exceptions thrown in the process. This fixes a strange crash
3589 reported by Philippe MULLER <muller-AT-irit.fr>.
3594 reported by Philippe MULLER <muller-AT-irit.fr>.
3590
3595
3591 2004-12-09 Fernando Perez <fperez@colorado.edu>
3596 2004-12-09 Fernando Perez <fperez@colorado.edu>
3592
3597
3593 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3598 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3594 to reflect new names in matplotlib, which now expose the
3599 to reflect new names in matplotlib, which now expose the
3595 matlab-compatible interface via a pylab module instead of the
3600 matlab-compatible interface via a pylab module instead of the
3596 'matlab' name. The new code is backwards compatible, so users of
3601 'matlab' name. The new code is backwards compatible, so users of
3597 all matplotlib versions are OK. Patch by J. Hunter.
3602 all matplotlib versions are OK. Patch by J. Hunter.
3598
3603
3599 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3604 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3600 of __init__ docstrings for instances (class docstrings are already
3605 of __init__ docstrings for instances (class docstrings are already
3601 automatically printed). Instances with customized docstrings
3606 automatically printed). Instances with customized docstrings
3602 (indep. of the class) are also recognized and all 3 separate
3607 (indep. of the class) are also recognized and all 3 separate
3603 docstrings are printed (instance, class, constructor). After some
3608 docstrings are printed (instance, class, constructor). After some
3604 comments/suggestions by J. Hunter.
3609 comments/suggestions by J. Hunter.
3605
3610
3606 2004-12-05 Fernando Perez <fperez@colorado.edu>
3611 2004-12-05 Fernando Perez <fperez@colorado.edu>
3607
3612
3608 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3613 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3609 warnings when tab-completion fails and triggers an exception.
3614 warnings when tab-completion fails and triggers an exception.
3610
3615
3611 2004-12-03 Fernando Perez <fperez@colorado.edu>
3616 2004-12-03 Fernando Perez <fperez@colorado.edu>
3612
3617
3613 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3618 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3614 be triggered when using 'run -p'. An incorrect option flag was
3619 be triggered when using 'run -p'. An incorrect option flag was
3615 being set ('d' instead of 'D').
3620 being set ('d' instead of 'D').
3616 (manpage): fix missing escaped \- sign.
3621 (manpage): fix missing escaped \- sign.
3617
3622
3618 2004-11-30 *** Released version 0.6.5
3623 2004-11-30 *** Released version 0.6.5
3619
3624
3620 2004-11-30 Fernando Perez <fperez@colorado.edu>
3625 2004-11-30 Fernando Perez <fperez@colorado.edu>
3621
3626
3622 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3627 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3623 setting with -d option.
3628 setting with -d option.
3624
3629
3625 * setup.py (docfiles): Fix problem where the doc glob I was using
3630 * setup.py (docfiles): Fix problem where the doc glob I was using
3626 was COMPLETELY BROKEN. It was giving the right files by pure
3631 was COMPLETELY BROKEN. It was giving the right files by pure
3627 accident, but failed once I tried to include ipython.el. Note:
3632 accident, but failed once I tried to include ipython.el. Note:
3628 glob() does NOT allow you to do exclusion on multiple endings!
3633 glob() does NOT allow you to do exclusion on multiple endings!
3629
3634
3630 2004-11-29 Fernando Perez <fperez@colorado.edu>
3635 2004-11-29 Fernando Perez <fperez@colorado.edu>
3631
3636
3632 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3637 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3633 the manpage as the source. Better formatting & consistency.
3638 the manpage as the source. Better formatting & consistency.
3634
3639
3635 * IPython/Magic.py (magic_run): Added new -d option, to run
3640 * IPython/Magic.py (magic_run): Added new -d option, to run
3636 scripts under the control of the python pdb debugger. Note that
3641 scripts under the control of the python pdb debugger. Note that
3637 this required changing the %prun option -d to -D, to avoid a clash
3642 this required changing the %prun option -d to -D, to avoid a clash
3638 (since %run must pass options to %prun, and getopt is too dumb to
3643 (since %run must pass options to %prun, and getopt is too dumb to
3639 handle options with string values with embedded spaces). Thanks
3644 handle options with string values with embedded spaces). Thanks
3640 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3645 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3641 (magic_who_ls): added type matching to %who and %whos, so that one
3646 (magic_who_ls): added type matching to %who and %whos, so that one
3642 can filter their output to only include variables of certain
3647 can filter their output to only include variables of certain
3643 types. Another suggestion by Matthew.
3648 types. Another suggestion by Matthew.
3644 (magic_whos): Added memory summaries in kb and Mb for arrays.
3649 (magic_whos): Added memory summaries in kb and Mb for arrays.
3645 (magic_who): Improve formatting (break lines every 9 vars).
3650 (magic_who): Improve formatting (break lines every 9 vars).
3646
3651
3647 2004-11-28 Fernando Perez <fperez@colorado.edu>
3652 2004-11-28 Fernando Perez <fperez@colorado.edu>
3648
3653
3649 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3654 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3650 cache when empty lines were present.
3655 cache when empty lines were present.
3651
3656
3652 2004-11-24 Fernando Perez <fperez@colorado.edu>
3657 2004-11-24 Fernando Perez <fperez@colorado.edu>
3653
3658
3654 * IPython/usage.py (__doc__): document the re-activated threading
3659 * IPython/usage.py (__doc__): document the re-activated threading
3655 options for WX and GTK.
3660 options for WX and GTK.
3656
3661
3657 2004-11-23 Fernando Perez <fperez@colorado.edu>
3662 2004-11-23 Fernando Perez <fperez@colorado.edu>
3658
3663
3659 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3664 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3660 the -wthread and -gthread options, along with a new -tk one to try
3665 the -wthread and -gthread options, along with a new -tk one to try
3661 and coordinate Tk threading with wx/gtk. The tk support is very
3666 and coordinate Tk threading with wx/gtk. The tk support is very
3662 platform dependent, since it seems to require Tcl and Tk to be
3667 platform dependent, since it seems to require Tcl and Tk to be
3663 built with threads (Fedora1/2 appears NOT to have it, but in
3668 built with threads (Fedora1/2 appears NOT to have it, but in
3664 Prabhu's Debian boxes it works OK). But even with some Tk
3669 Prabhu's Debian boxes it works OK). But even with some Tk
3665 limitations, this is a great improvement.
3670 limitations, this is a great improvement.
3666
3671
3667 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3672 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3668 info in user prompts. Patch by Prabhu.
3673 info in user prompts. Patch by Prabhu.
3669
3674
3670 2004-11-18 Fernando Perez <fperez@colorado.edu>
3675 2004-11-18 Fernando Perez <fperez@colorado.edu>
3671
3676
3672 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3677 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3673 EOFErrors and bail, to avoid infinite loops if a non-terminating
3678 EOFErrors and bail, to avoid infinite loops if a non-terminating
3674 file is fed into ipython. Patch submitted in issue 19 by user,
3679 file is fed into ipython. Patch submitted in issue 19 by user,
3675 many thanks.
3680 many thanks.
3676
3681
3677 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3682 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3678 autoquote/parens in continuation prompts, which can cause lots of
3683 autoquote/parens in continuation prompts, which can cause lots of
3679 problems. Closes roundup issue 20.
3684 problems. Closes roundup issue 20.
3680
3685
3681 2004-11-17 Fernando Perez <fperez@colorado.edu>
3686 2004-11-17 Fernando Perez <fperez@colorado.edu>
3682
3687
3683 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3688 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3684 reported as debian bug #280505. I'm not sure my local changelog
3689 reported as debian bug #280505. I'm not sure my local changelog
3685 entry has the proper debian format (Jack?).
3690 entry has the proper debian format (Jack?).
3686
3691
3687 2004-11-08 *** Released version 0.6.4
3692 2004-11-08 *** Released version 0.6.4
3688
3693
3689 2004-11-08 Fernando Perez <fperez@colorado.edu>
3694 2004-11-08 Fernando Perez <fperez@colorado.edu>
3690
3695
3691 * IPython/iplib.py (init_readline): Fix exit message for Windows
3696 * IPython/iplib.py (init_readline): Fix exit message for Windows
3692 when readline is active. Thanks to a report by Eric Jones
3697 when readline is active. Thanks to a report by Eric Jones
3693 <eric-AT-enthought.com>.
3698 <eric-AT-enthought.com>.
3694
3699
3695 2004-11-07 Fernando Perez <fperez@colorado.edu>
3700 2004-11-07 Fernando Perez <fperez@colorado.edu>
3696
3701
3697 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3702 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3698 sometimes seen by win2k/cygwin users.
3703 sometimes seen by win2k/cygwin users.
3699
3704
3700 2004-11-06 Fernando Perez <fperez@colorado.edu>
3705 2004-11-06 Fernando Perez <fperez@colorado.edu>
3701
3706
3702 * IPython/iplib.py (interact): Change the handling of %Exit from
3707 * IPython/iplib.py (interact): Change the handling of %Exit from
3703 trying to propagate a SystemExit to an internal ipython flag.
3708 trying to propagate a SystemExit to an internal ipython flag.
3704 This is less elegant than using Python's exception mechanism, but
3709 This is less elegant than using Python's exception mechanism, but
3705 I can't get that to work reliably with threads, so under -pylab
3710 I can't get that to work reliably with threads, so under -pylab
3706 %Exit was hanging IPython. Cross-thread exception handling is
3711 %Exit was hanging IPython. Cross-thread exception handling is
3707 really a bitch. Thaks to a bug report by Stephen Walton
3712 really a bitch. Thaks to a bug report by Stephen Walton
3708 <stephen.walton-AT-csun.edu>.
3713 <stephen.walton-AT-csun.edu>.
3709
3714
3710 2004-11-04 Fernando Perez <fperez@colorado.edu>
3715 2004-11-04 Fernando Perez <fperez@colorado.edu>
3711
3716
3712 * IPython/iplib.py (raw_input_original): store a pointer to the
3717 * IPython/iplib.py (raw_input_original): store a pointer to the
3713 true raw_input to harden against code which can modify it
3718 true raw_input to harden against code which can modify it
3714 (wx.py.PyShell does this and would otherwise crash ipython).
3719 (wx.py.PyShell does this and would otherwise crash ipython).
3715 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3720 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3716
3721
3717 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3722 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3718 Ctrl-C problem, which does not mess up the input line.
3723 Ctrl-C problem, which does not mess up the input line.
3719
3724
3720 2004-11-03 Fernando Perez <fperez@colorado.edu>
3725 2004-11-03 Fernando Perez <fperez@colorado.edu>
3721
3726
3722 * IPython/Release.py: Changed licensing to BSD, in all files.
3727 * IPython/Release.py: Changed licensing to BSD, in all files.
3723 (name): lowercase name for tarball/RPM release.
3728 (name): lowercase name for tarball/RPM release.
3724
3729
3725 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3730 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3726 use throughout ipython.
3731 use throughout ipython.
3727
3732
3728 * IPython/Magic.py (Magic._ofind): Switch to using the new
3733 * IPython/Magic.py (Magic._ofind): Switch to using the new
3729 OInspect.getdoc() function.
3734 OInspect.getdoc() function.
3730
3735
3731 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3736 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3732 of the line currently being canceled via Ctrl-C. It's extremely
3737 of the line currently being canceled via Ctrl-C. It's extremely
3733 ugly, but I don't know how to do it better (the problem is one of
3738 ugly, but I don't know how to do it better (the problem is one of
3734 handling cross-thread exceptions).
3739 handling cross-thread exceptions).
3735
3740
3736 2004-10-28 Fernando Perez <fperez@colorado.edu>
3741 2004-10-28 Fernando Perez <fperez@colorado.edu>
3737
3742
3738 * IPython/Shell.py (signal_handler): add signal handlers to trap
3743 * IPython/Shell.py (signal_handler): add signal handlers to trap
3739 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3744 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3740 report by Francesc Alted.
3745 report by Francesc Alted.
3741
3746
3742 2004-10-21 Fernando Perez <fperez@colorado.edu>
3747 2004-10-21 Fernando Perez <fperez@colorado.edu>
3743
3748
3744 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3749 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3745 to % for pysh syntax extensions.
3750 to % for pysh syntax extensions.
3746
3751
3747 2004-10-09 Fernando Perez <fperez@colorado.edu>
3752 2004-10-09 Fernando Perez <fperez@colorado.edu>
3748
3753
3749 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3754 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3750 arrays to print a more useful summary, without calling str(arr).
3755 arrays to print a more useful summary, without calling str(arr).
3751 This avoids the problem of extremely lengthy computations which
3756 This avoids the problem of extremely lengthy computations which
3752 occur if arr is large, and appear to the user as a system lockup
3757 occur if arr is large, and appear to the user as a system lockup
3753 with 100% cpu activity. After a suggestion by Kristian Sandberg
3758 with 100% cpu activity. After a suggestion by Kristian Sandberg
3754 <Kristian.Sandberg@colorado.edu>.
3759 <Kristian.Sandberg@colorado.edu>.
3755 (Magic.__init__): fix bug in global magic escapes not being
3760 (Magic.__init__): fix bug in global magic escapes not being
3756 correctly set.
3761 correctly set.
3757
3762
3758 2004-10-08 Fernando Perez <fperez@colorado.edu>
3763 2004-10-08 Fernando Perez <fperez@colorado.edu>
3759
3764
3760 * IPython/Magic.py (__license__): change to absolute imports of
3765 * IPython/Magic.py (__license__): change to absolute imports of
3761 ipython's own internal packages, to start adapting to the absolute
3766 ipython's own internal packages, to start adapting to the absolute
3762 import requirement of PEP-328.
3767 import requirement of PEP-328.
3763
3768
3764 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3769 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3765 files, and standardize author/license marks through the Release
3770 files, and standardize author/license marks through the Release
3766 module instead of having per/file stuff (except for files with
3771 module instead of having per/file stuff (except for files with
3767 particular licenses, like the MIT/PSF-licensed codes).
3772 particular licenses, like the MIT/PSF-licensed codes).
3768
3773
3769 * IPython/Debugger.py: remove dead code for python 2.1
3774 * IPython/Debugger.py: remove dead code for python 2.1
3770
3775
3771 2004-10-04 Fernando Perez <fperez@colorado.edu>
3776 2004-10-04 Fernando Perez <fperez@colorado.edu>
3772
3777
3773 * IPython/iplib.py (ipmagic): New function for accessing magics
3778 * IPython/iplib.py (ipmagic): New function for accessing magics
3774 via a normal python function call.
3779 via a normal python function call.
3775
3780
3776 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3781 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3777 from '@' to '%', to accomodate the new @decorator syntax of python
3782 from '@' to '%', to accomodate the new @decorator syntax of python
3778 2.4.
3783 2.4.
3779
3784
3780 2004-09-29 Fernando Perez <fperez@colorado.edu>
3785 2004-09-29 Fernando Perez <fperez@colorado.edu>
3781
3786
3782 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3787 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3783 matplotlib.use to prevent running scripts which try to switch
3788 matplotlib.use to prevent running scripts which try to switch
3784 interactive backends from within ipython. This will just crash
3789 interactive backends from within ipython. This will just crash
3785 the python interpreter, so we can't allow it (but a detailed error
3790 the python interpreter, so we can't allow it (but a detailed error
3786 is given to the user).
3791 is given to the user).
3787
3792
3788 2004-09-28 Fernando Perez <fperez@colorado.edu>
3793 2004-09-28 Fernando Perez <fperez@colorado.edu>
3789
3794
3790 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3795 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3791 matplotlib-related fixes so that using @run with non-matplotlib
3796 matplotlib-related fixes so that using @run with non-matplotlib
3792 scripts doesn't pop up spurious plot windows. This requires
3797 scripts doesn't pop up spurious plot windows. This requires
3793 matplotlib >= 0.63, where I had to make some changes as well.
3798 matplotlib >= 0.63, where I had to make some changes as well.
3794
3799
3795 * IPython/ipmaker.py (make_IPython): update version requirement to
3800 * IPython/ipmaker.py (make_IPython): update version requirement to
3796 python 2.2.
3801 python 2.2.
3797
3802
3798 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3803 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3799 banner arg for embedded customization.
3804 banner arg for embedded customization.
3800
3805
3801 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3806 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3802 explicit uses of __IP as the IPython's instance name. Now things
3807 explicit uses of __IP as the IPython's instance name. Now things
3803 are properly handled via the shell.name value. The actual code
3808 are properly handled via the shell.name value. The actual code
3804 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3809 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3805 is much better than before. I'll clean things completely when the
3810 is much better than before. I'll clean things completely when the
3806 magic stuff gets a real overhaul.
3811 magic stuff gets a real overhaul.
3807
3812
3808 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3813 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3809 minor changes to debian dir.
3814 minor changes to debian dir.
3810
3815
3811 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3816 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3812 pointer to the shell itself in the interactive namespace even when
3817 pointer to the shell itself in the interactive namespace even when
3813 a user-supplied dict is provided. This is needed for embedding
3818 a user-supplied dict is provided. This is needed for embedding
3814 purposes (found by tests with Michel Sanner).
3819 purposes (found by tests with Michel Sanner).
3815
3820
3816 2004-09-27 Fernando Perez <fperez@colorado.edu>
3821 2004-09-27 Fernando Perez <fperez@colorado.edu>
3817
3822
3818 * IPython/UserConfig/ipythonrc: remove []{} from
3823 * IPython/UserConfig/ipythonrc: remove []{} from
3819 readline_remove_delims, so that things like [modname.<TAB> do
3824 readline_remove_delims, so that things like [modname.<TAB> do
3820 proper completion. This disables [].TAB, but that's a less common
3825 proper completion. This disables [].TAB, but that's a less common
3821 case than module names in list comprehensions, for example.
3826 case than module names in list comprehensions, for example.
3822 Thanks to a report by Andrea Riciputi.
3827 Thanks to a report by Andrea Riciputi.
3823
3828
3824 2004-09-09 Fernando Perez <fperez@colorado.edu>
3829 2004-09-09 Fernando Perez <fperez@colorado.edu>
3825
3830
3826 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3831 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3827 blocking problems in win32 and osx. Fix by John.
3832 blocking problems in win32 and osx. Fix by John.
3828
3833
3829 2004-09-08 Fernando Perez <fperez@colorado.edu>
3834 2004-09-08 Fernando Perez <fperez@colorado.edu>
3830
3835
3831 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3836 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3832 for Win32 and OSX. Fix by John Hunter.
3837 for Win32 and OSX. Fix by John Hunter.
3833
3838
3834 2004-08-30 *** Released version 0.6.3
3839 2004-08-30 *** Released version 0.6.3
3835
3840
3836 2004-08-30 Fernando Perez <fperez@colorado.edu>
3841 2004-08-30 Fernando Perez <fperez@colorado.edu>
3837
3842
3838 * setup.py (isfile): Add manpages to list of dependent files to be
3843 * setup.py (isfile): Add manpages to list of dependent files to be
3839 updated.
3844 updated.
3840
3845
3841 2004-08-27 Fernando Perez <fperez@colorado.edu>
3846 2004-08-27 Fernando Perez <fperez@colorado.edu>
3842
3847
3843 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3848 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3844 for now. They don't really work with standalone WX/GTK code
3849 for now. They don't really work with standalone WX/GTK code
3845 (though matplotlib IS working fine with both of those backends).
3850 (though matplotlib IS working fine with both of those backends).
3846 This will neeed much more testing. I disabled most things with
3851 This will neeed much more testing. I disabled most things with
3847 comments, so turning it back on later should be pretty easy.
3852 comments, so turning it back on later should be pretty easy.
3848
3853
3849 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3854 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3850 autocalling of expressions like r'foo', by modifying the line
3855 autocalling of expressions like r'foo', by modifying the line
3851 split regexp. Closes
3856 split regexp. Closes
3852 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3857 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3853 Riley <ipythonbugs-AT-sabi.net>.
3858 Riley <ipythonbugs-AT-sabi.net>.
3854 (InteractiveShell.mainloop): honor --nobanner with banner
3859 (InteractiveShell.mainloop): honor --nobanner with banner
3855 extensions.
3860 extensions.
3856
3861
3857 * IPython/Shell.py: Significant refactoring of all classes, so
3862 * IPython/Shell.py: Significant refactoring of all classes, so
3858 that we can really support ALL matplotlib backends and threading
3863 that we can really support ALL matplotlib backends and threading
3859 models (John spotted a bug with Tk which required this). Now we
3864 models (John spotted a bug with Tk which required this). Now we
3860 should support single-threaded, WX-threads and GTK-threads, both
3865 should support single-threaded, WX-threads and GTK-threads, both
3861 for generic code and for matplotlib.
3866 for generic code and for matplotlib.
3862
3867
3863 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3868 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3864 -pylab, to simplify things for users. Will also remove the pylab
3869 -pylab, to simplify things for users. Will also remove the pylab
3865 profile, since now all of matplotlib configuration is directly
3870 profile, since now all of matplotlib configuration is directly
3866 handled here. This also reduces startup time.
3871 handled here. This also reduces startup time.
3867
3872
3868 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3873 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3869 shell wasn't being correctly called. Also in IPShellWX.
3874 shell wasn't being correctly called. Also in IPShellWX.
3870
3875
3871 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3876 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3872 fine-tune banner.
3877 fine-tune banner.
3873
3878
3874 * IPython/numutils.py (spike): Deprecate these spike functions,
3879 * IPython/numutils.py (spike): Deprecate these spike functions,
3875 delete (long deprecated) gnuplot_exec handler.
3880 delete (long deprecated) gnuplot_exec handler.
3876
3881
3877 2004-08-26 Fernando Perez <fperez@colorado.edu>
3882 2004-08-26 Fernando Perez <fperez@colorado.edu>
3878
3883
3879 * ipython.1: Update for threading options, plus some others which
3884 * ipython.1: Update for threading options, plus some others which
3880 were missing.
3885 were missing.
3881
3886
3882 * IPython/ipmaker.py (__call__): Added -wthread option for
3887 * IPython/ipmaker.py (__call__): Added -wthread option for
3883 wxpython thread handling. Make sure threading options are only
3888 wxpython thread handling. Make sure threading options are only
3884 valid at the command line.
3889 valid at the command line.
3885
3890
3886 * scripts/ipython: moved shell selection into a factory function
3891 * scripts/ipython: moved shell selection into a factory function
3887 in Shell.py, to keep the starter script to a minimum.
3892 in Shell.py, to keep the starter script to a minimum.
3888
3893
3889 2004-08-25 Fernando Perez <fperez@colorado.edu>
3894 2004-08-25 Fernando Perez <fperez@colorado.edu>
3890
3895
3891 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3896 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3892 John. Along with some recent changes he made to matplotlib, the
3897 John. Along with some recent changes he made to matplotlib, the
3893 next versions of both systems should work very well together.
3898 next versions of both systems should work very well together.
3894
3899
3895 2004-08-24 Fernando Perez <fperez@colorado.edu>
3900 2004-08-24 Fernando Perez <fperez@colorado.edu>
3896
3901
3897 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3902 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3898 tried to switch the profiling to using hotshot, but I'm getting
3903 tried to switch the profiling to using hotshot, but I'm getting
3899 strange errors from prof.runctx() there. I may be misreading the
3904 strange errors from prof.runctx() there. I may be misreading the
3900 docs, but it looks weird. For now the profiling code will
3905 docs, but it looks weird. For now the profiling code will
3901 continue to use the standard profiler.
3906 continue to use the standard profiler.
3902
3907
3903 2004-08-23 Fernando Perez <fperez@colorado.edu>
3908 2004-08-23 Fernando Perez <fperez@colorado.edu>
3904
3909
3905 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3910 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3906 threaded shell, by John Hunter. It's not quite ready yet, but
3911 threaded shell, by John Hunter. It's not quite ready yet, but
3907 close.
3912 close.
3908
3913
3909 2004-08-22 Fernando Perez <fperez@colorado.edu>
3914 2004-08-22 Fernando Perez <fperez@colorado.edu>
3910
3915
3911 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3916 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3912 in Magic and ultraTB.
3917 in Magic and ultraTB.
3913
3918
3914 * ipython.1: document threading options in manpage.
3919 * ipython.1: document threading options in manpage.
3915
3920
3916 * scripts/ipython: Changed name of -thread option to -gthread,
3921 * scripts/ipython: Changed name of -thread option to -gthread,
3917 since this is GTK specific. I want to leave the door open for a
3922 since this is GTK specific. I want to leave the door open for a
3918 -wthread option for WX, which will most likely be necessary. This
3923 -wthread option for WX, which will most likely be necessary. This
3919 change affects usage and ipmaker as well.
3924 change affects usage and ipmaker as well.
3920
3925
3921 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3926 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3922 handle the matplotlib shell issues. Code by John Hunter
3927 handle the matplotlib shell issues. Code by John Hunter
3923 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3928 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3924 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3929 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3925 broken (and disabled for end users) for now, but it puts the
3930 broken (and disabled for end users) for now, but it puts the
3926 infrastructure in place.
3931 infrastructure in place.
3927
3932
3928 2004-08-21 Fernando Perez <fperez@colorado.edu>
3933 2004-08-21 Fernando Perez <fperez@colorado.edu>
3929
3934
3930 * ipythonrc-pylab: Add matplotlib support.
3935 * ipythonrc-pylab: Add matplotlib support.
3931
3936
3932 * matplotlib_config.py: new files for matplotlib support, part of
3937 * matplotlib_config.py: new files for matplotlib support, part of
3933 the pylab profile.
3938 the pylab profile.
3934
3939
3935 * IPython/usage.py (__doc__): documented the threading options.
3940 * IPython/usage.py (__doc__): documented the threading options.
3936
3941
3937 2004-08-20 Fernando Perez <fperez@colorado.edu>
3942 2004-08-20 Fernando Perez <fperez@colorado.edu>
3938
3943
3939 * ipython: Modified the main calling routine to handle the -thread
3944 * ipython: Modified the main calling routine to handle the -thread
3940 and -mpthread options. This needs to be done as a top-level hack,
3945 and -mpthread options. This needs to be done as a top-level hack,
3941 because it determines which class to instantiate for IPython
3946 because it determines which class to instantiate for IPython
3942 itself.
3947 itself.
3943
3948
3944 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3949 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3945 classes to support multithreaded GTK operation without blocking,
3950 classes to support multithreaded GTK operation without blocking,
3946 and matplotlib with all backends. This is a lot of still very
3951 and matplotlib with all backends. This is a lot of still very
3947 experimental code, and threads are tricky. So it may still have a
3952 experimental code, and threads are tricky. So it may still have a
3948 few rough edges... This code owes a lot to
3953 few rough edges... This code owes a lot to
3949 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3954 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3950 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3955 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3951 to John Hunter for all the matplotlib work.
3956 to John Hunter for all the matplotlib work.
3952
3957
3953 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3958 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3954 options for gtk thread and matplotlib support.
3959 options for gtk thread and matplotlib support.
3955
3960
3956 2004-08-16 Fernando Perez <fperez@colorado.edu>
3961 2004-08-16 Fernando Perez <fperez@colorado.edu>
3957
3962
3958 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3963 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3959 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3964 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3960 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3965 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3961
3966
3962 2004-08-11 Fernando Perez <fperez@colorado.edu>
3967 2004-08-11 Fernando Perez <fperez@colorado.edu>
3963
3968
3964 * setup.py (isfile): Fix build so documentation gets updated for
3969 * setup.py (isfile): Fix build so documentation gets updated for
3965 rpms (it was only done for .tgz builds).
3970 rpms (it was only done for .tgz builds).
3966
3971
3967 2004-08-10 Fernando Perez <fperez@colorado.edu>
3972 2004-08-10 Fernando Perez <fperez@colorado.edu>
3968
3973
3969 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3974 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3970
3975
3971 * iplib.py : Silence syntax error exceptions in tab-completion.
3976 * iplib.py : Silence syntax error exceptions in tab-completion.
3972
3977
3973 2004-08-05 Fernando Perez <fperez@colorado.edu>
3978 2004-08-05 Fernando Perez <fperez@colorado.edu>
3974
3979
3975 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3980 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3976 'color off' mark for continuation prompts. This was causing long
3981 'color off' mark for continuation prompts. This was causing long
3977 continuation lines to mis-wrap.
3982 continuation lines to mis-wrap.
3978
3983
3979 2004-08-01 Fernando Perez <fperez@colorado.edu>
3984 2004-08-01 Fernando Perez <fperez@colorado.edu>
3980
3985
3981 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3986 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3982 for building ipython to be a parameter. All this is necessary
3987 for building ipython to be a parameter. All this is necessary
3983 right now to have a multithreaded version, but this insane
3988 right now to have a multithreaded version, but this insane
3984 non-design will be cleaned up soon. For now, it's a hack that
3989 non-design will be cleaned up soon. For now, it's a hack that
3985 works.
3990 works.
3986
3991
3987 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3992 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3988 args in various places. No bugs so far, but it's a dangerous
3993 args in various places. No bugs so far, but it's a dangerous
3989 practice.
3994 practice.
3990
3995
3991 2004-07-31 Fernando Perez <fperez@colorado.edu>
3996 2004-07-31 Fernando Perez <fperez@colorado.edu>
3992
3997
3993 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3998 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3994 fix completion of files with dots in their names under most
3999 fix completion of files with dots in their names under most
3995 profiles (pysh was OK because the completion order is different).
4000 profiles (pysh was OK because the completion order is different).
3996
4001
3997 2004-07-27 Fernando Perez <fperez@colorado.edu>
4002 2004-07-27 Fernando Perez <fperez@colorado.edu>
3998
4003
3999 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4004 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4000 keywords manually, b/c the one in keyword.py was removed in python
4005 keywords manually, b/c the one in keyword.py was removed in python
4001 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4006 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4002 This is NOT a bug under python 2.3 and earlier.
4007 This is NOT a bug under python 2.3 and earlier.
4003
4008
4004 2004-07-26 Fernando Perez <fperez@colorado.edu>
4009 2004-07-26 Fernando Perez <fperez@colorado.edu>
4005
4010
4006 * IPython/ultraTB.py (VerboseTB.text): Add another
4011 * IPython/ultraTB.py (VerboseTB.text): Add another
4007 linecache.checkcache() call to try to prevent inspect.py from
4012 linecache.checkcache() call to try to prevent inspect.py from
4008 crashing under python 2.3. I think this fixes
4013 crashing under python 2.3. I think this fixes
4009 http://www.scipy.net/roundup/ipython/issue17.
4014 http://www.scipy.net/roundup/ipython/issue17.
4010
4015
4011 2004-07-26 *** Released version 0.6.2
4016 2004-07-26 *** Released version 0.6.2
4012
4017
4013 2004-07-26 Fernando Perez <fperez@colorado.edu>
4018 2004-07-26 Fernando Perez <fperez@colorado.edu>
4014
4019
4015 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4020 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4016 fail for any number.
4021 fail for any number.
4017 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4022 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4018 empty bookmarks.
4023 empty bookmarks.
4019
4024
4020 2004-07-26 *** Released version 0.6.1
4025 2004-07-26 *** Released version 0.6.1
4021
4026
4022 2004-07-26 Fernando Perez <fperez@colorado.edu>
4027 2004-07-26 Fernando Perez <fperez@colorado.edu>
4023
4028
4024 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4029 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4025
4030
4026 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4031 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4027 escaping '()[]{}' in filenames.
4032 escaping '()[]{}' in filenames.
4028
4033
4029 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4034 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4030 Python 2.2 users who lack a proper shlex.split.
4035 Python 2.2 users who lack a proper shlex.split.
4031
4036
4032 2004-07-19 Fernando Perez <fperez@colorado.edu>
4037 2004-07-19 Fernando Perez <fperez@colorado.edu>
4033
4038
4034 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4039 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4035 for reading readline's init file. I follow the normal chain:
4040 for reading readline's init file. I follow the normal chain:
4036 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4041 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4037 report by Mike Heeter. This closes
4042 report by Mike Heeter. This closes
4038 http://www.scipy.net/roundup/ipython/issue16.
4043 http://www.scipy.net/roundup/ipython/issue16.
4039
4044
4040 2004-07-18 Fernando Perez <fperez@colorado.edu>
4045 2004-07-18 Fernando Perez <fperez@colorado.edu>
4041
4046
4042 * IPython/iplib.py (__init__): Add better handling of '\' under
4047 * IPython/iplib.py (__init__): Add better handling of '\' under
4043 Win32 for filenames. After a patch by Ville.
4048 Win32 for filenames. After a patch by Ville.
4044
4049
4045 2004-07-17 Fernando Perez <fperez@colorado.edu>
4050 2004-07-17 Fernando Perez <fperez@colorado.edu>
4046
4051
4047 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4052 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4048 autocalling would be triggered for 'foo is bar' if foo is
4053 autocalling would be triggered for 'foo is bar' if foo is
4049 callable. I also cleaned up the autocall detection code to use a
4054 callable. I also cleaned up the autocall detection code to use a
4050 regexp, which is faster. Bug reported by Alexander Schmolck.
4055 regexp, which is faster. Bug reported by Alexander Schmolck.
4051
4056
4052 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4057 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4053 '?' in them would confuse the help system. Reported by Alex
4058 '?' in them would confuse the help system. Reported by Alex
4054 Schmolck.
4059 Schmolck.
4055
4060
4056 2004-07-16 Fernando Perez <fperez@colorado.edu>
4061 2004-07-16 Fernando Perez <fperez@colorado.edu>
4057
4062
4058 * IPython/GnuplotInteractive.py (__all__): added plot2.
4063 * IPython/GnuplotInteractive.py (__all__): added plot2.
4059
4064
4060 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4065 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4061 plotting dictionaries, lists or tuples of 1d arrays.
4066 plotting dictionaries, lists or tuples of 1d arrays.
4062
4067
4063 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4068 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4064 optimizations.
4069 optimizations.
4065
4070
4066 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4071 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4067 the information which was there from Janko's original IPP code:
4072 the information which was there from Janko's original IPP code:
4068
4073
4069 03.05.99 20:53 porto.ifm.uni-kiel.de
4074 03.05.99 20:53 porto.ifm.uni-kiel.de
4070 --Started changelog.
4075 --Started changelog.
4071 --make clear do what it say it does
4076 --make clear do what it say it does
4072 --added pretty output of lines from inputcache
4077 --added pretty output of lines from inputcache
4073 --Made Logger a mixin class, simplifies handling of switches
4078 --Made Logger a mixin class, simplifies handling of switches
4074 --Added own completer class. .string<TAB> expands to last history
4079 --Added own completer class. .string<TAB> expands to last history
4075 line which starts with string. The new expansion is also present
4080 line which starts with string. The new expansion is also present
4076 with Ctrl-r from the readline library. But this shows, who this
4081 with Ctrl-r from the readline library. But this shows, who this
4077 can be done for other cases.
4082 can be done for other cases.
4078 --Added convention that all shell functions should accept a
4083 --Added convention that all shell functions should accept a
4079 parameter_string This opens the door for different behaviour for
4084 parameter_string This opens the door for different behaviour for
4080 each function. @cd is a good example of this.
4085 each function. @cd is a good example of this.
4081
4086
4082 04.05.99 12:12 porto.ifm.uni-kiel.de
4087 04.05.99 12:12 porto.ifm.uni-kiel.de
4083 --added logfile rotation
4088 --added logfile rotation
4084 --added new mainloop method which freezes first the namespace
4089 --added new mainloop method which freezes first the namespace
4085
4090
4086 07.05.99 21:24 porto.ifm.uni-kiel.de
4091 07.05.99 21:24 porto.ifm.uni-kiel.de
4087 --added the docreader classes. Now there is a help system.
4092 --added the docreader classes. Now there is a help system.
4088 -This is only a first try. Currently it's not easy to put new
4093 -This is only a first try. Currently it's not easy to put new
4089 stuff in the indices. But this is the way to go. Info would be
4094 stuff in the indices. But this is the way to go. Info would be
4090 better, but HTML is every where and not everybody has an info
4095 better, but HTML is every where and not everybody has an info
4091 system installed and it's not so easy to change html-docs to info.
4096 system installed and it's not so easy to change html-docs to info.
4092 --added global logfile option
4097 --added global logfile option
4093 --there is now a hook for object inspection method pinfo needs to
4098 --there is now a hook for object inspection method pinfo needs to
4094 be provided for this. Can be reached by two '??'.
4099 be provided for this. Can be reached by two '??'.
4095
4100
4096 08.05.99 20:51 porto.ifm.uni-kiel.de
4101 08.05.99 20:51 porto.ifm.uni-kiel.de
4097 --added a README
4102 --added a README
4098 --bug in rc file. Something has changed so functions in the rc
4103 --bug in rc file. Something has changed so functions in the rc
4099 file need to reference the shell and not self. Not clear if it's a
4104 file need to reference the shell and not self. Not clear if it's a
4100 bug or feature.
4105 bug or feature.
4101 --changed rc file for new behavior
4106 --changed rc file for new behavior
4102
4107
4103 2004-07-15 Fernando Perez <fperez@colorado.edu>
4108 2004-07-15 Fernando Perez <fperez@colorado.edu>
4104
4109
4105 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4110 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4106 cache was falling out of sync in bizarre manners when multi-line
4111 cache was falling out of sync in bizarre manners when multi-line
4107 input was present. Minor optimizations and cleanup.
4112 input was present. Minor optimizations and cleanup.
4108
4113
4109 (Logger): Remove old Changelog info for cleanup. This is the
4114 (Logger): Remove old Changelog info for cleanup. This is the
4110 information which was there from Janko's original code:
4115 information which was there from Janko's original code:
4111
4116
4112 Changes to Logger: - made the default log filename a parameter
4117 Changes to Logger: - made the default log filename a parameter
4113
4118
4114 - put a check for lines beginning with !@? in log(). Needed
4119 - put a check for lines beginning with !@? in log(). Needed
4115 (even if the handlers properly log their lines) for mid-session
4120 (even if the handlers properly log their lines) for mid-session
4116 logging activation to work properly. Without this, lines logged
4121 logging activation to work properly. Without this, lines logged
4117 in mid session, which get read from the cache, would end up
4122 in mid session, which get read from the cache, would end up
4118 'bare' (with !@? in the open) in the log. Now they are caught
4123 'bare' (with !@? in the open) in the log. Now they are caught
4119 and prepended with a #.
4124 and prepended with a #.
4120
4125
4121 * IPython/iplib.py (InteractiveShell.init_readline): added check
4126 * IPython/iplib.py (InteractiveShell.init_readline): added check
4122 in case MagicCompleter fails to be defined, so we don't crash.
4127 in case MagicCompleter fails to be defined, so we don't crash.
4123
4128
4124 2004-07-13 Fernando Perez <fperez@colorado.edu>
4129 2004-07-13 Fernando Perez <fperez@colorado.edu>
4125
4130
4126 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4131 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4127 of EPS if the requested filename ends in '.eps'.
4132 of EPS if the requested filename ends in '.eps'.
4128
4133
4129 2004-07-04 Fernando Perez <fperez@colorado.edu>
4134 2004-07-04 Fernando Perez <fperez@colorado.edu>
4130
4135
4131 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4136 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4132 escaping of quotes when calling the shell.
4137 escaping of quotes when calling the shell.
4133
4138
4134 2004-07-02 Fernando Perez <fperez@colorado.edu>
4139 2004-07-02 Fernando Perez <fperez@colorado.edu>
4135
4140
4136 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4141 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4137 gettext not working because we were clobbering '_'. Fixes
4142 gettext not working because we were clobbering '_'. Fixes
4138 http://www.scipy.net/roundup/ipython/issue6.
4143 http://www.scipy.net/roundup/ipython/issue6.
4139
4144
4140 2004-07-01 Fernando Perez <fperez@colorado.edu>
4145 2004-07-01 Fernando Perez <fperez@colorado.edu>
4141
4146
4142 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4147 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4143 into @cd. Patch by Ville.
4148 into @cd. Patch by Ville.
4144
4149
4145 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4150 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4146 new function to store things after ipmaker runs. Patch by Ville.
4151 new function to store things after ipmaker runs. Patch by Ville.
4147 Eventually this will go away once ipmaker is removed and the class
4152 Eventually this will go away once ipmaker is removed and the class
4148 gets cleaned up, but for now it's ok. Key functionality here is
4153 gets cleaned up, but for now it's ok. Key functionality here is
4149 the addition of the persistent storage mechanism, a dict for
4154 the addition of the persistent storage mechanism, a dict for
4150 keeping data across sessions (for now just bookmarks, but more can
4155 keeping data across sessions (for now just bookmarks, but more can
4151 be implemented later).
4156 be implemented later).
4152
4157
4153 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4158 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4154 persistent across sections. Patch by Ville, I modified it
4159 persistent across sections. Patch by Ville, I modified it
4155 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4160 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4156 added a '-l' option to list all bookmarks.
4161 added a '-l' option to list all bookmarks.
4157
4162
4158 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4163 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4159 center for cleanup. Registered with atexit.register(). I moved
4164 center for cleanup. Registered with atexit.register(). I moved
4160 here the old exit_cleanup(). After a patch by Ville.
4165 here the old exit_cleanup(). After a patch by Ville.
4161
4166
4162 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4167 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4163 characters in the hacked shlex_split for python 2.2.
4168 characters in the hacked shlex_split for python 2.2.
4164
4169
4165 * IPython/iplib.py (file_matches): more fixes to filenames with
4170 * IPython/iplib.py (file_matches): more fixes to filenames with
4166 whitespace in them. It's not perfect, but limitations in python's
4171 whitespace in them. It's not perfect, but limitations in python's
4167 readline make it impossible to go further.
4172 readline make it impossible to go further.
4168
4173
4169 2004-06-29 Fernando Perez <fperez@colorado.edu>
4174 2004-06-29 Fernando Perez <fperez@colorado.edu>
4170
4175
4171 * IPython/iplib.py (file_matches): escape whitespace correctly in
4176 * IPython/iplib.py (file_matches): escape whitespace correctly in
4172 filename completions. Bug reported by Ville.
4177 filename completions. Bug reported by Ville.
4173
4178
4174 2004-06-28 Fernando Perez <fperez@colorado.edu>
4179 2004-06-28 Fernando Perez <fperez@colorado.edu>
4175
4180
4176 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4181 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4177 the history file will be called 'history-PROFNAME' (or just
4182 the history file will be called 'history-PROFNAME' (or just
4178 'history' if no profile is loaded). I was getting annoyed at
4183 'history' if no profile is loaded). I was getting annoyed at
4179 getting my Numerical work history clobbered by pysh sessions.
4184 getting my Numerical work history clobbered by pysh sessions.
4180
4185
4181 * IPython/iplib.py (InteractiveShell.__init__): Internal
4186 * IPython/iplib.py (InteractiveShell.__init__): Internal
4182 getoutputerror() function so that we can honor the system_verbose
4187 getoutputerror() function so that we can honor the system_verbose
4183 flag for _all_ system calls. I also added escaping of #
4188 flag for _all_ system calls. I also added escaping of #
4184 characters here to avoid confusing Itpl.
4189 characters here to avoid confusing Itpl.
4185
4190
4186 * IPython/Magic.py (shlex_split): removed call to shell in
4191 * IPython/Magic.py (shlex_split): removed call to shell in
4187 parse_options and replaced it with shlex.split(). The annoying
4192 parse_options and replaced it with shlex.split(). The annoying
4188 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4193 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4189 to backport it from 2.3, with several frail hacks (the shlex
4194 to backport it from 2.3, with several frail hacks (the shlex
4190 module is rather limited in 2.2). Thanks to a suggestion by Ville
4195 module is rather limited in 2.2). Thanks to a suggestion by Ville
4191 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4196 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4192 problem.
4197 problem.
4193
4198
4194 (Magic.magic_system_verbose): new toggle to print the actual
4199 (Magic.magic_system_verbose): new toggle to print the actual
4195 system calls made by ipython. Mainly for debugging purposes.
4200 system calls made by ipython. Mainly for debugging purposes.
4196
4201
4197 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4202 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4198 doesn't support persistence. Reported (and fix suggested) by
4203 doesn't support persistence. Reported (and fix suggested) by
4199 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4204 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4200
4205
4201 2004-06-26 Fernando Perez <fperez@colorado.edu>
4206 2004-06-26 Fernando Perez <fperez@colorado.edu>
4202
4207
4203 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4208 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4204 continue prompts.
4209 continue prompts.
4205
4210
4206 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4211 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4207 function (basically a big docstring) and a few more things here to
4212 function (basically a big docstring) and a few more things here to
4208 speedup startup. pysh.py is now very lightweight. We want because
4213 speedup startup. pysh.py is now very lightweight. We want because
4209 it gets execfile'd, while InterpreterExec gets imported, so
4214 it gets execfile'd, while InterpreterExec gets imported, so
4210 byte-compilation saves time.
4215 byte-compilation saves time.
4211
4216
4212 2004-06-25 Fernando Perez <fperez@colorado.edu>
4217 2004-06-25 Fernando Perez <fperez@colorado.edu>
4213
4218
4214 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4219 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4215 -NUM', which was recently broken.
4220 -NUM', which was recently broken.
4216
4221
4217 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4222 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4218 in multi-line input (but not !!, which doesn't make sense there).
4223 in multi-line input (but not !!, which doesn't make sense there).
4219
4224
4220 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4225 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4221 It's just too useful, and people can turn it off in the less
4226 It's just too useful, and people can turn it off in the less
4222 common cases where it's a problem.
4227 common cases where it's a problem.
4223
4228
4224 2004-06-24 Fernando Perez <fperez@colorado.edu>
4229 2004-06-24 Fernando Perez <fperez@colorado.edu>
4225
4230
4226 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4231 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4227 special syntaxes (like alias calling) is now allied in multi-line
4232 special syntaxes (like alias calling) is now allied in multi-line
4228 input. This is still _very_ experimental, but it's necessary for
4233 input. This is still _very_ experimental, but it's necessary for
4229 efficient shell usage combining python looping syntax with system
4234 efficient shell usage combining python looping syntax with system
4230 calls. For now it's restricted to aliases, I don't think it
4235 calls. For now it's restricted to aliases, I don't think it
4231 really even makes sense to have this for magics.
4236 really even makes sense to have this for magics.
4232
4237
4233 2004-06-23 Fernando Perez <fperez@colorado.edu>
4238 2004-06-23 Fernando Perez <fperez@colorado.edu>
4234
4239
4235 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4240 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4236 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4241 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4237
4242
4238 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4243 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4239 extensions under Windows (after code sent by Gary Bishop). The
4244 extensions under Windows (after code sent by Gary Bishop). The
4240 extensions considered 'executable' are stored in IPython's rc
4245 extensions considered 'executable' are stored in IPython's rc
4241 structure as win_exec_ext.
4246 structure as win_exec_ext.
4242
4247
4243 * IPython/genutils.py (shell): new function, like system() but
4248 * IPython/genutils.py (shell): new function, like system() but
4244 without return value. Very useful for interactive shell work.
4249 without return value. Very useful for interactive shell work.
4245
4250
4246 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4251 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4247 delete aliases.
4252 delete aliases.
4248
4253
4249 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4254 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4250 sure that the alias table doesn't contain python keywords.
4255 sure that the alias table doesn't contain python keywords.
4251
4256
4252 2004-06-21 Fernando Perez <fperez@colorado.edu>
4257 2004-06-21 Fernando Perez <fperez@colorado.edu>
4253
4258
4254 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4259 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4255 non-existent items are found in $PATH. Reported by Thorsten.
4260 non-existent items are found in $PATH. Reported by Thorsten.
4256
4261
4257 2004-06-20 Fernando Perez <fperez@colorado.edu>
4262 2004-06-20 Fernando Perez <fperez@colorado.edu>
4258
4263
4259 * IPython/iplib.py (complete): modified the completer so that the
4264 * IPython/iplib.py (complete): modified the completer so that the
4260 order of priorities can be easily changed at runtime.
4265 order of priorities can be easily changed at runtime.
4261
4266
4262 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4267 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4263 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4268 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4264
4269
4265 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4270 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4266 expand Python variables prepended with $ in all system calls. The
4271 expand Python variables prepended with $ in all system calls. The
4267 same was done to InteractiveShell.handle_shell_escape. Now all
4272 same was done to InteractiveShell.handle_shell_escape. Now all
4268 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4273 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4269 expansion of python variables and expressions according to the
4274 expansion of python variables and expressions according to the
4270 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4275 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4271
4276
4272 Though PEP-215 has been rejected, a similar (but simpler) one
4277 Though PEP-215 has been rejected, a similar (but simpler) one
4273 seems like it will go into Python 2.4, PEP-292 -
4278 seems like it will go into Python 2.4, PEP-292 -
4274 http://www.python.org/peps/pep-0292.html.
4279 http://www.python.org/peps/pep-0292.html.
4275
4280
4276 I'll keep the full syntax of PEP-215, since IPython has since the
4281 I'll keep the full syntax of PEP-215, since IPython has since the
4277 start used Ka-Ping Yee's reference implementation discussed there
4282 start used Ka-Ping Yee's reference implementation discussed there
4278 (Itpl), and I actually like the powerful semantics it offers.
4283 (Itpl), and I actually like the powerful semantics it offers.
4279
4284
4280 In order to access normal shell variables, the $ has to be escaped
4285 In order to access normal shell variables, the $ has to be escaped
4281 via an extra $. For example:
4286 via an extra $. For example:
4282
4287
4283 In [7]: PATH='a python variable'
4288 In [7]: PATH='a python variable'
4284
4289
4285 In [8]: !echo $PATH
4290 In [8]: !echo $PATH
4286 a python variable
4291 a python variable
4287
4292
4288 In [9]: !echo $$PATH
4293 In [9]: !echo $$PATH
4289 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4294 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4290
4295
4291 (Magic.parse_options): escape $ so the shell doesn't evaluate
4296 (Magic.parse_options): escape $ so the shell doesn't evaluate
4292 things prematurely.
4297 things prematurely.
4293
4298
4294 * IPython/iplib.py (InteractiveShell.call_alias): added the
4299 * IPython/iplib.py (InteractiveShell.call_alias): added the
4295 ability for aliases to expand python variables via $.
4300 ability for aliases to expand python variables via $.
4296
4301
4297 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4302 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4298 system, now there's a @rehash/@rehashx pair of magics. These work
4303 system, now there's a @rehash/@rehashx pair of magics. These work
4299 like the csh rehash command, and can be invoked at any time. They
4304 like the csh rehash command, and can be invoked at any time. They
4300 build a table of aliases to everything in the user's $PATH
4305 build a table of aliases to everything in the user's $PATH
4301 (@rehash uses everything, @rehashx is slower but only adds
4306 (@rehash uses everything, @rehashx is slower but only adds
4302 executable files). With this, the pysh.py-based shell profile can
4307 executable files). With this, the pysh.py-based shell profile can
4303 now simply call rehash upon startup, and full access to all
4308 now simply call rehash upon startup, and full access to all
4304 programs in the user's path is obtained.
4309 programs in the user's path is obtained.
4305
4310
4306 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4311 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4307 functionality is now fully in place. I removed the old dynamic
4312 functionality is now fully in place. I removed the old dynamic
4308 code generation based approach, in favor of a much lighter one
4313 code generation based approach, in favor of a much lighter one
4309 based on a simple dict. The advantage is that this allows me to
4314 based on a simple dict. The advantage is that this allows me to
4310 now have thousands of aliases with negligible cost (unthinkable
4315 now have thousands of aliases with negligible cost (unthinkable
4311 with the old system).
4316 with the old system).
4312
4317
4313 2004-06-19 Fernando Perez <fperez@colorado.edu>
4318 2004-06-19 Fernando Perez <fperez@colorado.edu>
4314
4319
4315 * IPython/iplib.py (__init__): extended MagicCompleter class to
4320 * IPython/iplib.py (__init__): extended MagicCompleter class to
4316 also complete (last in priority) on user aliases.
4321 also complete (last in priority) on user aliases.
4317
4322
4318 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4323 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4319 call to eval.
4324 call to eval.
4320 (ItplNS.__init__): Added a new class which functions like Itpl,
4325 (ItplNS.__init__): Added a new class which functions like Itpl,
4321 but allows configuring the namespace for the evaluation to occur
4326 but allows configuring the namespace for the evaluation to occur
4322 in.
4327 in.
4323
4328
4324 2004-06-18 Fernando Perez <fperez@colorado.edu>
4329 2004-06-18 Fernando Perez <fperez@colorado.edu>
4325
4330
4326 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4331 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4327 better message when 'exit' or 'quit' are typed (a common newbie
4332 better message when 'exit' or 'quit' are typed (a common newbie
4328 confusion).
4333 confusion).
4329
4334
4330 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4335 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4331 check for Windows users.
4336 check for Windows users.
4332
4337
4333 * IPython/iplib.py (InteractiveShell.user_setup): removed
4338 * IPython/iplib.py (InteractiveShell.user_setup): removed
4334 disabling of colors for Windows. I'll test at runtime and issue a
4339 disabling of colors for Windows. I'll test at runtime and issue a
4335 warning if Gary's readline isn't found, as to nudge users to
4340 warning if Gary's readline isn't found, as to nudge users to
4336 download it.
4341 download it.
4337
4342
4338 2004-06-16 Fernando Perez <fperez@colorado.edu>
4343 2004-06-16 Fernando Perez <fperez@colorado.edu>
4339
4344
4340 * IPython/genutils.py (Stream.__init__): changed to print errors
4345 * IPython/genutils.py (Stream.__init__): changed to print errors
4341 to sys.stderr. I had a circular dependency here. Now it's
4346 to sys.stderr. I had a circular dependency here. Now it's
4342 possible to run ipython as IDLE's shell (consider this pre-alpha,
4347 possible to run ipython as IDLE's shell (consider this pre-alpha,
4343 since true stdout things end up in the starting terminal instead
4348 since true stdout things end up in the starting terminal instead
4344 of IDLE's out).
4349 of IDLE's out).
4345
4350
4346 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4351 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4347 users who haven't # updated their prompt_in2 definitions. Remove
4352 users who haven't # updated their prompt_in2 definitions. Remove
4348 eventually.
4353 eventually.
4349 (multiple_replace): added credit to original ASPN recipe.
4354 (multiple_replace): added credit to original ASPN recipe.
4350
4355
4351 2004-06-15 Fernando Perez <fperez@colorado.edu>
4356 2004-06-15 Fernando Perez <fperez@colorado.edu>
4352
4357
4353 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4358 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4354 list of auto-defined aliases.
4359 list of auto-defined aliases.
4355
4360
4356 2004-06-13 Fernando Perez <fperez@colorado.edu>
4361 2004-06-13 Fernando Perez <fperez@colorado.edu>
4357
4362
4358 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4363 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4359 install was really requested (so setup.py can be used for other
4364 install was really requested (so setup.py can be used for other
4360 things under Windows).
4365 things under Windows).
4361
4366
4362 2004-06-10 Fernando Perez <fperez@colorado.edu>
4367 2004-06-10 Fernando Perez <fperez@colorado.edu>
4363
4368
4364 * IPython/Logger.py (Logger.create_log): Manually remove any old
4369 * IPython/Logger.py (Logger.create_log): Manually remove any old
4365 backup, since os.remove may fail under Windows. Fixes bug
4370 backup, since os.remove may fail under Windows. Fixes bug
4366 reported by Thorsten.
4371 reported by Thorsten.
4367
4372
4368 2004-06-09 Fernando Perez <fperez@colorado.edu>
4373 2004-06-09 Fernando Perez <fperez@colorado.edu>
4369
4374
4370 * examples/example-embed.py: fixed all references to %n (replaced
4375 * examples/example-embed.py: fixed all references to %n (replaced
4371 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4376 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4372 for all examples and the manual as well.
4377 for all examples and the manual as well.
4373
4378
4374 2004-06-08 Fernando Perez <fperez@colorado.edu>
4379 2004-06-08 Fernando Perez <fperez@colorado.edu>
4375
4380
4376 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4381 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4377 alignment and color management. All 3 prompt subsystems now
4382 alignment and color management. All 3 prompt subsystems now
4378 inherit from BasePrompt.
4383 inherit from BasePrompt.
4379
4384
4380 * tools/release: updates for windows installer build and tag rpms
4385 * tools/release: updates for windows installer build and tag rpms
4381 with python version (since paths are fixed).
4386 with python version (since paths are fixed).
4382
4387
4383 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4388 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4384 which will become eventually obsolete. Also fixed the default
4389 which will become eventually obsolete. Also fixed the default
4385 prompt_in2 to use \D, so at least new users start with the correct
4390 prompt_in2 to use \D, so at least new users start with the correct
4386 defaults.
4391 defaults.
4387 WARNING: Users with existing ipythonrc files will need to apply
4392 WARNING: Users with existing ipythonrc files will need to apply
4388 this fix manually!
4393 this fix manually!
4389
4394
4390 * setup.py: make windows installer (.exe). This is finally the
4395 * setup.py: make windows installer (.exe). This is finally the
4391 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4396 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4392 which I hadn't included because it required Python 2.3 (or recent
4397 which I hadn't included because it required Python 2.3 (or recent
4393 distutils).
4398 distutils).
4394
4399
4395 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4400 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4396 usage of new '\D' escape.
4401 usage of new '\D' escape.
4397
4402
4398 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4403 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4399 lacks os.getuid())
4404 lacks os.getuid())
4400 (CachedOutput.set_colors): Added the ability to turn coloring
4405 (CachedOutput.set_colors): Added the ability to turn coloring
4401 on/off with @colors even for manually defined prompt colors. It
4406 on/off with @colors even for manually defined prompt colors. It
4402 uses a nasty global, but it works safely and via the generic color
4407 uses a nasty global, but it works safely and via the generic color
4403 handling mechanism.
4408 handling mechanism.
4404 (Prompt2.__init__): Introduced new escape '\D' for continuation
4409 (Prompt2.__init__): Introduced new escape '\D' for continuation
4405 prompts. It represents the counter ('\#') as dots.
4410 prompts. It represents the counter ('\#') as dots.
4406 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4411 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4407 need to update their ipythonrc files and replace '%n' with '\D' in
4412 need to update their ipythonrc files and replace '%n' with '\D' in
4408 their prompt_in2 settings everywhere. Sorry, but there's
4413 their prompt_in2 settings everywhere. Sorry, but there's
4409 otherwise no clean way to get all prompts to properly align. The
4414 otherwise no clean way to get all prompts to properly align. The
4410 ipythonrc shipped with IPython has been updated.
4415 ipythonrc shipped with IPython has been updated.
4411
4416
4412 2004-06-07 Fernando Perez <fperez@colorado.edu>
4417 2004-06-07 Fernando Perez <fperez@colorado.edu>
4413
4418
4414 * setup.py (isfile): Pass local_icons option to latex2html, so the
4419 * setup.py (isfile): Pass local_icons option to latex2html, so the
4415 resulting HTML file is self-contained. Thanks to
4420 resulting HTML file is self-contained. Thanks to
4416 dryice-AT-liu.com.cn for the tip.
4421 dryice-AT-liu.com.cn for the tip.
4417
4422
4418 * pysh.py: I created a new profile 'shell', which implements a
4423 * pysh.py: I created a new profile 'shell', which implements a
4419 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4424 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4420 system shell, nor will it become one anytime soon. It's mainly
4425 system shell, nor will it become one anytime soon. It's mainly
4421 meant to illustrate the use of the new flexible bash-like prompts.
4426 meant to illustrate the use of the new flexible bash-like prompts.
4422 I guess it could be used by hardy souls for true shell management,
4427 I guess it could be used by hardy souls for true shell management,
4423 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4428 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4424 profile. This uses the InterpreterExec extension provided by
4429 profile. This uses the InterpreterExec extension provided by
4425 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4430 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4426
4431
4427 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4432 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4428 auto-align itself with the length of the previous input prompt
4433 auto-align itself with the length of the previous input prompt
4429 (taking into account the invisible color escapes).
4434 (taking into account the invisible color escapes).
4430 (CachedOutput.__init__): Large restructuring of this class. Now
4435 (CachedOutput.__init__): Large restructuring of this class. Now
4431 all three prompts (primary1, primary2, output) are proper objects,
4436 all three prompts (primary1, primary2, output) are proper objects,
4432 managed by the 'parent' CachedOutput class. The code is still a
4437 managed by the 'parent' CachedOutput class. The code is still a
4433 bit hackish (all prompts share state via a pointer to the cache),
4438 bit hackish (all prompts share state via a pointer to the cache),
4434 but it's overall far cleaner than before.
4439 but it's overall far cleaner than before.
4435
4440
4436 * IPython/genutils.py (getoutputerror): modified to add verbose,
4441 * IPython/genutils.py (getoutputerror): modified to add verbose,
4437 debug and header options. This makes the interface of all getout*
4442 debug and header options. This makes the interface of all getout*
4438 functions uniform.
4443 functions uniform.
4439 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4444 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4440
4445
4441 * IPython/Magic.py (Magic.default_option): added a function to
4446 * IPython/Magic.py (Magic.default_option): added a function to
4442 allow registering default options for any magic command. This
4447 allow registering default options for any magic command. This
4443 makes it easy to have profiles which customize the magics globally
4448 makes it easy to have profiles which customize the magics globally
4444 for a certain use. The values set through this function are
4449 for a certain use. The values set through this function are
4445 picked up by the parse_options() method, which all magics should
4450 picked up by the parse_options() method, which all magics should
4446 use to parse their options.
4451 use to parse their options.
4447
4452
4448 * IPython/genutils.py (warn): modified the warnings framework to
4453 * IPython/genutils.py (warn): modified the warnings framework to
4449 use the Term I/O class. I'm trying to slowly unify all of
4454 use the Term I/O class. I'm trying to slowly unify all of
4450 IPython's I/O operations to pass through Term.
4455 IPython's I/O operations to pass through Term.
4451
4456
4452 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4457 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4453 the secondary prompt to correctly match the length of the primary
4458 the secondary prompt to correctly match the length of the primary
4454 one for any prompt. Now multi-line code will properly line up
4459 one for any prompt. Now multi-line code will properly line up
4455 even for path dependent prompts, such as the new ones available
4460 even for path dependent prompts, such as the new ones available
4456 via the prompt_specials.
4461 via the prompt_specials.
4457
4462
4458 2004-06-06 Fernando Perez <fperez@colorado.edu>
4463 2004-06-06 Fernando Perez <fperez@colorado.edu>
4459
4464
4460 * IPython/Prompts.py (prompt_specials): Added the ability to have
4465 * IPython/Prompts.py (prompt_specials): Added the ability to have
4461 bash-like special sequences in the prompts, which get
4466 bash-like special sequences in the prompts, which get
4462 automatically expanded. Things like hostname, current working
4467 automatically expanded. Things like hostname, current working
4463 directory and username are implemented already, but it's easy to
4468 directory and username are implemented already, but it's easy to
4464 add more in the future. Thanks to a patch by W.J. van der Laan
4469 add more in the future. Thanks to a patch by W.J. van der Laan
4465 <gnufnork-AT-hetdigitalegat.nl>
4470 <gnufnork-AT-hetdigitalegat.nl>
4466 (prompt_specials): Added color support for prompt strings, so
4471 (prompt_specials): Added color support for prompt strings, so
4467 users can define arbitrary color setups for their prompts.
4472 users can define arbitrary color setups for their prompts.
4468
4473
4469 2004-06-05 Fernando Perez <fperez@colorado.edu>
4474 2004-06-05 Fernando Perez <fperez@colorado.edu>
4470
4475
4471 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4476 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4472 code to load Gary Bishop's readline and configure it
4477 code to load Gary Bishop's readline and configure it
4473 automatically. Thanks to Gary for help on this.
4478 automatically. Thanks to Gary for help on this.
4474
4479
4475 2004-06-01 Fernando Perez <fperez@colorado.edu>
4480 2004-06-01 Fernando Perez <fperez@colorado.edu>
4476
4481
4477 * IPython/Logger.py (Logger.create_log): fix bug for logging
4482 * IPython/Logger.py (Logger.create_log): fix bug for logging
4478 with no filename (previous fix was incomplete).
4483 with no filename (previous fix was incomplete).
4479
4484
4480 2004-05-25 Fernando Perez <fperez@colorado.edu>
4485 2004-05-25 Fernando Perez <fperez@colorado.edu>
4481
4486
4482 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4487 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4483 parens would get passed to the shell.
4488 parens would get passed to the shell.
4484
4489
4485 2004-05-20 Fernando Perez <fperez@colorado.edu>
4490 2004-05-20 Fernando Perez <fperez@colorado.edu>
4486
4491
4487 * IPython/Magic.py (Magic.magic_prun): changed default profile
4492 * IPython/Magic.py (Magic.magic_prun): changed default profile
4488 sort order to 'time' (the more common profiling need).
4493 sort order to 'time' (the more common profiling need).
4489
4494
4490 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4495 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4491 so that source code shown is guaranteed in sync with the file on
4496 so that source code shown is guaranteed in sync with the file on
4492 disk (also changed in psource). Similar fix to the one for
4497 disk (also changed in psource). Similar fix to the one for
4493 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4498 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4494 <yann.ledu-AT-noos.fr>.
4499 <yann.ledu-AT-noos.fr>.
4495
4500
4496 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4501 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4497 with a single option would not be correctly parsed. Closes
4502 with a single option would not be correctly parsed. Closes
4498 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4503 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4499 introduced in 0.6.0 (on 2004-05-06).
4504 introduced in 0.6.0 (on 2004-05-06).
4500
4505
4501 2004-05-13 *** Released version 0.6.0
4506 2004-05-13 *** Released version 0.6.0
4502
4507
4503 2004-05-13 Fernando Perez <fperez@colorado.edu>
4508 2004-05-13 Fernando Perez <fperez@colorado.edu>
4504
4509
4505 * debian/: Added debian/ directory to CVS, so that debian support
4510 * debian/: Added debian/ directory to CVS, so that debian support
4506 is publicly accessible. The debian package is maintained by Jack
4511 is publicly accessible. The debian package is maintained by Jack
4507 Moffit <jack-AT-xiph.org>.
4512 Moffit <jack-AT-xiph.org>.
4508
4513
4509 * Documentation: included the notes about an ipython-based system
4514 * Documentation: included the notes about an ipython-based system
4510 shell (the hypothetical 'pysh') into the new_design.pdf document,
4515 shell (the hypothetical 'pysh') into the new_design.pdf document,
4511 so that these ideas get distributed to users along with the
4516 so that these ideas get distributed to users along with the
4512 official documentation.
4517 official documentation.
4513
4518
4514 2004-05-10 Fernando Perez <fperez@colorado.edu>
4519 2004-05-10 Fernando Perez <fperez@colorado.edu>
4515
4520
4516 * IPython/Logger.py (Logger.create_log): fix recently introduced
4521 * IPython/Logger.py (Logger.create_log): fix recently introduced
4517 bug (misindented line) where logstart would fail when not given an
4522 bug (misindented line) where logstart would fail when not given an
4518 explicit filename.
4523 explicit filename.
4519
4524
4520 2004-05-09 Fernando Perez <fperez@colorado.edu>
4525 2004-05-09 Fernando Perez <fperez@colorado.edu>
4521
4526
4522 * IPython/Magic.py (Magic.parse_options): skip system call when
4527 * IPython/Magic.py (Magic.parse_options): skip system call when
4523 there are no options to look for. Faster, cleaner for the common
4528 there are no options to look for. Faster, cleaner for the common
4524 case.
4529 case.
4525
4530
4526 * Documentation: many updates to the manual: describing Windows
4531 * Documentation: many updates to the manual: describing Windows
4527 support better, Gnuplot updates, credits, misc small stuff. Also
4532 support better, Gnuplot updates, credits, misc small stuff. Also
4528 updated the new_design doc a bit.
4533 updated the new_design doc a bit.
4529
4534
4530 2004-05-06 *** Released version 0.6.0.rc1
4535 2004-05-06 *** Released version 0.6.0.rc1
4531
4536
4532 2004-05-06 Fernando Perez <fperez@colorado.edu>
4537 2004-05-06 Fernando Perez <fperez@colorado.edu>
4533
4538
4534 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4539 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4535 operations to use the vastly more efficient list/''.join() method.
4540 operations to use the vastly more efficient list/''.join() method.
4536 (FormattedTB.text): Fix
4541 (FormattedTB.text): Fix
4537 http://www.scipy.net/roundup/ipython/issue12 - exception source
4542 http://www.scipy.net/roundup/ipython/issue12 - exception source
4538 extract not updated after reload. Thanks to Mike Salib
4543 extract not updated after reload. Thanks to Mike Salib
4539 <msalib-AT-mit.edu> for pinning the source of the problem.
4544 <msalib-AT-mit.edu> for pinning the source of the problem.
4540 Fortunately, the solution works inside ipython and doesn't require
4545 Fortunately, the solution works inside ipython and doesn't require
4541 any changes to python proper.
4546 any changes to python proper.
4542
4547
4543 * IPython/Magic.py (Magic.parse_options): Improved to process the
4548 * IPython/Magic.py (Magic.parse_options): Improved to process the
4544 argument list as a true shell would (by actually using the
4549 argument list as a true shell would (by actually using the
4545 underlying system shell). This way, all @magics automatically get
4550 underlying system shell). This way, all @magics automatically get
4546 shell expansion for variables. Thanks to a comment by Alex
4551 shell expansion for variables. Thanks to a comment by Alex
4547 Schmolck.
4552 Schmolck.
4548
4553
4549 2004-04-04 Fernando Perez <fperez@colorado.edu>
4554 2004-04-04 Fernando Perez <fperez@colorado.edu>
4550
4555
4551 * IPython/iplib.py (InteractiveShell.interact): Added a special
4556 * IPython/iplib.py (InteractiveShell.interact): Added a special
4552 trap for a debugger quit exception, which is basically impossible
4557 trap for a debugger quit exception, which is basically impossible
4553 to handle by normal mechanisms, given what pdb does to the stack.
4558 to handle by normal mechanisms, given what pdb does to the stack.
4554 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4559 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4555
4560
4556 2004-04-03 Fernando Perez <fperez@colorado.edu>
4561 2004-04-03 Fernando Perez <fperez@colorado.edu>
4557
4562
4558 * IPython/genutils.py (Term): Standardized the names of the Term
4563 * IPython/genutils.py (Term): Standardized the names of the Term
4559 class streams to cin/cout/cerr, following C++ naming conventions
4564 class streams to cin/cout/cerr, following C++ naming conventions
4560 (I can't use in/out/err because 'in' is not a valid attribute
4565 (I can't use in/out/err because 'in' is not a valid attribute
4561 name).
4566 name).
4562
4567
4563 * IPython/iplib.py (InteractiveShell.interact): don't increment
4568 * IPython/iplib.py (InteractiveShell.interact): don't increment
4564 the prompt if there's no user input. By Daniel 'Dang' Griffith
4569 the prompt if there's no user input. By Daniel 'Dang' Griffith
4565 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4570 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4566 Francois Pinard.
4571 Francois Pinard.
4567
4572
4568 2004-04-02 Fernando Perez <fperez@colorado.edu>
4573 2004-04-02 Fernando Perez <fperez@colorado.edu>
4569
4574
4570 * IPython/genutils.py (Stream.__init__): Modified to survive at
4575 * IPython/genutils.py (Stream.__init__): Modified to survive at
4571 least importing in contexts where stdin/out/err aren't true file
4576 least importing in contexts where stdin/out/err aren't true file
4572 objects, such as PyCrust (they lack fileno() and mode). However,
4577 objects, such as PyCrust (they lack fileno() and mode). However,
4573 the recovery facilities which rely on these things existing will
4578 the recovery facilities which rely on these things existing will
4574 not work.
4579 not work.
4575
4580
4576 2004-04-01 Fernando Perez <fperez@colorado.edu>
4581 2004-04-01 Fernando Perez <fperez@colorado.edu>
4577
4582
4578 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4583 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4579 use the new getoutputerror() function, so it properly
4584 use the new getoutputerror() function, so it properly
4580 distinguishes stdout/err.
4585 distinguishes stdout/err.
4581
4586
4582 * IPython/genutils.py (getoutputerror): added a function to
4587 * IPython/genutils.py (getoutputerror): added a function to
4583 capture separately the standard output and error of a command.
4588 capture separately the standard output and error of a command.
4584 After a comment from dang on the mailing lists. This code is
4589 After a comment from dang on the mailing lists. This code is
4585 basically a modified version of commands.getstatusoutput(), from
4590 basically a modified version of commands.getstatusoutput(), from
4586 the standard library.
4591 the standard library.
4587
4592
4588 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4593 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4589 '!!' as a special syntax (shorthand) to access @sx.
4594 '!!' as a special syntax (shorthand) to access @sx.
4590
4595
4591 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4596 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4592 command and return its output as a list split on '\n'.
4597 command and return its output as a list split on '\n'.
4593
4598
4594 2004-03-31 Fernando Perez <fperez@colorado.edu>
4599 2004-03-31 Fernando Perez <fperez@colorado.edu>
4595
4600
4596 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4601 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4597 method to dictionaries used as FakeModule instances if they lack
4602 method to dictionaries used as FakeModule instances if they lack
4598 it. At least pydoc in python2.3 breaks for runtime-defined
4603 it. At least pydoc in python2.3 breaks for runtime-defined
4599 functions without this hack. At some point I need to _really_
4604 functions without this hack. At some point I need to _really_
4600 understand what FakeModule is doing, because it's a gross hack.
4605 understand what FakeModule is doing, because it's a gross hack.
4601 But it solves Arnd's problem for now...
4606 But it solves Arnd's problem for now...
4602
4607
4603 2004-02-27 Fernando Perez <fperez@colorado.edu>
4608 2004-02-27 Fernando Perez <fperez@colorado.edu>
4604
4609
4605 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4610 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4606 mode would behave erratically. Also increased the number of
4611 mode would behave erratically. Also increased the number of
4607 possible logs in rotate mod to 999. Thanks to Rod Holland
4612 possible logs in rotate mod to 999. Thanks to Rod Holland
4608 <rhh@StructureLABS.com> for the report and fixes.
4613 <rhh@StructureLABS.com> for the report and fixes.
4609
4614
4610 2004-02-26 Fernando Perez <fperez@colorado.edu>
4615 2004-02-26 Fernando Perez <fperez@colorado.edu>
4611
4616
4612 * IPython/genutils.py (page): Check that the curses module really
4617 * IPython/genutils.py (page): Check that the curses module really
4613 has the initscr attribute before trying to use it. For some
4618 has the initscr attribute before trying to use it. For some
4614 reason, the Solaris curses module is missing this. I think this
4619 reason, the Solaris curses module is missing this. I think this
4615 should be considered a Solaris python bug, but I'm not sure.
4620 should be considered a Solaris python bug, but I'm not sure.
4616
4621
4617 2004-01-17 Fernando Perez <fperez@colorado.edu>
4622 2004-01-17 Fernando Perez <fperez@colorado.edu>
4618
4623
4619 * IPython/genutils.py (Stream.__init__): Changes to try to make
4624 * IPython/genutils.py (Stream.__init__): Changes to try to make
4620 ipython robust against stdin/out/err being closed by the user.
4625 ipython robust against stdin/out/err being closed by the user.
4621 This is 'user error' (and blocks a normal python session, at least
4626 This is 'user error' (and blocks a normal python session, at least
4622 the stdout case). However, Ipython should be able to survive such
4627 the stdout case). However, Ipython should be able to survive such
4623 instances of abuse as gracefully as possible. To simplify the
4628 instances of abuse as gracefully as possible. To simplify the
4624 coding and maintain compatibility with Gary Bishop's Term
4629 coding and maintain compatibility with Gary Bishop's Term
4625 contributions, I've made use of classmethods for this. I think
4630 contributions, I've made use of classmethods for this. I think
4626 this introduces a dependency on python 2.2.
4631 this introduces a dependency on python 2.2.
4627
4632
4628 2004-01-13 Fernando Perez <fperez@colorado.edu>
4633 2004-01-13 Fernando Perez <fperez@colorado.edu>
4629
4634
4630 * IPython/numutils.py (exp_safe): simplified the code a bit and
4635 * IPython/numutils.py (exp_safe): simplified the code a bit and
4631 removed the need for importing the kinds module altogether.
4636 removed the need for importing the kinds module altogether.
4632
4637
4633 2004-01-06 Fernando Perez <fperez@colorado.edu>
4638 2004-01-06 Fernando Perez <fperez@colorado.edu>
4634
4639
4635 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4640 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4636 a magic function instead, after some community feedback. No
4641 a magic function instead, after some community feedback. No
4637 special syntax will exist for it, but its name is deliberately
4642 special syntax will exist for it, but its name is deliberately
4638 very short.
4643 very short.
4639
4644
4640 2003-12-20 Fernando Perez <fperez@colorado.edu>
4645 2003-12-20 Fernando Perez <fperez@colorado.edu>
4641
4646
4642 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4647 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4643 new functionality, to automagically assign the result of a shell
4648 new functionality, to automagically assign the result of a shell
4644 command to a variable. I'll solicit some community feedback on
4649 command to a variable. I'll solicit some community feedback on
4645 this before making it permanent.
4650 this before making it permanent.
4646
4651
4647 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4652 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4648 requested about callables for which inspect couldn't obtain a
4653 requested about callables for which inspect couldn't obtain a
4649 proper argspec. Thanks to a crash report sent by Etienne
4654 proper argspec. Thanks to a crash report sent by Etienne
4650 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4655 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4651
4656
4652 2003-12-09 Fernando Perez <fperez@colorado.edu>
4657 2003-12-09 Fernando Perez <fperez@colorado.edu>
4653
4658
4654 * IPython/genutils.py (page): patch for the pager to work across
4659 * IPython/genutils.py (page): patch for the pager to work across
4655 various versions of Windows. By Gary Bishop.
4660 various versions of Windows. By Gary Bishop.
4656
4661
4657 2003-12-04 Fernando Perez <fperez@colorado.edu>
4662 2003-12-04 Fernando Perez <fperez@colorado.edu>
4658
4663
4659 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4664 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4660 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4665 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4661 While I tested this and it looks ok, there may still be corner
4666 While I tested this and it looks ok, there may still be corner
4662 cases I've missed.
4667 cases I've missed.
4663
4668
4664 2003-12-01 Fernando Perez <fperez@colorado.edu>
4669 2003-12-01 Fernando Perez <fperez@colorado.edu>
4665
4670
4666 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4671 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4667 where a line like 'p,q=1,2' would fail because the automagic
4672 where a line like 'p,q=1,2' would fail because the automagic
4668 system would be triggered for @p.
4673 system would be triggered for @p.
4669
4674
4670 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4675 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4671 cleanups, code unmodified.
4676 cleanups, code unmodified.
4672
4677
4673 * IPython/genutils.py (Term): added a class for IPython to handle
4678 * IPython/genutils.py (Term): added a class for IPython to handle
4674 output. In most cases it will just be a proxy for stdout/err, but
4679 output. In most cases it will just be a proxy for stdout/err, but
4675 having this allows modifications to be made for some platforms,
4680 having this allows modifications to be made for some platforms,
4676 such as handling color escapes under Windows. All of this code
4681 such as handling color escapes under Windows. All of this code
4677 was contributed by Gary Bishop, with minor modifications by me.
4682 was contributed by Gary Bishop, with minor modifications by me.
4678 The actual changes affect many files.
4683 The actual changes affect many files.
4679
4684
4680 2003-11-30 Fernando Perez <fperez@colorado.edu>
4685 2003-11-30 Fernando Perez <fperez@colorado.edu>
4681
4686
4682 * IPython/iplib.py (file_matches): new completion code, courtesy
4687 * IPython/iplib.py (file_matches): new completion code, courtesy
4683 of Jeff Collins. This enables filename completion again under
4688 of Jeff Collins. This enables filename completion again under
4684 python 2.3, which disabled it at the C level.
4689 python 2.3, which disabled it at the C level.
4685
4690
4686 2003-11-11 Fernando Perez <fperez@colorado.edu>
4691 2003-11-11 Fernando Perez <fperez@colorado.edu>
4687
4692
4688 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4693 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4689 for Numeric.array(map(...)), but often convenient.
4694 for Numeric.array(map(...)), but often convenient.
4690
4695
4691 2003-11-05 Fernando Perez <fperez@colorado.edu>
4696 2003-11-05 Fernando Perez <fperez@colorado.edu>
4692
4697
4693 * IPython/numutils.py (frange): Changed a call from int() to
4698 * IPython/numutils.py (frange): Changed a call from int() to
4694 int(round()) to prevent a problem reported with arange() in the
4699 int(round()) to prevent a problem reported with arange() in the
4695 numpy list.
4700 numpy list.
4696
4701
4697 2003-10-06 Fernando Perez <fperez@colorado.edu>
4702 2003-10-06 Fernando Perez <fperez@colorado.edu>
4698
4703
4699 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4704 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4700 prevent crashes if sys lacks an argv attribute (it happens with
4705 prevent crashes if sys lacks an argv attribute (it happens with
4701 embedded interpreters which build a bare-bones sys module).
4706 embedded interpreters which build a bare-bones sys module).
4702 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4707 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4703
4708
4704 2003-09-24 Fernando Perez <fperez@colorado.edu>
4709 2003-09-24 Fernando Perez <fperez@colorado.edu>
4705
4710
4706 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4711 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4707 to protect against poorly written user objects where __getattr__
4712 to protect against poorly written user objects where __getattr__
4708 raises exceptions other than AttributeError. Thanks to a bug
4713 raises exceptions other than AttributeError. Thanks to a bug
4709 report by Oliver Sander <osander-AT-gmx.de>.
4714 report by Oliver Sander <osander-AT-gmx.de>.
4710
4715
4711 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4716 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4712 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4717 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4713
4718
4714 2003-09-09 Fernando Perez <fperez@colorado.edu>
4719 2003-09-09 Fernando Perez <fperez@colorado.edu>
4715
4720
4716 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4721 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4717 unpacking a list whith a callable as first element would
4722 unpacking a list whith a callable as first element would
4718 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4723 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4719 Collins.
4724 Collins.
4720
4725
4721 2003-08-25 *** Released version 0.5.0
4726 2003-08-25 *** Released version 0.5.0
4722
4727
4723 2003-08-22 Fernando Perez <fperez@colorado.edu>
4728 2003-08-22 Fernando Perez <fperez@colorado.edu>
4724
4729
4725 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4730 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4726 improperly defined user exceptions. Thanks to feedback from Mark
4731 improperly defined user exceptions. Thanks to feedback from Mark
4727 Russell <mrussell-AT-verio.net>.
4732 Russell <mrussell-AT-verio.net>.
4728
4733
4729 2003-08-20 Fernando Perez <fperez@colorado.edu>
4734 2003-08-20 Fernando Perez <fperez@colorado.edu>
4730
4735
4731 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4736 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4732 printing so that it would print multi-line string forms starting
4737 printing so that it would print multi-line string forms starting
4733 with a new line. This way the formatting is better respected for
4738 with a new line. This way the formatting is better respected for
4734 objects which work hard to make nice string forms.
4739 objects which work hard to make nice string forms.
4735
4740
4736 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4741 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4737 autocall would overtake data access for objects with both
4742 autocall would overtake data access for objects with both
4738 __getitem__ and __call__.
4743 __getitem__ and __call__.
4739
4744
4740 2003-08-19 *** Released version 0.5.0-rc1
4745 2003-08-19 *** Released version 0.5.0-rc1
4741
4746
4742 2003-08-19 Fernando Perez <fperez@colorado.edu>
4747 2003-08-19 Fernando Perez <fperez@colorado.edu>
4743
4748
4744 * IPython/deep_reload.py (load_tail): single tiny change here
4749 * IPython/deep_reload.py (load_tail): single tiny change here
4745 seems to fix the long-standing bug of dreload() failing to work
4750 seems to fix the long-standing bug of dreload() failing to work
4746 for dotted names. But this module is pretty tricky, so I may have
4751 for dotted names. But this module is pretty tricky, so I may have
4747 missed some subtlety. Needs more testing!.
4752 missed some subtlety. Needs more testing!.
4748
4753
4749 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4754 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4750 exceptions which have badly implemented __str__ methods.
4755 exceptions which have badly implemented __str__ methods.
4751 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4756 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4752 which I've been getting reports about from Python 2.3 users. I
4757 which I've been getting reports about from Python 2.3 users. I
4753 wish I had a simple test case to reproduce the problem, so I could
4758 wish I had a simple test case to reproduce the problem, so I could
4754 either write a cleaner workaround or file a bug report if
4759 either write a cleaner workaround or file a bug report if
4755 necessary.
4760 necessary.
4756
4761
4757 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4762 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4758 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4763 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4759 a bug report by Tjabo Kloppenburg.
4764 a bug report by Tjabo Kloppenburg.
4760
4765
4761 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4766 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4762 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4767 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4763 seems rather unstable. Thanks to a bug report by Tjabo
4768 seems rather unstable. Thanks to a bug report by Tjabo
4764 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4769 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4765
4770
4766 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4771 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4767 this out soon because of the critical fixes in the inner loop for
4772 this out soon because of the critical fixes in the inner loop for
4768 generators.
4773 generators.
4769
4774
4770 * IPython/Magic.py (Magic.getargspec): removed. This (and
4775 * IPython/Magic.py (Magic.getargspec): removed. This (and
4771 _get_def) have been obsoleted by OInspect for a long time, I
4776 _get_def) have been obsoleted by OInspect for a long time, I
4772 hadn't noticed that they were dead code.
4777 hadn't noticed that they were dead code.
4773 (Magic._ofind): restored _ofind functionality for a few literals
4778 (Magic._ofind): restored _ofind functionality for a few literals
4774 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4779 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4775 for things like "hello".capitalize?, since that would require a
4780 for things like "hello".capitalize?, since that would require a
4776 potentially dangerous eval() again.
4781 potentially dangerous eval() again.
4777
4782
4778 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4783 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4779 logic a bit more to clean up the escapes handling and minimize the
4784 logic a bit more to clean up the escapes handling and minimize the
4780 use of _ofind to only necessary cases. The interactive 'feel' of
4785 use of _ofind to only necessary cases. The interactive 'feel' of
4781 IPython should have improved quite a bit with the changes in
4786 IPython should have improved quite a bit with the changes in
4782 _prefilter and _ofind (besides being far safer than before).
4787 _prefilter and _ofind (besides being far safer than before).
4783
4788
4784 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4789 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4785 obscure, never reported). Edit would fail to find the object to
4790 obscure, never reported). Edit would fail to find the object to
4786 edit under some circumstances.
4791 edit under some circumstances.
4787 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4792 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4788 which were causing double-calling of generators. Those eval calls
4793 which were causing double-calling of generators. Those eval calls
4789 were _very_ dangerous, since code with side effects could be
4794 were _very_ dangerous, since code with side effects could be
4790 triggered. As they say, 'eval is evil'... These were the
4795 triggered. As they say, 'eval is evil'... These were the
4791 nastiest evals in IPython. Besides, _ofind is now far simpler,
4796 nastiest evals in IPython. Besides, _ofind is now far simpler,
4792 and it should also be quite a bit faster. Its use of inspect is
4797 and it should also be quite a bit faster. Its use of inspect is
4793 also safer, so perhaps some of the inspect-related crashes I've
4798 also safer, so perhaps some of the inspect-related crashes I've
4794 seen lately with Python 2.3 might be taken care of. That will
4799 seen lately with Python 2.3 might be taken care of. That will
4795 need more testing.
4800 need more testing.
4796
4801
4797 2003-08-17 Fernando Perez <fperez@colorado.edu>
4802 2003-08-17 Fernando Perez <fperez@colorado.edu>
4798
4803
4799 * IPython/iplib.py (InteractiveShell._prefilter): significant
4804 * IPython/iplib.py (InteractiveShell._prefilter): significant
4800 simplifications to the logic for handling user escapes. Faster
4805 simplifications to the logic for handling user escapes. Faster
4801 and simpler code.
4806 and simpler code.
4802
4807
4803 2003-08-14 Fernando Perez <fperez@colorado.edu>
4808 2003-08-14 Fernando Perez <fperez@colorado.edu>
4804
4809
4805 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4810 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4806 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4811 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4807 but it should be quite a bit faster. And the recursive version
4812 but it should be quite a bit faster. And the recursive version
4808 generated O(log N) intermediate storage for all rank>1 arrays,
4813 generated O(log N) intermediate storage for all rank>1 arrays,
4809 even if they were contiguous.
4814 even if they were contiguous.
4810 (l1norm): Added this function.
4815 (l1norm): Added this function.
4811 (norm): Added this function for arbitrary norms (including
4816 (norm): Added this function for arbitrary norms (including
4812 l-infinity). l1 and l2 are still special cases for convenience
4817 l-infinity). l1 and l2 are still special cases for convenience
4813 and speed.
4818 and speed.
4814
4819
4815 2003-08-03 Fernando Perez <fperez@colorado.edu>
4820 2003-08-03 Fernando Perez <fperez@colorado.edu>
4816
4821
4817 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4822 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4818 exceptions, which now raise PendingDeprecationWarnings in Python
4823 exceptions, which now raise PendingDeprecationWarnings in Python
4819 2.3. There were some in Magic and some in Gnuplot2.
4824 2.3. There were some in Magic and some in Gnuplot2.
4820
4825
4821 2003-06-30 Fernando Perez <fperez@colorado.edu>
4826 2003-06-30 Fernando Perez <fperez@colorado.edu>
4822
4827
4823 * IPython/genutils.py (page): modified to call curses only for
4828 * IPython/genutils.py (page): modified to call curses only for
4824 terminals where TERM=='xterm'. After problems under many other
4829 terminals where TERM=='xterm'. After problems under many other
4825 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4830 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4826
4831
4827 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4832 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4828 would be triggered when readline was absent. This was just an old
4833 would be triggered when readline was absent. This was just an old
4829 debugging statement I'd forgotten to take out.
4834 debugging statement I'd forgotten to take out.
4830
4835
4831 2003-06-20 Fernando Perez <fperez@colorado.edu>
4836 2003-06-20 Fernando Perez <fperez@colorado.edu>
4832
4837
4833 * IPython/genutils.py (clock): modified to return only user time
4838 * IPython/genutils.py (clock): modified to return only user time
4834 (not counting system time), after a discussion on scipy. While
4839 (not counting system time), after a discussion on scipy. While
4835 system time may be a useful quantity occasionally, it may much
4840 system time may be a useful quantity occasionally, it may much
4836 more easily be skewed by occasional swapping or other similar
4841 more easily be skewed by occasional swapping or other similar
4837 activity.
4842 activity.
4838
4843
4839 2003-06-05 Fernando Perez <fperez@colorado.edu>
4844 2003-06-05 Fernando Perez <fperez@colorado.edu>
4840
4845
4841 * IPython/numutils.py (identity): new function, for building
4846 * IPython/numutils.py (identity): new function, for building
4842 arbitrary rank Kronecker deltas (mostly backwards compatible with
4847 arbitrary rank Kronecker deltas (mostly backwards compatible with
4843 Numeric.identity)
4848 Numeric.identity)
4844
4849
4845 2003-06-03 Fernando Perez <fperez@colorado.edu>
4850 2003-06-03 Fernando Perez <fperez@colorado.edu>
4846
4851
4847 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4852 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4848 arguments passed to magics with spaces, to allow trailing '\' to
4853 arguments passed to magics with spaces, to allow trailing '\' to
4849 work normally (mainly for Windows users).
4854 work normally (mainly for Windows users).
4850
4855
4851 2003-05-29 Fernando Perez <fperez@colorado.edu>
4856 2003-05-29 Fernando Perez <fperez@colorado.edu>
4852
4857
4853 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4858 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4854 instead of pydoc.help. This fixes a bizarre behavior where
4859 instead of pydoc.help. This fixes a bizarre behavior where
4855 printing '%s' % locals() would trigger the help system. Now
4860 printing '%s' % locals() would trigger the help system. Now
4856 ipython behaves like normal python does.
4861 ipython behaves like normal python does.
4857
4862
4858 Note that if one does 'from pydoc import help', the bizarre
4863 Note that if one does 'from pydoc import help', the bizarre
4859 behavior returns, but this will also happen in normal python, so
4864 behavior returns, but this will also happen in normal python, so
4860 it's not an ipython bug anymore (it has to do with how pydoc.help
4865 it's not an ipython bug anymore (it has to do with how pydoc.help
4861 is implemented).
4866 is implemented).
4862
4867
4863 2003-05-22 Fernando Perez <fperez@colorado.edu>
4868 2003-05-22 Fernando Perez <fperez@colorado.edu>
4864
4869
4865 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4870 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4866 return [] instead of None when nothing matches, also match to end
4871 return [] instead of None when nothing matches, also match to end
4867 of line. Patch by Gary Bishop.
4872 of line. Patch by Gary Bishop.
4868
4873
4869 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4874 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4870 protection as before, for files passed on the command line. This
4875 protection as before, for files passed on the command line. This
4871 prevents the CrashHandler from kicking in if user files call into
4876 prevents the CrashHandler from kicking in if user files call into
4872 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4877 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4873 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4878 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4874
4879
4875 2003-05-20 *** Released version 0.4.0
4880 2003-05-20 *** Released version 0.4.0
4876
4881
4877 2003-05-20 Fernando Perez <fperez@colorado.edu>
4882 2003-05-20 Fernando Perez <fperez@colorado.edu>
4878
4883
4879 * setup.py: added support for manpages. It's a bit hackish b/c of
4884 * setup.py: added support for manpages. It's a bit hackish b/c of
4880 a bug in the way the bdist_rpm distutils target handles gzipped
4885 a bug in the way the bdist_rpm distutils target handles gzipped
4881 manpages, but it works. After a patch by Jack.
4886 manpages, but it works. After a patch by Jack.
4882
4887
4883 2003-05-19 Fernando Perez <fperez@colorado.edu>
4888 2003-05-19 Fernando Perez <fperez@colorado.edu>
4884
4889
4885 * IPython/numutils.py: added a mockup of the kinds module, since
4890 * IPython/numutils.py: added a mockup of the kinds module, since
4886 it was recently removed from Numeric. This way, numutils will
4891 it was recently removed from Numeric. This way, numutils will
4887 work for all users even if they are missing kinds.
4892 work for all users even if they are missing kinds.
4888
4893
4889 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4894 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4890 failure, which can occur with SWIG-wrapped extensions. After a
4895 failure, which can occur with SWIG-wrapped extensions. After a
4891 crash report from Prabhu.
4896 crash report from Prabhu.
4892
4897
4893 2003-05-16 Fernando Perez <fperez@colorado.edu>
4898 2003-05-16 Fernando Perez <fperez@colorado.edu>
4894
4899
4895 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4900 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4896 protect ipython from user code which may call directly
4901 protect ipython from user code which may call directly
4897 sys.excepthook (this looks like an ipython crash to the user, even
4902 sys.excepthook (this looks like an ipython crash to the user, even
4898 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4903 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4899 This is especially important to help users of WxWindows, but may
4904 This is especially important to help users of WxWindows, but may
4900 also be useful in other cases.
4905 also be useful in other cases.
4901
4906
4902 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4907 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4903 an optional tb_offset to be specified, and to preserve exception
4908 an optional tb_offset to be specified, and to preserve exception
4904 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4909 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4905
4910
4906 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4911 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4907
4912
4908 2003-05-15 Fernando Perez <fperez@colorado.edu>
4913 2003-05-15 Fernando Perez <fperez@colorado.edu>
4909
4914
4910 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4915 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4911 installing for a new user under Windows.
4916 installing for a new user under Windows.
4912
4917
4913 2003-05-12 Fernando Perez <fperez@colorado.edu>
4918 2003-05-12 Fernando Perez <fperez@colorado.edu>
4914
4919
4915 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4920 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4916 handler for Emacs comint-based lines. Currently it doesn't do
4921 handler for Emacs comint-based lines. Currently it doesn't do
4917 much (but importantly, it doesn't update the history cache). In
4922 much (but importantly, it doesn't update the history cache). In
4918 the future it may be expanded if Alex needs more functionality
4923 the future it may be expanded if Alex needs more functionality
4919 there.
4924 there.
4920
4925
4921 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4926 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4922 info to crash reports.
4927 info to crash reports.
4923
4928
4924 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4929 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4925 just like Python's -c. Also fixed crash with invalid -color
4930 just like Python's -c. Also fixed crash with invalid -color
4926 option value at startup. Thanks to Will French
4931 option value at startup. Thanks to Will French
4927 <wfrench-AT-bestweb.net> for the bug report.
4932 <wfrench-AT-bestweb.net> for the bug report.
4928
4933
4929 2003-05-09 Fernando Perez <fperez@colorado.edu>
4934 2003-05-09 Fernando Perez <fperez@colorado.edu>
4930
4935
4931 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4936 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4932 to EvalDict (it's a mapping, after all) and simplified its code
4937 to EvalDict (it's a mapping, after all) and simplified its code
4933 quite a bit, after a nice discussion on c.l.py where Gustavo
4938 quite a bit, after a nice discussion on c.l.py where Gustavo
4934 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4939 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4935
4940
4936 2003-04-30 Fernando Perez <fperez@colorado.edu>
4941 2003-04-30 Fernando Perez <fperez@colorado.edu>
4937
4942
4938 * IPython/genutils.py (timings_out): modified it to reduce its
4943 * IPython/genutils.py (timings_out): modified it to reduce its
4939 overhead in the common reps==1 case.
4944 overhead in the common reps==1 case.
4940
4945
4941 2003-04-29 Fernando Perez <fperez@colorado.edu>
4946 2003-04-29 Fernando Perez <fperez@colorado.edu>
4942
4947
4943 * IPython/genutils.py (timings_out): Modified to use the resource
4948 * IPython/genutils.py (timings_out): Modified to use the resource
4944 module, which avoids the wraparound problems of time.clock().
4949 module, which avoids the wraparound problems of time.clock().
4945
4950
4946 2003-04-17 *** Released version 0.2.15pre4
4951 2003-04-17 *** Released version 0.2.15pre4
4947
4952
4948 2003-04-17 Fernando Perez <fperez@colorado.edu>
4953 2003-04-17 Fernando Perez <fperez@colorado.edu>
4949
4954
4950 * setup.py (scriptfiles): Split windows-specific stuff over to a
4955 * setup.py (scriptfiles): Split windows-specific stuff over to a
4951 separate file, in an attempt to have a Windows GUI installer.
4956 separate file, in an attempt to have a Windows GUI installer.
4952 That didn't work, but part of the groundwork is done.
4957 That didn't work, but part of the groundwork is done.
4953
4958
4954 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4959 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4955 indent/unindent with 4 spaces. Particularly useful in combination
4960 indent/unindent with 4 spaces. Particularly useful in combination
4956 with the new auto-indent option.
4961 with the new auto-indent option.
4957
4962
4958 2003-04-16 Fernando Perez <fperez@colorado.edu>
4963 2003-04-16 Fernando Perez <fperez@colorado.edu>
4959
4964
4960 * IPython/Magic.py: various replacements of self.rc for
4965 * IPython/Magic.py: various replacements of self.rc for
4961 self.shell.rc. A lot more remains to be done to fully disentangle
4966 self.shell.rc. A lot more remains to be done to fully disentangle
4962 this class from the main Shell class.
4967 this class from the main Shell class.
4963
4968
4964 * IPython/GnuplotRuntime.py: added checks for mouse support so
4969 * IPython/GnuplotRuntime.py: added checks for mouse support so
4965 that we don't try to enable it if the current gnuplot doesn't
4970 that we don't try to enable it if the current gnuplot doesn't
4966 really support it. Also added checks so that we don't try to
4971 really support it. Also added checks so that we don't try to
4967 enable persist under Windows (where Gnuplot doesn't recognize the
4972 enable persist under Windows (where Gnuplot doesn't recognize the
4968 option).
4973 option).
4969
4974
4970 * IPython/iplib.py (InteractiveShell.interact): Added optional
4975 * IPython/iplib.py (InteractiveShell.interact): Added optional
4971 auto-indenting code, after a patch by King C. Shu
4976 auto-indenting code, after a patch by King C. Shu
4972 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4977 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4973 get along well with pasting indented code. If I ever figure out
4978 get along well with pasting indented code. If I ever figure out
4974 how to make that part go well, it will become on by default.
4979 how to make that part go well, it will become on by default.
4975
4980
4976 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4981 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4977 crash ipython if there was an unmatched '%' in the user's prompt
4982 crash ipython if there was an unmatched '%' in the user's prompt
4978 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4983 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4979
4984
4980 * IPython/iplib.py (InteractiveShell.interact): removed the
4985 * IPython/iplib.py (InteractiveShell.interact): removed the
4981 ability to ask the user whether he wants to crash or not at the
4986 ability to ask the user whether he wants to crash or not at the
4982 'last line' exception handler. Calling functions at that point
4987 'last line' exception handler. Calling functions at that point
4983 changes the stack, and the error reports would have incorrect
4988 changes the stack, and the error reports would have incorrect
4984 tracebacks.
4989 tracebacks.
4985
4990
4986 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4991 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4987 pass through a peger a pretty-printed form of any object. After a
4992 pass through a peger a pretty-printed form of any object. After a
4988 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4993 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4989
4994
4990 2003-04-14 Fernando Perez <fperez@colorado.edu>
4995 2003-04-14 Fernando Perez <fperez@colorado.edu>
4991
4996
4992 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4997 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4993 all files in ~ would be modified at first install (instead of
4998 all files in ~ would be modified at first install (instead of
4994 ~/.ipython). This could be potentially disastrous, as the
4999 ~/.ipython). This could be potentially disastrous, as the
4995 modification (make line-endings native) could damage binary files.
5000 modification (make line-endings native) could damage binary files.
4996
5001
4997 2003-04-10 Fernando Perez <fperez@colorado.edu>
5002 2003-04-10 Fernando Perez <fperez@colorado.edu>
4998
5003
4999 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5004 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5000 handle only lines which are invalid python. This now means that
5005 handle only lines which are invalid python. This now means that
5001 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5006 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5002 for the bug report.
5007 for the bug report.
5003
5008
5004 2003-04-01 Fernando Perez <fperez@colorado.edu>
5009 2003-04-01 Fernando Perez <fperez@colorado.edu>
5005
5010
5006 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5011 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5007 where failing to set sys.last_traceback would crash pdb.pm().
5012 where failing to set sys.last_traceback would crash pdb.pm().
5008 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5013 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5009 report.
5014 report.
5010
5015
5011 2003-03-25 Fernando Perez <fperez@colorado.edu>
5016 2003-03-25 Fernando Perez <fperez@colorado.edu>
5012
5017
5013 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5018 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5014 before printing it (it had a lot of spurious blank lines at the
5019 before printing it (it had a lot of spurious blank lines at the
5015 end).
5020 end).
5016
5021
5017 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5022 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5018 output would be sent 21 times! Obviously people don't use this
5023 output would be sent 21 times! Obviously people don't use this
5019 too often, or I would have heard about it.
5024 too often, or I would have heard about it.
5020
5025
5021 2003-03-24 Fernando Perez <fperez@colorado.edu>
5026 2003-03-24 Fernando Perez <fperez@colorado.edu>
5022
5027
5023 * setup.py (scriptfiles): renamed the data_files parameter from
5028 * setup.py (scriptfiles): renamed the data_files parameter from
5024 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5029 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5025 for the patch.
5030 for the patch.
5026
5031
5027 2003-03-20 Fernando Perez <fperez@colorado.edu>
5032 2003-03-20 Fernando Perez <fperez@colorado.edu>
5028
5033
5029 * IPython/genutils.py (error): added error() and fatal()
5034 * IPython/genutils.py (error): added error() and fatal()
5030 functions.
5035 functions.
5031
5036
5032 2003-03-18 *** Released version 0.2.15pre3
5037 2003-03-18 *** Released version 0.2.15pre3
5033
5038
5034 2003-03-18 Fernando Perez <fperez@colorado.edu>
5039 2003-03-18 Fernando Perez <fperez@colorado.edu>
5035
5040
5036 * setupext/install_data_ext.py
5041 * setupext/install_data_ext.py
5037 (install_data_ext.initialize_options): Class contributed by Jack
5042 (install_data_ext.initialize_options): Class contributed by Jack
5038 Moffit for fixing the old distutils hack. He is sending this to
5043 Moffit for fixing the old distutils hack. He is sending this to
5039 the distutils folks so in the future we may not need it as a
5044 the distutils folks so in the future we may not need it as a
5040 private fix.
5045 private fix.
5041
5046
5042 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5047 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5043 changes for Debian packaging. See his patch for full details.
5048 changes for Debian packaging. See his patch for full details.
5044 The old distutils hack of making the ipythonrc* files carry a
5049 The old distutils hack of making the ipythonrc* files carry a
5045 bogus .py extension is gone, at last. Examples were moved to a
5050 bogus .py extension is gone, at last. Examples were moved to a
5046 separate subdir under doc/, and the separate executable scripts
5051 separate subdir under doc/, and the separate executable scripts
5047 now live in their own directory. Overall a great cleanup. The
5052 now live in their own directory. Overall a great cleanup. The
5048 manual was updated to use the new files, and setup.py has been
5053 manual was updated to use the new files, and setup.py has been
5049 fixed for this setup.
5054 fixed for this setup.
5050
5055
5051 * IPython/PyColorize.py (Parser.usage): made non-executable and
5056 * IPython/PyColorize.py (Parser.usage): made non-executable and
5052 created a pycolor wrapper around it to be included as a script.
5057 created a pycolor wrapper around it to be included as a script.
5053
5058
5054 2003-03-12 *** Released version 0.2.15pre2
5059 2003-03-12 *** Released version 0.2.15pre2
5055
5060
5056 2003-03-12 Fernando Perez <fperez@colorado.edu>
5061 2003-03-12 Fernando Perez <fperez@colorado.edu>
5057
5062
5058 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5063 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5059 long-standing problem with garbage characters in some terminals.
5064 long-standing problem with garbage characters in some terminals.
5060 The issue was really that the \001 and \002 escapes must _only_ be
5065 The issue was really that the \001 and \002 escapes must _only_ be
5061 passed to input prompts (which call readline), but _never_ to
5066 passed to input prompts (which call readline), but _never_ to
5062 normal text to be printed on screen. I changed ColorANSI to have
5067 normal text to be printed on screen. I changed ColorANSI to have
5063 two classes: TermColors and InputTermColors, each with the
5068 two classes: TermColors and InputTermColors, each with the
5064 appropriate escapes for input prompts or normal text. The code in
5069 appropriate escapes for input prompts or normal text. The code in
5065 Prompts.py got slightly more complicated, but this very old and
5070 Prompts.py got slightly more complicated, but this very old and
5066 annoying bug is finally fixed.
5071 annoying bug is finally fixed.
5067
5072
5068 All the credit for nailing down the real origin of this problem
5073 All the credit for nailing down the real origin of this problem
5069 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5074 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5070 *Many* thanks to him for spending quite a bit of effort on this.
5075 *Many* thanks to him for spending quite a bit of effort on this.
5071
5076
5072 2003-03-05 *** Released version 0.2.15pre1
5077 2003-03-05 *** Released version 0.2.15pre1
5073
5078
5074 2003-03-03 Fernando Perez <fperez@colorado.edu>
5079 2003-03-03 Fernando Perez <fperez@colorado.edu>
5075
5080
5076 * IPython/FakeModule.py: Moved the former _FakeModule to a
5081 * IPython/FakeModule.py: Moved the former _FakeModule to a
5077 separate file, because it's also needed by Magic (to fix a similar
5082 separate file, because it's also needed by Magic (to fix a similar
5078 pickle-related issue in @run).
5083 pickle-related issue in @run).
5079
5084
5080 2003-03-02 Fernando Perez <fperez@colorado.edu>
5085 2003-03-02 Fernando Perez <fperez@colorado.edu>
5081
5086
5082 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5087 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5083 the autocall option at runtime.
5088 the autocall option at runtime.
5084 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5089 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5085 across Magic.py to start separating Magic from InteractiveShell.
5090 across Magic.py to start separating Magic from InteractiveShell.
5086 (Magic._ofind): Fixed to return proper namespace for dotted
5091 (Magic._ofind): Fixed to return proper namespace for dotted
5087 names. Before, a dotted name would always return 'not currently
5092 names. Before, a dotted name would always return 'not currently
5088 defined', because it would find the 'parent'. s.x would be found,
5093 defined', because it would find the 'parent'. s.x would be found,
5089 but since 'x' isn't defined by itself, it would get confused.
5094 but since 'x' isn't defined by itself, it would get confused.
5090 (Magic.magic_run): Fixed pickling problems reported by Ralf
5095 (Magic.magic_run): Fixed pickling problems reported by Ralf
5091 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5096 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5092 that I'd used when Mike Heeter reported similar issues at the
5097 that I'd used when Mike Heeter reported similar issues at the
5093 top-level, but now for @run. It boils down to injecting the
5098 top-level, but now for @run. It boils down to injecting the
5094 namespace where code is being executed with something that looks
5099 namespace where code is being executed with something that looks
5095 enough like a module to fool pickle.dump(). Since a pickle stores
5100 enough like a module to fool pickle.dump(). Since a pickle stores
5096 a named reference to the importing module, we need this for
5101 a named reference to the importing module, we need this for
5097 pickles to save something sensible.
5102 pickles to save something sensible.
5098
5103
5099 * IPython/ipmaker.py (make_IPython): added an autocall option.
5104 * IPython/ipmaker.py (make_IPython): added an autocall option.
5100
5105
5101 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5106 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5102 the auto-eval code. Now autocalling is an option, and the code is
5107 the auto-eval code. Now autocalling is an option, and the code is
5103 also vastly safer. There is no more eval() involved at all.
5108 also vastly safer. There is no more eval() involved at all.
5104
5109
5105 2003-03-01 Fernando Perez <fperez@colorado.edu>
5110 2003-03-01 Fernando Perez <fperez@colorado.edu>
5106
5111
5107 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5112 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5108 dict with named keys instead of a tuple.
5113 dict with named keys instead of a tuple.
5109
5114
5110 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5115 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5111
5116
5112 * setup.py (make_shortcut): Fixed message about directories
5117 * setup.py (make_shortcut): Fixed message about directories
5113 created during Windows installation (the directories were ok, just
5118 created during Windows installation (the directories were ok, just
5114 the printed message was misleading). Thanks to Chris Liechti
5119 the printed message was misleading). Thanks to Chris Liechti
5115 <cliechti-AT-gmx.net> for the heads up.
5120 <cliechti-AT-gmx.net> for the heads up.
5116
5121
5117 2003-02-21 Fernando Perez <fperez@colorado.edu>
5122 2003-02-21 Fernando Perez <fperez@colorado.edu>
5118
5123
5119 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5124 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5120 of ValueError exception when checking for auto-execution. This
5125 of ValueError exception when checking for auto-execution. This
5121 one is raised by things like Numeric arrays arr.flat when the
5126 one is raised by things like Numeric arrays arr.flat when the
5122 array is non-contiguous.
5127 array is non-contiguous.
5123
5128
5124 2003-01-31 Fernando Perez <fperez@colorado.edu>
5129 2003-01-31 Fernando Perez <fperez@colorado.edu>
5125
5130
5126 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5131 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5127 not return any value at all (even though the command would get
5132 not return any value at all (even though the command would get
5128 executed).
5133 executed).
5129 (xsys): Flush stdout right after printing the command to ensure
5134 (xsys): Flush stdout right after printing the command to ensure
5130 proper ordering of commands and command output in the total
5135 proper ordering of commands and command output in the total
5131 output.
5136 output.
5132 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5137 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5133 system/getoutput as defaults. The old ones are kept for
5138 system/getoutput as defaults. The old ones are kept for
5134 compatibility reasons, so no code which uses this library needs
5139 compatibility reasons, so no code which uses this library needs
5135 changing.
5140 changing.
5136
5141
5137 2003-01-27 *** Released version 0.2.14
5142 2003-01-27 *** Released version 0.2.14
5138
5143
5139 2003-01-25 Fernando Perez <fperez@colorado.edu>
5144 2003-01-25 Fernando Perez <fperez@colorado.edu>
5140
5145
5141 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5146 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5142 functions defined in previous edit sessions could not be re-edited
5147 functions defined in previous edit sessions could not be re-edited
5143 (because the temp files were immediately removed). Now temp files
5148 (because the temp files were immediately removed). Now temp files
5144 are removed only at IPython's exit.
5149 are removed only at IPython's exit.
5145 (Magic.magic_run): Improved @run to perform shell-like expansions
5150 (Magic.magic_run): Improved @run to perform shell-like expansions
5146 on its arguments (~users and $VARS). With this, @run becomes more
5151 on its arguments (~users and $VARS). With this, @run becomes more
5147 like a normal command-line.
5152 like a normal command-line.
5148
5153
5149 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5154 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5150 bugs related to embedding and cleaned up that code. A fairly
5155 bugs related to embedding and cleaned up that code. A fairly
5151 important one was the impossibility to access the global namespace
5156 important one was the impossibility to access the global namespace
5152 through the embedded IPython (only local variables were visible).
5157 through the embedded IPython (only local variables were visible).
5153
5158
5154 2003-01-14 Fernando Perez <fperez@colorado.edu>
5159 2003-01-14 Fernando Perez <fperez@colorado.edu>
5155
5160
5156 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5161 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5157 auto-calling to be a bit more conservative. Now it doesn't get
5162 auto-calling to be a bit more conservative. Now it doesn't get
5158 triggered if any of '!=()<>' are in the rest of the input line, to
5163 triggered if any of '!=()<>' are in the rest of the input line, to
5159 allow comparing callables. Thanks to Alex for the heads up.
5164 allow comparing callables. Thanks to Alex for the heads up.
5160
5165
5161 2003-01-07 Fernando Perez <fperez@colorado.edu>
5166 2003-01-07 Fernando Perez <fperez@colorado.edu>
5162
5167
5163 * IPython/genutils.py (page): fixed estimation of the number of
5168 * IPython/genutils.py (page): fixed estimation of the number of
5164 lines in a string to be paged to simply count newlines. This
5169 lines in a string to be paged to simply count newlines. This
5165 prevents over-guessing due to embedded escape sequences. A better
5170 prevents over-guessing due to embedded escape sequences. A better
5166 long-term solution would involve stripping out the control chars
5171 long-term solution would involve stripping out the control chars
5167 for the count, but it's potentially so expensive I just don't
5172 for the count, but it's potentially so expensive I just don't
5168 think it's worth doing.
5173 think it's worth doing.
5169
5174
5170 2002-12-19 *** Released version 0.2.14pre50
5175 2002-12-19 *** Released version 0.2.14pre50
5171
5176
5172 2002-12-19 Fernando Perez <fperez@colorado.edu>
5177 2002-12-19 Fernando Perez <fperez@colorado.edu>
5173
5178
5174 * tools/release (version): Changed release scripts to inform
5179 * tools/release (version): Changed release scripts to inform
5175 Andrea and build a NEWS file with a list of recent changes.
5180 Andrea and build a NEWS file with a list of recent changes.
5176
5181
5177 * IPython/ColorANSI.py (__all__): changed terminal detection
5182 * IPython/ColorANSI.py (__all__): changed terminal detection
5178 code. Seems to work better for xterms without breaking
5183 code. Seems to work better for xterms without breaking
5179 konsole. Will need more testing to determine if WinXP and Mac OSX
5184 konsole. Will need more testing to determine if WinXP and Mac OSX
5180 also work ok.
5185 also work ok.
5181
5186
5182 2002-12-18 *** Released version 0.2.14pre49
5187 2002-12-18 *** Released version 0.2.14pre49
5183
5188
5184 2002-12-18 Fernando Perez <fperez@colorado.edu>
5189 2002-12-18 Fernando Perez <fperez@colorado.edu>
5185
5190
5186 * Docs: added new info about Mac OSX, from Andrea.
5191 * Docs: added new info about Mac OSX, from Andrea.
5187
5192
5188 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5193 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5189 allow direct plotting of python strings whose format is the same
5194 allow direct plotting of python strings whose format is the same
5190 of gnuplot data files.
5195 of gnuplot data files.
5191
5196
5192 2002-12-16 Fernando Perez <fperez@colorado.edu>
5197 2002-12-16 Fernando Perez <fperez@colorado.edu>
5193
5198
5194 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5199 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5195 value of exit question to be acknowledged.
5200 value of exit question to be acknowledged.
5196
5201
5197 2002-12-03 Fernando Perez <fperez@colorado.edu>
5202 2002-12-03 Fernando Perez <fperez@colorado.edu>
5198
5203
5199 * IPython/ipmaker.py: removed generators, which had been added
5204 * IPython/ipmaker.py: removed generators, which had been added
5200 by mistake in an earlier debugging run. This was causing trouble
5205 by mistake in an earlier debugging run. This was causing trouble
5201 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5206 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5202 for pointing this out.
5207 for pointing this out.
5203
5208
5204 2002-11-17 Fernando Perez <fperez@colorado.edu>
5209 2002-11-17 Fernando Perez <fperez@colorado.edu>
5205
5210
5206 * Manual: updated the Gnuplot section.
5211 * Manual: updated the Gnuplot section.
5207
5212
5208 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5213 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5209 a much better split of what goes in Runtime and what goes in
5214 a much better split of what goes in Runtime and what goes in
5210 Interactive.
5215 Interactive.
5211
5216
5212 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5217 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5213 being imported from iplib.
5218 being imported from iplib.
5214
5219
5215 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5220 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5216 for command-passing. Now the global Gnuplot instance is called
5221 for command-passing. Now the global Gnuplot instance is called
5217 'gp' instead of 'g', which was really a far too fragile and
5222 'gp' instead of 'g', which was really a far too fragile and
5218 common name.
5223 common name.
5219
5224
5220 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5225 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5221 bounding boxes generated by Gnuplot for square plots.
5226 bounding boxes generated by Gnuplot for square plots.
5222
5227
5223 * IPython/genutils.py (popkey): new function added. I should
5228 * IPython/genutils.py (popkey): new function added. I should
5224 suggest this on c.l.py as a dict method, it seems useful.
5229 suggest this on c.l.py as a dict method, it seems useful.
5225
5230
5226 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5231 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5227 to transparently handle PostScript generation. MUCH better than
5232 to transparently handle PostScript generation. MUCH better than
5228 the previous plot_eps/replot_eps (which I removed now). The code
5233 the previous plot_eps/replot_eps (which I removed now). The code
5229 is also fairly clean and well documented now (including
5234 is also fairly clean and well documented now (including
5230 docstrings).
5235 docstrings).
5231
5236
5232 2002-11-13 Fernando Perez <fperez@colorado.edu>
5237 2002-11-13 Fernando Perez <fperez@colorado.edu>
5233
5238
5234 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5239 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5235 (inconsistent with options).
5240 (inconsistent with options).
5236
5241
5237 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5242 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5238 manually disabled, I don't know why. Fixed it.
5243 manually disabled, I don't know why. Fixed it.
5239 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5244 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5240 eps output.
5245 eps output.
5241
5246
5242 2002-11-12 Fernando Perez <fperez@colorado.edu>
5247 2002-11-12 Fernando Perez <fperez@colorado.edu>
5243
5248
5244 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5249 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5245 don't propagate up to caller. Fixes crash reported by François
5250 don't propagate up to caller. Fixes crash reported by François
5246 Pinard.
5251 Pinard.
5247
5252
5248 2002-11-09 Fernando Perez <fperez@colorado.edu>
5253 2002-11-09 Fernando Perez <fperez@colorado.edu>
5249
5254
5250 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5255 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5251 history file for new users.
5256 history file for new users.
5252 (make_IPython): fixed bug where initial install would leave the
5257 (make_IPython): fixed bug where initial install would leave the
5253 user running in the .ipython dir.
5258 user running in the .ipython dir.
5254 (make_IPython): fixed bug where config dir .ipython would be
5259 (make_IPython): fixed bug where config dir .ipython would be
5255 created regardless of the given -ipythondir option. Thanks to Cory
5260 created regardless of the given -ipythondir option. Thanks to Cory
5256 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5261 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5257
5262
5258 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5263 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5259 type confirmations. Will need to use it in all of IPython's code
5264 type confirmations. Will need to use it in all of IPython's code
5260 consistently.
5265 consistently.
5261
5266
5262 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5267 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5263 context to print 31 lines instead of the default 5. This will make
5268 context to print 31 lines instead of the default 5. This will make
5264 the crash reports extremely detailed in case the problem is in
5269 the crash reports extremely detailed in case the problem is in
5265 libraries I don't have access to.
5270 libraries I don't have access to.
5266
5271
5267 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5272 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5268 line of defense' code to still crash, but giving users fair
5273 line of defense' code to still crash, but giving users fair
5269 warning. I don't want internal errors to go unreported: if there's
5274 warning. I don't want internal errors to go unreported: if there's
5270 an internal problem, IPython should crash and generate a full
5275 an internal problem, IPython should crash and generate a full
5271 report.
5276 report.
5272
5277
5273 2002-11-08 Fernando Perez <fperez@colorado.edu>
5278 2002-11-08 Fernando Perez <fperez@colorado.edu>
5274
5279
5275 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5280 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5276 otherwise uncaught exceptions which can appear if people set
5281 otherwise uncaught exceptions which can appear if people set
5277 sys.stdout to something badly broken. Thanks to a crash report
5282 sys.stdout to something badly broken. Thanks to a crash report
5278 from henni-AT-mail.brainbot.com.
5283 from henni-AT-mail.brainbot.com.
5279
5284
5280 2002-11-04 Fernando Perez <fperez@colorado.edu>
5285 2002-11-04 Fernando Perez <fperez@colorado.edu>
5281
5286
5282 * IPython/iplib.py (InteractiveShell.interact): added
5287 * IPython/iplib.py (InteractiveShell.interact): added
5283 __IPYTHON__active to the builtins. It's a flag which goes on when
5288 __IPYTHON__active to the builtins. It's a flag which goes on when
5284 the interaction starts and goes off again when it stops. This
5289 the interaction starts and goes off again when it stops. This
5285 allows embedding code to detect being inside IPython. Before this
5290 allows embedding code to detect being inside IPython. Before this
5286 was done via __IPYTHON__, but that only shows that an IPython
5291 was done via __IPYTHON__, but that only shows that an IPython
5287 instance has been created.
5292 instance has been created.
5288
5293
5289 * IPython/Magic.py (Magic.magic_env): I realized that in a
5294 * IPython/Magic.py (Magic.magic_env): I realized that in a
5290 UserDict, instance.data holds the data as a normal dict. So I
5295 UserDict, instance.data holds the data as a normal dict. So I
5291 modified @env to return os.environ.data instead of rebuilding a
5296 modified @env to return os.environ.data instead of rebuilding a
5292 dict by hand.
5297 dict by hand.
5293
5298
5294 2002-11-02 Fernando Perez <fperez@colorado.edu>
5299 2002-11-02 Fernando Perez <fperez@colorado.edu>
5295
5300
5296 * IPython/genutils.py (warn): changed so that level 1 prints no
5301 * IPython/genutils.py (warn): changed so that level 1 prints no
5297 header. Level 2 is now the default (with 'WARNING' header, as
5302 header. Level 2 is now the default (with 'WARNING' header, as
5298 before). I think I tracked all places where changes were needed in
5303 before). I think I tracked all places where changes were needed in
5299 IPython, but outside code using the old level numbering may have
5304 IPython, but outside code using the old level numbering may have
5300 broken.
5305 broken.
5301
5306
5302 * IPython/iplib.py (InteractiveShell.runcode): added this to
5307 * IPython/iplib.py (InteractiveShell.runcode): added this to
5303 handle the tracebacks in SystemExit traps correctly. The previous
5308 handle the tracebacks in SystemExit traps correctly. The previous
5304 code (through interact) was printing more of the stack than
5309 code (through interact) was printing more of the stack than
5305 necessary, showing IPython internal code to the user.
5310 necessary, showing IPython internal code to the user.
5306
5311
5307 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5312 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5308 default. Now that the default at the confirmation prompt is yes,
5313 default. Now that the default at the confirmation prompt is yes,
5309 it's not so intrusive. François' argument that ipython sessions
5314 it's not so intrusive. François' argument that ipython sessions
5310 tend to be complex enough not to lose them from an accidental C-d,
5315 tend to be complex enough not to lose them from an accidental C-d,
5311 is a valid one.
5316 is a valid one.
5312
5317
5313 * IPython/iplib.py (InteractiveShell.interact): added a
5318 * IPython/iplib.py (InteractiveShell.interact): added a
5314 showtraceback() call to the SystemExit trap, and modified the exit
5319 showtraceback() call to the SystemExit trap, and modified the exit
5315 confirmation to have yes as the default.
5320 confirmation to have yes as the default.
5316
5321
5317 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5322 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5318 this file. It's been gone from the code for a long time, this was
5323 this file. It's been gone from the code for a long time, this was
5319 simply leftover junk.
5324 simply leftover junk.
5320
5325
5321 2002-11-01 Fernando Perez <fperez@colorado.edu>
5326 2002-11-01 Fernando Perez <fperez@colorado.edu>
5322
5327
5323 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5328 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5324 added. If set, IPython now traps EOF and asks for
5329 added. If set, IPython now traps EOF and asks for
5325 confirmation. After a request by François Pinard.
5330 confirmation. After a request by François Pinard.
5326
5331
5327 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5332 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5328 of @abort, and with a new (better) mechanism for handling the
5333 of @abort, and with a new (better) mechanism for handling the
5329 exceptions.
5334 exceptions.
5330
5335
5331 2002-10-27 Fernando Perez <fperez@colorado.edu>
5336 2002-10-27 Fernando Perez <fperez@colorado.edu>
5332
5337
5333 * IPython/usage.py (__doc__): updated the --help information and
5338 * IPython/usage.py (__doc__): updated the --help information and
5334 the ipythonrc file to indicate that -log generates
5339 the ipythonrc file to indicate that -log generates
5335 ./ipython.log. Also fixed the corresponding info in @logstart.
5340 ./ipython.log. Also fixed the corresponding info in @logstart.
5336 This and several other fixes in the manuals thanks to reports by
5341 This and several other fixes in the manuals thanks to reports by
5337 François Pinard <pinard-AT-iro.umontreal.ca>.
5342 François Pinard <pinard-AT-iro.umontreal.ca>.
5338
5343
5339 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5344 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5340 refer to @logstart (instead of @log, which doesn't exist).
5345 refer to @logstart (instead of @log, which doesn't exist).
5341
5346
5342 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5347 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5343 AttributeError crash. Thanks to Christopher Armstrong
5348 AttributeError crash. Thanks to Christopher Armstrong
5344 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5349 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5345 introduced recently (in 0.2.14pre37) with the fix to the eval
5350 introduced recently (in 0.2.14pre37) with the fix to the eval
5346 problem mentioned below.
5351 problem mentioned below.
5347
5352
5348 2002-10-17 Fernando Perez <fperez@colorado.edu>
5353 2002-10-17 Fernando Perez <fperez@colorado.edu>
5349
5354
5350 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5355 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5351 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5356 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5352
5357
5353 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5358 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5354 this function to fix a problem reported by Alex Schmolck. He saw
5359 this function to fix a problem reported by Alex Schmolck. He saw
5355 it with list comprehensions and generators, which were getting
5360 it with list comprehensions and generators, which were getting
5356 called twice. The real problem was an 'eval' call in testing for
5361 called twice. The real problem was an 'eval' call in testing for
5357 automagic which was evaluating the input line silently.
5362 automagic which was evaluating the input line silently.
5358
5363
5359 This is a potentially very nasty bug, if the input has side
5364 This is a potentially very nasty bug, if the input has side
5360 effects which must not be repeated. The code is much cleaner now,
5365 effects which must not be repeated. The code is much cleaner now,
5361 without any blanket 'except' left and with a regexp test for
5366 without any blanket 'except' left and with a regexp test for
5362 actual function names.
5367 actual function names.
5363
5368
5364 But an eval remains, which I'm not fully comfortable with. I just
5369 But an eval remains, which I'm not fully comfortable with. I just
5365 don't know how to find out if an expression could be a callable in
5370 don't know how to find out if an expression could be a callable in
5366 the user's namespace without doing an eval on the string. However
5371 the user's namespace without doing an eval on the string. However
5367 that string is now much more strictly checked so that no code
5372 that string is now much more strictly checked so that no code
5368 slips by, so the eval should only happen for things that can
5373 slips by, so the eval should only happen for things that can
5369 really be only function/method names.
5374 really be only function/method names.
5370
5375
5371 2002-10-15 Fernando Perez <fperez@colorado.edu>
5376 2002-10-15 Fernando Perez <fperez@colorado.edu>
5372
5377
5373 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5378 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5374 OSX information to main manual, removed README_Mac_OSX file from
5379 OSX information to main manual, removed README_Mac_OSX file from
5375 distribution. Also updated credits for recent additions.
5380 distribution. Also updated credits for recent additions.
5376
5381
5377 2002-10-10 Fernando Perez <fperez@colorado.edu>
5382 2002-10-10 Fernando Perez <fperez@colorado.edu>
5378
5383
5379 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5384 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5380 terminal-related issues. Many thanks to Andrea Riciputi
5385 terminal-related issues. Many thanks to Andrea Riciputi
5381 <andrea.riciputi-AT-libero.it> for writing it.
5386 <andrea.riciputi-AT-libero.it> for writing it.
5382
5387
5383 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5388 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5384 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5389 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5385
5390
5386 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5391 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5387 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5392 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5388 <syver-en-AT-online.no> who both submitted patches for this problem.
5393 <syver-en-AT-online.no> who both submitted patches for this problem.
5389
5394
5390 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5395 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5391 global embedding to make sure that things don't overwrite user
5396 global embedding to make sure that things don't overwrite user
5392 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5397 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5393
5398
5394 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5399 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5395 compatibility. Thanks to Hayden Callow
5400 compatibility. Thanks to Hayden Callow
5396 <h.callow-AT-elec.canterbury.ac.nz>
5401 <h.callow-AT-elec.canterbury.ac.nz>
5397
5402
5398 2002-10-04 Fernando Perez <fperez@colorado.edu>
5403 2002-10-04 Fernando Perez <fperez@colorado.edu>
5399
5404
5400 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5405 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5401 Gnuplot.File objects.
5406 Gnuplot.File objects.
5402
5407
5403 2002-07-23 Fernando Perez <fperez@colorado.edu>
5408 2002-07-23 Fernando Perez <fperez@colorado.edu>
5404
5409
5405 * IPython/genutils.py (timing): Added timings() and timing() for
5410 * IPython/genutils.py (timing): Added timings() and timing() for
5406 quick access to the most commonly needed data, the execution
5411 quick access to the most commonly needed data, the execution
5407 times. Old timing() renamed to timings_out().
5412 times. Old timing() renamed to timings_out().
5408
5413
5409 2002-07-18 Fernando Perez <fperez@colorado.edu>
5414 2002-07-18 Fernando Perez <fperez@colorado.edu>
5410
5415
5411 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5416 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5412 bug with nested instances disrupting the parent's tab completion.
5417 bug with nested instances disrupting the parent's tab completion.
5413
5418
5414 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5419 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5415 all_completions code to begin the emacs integration.
5420 all_completions code to begin the emacs integration.
5416
5421
5417 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5422 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5418 argument to allow titling individual arrays when plotting.
5423 argument to allow titling individual arrays when plotting.
5419
5424
5420 2002-07-15 Fernando Perez <fperez@colorado.edu>
5425 2002-07-15 Fernando Perez <fperez@colorado.edu>
5421
5426
5422 * setup.py (make_shortcut): changed to retrieve the value of
5427 * setup.py (make_shortcut): changed to retrieve the value of
5423 'Program Files' directory from the registry (this value changes in
5428 'Program Files' directory from the registry (this value changes in
5424 non-english versions of Windows). Thanks to Thomas Fanslau
5429 non-english versions of Windows). Thanks to Thomas Fanslau
5425 <tfanslau-AT-gmx.de> for the report.
5430 <tfanslau-AT-gmx.de> for the report.
5426
5431
5427 2002-07-10 Fernando Perez <fperez@colorado.edu>
5432 2002-07-10 Fernando Perez <fperez@colorado.edu>
5428
5433
5429 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5434 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5430 a bug in pdb, which crashes if a line with only whitespace is
5435 a bug in pdb, which crashes if a line with only whitespace is
5431 entered. Bug report submitted to sourceforge.
5436 entered. Bug report submitted to sourceforge.
5432
5437
5433 2002-07-09 Fernando Perez <fperez@colorado.edu>
5438 2002-07-09 Fernando Perez <fperez@colorado.edu>
5434
5439
5435 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5440 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5436 reporting exceptions (it's a bug in inspect.py, I just set a
5441 reporting exceptions (it's a bug in inspect.py, I just set a
5437 workaround).
5442 workaround).
5438
5443
5439 2002-07-08 Fernando Perez <fperez@colorado.edu>
5444 2002-07-08 Fernando Perez <fperez@colorado.edu>
5440
5445
5441 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5446 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5442 __IPYTHON__ in __builtins__ to show up in user_ns.
5447 __IPYTHON__ in __builtins__ to show up in user_ns.
5443
5448
5444 2002-07-03 Fernando Perez <fperez@colorado.edu>
5449 2002-07-03 Fernando Perez <fperez@colorado.edu>
5445
5450
5446 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5451 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5447 name from @gp_set_instance to @gp_set_default.
5452 name from @gp_set_instance to @gp_set_default.
5448
5453
5449 * IPython/ipmaker.py (make_IPython): default editor value set to
5454 * IPython/ipmaker.py (make_IPython): default editor value set to
5450 '0' (a string), to match the rc file. Otherwise will crash when
5455 '0' (a string), to match the rc file. Otherwise will crash when
5451 .strip() is called on it.
5456 .strip() is called on it.
5452
5457
5453
5458
5454 2002-06-28 Fernando Perez <fperez@colorado.edu>
5459 2002-06-28 Fernando Perez <fperez@colorado.edu>
5455
5460
5456 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5461 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5457 of files in current directory when a file is executed via
5462 of files in current directory when a file is executed via
5458 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5463 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5459
5464
5460 * setup.py (manfiles): fix for rpm builds, submitted by RA
5465 * setup.py (manfiles): fix for rpm builds, submitted by RA
5461 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5466 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5462
5467
5463 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5468 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5464 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5469 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5465 string!). A. Schmolck caught this one.
5470 string!). A. Schmolck caught this one.
5466
5471
5467 2002-06-27 Fernando Perez <fperez@colorado.edu>
5472 2002-06-27 Fernando Perez <fperez@colorado.edu>
5468
5473
5469 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5474 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5470 defined files at the cmd line. __name__ wasn't being set to
5475 defined files at the cmd line. __name__ wasn't being set to
5471 __main__.
5476 __main__.
5472
5477
5473 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5478 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5474 regular lists and tuples besides Numeric arrays.
5479 regular lists and tuples besides Numeric arrays.
5475
5480
5476 * IPython/Prompts.py (CachedOutput.__call__): Added output
5481 * IPython/Prompts.py (CachedOutput.__call__): Added output
5477 supression for input ending with ';'. Similar to Mathematica and
5482 supression for input ending with ';'. Similar to Mathematica and
5478 Matlab. The _* vars and Out[] list are still updated, just like
5483 Matlab. The _* vars and Out[] list are still updated, just like
5479 Mathematica behaves.
5484 Mathematica behaves.
5480
5485
5481 2002-06-25 Fernando Perez <fperez@colorado.edu>
5486 2002-06-25 Fernando Perez <fperez@colorado.edu>
5482
5487
5483 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5488 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5484 .ini extensions for profiels under Windows.
5489 .ini extensions for profiels under Windows.
5485
5490
5486 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5491 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5487 string form. Fix contributed by Alexander Schmolck
5492 string form. Fix contributed by Alexander Schmolck
5488 <a.schmolck-AT-gmx.net>
5493 <a.schmolck-AT-gmx.net>
5489
5494
5490 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5495 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5491 pre-configured Gnuplot instance.
5496 pre-configured Gnuplot instance.
5492
5497
5493 2002-06-21 Fernando Perez <fperez@colorado.edu>
5498 2002-06-21 Fernando Perez <fperez@colorado.edu>
5494
5499
5495 * IPython/numutils.py (exp_safe): new function, works around the
5500 * IPython/numutils.py (exp_safe): new function, works around the
5496 underflow problems in Numeric.
5501 underflow problems in Numeric.
5497 (log2): New fn. Safe log in base 2: returns exact integer answer
5502 (log2): New fn. Safe log in base 2: returns exact integer answer
5498 for exact integer powers of 2.
5503 for exact integer powers of 2.
5499
5504
5500 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5505 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5501 properly.
5506 properly.
5502
5507
5503 2002-06-20 Fernando Perez <fperez@colorado.edu>
5508 2002-06-20 Fernando Perez <fperez@colorado.edu>
5504
5509
5505 * IPython/genutils.py (timing): new function like
5510 * IPython/genutils.py (timing): new function like
5506 Mathematica's. Similar to time_test, but returns more info.
5511 Mathematica's. Similar to time_test, but returns more info.
5507
5512
5508 2002-06-18 Fernando Perez <fperez@colorado.edu>
5513 2002-06-18 Fernando Perez <fperez@colorado.edu>
5509
5514
5510 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5515 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5511 according to Mike Heeter's suggestions.
5516 according to Mike Heeter's suggestions.
5512
5517
5513 2002-06-16 Fernando Perez <fperez@colorado.edu>
5518 2002-06-16 Fernando Perez <fperez@colorado.edu>
5514
5519
5515 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5520 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5516 system. GnuplotMagic is gone as a user-directory option. New files
5521 system. GnuplotMagic is gone as a user-directory option. New files
5517 make it easier to use all the gnuplot stuff both from external
5522 make it easier to use all the gnuplot stuff both from external
5518 programs as well as from IPython. Had to rewrite part of
5523 programs as well as from IPython. Had to rewrite part of
5519 hardcopy() b/c of a strange bug: often the ps files simply don't
5524 hardcopy() b/c of a strange bug: often the ps files simply don't
5520 get created, and require a repeat of the command (often several
5525 get created, and require a repeat of the command (often several
5521 times).
5526 times).
5522
5527
5523 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5528 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5524 resolve output channel at call time, so that if sys.stderr has
5529 resolve output channel at call time, so that if sys.stderr has
5525 been redirected by user this gets honored.
5530 been redirected by user this gets honored.
5526
5531
5527 2002-06-13 Fernando Perez <fperez@colorado.edu>
5532 2002-06-13 Fernando Perez <fperez@colorado.edu>
5528
5533
5529 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5534 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5530 IPShell. Kept a copy with the old names to avoid breaking people's
5535 IPShell. Kept a copy with the old names to avoid breaking people's
5531 embedded code.
5536 embedded code.
5532
5537
5533 * IPython/ipython: simplified it to the bare minimum after
5538 * IPython/ipython: simplified it to the bare minimum after
5534 Holger's suggestions. Added info about how to use it in
5539 Holger's suggestions. Added info about how to use it in
5535 PYTHONSTARTUP.
5540 PYTHONSTARTUP.
5536
5541
5537 * IPython/Shell.py (IPythonShell): changed the options passing
5542 * IPython/Shell.py (IPythonShell): changed the options passing
5538 from a string with funky %s replacements to a straight list. Maybe
5543 from a string with funky %s replacements to a straight list. Maybe
5539 a bit more typing, but it follows sys.argv conventions, so there's
5544 a bit more typing, but it follows sys.argv conventions, so there's
5540 less special-casing to remember.
5545 less special-casing to remember.
5541
5546
5542 2002-06-12 Fernando Perez <fperez@colorado.edu>
5547 2002-06-12 Fernando Perez <fperez@colorado.edu>
5543
5548
5544 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5549 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5545 command. Thanks to a suggestion by Mike Heeter.
5550 command. Thanks to a suggestion by Mike Heeter.
5546 (Magic.magic_pfile): added behavior to look at filenames if given
5551 (Magic.magic_pfile): added behavior to look at filenames if given
5547 arg is not a defined object.
5552 arg is not a defined object.
5548 (Magic.magic_save): New @save function to save code snippets. Also
5553 (Magic.magic_save): New @save function to save code snippets. Also
5549 a Mike Heeter idea.
5554 a Mike Heeter idea.
5550
5555
5551 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5556 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5552 plot() and replot(). Much more convenient now, especially for
5557 plot() and replot(). Much more convenient now, especially for
5553 interactive use.
5558 interactive use.
5554
5559
5555 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5560 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5556 filenames.
5561 filenames.
5557
5562
5558 2002-06-02 Fernando Perez <fperez@colorado.edu>
5563 2002-06-02 Fernando Perez <fperez@colorado.edu>
5559
5564
5560 * IPython/Struct.py (Struct.__init__): modified to admit
5565 * IPython/Struct.py (Struct.__init__): modified to admit
5561 initialization via another struct.
5566 initialization via another struct.
5562
5567
5563 * IPython/genutils.py (SystemExec.__init__): New stateful
5568 * IPython/genutils.py (SystemExec.__init__): New stateful
5564 interface to xsys and bq. Useful for writing system scripts.
5569 interface to xsys and bq. Useful for writing system scripts.
5565
5570
5566 2002-05-30 Fernando Perez <fperez@colorado.edu>
5571 2002-05-30 Fernando Perez <fperez@colorado.edu>
5567
5572
5568 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5573 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5569 documents. This will make the user download smaller (it's getting
5574 documents. This will make the user download smaller (it's getting
5570 too big).
5575 too big).
5571
5576
5572 2002-05-29 Fernando Perez <fperez@colorado.edu>
5577 2002-05-29 Fernando Perez <fperez@colorado.edu>
5573
5578
5574 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5579 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5575 fix problems with shelve and pickle. Seems to work, but I don't
5580 fix problems with shelve and pickle. Seems to work, but I don't
5576 know if corner cases break it. Thanks to Mike Heeter
5581 know if corner cases break it. Thanks to Mike Heeter
5577 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5582 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5578
5583
5579 2002-05-24 Fernando Perez <fperez@colorado.edu>
5584 2002-05-24 Fernando Perez <fperez@colorado.edu>
5580
5585
5581 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5586 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5582 macros having broken.
5587 macros having broken.
5583
5588
5584 2002-05-21 Fernando Perez <fperez@colorado.edu>
5589 2002-05-21 Fernando Perez <fperez@colorado.edu>
5585
5590
5586 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5591 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5587 introduced logging bug: all history before logging started was
5592 introduced logging bug: all history before logging started was
5588 being written one character per line! This came from the redesign
5593 being written one character per line! This came from the redesign
5589 of the input history as a special list which slices to strings,
5594 of the input history as a special list which slices to strings,
5590 not to lists.
5595 not to lists.
5591
5596
5592 2002-05-20 Fernando Perez <fperez@colorado.edu>
5597 2002-05-20 Fernando Perez <fperez@colorado.edu>
5593
5598
5594 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5599 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5595 be an attribute of all classes in this module. The design of these
5600 be an attribute of all classes in this module. The design of these
5596 classes needs some serious overhauling.
5601 classes needs some serious overhauling.
5597
5602
5598 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5603 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5599 which was ignoring '_' in option names.
5604 which was ignoring '_' in option names.
5600
5605
5601 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5606 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5602 'Verbose_novars' to 'Context' and made it the new default. It's a
5607 'Verbose_novars' to 'Context' and made it the new default. It's a
5603 bit more readable and also safer than verbose.
5608 bit more readable and also safer than verbose.
5604
5609
5605 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5610 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5606 triple-quoted strings.
5611 triple-quoted strings.
5607
5612
5608 * IPython/OInspect.py (__all__): new module exposing the object
5613 * IPython/OInspect.py (__all__): new module exposing the object
5609 introspection facilities. Now the corresponding magics are dummy
5614 introspection facilities. Now the corresponding magics are dummy
5610 wrappers around this. Having this module will make it much easier
5615 wrappers around this. Having this module will make it much easier
5611 to put these functions into our modified pdb.
5616 to put these functions into our modified pdb.
5612 This new object inspector system uses the new colorizing module,
5617 This new object inspector system uses the new colorizing module,
5613 so source code and other things are nicely syntax highlighted.
5618 so source code and other things are nicely syntax highlighted.
5614
5619
5615 2002-05-18 Fernando Perez <fperez@colorado.edu>
5620 2002-05-18 Fernando Perez <fperez@colorado.edu>
5616
5621
5617 * IPython/ColorANSI.py: Split the coloring tools into a separate
5622 * IPython/ColorANSI.py: Split the coloring tools into a separate
5618 module so I can use them in other code easier (they were part of
5623 module so I can use them in other code easier (they were part of
5619 ultraTB).
5624 ultraTB).
5620
5625
5621 2002-05-17 Fernando Perez <fperez@colorado.edu>
5626 2002-05-17 Fernando Perez <fperez@colorado.edu>
5622
5627
5623 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5628 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5624 fixed it to set the global 'g' also to the called instance, as
5629 fixed it to set the global 'g' also to the called instance, as
5625 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5630 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5626 user's 'g' variables).
5631 user's 'g' variables).
5627
5632
5628 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5633 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5629 global variables (aliases to _ih,_oh) so that users which expect
5634 global variables (aliases to _ih,_oh) so that users which expect
5630 In[5] or Out[7] to work aren't unpleasantly surprised.
5635 In[5] or Out[7] to work aren't unpleasantly surprised.
5631 (InputList.__getslice__): new class to allow executing slices of
5636 (InputList.__getslice__): new class to allow executing slices of
5632 input history directly. Very simple class, complements the use of
5637 input history directly. Very simple class, complements the use of
5633 macros.
5638 macros.
5634
5639
5635 2002-05-16 Fernando Perez <fperez@colorado.edu>
5640 2002-05-16 Fernando Perez <fperez@colorado.edu>
5636
5641
5637 * setup.py (docdirbase): make doc directory be just doc/IPython
5642 * setup.py (docdirbase): make doc directory be just doc/IPython
5638 without version numbers, it will reduce clutter for users.
5643 without version numbers, it will reduce clutter for users.
5639
5644
5640 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5645 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5641 execfile call to prevent possible memory leak. See for details:
5646 execfile call to prevent possible memory leak. See for details:
5642 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5647 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5643
5648
5644 2002-05-15 Fernando Perez <fperez@colorado.edu>
5649 2002-05-15 Fernando Perez <fperez@colorado.edu>
5645
5650
5646 * IPython/Magic.py (Magic.magic_psource): made the object
5651 * IPython/Magic.py (Magic.magic_psource): made the object
5647 introspection names be more standard: pdoc, pdef, pfile and
5652 introspection names be more standard: pdoc, pdef, pfile and
5648 psource. They all print/page their output, and it makes
5653 psource. They all print/page their output, and it makes
5649 remembering them easier. Kept old names for compatibility as
5654 remembering them easier. Kept old names for compatibility as
5650 aliases.
5655 aliases.
5651
5656
5652 2002-05-14 Fernando Perez <fperez@colorado.edu>
5657 2002-05-14 Fernando Perez <fperez@colorado.edu>
5653
5658
5654 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5659 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5655 what the mouse problem was. The trick is to use gnuplot with temp
5660 what the mouse problem was. The trick is to use gnuplot with temp
5656 files and NOT with pipes (for data communication), because having
5661 files and NOT with pipes (for data communication), because having
5657 both pipes and the mouse on is bad news.
5662 both pipes and the mouse on is bad news.
5658
5663
5659 2002-05-13 Fernando Perez <fperez@colorado.edu>
5664 2002-05-13 Fernando Perez <fperez@colorado.edu>
5660
5665
5661 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5666 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5662 bug. Information would be reported about builtins even when
5667 bug. Information would be reported about builtins even when
5663 user-defined functions overrode them.
5668 user-defined functions overrode them.
5664
5669
5665 2002-05-11 Fernando Perez <fperez@colorado.edu>
5670 2002-05-11 Fernando Perez <fperez@colorado.edu>
5666
5671
5667 * IPython/__init__.py (__all__): removed FlexCompleter from
5672 * IPython/__init__.py (__all__): removed FlexCompleter from
5668 __all__ so that things don't fail in platforms without readline.
5673 __all__ so that things don't fail in platforms without readline.
5669
5674
5670 2002-05-10 Fernando Perez <fperez@colorado.edu>
5675 2002-05-10 Fernando Perez <fperez@colorado.edu>
5671
5676
5672 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5677 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5673 it requires Numeric, effectively making Numeric a dependency for
5678 it requires Numeric, effectively making Numeric a dependency for
5674 IPython.
5679 IPython.
5675
5680
5676 * Released 0.2.13
5681 * Released 0.2.13
5677
5682
5678 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5683 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5679 profiler interface. Now all the major options from the profiler
5684 profiler interface. Now all the major options from the profiler
5680 module are directly supported in IPython, both for single
5685 module are directly supported in IPython, both for single
5681 expressions (@prun) and for full programs (@run -p).
5686 expressions (@prun) and for full programs (@run -p).
5682
5687
5683 2002-05-09 Fernando Perez <fperez@colorado.edu>
5688 2002-05-09 Fernando Perez <fperez@colorado.edu>
5684
5689
5685 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5690 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5686 magic properly formatted for screen.
5691 magic properly formatted for screen.
5687
5692
5688 * setup.py (make_shortcut): Changed things to put pdf version in
5693 * setup.py (make_shortcut): Changed things to put pdf version in
5689 doc/ instead of doc/manual (had to change lyxport a bit).
5694 doc/ instead of doc/manual (had to change lyxport a bit).
5690
5695
5691 * IPython/Magic.py (Profile.string_stats): made profile runs go
5696 * IPython/Magic.py (Profile.string_stats): made profile runs go
5692 through pager (they are long and a pager allows searching, saving,
5697 through pager (they are long and a pager allows searching, saving,
5693 etc.)
5698 etc.)
5694
5699
5695 2002-05-08 Fernando Perez <fperez@colorado.edu>
5700 2002-05-08 Fernando Perez <fperez@colorado.edu>
5696
5701
5697 * Released 0.2.12
5702 * Released 0.2.12
5698
5703
5699 2002-05-06 Fernando Perez <fperez@colorado.edu>
5704 2002-05-06 Fernando Perez <fperez@colorado.edu>
5700
5705
5701 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5706 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5702 introduced); 'hist n1 n2' was broken.
5707 introduced); 'hist n1 n2' was broken.
5703 (Magic.magic_pdb): added optional on/off arguments to @pdb
5708 (Magic.magic_pdb): added optional on/off arguments to @pdb
5704 (Magic.magic_run): added option -i to @run, which executes code in
5709 (Magic.magic_run): added option -i to @run, which executes code in
5705 the IPython namespace instead of a clean one. Also added @irun as
5710 the IPython namespace instead of a clean one. Also added @irun as
5706 an alias to @run -i.
5711 an alias to @run -i.
5707
5712
5708 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5713 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5709 fixed (it didn't really do anything, the namespaces were wrong).
5714 fixed (it didn't really do anything, the namespaces were wrong).
5710
5715
5711 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5716 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5712
5717
5713 * IPython/__init__.py (__all__): Fixed package namespace, now
5718 * IPython/__init__.py (__all__): Fixed package namespace, now
5714 'import IPython' does give access to IPython.<all> as
5719 'import IPython' does give access to IPython.<all> as
5715 expected. Also renamed __release__ to Release.
5720 expected. Also renamed __release__ to Release.
5716
5721
5717 * IPython/Debugger.py (__license__): created new Pdb class which
5722 * IPython/Debugger.py (__license__): created new Pdb class which
5718 functions like a drop-in for the normal pdb.Pdb but does NOT
5723 functions like a drop-in for the normal pdb.Pdb but does NOT
5719 import readline by default. This way it doesn't muck up IPython's
5724 import readline by default. This way it doesn't muck up IPython's
5720 readline handling, and now tab-completion finally works in the
5725 readline handling, and now tab-completion finally works in the
5721 debugger -- sort of. It completes things globally visible, but the
5726 debugger -- sort of. It completes things globally visible, but the
5722 completer doesn't track the stack as pdb walks it. That's a bit
5727 completer doesn't track the stack as pdb walks it. That's a bit
5723 tricky, and I'll have to implement it later.
5728 tricky, and I'll have to implement it later.
5724
5729
5725 2002-05-05 Fernando Perez <fperez@colorado.edu>
5730 2002-05-05 Fernando Perez <fperez@colorado.edu>
5726
5731
5727 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5732 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5728 magic docstrings when printed via ? (explicit \'s were being
5733 magic docstrings when printed via ? (explicit \'s were being
5729 printed).
5734 printed).
5730
5735
5731 * IPython/ipmaker.py (make_IPython): fixed namespace
5736 * IPython/ipmaker.py (make_IPython): fixed namespace
5732 identification bug. Now variables loaded via logs or command-line
5737 identification bug. Now variables loaded via logs or command-line
5733 files are recognized in the interactive namespace by @who.
5738 files are recognized in the interactive namespace by @who.
5734
5739
5735 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5740 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5736 log replay system stemming from the string form of Structs.
5741 log replay system stemming from the string form of Structs.
5737
5742
5738 * IPython/Magic.py (Macro.__init__): improved macros to properly
5743 * IPython/Magic.py (Macro.__init__): improved macros to properly
5739 handle magic commands in them.
5744 handle magic commands in them.
5740 (Magic.magic_logstart): usernames are now expanded so 'logstart
5745 (Magic.magic_logstart): usernames are now expanded so 'logstart
5741 ~/mylog' now works.
5746 ~/mylog' now works.
5742
5747
5743 * IPython/iplib.py (complete): fixed bug where paths starting with
5748 * IPython/iplib.py (complete): fixed bug where paths starting with
5744 '/' would be completed as magic names.
5749 '/' would be completed as magic names.
5745
5750
5746 2002-05-04 Fernando Perez <fperez@colorado.edu>
5751 2002-05-04 Fernando Perez <fperez@colorado.edu>
5747
5752
5748 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5753 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5749 allow running full programs under the profiler's control.
5754 allow running full programs under the profiler's control.
5750
5755
5751 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5756 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5752 mode to report exceptions verbosely but without formatting
5757 mode to report exceptions verbosely but without formatting
5753 variables. This addresses the issue of ipython 'freezing' (it's
5758 variables. This addresses the issue of ipython 'freezing' (it's
5754 not frozen, but caught in an expensive formatting loop) when huge
5759 not frozen, but caught in an expensive formatting loop) when huge
5755 variables are in the context of an exception.
5760 variables are in the context of an exception.
5756 (VerboseTB.text): Added '--->' markers at line where exception was
5761 (VerboseTB.text): Added '--->' markers at line where exception was
5757 triggered. Much clearer to read, especially in NoColor modes.
5762 triggered. Much clearer to read, especially in NoColor modes.
5758
5763
5759 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5764 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5760 implemented in reverse when changing to the new parse_options().
5765 implemented in reverse when changing to the new parse_options().
5761
5766
5762 2002-05-03 Fernando Perez <fperez@colorado.edu>
5767 2002-05-03 Fernando Perez <fperez@colorado.edu>
5763
5768
5764 * IPython/Magic.py (Magic.parse_options): new function so that
5769 * IPython/Magic.py (Magic.parse_options): new function so that
5765 magics can parse options easier.
5770 magics can parse options easier.
5766 (Magic.magic_prun): new function similar to profile.run(),
5771 (Magic.magic_prun): new function similar to profile.run(),
5767 suggested by Chris Hart.
5772 suggested by Chris Hart.
5768 (Magic.magic_cd): fixed behavior so that it only changes if
5773 (Magic.magic_cd): fixed behavior so that it only changes if
5769 directory actually is in history.
5774 directory actually is in history.
5770
5775
5771 * IPython/usage.py (__doc__): added information about potential
5776 * IPython/usage.py (__doc__): added information about potential
5772 slowness of Verbose exception mode when there are huge data
5777 slowness of Verbose exception mode when there are huge data
5773 structures to be formatted (thanks to Archie Paulson).
5778 structures to be formatted (thanks to Archie Paulson).
5774
5779
5775 * IPython/ipmaker.py (make_IPython): Changed default logging
5780 * IPython/ipmaker.py (make_IPython): Changed default logging
5776 (when simply called with -log) to use curr_dir/ipython.log in
5781 (when simply called with -log) to use curr_dir/ipython.log in
5777 rotate mode. Fixed crash which was occuring with -log before
5782 rotate mode. Fixed crash which was occuring with -log before
5778 (thanks to Jim Boyle).
5783 (thanks to Jim Boyle).
5779
5784
5780 2002-05-01 Fernando Perez <fperez@colorado.edu>
5785 2002-05-01 Fernando Perez <fperez@colorado.edu>
5781
5786
5782 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5787 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5783 was nasty -- though somewhat of a corner case).
5788 was nasty -- though somewhat of a corner case).
5784
5789
5785 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5790 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5786 text (was a bug).
5791 text (was a bug).
5787
5792
5788 2002-04-30 Fernando Perez <fperez@colorado.edu>
5793 2002-04-30 Fernando Perez <fperez@colorado.edu>
5789
5794
5790 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5795 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5791 a print after ^D or ^C from the user so that the In[] prompt
5796 a print after ^D or ^C from the user so that the In[] prompt
5792 doesn't over-run the gnuplot one.
5797 doesn't over-run the gnuplot one.
5793
5798
5794 2002-04-29 Fernando Perez <fperez@colorado.edu>
5799 2002-04-29 Fernando Perez <fperez@colorado.edu>
5795
5800
5796 * Released 0.2.10
5801 * Released 0.2.10
5797
5802
5798 * IPython/__release__.py (version): get date dynamically.
5803 * IPython/__release__.py (version): get date dynamically.
5799
5804
5800 * Misc. documentation updates thanks to Arnd's comments. Also ran
5805 * Misc. documentation updates thanks to Arnd's comments. Also ran
5801 a full spellcheck on the manual (hadn't been done in a while).
5806 a full spellcheck on the manual (hadn't been done in a while).
5802
5807
5803 2002-04-27 Fernando Perez <fperez@colorado.edu>
5808 2002-04-27 Fernando Perez <fperez@colorado.edu>
5804
5809
5805 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5810 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5806 starting a log in mid-session would reset the input history list.
5811 starting a log in mid-session would reset the input history list.
5807
5812
5808 2002-04-26 Fernando Perez <fperez@colorado.edu>
5813 2002-04-26 Fernando Perez <fperez@colorado.edu>
5809
5814
5810 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5815 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5811 all files were being included in an update. Now anything in
5816 all files were being included in an update. Now anything in
5812 UserConfig that matches [A-Za-z]*.py will go (this excludes
5817 UserConfig that matches [A-Za-z]*.py will go (this excludes
5813 __init__.py)
5818 __init__.py)
5814
5819
5815 2002-04-25 Fernando Perez <fperez@colorado.edu>
5820 2002-04-25 Fernando Perez <fperez@colorado.edu>
5816
5821
5817 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5822 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5818 to __builtins__ so that any form of embedded or imported code can
5823 to __builtins__ so that any form of embedded or imported code can
5819 test for being inside IPython.
5824 test for being inside IPython.
5820
5825
5821 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5826 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5822 changed to GnuplotMagic because it's now an importable module,
5827 changed to GnuplotMagic because it's now an importable module,
5823 this makes the name follow that of the standard Gnuplot module.
5828 this makes the name follow that of the standard Gnuplot module.
5824 GnuplotMagic can now be loaded at any time in mid-session.
5829 GnuplotMagic can now be loaded at any time in mid-session.
5825
5830
5826 2002-04-24 Fernando Perez <fperez@colorado.edu>
5831 2002-04-24 Fernando Perez <fperez@colorado.edu>
5827
5832
5828 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5833 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5829 the globals (IPython has its own namespace) and the
5834 the globals (IPython has its own namespace) and the
5830 PhysicalQuantity stuff is much better anyway.
5835 PhysicalQuantity stuff is much better anyway.
5831
5836
5832 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5837 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5833 embedding example to standard user directory for
5838 embedding example to standard user directory for
5834 distribution. Also put it in the manual.
5839 distribution. Also put it in the manual.
5835
5840
5836 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5841 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5837 instance as first argument (so it doesn't rely on some obscure
5842 instance as first argument (so it doesn't rely on some obscure
5838 hidden global).
5843 hidden global).
5839
5844
5840 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5845 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5841 delimiters. While it prevents ().TAB from working, it allows
5846 delimiters. While it prevents ().TAB from working, it allows
5842 completions in open (... expressions. This is by far a more common
5847 completions in open (... expressions. This is by far a more common
5843 case.
5848 case.
5844
5849
5845 2002-04-23 Fernando Perez <fperez@colorado.edu>
5850 2002-04-23 Fernando Perez <fperez@colorado.edu>
5846
5851
5847 * IPython/Extensions/InterpreterPasteInput.py: new
5852 * IPython/Extensions/InterpreterPasteInput.py: new
5848 syntax-processing module for pasting lines with >>> or ... at the
5853 syntax-processing module for pasting lines with >>> or ... at the
5849 start.
5854 start.
5850
5855
5851 * IPython/Extensions/PhysicalQ_Interactive.py
5856 * IPython/Extensions/PhysicalQ_Interactive.py
5852 (PhysicalQuantityInteractive.__int__): fixed to work with either
5857 (PhysicalQuantityInteractive.__int__): fixed to work with either
5853 Numeric or math.
5858 Numeric or math.
5854
5859
5855 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5860 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5856 provided profiles. Now we have:
5861 provided profiles. Now we have:
5857 -math -> math module as * and cmath with its own namespace.
5862 -math -> math module as * and cmath with its own namespace.
5858 -numeric -> Numeric as *, plus gnuplot & grace
5863 -numeric -> Numeric as *, plus gnuplot & grace
5859 -physics -> same as before
5864 -physics -> same as before
5860
5865
5861 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5866 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5862 user-defined magics wouldn't be found by @magic if they were
5867 user-defined magics wouldn't be found by @magic if they were
5863 defined as class methods. Also cleaned up the namespace search
5868 defined as class methods. Also cleaned up the namespace search
5864 logic and the string building (to use %s instead of many repeated
5869 logic and the string building (to use %s instead of many repeated
5865 string adds).
5870 string adds).
5866
5871
5867 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5872 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5868 of user-defined magics to operate with class methods (cleaner, in
5873 of user-defined magics to operate with class methods (cleaner, in
5869 line with the gnuplot code).
5874 line with the gnuplot code).
5870
5875
5871 2002-04-22 Fernando Perez <fperez@colorado.edu>
5876 2002-04-22 Fernando Perez <fperez@colorado.edu>
5872
5877
5873 * setup.py: updated dependency list so that manual is updated when
5878 * setup.py: updated dependency list so that manual is updated when
5874 all included files change.
5879 all included files change.
5875
5880
5876 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5881 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5877 the delimiter removal option (the fix is ugly right now).
5882 the delimiter removal option (the fix is ugly right now).
5878
5883
5879 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5884 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5880 all of the math profile (quicker loading, no conflict between
5885 all of the math profile (quicker loading, no conflict between
5881 g-9.8 and g-gnuplot).
5886 g-9.8 and g-gnuplot).
5882
5887
5883 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5888 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5884 name of post-mortem files to IPython_crash_report.txt.
5889 name of post-mortem files to IPython_crash_report.txt.
5885
5890
5886 * Cleanup/update of the docs. Added all the new readline info and
5891 * Cleanup/update of the docs. Added all the new readline info and
5887 formatted all lists as 'real lists'.
5892 formatted all lists as 'real lists'.
5888
5893
5889 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5894 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5890 tab-completion options, since the full readline parse_and_bind is
5895 tab-completion options, since the full readline parse_and_bind is
5891 now accessible.
5896 now accessible.
5892
5897
5893 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5898 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5894 handling of readline options. Now users can specify any string to
5899 handling of readline options. Now users can specify any string to
5895 be passed to parse_and_bind(), as well as the delimiters to be
5900 be passed to parse_and_bind(), as well as the delimiters to be
5896 removed.
5901 removed.
5897 (InteractiveShell.__init__): Added __name__ to the global
5902 (InteractiveShell.__init__): Added __name__ to the global
5898 namespace so that things like Itpl which rely on its existence
5903 namespace so that things like Itpl which rely on its existence
5899 don't crash.
5904 don't crash.
5900 (InteractiveShell._prefilter): Defined the default with a _ so
5905 (InteractiveShell._prefilter): Defined the default with a _ so
5901 that prefilter() is easier to override, while the default one
5906 that prefilter() is easier to override, while the default one
5902 remains available.
5907 remains available.
5903
5908
5904 2002-04-18 Fernando Perez <fperez@colorado.edu>
5909 2002-04-18 Fernando Perez <fperez@colorado.edu>
5905
5910
5906 * Added information about pdb in the docs.
5911 * Added information about pdb in the docs.
5907
5912
5908 2002-04-17 Fernando Perez <fperez@colorado.edu>
5913 2002-04-17 Fernando Perez <fperez@colorado.edu>
5909
5914
5910 * IPython/ipmaker.py (make_IPython): added rc_override option to
5915 * IPython/ipmaker.py (make_IPython): added rc_override option to
5911 allow passing config options at creation time which may override
5916 allow passing config options at creation time which may override
5912 anything set in the config files or command line. This is
5917 anything set in the config files or command line. This is
5913 particularly useful for configuring embedded instances.
5918 particularly useful for configuring embedded instances.
5914
5919
5915 2002-04-15 Fernando Perez <fperez@colorado.edu>
5920 2002-04-15 Fernando Perez <fperez@colorado.edu>
5916
5921
5917 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5922 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5918 crash embedded instances because of the input cache falling out of
5923 crash embedded instances because of the input cache falling out of
5919 sync with the output counter.
5924 sync with the output counter.
5920
5925
5921 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5926 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5922 mode which calls pdb after an uncaught exception in IPython itself.
5927 mode which calls pdb after an uncaught exception in IPython itself.
5923
5928
5924 2002-04-14 Fernando Perez <fperez@colorado.edu>
5929 2002-04-14 Fernando Perez <fperez@colorado.edu>
5925
5930
5926 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5931 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5927 readline, fix it back after each call.
5932 readline, fix it back after each call.
5928
5933
5929 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5934 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5930 method to force all access via __call__(), which guarantees that
5935 method to force all access via __call__(), which guarantees that
5931 traceback references are properly deleted.
5936 traceback references are properly deleted.
5932
5937
5933 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5938 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5934 improve printing when pprint is in use.
5939 improve printing when pprint is in use.
5935
5940
5936 2002-04-13 Fernando Perez <fperez@colorado.edu>
5941 2002-04-13 Fernando Perez <fperez@colorado.edu>
5937
5942
5938 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5943 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5939 exceptions aren't caught anymore. If the user triggers one, he
5944 exceptions aren't caught anymore. If the user triggers one, he
5940 should know why he's doing it and it should go all the way up,
5945 should know why he's doing it and it should go all the way up,
5941 just like any other exception. So now @abort will fully kill the
5946 just like any other exception. So now @abort will fully kill the
5942 embedded interpreter and the embedding code (unless that happens
5947 embedded interpreter and the embedding code (unless that happens
5943 to catch SystemExit).
5948 to catch SystemExit).
5944
5949
5945 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5950 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5946 and a debugger() method to invoke the interactive pdb debugger
5951 and a debugger() method to invoke the interactive pdb debugger
5947 after printing exception information. Also added the corresponding
5952 after printing exception information. Also added the corresponding
5948 -pdb option and @pdb magic to control this feature, and updated
5953 -pdb option and @pdb magic to control this feature, and updated
5949 the docs. After a suggestion from Christopher Hart
5954 the docs. After a suggestion from Christopher Hart
5950 (hart-AT-caltech.edu).
5955 (hart-AT-caltech.edu).
5951
5956
5952 2002-04-12 Fernando Perez <fperez@colorado.edu>
5957 2002-04-12 Fernando Perez <fperez@colorado.edu>
5953
5958
5954 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5959 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5955 the exception handlers defined by the user (not the CrashHandler)
5960 the exception handlers defined by the user (not the CrashHandler)
5956 so that user exceptions don't trigger an ipython bug report.
5961 so that user exceptions don't trigger an ipython bug report.
5957
5962
5958 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5963 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5959 configurable (it should have always been so).
5964 configurable (it should have always been so).
5960
5965
5961 2002-03-26 Fernando Perez <fperez@colorado.edu>
5966 2002-03-26 Fernando Perez <fperez@colorado.edu>
5962
5967
5963 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5968 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5964 and there to fix embedding namespace issues. This should all be
5969 and there to fix embedding namespace issues. This should all be
5965 done in a more elegant way.
5970 done in a more elegant way.
5966
5971
5967 2002-03-25 Fernando Perez <fperez@colorado.edu>
5972 2002-03-25 Fernando Perez <fperez@colorado.edu>
5968
5973
5969 * IPython/genutils.py (get_home_dir): Try to make it work under
5974 * IPython/genutils.py (get_home_dir): Try to make it work under
5970 win9x also.
5975 win9x also.
5971
5976
5972 2002-03-20 Fernando Perez <fperez@colorado.edu>
5977 2002-03-20 Fernando Perez <fperez@colorado.edu>
5973
5978
5974 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5979 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5975 sys.displayhook untouched upon __init__.
5980 sys.displayhook untouched upon __init__.
5976
5981
5977 2002-03-19 Fernando Perez <fperez@colorado.edu>
5982 2002-03-19 Fernando Perez <fperez@colorado.edu>
5978
5983
5979 * Released 0.2.9 (for embedding bug, basically).
5984 * Released 0.2.9 (for embedding bug, basically).
5980
5985
5981 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5986 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5982 exceptions so that enclosing shell's state can be restored.
5987 exceptions so that enclosing shell's state can be restored.
5983
5988
5984 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5989 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5985 naming conventions in the .ipython/ dir.
5990 naming conventions in the .ipython/ dir.
5986
5991
5987 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5992 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5988 from delimiters list so filenames with - in them get expanded.
5993 from delimiters list so filenames with - in them get expanded.
5989
5994
5990 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5995 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5991 sys.displayhook not being properly restored after an embedded call.
5996 sys.displayhook not being properly restored after an embedded call.
5992
5997
5993 2002-03-18 Fernando Perez <fperez@colorado.edu>
5998 2002-03-18 Fernando Perez <fperez@colorado.edu>
5994
5999
5995 * Released 0.2.8
6000 * Released 0.2.8
5996
6001
5997 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6002 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5998 some files weren't being included in a -upgrade.
6003 some files weren't being included in a -upgrade.
5999 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6004 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6000 on' so that the first tab completes.
6005 on' so that the first tab completes.
6001 (InteractiveShell.handle_magic): fixed bug with spaces around
6006 (InteractiveShell.handle_magic): fixed bug with spaces around
6002 quotes breaking many magic commands.
6007 quotes breaking many magic commands.
6003
6008
6004 * setup.py: added note about ignoring the syntax error messages at
6009 * setup.py: added note about ignoring the syntax error messages at
6005 installation.
6010 installation.
6006
6011
6007 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6012 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6008 streamlining the gnuplot interface, now there's only one magic @gp.
6013 streamlining the gnuplot interface, now there's only one magic @gp.
6009
6014
6010 2002-03-17 Fernando Perez <fperez@colorado.edu>
6015 2002-03-17 Fernando Perez <fperez@colorado.edu>
6011
6016
6012 * IPython/UserConfig/magic_gnuplot.py: new name for the
6017 * IPython/UserConfig/magic_gnuplot.py: new name for the
6013 example-magic_pm.py file. Much enhanced system, now with a shell
6018 example-magic_pm.py file. Much enhanced system, now with a shell
6014 for communicating directly with gnuplot, one command at a time.
6019 for communicating directly with gnuplot, one command at a time.
6015
6020
6016 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6021 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6017 setting __name__=='__main__'.
6022 setting __name__=='__main__'.
6018
6023
6019 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6024 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6020 mini-shell for accessing gnuplot from inside ipython. Should
6025 mini-shell for accessing gnuplot from inside ipython. Should
6021 extend it later for grace access too. Inspired by Arnd's
6026 extend it later for grace access too. Inspired by Arnd's
6022 suggestion.
6027 suggestion.
6023
6028
6024 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6029 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6025 calling magic functions with () in their arguments. Thanks to Arnd
6030 calling magic functions with () in their arguments. Thanks to Arnd
6026 Baecker for pointing this to me.
6031 Baecker for pointing this to me.
6027
6032
6028 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6033 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6029 infinitely for integer or complex arrays (only worked with floats).
6034 infinitely for integer or complex arrays (only worked with floats).
6030
6035
6031 2002-03-16 Fernando Perez <fperez@colorado.edu>
6036 2002-03-16 Fernando Perez <fperez@colorado.edu>
6032
6037
6033 * setup.py: Merged setup and setup_windows into a single script
6038 * setup.py: Merged setup and setup_windows into a single script
6034 which properly handles things for windows users.
6039 which properly handles things for windows users.
6035
6040
6036 2002-03-15 Fernando Perez <fperez@colorado.edu>
6041 2002-03-15 Fernando Perez <fperez@colorado.edu>
6037
6042
6038 * Big change to the manual: now the magics are all automatically
6043 * Big change to the manual: now the magics are all automatically
6039 documented. This information is generated from their docstrings
6044 documented. This information is generated from their docstrings
6040 and put in a latex file included by the manual lyx file. This way
6045 and put in a latex file included by the manual lyx file. This way
6041 we get always up to date information for the magics. The manual
6046 we get always up to date information for the magics. The manual
6042 now also has proper version information, also auto-synced.
6047 now also has proper version information, also auto-synced.
6043
6048
6044 For this to work, an undocumented --magic_docstrings option was added.
6049 For this to work, an undocumented --magic_docstrings option was added.
6045
6050
6046 2002-03-13 Fernando Perez <fperez@colorado.edu>
6051 2002-03-13 Fernando Perez <fperez@colorado.edu>
6047
6052
6048 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6053 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6049 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6054 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6050
6055
6051 2002-03-12 Fernando Perez <fperez@colorado.edu>
6056 2002-03-12 Fernando Perez <fperez@colorado.edu>
6052
6057
6053 * IPython/ultraTB.py (TermColors): changed color escapes again to
6058 * IPython/ultraTB.py (TermColors): changed color escapes again to
6054 fix the (old, reintroduced) line-wrapping bug. Basically, if
6059 fix the (old, reintroduced) line-wrapping bug. Basically, if
6055 \001..\002 aren't given in the color escapes, lines get wrapped
6060 \001..\002 aren't given in the color escapes, lines get wrapped
6056 weirdly. But giving those screws up old xterms and emacs terms. So
6061 weirdly. But giving those screws up old xterms and emacs terms. So
6057 I added some logic for emacs terms to be ok, but I can't identify old
6062 I added some logic for emacs terms to be ok, but I can't identify old
6058 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6063 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6059
6064
6060 2002-03-10 Fernando Perez <fperez@colorado.edu>
6065 2002-03-10 Fernando Perez <fperez@colorado.edu>
6061
6066
6062 * IPython/usage.py (__doc__): Various documentation cleanups and
6067 * IPython/usage.py (__doc__): Various documentation cleanups and
6063 updates, both in usage docstrings and in the manual.
6068 updates, both in usage docstrings and in the manual.
6064
6069
6065 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6070 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6066 handling of caching. Set minimum acceptabe value for having a
6071 handling of caching. Set minimum acceptabe value for having a
6067 cache at 20 values.
6072 cache at 20 values.
6068
6073
6069 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6074 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6070 install_first_time function to a method, renamed it and added an
6075 install_first_time function to a method, renamed it and added an
6071 'upgrade' mode. Now people can update their config directory with
6076 'upgrade' mode. Now people can update their config directory with
6072 a simple command line switch (-upgrade, also new).
6077 a simple command line switch (-upgrade, also new).
6073
6078
6074 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6079 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6075 @file (convenient for automagic users under Python >= 2.2).
6080 @file (convenient for automagic users under Python >= 2.2).
6076 Removed @files (it seemed more like a plural than an abbrev. of
6081 Removed @files (it seemed more like a plural than an abbrev. of
6077 'file show').
6082 'file show').
6078
6083
6079 * IPython/iplib.py (install_first_time): Fixed crash if there were
6084 * IPython/iplib.py (install_first_time): Fixed crash if there were
6080 backup files ('~') in .ipython/ install directory.
6085 backup files ('~') in .ipython/ install directory.
6081
6086
6082 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6087 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6083 system. Things look fine, but these changes are fairly
6088 system. Things look fine, but these changes are fairly
6084 intrusive. Test them for a few days.
6089 intrusive. Test them for a few days.
6085
6090
6086 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6091 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6087 the prompts system. Now all in/out prompt strings are user
6092 the prompts system. Now all in/out prompt strings are user
6088 controllable. This is particularly useful for embedding, as one
6093 controllable. This is particularly useful for embedding, as one
6089 can tag embedded instances with particular prompts.
6094 can tag embedded instances with particular prompts.
6090
6095
6091 Also removed global use of sys.ps1/2, which now allows nested
6096 Also removed global use of sys.ps1/2, which now allows nested
6092 embeddings without any problems. Added command-line options for
6097 embeddings without any problems. Added command-line options for
6093 the prompt strings.
6098 the prompt strings.
6094
6099
6095 2002-03-08 Fernando Perez <fperez@colorado.edu>
6100 2002-03-08 Fernando Perez <fperez@colorado.edu>
6096
6101
6097 * IPython/UserConfig/example-embed-short.py (ipshell): added
6102 * IPython/UserConfig/example-embed-short.py (ipshell): added
6098 example file with the bare minimum code for embedding.
6103 example file with the bare minimum code for embedding.
6099
6104
6100 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6105 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6101 functionality for the embeddable shell to be activated/deactivated
6106 functionality for the embeddable shell to be activated/deactivated
6102 either globally or at each call.
6107 either globally or at each call.
6103
6108
6104 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6109 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6105 rewriting the prompt with '--->' for auto-inputs with proper
6110 rewriting the prompt with '--->' for auto-inputs with proper
6106 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6111 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6107 this is handled by the prompts class itself, as it should.
6112 this is handled by the prompts class itself, as it should.
6108
6113
6109 2002-03-05 Fernando Perez <fperez@colorado.edu>
6114 2002-03-05 Fernando Perez <fperez@colorado.edu>
6110
6115
6111 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6116 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6112 @logstart to avoid name clashes with the math log function.
6117 @logstart to avoid name clashes with the math log function.
6113
6118
6114 * Big updates to X/Emacs section of the manual.
6119 * Big updates to X/Emacs section of the manual.
6115
6120
6116 * Removed ipython_emacs. Milan explained to me how to pass
6121 * Removed ipython_emacs. Milan explained to me how to pass
6117 arguments to ipython through Emacs. Some day I'm going to end up
6122 arguments to ipython through Emacs. Some day I'm going to end up
6118 learning some lisp...
6123 learning some lisp...
6119
6124
6120 2002-03-04 Fernando Perez <fperez@colorado.edu>
6125 2002-03-04 Fernando Perez <fperez@colorado.edu>
6121
6126
6122 * IPython/ipython_emacs: Created script to be used as the
6127 * IPython/ipython_emacs: Created script to be used as the
6123 py-python-command Emacs variable so we can pass IPython
6128 py-python-command Emacs variable so we can pass IPython
6124 parameters. I can't figure out how to tell Emacs directly to pass
6129 parameters. I can't figure out how to tell Emacs directly to pass
6125 parameters to IPython, so a dummy shell script will do it.
6130 parameters to IPython, so a dummy shell script will do it.
6126
6131
6127 Other enhancements made for things to work better under Emacs'
6132 Other enhancements made for things to work better under Emacs'
6128 various types of terminals. Many thanks to Milan Zamazal
6133 various types of terminals. Many thanks to Milan Zamazal
6129 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6134 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6130
6135
6131 2002-03-01 Fernando Perez <fperez@colorado.edu>
6136 2002-03-01 Fernando Perez <fperez@colorado.edu>
6132
6137
6133 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6138 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6134 that loading of readline is now optional. This gives better
6139 that loading of readline is now optional. This gives better
6135 control to emacs users.
6140 control to emacs users.
6136
6141
6137 * IPython/ultraTB.py (__date__): Modified color escape sequences
6142 * IPython/ultraTB.py (__date__): Modified color escape sequences
6138 and now things work fine under xterm and in Emacs' term buffers
6143 and now things work fine under xterm and in Emacs' term buffers
6139 (though not shell ones). Well, in emacs you get colors, but all
6144 (though not shell ones). Well, in emacs you get colors, but all
6140 seem to be 'light' colors (no difference between dark and light
6145 seem to be 'light' colors (no difference between dark and light
6141 ones). But the garbage chars are gone, and also in xterms. It
6146 ones). But the garbage chars are gone, and also in xterms. It
6142 seems that now I'm using 'cleaner' ansi sequences.
6147 seems that now I'm using 'cleaner' ansi sequences.
6143
6148
6144 2002-02-21 Fernando Perez <fperez@colorado.edu>
6149 2002-02-21 Fernando Perez <fperez@colorado.edu>
6145
6150
6146 * Released 0.2.7 (mainly to publish the scoping fix).
6151 * Released 0.2.7 (mainly to publish the scoping fix).
6147
6152
6148 * IPython/Logger.py (Logger.logstate): added. A corresponding
6153 * IPython/Logger.py (Logger.logstate): added. A corresponding
6149 @logstate magic was created.
6154 @logstate magic was created.
6150
6155
6151 * IPython/Magic.py: fixed nested scoping problem under Python
6156 * IPython/Magic.py: fixed nested scoping problem under Python
6152 2.1.x (automagic wasn't working).
6157 2.1.x (automagic wasn't working).
6153
6158
6154 2002-02-20 Fernando Perez <fperez@colorado.edu>
6159 2002-02-20 Fernando Perez <fperez@colorado.edu>
6155
6160
6156 * Released 0.2.6.
6161 * Released 0.2.6.
6157
6162
6158 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6163 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6159 option so that logs can come out without any headers at all.
6164 option so that logs can come out without any headers at all.
6160
6165
6161 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6166 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6162 SciPy.
6167 SciPy.
6163
6168
6164 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6169 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6165 that embedded IPython calls don't require vars() to be explicitly
6170 that embedded IPython calls don't require vars() to be explicitly
6166 passed. Now they are extracted from the caller's frame (code
6171 passed. Now they are extracted from the caller's frame (code
6167 snatched from Eric Jones' weave). Added better documentation to
6172 snatched from Eric Jones' weave). Added better documentation to
6168 the section on embedding and the example file.
6173 the section on embedding and the example file.
6169
6174
6170 * IPython/genutils.py (page): Changed so that under emacs, it just
6175 * IPython/genutils.py (page): Changed so that under emacs, it just
6171 prints the string. You can then page up and down in the emacs
6176 prints the string. You can then page up and down in the emacs
6172 buffer itself. This is how the builtin help() works.
6177 buffer itself. This is how the builtin help() works.
6173
6178
6174 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6179 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6175 macro scoping: macros need to be executed in the user's namespace
6180 macro scoping: macros need to be executed in the user's namespace
6176 to work as if they had been typed by the user.
6181 to work as if they had been typed by the user.
6177
6182
6178 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6183 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6179 execute automatically (no need to type 'exec...'). They then
6184 execute automatically (no need to type 'exec...'). They then
6180 behave like 'true macros'. The printing system was also modified
6185 behave like 'true macros'. The printing system was also modified
6181 for this to work.
6186 for this to work.
6182
6187
6183 2002-02-19 Fernando Perez <fperez@colorado.edu>
6188 2002-02-19 Fernando Perez <fperez@colorado.edu>
6184
6189
6185 * IPython/genutils.py (page_file): new function for paging files
6190 * IPython/genutils.py (page_file): new function for paging files
6186 in an OS-independent way. Also necessary for file viewing to work
6191 in an OS-independent way. Also necessary for file viewing to work
6187 well inside Emacs buffers.
6192 well inside Emacs buffers.
6188 (page): Added checks for being in an emacs buffer.
6193 (page): Added checks for being in an emacs buffer.
6189 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6194 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6190 same bug in iplib.
6195 same bug in iplib.
6191
6196
6192 2002-02-18 Fernando Perez <fperez@colorado.edu>
6197 2002-02-18 Fernando Perez <fperez@colorado.edu>
6193
6198
6194 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6199 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6195 of readline so that IPython can work inside an Emacs buffer.
6200 of readline so that IPython can work inside an Emacs buffer.
6196
6201
6197 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6202 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6198 method signatures (they weren't really bugs, but it looks cleaner
6203 method signatures (they weren't really bugs, but it looks cleaner
6199 and keeps PyChecker happy).
6204 and keeps PyChecker happy).
6200
6205
6201 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6206 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6202 for implementing various user-defined hooks. Currently only
6207 for implementing various user-defined hooks. Currently only
6203 display is done.
6208 display is done.
6204
6209
6205 * IPython/Prompts.py (CachedOutput._display): changed display
6210 * IPython/Prompts.py (CachedOutput._display): changed display
6206 functions so that they can be dynamically changed by users easily.
6211 functions so that they can be dynamically changed by users easily.
6207
6212
6208 * IPython/Extensions/numeric_formats.py (num_display): added an
6213 * IPython/Extensions/numeric_formats.py (num_display): added an
6209 extension for printing NumPy arrays in flexible manners. It
6214 extension for printing NumPy arrays in flexible manners. It
6210 doesn't do anything yet, but all the structure is in
6215 doesn't do anything yet, but all the structure is in
6211 place. Ultimately the plan is to implement output format control
6216 place. Ultimately the plan is to implement output format control
6212 like in Octave.
6217 like in Octave.
6213
6218
6214 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6219 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6215 methods are found at run-time by all the automatic machinery.
6220 methods are found at run-time by all the automatic machinery.
6216
6221
6217 2002-02-17 Fernando Perez <fperez@colorado.edu>
6222 2002-02-17 Fernando Perez <fperez@colorado.edu>
6218
6223
6219 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6224 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6220 whole file a little.
6225 whole file a little.
6221
6226
6222 * ToDo: closed this document. Now there's a new_design.lyx
6227 * ToDo: closed this document. Now there's a new_design.lyx
6223 document for all new ideas. Added making a pdf of it for the
6228 document for all new ideas. Added making a pdf of it for the
6224 end-user distro.
6229 end-user distro.
6225
6230
6226 * IPython/Logger.py (Logger.switch_log): Created this to replace
6231 * IPython/Logger.py (Logger.switch_log): Created this to replace
6227 logon() and logoff(). It also fixes a nasty crash reported by
6232 logon() and logoff(). It also fixes a nasty crash reported by
6228 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6233 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6229
6234
6230 * IPython/iplib.py (complete): got auto-completion to work with
6235 * IPython/iplib.py (complete): got auto-completion to work with
6231 automagic (I had wanted this for a long time).
6236 automagic (I had wanted this for a long time).
6232
6237
6233 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6238 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6234 to @file, since file() is now a builtin and clashes with automagic
6239 to @file, since file() is now a builtin and clashes with automagic
6235 for @file.
6240 for @file.
6236
6241
6237 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6242 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6238 of this was previously in iplib, which had grown to more than 2000
6243 of this was previously in iplib, which had grown to more than 2000
6239 lines, way too long. No new functionality, but it makes managing
6244 lines, way too long. No new functionality, but it makes managing
6240 the code a bit easier.
6245 the code a bit easier.
6241
6246
6242 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6247 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6243 information to crash reports.
6248 information to crash reports.
6244
6249
6245 2002-02-12 Fernando Perez <fperez@colorado.edu>
6250 2002-02-12 Fernando Perez <fperez@colorado.edu>
6246
6251
6247 * Released 0.2.5.
6252 * Released 0.2.5.
6248
6253
6249 2002-02-11 Fernando Perez <fperez@colorado.edu>
6254 2002-02-11 Fernando Perez <fperez@colorado.edu>
6250
6255
6251 * Wrote a relatively complete Windows installer. It puts
6256 * Wrote a relatively complete Windows installer. It puts
6252 everything in place, creates Start Menu entries and fixes the
6257 everything in place, creates Start Menu entries and fixes the
6253 color issues. Nothing fancy, but it works.
6258 color issues. Nothing fancy, but it works.
6254
6259
6255 2002-02-10 Fernando Perez <fperez@colorado.edu>
6260 2002-02-10 Fernando Perez <fperez@colorado.edu>
6256
6261
6257 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6262 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6258 os.path.expanduser() call so that we can type @run ~/myfile.py and
6263 os.path.expanduser() call so that we can type @run ~/myfile.py and
6259 have thigs work as expected.
6264 have thigs work as expected.
6260
6265
6261 * IPython/genutils.py (page): fixed exception handling so things
6266 * IPython/genutils.py (page): fixed exception handling so things
6262 work both in Unix and Windows correctly. Quitting a pager triggers
6267 work both in Unix and Windows correctly. Quitting a pager triggers
6263 an IOError/broken pipe in Unix, and in windows not finding a pager
6268 an IOError/broken pipe in Unix, and in windows not finding a pager
6264 is also an IOError, so I had to actually look at the return value
6269 is also an IOError, so I had to actually look at the return value
6265 of the exception, not just the exception itself. Should be ok now.
6270 of the exception, not just the exception itself. Should be ok now.
6266
6271
6267 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6272 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6268 modified to allow case-insensitive color scheme changes.
6273 modified to allow case-insensitive color scheme changes.
6269
6274
6270 2002-02-09 Fernando Perez <fperez@colorado.edu>
6275 2002-02-09 Fernando Perez <fperez@colorado.edu>
6271
6276
6272 * IPython/genutils.py (native_line_ends): new function to leave
6277 * IPython/genutils.py (native_line_ends): new function to leave
6273 user config files with os-native line-endings.
6278 user config files with os-native line-endings.
6274
6279
6275 * README and manual updates.
6280 * README and manual updates.
6276
6281
6277 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6282 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6278 instead of StringType to catch Unicode strings.
6283 instead of StringType to catch Unicode strings.
6279
6284
6280 * IPython/genutils.py (filefind): fixed bug for paths with
6285 * IPython/genutils.py (filefind): fixed bug for paths with
6281 embedded spaces (very common in Windows).
6286 embedded spaces (very common in Windows).
6282
6287
6283 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6288 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6284 files under Windows, so that they get automatically associated
6289 files under Windows, so that they get automatically associated
6285 with a text editor. Windows makes it a pain to handle
6290 with a text editor. Windows makes it a pain to handle
6286 extension-less files.
6291 extension-less files.
6287
6292
6288 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6293 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6289 warning about readline only occur for Posix. In Windows there's no
6294 warning about readline only occur for Posix. In Windows there's no
6290 way to get readline, so why bother with the warning.
6295 way to get readline, so why bother with the warning.
6291
6296
6292 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6297 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6293 for __str__ instead of dir(self), since dir() changed in 2.2.
6298 for __str__ instead of dir(self), since dir() changed in 2.2.
6294
6299
6295 * Ported to Windows! Tested on XP, I suspect it should work fine
6300 * Ported to Windows! Tested on XP, I suspect it should work fine
6296 on NT/2000, but I don't think it will work on 98 et al. That
6301 on NT/2000, but I don't think it will work on 98 et al. That
6297 series of Windows is such a piece of junk anyway that I won't try
6302 series of Windows is such a piece of junk anyway that I won't try
6298 porting it there. The XP port was straightforward, showed a few
6303 porting it there. The XP port was straightforward, showed a few
6299 bugs here and there (fixed all), in particular some string
6304 bugs here and there (fixed all), in particular some string
6300 handling stuff which required considering Unicode strings (which
6305 handling stuff which required considering Unicode strings (which
6301 Windows uses). This is good, but hasn't been too tested :) No
6306 Windows uses). This is good, but hasn't been too tested :) No
6302 fancy installer yet, I'll put a note in the manual so people at
6307 fancy installer yet, I'll put a note in the manual so people at
6303 least make manually a shortcut.
6308 least make manually a shortcut.
6304
6309
6305 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6310 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6306 into a single one, "colors". This now controls both prompt and
6311 into a single one, "colors". This now controls both prompt and
6307 exception color schemes, and can be changed both at startup
6312 exception color schemes, and can be changed both at startup
6308 (either via command-line switches or via ipythonrc files) and at
6313 (either via command-line switches or via ipythonrc files) and at
6309 runtime, with @colors.
6314 runtime, with @colors.
6310 (Magic.magic_run): renamed @prun to @run and removed the old
6315 (Magic.magic_run): renamed @prun to @run and removed the old
6311 @run. The two were too similar to warrant keeping both.
6316 @run. The two were too similar to warrant keeping both.
6312
6317
6313 2002-02-03 Fernando Perez <fperez@colorado.edu>
6318 2002-02-03 Fernando Perez <fperez@colorado.edu>
6314
6319
6315 * IPython/iplib.py (install_first_time): Added comment on how to
6320 * IPython/iplib.py (install_first_time): Added comment on how to
6316 configure the color options for first-time users. Put a <return>
6321 configure the color options for first-time users. Put a <return>
6317 request at the end so that small-terminal users get a chance to
6322 request at the end so that small-terminal users get a chance to
6318 read the startup info.
6323 read the startup info.
6319
6324
6320 2002-01-23 Fernando Perez <fperez@colorado.edu>
6325 2002-01-23 Fernando Perez <fperez@colorado.edu>
6321
6326
6322 * IPython/iplib.py (CachedOutput.update): Changed output memory
6327 * IPython/iplib.py (CachedOutput.update): Changed output memory
6323 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6328 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6324 input history we still use _i. Did this b/c these variable are
6329 input history we still use _i. Did this b/c these variable are
6325 very commonly used in interactive work, so the less we need to
6330 very commonly used in interactive work, so the less we need to
6326 type the better off we are.
6331 type the better off we are.
6327 (Magic.magic_prun): updated @prun to better handle the namespaces
6332 (Magic.magic_prun): updated @prun to better handle the namespaces
6328 the file will run in, including a fix for __name__ not being set
6333 the file will run in, including a fix for __name__ not being set
6329 before.
6334 before.
6330
6335
6331 2002-01-20 Fernando Perez <fperez@colorado.edu>
6336 2002-01-20 Fernando Perez <fperez@colorado.edu>
6332
6337
6333 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6338 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6334 extra garbage for Python 2.2. Need to look more carefully into
6339 extra garbage for Python 2.2. Need to look more carefully into
6335 this later.
6340 this later.
6336
6341
6337 2002-01-19 Fernando Perez <fperez@colorado.edu>
6342 2002-01-19 Fernando Perez <fperez@colorado.edu>
6338
6343
6339 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6344 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6340 display SyntaxError exceptions properly formatted when they occur
6345 display SyntaxError exceptions properly formatted when they occur
6341 (they can be triggered by imported code).
6346 (they can be triggered by imported code).
6342
6347
6343 2002-01-18 Fernando Perez <fperez@colorado.edu>
6348 2002-01-18 Fernando Perez <fperez@colorado.edu>
6344
6349
6345 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6350 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6346 SyntaxError exceptions are reported nicely formatted, instead of
6351 SyntaxError exceptions are reported nicely formatted, instead of
6347 spitting out only offset information as before.
6352 spitting out only offset information as before.
6348 (Magic.magic_prun): Added the @prun function for executing
6353 (Magic.magic_prun): Added the @prun function for executing
6349 programs with command line args inside IPython.
6354 programs with command line args inside IPython.
6350
6355
6351 2002-01-16 Fernando Perez <fperez@colorado.edu>
6356 2002-01-16 Fernando Perez <fperez@colorado.edu>
6352
6357
6353 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6358 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6354 to *not* include the last item given in a range. This brings their
6359 to *not* include the last item given in a range. This brings their
6355 behavior in line with Python's slicing:
6360 behavior in line with Python's slicing:
6356 a[n1:n2] -> a[n1]...a[n2-1]
6361 a[n1:n2] -> a[n1]...a[n2-1]
6357 It may be a bit less convenient, but I prefer to stick to Python's
6362 It may be a bit less convenient, but I prefer to stick to Python's
6358 conventions *everywhere*, so users never have to wonder.
6363 conventions *everywhere*, so users never have to wonder.
6359 (Magic.magic_macro): Added @macro function to ease the creation of
6364 (Magic.magic_macro): Added @macro function to ease the creation of
6360 macros.
6365 macros.
6361
6366
6362 2002-01-05 Fernando Perez <fperez@colorado.edu>
6367 2002-01-05 Fernando Perez <fperez@colorado.edu>
6363
6368
6364 * Released 0.2.4.
6369 * Released 0.2.4.
6365
6370
6366 * IPython/iplib.py (Magic.magic_pdef):
6371 * IPython/iplib.py (Magic.magic_pdef):
6367 (InteractiveShell.safe_execfile): report magic lines and error
6372 (InteractiveShell.safe_execfile): report magic lines and error
6368 lines without line numbers so one can easily copy/paste them for
6373 lines without line numbers so one can easily copy/paste them for
6369 re-execution.
6374 re-execution.
6370
6375
6371 * Updated manual with recent changes.
6376 * Updated manual with recent changes.
6372
6377
6373 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6378 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6374 docstring printing when class? is called. Very handy for knowing
6379 docstring printing when class? is called. Very handy for knowing
6375 how to create class instances (as long as __init__ is well
6380 how to create class instances (as long as __init__ is well
6376 documented, of course :)
6381 documented, of course :)
6377 (Magic.magic_doc): print both class and constructor docstrings.
6382 (Magic.magic_doc): print both class and constructor docstrings.
6378 (Magic.magic_pdef): give constructor info if passed a class and
6383 (Magic.magic_pdef): give constructor info if passed a class and
6379 __call__ info for callable object instances.
6384 __call__ info for callable object instances.
6380
6385
6381 2002-01-04 Fernando Perez <fperez@colorado.edu>
6386 2002-01-04 Fernando Perez <fperez@colorado.edu>
6382
6387
6383 * Made deep_reload() off by default. It doesn't always work
6388 * Made deep_reload() off by default. It doesn't always work
6384 exactly as intended, so it's probably safer to have it off. It's
6389 exactly as intended, so it's probably safer to have it off. It's
6385 still available as dreload() anyway, so nothing is lost.
6390 still available as dreload() anyway, so nothing is lost.
6386
6391
6387 2002-01-02 Fernando Perez <fperez@colorado.edu>
6392 2002-01-02 Fernando Perez <fperez@colorado.edu>
6388
6393
6389 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6394 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6390 so I wanted an updated release).
6395 so I wanted an updated release).
6391
6396
6392 2001-12-27 Fernando Perez <fperez@colorado.edu>
6397 2001-12-27 Fernando Perez <fperez@colorado.edu>
6393
6398
6394 * IPython/iplib.py (InteractiveShell.interact): Added the original
6399 * IPython/iplib.py (InteractiveShell.interact): Added the original
6395 code from 'code.py' for this module in order to change the
6400 code from 'code.py' for this module in order to change the
6396 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6401 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6397 the history cache would break when the user hit Ctrl-C, and
6402 the history cache would break when the user hit Ctrl-C, and
6398 interact() offers no way to add any hooks to it.
6403 interact() offers no way to add any hooks to it.
6399
6404
6400 2001-12-23 Fernando Perez <fperez@colorado.edu>
6405 2001-12-23 Fernando Perez <fperez@colorado.edu>
6401
6406
6402 * setup.py: added check for 'MANIFEST' before trying to remove
6407 * setup.py: added check for 'MANIFEST' before trying to remove
6403 it. Thanks to Sean Reifschneider.
6408 it. Thanks to Sean Reifschneider.
6404
6409
6405 2001-12-22 Fernando Perez <fperez@colorado.edu>
6410 2001-12-22 Fernando Perez <fperez@colorado.edu>
6406
6411
6407 * Released 0.2.2.
6412 * Released 0.2.2.
6408
6413
6409 * Finished (reasonably) writing the manual. Later will add the
6414 * Finished (reasonably) writing the manual. Later will add the
6410 python-standard navigation stylesheets, but for the time being
6415 python-standard navigation stylesheets, but for the time being
6411 it's fairly complete. Distribution will include html and pdf
6416 it's fairly complete. Distribution will include html and pdf
6412 versions.
6417 versions.
6413
6418
6414 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6419 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6415 (MayaVi author).
6420 (MayaVi author).
6416
6421
6417 2001-12-21 Fernando Perez <fperez@colorado.edu>
6422 2001-12-21 Fernando Perez <fperez@colorado.edu>
6418
6423
6419 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6424 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6420 good public release, I think (with the manual and the distutils
6425 good public release, I think (with the manual and the distutils
6421 installer). The manual can use some work, but that can go
6426 installer). The manual can use some work, but that can go
6422 slowly. Otherwise I think it's quite nice for end users. Next
6427 slowly. Otherwise I think it's quite nice for end users. Next
6423 summer, rewrite the guts of it...
6428 summer, rewrite the guts of it...
6424
6429
6425 * Changed format of ipythonrc files to use whitespace as the
6430 * Changed format of ipythonrc files to use whitespace as the
6426 separator instead of an explicit '='. Cleaner.
6431 separator instead of an explicit '='. Cleaner.
6427
6432
6428 2001-12-20 Fernando Perez <fperez@colorado.edu>
6433 2001-12-20 Fernando Perez <fperez@colorado.edu>
6429
6434
6430 * Started a manual in LyX. For now it's just a quick merge of the
6435 * Started a manual in LyX. For now it's just a quick merge of the
6431 various internal docstrings and READMEs. Later it may grow into a
6436 various internal docstrings and READMEs. Later it may grow into a
6432 nice, full-blown manual.
6437 nice, full-blown manual.
6433
6438
6434 * Set up a distutils based installer. Installation should now be
6439 * Set up a distutils based installer. Installation should now be
6435 trivially simple for end-users.
6440 trivially simple for end-users.
6436
6441
6437 2001-12-11 Fernando Perez <fperez@colorado.edu>
6442 2001-12-11 Fernando Perez <fperez@colorado.edu>
6438
6443
6439 * Released 0.2.0. First public release, announced it at
6444 * Released 0.2.0. First public release, announced it at
6440 comp.lang.python. From now on, just bugfixes...
6445 comp.lang.python. From now on, just bugfixes...
6441
6446
6442 * Went through all the files, set copyright/license notices and
6447 * Went through all the files, set copyright/license notices and
6443 cleaned up things. Ready for release.
6448 cleaned up things. Ready for release.
6444
6449
6445 2001-12-10 Fernando Perez <fperez@colorado.edu>
6450 2001-12-10 Fernando Perez <fperez@colorado.edu>
6446
6451
6447 * Changed the first-time installer not to use tarfiles. It's more
6452 * Changed the first-time installer not to use tarfiles. It's more
6448 robust now and less unix-dependent. Also makes it easier for
6453 robust now and less unix-dependent. Also makes it easier for
6449 people to later upgrade versions.
6454 people to later upgrade versions.
6450
6455
6451 * Changed @exit to @abort to reflect the fact that it's pretty
6456 * Changed @exit to @abort to reflect the fact that it's pretty
6452 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6457 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6453 becomes significant only when IPyhton is embedded: in that case,
6458 becomes significant only when IPyhton is embedded: in that case,
6454 C-D closes IPython only, but @abort kills the enclosing program
6459 C-D closes IPython only, but @abort kills the enclosing program
6455 too (unless it had called IPython inside a try catching
6460 too (unless it had called IPython inside a try catching
6456 SystemExit).
6461 SystemExit).
6457
6462
6458 * Created Shell module which exposes the actuall IPython Shell
6463 * Created Shell module which exposes the actuall IPython Shell
6459 classes, currently the normal and the embeddable one. This at
6464 classes, currently the normal and the embeddable one. This at
6460 least offers a stable interface we won't need to change when
6465 least offers a stable interface we won't need to change when
6461 (later) the internals are rewritten. That rewrite will be confined
6466 (later) the internals are rewritten. That rewrite will be confined
6462 to iplib and ipmaker, but the Shell interface should remain as is.
6467 to iplib and ipmaker, but the Shell interface should remain as is.
6463
6468
6464 * Added embed module which offers an embeddable IPShell object,
6469 * Added embed module which offers an embeddable IPShell object,
6465 useful to fire up IPython *inside* a running program. Great for
6470 useful to fire up IPython *inside* a running program. Great for
6466 debugging or dynamical data analysis.
6471 debugging or dynamical data analysis.
6467
6472
6468 2001-12-08 Fernando Perez <fperez@colorado.edu>
6473 2001-12-08 Fernando Perez <fperez@colorado.edu>
6469
6474
6470 * Fixed small bug preventing seeing info from methods of defined
6475 * Fixed small bug preventing seeing info from methods of defined
6471 objects (incorrect namespace in _ofind()).
6476 objects (incorrect namespace in _ofind()).
6472
6477
6473 * Documentation cleanup. Moved the main usage docstrings to a
6478 * Documentation cleanup. Moved the main usage docstrings to a
6474 separate file, usage.py (cleaner to maintain, and hopefully in the
6479 separate file, usage.py (cleaner to maintain, and hopefully in the
6475 future some perlpod-like way of producing interactive, man and
6480 future some perlpod-like way of producing interactive, man and
6476 html docs out of it will be found).
6481 html docs out of it will be found).
6477
6482
6478 * Added @profile to see your profile at any time.
6483 * Added @profile to see your profile at any time.
6479
6484
6480 * Added @p as an alias for 'print'. It's especially convenient if
6485 * Added @p as an alias for 'print'. It's especially convenient if
6481 using automagic ('p x' prints x).
6486 using automagic ('p x' prints x).
6482
6487
6483 * Small cleanups and fixes after a pychecker run.
6488 * Small cleanups and fixes after a pychecker run.
6484
6489
6485 * Changed the @cd command to handle @cd - and @cd -<n> for
6490 * Changed the @cd command to handle @cd - and @cd -<n> for
6486 visiting any directory in _dh.
6491 visiting any directory in _dh.
6487
6492
6488 * Introduced _dh, a history of visited directories. @dhist prints
6493 * Introduced _dh, a history of visited directories. @dhist prints
6489 it out with numbers.
6494 it out with numbers.
6490
6495
6491 2001-12-07 Fernando Perez <fperez@colorado.edu>
6496 2001-12-07 Fernando Perez <fperez@colorado.edu>
6492
6497
6493 * Released 0.1.22
6498 * Released 0.1.22
6494
6499
6495 * Made initialization a bit more robust against invalid color
6500 * Made initialization a bit more robust against invalid color
6496 options in user input (exit, not traceback-crash).
6501 options in user input (exit, not traceback-crash).
6497
6502
6498 * Changed the bug crash reporter to write the report only in the
6503 * Changed the bug crash reporter to write the report only in the
6499 user's .ipython directory. That way IPython won't litter people's
6504 user's .ipython directory. That way IPython won't litter people's
6500 hard disks with crash files all over the place. Also print on
6505 hard disks with crash files all over the place. Also print on
6501 screen the necessary mail command.
6506 screen the necessary mail command.
6502
6507
6503 * With the new ultraTB, implemented LightBG color scheme for light
6508 * With the new ultraTB, implemented LightBG color scheme for light
6504 background terminals. A lot of people like white backgrounds, so I
6509 background terminals. A lot of people like white backgrounds, so I
6505 guess we should at least give them something readable.
6510 guess we should at least give them something readable.
6506
6511
6507 2001-12-06 Fernando Perez <fperez@colorado.edu>
6512 2001-12-06 Fernando Perez <fperez@colorado.edu>
6508
6513
6509 * Modified the structure of ultraTB. Now there's a proper class
6514 * Modified the structure of ultraTB. Now there's a proper class
6510 for tables of color schemes which allow adding schemes easily and
6515 for tables of color schemes which allow adding schemes easily and
6511 switching the active scheme without creating a new instance every
6516 switching the active scheme without creating a new instance every
6512 time (which was ridiculous). The syntax for creating new schemes
6517 time (which was ridiculous). The syntax for creating new schemes
6513 is also cleaner. I think ultraTB is finally done, with a clean
6518 is also cleaner. I think ultraTB is finally done, with a clean
6514 class structure. Names are also much cleaner (now there's proper
6519 class structure. Names are also much cleaner (now there's proper
6515 color tables, no need for every variable to also have 'color' in
6520 color tables, no need for every variable to also have 'color' in
6516 its name).
6521 its name).
6517
6522
6518 * Broke down genutils into separate files. Now genutils only
6523 * Broke down genutils into separate files. Now genutils only
6519 contains utility functions, and classes have been moved to their
6524 contains utility functions, and classes have been moved to their
6520 own files (they had enough independent functionality to warrant
6525 own files (they had enough independent functionality to warrant
6521 it): ConfigLoader, OutputTrap, Struct.
6526 it): ConfigLoader, OutputTrap, Struct.
6522
6527
6523 2001-12-05 Fernando Perez <fperez@colorado.edu>
6528 2001-12-05 Fernando Perez <fperez@colorado.edu>
6524
6529
6525 * IPython turns 21! Released version 0.1.21, as a candidate for
6530 * IPython turns 21! Released version 0.1.21, as a candidate for
6526 public consumption. If all goes well, release in a few days.
6531 public consumption. If all goes well, release in a few days.
6527
6532
6528 * Fixed path bug (files in Extensions/ directory wouldn't be found
6533 * Fixed path bug (files in Extensions/ directory wouldn't be found
6529 unless IPython/ was explicitly in sys.path).
6534 unless IPython/ was explicitly in sys.path).
6530
6535
6531 * Extended the FlexCompleter class as MagicCompleter to allow
6536 * Extended the FlexCompleter class as MagicCompleter to allow
6532 completion of @-starting lines.
6537 completion of @-starting lines.
6533
6538
6534 * Created __release__.py file as a central repository for release
6539 * Created __release__.py file as a central repository for release
6535 info that other files can read from.
6540 info that other files can read from.
6536
6541
6537 * Fixed small bug in logging: when logging was turned on in
6542 * Fixed small bug in logging: when logging was turned on in
6538 mid-session, old lines with special meanings (!@?) were being
6543 mid-session, old lines with special meanings (!@?) were being
6539 logged without the prepended comment, which is necessary since
6544 logged without the prepended comment, which is necessary since
6540 they are not truly valid python syntax. This should make session
6545 they are not truly valid python syntax. This should make session
6541 restores produce less errors.
6546 restores produce less errors.
6542
6547
6543 * The namespace cleanup forced me to make a FlexCompleter class
6548 * The namespace cleanup forced me to make a FlexCompleter class
6544 which is nothing but a ripoff of rlcompleter, but with selectable
6549 which is nothing but a ripoff of rlcompleter, but with selectable
6545 namespace (rlcompleter only works in __main__.__dict__). I'll try
6550 namespace (rlcompleter only works in __main__.__dict__). I'll try
6546 to submit a note to the authors to see if this change can be
6551 to submit a note to the authors to see if this change can be
6547 incorporated in future rlcompleter releases (Dec.6: done)
6552 incorporated in future rlcompleter releases (Dec.6: done)
6548
6553
6549 * More fixes to namespace handling. It was a mess! Now all
6554 * More fixes to namespace handling. It was a mess! Now all
6550 explicit references to __main__.__dict__ are gone (except when
6555 explicit references to __main__.__dict__ are gone (except when
6551 really needed) and everything is handled through the namespace
6556 really needed) and everything is handled through the namespace
6552 dicts in the IPython instance. We seem to be getting somewhere
6557 dicts in the IPython instance. We seem to be getting somewhere
6553 with this, finally...
6558 with this, finally...
6554
6559
6555 * Small documentation updates.
6560 * Small documentation updates.
6556
6561
6557 * Created the Extensions directory under IPython (with an
6562 * Created the Extensions directory under IPython (with an
6558 __init__.py). Put the PhysicalQ stuff there. This directory should
6563 __init__.py). Put the PhysicalQ stuff there. This directory should
6559 be used for all special-purpose extensions.
6564 be used for all special-purpose extensions.
6560
6565
6561 * File renaming:
6566 * File renaming:
6562 ipythonlib --> ipmaker
6567 ipythonlib --> ipmaker
6563 ipplib --> iplib
6568 ipplib --> iplib
6564 This makes a bit more sense in terms of what these files actually do.
6569 This makes a bit more sense in terms of what these files actually do.
6565
6570
6566 * Moved all the classes and functions in ipythonlib to ipplib, so
6571 * Moved all the classes and functions in ipythonlib to ipplib, so
6567 now ipythonlib only has make_IPython(). This will ease up its
6572 now ipythonlib only has make_IPython(). This will ease up its
6568 splitting in smaller functional chunks later.
6573 splitting in smaller functional chunks later.
6569
6574
6570 * Cleaned up (done, I think) output of @whos. Better column
6575 * Cleaned up (done, I think) output of @whos. Better column
6571 formatting, and now shows str(var) for as much as it can, which is
6576 formatting, and now shows str(var) for as much as it can, which is
6572 typically what one gets with a 'print var'.
6577 typically what one gets with a 'print var'.
6573
6578
6574 2001-12-04 Fernando Perez <fperez@colorado.edu>
6579 2001-12-04 Fernando Perez <fperez@colorado.edu>
6575
6580
6576 * Fixed namespace problems. Now builtin/IPyhton/user names get
6581 * Fixed namespace problems. Now builtin/IPyhton/user names get
6577 properly reported in their namespace. Internal namespace handling
6582 properly reported in their namespace. Internal namespace handling
6578 is finally getting decent (not perfect yet, but much better than
6583 is finally getting decent (not perfect yet, but much better than
6579 the ad-hoc mess we had).
6584 the ad-hoc mess we had).
6580
6585
6581 * Removed -exit option. If people just want to run a python
6586 * Removed -exit option. If people just want to run a python
6582 script, that's what the normal interpreter is for. Less
6587 script, that's what the normal interpreter is for. Less
6583 unnecessary options, less chances for bugs.
6588 unnecessary options, less chances for bugs.
6584
6589
6585 * Added a crash handler which generates a complete post-mortem if
6590 * Added a crash handler which generates a complete post-mortem if
6586 IPython crashes. This will help a lot in tracking bugs down the
6591 IPython crashes. This will help a lot in tracking bugs down the
6587 road.
6592 road.
6588
6593
6589 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6594 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6590 which were boud to functions being reassigned would bypass the
6595 which were boud to functions being reassigned would bypass the
6591 logger, breaking the sync of _il with the prompt counter. This
6596 logger, breaking the sync of _il with the prompt counter. This
6592 would then crash IPython later when a new line was logged.
6597 would then crash IPython later when a new line was logged.
6593
6598
6594 2001-12-02 Fernando Perez <fperez@colorado.edu>
6599 2001-12-02 Fernando Perez <fperez@colorado.edu>
6595
6600
6596 * Made IPython a package. This means people don't have to clutter
6601 * Made IPython a package. This means people don't have to clutter
6597 their sys.path with yet another directory. Changed the INSTALL
6602 their sys.path with yet another directory. Changed the INSTALL
6598 file accordingly.
6603 file accordingly.
6599
6604
6600 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6605 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6601 sorts its output (so @who shows it sorted) and @whos formats the
6606 sorts its output (so @who shows it sorted) and @whos formats the
6602 table according to the width of the first column. Nicer, easier to
6607 table according to the width of the first column. Nicer, easier to
6603 read. Todo: write a generic table_format() which takes a list of
6608 read. Todo: write a generic table_format() which takes a list of
6604 lists and prints it nicely formatted, with optional row/column
6609 lists and prints it nicely formatted, with optional row/column
6605 separators and proper padding and justification.
6610 separators and proper padding and justification.
6606
6611
6607 * Released 0.1.20
6612 * Released 0.1.20
6608
6613
6609 * Fixed bug in @log which would reverse the inputcache list (a
6614 * Fixed bug in @log which would reverse the inputcache list (a
6610 copy operation was missing).
6615 copy operation was missing).
6611
6616
6612 * Code cleanup. @config was changed to use page(). Better, since
6617 * Code cleanup. @config was changed to use page(). Better, since
6613 its output is always quite long.
6618 its output is always quite long.
6614
6619
6615 * Itpl is back as a dependency. I was having too many problems
6620 * Itpl is back as a dependency. I was having too many problems
6616 getting the parametric aliases to work reliably, and it's just
6621 getting the parametric aliases to work reliably, and it's just
6617 easier to code weird string operations with it than playing %()s
6622 easier to code weird string operations with it than playing %()s
6618 games. It's only ~6k, so I don't think it's too big a deal.
6623 games. It's only ~6k, so I don't think it's too big a deal.
6619
6624
6620 * Found (and fixed) a very nasty bug with history. !lines weren't
6625 * Found (and fixed) a very nasty bug with history. !lines weren't
6621 getting cached, and the out of sync caches would crash
6626 getting cached, and the out of sync caches would crash
6622 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6627 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6623 division of labor a bit better. Bug fixed, cleaner structure.
6628 division of labor a bit better. Bug fixed, cleaner structure.
6624
6629
6625 2001-12-01 Fernando Perez <fperez@colorado.edu>
6630 2001-12-01 Fernando Perez <fperez@colorado.edu>
6626
6631
6627 * Released 0.1.19
6632 * Released 0.1.19
6628
6633
6629 * Added option -n to @hist to prevent line number printing. Much
6634 * Added option -n to @hist to prevent line number printing. Much
6630 easier to copy/paste code this way.
6635 easier to copy/paste code this way.
6631
6636
6632 * Created global _il to hold the input list. Allows easy
6637 * Created global _il to hold the input list. Allows easy
6633 re-execution of blocks of code by slicing it (inspired by Janko's
6638 re-execution of blocks of code by slicing it (inspired by Janko's
6634 comment on 'macros').
6639 comment on 'macros').
6635
6640
6636 * Small fixes and doc updates.
6641 * Small fixes and doc updates.
6637
6642
6638 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6643 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6639 much too fragile with automagic. Handles properly multi-line
6644 much too fragile with automagic. Handles properly multi-line
6640 statements and takes parameters.
6645 statements and takes parameters.
6641
6646
6642 2001-11-30 Fernando Perez <fperez@colorado.edu>
6647 2001-11-30 Fernando Perez <fperez@colorado.edu>
6643
6648
6644 * Version 0.1.18 released.
6649 * Version 0.1.18 released.
6645
6650
6646 * Fixed nasty namespace bug in initial module imports.
6651 * Fixed nasty namespace bug in initial module imports.
6647
6652
6648 * Added copyright/license notes to all code files (except
6653 * Added copyright/license notes to all code files (except
6649 DPyGetOpt). For the time being, LGPL. That could change.
6654 DPyGetOpt). For the time being, LGPL. That could change.
6650
6655
6651 * Rewrote a much nicer README, updated INSTALL, cleaned up
6656 * Rewrote a much nicer README, updated INSTALL, cleaned up
6652 ipythonrc-* samples.
6657 ipythonrc-* samples.
6653
6658
6654 * Overall code/documentation cleanup. Basically ready for
6659 * Overall code/documentation cleanup. Basically ready for
6655 release. Only remaining thing: licence decision (LGPL?).
6660 release. Only remaining thing: licence decision (LGPL?).
6656
6661
6657 * Converted load_config to a class, ConfigLoader. Now recursion
6662 * Converted load_config to a class, ConfigLoader. Now recursion
6658 control is better organized. Doesn't include the same file twice.
6663 control is better organized. Doesn't include the same file twice.
6659
6664
6660 2001-11-29 Fernando Perez <fperez@colorado.edu>
6665 2001-11-29 Fernando Perez <fperez@colorado.edu>
6661
6666
6662 * Got input history working. Changed output history variables from
6667 * Got input history working. Changed output history variables from
6663 _p to _o so that _i is for input and _o for output. Just cleaner
6668 _p to _o so that _i is for input and _o for output. Just cleaner
6664 convention.
6669 convention.
6665
6670
6666 * Implemented parametric aliases. This pretty much allows the
6671 * Implemented parametric aliases. This pretty much allows the
6667 alias system to offer full-blown shell convenience, I think.
6672 alias system to offer full-blown shell convenience, I think.
6668
6673
6669 * Version 0.1.17 released, 0.1.18 opened.
6674 * Version 0.1.17 released, 0.1.18 opened.
6670
6675
6671 * dot_ipython/ipythonrc (alias): added documentation.
6676 * dot_ipython/ipythonrc (alias): added documentation.
6672 (xcolor): Fixed small bug (xcolors -> xcolor)
6677 (xcolor): Fixed small bug (xcolors -> xcolor)
6673
6678
6674 * Changed the alias system. Now alias is a magic command to define
6679 * Changed the alias system. Now alias is a magic command to define
6675 aliases just like the shell. Rationale: the builtin magics should
6680 aliases just like the shell. Rationale: the builtin magics should
6676 be there for things deeply connected to IPython's
6681 be there for things deeply connected to IPython's
6677 architecture. And this is a much lighter system for what I think
6682 architecture. And this is a much lighter system for what I think
6678 is the really important feature: allowing users to define quickly
6683 is the really important feature: allowing users to define quickly
6679 magics that will do shell things for them, so they can customize
6684 magics that will do shell things for them, so they can customize
6680 IPython easily to match their work habits. If someone is really
6685 IPython easily to match their work habits. If someone is really
6681 desperate to have another name for a builtin alias, they can
6686 desperate to have another name for a builtin alias, they can
6682 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6687 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6683 works.
6688 works.
6684
6689
6685 2001-11-28 Fernando Perez <fperez@colorado.edu>
6690 2001-11-28 Fernando Perez <fperez@colorado.edu>
6686
6691
6687 * Changed @file so that it opens the source file at the proper
6692 * Changed @file so that it opens the source file at the proper
6688 line. Since it uses less, if your EDITOR environment is
6693 line. Since it uses less, if your EDITOR environment is
6689 configured, typing v will immediately open your editor of choice
6694 configured, typing v will immediately open your editor of choice
6690 right at the line where the object is defined. Not as quick as
6695 right at the line where the object is defined. Not as quick as
6691 having a direct @edit command, but for all intents and purposes it
6696 having a direct @edit command, but for all intents and purposes it
6692 works. And I don't have to worry about writing @edit to deal with
6697 works. And I don't have to worry about writing @edit to deal with
6693 all the editors, less does that.
6698 all the editors, less does that.
6694
6699
6695 * Version 0.1.16 released, 0.1.17 opened.
6700 * Version 0.1.16 released, 0.1.17 opened.
6696
6701
6697 * Fixed some nasty bugs in the page/page_dumb combo that could
6702 * Fixed some nasty bugs in the page/page_dumb combo that could
6698 crash IPython.
6703 crash IPython.
6699
6704
6700 2001-11-27 Fernando Perez <fperez@colorado.edu>
6705 2001-11-27 Fernando Perez <fperez@colorado.edu>
6701
6706
6702 * Version 0.1.15 released, 0.1.16 opened.
6707 * Version 0.1.15 released, 0.1.16 opened.
6703
6708
6704 * Finally got ? and ?? to work for undefined things: now it's
6709 * Finally got ? and ?? to work for undefined things: now it's
6705 possible to type {}.get? and get information about the get method
6710 possible to type {}.get? and get information about the get method
6706 of dicts, or os.path? even if only os is defined (so technically
6711 of dicts, or os.path? even if only os is defined (so technically
6707 os.path isn't). Works at any level. For example, after import os,
6712 os.path isn't). Works at any level. For example, after import os,
6708 os?, os.path?, os.path.abspath? all work. This is great, took some
6713 os?, os.path?, os.path.abspath? all work. This is great, took some
6709 work in _ofind.
6714 work in _ofind.
6710
6715
6711 * Fixed more bugs with logging. The sanest way to do it was to add
6716 * Fixed more bugs with logging. The sanest way to do it was to add
6712 to @log a 'mode' parameter. Killed two in one shot (this mode
6717 to @log a 'mode' parameter. Killed two in one shot (this mode
6713 option was a request of Janko's). I think it's finally clean
6718 option was a request of Janko's). I think it's finally clean
6714 (famous last words).
6719 (famous last words).
6715
6720
6716 * Added a page_dumb() pager which does a decent job of paging on
6721 * Added a page_dumb() pager which does a decent job of paging on
6717 screen, if better things (like less) aren't available. One less
6722 screen, if better things (like less) aren't available. One less
6718 unix dependency (someday maybe somebody will port this to
6723 unix dependency (someday maybe somebody will port this to
6719 windows).
6724 windows).
6720
6725
6721 * Fixed problem in magic_log: would lock of logging out if log
6726 * Fixed problem in magic_log: would lock of logging out if log
6722 creation failed (because it would still think it had succeeded).
6727 creation failed (because it would still think it had succeeded).
6723
6728
6724 * Improved the page() function using curses to auto-detect screen
6729 * Improved the page() function using curses to auto-detect screen
6725 size. Now it can make a much better decision on whether to print
6730 size. Now it can make a much better decision on whether to print
6726 or page a string. Option screen_length was modified: a value 0
6731 or page a string. Option screen_length was modified: a value 0
6727 means auto-detect, and that's the default now.
6732 means auto-detect, and that's the default now.
6728
6733
6729 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6734 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6730 go out. I'll test it for a few days, then talk to Janko about
6735 go out. I'll test it for a few days, then talk to Janko about
6731 licences and announce it.
6736 licences and announce it.
6732
6737
6733 * Fixed the length of the auto-generated ---> prompt which appears
6738 * Fixed the length of the auto-generated ---> prompt which appears
6734 for auto-parens and auto-quotes. Getting this right isn't trivial,
6739 for auto-parens and auto-quotes. Getting this right isn't trivial,
6735 with all the color escapes, different prompt types and optional
6740 with all the color escapes, different prompt types and optional
6736 separators. But it seems to be working in all the combinations.
6741 separators. But it seems to be working in all the combinations.
6737
6742
6738 2001-11-26 Fernando Perez <fperez@colorado.edu>
6743 2001-11-26 Fernando Perez <fperez@colorado.edu>
6739
6744
6740 * Wrote a regexp filter to get option types from the option names
6745 * Wrote a regexp filter to get option types from the option names
6741 string. This eliminates the need to manually keep two duplicate
6746 string. This eliminates the need to manually keep two duplicate
6742 lists.
6747 lists.
6743
6748
6744 * Removed the unneeded check_option_names. Now options are handled
6749 * Removed the unneeded check_option_names. Now options are handled
6745 in a much saner manner and it's easy to visually check that things
6750 in a much saner manner and it's easy to visually check that things
6746 are ok.
6751 are ok.
6747
6752
6748 * Updated version numbers on all files I modified to carry a
6753 * Updated version numbers on all files I modified to carry a
6749 notice so Janko and Nathan have clear version markers.
6754 notice so Janko and Nathan have clear version markers.
6750
6755
6751 * Updated docstring for ultraTB with my changes. I should send
6756 * Updated docstring for ultraTB with my changes. I should send
6752 this to Nathan.
6757 this to Nathan.
6753
6758
6754 * Lots of small fixes. Ran everything through pychecker again.
6759 * Lots of small fixes. Ran everything through pychecker again.
6755
6760
6756 * Made loading of deep_reload an cmd line option. If it's not too
6761 * Made loading of deep_reload an cmd line option. If it's not too
6757 kosher, now people can just disable it. With -nodeep_reload it's
6762 kosher, now people can just disable it. With -nodeep_reload it's
6758 still available as dreload(), it just won't overwrite reload().
6763 still available as dreload(), it just won't overwrite reload().
6759
6764
6760 * Moved many options to the no| form (-opt and -noopt
6765 * Moved many options to the no| form (-opt and -noopt
6761 accepted). Cleaner.
6766 accepted). Cleaner.
6762
6767
6763 * Changed magic_log so that if called with no parameters, it uses
6768 * Changed magic_log so that if called with no parameters, it uses
6764 'rotate' mode. That way auto-generated logs aren't automatically
6769 'rotate' mode. That way auto-generated logs aren't automatically
6765 over-written. For normal logs, now a backup is made if it exists
6770 over-written. For normal logs, now a backup is made if it exists
6766 (only 1 level of backups). A new 'backup' mode was added to the
6771 (only 1 level of backups). A new 'backup' mode was added to the
6767 Logger class to support this. This was a request by Janko.
6772 Logger class to support this. This was a request by Janko.
6768
6773
6769 * Added @logoff/@logon to stop/restart an active log.
6774 * Added @logoff/@logon to stop/restart an active log.
6770
6775
6771 * Fixed a lot of bugs in log saving/replay. It was pretty
6776 * Fixed a lot of bugs in log saving/replay. It was pretty
6772 broken. Now special lines (!@,/) appear properly in the command
6777 broken. Now special lines (!@,/) appear properly in the command
6773 history after a log replay.
6778 history after a log replay.
6774
6779
6775 * Tried and failed to implement full session saving via pickle. My
6780 * Tried and failed to implement full session saving via pickle. My
6776 idea was to pickle __main__.__dict__, but modules can't be
6781 idea was to pickle __main__.__dict__, but modules can't be
6777 pickled. This would be a better alternative to replaying logs, but
6782 pickled. This would be a better alternative to replaying logs, but
6778 seems quite tricky to get to work. Changed -session to be called
6783 seems quite tricky to get to work. Changed -session to be called
6779 -logplay, which more accurately reflects what it does. And if we
6784 -logplay, which more accurately reflects what it does. And if we
6780 ever get real session saving working, -session is now available.
6785 ever get real session saving working, -session is now available.
6781
6786
6782 * Implemented color schemes for prompts also. As for tracebacks,
6787 * Implemented color schemes for prompts also. As for tracebacks,
6783 currently only NoColor and Linux are supported. But now the
6788 currently only NoColor and Linux are supported. But now the
6784 infrastructure is in place, based on a generic ColorScheme
6789 infrastructure is in place, based on a generic ColorScheme
6785 class. So writing and activating new schemes both for the prompts
6790 class. So writing and activating new schemes both for the prompts
6786 and the tracebacks should be straightforward.
6791 and the tracebacks should be straightforward.
6787
6792
6788 * Version 0.1.13 released, 0.1.14 opened.
6793 * Version 0.1.13 released, 0.1.14 opened.
6789
6794
6790 * Changed handling of options for output cache. Now counter is
6795 * Changed handling of options for output cache. Now counter is
6791 hardwired starting at 1 and one specifies the maximum number of
6796 hardwired starting at 1 and one specifies the maximum number of
6792 entries *in the outcache* (not the max prompt counter). This is
6797 entries *in the outcache* (not the max prompt counter). This is
6793 much better, since many statements won't increase the cache
6798 much better, since many statements won't increase the cache
6794 count. It also eliminated some confusing options, now there's only
6799 count. It also eliminated some confusing options, now there's only
6795 one: cache_size.
6800 one: cache_size.
6796
6801
6797 * Added 'alias' magic function and magic_alias option in the
6802 * Added 'alias' magic function and magic_alias option in the
6798 ipythonrc file. Now the user can easily define whatever names he
6803 ipythonrc file. Now the user can easily define whatever names he
6799 wants for the magic functions without having to play weird
6804 wants for the magic functions without having to play weird
6800 namespace games. This gives IPython a real shell-like feel.
6805 namespace games. This gives IPython a real shell-like feel.
6801
6806
6802 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6807 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6803 @ or not).
6808 @ or not).
6804
6809
6805 This was one of the last remaining 'visible' bugs (that I know
6810 This was one of the last remaining 'visible' bugs (that I know
6806 of). I think if I can clean up the session loading so it works
6811 of). I think if I can clean up the session loading so it works
6807 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6812 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6808 about licensing).
6813 about licensing).
6809
6814
6810 2001-11-25 Fernando Perez <fperez@colorado.edu>
6815 2001-11-25 Fernando Perez <fperez@colorado.edu>
6811
6816
6812 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6817 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6813 there's a cleaner distinction between what ? and ?? show.
6818 there's a cleaner distinction between what ? and ?? show.
6814
6819
6815 * Added screen_length option. Now the user can define his own
6820 * Added screen_length option. Now the user can define his own
6816 screen size for page() operations.
6821 screen size for page() operations.
6817
6822
6818 * Implemented magic shell-like functions with automatic code
6823 * Implemented magic shell-like functions with automatic code
6819 generation. Now adding another function is just a matter of adding
6824 generation. Now adding another function is just a matter of adding
6820 an entry to a dict, and the function is dynamically generated at
6825 an entry to a dict, and the function is dynamically generated at
6821 run-time. Python has some really cool features!
6826 run-time. Python has some really cool features!
6822
6827
6823 * Renamed many options to cleanup conventions a little. Now all
6828 * Renamed many options to cleanup conventions a little. Now all
6824 are lowercase, and only underscores where needed. Also in the code
6829 are lowercase, and only underscores where needed. Also in the code
6825 option name tables are clearer.
6830 option name tables are clearer.
6826
6831
6827 * Changed prompts a little. Now input is 'In [n]:' instead of
6832 * Changed prompts a little. Now input is 'In [n]:' instead of
6828 'In[n]:='. This allows it the numbers to be aligned with the
6833 'In[n]:='. This allows it the numbers to be aligned with the
6829 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6834 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6830 Python (it was a Mathematica thing). The '...' continuation prompt
6835 Python (it was a Mathematica thing). The '...' continuation prompt
6831 was also changed a little to align better.
6836 was also changed a little to align better.
6832
6837
6833 * Fixed bug when flushing output cache. Not all _p<n> variables
6838 * Fixed bug when flushing output cache. Not all _p<n> variables
6834 exist, so their deletion needs to be wrapped in a try:
6839 exist, so their deletion needs to be wrapped in a try:
6835
6840
6836 * Figured out how to properly use inspect.formatargspec() (it
6841 * Figured out how to properly use inspect.formatargspec() (it
6837 requires the args preceded by *). So I removed all the code from
6842 requires the args preceded by *). So I removed all the code from
6838 _get_pdef in Magic, which was just replicating that.
6843 _get_pdef in Magic, which was just replicating that.
6839
6844
6840 * Added test to prefilter to allow redefining magic function names
6845 * Added test to prefilter to allow redefining magic function names
6841 as variables. This is ok, since the @ form is always available,
6846 as variables. This is ok, since the @ form is always available,
6842 but whe should allow the user to define a variable called 'ls' if
6847 but whe should allow the user to define a variable called 'ls' if
6843 he needs it.
6848 he needs it.
6844
6849
6845 * Moved the ToDo information from README into a separate ToDo.
6850 * Moved the ToDo information from README into a separate ToDo.
6846
6851
6847 * General code cleanup and small bugfixes. I think it's close to a
6852 * General code cleanup and small bugfixes. I think it's close to a
6848 state where it can be released, obviously with a big 'beta'
6853 state where it can be released, obviously with a big 'beta'
6849 warning on it.
6854 warning on it.
6850
6855
6851 * Got the magic function split to work. Now all magics are defined
6856 * Got the magic function split to work. Now all magics are defined
6852 in a separate class. It just organizes things a bit, and now
6857 in a separate class. It just organizes things a bit, and now
6853 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6858 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6854 was too long).
6859 was too long).
6855
6860
6856 * Changed @clear to @reset to avoid potential confusions with
6861 * Changed @clear to @reset to avoid potential confusions with
6857 the shell command clear. Also renamed @cl to @clear, which does
6862 the shell command clear. Also renamed @cl to @clear, which does
6858 exactly what people expect it to from their shell experience.
6863 exactly what people expect it to from their shell experience.
6859
6864
6860 Added a check to the @reset command (since it's so
6865 Added a check to the @reset command (since it's so
6861 destructive, it's probably a good idea to ask for confirmation).
6866 destructive, it's probably a good idea to ask for confirmation).
6862 But now reset only works for full namespace resetting. Since the
6867 But now reset only works for full namespace resetting. Since the
6863 del keyword is already there for deleting a few specific
6868 del keyword is already there for deleting a few specific
6864 variables, I don't see the point of having a redundant magic
6869 variables, I don't see the point of having a redundant magic
6865 function for the same task.
6870 function for the same task.
6866
6871
6867 2001-11-24 Fernando Perez <fperez@colorado.edu>
6872 2001-11-24 Fernando Perez <fperez@colorado.edu>
6868
6873
6869 * Updated the builtin docs (esp. the ? ones).
6874 * Updated the builtin docs (esp. the ? ones).
6870
6875
6871 * Ran all the code through pychecker. Not terribly impressed with
6876 * Ran all the code through pychecker. Not terribly impressed with
6872 it: lots of spurious warnings and didn't really find anything of
6877 it: lots of spurious warnings and didn't really find anything of
6873 substance (just a few modules being imported and not used).
6878 substance (just a few modules being imported and not used).
6874
6879
6875 * Implemented the new ultraTB functionality into IPython. New
6880 * Implemented the new ultraTB functionality into IPython. New
6876 option: xcolors. This chooses color scheme. xmode now only selects
6881 option: xcolors. This chooses color scheme. xmode now only selects
6877 between Plain and Verbose. Better orthogonality.
6882 between Plain and Verbose. Better orthogonality.
6878
6883
6879 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6884 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6880 mode and color scheme for the exception handlers. Now it's
6885 mode and color scheme for the exception handlers. Now it's
6881 possible to have the verbose traceback with no coloring.
6886 possible to have the verbose traceback with no coloring.
6882
6887
6883 2001-11-23 Fernando Perez <fperez@colorado.edu>
6888 2001-11-23 Fernando Perez <fperez@colorado.edu>
6884
6889
6885 * Version 0.1.12 released, 0.1.13 opened.
6890 * Version 0.1.12 released, 0.1.13 opened.
6886
6891
6887 * Removed option to set auto-quote and auto-paren escapes by
6892 * Removed option to set auto-quote and auto-paren escapes by
6888 user. The chances of breaking valid syntax are just too high. If
6893 user. The chances of breaking valid syntax are just too high. If
6889 someone *really* wants, they can always dig into the code.
6894 someone *really* wants, they can always dig into the code.
6890
6895
6891 * Made prompt separators configurable.
6896 * Made prompt separators configurable.
6892
6897
6893 2001-11-22 Fernando Perez <fperez@colorado.edu>
6898 2001-11-22 Fernando Perez <fperez@colorado.edu>
6894
6899
6895 * Small bugfixes in many places.
6900 * Small bugfixes in many places.
6896
6901
6897 * Removed the MyCompleter class from ipplib. It seemed redundant
6902 * Removed the MyCompleter class from ipplib. It seemed redundant
6898 with the C-p,C-n history search functionality. Less code to
6903 with the C-p,C-n history search functionality. Less code to
6899 maintain.
6904 maintain.
6900
6905
6901 * Moved all the original ipython.py code into ipythonlib.py. Right
6906 * Moved all the original ipython.py code into ipythonlib.py. Right
6902 now it's just one big dump into a function called make_IPython, so
6907 now it's just one big dump into a function called make_IPython, so
6903 no real modularity has been gained. But at least it makes the
6908 no real modularity has been gained. But at least it makes the
6904 wrapper script tiny, and since ipythonlib is a module, it gets
6909 wrapper script tiny, and since ipythonlib is a module, it gets
6905 compiled and startup is much faster.
6910 compiled and startup is much faster.
6906
6911
6907 This is a reasobably 'deep' change, so we should test it for a
6912 This is a reasobably 'deep' change, so we should test it for a
6908 while without messing too much more with the code.
6913 while without messing too much more with the code.
6909
6914
6910 2001-11-21 Fernando Perez <fperez@colorado.edu>
6915 2001-11-21 Fernando Perez <fperez@colorado.edu>
6911
6916
6912 * Version 0.1.11 released, 0.1.12 opened for further work.
6917 * Version 0.1.11 released, 0.1.12 opened for further work.
6913
6918
6914 * Removed dependency on Itpl. It was only needed in one place. It
6919 * Removed dependency on Itpl. It was only needed in one place. It
6915 would be nice if this became part of python, though. It makes life
6920 would be nice if this became part of python, though. It makes life
6916 *a lot* easier in some cases.
6921 *a lot* easier in some cases.
6917
6922
6918 * Simplified the prefilter code a bit. Now all handlers are
6923 * Simplified the prefilter code a bit. Now all handlers are
6919 expected to explicitly return a value (at least a blank string).
6924 expected to explicitly return a value (at least a blank string).
6920
6925
6921 * Heavy edits in ipplib. Removed the help system altogether. Now
6926 * Heavy edits in ipplib. Removed the help system altogether. Now
6922 obj?/?? is used for inspecting objects, a magic @doc prints
6927 obj?/?? is used for inspecting objects, a magic @doc prints
6923 docstrings, and full-blown Python help is accessed via the 'help'
6928 docstrings, and full-blown Python help is accessed via the 'help'
6924 keyword. This cleans up a lot of code (less to maintain) and does
6929 keyword. This cleans up a lot of code (less to maintain) and does
6925 the job. Since 'help' is now a standard Python component, might as
6930 the job. Since 'help' is now a standard Python component, might as
6926 well use it and remove duplicate functionality.
6931 well use it and remove duplicate functionality.
6927
6932
6928 Also removed the option to use ipplib as a standalone program. By
6933 Also removed the option to use ipplib as a standalone program. By
6929 now it's too dependent on other parts of IPython to function alone.
6934 now it's too dependent on other parts of IPython to function alone.
6930
6935
6931 * Fixed bug in genutils.pager. It would crash if the pager was
6936 * Fixed bug in genutils.pager. It would crash if the pager was
6932 exited immediately after opening (broken pipe).
6937 exited immediately after opening (broken pipe).
6933
6938
6934 * Trimmed down the VerboseTB reporting a little. The header is
6939 * Trimmed down the VerboseTB reporting a little. The header is
6935 much shorter now and the repeated exception arguments at the end
6940 much shorter now and the repeated exception arguments at the end
6936 have been removed. For interactive use the old header seemed a bit
6941 have been removed. For interactive use the old header seemed a bit
6937 excessive.
6942 excessive.
6938
6943
6939 * Fixed small bug in output of @whos for variables with multi-word
6944 * Fixed small bug in output of @whos for variables with multi-word
6940 types (only first word was displayed).
6945 types (only first word was displayed).
6941
6946
6942 2001-11-17 Fernando Perez <fperez@colorado.edu>
6947 2001-11-17 Fernando Perez <fperez@colorado.edu>
6943
6948
6944 * Version 0.1.10 released, 0.1.11 opened for further work.
6949 * Version 0.1.10 released, 0.1.11 opened for further work.
6945
6950
6946 * Modified dirs and friends. dirs now *returns* the stack (not
6951 * Modified dirs and friends. dirs now *returns* the stack (not
6947 prints), so one can manipulate it as a variable. Convenient to
6952 prints), so one can manipulate it as a variable. Convenient to
6948 travel along many directories.
6953 travel along many directories.
6949
6954
6950 * Fixed bug in magic_pdef: would only work with functions with
6955 * Fixed bug in magic_pdef: would only work with functions with
6951 arguments with default values.
6956 arguments with default values.
6952
6957
6953 2001-11-14 Fernando Perez <fperez@colorado.edu>
6958 2001-11-14 Fernando Perez <fperez@colorado.edu>
6954
6959
6955 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6960 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6956 example with IPython. Various other minor fixes and cleanups.
6961 example with IPython. Various other minor fixes and cleanups.
6957
6962
6958 * Version 0.1.9 released, 0.1.10 opened for further work.
6963 * Version 0.1.9 released, 0.1.10 opened for further work.
6959
6964
6960 * Added sys.path to the list of directories searched in the
6965 * Added sys.path to the list of directories searched in the
6961 execfile= option. It used to be the current directory and the
6966 execfile= option. It used to be the current directory and the
6962 user's IPYTHONDIR only.
6967 user's IPYTHONDIR only.
6963
6968
6964 2001-11-13 Fernando Perez <fperez@colorado.edu>
6969 2001-11-13 Fernando Perez <fperez@colorado.edu>
6965
6970
6966 * Reinstated the raw_input/prefilter separation that Janko had
6971 * Reinstated the raw_input/prefilter separation that Janko had
6967 initially. This gives a more convenient setup for extending the
6972 initially. This gives a more convenient setup for extending the
6968 pre-processor from the outside: raw_input always gets a string,
6973 pre-processor from the outside: raw_input always gets a string,
6969 and prefilter has to process it. We can then redefine prefilter
6974 and prefilter has to process it. We can then redefine prefilter
6970 from the outside and implement extensions for special
6975 from the outside and implement extensions for special
6971 purposes.
6976 purposes.
6972
6977
6973 Today I got one for inputting PhysicalQuantity objects
6978 Today I got one for inputting PhysicalQuantity objects
6974 (from Scientific) without needing any function calls at
6979 (from Scientific) without needing any function calls at
6975 all. Extremely convenient, and it's all done as a user-level
6980 all. Extremely convenient, and it's all done as a user-level
6976 extension (no IPython code was touched). Now instead of:
6981 extension (no IPython code was touched). Now instead of:
6977 a = PhysicalQuantity(4.2,'m/s**2')
6982 a = PhysicalQuantity(4.2,'m/s**2')
6978 one can simply say
6983 one can simply say
6979 a = 4.2 m/s**2
6984 a = 4.2 m/s**2
6980 or even
6985 or even
6981 a = 4.2 m/s^2
6986 a = 4.2 m/s^2
6982
6987
6983 I use this, but it's also a proof of concept: IPython really is
6988 I use this, but it's also a proof of concept: IPython really is
6984 fully user-extensible, even at the level of the parsing of the
6989 fully user-extensible, even at the level of the parsing of the
6985 command line. It's not trivial, but it's perfectly doable.
6990 command line. It's not trivial, but it's perfectly doable.
6986
6991
6987 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6992 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6988 the problem of modules being loaded in the inverse order in which
6993 the problem of modules being loaded in the inverse order in which
6989 they were defined in
6994 they were defined in
6990
6995
6991 * Version 0.1.8 released, 0.1.9 opened for further work.
6996 * Version 0.1.8 released, 0.1.9 opened for further work.
6992
6997
6993 * Added magics pdef, source and file. They respectively show the
6998 * Added magics pdef, source and file. They respectively show the
6994 definition line ('prototype' in C), source code and full python
6999 definition line ('prototype' in C), source code and full python
6995 file for any callable object. The object inspector oinfo uses
7000 file for any callable object. The object inspector oinfo uses
6996 these to show the same information.
7001 these to show the same information.
6997
7002
6998 * Version 0.1.7 released, 0.1.8 opened for further work.
7003 * Version 0.1.7 released, 0.1.8 opened for further work.
6999
7004
7000 * Separated all the magic functions into a class called Magic. The
7005 * Separated all the magic functions into a class called Magic. The
7001 InteractiveShell class was becoming too big for Xemacs to handle
7006 InteractiveShell class was becoming too big for Xemacs to handle
7002 (de-indenting a line would lock it up for 10 seconds while it
7007 (de-indenting a line would lock it up for 10 seconds while it
7003 backtracked on the whole class!)
7008 backtracked on the whole class!)
7004
7009
7005 FIXME: didn't work. It can be done, but right now namespaces are
7010 FIXME: didn't work. It can be done, but right now namespaces are
7006 all messed up. Do it later (reverted it for now, so at least
7011 all messed up. Do it later (reverted it for now, so at least
7007 everything works as before).
7012 everything works as before).
7008
7013
7009 * Got the object introspection system (magic_oinfo) working! I
7014 * Got the object introspection system (magic_oinfo) working! I
7010 think this is pretty much ready for release to Janko, so he can
7015 think this is pretty much ready for release to Janko, so he can
7011 test it for a while and then announce it. Pretty much 100% of what
7016 test it for a while and then announce it. Pretty much 100% of what
7012 I wanted for the 'phase 1' release is ready. Happy, tired.
7017 I wanted for the 'phase 1' release is ready. Happy, tired.
7013
7018
7014 2001-11-12 Fernando Perez <fperez@colorado.edu>
7019 2001-11-12 Fernando Perez <fperez@colorado.edu>
7015
7020
7016 * Version 0.1.6 released, 0.1.7 opened for further work.
7021 * Version 0.1.6 released, 0.1.7 opened for further work.
7017
7022
7018 * Fixed bug in printing: it used to test for truth before
7023 * Fixed bug in printing: it used to test for truth before
7019 printing, so 0 wouldn't print. Now checks for None.
7024 printing, so 0 wouldn't print. Now checks for None.
7020
7025
7021 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7026 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7022 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7027 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7023 reaches by hand into the outputcache. Think of a better way to do
7028 reaches by hand into the outputcache. Think of a better way to do
7024 this later.
7029 this later.
7025
7030
7026 * Various small fixes thanks to Nathan's comments.
7031 * Various small fixes thanks to Nathan's comments.
7027
7032
7028 * Changed magic_pprint to magic_Pprint. This way it doesn't
7033 * Changed magic_pprint to magic_Pprint. This way it doesn't
7029 collide with pprint() and the name is consistent with the command
7034 collide with pprint() and the name is consistent with the command
7030 line option.
7035 line option.
7031
7036
7032 * Changed prompt counter behavior to be fully like
7037 * Changed prompt counter behavior to be fully like
7033 Mathematica's. That is, even input that doesn't return a result
7038 Mathematica's. That is, even input that doesn't return a result
7034 raises the prompt counter. The old behavior was kind of confusing
7039 raises the prompt counter. The old behavior was kind of confusing
7035 (getting the same prompt number several times if the operation
7040 (getting the same prompt number several times if the operation
7036 didn't return a result).
7041 didn't return a result).
7037
7042
7038 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7043 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7039
7044
7040 * Fixed -Classic mode (wasn't working anymore).
7045 * Fixed -Classic mode (wasn't working anymore).
7041
7046
7042 * Added colored prompts using Nathan's new code. Colors are
7047 * Added colored prompts using Nathan's new code. Colors are
7043 currently hardwired, they can be user-configurable. For
7048 currently hardwired, they can be user-configurable. For
7044 developers, they can be chosen in file ipythonlib.py, at the
7049 developers, they can be chosen in file ipythonlib.py, at the
7045 beginning of the CachedOutput class def.
7050 beginning of the CachedOutput class def.
7046
7051
7047 2001-11-11 Fernando Perez <fperez@colorado.edu>
7052 2001-11-11 Fernando Perez <fperez@colorado.edu>
7048
7053
7049 * Version 0.1.5 released, 0.1.6 opened for further work.
7054 * Version 0.1.5 released, 0.1.6 opened for further work.
7050
7055
7051 * Changed magic_env to *return* the environment as a dict (not to
7056 * Changed magic_env to *return* the environment as a dict (not to
7052 print it). This way it prints, but it can also be processed.
7057 print it). This way it prints, but it can also be processed.
7053
7058
7054 * Added Verbose exception reporting to interactive
7059 * Added Verbose exception reporting to interactive
7055 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7060 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7056 traceback. Had to make some changes to the ultraTB file. This is
7061 traceback. Had to make some changes to the ultraTB file. This is
7057 probably the last 'big' thing in my mental todo list. This ties
7062 probably the last 'big' thing in my mental todo list. This ties
7058 in with the next entry:
7063 in with the next entry:
7059
7064
7060 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7065 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7061 has to specify is Plain, Color or Verbose for all exception
7066 has to specify is Plain, Color or Verbose for all exception
7062 handling.
7067 handling.
7063
7068
7064 * Removed ShellServices option. All this can really be done via
7069 * Removed ShellServices option. All this can really be done via
7065 the magic system. It's easier to extend, cleaner and has automatic
7070 the magic system. It's easier to extend, cleaner and has automatic
7066 namespace protection and documentation.
7071 namespace protection and documentation.
7067
7072
7068 2001-11-09 Fernando Perez <fperez@colorado.edu>
7073 2001-11-09 Fernando Perez <fperez@colorado.edu>
7069
7074
7070 * Fixed bug in output cache flushing (missing parameter to
7075 * Fixed bug in output cache flushing (missing parameter to
7071 __init__). Other small bugs fixed (found using pychecker).
7076 __init__). Other small bugs fixed (found using pychecker).
7072
7077
7073 * Version 0.1.4 opened for bugfixing.
7078 * Version 0.1.4 opened for bugfixing.
7074
7079
7075 2001-11-07 Fernando Perez <fperez@colorado.edu>
7080 2001-11-07 Fernando Perez <fperez@colorado.edu>
7076
7081
7077 * Version 0.1.3 released, mainly because of the raw_input bug.
7082 * Version 0.1.3 released, mainly because of the raw_input bug.
7078
7083
7079 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7084 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7080 and when testing for whether things were callable, a call could
7085 and when testing for whether things were callable, a call could
7081 actually be made to certain functions. They would get called again
7086 actually be made to certain functions. They would get called again
7082 once 'really' executed, with a resulting double call. A disaster
7087 once 'really' executed, with a resulting double call. A disaster
7083 in many cases (list.reverse() would never work!).
7088 in many cases (list.reverse() would never work!).
7084
7089
7085 * Removed prefilter() function, moved its code to raw_input (which
7090 * Removed prefilter() function, moved its code to raw_input (which
7086 after all was just a near-empty caller for prefilter). This saves
7091 after all was just a near-empty caller for prefilter). This saves
7087 a function call on every prompt, and simplifies the class a tiny bit.
7092 a function call on every prompt, and simplifies the class a tiny bit.
7088
7093
7089 * Fix _ip to __ip name in magic example file.
7094 * Fix _ip to __ip name in magic example file.
7090
7095
7091 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7096 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7092 work with non-gnu versions of tar.
7097 work with non-gnu versions of tar.
7093
7098
7094 2001-11-06 Fernando Perez <fperez@colorado.edu>
7099 2001-11-06 Fernando Perez <fperez@colorado.edu>
7095
7100
7096 * Version 0.1.2. Just to keep track of the recent changes.
7101 * Version 0.1.2. Just to keep track of the recent changes.
7097
7102
7098 * Fixed nasty bug in output prompt routine. It used to check 'if
7103 * Fixed nasty bug in output prompt routine. It used to check 'if
7099 arg != None...'. Problem is, this fails if arg implements a
7104 arg != None...'. Problem is, this fails if arg implements a
7100 special comparison (__cmp__) which disallows comparing to
7105 special comparison (__cmp__) which disallows comparing to
7101 None. Found it when trying to use the PhysicalQuantity module from
7106 None. Found it when trying to use the PhysicalQuantity module from
7102 ScientificPython.
7107 ScientificPython.
7103
7108
7104 2001-11-05 Fernando Perez <fperez@colorado.edu>
7109 2001-11-05 Fernando Perez <fperez@colorado.edu>
7105
7110
7106 * Also added dirs. Now the pushd/popd/dirs family functions
7111 * Also added dirs. Now the pushd/popd/dirs family functions
7107 basically like the shell, with the added convenience of going home
7112 basically like the shell, with the added convenience of going home
7108 when called with no args.
7113 when called with no args.
7109
7114
7110 * pushd/popd slightly modified to mimic shell behavior more
7115 * pushd/popd slightly modified to mimic shell behavior more
7111 closely.
7116 closely.
7112
7117
7113 * Added env,pushd,popd from ShellServices as magic functions. I
7118 * Added env,pushd,popd from ShellServices as magic functions. I
7114 think the cleanest will be to port all desired functions from
7119 think the cleanest will be to port all desired functions from
7115 ShellServices as magics and remove ShellServices altogether. This
7120 ShellServices as magics and remove ShellServices altogether. This
7116 will provide a single, clean way of adding functionality
7121 will provide a single, clean way of adding functionality
7117 (shell-type or otherwise) to IP.
7122 (shell-type or otherwise) to IP.
7118
7123
7119 2001-11-04 Fernando Perez <fperez@colorado.edu>
7124 2001-11-04 Fernando Perez <fperez@colorado.edu>
7120
7125
7121 * Added .ipython/ directory to sys.path. This way users can keep
7126 * Added .ipython/ directory to sys.path. This way users can keep
7122 customizations there and access them via import.
7127 customizations there and access them via import.
7123
7128
7124 2001-11-03 Fernando Perez <fperez@colorado.edu>
7129 2001-11-03 Fernando Perez <fperez@colorado.edu>
7125
7130
7126 * Opened version 0.1.1 for new changes.
7131 * Opened version 0.1.1 for new changes.
7127
7132
7128 * Changed version number to 0.1.0: first 'public' release, sent to
7133 * Changed version number to 0.1.0: first 'public' release, sent to
7129 Nathan and Janko.
7134 Nathan and Janko.
7130
7135
7131 * Lots of small fixes and tweaks.
7136 * Lots of small fixes and tweaks.
7132
7137
7133 * Minor changes to whos format. Now strings are shown, snipped if
7138 * Minor changes to whos format. Now strings are shown, snipped if
7134 too long.
7139 too long.
7135
7140
7136 * Changed ShellServices to work on __main__ so they show up in @who
7141 * Changed ShellServices to work on __main__ so they show up in @who
7137
7142
7138 * Help also works with ? at the end of a line:
7143 * Help also works with ? at the end of a line:
7139 ?sin and sin?
7144 ?sin and sin?
7140 both produce the same effect. This is nice, as often I use the
7145 both produce the same effect. This is nice, as often I use the
7141 tab-complete to find the name of a method, but I used to then have
7146 tab-complete to find the name of a method, but I used to then have
7142 to go to the beginning of the line to put a ? if I wanted more
7147 to go to the beginning of the line to put a ? if I wanted more
7143 info. Now I can just add the ? and hit return. Convenient.
7148 info. Now I can just add the ? and hit return. Convenient.
7144
7149
7145 2001-11-02 Fernando Perez <fperez@colorado.edu>
7150 2001-11-02 Fernando Perez <fperez@colorado.edu>
7146
7151
7147 * Python version check (>=2.1) added.
7152 * Python version check (>=2.1) added.
7148
7153
7149 * Added LazyPython documentation. At this point the docs are quite
7154 * Added LazyPython documentation. At this point the docs are quite
7150 a mess. A cleanup is in order.
7155 a mess. A cleanup is in order.
7151
7156
7152 * Auto-installer created. For some bizarre reason, the zipfiles
7157 * Auto-installer created. For some bizarre reason, the zipfiles
7153 module isn't working on my system. So I made a tar version
7158 module isn't working on my system. So I made a tar version
7154 (hopefully the command line options in various systems won't kill
7159 (hopefully the command line options in various systems won't kill
7155 me).
7160 me).
7156
7161
7157 * Fixes to Struct in genutils. Now all dictionary-like methods are
7162 * Fixes to Struct in genutils. Now all dictionary-like methods are
7158 protected (reasonably).
7163 protected (reasonably).
7159
7164
7160 * Added pager function to genutils and changed ? to print usage
7165 * Added pager function to genutils and changed ? to print usage
7161 note through it (it was too long).
7166 note through it (it was too long).
7162
7167
7163 * Added the LazyPython functionality. Works great! I changed the
7168 * Added the LazyPython functionality. Works great! I changed the
7164 auto-quote escape to ';', it's on home row and next to '. But
7169 auto-quote escape to ';', it's on home row and next to '. But
7165 both auto-quote and auto-paren (still /) escapes are command-line
7170 both auto-quote and auto-paren (still /) escapes are command-line
7166 parameters.
7171 parameters.
7167
7172
7168
7173
7169 2001-11-01 Fernando Perez <fperez@colorado.edu>
7174 2001-11-01 Fernando Perez <fperez@colorado.edu>
7170
7175
7171 * Version changed to 0.0.7. Fairly large change: configuration now
7176 * Version changed to 0.0.7. Fairly large change: configuration now
7172 is all stored in a directory, by default .ipython. There, all
7177 is all stored in a directory, by default .ipython. There, all
7173 config files have normal looking names (not .names)
7178 config files have normal looking names (not .names)
7174
7179
7175 * Version 0.0.6 Released first to Lucas and Archie as a test
7180 * Version 0.0.6 Released first to Lucas and Archie as a test
7176 run. Since it's the first 'semi-public' release, change version to
7181 run. Since it's the first 'semi-public' release, change version to
7177 > 0.0.6 for any changes now.
7182 > 0.0.6 for any changes now.
7178
7183
7179 * Stuff I had put in the ipplib.py changelog:
7184 * Stuff I had put in the ipplib.py changelog:
7180
7185
7181 Changes to InteractiveShell:
7186 Changes to InteractiveShell:
7182
7187
7183 - Made the usage message a parameter.
7188 - Made the usage message a parameter.
7184
7189
7185 - Require the name of the shell variable to be given. It's a bit
7190 - Require the name of the shell variable to be given. It's a bit
7186 of a hack, but allows the name 'shell' not to be hardwired in the
7191 of a hack, but allows the name 'shell' not to be hardwired in the
7187 magic (@) handler, which is problematic b/c it requires
7192 magic (@) handler, which is problematic b/c it requires
7188 polluting the global namespace with 'shell'. This in turn is
7193 polluting the global namespace with 'shell'. This in turn is
7189 fragile: if a user redefines a variable called shell, things
7194 fragile: if a user redefines a variable called shell, things
7190 break.
7195 break.
7191
7196
7192 - magic @: all functions available through @ need to be defined
7197 - magic @: all functions available through @ need to be defined
7193 as magic_<name>, even though they can be called simply as
7198 as magic_<name>, even though they can be called simply as
7194 @<name>. This allows the special command @magic to gather
7199 @<name>. This allows the special command @magic to gather
7195 information automatically about all existing magic functions,
7200 information automatically about all existing magic functions,
7196 even if they are run-time user extensions, by parsing the shell
7201 even if they are run-time user extensions, by parsing the shell
7197 instance __dict__ looking for special magic_ names.
7202 instance __dict__ looking for special magic_ names.
7198
7203
7199 - mainloop: added *two* local namespace parameters. This allows
7204 - mainloop: added *two* local namespace parameters. This allows
7200 the class to differentiate between parameters which were there
7205 the class to differentiate between parameters which were there
7201 before and after command line initialization was processed. This
7206 before and after command line initialization was processed. This
7202 way, later @who can show things loaded at startup by the
7207 way, later @who can show things loaded at startup by the
7203 user. This trick was necessary to make session saving/reloading
7208 user. This trick was necessary to make session saving/reloading
7204 really work: ideally after saving/exiting/reloading a session,
7209 really work: ideally after saving/exiting/reloading a session,
7205 *everything* should look the same, including the output of @who. I
7210 *everything* should look the same, including the output of @who. I
7206 was only able to make this work with this double namespace
7211 was only able to make this work with this double namespace
7207 trick.
7212 trick.
7208
7213
7209 - added a header to the logfile which allows (almost) full
7214 - added a header to the logfile which allows (almost) full
7210 session restoring.
7215 session restoring.
7211
7216
7212 - prepend lines beginning with @ or !, with a and log
7217 - prepend lines beginning with @ or !, with a and log
7213 them. Why? !lines: may be useful to know what you did @lines:
7218 them. Why? !lines: may be useful to know what you did @lines:
7214 they may affect session state. So when restoring a session, at
7219 they may affect session state. So when restoring a session, at
7215 least inform the user of their presence. I couldn't quite get
7220 least inform the user of their presence. I couldn't quite get
7216 them to properly re-execute, but at least the user is warned.
7221 them to properly re-execute, but at least the user is warned.
7217
7222
7218 * Started ChangeLog.
7223 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now