##// END OF EJS Templates
New extensions ipy_p4 for %p4 magic (perforce)
vivainio -
Show More
@@ -0,0 +1,34 b''
1 # -*- coding: utf-8 -*-
2 """
3 Add %p4 magic for pythonic p4 (Perforce) usage.
4 """
5
6 import IPython.ipapi
7 ip = IPython.ipapi.get()
8
9 import os,sys,marshal
10
11 import ipy_stock_completers
12
13 def p4_f(self, parameter_s=''):
14 cmd = 'p4 -G ' + parameter_s
15 return marshal.load(os.popen(cmd))
16
17 ip.expose_magic('p4', p4_f)
18
19 p4_commands = """\
20 add admin annotate branch branches change changes changelist
21 changelists client clients counter counters delete depot depots
22 describe diff diff2 dirs edit filelog files fix fixes flush fstat
23 group groups have help info integrate integrated job jobs jobspec
24 label labels labelsync lock logger login logout monitor obliterate
25 opened passwd print protect rename reopen resolve resolved revert
26 review reviews set submit sync tag tickets triggers typemap unlock
27 user users verify workspace workspaces where"""
28
29 def p4_completer(self,event):
30 return ipy_stock_completers.vcs_completer(p4_commands, event)
31
32 ip.set_hook('complete_command', p4_completer, str_key = '%p4')
33
34
@@ -1,6228 +1,6235 b''
1 2007-02-22 Ville Vainio <vivainio@gmail.com>
2
3 * IPython/Extensions/ipy_p4.py: Extension for improved
4 p4 (perforce version control system) experience.
5 Adds %p4 magic with p4 command completion and
6 automatic -G argument (marshall output as python dict)
7
1 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
8 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
2
9
3 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
10 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
4 stop marks.
11 stop marks.
5 (ClearingMixin): a simple mixin to easily make a Demo class clear
12 (ClearingMixin): a simple mixin to easily make a Demo class clear
6 the screen in between blocks and have empty marquees. The
13 the screen in between blocks and have empty marquees. The
7 ClearDemo and ClearIPDemo classes that use it are included.
14 ClearDemo and ClearIPDemo classes that use it are included.
8
15
9 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
16 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
10
17
11 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
18 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
12 protect against exceptions at Python shutdown time. Patch
19 protect against exceptions at Python shutdown time. Patch
13 sumbmitted to upstream.
20 sumbmitted to upstream.
14
21
15 2007-02-14 Walter Doerwald <walter@livinglogic.de>
22 2007-02-14 Walter Doerwald <walter@livinglogic.de>
16
23
17 * IPython/Extensions/ibrowse.py: If entering the first object level
24 * IPython/Extensions/ibrowse.py: If entering the first object level
18 (i.e. the object for which the browser has been started) fails,
25 (i.e. the object for which the browser has been started) fails,
19 now the error is raised directly (aborting the browser) instead of
26 now the error is raised directly (aborting the browser) instead of
20 running into an empty levels list later.
27 running into an empty levels list later.
21
28
22 2007-02-03 Walter Doerwald <walter@livinglogic.de>
29 2007-02-03 Walter Doerwald <walter@livinglogic.de>
23
30
24 * IPython/Extensions/ipipe.py: Add an xrepr implementation
31 * IPython/Extensions/ipipe.py: Add an xrepr implementation
25 for the noitem object.
32 for the noitem object.
26
33
27 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
34 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
28
35
29 * IPython/completer.py (Completer.attr_matches): Fix small
36 * IPython/completer.py (Completer.attr_matches): Fix small
30 tab-completion bug with Enthought Traits objects with units.
37 tab-completion bug with Enthought Traits objects with units.
31 Thanks to a bug report by Tom Denniston
38 Thanks to a bug report by Tom Denniston
32 <tom.denniston-AT-alum.dartmouth.org>.
39 <tom.denniston-AT-alum.dartmouth.org>.
33
40
34 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
41 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
35
42
36 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
43 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
37 bug where only .ipy or .py would be completed. Once the first
44 bug where only .ipy or .py would be completed. Once the first
38 argument to %run has been given, all completions are valid because
45 argument to %run has been given, all completions are valid because
39 they are the arguments to the script, which may well be non-python
46 they are the arguments to the script, which may well be non-python
40 filenames.
47 filenames.
41
48
42 * IPython/irunner.py (InteractiveRunner.run_source): major updates
49 * IPython/irunner.py (InteractiveRunner.run_source): major updates
43 to irunner to allow it to correctly support real doctesting of
50 to irunner to allow it to correctly support real doctesting of
44 out-of-process ipython code.
51 out-of-process ipython code.
45
52
46 * IPython/Magic.py (magic_cd): Make the setting of the terminal
53 * IPython/Magic.py (magic_cd): Make the setting of the terminal
47 title an option (-noterm_title) because it completely breaks
54 title an option (-noterm_title) because it completely breaks
48 doctesting.
55 doctesting.
49
56
50 * IPython/demo.py: fix IPythonDemo class that was not actually working.
57 * IPython/demo.py: fix IPythonDemo class that was not actually working.
51
58
52 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
59 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
53
60
54 * IPython/irunner.py (main): fix small bug where extensions were
61 * IPython/irunner.py (main): fix small bug where extensions were
55 not being correctly recognized.
62 not being correctly recognized.
56
63
57 2007-01-23 Walter Doerwald <walter@livinglogic.de>
64 2007-01-23 Walter Doerwald <walter@livinglogic.de>
58
65
59 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
66 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
60 a string containing a single line yields the string itself as the
67 a string containing a single line yields the string itself as the
61 only item.
68 only item.
62
69
63 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
70 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
64 object if it's the same as the one on the last level (This avoids
71 object if it's the same as the one on the last level (This avoids
65 infinite recursion for one line strings).
72 infinite recursion for one line strings).
66
73
67 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
74 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
68
75
69 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
76 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
70 all output streams before printing tracebacks. This ensures that
77 all output streams before printing tracebacks. This ensures that
71 user output doesn't end up interleaved with traceback output.
78 user output doesn't end up interleaved with traceback output.
72
79
73 2007-01-10 Ville Vainio <vivainio@gmail.com>
80 2007-01-10 Ville Vainio <vivainio@gmail.com>
74
81
75 * Extensions/envpersist.py: Turbocharged %env that remembers
82 * Extensions/envpersist.py: Turbocharged %env that remembers
76 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
83 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
77 "%env VISUAL=jed".
84 "%env VISUAL=jed".
78
85
79 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
86 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
80
87
81 * IPython/iplib.py (showtraceback): ensure that we correctly call
88 * IPython/iplib.py (showtraceback): ensure that we correctly call
82 custom handlers in all cases (some with pdb were slipping through,
89 custom handlers in all cases (some with pdb were slipping through,
83 but I'm not exactly sure why).
90 but I'm not exactly sure why).
84
91
85 * IPython/Debugger.py (Tracer.__init__): added new class to
92 * IPython/Debugger.py (Tracer.__init__): added new class to
86 support set_trace-like usage of IPython's enhanced debugger.
93 support set_trace-like usage of IPython's enhanced debugger.
87
94
88 2006-12-24 Ville Vainio <vivainio@gmail.com>
95 2006-12-24 Ville Vainio <vivainio@gmail.com>
89
96
90 * ipmaker.py: more informative message when ipy_user_conf
97 * ipmaker.py: more informative message when ipy_user_conf
91 import fails (suggest running %upgrade).
98 import fails (suggest running %upgrade).
92
99
93 * tools/run_ipy_in_profiler.py: Utility to see where
100 * tools/run_ipy_in_profiler.py: Utility to see where
94 the time during IPython startup is spent.
101 the time during IPython startup is spent.
95
102
96 2006-12-20 Ville Vainio <vivainio@gmail.com>
103 2006-12-20 Ville Vainio <vivainio@gmail.com>
97
104
98 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
105 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
99
106
100 * ipapi.py: Add new ipapi method, expand_alias.
107 * ipapi.py: Add new ipapi method, expand_alias.
101
108
102 * Release.py: Bump up version to 0.7.4.svn
109 * Release.py: Bump up version to 0.7.4.svn
103
110
104 2006-12-17 Ville Vainio <vivainio@gmail.com>
111 2006-12-17 Ville Vainio <vivainio@gmail.com>
105
112
106 * Extensions/jobctrl.py: Fixed &cmd arg arg...
113 * Extensions/jobctrl.py: Fixed &cmd arg arg...
107 to work properly on posix too
114 to work properly on posix too
108
115
109 * Release.py: Update revnum (version is still just 0.7.3).
116 * Release.py: Update revnum (version is still just 0.7.3).
110
117
111 2006-12-15 Ville Vainio <vivainio@gmail.com>
118 2006-12-15 Ville Vainio <vivainio@gmail.com>
112
119
113 * scripts/ipython_win_post_install: create ipython.py in
120 * scripts/ipython_win_post_install: create ipython.py in
114 prefix + "/scripts".
121 prefix + "/scripts".
115
122
116 * Release.py: Update version to 0.7.3.
123 * Release.py: Update version to 0.7.3.
117
124
118 2006-12-14 Ville Vainio <vivainio@gmail.com>
125 2006-12-14 Ville Vainio <vivainio@gmail.com>
119
126
120 * scripts/ipython_win_post_install: Overwrite old shortcuts
127 * scripts/ipython_win_post_install: Overwrite old shortcuts
121 if they already exist
128 if they already exist
122
129
123 * Release.py: release 0.7.3rc2
130 * Release.py: release 0.7.3rc2
124
131
125 2006-12-13 Ville Vainio <vivainio@gmail.com>
132 2006-12-13 Ville Vainio <vivainio@gmail.com>
126
133
127 * Branch and update Release.py for 0.7.3rc1
134 * Branch and update Release.py for 0.7.3rc1
128
135
129 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
136 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
130
137
131 * IPython/Shell.py (IPShellWX): update for current WX naming
138 * IPython/Shell.py (IPShellWX): update for current WX naming
132 conventions, to avoid a deprecation warning with current WX
139 conventions, to avoid a deprecation warning with current WX
133 versions. Thanks to a report by Danny Shevitz.
140 versions. Thanks to a report by Danny Shevitz.
134
141
135 2006-12-12 Ville Vainio <vivainio@gmail.com>
142 2006-12-12 Ville Vainio <vivainio@gmail.com>
136
143
137 * ipmaker.py: apply david cournapeau's patch to make
144 * ipmaker.py: apply david cournapeau's patch to make
138 import_some work properly even when ipythonrc does
145 import_some work properly even when ipythonrc does
139 import_some on empty list (it was an old bug!).
146 import_some on empty list (it was an old bug!).
140
147
141 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
148 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
142 Add deprecation note to ipythonrc and a url to wiki
149 Add deprecation note to ipythonrc and a url to wiki
143 in ipy_user_conf.py
150 in ipy_user_conf.py
144
151
145
152
146 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
153 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
147 as if it was typed on IPython command prompt, i.e.
154 as if it was typed on IPython command prompt, i.e.
148 as IPython script.
155 as IPython script.
149
156
150 * example-magic.py, magic_grepl.py: remove outdated examples
157 * example-magic.py, magic_grepl.py: remove outdated examples
151
158
152 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
159 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
153
160
154 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
161 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
155 is called before any exception has occurred.
162 is called before any exception has occurred.
156
163
157 2006-12-08 Ville Vainio <vivainio@gmail.com>
164 2006-12-08 Ville Vainio <vivainio@gmail.com>
158
165
159 * Extensions/ipy_stock_completers.py: fix cd completer
166 * Extensions/ipy_stock_completers.py: fix cd completer
160 to translate /'s to \'s again.
167 to translate /'s to \'s again.
161
168
162 * completer.py: prevent traceback on file completions w/
169 * completer.py: prevent traceback on file completions w/
163 backslash.
170 backslash.
164
171
165 * Release.py: Update release number to 0.7.3b3 for release
172 * Release.py: Update release number to 0.7.3b3 for release
166
173
167 2006-12-07 Ville Vainio <vivainio@gmail.com>
174 2006-12-07 Ville Vainio <vivainio@gmail.com>
168
175
169 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
176 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
170 while executing external code. Provides more shell-like behaviour
177 while executing external code. Provides more shell-like behaviour
171 and overall better response to ctrl + C / ctrl + break.
178 and overall better response to ctrl + C / ctrl + break.
172
179
173 * tools/make_tarball.py: new script to create tarball straight from svn
180 * tools/make_tarball.py: new script to create tarball straight from svn
174 (setup.py sdist doesn't work on win32).
181 (setup.py sdist doesn't work on win32).
175
182
176 * Extensions/ipy_stock_completers.py: fix cd completer to give up
183 * Extensions/ipy_stock_completers.py: fix cd completer to give up
177 on dirnames with spaces and use the default completer instead.
184 on dirnames with spaces and use the default completer instead.
178
185
179 * Revision.py: Change version to 0.7.3b2 for release.
186 * Revision.py: Change version to 0.7.3b2 for release.
180
187
181 2006-12-05 Ville Vainio <vivainio@gmail.com>
188 2006-12-05 Ville Vainio <vivainio@gmail.com>
182
189
183 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
190 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
184 pydb patch 4 (rm debug printing, py 2.5 checking)
191 pydb patch 4 (rm debug printing, py 2.5 checking)
185
192
186 2006-11-30 Walter Doerwald <walter@livinglogic.de>
193 2006-11-30 Walter Doerwald <walter@livinglogic.de>
187 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
194 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
188 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
195 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
189 "refreshfind" (mapped to "R") does the same but tries to go back to the same
196 "refreshfind" (mapped to "R") does the same but tries to go back to the same
190 object the cursor was on before the refresh. The command "markrange" is
197 object the cursor was on before the refresh. The command "markrange" is
191 mapped to "%" now.
198 mapped to "%" now.
192 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
199 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
193
200
194 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
201 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
195
202
196 * IPython/Magic.py (magic_debug): new %debug magic to activate the
203 * IPython/Magic.py (magic_debug): new %debug magic to activate the
197 interactive debugger on the last traceback, without having to call
204 interactive debugger on the last traceback, without having to call
198 %pdb and rerun your code. Made minor changes in various modules,
205 %pdb and rerun your code. Made minor changes in various modules,
199 should automatically recognize pydb if available.
206 should automatically recognize pydb if available.
200
207
201 2006-11-28 Ville Vainio <vivainio@gmail.com>
208 2006-11-28 Ville Vainio <vivainio@gmail.com>
202
209
203 * completer.py: If the text start with !, show file completions
210 * completer.py: If the text start with !, show file completions
204 properly. This helps when trying to complete command name
211 properly. This helps when trying to complete command name
205 for shell escapes.
212 for shell escapes.
206
213
207 2006-11-27 Ville Vainio <vivainio@gmail.com>
214 2006-11-27 Ville Vainio <vivainio@gmail.com>
208
215
209 * ipy_stock_completers.py: bzr completer submitted by Stefan van
216 * ipy_stock_completers.py: bzr completer submitted by Stefan van
210 der Walt. Clean up svn and hg completers by using a common
217 der Walt. Clean up svn and hg completers by using a common
211 vcs_completer.
218 vcs_completer.
212
219
213 2006-11-26 Ville Vainio <vivainio@gmail.com>
220 2006-11-26 Ville Vainio <vivainio@gmail.com>
214
221
215 * Remove ipconfig and %config; you should use _ip.options structure
222 * Remove ipconfig and %config; you should use _ip.options structure
216 directly instead!
223 directly instead!
217
224
218 * genutils.py: add wrap_deprecated function for deprecating callables
225 * genutils.py: add wrap_deprecated function for deprecating callables
219
226
220 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
227 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
221 _ip.system instead. ipalias is redundant.
228 _ip.system instead. ipalias is redundant.
222
229
223 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
230 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
224 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
231 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
225 explicit.
232 explicit.
226
233
227 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
234 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
228 completer. Try it by entering 'hg ' and pressing tab.
235 completer. Try it by entering 'hg ' and pressing tab.
229
236
230 * macro.py: Give Macro a useful __repr__ method
237 * macro.py: Give Macro a useful __repr__ method
231
238
232 * Magic.py: %whos abbreviates the typename of Macro for brevity.
239 * Magic.py: %whos abbreviates the typename of Macro for brevity.
233
240
234 2006-11-24 Walter Doerwald <walter@livinglogic.de>
241 2006-11-24 Walter Doerwald <walter@livinglogic.de>
235 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
242 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
236 we don't get a duplicate ipipe module, where registration of the xrepr
243 we don't get a duplicate ipipe module, where registration of the xrepr
237 implementation for Text is useless.
244 implementation for Text is useless.
238
245
239 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
246 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
240
247
241 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
248 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
242
249
243 2006-11-24 Ville Vainio <vivainio@gmail.com>
250 2006-11-24 Ville Vainio <vivainio@gmail.com>
244
251
245 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
252 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
246 try to use "cProfile" instead of the slower pure python
253 try to use "cProfile" instead of the slower pure python
247 "profile"
254 "profile"
248
255
249 2006-11-23 Ville Vainio <vivainio@gmail.com>
256 2006-11-23 Ville Vainio <vivainio@gmail.com>
250
257
251 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
258 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
252 Qt+IPython+Designer link in documentation.
259 Qt+IPython+Designer link in documentation.
253
260
254 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
261 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
255 correct Pdb object to %pydb.
262 correct Pdb object to %pydb.
256
263
257
264
258 2006-11-22 Walter Doerwald <walter@livinglogic.de>
265 2006-11-22 Walter Doerwald <walter@livinglogic.de>
259 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
266 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
260 generic xrepr(), otherwise the list implementation would kick in.
267 generic xrepr(), otherwise the list implementation would kick in.
261
268
262 2006-11-21 Ville Vainio <vivainio@gmail.com>
269 2006-11-21 Ville Vainio <vivainio@gmail.com>
263
270
264 * upgrade_dir.py: Now actually overwrites a nonmodified user file
271 * upgrade_dir.py: Now actually overwrites a nonmodified user file
265 with one from UserConfig.
272 with one from UserConfig.
266
273
267 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
274 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
268 it was missing which broke the sh profile.
275 it was missing which broke the sh profile.
269
276
270 * completer.py: file completer now uses explicit '/' instead
277 * completer.py: file completer now uses explicit '/' instead
271 of os.path.join, expansion of 'foo' was broken on win32
278 of os.path.join, expansion of 'foo' was broken on win32
272 if there was one directory with name 'foobar'.
279 if there was one directory with name 'foobar'.
273
280
274 * A bunch of patches from Kirill Smelkov:
281 * A bunch of patches from Kirill Smelkov:
275
282
276 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
283 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
277
284
278 * [patch 7/9] Implement %page -r (page in raw mode) -
285 * [patch 7/9] Implement %page -r (page in raw mode) -
279
286
280 * [patch 5/9] ScientificPython webpage has moved
287 * [patch 5/9] ScientificPython webpage has moved
281
288
282 * [patch 4/9] The manual mentions %ds, should be %dhist
289 * [patch 4/9] The manual mentions %ds, should be %dhist
283
290
284 * [patch 3/9] Kill old bits from %prun doc.
291 * [patch 3/9] Kill old bits from %prun doc.
285
292
286 * [patch 1/9] Fix typos here and there.
293 * [patch 1/9] Fix typos here and there.
287
294
288 2006-11-08 Ville Vainio <vivainio@gmail.com>
295 2006-11-08 Ville Vainio <vivainio@gmail.com>
289
296
290 * completer.py (attr_matches): catch all exceptions raised
297 * completer.py (attr_matches): catch all exceptions raised
291 by eval of expr with dots.
298 by eval of expr with dots.
292
299
293 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
300 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
294
301
295 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
302 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
296 input if it starts with whitespace. This allows you to paste
303 input if it starts with whitespace. This allows you to paste
297 indented input from any editor without manually having to type in
304 indented input from any editor without manually having to type in
298 the 'if 1:', which is convenient when working interactively.
305 the 'if 1:', which is convenient when working interactively.
299 Slightly modifed version of a patch by Bo Peng
306 Slightly modifed version of a patch by Bo Peng
300 <bpeng-AT-rice.edu>.
307 <bpeng-AT-rice.edu>.
301
308
302 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
309 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
303
310
304 * IPython/irunner.py (main): modified irunner so it automatically
311 * IPython/irunner.py (main): modified irunner so it automatically
305 recognizes the right runner to use based on the extension (.py for
312 recognizes the right runner to use based on the extension (.py for
306 python, .ipy for ipython and .sage for sage).
313 python, .ipy for ipython and .sage for sage).
307
314
308 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
315 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
309 visible in ipapi as ip.config(), to programatically control the
316 visible in ipapi as ip.config(), to programatically control the
310 internal rc object. There's an accompanying %config magic for
317 internal rc object. There's an accompanying %config magic for
311 interactive use, which has been enhanced to match the
318 interactive use, which has been enhanced to match the
312 funtionality in ipconfig.
319 funtionality in ipconfig.
313
320
314 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
321 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
315 so it's not just a toggle, it now takes an argument. Add support
322 so it's not just a toggle, it now takes an argument. Add support
316 for a customizable header when making system calls, as the new
323 for a customizable header when making system calls, as the new
317 system_header variable in the ipythonrc file.
324 system_header variable in the ipythonrc file.
318
325
319 2006-11-03 Walter Doerwald <walter@livinglogic.de>
326 2006-11-03 Walter Doerwald <walter@livinglogic.de>
320
327
321 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
328 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
322 generic functions (using Philip J. Eby's simplegeneric package).
329 generic functions (using Philip J. Eby's simplegeneric package).
323 This makes it possible to customize the display of third-party classes
330 This makes it possible to customize the display of third-party classes
324 without having to monkeypatch them. xiter() no longer supports a mode
331 without having to monkeypatch them. xiter() no longer supports a mode
325 argument and the XMode class has been removed. The same functionality can
332 argument and the XMode class has been removed. The same functionality can
326 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
333 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
327 One consequence of the switch to generic functions is that xrepr() and
334 One consequence of the switch to generic functions is that xrepr() and
328 xattrs() implementation must define the default value for the mode
335 xattrs() implementation must define the default value for the mode
329 argument themselves and xattrs() implementations must return real
336 argument themselves and xattrs() implementations must return real
330 descriptors.
337 descriptors.
331
338
332 * IPython/external: This new subpackage will contain all third-party
339 * IPython/external: This new subpackage will contain all third-party
333 packages that are bundled with IPython. (The first one is simplegeneric).
340 packages that are bundled with IPython. (The first one is simplegeneric).
334
341
335 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
342 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
336 directory which as been dropped in r1703.
343 directory which as been dropped in r1703.
337
344
338 * IPython/Extensions/ipipe.py (iless): Fixed.
345 * IPython/Extensions/ipipe.py (iless): Fixed.
339
346
340 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
347 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
341
348
342 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
349 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
343
350
344 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
351 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
345 handling in variable expansion so that shells and magics recognize
352 handling in variable expansion so that shells and magics recognize
346 function local scopes correctly. Bug reported by Brian.
353 function local scopes correctly. Bug reported by Brian.
347
354
348 * scripts/ipython: remove the very first entry in sys.path which
355 * scripts/ipython: remove the very first entry in sys.path which
349 Python auto-inserts for scripts, so that sys.path under IPython is
356 Python auto-inserts for scripts, so that sys.path under IPython is
350 as similar as possible to that under plain Python.
357 as similar as possible to that under plain Python.
351
358
352 * IPython/completer.py (IPCompleter.file_matches): Fix
359 * IPython/completer.py (IPCompleter.file_matches): Fix
353 tab-completion so that quotes are not closed unless the completion
360 tab-completion so that quotes are not closed unless the completion
354 is unambiguous. After a request by Stefan. Minor cleanups in
361 is unambiguous. After a request by Stefan. Minor cleanups in
355 ipy_stock_completers.
362 ipy_stock_completers.
356
363
357 2006-11-02 Ville Vainio <vivainio@gmail.com>
364 2006-11-02 Ville Vainio <vivainio@gmail.com>
358
365
359 * ipy_stock_completers.py: Add %run and %cd completers.
366 * ipy_stock_completers.py: Add %run and %cd completers.
360
367
361 * completer.py: Try running custom completer for both
368 * completer.py: Try running custom completer for both
362 "foo" and "%foo" if the command is just "foo". Ignore case
369 "foo" and "%foo" if the command is just "foo". Ignore case
363 when filtering possible completions.
370 when filtering possible completions.
364
371
365 * UserConfig/ipy_user_conf.py: install stock completers as default
372 * UserConfig/ipy_user_conf.py: install stock completers as default
366
373
367 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
374 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
368 simplified readline history save / restore through a wrapper
375 simplified readline history save / restore through a wrapper
369 function
376 function
370
377
371
378
372 2006-10-31 Ville Vainio <vivainio@gmail.com>
379 2006-10-31 Ville Vainio <vivainio@gmail.com>
373
380
374 * strdispatch.py, completer.py, ipy_stock_completers.py:
381 * strdispatch.py, completer.py, ipy_stock_completers.py:
375 Allow str_key ("command") in completer hooks. Implement
382 Allow str_key ("command") in completer hooks. Implement
376 trivial completer for 'import' (stdlib modules only). Rename
383 trivial completer for 'import' (stdlib modules only). Rename
377 ipy_linux_package_managers.py to ipy_stock_completers.py.
384 ipy_linux_package_managers.py to ipy_stock_completers.py.
378 SVN completer.
385 SVN completer.
379
386
380 * Extensions/ledit.py: %magic line editor for easily and
387 * Extensions/ledit.py: %magic line editor for easily and
381 incrementally manipulating lists of strings. The magic command
388 incrementally manipulating lists of strings. The magic command
382 name is %led.
389 name is %led.
383
390
384 2006-10-30 Ville Vainio <vivainio@gmail.com>
391 2006-10-30 Ville Vainio <vivainio@gmail.com>
385
392
386 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
393 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
387 Bernsteins's patches for pydb integration.
394 Bernsteins's patches for pydb integration.
388 http://bashdb.sourceforge.net/pydb/
395 http://bashdb.sourceforge.net/pydb/
389
396
390 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
397 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
391 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
398 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
392 custom completer hook to allow the users to implement their own
399 custom completer hook to allow the users to implement their own
393 completers. See ipy_linux_package_managers.py for example. The
400 completers. See ipy_linux_package_managers.py for example. The
394 hook name is 'complete_command'.
401 hook name is 'complete_command'.
395
402
396 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
403 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
397
404
398 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
405 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
399 Numeric leftovers.
406 Numeric leftovers.
400
407
401 * ipython.el (py-execute-region): apply Stefan's patch to fix
408 * ipython.el (py-execute-region): apply Stefan's patch to fix
402 garbled results if the python shell hasn't been previously started.
409 garbled results if the python shell hasn't been previously started.
403
410
404 * IPython/genutils.py (arg_split): moved to genutils, since it's a
411 * IPython/genutils.py (arg_split): moved to genutils, since it's a
405 pretty generic function and useful for other things.
412 pretty generic function and useful for other things.
406
413
407 * IPython/OInspect.py (getsource): Add customizable source
414 * IPython/OInspect.py (getsource): Add customizable source
408 extractor. After a request/patch form W. Stein (SAGE).
415 extractor. After a request/patch form W. Stein (SAGE).
409
416
410 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
417 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
411 window size to a more reasonable value from what pexpect does,
418 window size to a more reasonable value from what pexpect does,
412 since their choice causes wrapping bugs with long input lines.
419 since their choice causes wrapping bugs with long input lines.
413
420
414 2006-10-28 Ville Vainio <vivainio@gmail.com>
421 2006-10-28 Ville Vainio <vivainio@gmail.com>
415
422
416 * Magic.py (%run): Save and restore the readline history from
423 * Magic.py (%run): Save and restore the readline history from
417 file around %run commands to prevent side effects from
424 file around %run commands to prevent side effects from
418 %runned programs that might use readline (e.g. pydb).
425 %runned programs that might use readline (e.g. pydb).
419
426
420 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
427 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
421 invoking the pydb enhanced debugger.
428 invoking the pydb enhanced debugger.
422
429
423 2006-10-23 Walter Doerwald <walter@livinglogic.de>
430 2006-10-23 Walter Doerwald <walter@livinglogic.de>
424
431
425 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
432 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
426 call the base class method and propagate the return value to
433 call the base class method and propagate the return value to
427 ifile. This is now done by path itself.
434 ifile. This is now done by path itself.
428
435
429 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
436 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
430
437
431 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
438 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
432 api: set_crash_handler(), to expose the ability to change the
439 api: set_crash_handler(), to expose the ability to change the
433 internal crash handler.
440 internal crash handler.
434
441
435 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
442 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
436 the various parameters of the crash handler so that apps using
443 the various parameters of the crash handler so that apps using
437 IPython as their engine can customize crash handling. Ipmlemented
444 IPython as their engine can customize crash handling. Ipmlemented
438 at the request of SAGE.
445 at the request of SAGE.
439
446
440 2006-10-14 Ville Vainio <vivainio@gmail.com>
447 2006-10-14 Ville Vainio <vivainio@gmail.com>
441
448
442 * Magic.py, ipython.el: applied first "safe" part of Rocky
449 * Magic.py, ipython.el: applied first "safe" part of Rocky
443 Bernstein's patch set for pydb integration.
450 Bernstein's patch set for pydb integration.
444
451
445 * Magic.py (%unalias, %alias): %store'd aliases can now be
452 * Magic.py (%unalias, %alias): %store'd aliases can now be
446 removed with '%unalias'. %alias w/o args now shows most
453 removed with '%unalias'. %alias w/o args now shows most
447 interesting (stored / manually defined) aliases last
454 interesting (stored / manually defined) aliases last
448 where they catch the eye w/o scrolling.
455 where they catch the eye w/o scrolling.
449
456
450 * Magic.py (%rehashx), ext_rehashdir.py: files with
457 * Magic.py (%rehashx), ext_rehashdir.py: files with
451 'py' extension are always considered executable, even
458 'py' extension are always considered executable, even
452 when not in PATHEXT environment variable.
459 when not in PATHEXT environment variable.
453
460
454 2006-10-12 Ville Vainio <vivainio@gmail.com>
461 2006-10-12 Ville Vainio <vivainio@gmail.com>
455
462
456 * jobctrl.py: Add new "jobctrl" extension for spawning background
463 * jobctrl.py: Add new "jobctrl" extension for spawning background
457 processes with "&find /". 'import jobctrl' to try it out. Requires
464 processes with "&find /". 'import jobctrl' to try it out. Requires
458 'subprocess' module, standard in python 2.4+.
465 'subprocess' module, standard in python 2.4+.
459
466
460 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
467 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
461 so if foo -> bar and bar -> baz, then foo -> baz.
468 so if foo -> bar and bar -> baz, then foo -> baz.
462
469
463 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
470 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
464
471
465 * IPython/Magic.py (Magic.parse_options): add a new posix option
472 * IPython/Magic.py (Magic.parse_options): add a new posix option
466 to allow parsing of input args in magics that doesn't strip quotes
473 to allow parsing of input args in magics that doesn't strip quotes
467 (if posix=False). This also closes %timeit bug reported by
474 (if posix=False). This also closes %timeit bug reported by
468 Stefan.
475 Stefan.
469
476
470 2006-10-03 Ville Vainio <vivainio@gmail.com>
477 2006-10-03 Ville Vainio <vivainio@gmail.com>
471
478
472 * iplib.py (raw_input, interact): Return ValueError catching for
479 * iplib.py (raw_input, interact): Return ValueError catching for
473 raw_input. Fixes infinite loop for sys.stdin.close() or
480 raw_input. Fixes infinite loop for sys.stdin.close() or
474 sys.stdout.close().
481 sys.stdout.close().
475
482
476 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
483 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
477
484
478 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
485 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
479 to help in handling doctests. irunner is now pretty useful for
486 to help in handling doctests. irunner is now pretty useful for
480 running standalone scripts and simulate a full interactive session
487 running standalone scripts and simulate a full interactive session
481 in a format that can be then pasted as a doctest.
488 in a format that can be then pasted as a doctest.
482
489
483 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
490 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
484 on top of the default (useless) ones. This also fixes the nasty
491 on top of the default (useless) ones. This also fixes the nasty
485 way in which 2.5's Quitter() exits (reverted [1785]).
492 way in which 2.5's Quitter() exits (reverted [1785]).
486
493
487 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
494 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
488 2.5.
495 2.5.
489
496
490 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
497 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
491 color scheme is updated as well when color scheme is changed
498 color scheme is updated as well when color scheme is changed
492 interactively.
499 interactively.
493
500
494 2006-09-27 Ville Vainio <vivainio@gmail.com>
501 2006-09-27 Ville Vainio <vivainio@gmail.com>
495
502
496 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
503 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
497 infinite loop and just exit. It's a hack, but will do for a while.
504 infinite loop and just exit. It's a hack, but will do for a while.
498
505
499 2006-08-25 Walter Doerwald <walter@livinglogic.de>
506 2006-08-25 Walter Doerwald <walter@livinglogic.de>
500
507
501 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
508 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
502 the constructor, this makes it possible to get a list of only directories
509 the constructor, this makes it possible to get a list of only directories
503 or only files.
510 or only files.
504
511
505 2006-08-12 Ville Vainio <vivainio@gmail.com>
512 2006-08-12 Ville Vainio <vivainio@gmail.com>
506
513
507 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
514 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
508 they broke unittest
515 they broke unittest
509
516
510 2006-08-11 Ville Vainio <vivainio@gmail.com>
517 2006-08-11 Ville Vainio <vivainio@gmail.com>
511
518
512 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
519 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
513 by resolving issue properly, i.e. by inheriting FakeModule
520 by resolving issue properly, i.e. by inheriting FakeModule
514 from types.ModuleType. Pickling ipython interactive data
521 from types.ModuleType. Pickling ipython interactive data
515 should still work as usual (testing appreciated).
522 should still work as usual (testing appreciated).
516
523
517 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
524 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
518
525
519 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
526 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
520 running under python 2.3 with code from 2.4 to fix a bug with
527 running under python 2.3 with code from 2.4 to fix a bug with
521 help(). Reported by the Debian maintainers, Norbert Tretkowski
528 help(). Reported by the Debian maintainers, Norbert Tretkowski
522 <norbert-AT-tretkowski.de> and Alexandre Fayolle
529 <norbert-AT-tretkowski.de> and Alexandre Fayolle
523 <afayolle-AT-debian.org>.
530 <afayolle-AT-debian.org>.
524
531
525 2006-08-04 Walter Doerwald <walter@livinglogic.de>
532 2006-08-04 Walter Doerwald <walter@livinglogic.de>
526
533
527 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
534 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
528 (which was displaying "quit" twice).
535 (which was displaying "quit" twice).
529
536
530 2006-07-28 Walter Doerwald <walter@livinglogic.de>
537 2006-07-28 Walter Doerwald <walter@livinglogic.de>
531
538
532 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
539 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
533 the mode argument).
540 the mode argument).
534
541
535 2006-07-27 Walter Doerwald <walter@livinglogic.de>
542 2006-07-27 Walter Doerwald <walter@livinglogic.de>
536
543
537 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
544 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
538 not running under IPython.
545 not running under IPython.
539
546
540 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
547 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
541 and make it iterable (iterating over the attribute itself). Add two new
548 and make it iterable (iterating over the attribute itself). Add two new
542 magic strings for __xattrs__(): If the string starts with "-", the attribute
549 magic strings for __xattrs__(): If the string starts with "-", the attribute
543 will not be displayed in ibrowse's detail view (but it can still be
550 will not be displayed in ibrowse's detail view (but it can still be
544 iterated over). This makes it possible to add attributes that are large
551 iterated over). This makes it possible to add attributes that are large
545 lists or generator methods to the detail view. Replace magic attribute names
552 lists or generator methods to the detail view. Replace magic attribute names
546 and _attrname() and _getattr() with "descriptors": For each type of magic
553 and _attrname() and _getattr() with "descriptors": For each type of magic
547 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
554 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
548 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
555 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
549 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
556 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
550 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
557 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
551 are still supported.
558 are still supported.
552
559
553 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
560 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
554 fails in ibrowse.fetch(), the exception object is added as the last item
561 fails in ibrowse.fetch(), the exception object is added as the last item
555 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
562 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
556 a generator throws an exception midway through execution.
563 a generator throws an exception midway through execution.
557
564
558 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
565 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
559 encoding into methods.
566 encoding into methods.
560
567
561 2006-07-26 Ville Vainio <vivainio@gmail.com>
568 2006-07-26 Ville Vainio <vivainio@gmail.com>
562
569
563 * iplib.py: history now stores multiline input as single
570 * iplib.py: history now stores multiline input as single
564 history entries. Patch by Jorgen Cederlof.
571 history entries. Patch by Jorgen Cederlof.
565
572
566 2006-07-18 Walter Doerwald <walter@livinglogic.de>
573 2006-07-18 Walter Doerwald <walter@livinglogic.de>
567
574
568 * IPython/Extensions/ibrowse.py: Make cursor visible over
575 * IPython/Extensions/ibrowse.py: Make cursor visible over
569 non existing attributes.
576 non existing attributes.
570
577
571 2006-07-14 Walter Doerwald <walter@livinglogic.de>
578 2006-07-14 Walter Doerwald <walter@livinglogic.de>
572
579
573 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
580 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
574 error output of the running command doesn't mess up the screen.
581 error output of the running command doesn't mess up the screen.
575
582
576 2006-07-13 Walter Doerwald <walter@livinglogic.de>
583 2006-07-13 Walter Doerwald <walter@livinglogic.de>
577
584
578 * IPython/Extensions/ipipe.py (isort): Make isort usable without
585 * IPython/Extensions/ipipe.py (isort): Make isort usable without
579 argument. This sorts the items themselves.
586 argument. This sorts the items themselves.
580
587
581 2006-07-12 Walter Doerwald <walter@livinglogic.de>
588 2006-07-12 Walter Doerwald <walter@livinglogic.de>
582
589
583 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
590 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
584 Compile expression strings into code objects. This should speed
591 Compile expression strings into code objects. This should speed
585 up ifilter and friends somewhat.
592 up ifilter and friends somewhat.
586
593
587 2006-07-08 Ville Vainio <vivainio@gmail.com>
594 2006-07-08 Ville Vainio <vivainio@gmail.com>
588
595
589 * Magic.py: %cpaste now strips > from the beginning of lines
596 * Magic.py: %cpaste now strips > from the beginning of lines
590 to ease pasting quoted code from emails. Contributed by
597 to ease pasting quoted code from emails. Contributed by
591 Stefan van der Walt.
598 Stefan van der Walt.
592
599
593 2006-06-29 Ville Vainio <vivainio@gmail.com>
600 2006-06-29 Ville Vainio <vivainio@gmail.com>
594
601
595 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
602 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
596 mode, patch contributed by Darren Dale. NEEDS TESTING!
603 mode, patch contributed by Darren Dale. NEEDS TESTING!
597
604
598 2006-06-28 Walter Doerwald <walter@livinglogic.de>
605 2006-06-28 Walter Doerwald <walter@livinglogic.de>
599
606
600 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
607 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
601 a blue background. Fix fetching new display rows when the browser
608 a blue background. Fix fetching new display rows when the browser
602 scrolls more than a screenful (e.g. by using the goto command).
609 scrolls more than a screenful (e.g. by using the goto command).
603
610
604 2006-06-27 Ville Vainio <vivainio@gmail.com>
611 2006-06-27 Ville Vainio <vivainio@gmail.com>
605
612
606 * Magic.py (_inspect, _ofind) Apply David Huard's
613 * Magic.py (_inspect, _ofind) Apply David Huard's
607 patch for displaying the correct docstring for 'property'
614 patch for displaying the correct docstring for 'property'
608 attributes.
615 attributes.
609
616
610 2006-06-23 Walter Doerwald <walter@livinglogic.de>
617 2006-06-23 Walter Doerwald <walter@livinglogic.de>
611
618
612 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
619 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
613 commands into the methods implementing them.
620 commands into the methods implementing them.
614
621
615 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
622 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
616
623
617 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
624 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
618 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
625 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
619 autoindent support was authored by Jin Liu.
626 autoindent support was authored by Jin Liu.
620
627
621 2006-06-22 Walter Doerwald <walter@livinglogic.de>
628 2006-06-22 Walter Doerwald <walter@livinglogic.de>
622
629
623 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
630 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
624 for keymaps with a custom class that simplifies handling.
631 for keymaps with a custom class that simplifies handling.
625
632
626 2006-06-19 Walter Doerwald <walter@livinglogic.de>
633 2006-06-19 Walter Doerwald <walter@livinglogic.de>
627
634
628 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
635 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
629 resizing. This requires Python 2.5 to work.
636 resizing. This requires Python 2.5 to work.
630
637
631 2006-06-16 Walter Doerwald <walter@livinglogic.de>
638 2006-06-16 Walter Doerwald <walter@livinglogic.de>
632
639
633 * IPython/Extensions/ibrowse.py: Add two new commands to
640 * IPython/Extensions/ibrowse.py: Add two new commands to
634 ibrowse: "hideattr" (mapped to "h") hides the attribute under
641 ibrowse: "hideattr" (mapped to "h") hides the attribute under
635 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
642 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
636 attributes again. Remapped the help command to "?". Display
643 attributes again. Remapped the help command to "?". Display
637 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
644 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
638 as keys for the "home" and "end" commands. Add three new commands
645 as keys for the "home" and "end" commands. Add three new commands
639 to the input mode for "find" and friends: "delend" (CTRL-K)
646 to the input mode for "find" and friends: "delend" (CTRL-K)
640 deletes to the end of line. "incsearchup" searches upwards in the
647 deletes to the end of line. "incsearchup" searches upwards in the
641 command history for an input that starts with the text before the cursor.
648 command history for an input that starts with the text before the cursor.
642 "incsearchdown" does the same downwards. Removed a bogus mapping of
649 "incsearchdown" does the same downwards. Removed a bogus mapping of
643 the x key to "delete".
650 the x key to "delete".
644
651
645 2006-06-15 Ville Vainio <vivainio@gmail.com>
652 2006-06-15 Ville Vainio <vivainio@gmail.com>
646
653
647 * iplib.py, hooks.py: Added new generate_prompt hook that can be
654 * iplib.py, hooks.py: Added new generate_prompt hook that can be
648 used to create prompts dynamically, instead of the "old" way of
655 used to create prompts dynamically, instead of the "old" way of
649 assigning "magic" strings to prompt_in1 and prompt_in2. The old
656 assigning "magic" strings to prompt_in1 and prompt_in2. The old
650 way still works (it's invoked by the default hook), of course.
657 way still works (it's invoked by the default hook), of course.
651
658
652 * Prompts.py: added generate_output_prompt hook for altering output
659 * Prompts.py: added generate_output_prompt hook for altering output
653 prompt
660 prompt
654
661
655 * Release.py: Changed version string to 0.7.3.svn.
662 * Release.py: Changed version string to 0.7.3.svn.
656
663
657 2006-06-15 Walter Doerwald <walter@livinglogic.de>
664 2006-06-15 Walter Doerwald <walter@livinglogic.de>
658
665
659 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
666 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
660 the call to fetch() always tries to fetch enough data for at least one
667 the call to fetch() always tries to fetch enough data for at least one
661 full screen. This makes it possible to simply call moveto(0,0,True) in
668 full screen. This makes it possible to simply call moveto(0,0,True) in
662 the constructor. Fix typos and removed the obsolete goto attribute.
669 the constructor. Fix typos and removed the obsolete goto attribute.
663
670
664 2006-06-12 Ville Vainio <vivainio@gmail.com>
671 2006-06-12 Ville Vainio <vivainio@gmail.com>
665
672
666 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
673 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
667 allowing $variable interpolation within multiline statements,
674 allowing $variable interpolation within multiline statements,
668 though so far only with "sh" profile for a testing period.
675 though so far only with "sh" profile for a testing period.
669 The patch also enables splitting long commands with \ but it
676 The patch also enables splitting long commands with \ but it
670 doesn't work properly yet.
677 doesn't work properly yet.
671
678
672 2006-06-12 Walter Doerwald <walter@livinglogic.de>
679 2006-06-12 Walter Doerwald <walter@livinglogic.de>
673
680
674 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
681 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
675 input history and the position of the cursor in the input history for
682 input history and the position of the cursor in the input history for
676 the find, findbackwards and goto command.
683 the find, findbackwards and goto command.
677
684
678 2006-06-10 Walter Doerwald <walter@livinglogic.de>
685 2006-06-10 Walter Doerwald <walter@livinglogic.de>
679
686
680 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
687 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
681 implements the basic functionality of browser commands that require
688 implements the basic functionality of browser commands that require
682 input. Reimplement the goto, find and findbackwards commands as
689 input. Reimplement the goto, find and findbackwards commands as
683 subclasses of _CommandInput. Add an input history and keymaps to those
690 subclasses of _CommandInput. Add an input history and keymaps to those
684 commands. Add "\r" as a keyboard shortcut for the enterdefault and
691 commands. Add "\r" as a keyboard shortcut for the enterdefault and
685 execute commands.
692 execute commands.
686
693
687 2006-06-07 Ville Vainio <vivainio@gmail.com>
694 2006-06-07 Ville Vainio <vivainio@gmail.com>
688
695
689 * iplib.py: ipython mybatch.ipy exits ipython immediately after
696 * iplib.py: ipython mybatch.ipy exits ipython immediately after
690 running the batch files instead of leaving the session open.
697 running the batch files instead of leaving the session open.
691
698
692 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
699 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
693
700
694 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
701 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
695 the original fix was incomplete. Patch submitted by W. Maier.
702 the original fix was incomplete. Patch submitted by W. Maier.
696
703
697 2006-06-07 Ville Vainio <vivainio@gmail.com>
704 2006-06-07 Ville Vainio <vivainio@gmail.com>
698
705
699 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
706 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
700 Confirmation prompts can be supressed by 'quiet' option.
707 Confirmation prompts can be supressed by 'quiet' option.
701 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
708 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
702
709
703 2006-06-06 *** Released version 0.7.2
710 2006-06-06 *** Released version 0.7.2
704
711
705 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
712 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
706
713
707 * IPython/Release.py (version): Made 0.7.2 final for release.
714 * IPython/Release.py (version): Made 0.7.2 final for release.
708 Repo tagged and release cut.
715 Repo tagged and release cut.
709
716
710 2006-06-05 Ville Vainio <vivainio@gmail.com>
717 2006-06-05 Ville Vainio <vivainio@gmail.com>
711
718
712 * Magic.py (magic_rehashx): Honor no_alias list earlier in
719 * Magic.py (magic_rehashx): Honor no_alias list earlier in
713 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
720 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
714
721
715 * upgrade_dir.py: try import 'path' module a bit harder
722 * upgrade_dir.py: try import 'path' module a bit harder
716 (for %upgrade)
723 (for %upgrade)
717
724
718 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
725 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
719
726
720 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
727 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
721 instead of looping 20 times.
728 instead of looping 20 times.
722
729
723 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
730 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
724 correctly at initialization time. Bug reported by Krishna Mohan
731 correctly at initialization time. Bug reported by Krishna Mohan
725 Gundu <gkmohan-AT-gmail.com> on the user list.
732 Gundu <gkmohan-AT-gmail.com> on the user list.
726
733
727 * IPython/Release.py (version): Mark 0.7.2 version to start
734 * IPython/Release.py (version): Mark 0.7.2 version to start
728 testing for release on 06/06.
735 testing for release on 06/06.
729
736
730 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
737 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
731
738
732 * scripts/irunner: thin script interface so users don't have to
739 * scripts/irunner: thin script interface so users don't have to
733 find the module and call it as an executable, since modules rarely
740 find the module and call it as an executable, since modules rarely
734 live in people's PATH.
741 live in people's PATH.
735
742
736 * IPython/irunner.py (InteractiveRunner.__init__): added
743 * IPython/irunner.py (InteractiveRunner.__init__): added
737 delaybeforesend attribute to control delays with newer versions of
744 delaybeforesend attribute to control delays with newer versions of
738 pexpect. Thanks to detailed help from pexpect's author, Noah
745 pexpect. Thanks to detailed help from pexpect's author, Noah
739 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
746 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
740 correctly (it works in NoColor mode).
747 correctly (it works in NoColor mode).
741
748
742 * IPython/iplib.py (handle_normal): fix nasty crash reported on
749 * IPython/iplib.py (handle_normal): fix nasty crash reported on
743 SAGE list, from improper log() calls.
750 SAGE list, from improper log() calls.
744
751
745 2006-05-31 Ville Vainio <vivainio@gmail.com>
752 2006-05-31 Ville Vainio <vivainio@gmail.com>
746
753
747 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
754 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
748 with args in parens to work correctly with dirs that have spaces.
755 with args in parens to work correctly with dirs that have spaces.
749
756
750 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
757 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
751
758
752 * IPython/Logger.py (Logger.logstart): add option to log raw input
759 * IPython/Logger.py (Logger.logstart): add option to log raw input
753 instead of the processed one. A -r flag was added to the
760 instead of the processed one. A -r flag was added to the
754 %logstart magic used for controlling logging.
761 %logstart magic used for controlling logging.
755
762
756 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
763 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
757
764
758 * IPython/iplib.py (InteractiveShell.__init__): add check for the
765 * IPython/iplib.py (InteractiveShell.__init__): add check for the
759 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
766 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
760 recognize the option. After a bug report by Will Maier. This
767 recognize the option. After a bug report by Will Maier. This
761 closes #64 (will do it after confirmation from W. Maier).
768 closes #64 (will do it after confirmation from W. Maier).
762
769
763 * IPython/irunner.py: New module to run scripts as if manually
770 * IPython/irunner.py: New module to run scripts as if manually
764 typed into an interactive environment, based on pexpect. After a
771 typed into an interactive environment, based on pexpect. After a
765 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
772 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
766 ipython-user list. Simple unittests in the tests/ directory.
773 ipython-user list. Simple unittests in the tests/ directory.
767
774
768 * tools/release: add Will Maier, OpenBSD port maintainer, to
775 * tools/release: add Will Maier, OpenBSD port maintainer, to
769 recepients list. We are now officially part of the OpenBSD ports:
776 recepients list. We are now officially part of the OpenBSD ports:
770 http://www.openbsd.org/ports.html ! Many thanks to Will for the
777 http://www.openbsd.org/ports.html ! Many thanks to Will for the
771 work.
778 work.
772
779
773 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
780 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
774
781
775 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
782 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
776 so that it doesn't break tkinter apps.
783 so that it doesn't break tkinter apps.
777
784
778 * IPython/iplib.py (_prefilter): fix bug where aliases would
785 * IPython/iplib.py (_prefilter): fix bug where aliases would
779 shadow variables when autocall was fully off. Reported by SAGE
786 shadow variables when autocall was fully off. Reported by SAGE
780 author William Stein.
787 author William Stein.
781
788
782 * IPython/OInspect.py (Inspector.__init__): add a flag to control
789 * IPython/OInspect.py (Inspector.__init__): add a flag to control
783 at what detail level strings are computed when foo? is requested.
790 at what detail level strings are computed when foo? is requested.
784 This allows users to ask for example that the string form of an
791 This allows users to ask for example that the string form of an
785 object is only computed when foo?? is called, or even never, by
792 object is only computed when foo?? is called, or even never, by
786 setting the object_info_string_level >= 2 in the configuration
793 setting the object_info_string_level >= 2 in the configuration
787 file. This new option has been added and documented. After a
794 file. This new option has been added and documented. After a
788 request by SAGE to be able to control the printing of very large
795 request by SAGE to be able to control the printing of very large
789 objects more easily.
796 objects more easily.
790
797
791 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
798 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
792
799
793 * IPython/ipmaker.py (make_IPython): remove the ipython call path
800 * IPython/ipmaker.py (make_IPython): remove the ipython call path
794 from sys.argv, to be 100% consistent with how Python itself works
801 from sys.argv, to be 100% consistent with how Python itself works
795 (as seen for example with python -i file.py). After a bug report
802 (as seen for example with python -i file.py). After a bug report
796 by Jeffrey Collins.
803 by Jeffrey Collins.
797
804
798 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
805 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
799 nasty bug which was preventing custom namespaces with -pylab,
806 nasty bug which was preventing custom namespaces with -pylab,
800 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
807 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
801 compatibility (long gone from mpl).
808 compatibility (long gone from mpl).
802
809
803 * IPython/ipapi.py (make_session): name change: create->make. We
810 * IPython/ipapi.py (make_session): name change: create->make. We
804 use make in other places (ipmaker,...), it's shorter and easier to
811 use make in other places (ipmaker,...), it's shorter and easier to
805 type and say, etc. I'm trying to clean things before 0.7.2 so
812 type and say, etc. I'm trying to clean things before 0.7.2 so
806 that I can keep things stable wrt to ipapi in the chainsaw branch.
813 that I can keep things stable wrt to ipapi in the chainsaw branch.
807
814
808 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
815 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
809 python-mode recognizes our debugger mode. Add support for
816 python-mode recognizes our debugger mode. Add support for
810 autoindent inside (X)emacs. After a patch sent in by Jin Liu
817 autoindent inside (X)emacs. After a patch sent in by Jin Liu
811 <m.liu.jin-AT-gmail.com> originally written by
818 <m.liu.jin-AT-gmail.com> originally written by
812 doxgen-AT-newsmth.net (with minor modifications for xemacs
819 doxgen-AT-newsmth.net (with minor modifications for xemacs
813 compatibility)
820 compatibility)
814
821
815 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
822 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
816 tracebacks when walking the stack so that the stack tracking system
823 tracebacks when walking the stack so that the stack tracking system
817 in emacs' python-mode can identify the frames correctly.
824 in emacs' python-mode can identify the frames correctly.
818
825
819 * IPython/ipmaker.py (make_IPython): make the internal (and
826 * IPython/ipmaker.py (make_IPython): make the internal (and
820 default config) autoedit_syntax value false by default. Too many
827 default config) autoedit_syntax value false by default. Too many
821 users have complained to me (both on and off-list) about problems
828 users have complained to me (both on and off-list) about problems
822 with this option being on by default, so I'm making it default to
829 with this option being on by default, so I'm making it default to
823 off. It can still be enabled by anyone via the usual mechanisms.
830 off. It can still be enabled by anyone via the usual mechanisms.
824
831
825 * IPython/completer.py (Completer.attr_matches): add support for
832 * IPython/completer.py (Completer.attr_matches): add support for
826 PyCrust-style _getAttributeNames magic method. Patch contributed
833 PyCrust-style _getAttributeNames magic method. Patch contributed
827 by <mscott-AT-goldenspud.com>. Closes #50.
834 by <mscott-AT-goldenspud.com>. Closes #50.
828
835
829 * IPython/iplib.py (InteractiveShell.__init__): remove the
836 * IPython/iplib.py (InteractiveShell.__init__): remove the
830 deletion of exit/quit from __builtin__, which can break
837 deletion of exit/quit from __builtin__, which can break
831 third-party tools like the Zope debugging console. The
838 third-party tools like the Zope debugging console. The
832 %exit/%quit magics remain. In general, it's probably a good idea
839 %exit/%quit magics remain. In general, it's probably a good idea
833 not to delete anything from __builtin__, since we never know what
840 not to delete anything from __builtin__, since we never know what
834 that will break. In any case, python now (for 2.5) will support
841 that will break. In any case, python now (for 2.5) will support
835 'real' exit/quit, so this issue is moot. Closes #55.
842 'real' exit/quit, so this issue is moot. Closes #55.
836
843
837 * IPython/genutils.py (with_obj): rename the 'with' function to
844 * IPython/genutils.py (with_obj): rename the 'with' function to
838 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
845 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
839 becomes a language keyword. Closes #53.
846 becomes a language keyword. Closes #53.
840
847
841 * IPython/FakeModule.py (FakeModule.__init__): add a proper
848 * IPython/FakeModule.py (FakeModule.__init__): add a proper
842 __file__ attribute to this so it fools more things into thinking
849 __file__ attribute to this so it fools more things into thinking
843 it is a real module. Closes #59.
850 it is a real module. Closes #59.
844
851
845 * IPython/Magic.py (magic_edit): add -n option to open the editor
852 * IPython/Magic.py (magic_edit): add -n option to open the editor
846 at a specific line number. After a patch by Stefan van der Walt.
853 at a specific line number. After a patch by Stefan van der Walt.
847
854
848 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
855 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
849
856
850 * IPython/iplib.py (edit_syntax_error): fix crash when for some
857 * IPython/iplib.py (edit_syntax_error): fix crash when for some
851 reason the file could not be opened. After automatic crash
858 reason the file could not be opened. After automatic crash
852 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
859 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
853 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
860 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
854 (_should_recompile): Don't fire editor if using %bg, since there
861 (_should_recompile): Don't fire editor if using %bg, since there
855 is no file in the first place. From the same report as above.
862 is no file in the first place. From the same report as above.
856 (raw_input): protect against faulty third-party prefilters. After
863 (raw_input): protect against faulty third-party prefilters. After
857 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
864 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
858 while running under SAGE.
865 while running under SAGE.
859
866
860 2006-05-23 Ville Vainio <vivainio@gmail.com>
867 2006-05-23 Ville Vainio <vivainio@gmail.com>
861
868
862 * ipapi.py: Stripped down ip.to_user_ns() to work only as
869 * ipapi.py: Stripped down ip.to_user_ns() to work only as
863 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
870 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
864 now returns None (again), unless dummy is specifically allowed by
871 now returns None (again), unless dummy is specifically allowed by
865 ipapi.get(allow_dummy=True).
872 ipapi.get(allow_dummy=True).
866
873
867 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
874 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
868
875
869 * IPython: remove all 2.2-compatibility objects and hacks from
876 * IPython: remove all 2.2-compatibility objects and hacks from
870 everywhere, since we only support 2.3 at this point. Docs
877 everywhere, since we only support 2.3 at this point. Docs
871 updated.
878 updated.
872
879
873 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
880 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
874 Anything requiring extra validation can be turned into a Python
881 Anything requiring extra validation can be turned into a Python
875 property in the future. I used a property for the db one b/c
882 property in the future. I used a property for the db one b/c
876 there was a nasty circularity problem with the initialization
883 there was a nasty circularity problem with the initialization
877 order, which right now I don't have time to clean up.
884 order, which right now I don't have time to clean up.
878
885
879 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
886 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
880 another locking bug reported by Jorgen. I'm not 100% sure though,
887 another locking bug reported by Jorgen. I'm not 100% sure though,
881 so more testing is needed...
888 so more testing is needed...
882
889
883 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
890 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
884
891
885 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
892 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
886 local variables from any routine in user code (typically executed
893 local variables from any routine in user code (typically executed
887 with %run) directly into the interactive namespace. Very useful
894 with %run) directly into the interactive namespace. Very useful
888 when doing complex debugging.
895 when doing complex debugging.
889 (IPythonNotRunning): Changed the default None object to a dummy
896 (IPythonNotRunning): Changed the default None object to a dummy
890 whose attributes can be queried as well as called without
897 whose attributes can be queried as well as called without
891 exploding, to ease writing code which works transparently both in
898 exploding, to ease writing code which works transparently both in
892 and out of ipython and uses some of this API.
899 and out of ipython and uses some of this API.
893
900
894 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
901 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
895
902
896 * IPython/hooks.py (result_display): Fix the fact that our display
903 * IPython/hooks.py (result_display): Fix the fact that our display
897 hook was using str() instead of repr(), as the default python
904 hook was using str() instead of repr(), as the default python
898 console does. This had gone unnoticed b/c it only happened if
905 console does. This had gone unnoticed b/c it only happened if
899 %Pprint was off, but the inconsistency was there.
906 %Pprint was off, but the inconsistency was there.
900
907
901 2006-05-15 Ville Vainio <vivainio@gmail.com>
908 2006-05-15 Ville Vainio <vivainio@gmail.com>
902
909
903 * Oinspect.py: Only show docstring for nonexisting/binary files
910 * Oinspect.py: Only show docstring for nonexisting/binary files
904 when doing object??, closing ticket #62
911 when doing object??, closing ticket #62
905
912
906 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
913 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
907
914
908 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
915 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
909 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
916 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
910 was being released in a routine which hadn't checked if it had
917 was being released in a routine which hadn't checked if it had
911 been the one to acquire it.
918 been the one to acquire it.
912
919
913 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
920 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
914
921
915 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
922 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
916
923
917 2006-04-11 Ville Vainio <vivainio@gmail.com>
924 2006-04-11 Ville Vainio <vivainio@gmail.com>
918
925
919 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
926 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
920 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
927 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
921 prefilters, allowing stuff like magics and aliases in the file.
928 prefilters, allowing stuff like magics and aliases in the file.
922
929
923 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
930 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
924 added. Supported now are "%clear in" and "%clear out" (clear input and
931 added. Supported now are "%clear in" and "%clear out" (clear input and
925 output history, respectively). Also fixed CachedOutput.flush to
932 output history, respectively). Also fixed CachedOutput.flush to
926 properly flush the output cache.
933 properly flush the output cache.
927
934
928 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
935 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
929 half-success (and fail explicitly).
936 half-success (and fail explicitly).
930
937
931 2006-03-28 Ville Vainio <vivainio@gmail.com>
938 2006-03-28 Ville Vainio <vivainio@gmail.com>
932
939
933 * iplib.py: Fix quoting of aliases so that only argless ones
940 * iplib.py: Fix quoting of aliases so that only argless ones
934 are quoted
941 are quoted
935
942
936 2006-03-28 Ville Vainio <vivainio@gmail.com>
943 2006-03-28 Ville Vainio <vivainio@gmail.com>
937
944
938 * iplib.py: Quote aliases with spaces in the name.
945 * iplib.py: Quote aliases with spaces in the name.
939 "c:\program files\blah\bin" is now legal alias target.
946 "c:\program files\blah\bin" is now legal alias target.
940
947
941 * ext_rehashdir.py: Space no longer allowed as arg
948 * ext_rehashdir.py: Space no longer allowed as arg
942 separator, since space is legal in path names.
949 separator, since space is legal in path names.
943
950
944 2006-03-16 Ville Vainio <vivainio@gmail.com>
951 2006-03-16 Ville Vainio <vivainio@gmail.com>
945
952
946 * upgrade_dir.py: Take path.py from Extensions, correcting
953 * upgrade_dir.py: Take path.py from Extensions, correcting
947 %upgrade magic
954 %upgrade magic
948
955
949 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
956 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
950
957
951 * hooks.py: Only enclose editor binary in quotes if legal and
958 * hooks.py: Only enclose editor binary in quotes if legal and
952 necessary (space in the name, and is an existing file). Fixes a bug
959 necessary (space in the name, and is an existing file). Fixes a bug
953 reported by Zachary Pincus.
960 reported by Zachary Pincus.
954
961
955 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
962 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
956
963
957 * Manual: thanks to a tip on proper color handling for Emacs, by
964 * Manual: thanks to a tip on proper color handling for Emacs, by
958 Eric J Haywiser <ejh1-AT-MIT.EDU>.
965 Eric J Haywiser <ejh1-AT-MIT.EDU>.
959
966
960 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
967 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
961 by applying the provided patch. Thanks to Liu Jin
968 by applying the provided patch. Thanks to Liu Jin
962 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
969 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
963 XEmacs/Linux, I'm trusting the submitter that it actually helps
970 XEmacs/Linux, I'm trusting the submitter that it actually helps
964 under win32/GNU Emacs. Will revisit if any problems are reported.
971 under win32/GNU Emacs. Will revisit if any problems are reported.
965
972
966 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
973 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
967
974
968 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
975 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
969 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
976 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
970
977
971 2006-03-12 Ville Vainio <vivainio@gmail.com>
978 2006-03-12 Ville Vainio <vivainio@gmail.com>
972
979
973 * Magic.py (magic_timeit): Added %timeit magic, contributed by
980 * Magic.py (magic_timeit): Added %timeit magic, contributed by
974 Torsten Marek.
981 Torsten Marek.
975
982
976 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
983 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
977
984
978 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
985 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
979 line ranges works again.
986 line ranges works again.
980
987
981 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
988 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
982
989
983 * IPython/iplib.py (showtraceback): add back sys.last_traceback
990 * IPython/iplib.py (showtraceback): add back sys.last_traceback
984 and friends, after a discussion with Zach Pincus on ipython-user.
991 and friends, after a discussion with Zach Pincus on ipython-user.
985 I'm not 100% sure, but after thinking about it quite a bit, it may
992 I'm not 100% sure, but after thinking about it quite a bit, it may
986 be OK. Testing with the multithreaded shells didn't reveal any
993 be OK. Testing with the multithreaded shells didn't reveal any
987 problems, but let's keep an eye out.
994 problems, but let's keep an eye out.
988
995
989 In the process, I fixed a few things which were calling
996 In the process, I fixed a few things which were calling
990 self.InteractiveTB() directly (like safe_execfile), which is a
997 self.InteractiveTB() directly (like safe_execfile), which is a
991 mistake: ALL exception reporting should be done by calling
998 mistake: ALL exception reporting should be done by calling
992 self.showtraceback(), which handles state and tab-completion and
999 self.showtraceback(), which handles state and tab-completion and
993 more.
1000 more.
994
1001
995 2006-03-01 Ville Vainio <vivainio@gmail.com>
1002 2006-03-01 Ville Vainio <vivainio@gmail.com>
996
1003
997 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1004 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
998 To use, do "from ipipe import *".
1005 To use, do "from ipipe import *".
999
1006
1000 2006-02-24 Ville Vainio <vivainio@gmail.com>
1007 2006-02-24 Ville Vainio <vivainio@gmail.com>
1001
1008
1002 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1009 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1003 "cleanly" and safely than the older upgrade mechanism.
1010 "cleanly" and safely than the older upgrade mechanism.
1004
1011
1005 2006-02-21 Ville Vainio <vivainio@gmail.com>
1012 2006-02-21 Ville Vainio <vivainio@gmail.com>
1006
1013
1007 * Magic.py: %save works again.
1014 * Magic.py: %save works again.
1008
1015
1009 2006-02-15 Ville Vainio <vivainio@gmail.com>
1016 2006-02-15 Ville Vainio <vivainio@gmail.com>
1010
1017
1011 * Magic.py: %Pprint works again
1018 * Magic.py: %Pprint works again
1012
1019
1013 * Extensions/ipy_sane_defaults.py: Provide everything provided
1020 * Extensions/ipy_sane_defaults.py: Provide everything provided
1014 in default ipythonrc, to make it possible to have a completely empty
1021 in default ipythonrc, to make it possible to have a completely empty
1015 ipythonrc (and thus completely rc-file free configuration)
1022 ipythonrc (and thus completely rc-file free configuration)
1016
1023
1017 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1024 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1018
1025
1019 * IPython/hooks.py (editor): quote the call to the editor command,
1026 * IPython/hooks.py (editor): quote the call to the editor command,
1020 to allow commands with spaces in them. Problem noted by watching
1027 to allow commands with spaces in them. Problem noted by watching
1021 Ian Oswald's video about textpad under win32 at
1028 Ian Oswald's video about textpad under win32 at
1022 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1029 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1023
1030
1024 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1031 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1025 describing magics (we haven't used @ for a loong time).
1032 describing magics (we haven't used @ for a loong time).
1026
1033
1027 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1034 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1028 contributed by marienz to close
1035 contributed by marienz to close
1029 http://www.scipy.net/roundup/ipython/issue53.
1036 http://www.scipy.net/roundup/ipython/issue53.
1030
1037
1031 2006-02-10 Ville Vainio <vivainio@gmail.com>
1038 2006-02-10 Ville Vainio <vivainio@gmail.com>
1032
1039
1033 * genutils.py: getoutput now works in win32 too
1040 * genutils.py: getoutput now works in win32 too
1034
1041
1035 * completer.py: alias and magic completion only invoked
1042 * completer.py: alias and magic completion only invoked
1036 at the first "item" in the line, to avoid "cd %store"
1043 at the first "item" in the line, to avoid "cd %store"
1037 nonsense.
1044 nonsense.
1038
1045
1039 2006-02-09 Ville Vainio <vivainio@gmail.com>
1046 2006-02-09 Ville Vainio <vivainio@gmail.com>
1040
1047
1041 * test/*: Added a unit testing framework (finally).
1048 * test/*: Added a unit testing framework (finally).
1042 '%run runtests.py' to run test_*.
1049 '%run runtests.py' to run test_*.
1043
1050
1044 * ipapi.py: Exposed runlines and set_custom_exc
1051 * ipapi.py: Exposed runlines and set_custom_exc
1045
1052
1046 2006-02-07 Ville Vainio <vivainio@gmail.com>
1053 2006-02-07 Ville Vainio <vivainio@gmail.com>
1047
1054
1048 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1055 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1049 instead use "f(1 2)" as before.
1056 instead use "f(1 2)" as before.
1050
1057
1051 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1058 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1052
1059
1053 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1060 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1054 facilities, for demos processed by the IPython input filter
1061 facilities, for demos processed by the IPython input filter
1055 (IPythonDemo), and for running a script one-line-at-a-time as a
1062 (IPythonDemo), and for running a script one-line-at-a-time as a
1056 demo, both for pure Python (LineDemo) and for IPython-processed
1063 demo, both for pure Python (LineDemo) and for IPython-processed
1057 input (IPythonLineDemo). After a request by Dave Kohel, from the
1064 input (IPythonLineDemo). After a request by Dave Kohel, from the
1058 SAGE team.
1065 SAGE team.
1059 (Demo.edit): added an edit() method to the demo objects, to edit
1066 (Demo.edit): added an edit() method to the demo objects, to edit
1060 the in-memory copy of the last executed block.
1067 the in-memory copy of the last executed block.
1061
1068
1062 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1069 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1063 processing to %edit, %macro and %save. These commands can now be
1070 processing to %edit, %macro and %save. These commands can now be
1064 invoked on the unprocessed input as it was typed by the user
1071 invoked on the unprocessed input as it was typed by the user
1065 (without any prefilters applied). After requests by the SAGE team
1072 (without any prefilters applied). After requests by the SAGE team
1066 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1073 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1067
1074
1068 2006-02-01 Ville Vainio <vivainio@gmail.com>
1075 2006-02-01 Ville Vainio <vivainio@gmail.com>
1069
1076
1070 * setup.py, eggsetup.py: easy_install ipython==dev works
1077 * setup.py, eggsetup.py: easy_install ipython==dev works
1071 correctly now (on Linux)
1078 correctly now (on Linux)
1072
1079
1073 * ipy_user_conf,ipmaker: user config changes, removed spurious
1080 * ipy_user_conf,ipmaker: user config changes, removed spurious
1074 warnings
1081 warnings
1075
1082
1076 * iplib: if rc.banner is string, use it as is.
1083 * iplib: if rc.banner is string, use it as is.
1077
1084
1078 * Magic: %pycat accepts a string argument and pages it's contents.
1085 * Magic: %pycat accepts a string argument and pages it's contents.
1079
1086
1080
1087
1081 2006-01-30 Ville Vainio <vivainio@gmail.com>
1088 2006-01-30 Ville Vainio <vivainio@gmail.com>
1082
1089
1083 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1090 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1084 Now %store and bookmarks work through PickleShare, meaning that
1091 Now %store and bookmarks work through PickleShare, meaning that
1085 concurrent access is possible and all ipython sessions see the
1092 concurrent access is possible and all ipython sessions see the
1086 same database situation all the time, instead of snapshot of
1093 same database situation all the time, instead of snapshot of
1087 the situation when the session was started. Hence, %bookmark
1094 the situation when the session was started. Hence, %bookmark
1088 results are immediately accessible from othes sessions. The database
1095 results are immediately accessible from othes sessions. The database
1089 is also available for use by user extensions. See:
1096 is also available for use by user extensions. See:
1090 http://www.python.org/pypi/pickleshare
1097 http://www.python.org/pypi/pickleshare
1091
1098
1092 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1099 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1093
1100
1094 * aliases can now be %store'd
1101 * aliases can now be %store'd
1095
1102
1096 * path.py moved to Extensions so that pickleshare does not need
1103 * path.py moved to Extensions so that pickleshare does not need
1097 IPython-specific import. Extensions added to pythonpath right
1104 IPython-specific import. Extensions added to pythonpath right
1098 at __init__.
1105 at __init__.
1099
1106
1100 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1107 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1101 called with _ip.system and the pre-transformed command string.
1108 called with _ip.system and the pre-transformed command string.
1102
1109
1103 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1110 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1104
1111
1105 * IPython/iplib.py (interact): Fix that we were not catching
1112 * IPython/iplib.py (interact): Fix that we were not catching
1106 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1113 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1107 logic here had to change, but it's fixed now.
1114 logic here had to change, but it's fixed now.
1108
1115
1109 2006-01-29 Ville Vainio <vivainio@gmail.com>
1116 2006-01-29 Ville Vainio <vivainio@gmail.com>
1110
1117
1111 * iplib.py: Try to import pyreadline on Windows.
1118 * iplib.py: Try to import pyreadline on Windows.
1112
1119
1113 2006-01-27 Ville Vainio <vivainio@gmail.com>
1120 2006-01-27 Ville Vainio <vivainio@gmail.com>
1114
1121
1115 * iplib.py: Expose ipapi as _ip in builtin namespace.
1122 * iplib.py: Expose ipapi as _ip in builtin namespace.
1116 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1123 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1117 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1124 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1118 syntax now produce _ip.* variant of the commands.
1125 syntax now produce _ip.* variant of the commands.
1119
1126
1120 * "_ip.options().autoedit_syntax = 2" automatically throws
1127 * "_ip.options().autoedit_syntax = 2" automatically throws
1121 user to editor for syntax error correction without prompting.
1128 user to editor for syntax error correction without prompting.
1122
1129
1123 2006-01-27 Ville Vainio <vivainio@gmail.com>
1130 2006-01-27 Ville Vainio <vivainio@gmail.com>
1124
1131
1125 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1132 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1126 'ipython' at argv[0]) executed through command line.
1133 'ipython' at argv[0]) executed through command line.
1127 NOTE: this DEPRECATES calling ipython with multiple scripts
1134 NOTE: this DEPRECATES calling ipython with multiple scripts
1128 ("ipython a.py b.py c.py")
1135 ("ipython a.py b.py c.py")
1129
1136
1130 * iplib.py, hooks.py: Added configurable input prefilter,
1137 * iplib.py, hooks.py: Added configurable input prefilter,
1131 named 'input_prefilter'. See ext_rescapture.py for example
1138 named 'input_prefilter'. See ext_rescapture.py for example
1132 usage.
1139 usage.
1133
1140
1134 * ext_rescapture.py, Magic.py: Better system command output capture
1141 * ext_rescapture.py, Magic.py: Better system command output capture
1135 through 'var = !ls' (deprecates user-visible %sc). Same notation
1142 through 'var = !ls' (deprecates user-visible %sc). Same notation
1136 applies for magics, 'var = %alias' assigns alias list to var.
1143 applies for magics, 'var = %alias' assigns alias list to var.
1137
1144
1138 * ipapi.py: added meta() for accessing extension-usable data store.
1145 * ipapi.py: added meta() for accessing extension-usable data store.
1139
1146
1140 * iplib.py: added InteractiveShell.getapi(). New magics should be
1147 * iplib.py: added InteractiveShell.getapi(). New magics should be
1141 written doing self.getapi() instead of using the shell directly.
1148 written doing self.getapi() instead of using the shell directly.
1142
1149
1143 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1150 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1144 %store foo >> ~/myfoo.txt to store variables to files (in clean
1151 %store foo >> ~/myfoo.txt to store variables to files (in clean
1145 textual form, not a restorable pickle).
1152 textual form, not a restorable pickle).
1146
1153
1147 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1154 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1148
1155
1149 * usage.py, Magic.py: added %quickref
1156 * usage.py, Magic.py: added %quickref
1150
1157
1151 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1158 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1152
1159
1153 * GetoptErrors when invoking magics etc. with wrong args
1160 * GetoptErrors when invoking magics etc. with wrong args
1154 are now more helpful:
1161 are now more helpful:
1155 GetoptError: option -l not recognized (allowed: "qb" )
1162 GetoptError: option -l not recognized (allowed: "qb" )
1156
1163
1157 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1164 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1158
1165
1159 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1166 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1160 computationally intensive blocks don't appear to stall the demo.
1167 computationally intensive blocks don't appear to stall the demo.
1161
1168
1162 2006-01-24 Ville Vainio <vivainio@gmail.com>
1169 2006-01-24 Ville Vainio <vivainio@gmail.com>
1163
1170
1164 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1171 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1165 value to manipulate resulting history entry.
1172 value to manipulate resulting history entry.
1166
1173
1167 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1174 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1168 to instance methods of IPApi class, to make extending an embedded
1175 to instance methods of IPApi class, to make extending an embedded
1169 IPython feasible. See ext_rehashdir.py for example usage.
1176 IPython feasible. See ext_rehashdir.py for example usage.
1170
1177
1171 * Merged 1071-1076 from branches/0.7.1
1178 * Merged 1071-1076 from branches/0.7.1
1172
1179
1173
1180
1174 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1181 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1175
1182
1176 * tools/release (daystamp): Fix build tools to use the new
1183 * tools/release (daystamp): Fix build tools to use the new
1177 eggsetup.py script to build lightweight eggs.
1184 eggsetup.py script to build lightweight eggs.
1178
1185
1179 * Applied changesets 1062 and 1064 before 0.7.1 release.
1186 * Applied changesets 1062 and 1064 before 0.7.1 release.
1180
1187
1181 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1188 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1182 see the raw input history (without conversions like %ls ->
1189 see the raw input history (without conversions like %ls ->
1183 ipmagic("ls")). After a request from W. Stein, SAGE
1190 ipmagic("ls")). After a request from W. Stein, SAGE
1184 (http://modular.ucsd.edu/sage) developer. This information is
1191 (http://modular.ucsd.edu/sage) developer. This information is
1185 stored in the input_hist_raw attribute of the IPython instance, so
1192 stored in the input_hist_raw attribute of the IPython instance, so
1186 developers can access it if needed (it's an InputList instance).
1193 developers can access it if needed (it's an InputList instance).
1187
1194
1188 * Versionstring = 0.7.2.svn
1195 * Versionstring = 0.7.2.svn
1189
1196
1190 * eggsetup.py: A separate script for constructing eggs, creates
1197 * eggsetup.py: A separate script for constructing eggs, creates
1191 proper launch scripts even on Windows (an .exe file in
1198 proper launch scripts even on Windows (an .exe file in
1192 \python24\scripts).
1199 \python24\scripts).
1193
1200
1194 * ipapi.py: launch_new_instance, launch entry point needed for the
1201 * ipapi.py: launch_new_instance, launch entry point needed for the
1195 egg.
1202 egg.
1196
1203
1197 2006-01-23 Ville Vainio <vivainio@gmail.com>
1204 2006-01-23 Ville Vainio <vivainio@gmail.com>
1198
1205
1199 * Added %cpaste magic for pasting python code
1206 * Added %cpaste magic for pasting python code
1200
1207
1201 2006-01-22 Ville Vainio <vivainio@gmail.com>
1208 2006-01-22 Ville Vainio <vivainio@gmail.com>
1202
1209
1203 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1210 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1204
1211
1205 * Versionstring = 0.7.2.svn
1212 * Versionstring = 0.7.2.svn
1206
1213
1207 * eggsetup.py: A separate script for constructing eggs, creates
1214 * eggsetup.py: A separate script for constructing eggs, creates
1208 proper launch scripts even on Windows (an .exe file in
1215 proper launch scripts even on Windows (an .exe file in
1209 \python24\scripts).
1216 \python24\scripts).
1210
1217
1211 * ipapi.py: launch_new_instance, launch entry point needed for the
1218 * ipapi.py: launch_new_instance, launch entry point needed for the
1212 egg.
1219 egg.
1213
1220
1214 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1221 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1215
1222
1216 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1223 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1217 %pfile foo would print the file for foo even if it was a binary.
1224 %pfile foo would print the file for foo even if it was a binary.
1218 Now, extensions '.so' and '.dll' are skipped.
1225 Now, extensions '.so' and '.dll' are skipped.
1219
1226
1220 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1227 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1221 bug, where macros would fail in all threaded modes. I'm not 100%
1228 bug, where macros would fail in all threaded modes. I'm not 100%
1222 sure, so I'm going to put out an rc instead of making a release
1229 sure, so I'm going to put out an rc instead of making a release
1223 today, and wait for feedback for at least a few days.
1230 today, and wait for feedback for at least a few days.
1224
1231
1225 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1232 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1226 it...) the handling of pasting external code with autoindent on.
1233 it...) the handling of pasting external code with autoindent on.
1227 To get out of a multiline input, the rule will appear for most
1234 To get out of a multiline input, the rule will appear for most
1228 users unchanged: two blank lines or change the indent level
1235 users unchanged: two blank lines or change the indent level
1229 proposed by IPython. But there is a twist now: you can
1236 proposed by IPython. But there is a twist now: you can
1230 add/subtract only *one or two spaces*. If you add/subtract three
1237 add/subtract only *one or two spaces*. If you add/subtract three
1231 or more (unless you completely delete the line), IPython will
1238 or more (unless you completely delete the line), IPython will
1232 accept that line, and you'll need to enter a second one of pure
1239 accept that line, and you'll need to enter a second one of pure
1233 whitespace. I know it sounds complicated, but I can't find a
1240 whitespace. I know it sounds complicated, but I can't find a
1234 different solution that covers all the cases, with the right
1241 different solution that covers all the cases, with the right
1235 heuristics. Hopefully in actual use, nobody will really notice
1242 heuristics. Hopefully in actual use, nobody will really notice
1236 all these strange rules and things will 'just work'.
1243 all these strange rules and things will 'just work'.
1237
1244
1238 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1245 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1239
1246
1240 * IPython/iplib.py (interact): catch exceptions which can be
1247 * IPython/iplib.py (interact): catch exceptions which can be
1241 triggered asynchronously by signal handlers. Thanks to an
1248 triggered asynchronously by signal handlers. Thanks to an
1242 automatic crash report, submitted by Colin Kingsley
1249 automatic crash report, submitted by Colin Kingsley
1243 <tercel-AT-gentoo.org>.
1250 <tercel-AT-gentoo.org>.
1244
1251
1245 2006-01-20 Ville Vainio <vivainio@gmail.com>
1252 2006-01-20 Ville Vainio <vivainio@gmail.com>
1246
1253
1247 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1254 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1248 (%rehashdir, very useful, try it out) of how to extend ipython
1255 (%rehashdir, very useful, try it out) of how to extend ipython
1249 with new magics. Also added Extensions dir to pythonpath to make
1256 with new magics. Also added Extensions dir to pythonpath to make
1250 importing extensions easy.
1257 importing extensions easy.
1251
1258
1252 * %store now complains when trying to store interactively declared
1259 * %store now complains when trying to store interactively declared
1253 classes / instances of those classes.
1260 classes / instances of those classes.
1254
1261
1255 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1262 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1256 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1263 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1257 if they exist, and ipy_user_conf.py with some defaults is created for
1264 if they exist, and ipy_user_conf.py with some defaults is created for
1258 the user.
1265 the user.
1259
1266
1260 * Startup rehashing done by the config file, not InterpreterExec.
1267 * Startup rehashing done by the config file, not InterpreterExec.
1261 This means system commands are available even without selecting the
1268 This means system commands are available even without selecting the
1262 pysh profile. It's the sensible default after all.
1269 pysh profile. It's the sensible default after all.
1263
1270
1264 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1271 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1265
1272
1266 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1273 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1267 multiline code with autoindent on working. But I am really not
1274 multiline code with autoindent on working. But I am really not
1268 sure, so this needs more testing. Will commit a debug-enabled
1275 sure, so this needs more testing. Will commit a debug-enabled
1269 version for now, while I test it some more, so that Ville and
1276 version for now, while I test it some more, so that Ville and
1270 others may also catch any problems. Also made
1277 others may also catch any problems. Also made
1271 self.indent_current_str() a method, to ensure that there's no
1278 self.indent_current_str() a method, to ensure that there's no
1272 chance of the indent space count and the corresponding string
1279 chance of the indent space count and the corresponding string
1273 falling out of sync. All code needing the string should just call
1280 falling out of sync. All code needing the string should just call
1274 the method.
1281 the method.
1275
1282
1276 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1283 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1277
1284
1278 * IPython/Magic.py (magic_edit): fix check for when users don't
1285 * IPython/Magic.py (magic_edit): fix check for when users don't
1279 save their output files, the try/except was in the wrong section.
1286 save their output files, the try/except was in the wrong section.
1280
1287
1281 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1288 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1282
1289
1283 * IPython/Magic.py (magic_run): fix __file__ global missing from
1290 * IPython/Magic.py (magic_run): fix __file__ global missing from
1284 script's namespace when executed via %run. After a report by
1291 script's namespace when executed via %run. After a report by
1285 Vivian.
1292 Vivian.
1286
1293
1287 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1294 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1288 when using python 2.4. The parent constructor changed in 2.4, and
1295 when using python 2.4. The parent constructor changed in 2.4, and
1289 we need to track it directly (we can't call it, as it messes up
1296 we need to track it directly (we can't call it, as it messes up
1290 readline and tab-completion inside our pdb would stop working).
1297 readline and tab-completion inside our pdb would stop working).
1291 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1298 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1292
1299
1293 2006-01-16 Ville Vainio <vivainio@gmail.com>
1300 2006-01-16 Ville Vainio <vivainio@gmail.com>
1294
1301
1295 * Ipython/magic.py: Reverted back to old %edit functionality
1302 * Ipython/magic.py: Reverted back to old %edit functionality
1296 that returns file contents on exit.
1303 that returns file contents on exit.
1297
1304
1298 * IPython/path.py: Added Jason Orendorff's "path" module to
1305 * IPython/path.py: Added Jason Orendorff's "path" module to
1299 IPython tree, http://www.jorendorff.com/articles/python/path/.
1306 IPython tree, http://www.jorendorff.com/articles/python/path/.
1300 You can get path objects conveniently through %sc, and !!, e.g.:
1307 You can get path objects conveniently through %sc, and !!, e.g.:
1301 sc files=ls
1308 sc files=ls
1302 for p in files.paths: # or files.p
1309 for p in files.paths: # or files.p
1303 print p,p.mtime
1310 print p,p.mtime
1304
1311
1305 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1312 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1306 now work again without considering the exclusion regexp -
1313 now work again without considering the exclusion regexp -
1307 hence, things like ',foo my/path' turn to 'foo("my/path")'
1314 hence, things like ',foo my/path' turn to 'foo("my/path")'
1308 instead of syntax error.
1315 instead of syntax error.
1309
1316
1310
1317
1311 2006-01-14 Ville Vainio <vivainio@gmail.com>
1318 2006-01-14 Ville Vainio <vivainio@gmail.com>
1312
1319
1313 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1320 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1314 ipapi decorators for python 2.4 users, options() provides access to rc
1321 ipapi decorators for python 2.4 users, options() provides access to rc
1315 data.
1322 data.
1316
1323
1317 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1324 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1318 as path separators (even on Linux ;-). Space character after
1325 as path separators (even on Linux ;-). Space character after
1319 backslash (as yielded by tab completer) is still space;
1326 backslash (as yielded by tab completer) is still space;
1320 "%cd long\ name" works as expected.
1327 "%cd long\ name" works as expected.
1321
1328
1322 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1329 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1323 as "chain of command", with priority. API stays the same,
1330 as "chain of command", with priority. API stays the same,
1324 TryNext exception raised by a hook function signals that
1331 TryNext exception raised by a hook function signals that
1325 current hook failed and next hook should try handling it, as
1332 current hook failed and next hook should try handling it, as
1326 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1333 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1327 requested configurable display hook, which is now implemented.
1334 requested configurable display hook, which is now implemented.
1328
1335
1329 2006-01-13 Ville Vainio <vivainio@gmail.com>
1336 2006-01-13 Ville Vainio <vivainio@gmail.com>
1330
1337
1331 * IPython/platutils*.py: platform specific utility functions,
1338 * IPython/platutils*.py: platform specific utility functions,
1332 so far only set_term_title is implemented (change terminal
1339 so far only set_term_title is implemented (change terminal
1333 label in windowing systems). %cd now changes the title to
1340 label in windowing systems). %cd now changes the title to
1334 current dir.
1341 current dir.
1335
1342
1336 * IPython/Release.py: Added myself to "authors" list,
1343 * IPython/Release.py: Added myself to "authors" list,
1337 had to create new files.
1344 had to create new files.
1338
1345
1339 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1346 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1340 shell escape; not a known bug but had potential to be one in the
1347 shell escape; not a known bug but had potential to be one in the
1341 future.
1348 future.
1342
1349
1343 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1350 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1344 extension API for IPython! See the module for usage example. Fix
1351 extension API for IPython! See the module for usage example. Fix
1345 OInspect for docstring-less magic functions.
1352 OInspect for docstring-less magic functions.
1346
1353
1347
1354
1348 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1355 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1349
1356
1350 * IPython/iplib.py (raw_input): temporarily deactivate all
1357 * IPython/iplib.py (raw_input): temporarily deactivate all
1351 attempts at allowing pasting of code with autoindent on. It
1358 attempts at allowing pasting of code with autoindent on. It
1352 introduced bugs (reported by Prabhu) and I can't seem to find a
1359 introduced bugs (reported by Prabhu) and I can't seem to find a
1353 robust combination which works in all cases. Will have to revisit
1360 robust combination which works in all cases. Will have to revisit
1354 later.
1361 later.
1355
1362
1356 * IPython/genutils.py: remove isspace() function. We've dropped
1363 * IPython/genutils.py: remove isspace() function. We've dropped
1357 2.2 compatibility, so it's OK to use the string method.
1364 2.2 compatibility, so it's OK to use the string method.
1358
1365
1359 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1366 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1360
1367
1361 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1368 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1362 matching what NOT to autocall on, to include all python binary
1369 matching what NOT to autocall on, to include all python binary
1363 operators (including things like 'and', 'or', 'is' and 'in').
1370 operators (including things like 'and', 'or', 'is' and 'in').
1364 Prompted by a bug report on 'foo & bar', but I realized we had
1371 Prompted by a bug report on 'foo & bar', but I realized we had
1365 many more potential bug cases with other operators. The regexp is
1372 many more potential bug cases with other operators. The regexp is
1366 self.re_exclude_auto, it's fairly commented.
1373 self.re_exclude_auto, it's fairly commented.
1367
1374
1368 2006-01-12 Ville Vainio <vivainio@gmail.com>
1375 2006-01-12 Ville Vainio <vivainio@gmail.com>
1369
1376
1370 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1377 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1371 Prettified and hardened string/backslash quoting with ipsystem(),
1378 Prettified and hardened string/backslash quoting with ipsystem(),
1372 ipalias() and ipmagic(). Now even \ characters are passed to
1379 ipalias() and ipmagic(). Now even \ characters are passed to
1373 %magics, !shell escapes and aliases exactly as they are in the
1380 %magics, !shell escapes and aliases exactly as they are in the
1374 ipython command line. Should improve backslash experience,
1381 ipython command line. Should improve backslash experience,
1375 particularly in Windows (path delimiter for some commands that
1382 particularly in Windows (path delimiter for some commands that
1376 won't understand '/'), but Unix benefits as well (regexps). %cd
1383 won't understand '/'), but Unix benefits as well (regexps). %cd
1377 magic still doesn't support backslash path delimiters, though. Also
1384 magic still doesn't support backslash path delimiters, though. Also
1378 deleted all pretense of supporting multiline command strings in
1385 deleted all pretense of supporting multiline command strings in
1379 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1386 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1380
1387
1381 * doc/build_doc_instructions.txt added. Documentation on how to
1388 * doc/build_doc_instructions.txt added. Documentation on how to
1382 use doc/update_manual.py, added yesterday. Both files contributed
1389 use doc/update_manual.py, added yesterday. Both files contributed
1383 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1390 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1384 doc/*.sh for deprecation at a later date.
1391 doc/*.sh for deprecation at a later date.
1385
1392
1386 * /ipython.py Added ipython.py to root directory for
1393 * /ipython.py Added ipython.py to root directory for
1387 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1394 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1388 ipython.py) and development convenience (no need to keep doing
1395 ipython.py) and development convenience (no need to keep doing
1389 "setup.py install" between changes).
1396 "setup.py install" between changes).
1390
1397
1391 * Made ! and !! shell escapes work (again) in multiline expressions:
1398 * Made ! and !! shell escapes work (again) in multiline expressions:
1392 if 1:
1399 if 1:
1393 !ls
1400 !ls
1394 !!ls
1401 !!ls
1395
1402
1396 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1403 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1397
1404
1398 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1405 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1399 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1406 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1400 module in case-insensitive installation. Was causing crashes
1407 module in case-insensitive installation. Was causing crashes
1401 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1408 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1402
1409
1403 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1410 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1404 <marienz-AT-gentoo.org>, closes
1411 <marienz-AT-gentoo.org>, closes
1405 http://www.scipy.net/roundup/ipython/issue51.
1412 http://www.scipy.net/roundup/ipython/issue51.
1406
1413
1407 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1414 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1408
1415
1409 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1416 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1410 problem of excessive CPU usage under *nix and keyboard lag under
1417 problem of excessive CPU usage under *nix and keyboard lag under
1411 win32.
1418 win32.
1412
1419
1413 2006-01-10 *** Released version 0.7.0
1420 2006-01-10 *** Released version 0.7.0
1414
1421
1415 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1422 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1416
1423
1417 * IPython/Release.py (revision): tag version number to 0.7.0,
1424 * IPython/Release.py (revision): tag version number to 0.7.0,
1418 ready for release.
1425 ready for release.
1419
1426
1420 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1427 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1421 it informs the user of the name of the temp. file used. This can
1428 it informs the user of the name of the temp. file used. This can
1422 help if you decide later to reuse that same file, so you know
1429 help if you decide later to reuse that same file, so you know
1423 where to copy the info from.
1430 where to copy the info from.
1424
1431
1425 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1432 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1426
1433
1427 * setup_bdist_egg.py: little script to build an egg. Added
1434 * setup_bdist_egg.py: little script to build an egg. Added
1428 support in the release tools as well.
1435 support in the release tools as well.
1429
1436
1430 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1437 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1431
1438
1432 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1439 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1433 version selection (new -wxversion command line and ipythonrc
1440 version selection (new -wxversion command line and ipythonrc
1434 parameter). Patch contributed by Arnd Baecker
1441 parameter). Patch contributed by Arnd Baecker
1435 <arnd.baecker-AT-web.de>.
1442 <arnd.baecker-AT-web.de>.
1436
1443
1437 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1444 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1438 embedded instances, for variables defined at the interactive
1445 embedded instances, for variables defined at the interactive
1439 prompt of the embedded ipython. Reported by Arnd.
1446 prompt of the embedded ipython. Reported by Arnd.
1440
1447
1441 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1448 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1442 it can be used as a (stateful) toggle, or with a direct parameter.
1449 it can be used as a (stateful) toggle, or with a direct parameter.
1443
1450
1444 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1451 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1445 could be triggered in certain cases and cause the traceback
1452 could be triggered in certain cases and cause the traceback
1446 printer not to work.
1453 printer not to work.
1447
1454
1448 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1455 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1449
1456
1450 * IPython/iplib.py (_should_recompile): Small fix, closes
1457 * IPython/iplib.py (_should_recompile): Small fix, closes
1451 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1458 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1452
1459
1453 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1460 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1454
1461
1455 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1462 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1456 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1463 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1457 Moad for help with tracking it down.
1464 Moad for help with tracking it down.
1458
1465
1459 * IPython/iplib.py (handle_auto): fix autocall handling for
1466 * IPython/iplib.py (handle_auto): fix autocall handling for
1460 objects which support BOTH __getitem__ and __call__ (so that f [x]
1467 objects which support BOTH __getitem__ and __call__ (so that f [x]
1461 is left alone, instead of becoming f([x]) automatically).
1468 is left alone, instead of becoming f([x]) automatically).
1462
1469
1463 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1470 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1464 Ville's patch.
1471 Ville's patch.
1465
1472
1466 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1473 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1467
1474
1468 * IPython/iplib.py (handle_auto): changed autocall semantics to
1475 * IPython/iplib.py (handle_auto): changed autocall semantics to
1469 include 'smart' mode, where the autocall transformation is NOT
1476 include 'smart' mode, where the autocall transformation is NOT
1470 applied if there are no arguments on the line. This allows you to
1477 applied if there are no arguments on the line. This allows you to
1471 just type 'foo' if foo is a callable to see its internal form,
1478 just type 'foo' if foo is a callable to see its internal form,
1472 instead of having it called with no arguments (typically a
1479 instead of having it called with no arguments (typically a
1473 mistake). The old 'full' autocall still exists: for that, you
1480 mistake). The old 'full' autocall still exists: for that, you
1474 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1481 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1475
1482
1476 * IPython/completer.py (Completer.attr_matches): add
1483 * IPython/completer.py (Completer.attr_matches): add
1477 tab-completion support for Enthoughts' traits. After a report by
1484 tab-completion support for Enthoughts' traits. After a report by
1478 Arnd and a patch by Prabhu.
1485 Arnd and a patch by Prabhu.
1479
1486
1480 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1487 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1481
1488
1482 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1489 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1483 Schmolck's patch to fix inspect.getinnerframes().
1490 Schmolck's patch to fix inspect.getinnerframes().
1484
1491
1485 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1492 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1486 for embedded instances, regarding handling of namespaces and items
1493 for embedded instances, regarding handling of namespaces and items
1487 added to the __builtin__ one. Multiple embedded instances and
1494 added to the __builtin__ one. Multiple embedded instances and
1488 recursive embeddings should work better now (though I'm not sure
1495 recursive embeddings should work better now (though I'm not sure
1489 I've got all the corner cases fixed, that code is a bit of a brain
1496 I've got all the corner cases fixed, that code is a bit of a brain
1490 twister).
1497 twister).
1491
1498
1492 * IPython/Magic.py (magic_edit): added support to edit in-memory
1499 * IPython/Magic.py (magic_edit): added support to edit in-memory
1493 macros (automatically creates the necessary temp files). %edit
1500 macros (automatically creates the necessary temp files). %edit
1494 also doesn't return the file contents anymore, it's just noise.
1501 also doesn't return the file contents anymore, it's just noise.
1495
1502
1496 * IPython/completer.py (Completer.attr_matches): revert change to
1503 * IPython/completer.py (Completer.attr_matches): revert change to
1497 complete only on attributes listed in __all__. I realized it
1504 complete only on attributes listed in __all__. I realized it
1498 cripples the tab-completion system as a tool for exploring the
1505 cripples the tab-completion system as a tool for exploring the
1499 internals of unknown libraries (it renders any non-__all__
1506 internals of unknown libraries (it renders any non-__all__
1500 attribute off-limits). I got bit by this when trying to see
1507 attribute off-limits). I got bit by this when trying to see
1501 something inside the dis module.
1508 something inside the dis module.
1502
1509
1503 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1510 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1504
1511
1505 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1512 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1506 namespace for users and extension writers to hold data in. This
1513 namespace for users and extension writers to hold data in. This
1507 follows the discussion in
1514 follows the discussion in
1508 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1515 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1509
1516
1510 * IPython/completer.py (IPCompleter.complete): small patch to help
1517 * IPython/completer.py (IPCompleter.complete): small patch to help
1511 tab-completion under Emacs, after a suggestion by John Barnard
1518 tab-completion under Emacs, after a suggestion by John Barnard
1512 <barnarj-AT-ccf.org>.
1519 <barnarj-AT-ccf.org>.
1513
1520
1514 * IPython/Magic.py (Magic.extract_input_slices): added support for
1521 * IPython/Magic.py (Magic.extract_input_slices): added support for
1515 the slice notation in magics to use N-M to represent numbers N...M
1522 the slice notation in magics to use N-M to represent numbers N...M
1516 (closed endpoints). This is used by %macro and %save.
1523 (closed endpoints). This is used by %macro and %save.
1517
1524
1518 * IPython/completer.py (Completer.attr_matches): for modules which
1525 * IPython/completer.py (Completer.attr_matches): for modules which
1519 define __all__, complete only on those. After a patch by Jeffrey
1526 define __all__, complete only on those. After a patch by Jeffrey
1520 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1527 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1521 speed up this routine.
1528 speed up this routine.
1522
1529
1523 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1530 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1524 don't know if this is the end of it, but the behavior now is
1531 don't know if this is the end of it, but the behavior now is
1525 certainly much more correct. Note that coupled with macros,
1532 certainly much more correct. Note that coupled with macros,
1526 slightly surprising (at first) behavior may occur: a macro will in
1533 slightly surprising (at first) behavior may occur: a macro will in
1527 general expand to multiple lines of input, so upon exiting, the
1534 general expand to multiple lines of input, so upon exiting, the
1528 in/out counters will both be bumped by the corresponding amount
1535 in/out counters will both be bumped by the corresponding amount
1529 (as if the macro's contents had been typed interactively). Typing
1536 (as if the macro's contents had been typed interactively). Typing
1530 %hist will reveal the intermediate (silently processed) lines.
1537 %hist will reveal the intermediate (silently processed) lines.
1531
1538
1532 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1539 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1533 pickle to fail (%run was overwriting __main__ and not restoring
1540 pickle to fail (%run was overwriting __main__ and not restoring
1534 it, but pickle relies on __main__ to operate).
1541 it, but pickle relies on __main__ to operate).
1535
1542
1536 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1543 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1537 using properties, but forgot to make the main InteractiveShell
1544 using properties, but forgot to make the main InteractiveShell
1538 class a new-style class. Properties fail silently, and
1545 class a new-style class. Properties fail silently, and
1539 mysteriously, with old-style class (getters work, but
1546 mysteriously, with old-style class (getters work, but
1540 setters don't do anything).
1547 setters don't do anything).
1541
1548
1542 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1549 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1543
1550
1544 * IPython/Magic.py (magic_history): fix history reporting bug (I
1551 * IPython/Magic.py (magic_history): fix history reporting bug (I
1545 know some nasties are still there, I just can't seem to find a
1552 know some nasties are still there, I just can't seem to find a
1546 reproducible test case to track them down; the input history is
1553 reproducible test case to track them down; the input history is
1547 falling out of sync...)
1554 falling out of sync...)
1548
1555
1549 * IPython/iplib.py (handle_shell_escape): fix bug where both
1556 * IPython/iplib.py (handle_shell_escape): fix bug where both
1550 aliases and system accesses where broken for indented code (such
1557 aliases and system accesses where broken for indented code (such
1551 as loops).
1558 as loops).
1552
1559
1553 * IPython/genutils.py (shell): fix small but critical bug for
1560 * IPython/genutils.py (shell): fix small but critical bug for
1554 win32 system access.
1561 win32 system access.
1555
1562
1556 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1563 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1557
1564
1558 * IPython/iplib.py (showtraceback): remove use of the
1565 * IPython/iplib.py (showtraceback): remove use of the
1559 sys.last_{type/value/traceback} structures, which are non
1566 sys.last_{type/value/traceback} structures, which are non
1560 thread-safe.
1567 thread-safe.
1561 (_prefilter): change control flow to ensure that we NEVER
1568 (_prefilter): change control flow to ensure that we NEVER
1562 introspect objects when autocall is off. This will guarantee that
1569 introspect objects when autocall is off. This will guarantee that
1563 having an input line of the form 'x.y', where access to attribute
1570 having an input line of the form 'x.y', where access to attribute
1564 'y' has side effects, doesn't trigger the side effect TWICE. It
1571 'y' has side effects, doesn't trigger the side effect TWICE. It
1565 is important to note that, with autocall on, these side effects
1572 is important to note that, with autocall on, these side effects
1566 can still happen.
1573 can still happen.
1567 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1574 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1568 trio. IPython offers these three kinds of special calls which are
1575 trio. IPython offers these three kinds of special calls which are
1569 not python code, and it's a good thing to have their call method
1576 not python code, and it's a good thing to have their call method
1570 be accessible as pure python functions (not just special syntax at
1577 be accessible as pure python functions (not just special syntax at
1571 the command line). It gives us a better internal implementation
1578 the command line). It gives us a better internal implementation
1572 structure, as well as exposing these for user scripting more
1579 structure, as well as exposing these for user scripting more
1573 cleanly.
1580 cleanly.
1574
1581
1575 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1582 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1576 file. Now that they'll be more likely to be used with the
1583 file. Now that they'll be more likely to be used with the
1577 persistance system (%store), I want to make sure their module path
1584 persistance system (%store), I want to make sure their module path
1578 doesn't change in the future, so that we don't break things for
1585 doesn't change in the future, so that we don't break things for
1579 users' persisted data.
1586 users' persisted data.
1580
1587
1581 * IPython/iplib.py (autoindent_update): move indentation
1588 * IPython/iplib.py (autoindent_update): move indentation
1582 management into the _text_ processing loop, not the keyboard
1589 management into the _text_ processing loop, not the keyboard
1583 interactive one. This is necessary to correctly process non-typed
1590 interactive one. This is necessary to correctly process non-typed
1584 multiline input (such as macros).
1591 multiline input (such as macros).
1585
1592
1586 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1593 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1587 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1594 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1588 which was producing problems in the resulting manual.
1595 which was producing problems in the resulting manual.
1589 (magic_whos): improve reporting of instances (show their class,
1596 (magic_whos): improve reporting of instances (show their class,
1590 instead of simply printing 'instance' which isn't terribly
1597 instead of simply printing 'instance' which isn't terribly
1591 informative).
1598 informative).
1592
1599
1593 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1600 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1594 (minor mods) to support network shares under win32.
1601 (minor mods) to support network shares under win32.
1595
1602
1596 * IPython/winconsole.py (get_console_size): add new winconsole
1603 * IPython/winconsole.py (get_console_size): add new winconsole
1597 module and fixes to page_dumb() to improve its behavior under
1604 module and fixes to page_dumb() to improve its behavior under
1598 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1605 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1599
1606
1600 * IPython/Magic.py (Macro): simplified Macro class to just
1607 * IPython/Magic.py (Macro): simplified Macro class to just
1601 subclass list. We've had only 2.2 compatibility for a very long
1608 subclass list. We've had only 2.2 compatibility for a very long
1602 time, yet I was still avoiding subclassing the builtin types. No
1609 time, yet I was still avoiding subclassing the builtin types. No
1603 more (I'm also starting to use properties, though I won't shift to
1610 more (I'm also starting to use properties, though I won't shift to
1604 2.3-specific features quite yet).
1611 2.3-specific features quite yet).
1605 (magic_store): added Ville's patch for lightweight variable
1612 (magic_store): added Ville's patch for lightweight variable
1606 persistence, after a request on the user list by Matt Wilkie
1613 persistence, after a request on the user list by Matt Wilkie
1607 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1614 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1608 details.
1615 details.
1609
1616
1610 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1617 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1611 changed the default logfile name from 'ipython.log' to
1618 changed the default logfile name from 'ipython.log' to
1612 'ipython_log.py'. These logs are real python files, and now that
1619 'ipython_log.py'. These logs are real python files, and now that
1613 we have much better multiline support, people are more likely to
1620 we have much better multiline support, people are more likely to
1614 want to use them as such. Might as well name them correctly.
1621 want to use them as such. Might as well name them correctly.
1615
1622
1616 * IPython/Magic.py: substantial cleanup. While we can't stop
1623 * IPython/Magic.py: substantial cleanup. While we can't stop
1617 using magics as mixins, due to the existing customizations 'out
1624 using magics as mixins, due to the existing customizations 'out
1618 there' which rely on the mixin naming conventions, at least I
1625 there' which rely on the mixin naming conventions, at least I
1619 cleaned out all cross-class name usage. So once we are OK with
1626 cleaned out all cross-class name usage. So once we are OK with
1620 breaking compatibility, the two systems can be separated.
1627 breaking compatibility, the two systems can be separated.
1621
1628
1622 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1629 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1623 anymore, and the class is a fair bit less hideous as well. New
1630 anymore, and the class is a fair bit less hideous as well. New
1624 features were also introduced: timestamping of input, and logging
1631 features were also introduced: timestamping of input, and logging
1625 of output results. These are user-visible with the -t and -o
1632 of output results. These are user-visible with the -t and -o
1626 options to %logstart. Closes
1633 options to %logstart. Closes
1627 http://www.scipy.net/roundup/ipython/issue11 and a request by
1634 http://www.scipy.net/roundup/ipython/issue11 and a request by
1628 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1635 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1629
1636
1630 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1637 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1631
1638
1632 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1639 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1633 better handle backslashes in paths. See the thread 'More Windows
1640 better handle backslashes in paths. See the thread 'More Windows
1634 questions part 2 - \/ characters revisited' on the iypthon user
1641 questions part 2 - \/ characters revisited' on the iypthon user
1635 list:
1642 list:
1636 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1643 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1637
1644
1638 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1645 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1639
1646
1640 (InteractiveShell.__init__): change threaded shells to not use the
1647 (InteractiveShell.__init__): change threaded shells to not use the
1641 ipython crash handler. This was causing more problems than not,
1648 ipython crash handler. This was causing more problems than not,
1642 as exceptions in the main thread (GUI code, typically) would
1649 as exceptions in the main thread (GUI code, typically) would
1643 always show up as a 'crash', when they really weren't.
1650 always show up as a 'crash', when they really weren't.
1644
1651
1645 The colors and exception mode commands (%colors/%xmode) have been
1652 The colors and exception mode commands (%colors/%xmode) have been
1646 synchronized to also take this into account, so users can get
1653 synchronized to also take this into account, so users can get
1647 verbose exceptions for their threaded code as well. I also added
1654 verbose exceptions for their threaded code as well. I also added
1648 support for activating pdb inside this exception handler as well,
1655 support for activating pdb inside this exception handler as well,
1649 so now GUI authors can use IPython's enhanced pdb at runtime.
1656 so now GUI authors can use IPython's enhanced pdb at runtime.
1650
1657
1651 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1658 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1652 true by default, and add it to the shipped ipythonrc file. Since
1659 true by default, and add it to the shipped ipythonrc file. Since
1653 this asks the user before proceeding, I think it's OK to make it
1660 this asks the user before proceeding, I think it's OK to make it
1654 true by default.
1661 true by default.
1655
1662
1656 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1663 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1657 of the previous special-casing of input in the eval loop. I think
1664 of the previous special-casing of input in the eval loop. I think
1658 this is cleaner, as they really are commands and shouldn't have
1665 this is cleaner, as they really are commands and shouldn't have
1659 a special role in the middle of the core code.
1666 a special role in the middle of the core code.
1660
1667
1661 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1668 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1662
1669
1663 * IPython/iplib.py (edit_syntax_error): added support for
1670 * IPython/iplib.py (edit_syntax_error): added support for
1664 automatically reopening the editor if the file had a syntax error
1671 automatically reopening the editor if the file had a syntax error
1665 in it. Thanks to scottt who provided the patch at:
1672 in it. Thanks to scottt who provided the patch at:
1666 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1673 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1667 version committed).
1674 version committed).
1668
1675
1669 * IPython/iplib.py (handle_normal): add suport for multi-line
1676 * IPython/iplib.py (handle_normal): add suport for multi-line
1670 input with emtpy lines. This fixes
1677 input with emtpy lines. This fixes
1671 http://www.scipy.net/roundup/ipython/issue43 and a similar
1678 http://www.scipy.net/roundup/ipython/issue43 and a similar
1672 discussion on the user list.
1679 discussion on the user list.
1673
1680
1674 WARNING: a behavior change is necessarily introduced to support
1681 WARNING: a behavior change is necessarily introduced to support
1675 blank lines: now a single blank line with whitespace does NOT
1682 blank lines: now a single blank line with whitespace does NOT
1676 break the input loop, which means that when autoindent is on, by
1683 break the input loop, which means that when autoindent is on, by
1677 default hitting return on the next (indented) line does NOT exit.
1684 default hitting return on the next (indented) line does NOT exit.
1678
1685
1679 Instead, to exit a multiline input you can either have:
1686 Instead, to exit a multiline input you can either have:
1680
1687
1681 - TWO whitespace lines (just hit return again), or
1688 - TWO whitespace lines (just hit return again), or
1682 - a single whitespace line of a different length than provided
1689 - a single whitespace line of a different length than provided
1683 by the autoindent (add or remove a space).
1690 by the autoindent (add or remove a space).
1684
1691
1685 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1692 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1686 module to better organize all readline-related functionality.
1693 module to better organize all readline-related functionality.
1687 I've deleted FlexCompleter and put all completion clases here.
1694 I've deleted FlexCompleter and put all completion clases here.
1688
1695
1689 * IPython/iplib.py (raw_input): improve indentation management.
1696 * IPython/iplib.py (raw_input): improve indentation management.
1690 It is now possible to paste indented code with autoindent on, and
1697 It is now possible to paste indented code with autoindent on, and
1691 the code is interpreted correctly (though it still looks bad on
1698 the code is interpreted correctly (though it still looks bad on
1692 screen, due to the line-oriented nature of ipython).
1699 screen, due to the line-oriented nature of ipython).
1693 (MagicCompleter.complete): change behavior so that a TAB key on an
1700 (MagicCompleter.complete): change behavior so that a TAB key on an
1694 otherwise empty line actually inserts a tab, instead of completing
1701 otherwise empty line actually inserts a tab, instead of completing
1695 on the entire global namespace. This makes it easier to use the
1702 on the entire global namespace. This makes it easier to use the
1696 TAB key for indentation. After a request by Hans Meine
1703 TAB key for indentation. After a request by Hans Meine
1697 <hans_meine-AT-gmx.net>
1704 <hans_meine-AT-gmx.net>
1698 (_prefilter): add support so that typing plain 'exit' or 'quit'
1705 (_prefilter): add support so that typing plain 'exit' or 'quit'
1699 does a sensible thing. Originally I tried to deviate as little as
1706 does a sensible thing. Originally I tried to deviate as little as
1700 possible from the default python behavior, but even that one may
1707 possible from the default python behavior, but even that one may
1701 change in this direction (thread on python-dev to that effect).
1708 change in this direction (thread on python-dev to that effect).
1702 Regardless, ipython should do the right thing even if CPython's
1709 Regardless, ipython should do the right thing even if CPython's
1703 '>>>' prompt doesn't.
1710 '>>>' prompt doesn't.
1704 (InteractiveShell): removed subclassing code.InteractiveConsole
1711 (InteractiveShell): removed subclassing code.InteractiveConsole
1705 class. By now we'd overridden just about all of its methods: I've
1712 class. By now we'd overridden just about all of its methods: I've
1706 copied the remaining two over, and now ipython is a standalone
1713 copied the remaining two over, and now ipython is a standalone
1707 class. This will provide a clearer picture for the chainsaw
1714 class. This will provide a clearer picture for the chainsaw
1708 branch refactoring.
1715 branch refactoring.
1709
1716
1710 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1717 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1711
1718
1712 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1719 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1713 failures for objects which break when dir() is called on them.
1720 failures for objects which break when dir() is called on them.
1714
1721
1715 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1722 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1716 distinct local and global namespaces in the completer API. This
1723 distinct local and global namespaces in the completer API. This
1717 change allows us to properly handle completion with distinct
1724 change allows us to properly handle completion with distinct
1718 scopes, including in embedded instances (this had never really
1725 scopes, including in embedded instances (this had never really
1719 worked correctly).
1726 worked correctly).
1720
1727
1721 Note: this introduces a change in the constructor for
1728 Note: this introduces a change in the constructor for
1722 MagicCompleter, as a new global_namespace parameter is now the
1729 MagicCompleter, as a new global_namespace parameter is now the
1723 second argument (the others were bumped one position).
1730 second argument (the others were bumped one position).
1724
1731
1725 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1732 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1726
1733
1727 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1734 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1728 embedded instances (which can be done now thanks to Vivian's
1735 embedded instances (which can be done now thanks to Vivian's
1729 frame-handling fixes for pdb).
1736 frame-handling fixes for pdb).
1730 (InteractiveShell.__init__): Fix namespace handling problem in
1737 (InteractiveShell.__init__): Fix namespace handling problem in
1731 embedded instances. We were overwriting __main__ unconditionally,
1738 embedded instances. We were overwriting __main__ unconditionally,
1732 and this should only be done for 'full' (non-embedded) IPython;
1739 and this should only be done for 'full' (non-embedded) IPython;
1733 embedded instances must respect the caller's __main__. Thanks to
1740 embedded instances must respect the caller's __main__. Thanks to
1734 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1741 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1735
1742
1736 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1743 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1737
1744
1738 * setup.py: added download_url to setup(). This registers the
1745 * setup.py: added download_url to setup(). This registers the
1739 download address at PyPI, which is not only useful to humans
1746 download address at PyPI, which is not only useful to humans
1740 browsing the site, but is also picked up by setuptools (the Eggs
1747 browsing the site, but is also picked up by setuptools (the Eggs
1741 machinery). Thanks to Ville and R. Kern for the info/discussion
1748 machinery). Thanks to Ville and R. Kern for the info/discussion
1742 on this.
1749 on this.
1743
1750
1744 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1751 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1745
1752
1746 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1753 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1747 This brings a lot of nice functionality to the pdb mode, which now
1754 This brings a lot of nice functionality to the pdb mode, which now
1748 has tab-completion, syntax highlighting, and better stack handling
1755 has tab-completion, syntax highlighting, and better stack handling
1749 than before. Many thanks to Vivian De Smedt
1756 than before. Many thanks to Vivian De Smedt
1750 <vivian-AT-vdesmedt.com> for the original patches.
1757 <vivian-AT-vdesmedt.com> for the original patches.
1751
1758
1752 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1759 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1753
1760
1754 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1761 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1755 sequence to consistently accept the banner argument. The
1762 sequence to consistently accept the banner argument. The
1756 inconsistency was tripping SAGE, thanks to Gary Zablackis
1763 inconsistency was tripping SAGE, thanks to Gary Zablackis
1757 <gzabl-AT-yahoo.com> for the report.
1764 <gzabl-AT-yahoo.com> for the report.
1758
1765
1759 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1766 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1760
1767
1761 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1768 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1762 Fix bug where a naked 'alias' call in the ipythonrc file would
1769 Fix bug where a naked 'alias' call in the ipythonrc file would
1763 cause a crash. Bug reported by Jorgen Stenarson.
1770 cause a crash. Bug reported by Jorgen Stenarson.
1764
1771
1765 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1772 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1766
1773
1767 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1774 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1768 startup time.
1775 startup time.
1769
1776
1770 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1777 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1771 instances had introduced a bug with globals in normal code. Now
1778 instances had introduced a bug with globals in normal code. Now
1772 it's working in all cases.
1779 it's working in all cases.
1773
1780
1774 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1781 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1775 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1782 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1776 has been introduced to set the default case sensitivity of the
1783 has been introduced to set the default case sensitivity of the
1777 searches. Users can still select either mode at runtime on a
1784 searches. Users can still select either mode at runtime on a
1778 per-search basis.
1785 per-search basis.
1779
1786
1780 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1787 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1781
1788
1782 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1789 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1783 attributes in wildcard searches for subclasses. Modified version
1790 attributes in wildcard searches for subclasses. Modified version
1784 of a patch by Jorgen.
1791 of a patch by Jorgen.
1785
1792
1786 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1793 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1787
1794
1788 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1795 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1789 embedded instances. I added a user_global_ns attribute to the
1796 embedded instances. I added a user_global_ns attribute to the
1790 InteractiveShell class to handle this.
1797 InteractiveShell class to handle this.
1791
1798
1792 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1799 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1793
1800
1794 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1801 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1795 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1802 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1796 (reported under win32, but may happen also in other platforms).
1803 (reported under win32, but may happen also in other platforms).
1797 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1804 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1798
1805
1799 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1806 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1800
1807
1801 * IPython/Magic.py (magic_psearch): new support for wildcard
1808 * IPython/Magic.py (magic_psearch): new support for wildcard
1802 patterns. Now, typing ?a*b will list all names which begin with a
1809 patterns. Now, typing ?a*b will list all names which begin with a
1803 and end in b, for example. The %psearch magic has full
1810 and end in b, for example. The %psearch magic has full
1804 docstrings. Many thanks to JΓΆrgen Stenarson
1811 docstrings. Many thanks to JΓΆrgen Stenarson
1805 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1812 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1806 implementing this functionality.
1813 implementing this functionality.
1807
1814
1808 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1815 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1809
1816
1810 * Manual: fixed long-standing annoyance of double-dashes (as in
1817 * Manual: fixed long-standing annoyance of double-dashes (as in
1811 --prefix=~, for example) being stripped in the HTML version. This
1818 --prefix=~, for example) being stripped in the HTML version. This
1812 is a latex2html bug, but a workaround was provided. Many thanks
1819 is a latex2html bug, but a workaround was provided. Many thanks
1813 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1820 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1814 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1821 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1815 rolling. This seemingly small issue had tripped a number of users
1822 rolling. This seemingly small issue had tripped a number of users
1816 when first installing, so I'm glad to see it gone.
1823 when first installing, so I'm glad to see it gone.
1817
1824
1818 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1825 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1819
1826
1820 * IPython/Extensions/numeric_formats.py: fix missing import,
1827 * IPython/Extensions/numeric_formats.py: fix missing import,
1821 reported by Stephen Walton.
1828 reported by Stephen Walton.
1822
1829
1823 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1830 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1824
1831
1825 * IPython/demo.py: finish demo module, fully documented now.
1832 * IPython/demo.py: finish demo module, fully documented now.
1826
1833
1827 * IPython/genutils.py (file_read): simple little utility to read a
1834 * IPython/genutils.py (file_read): simple little utility to read a
1828 file and ensure it's closed afterwards.
1835 file and ensure it's closed afterwards.
1829
1836
1830 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1837 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1831
1838
1832 * IPython/demo.py (Demo.__init__): added support for individually
1839 * IPython/demo.py (Demo.__init__): added support for individually
1833 tagging blocks for automatic execution.
1840 tagging blocks for automatic execution.
1834
1841
1835 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1842 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1836 syntax-highlighted python sources, requested by John.
1843 syntax-highlighted python sources, requested by John.
1837
1844
1838 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1845 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1839
1846
1840 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1847 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1841 finishing.
1848 finishing.
1842
1849
1843 * IPython/genutils.py (shlex_split): moved from Magic to here,
1850 * IPython/genutils.py (shlex_split): moved from Magic to here,
1844 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1851 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1845
1852
1846 * IPython/demo.py (Demo.__init__): added support for silent
1853 * IPython/demo.py (Demo.__init__): added support for silent
1847 blocks, improved marks as regexps, docstrings written.
1854 blocks, improved marks as regexps, docstrings written.
1848 (Demo.__init__): better docstring, added support for sys.argv.
1855 (Demo.__init__): better docstring, added support for sys.argv.
1849
1856
1850 * IPython/genutils.py (marquee): little utility used by the demo
1857 * IPython/genutils.py (marquee): little utility used by the demo
1851 code, handy in general.
1858 code, handy in general.
1852
1859
1853 * IPython/demo.py (Demo.__init__): new class for interactive
1860 * IPython/demo.py (Demo.__init__): new class for interactive
1854 demos. Not documented yet, I just wrote it in a hurry for
1861 demos. Not documented yet, I just wrote it in a hurry for
1855 scipy'05. Will docstring later.
1862 scipy'05. Will docstring later.
1856
1863
1857 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1864 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1858
1865
1859 * IPython/Shell.py (sigint_handler): Drastic simplification which
1866 * IPython/Shell.py (sigint_handler): Drastic simplification which
1860 also seems to make Ctrl-C work correctly across threads! This is
1867 also seems to make Ctrl-C work correctly across threads! This is
1861 so simple, that I can't beleive I'd missed it before. Needs more
1868 so simple, that I can't beleive I'd missed it before. Needs more
1862 testing, though.
1869 testing, though.
1863 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1870 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1864 like this before...
1871 like this before...
1865
1872
1866 * IPython/genutils.py (get_home_dir): add protection against
1873 * IPython/genutils.py (get_home_dir): add protection against
1867 non-dirs in win32 registry.
1874 non-dirs in win32 registry.
1868
1875
1869 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1876 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1870 bug where dict was mutated while iterating (pysh crash).
1877 bug where dict was mutated while iterating (pysh crash).
1871
1878
1872 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1879 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1873
1880
1874 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1881 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1875 spurious newlines added by this routine. After a report by
1882 spurious newlines added by this routine. After a report by
1876 F. Mantegazza.
1883 F. Mantegazza.
1877
1884
1878 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1885 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1879
1886
1880 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1887 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1881 calls. These were a leftover from the GTK 1.x days, and can cause
1888 calls. These were a leftover from the GTK 1.x days, and can cause
1882 problems in certain cases (after a report by John Hunter).
1889 problems in certain cases (after a report by John Hunter).
1883
1890
1884 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1891 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1885 os.getcwd() fails at init time. Thanks to patch from David Remahl
1892 os.getcwd() fails at init time. Thanks to patch from David Remahl
1886 <chmod007-AT-mac.com>.
1893 <chmod007-AT-mac.com>.
1887 (InteractiveShell.__init__): prevent certain special magics from
1894 (InteractiveShell.__init__): prevent certain special magics from
1888 being shadowed by aliases. Closes
1895 being shadowed by aliases. Closes
1889 http://www.scipy.net/roundup/ipython/issue41.
1896 http://www.scipy.net/roundup/ipython/issue41.
1890
1897
1891 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1898 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1892
1899
1893 * IPython/iplib.py (InteractiveShell.complete): Added new
1900 * IPython/iplib.py (InteractiveShell.complete): Added new
1894 top-level completion method to expose the completion mechanism
1901 top-level completion method to expose the completion mechanism
1895 beyond readline-based environments.
1902 beyond readline-based environments.
1896
1903
1897 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1904 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1898
1905
1899 * tools/ipsvnc (svnversion): fix svnversion capture.
1906 * tools/ipsvnc (svnversion): fix svnversion capture.
1900
1907
1901 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1908 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1902 attribute to self, which was missing. Before, it was set by a
1909 attribute to self, which was missing. Before, it was set by a
1903 routine which in certain cases wasn't being called, so the
1910 routine which in certain cases wasn't being called, so the
1904 instance could end up missing the attribute. This caused a crash.
1911 instance could end up missing the attribute. This caused a crash.
1905 Closes http://www.scipy.net/roundup/ipython/issue40.
1912 Closes http://www.scipy.net/roundup/ipython/issue40.
1906
1913
1907 2005-08-16 Fernando Perez <fperez@colorado.edu>
1914 2005-08-16 Fernando Perez <fperez@colorado.edu>
1908
1915
1909 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1916 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1910 contains non-string attribute. Closes
1917 contains non-string attribute. Closes
1911 http://www.scipy.net/roundup/ipython/issue38.
1918 http://www.scipy.net/roundup/ipython/issue38.
1912
1919
1913 2005-08-14 Fernando Perez <fperez@colorado.edu>
1920 2005-08-14 Fernando Perez <fperez@colorado.edu>
1914
1921
1915 * tools/ipsvnc: Minor improvements, to add changeset info.
1922 * tools/ipsvnc: Minor improvements, to add changeset info.
1916
1923
1917 2005-08-12 Fernando Perez <fperez@colorado.edu>
1924 2005-08-12 Fernando Perez <fperez@colorado.edu>
1918
1925
1919 * IPython/iplib.py (runsource): remove self.code_to_run_src
1926 * IPython/iplib.py (runsource): remove self.code_to_run_src
1920 attribute. I realized this is nothing more than
1927 attribute. I realized this is nothing more than
1921 '\n'.join(self.buffer), and having the same data in two different
1928 '\n'.join(self.buffer), and having the same data in two different
1922 places is just asking for synchronization bugs. This may impact
1929 places is just asking for synchronization bugs. This may impact
1923 people who have custom exception handlers, so I need to warn
1930 people who have custom exception handlers, so I need to warn
1924 ipython-dev about it (F. Mantegazza may use them).
1931 ipython-dev about it (F. Mantegazza may use them).
1925
1932
1926 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1933 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1927
1934
1928 * IPython/genutils.py: fix 2.2 compatibility (generators)
1935 * IPython/genutils.py: fix 2.2 compatibility (generators)
1929
1936
1930 2005-07-18 Fernando Perez <fperez@colorado.edu>
1937 2005-07-18 Fernando Perez <fperez@colorado.edu>
1931
1938
1932 * IPython/genutils.py (get_home_dir): fix to help users with
1939 * IPython/genutils.py (get_home_dir): fix to help users with
1933 invalid $HOME under win32.
1940 invalid $HOME under win32.
1934
1941
1935 2005-07-17 Fernando Perez <fperez@colorado.edu>
1942 2005-07-17 Fernando Perez <fperez@colorado.edu>
1936
1943
1937 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1944 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1938 some old hacks and clean up a bit other routines; code should be
1945 some old hacks and clean up a bit other routines; code should be
1939 simpler and a bit faster.
1946 simpler and a bit faster.
1940
1947
1941 * IPython/iplib.py (interact): removed some last-resort attempts
1948 * IPython/iplib.py (interact): removed some last-resort attempts
1942 to survive broken stdout/stderr. That code was only making it
1949 to survive broken stdout/stderr. That code was only making it
1943 harder to abstract out the i/o (necessary for gui integration),
1950 harder to abstract out the i/o (necessary for gui integration),
1944 and the crashes it could prevent were extremely rare in practice
1951 and the crashes it could prevent were extremely rare in practice
1945 (besides being fully user-induced in a pretty violent manner).
1952 (besides being fully user-induced in a pretty violent manner).
1946
1953
1947 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1954 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1948 Nothing major yet, but the code is simpler to read; this should
1955 Nothing major yet, but the code is simpler to read; this should
1949 make it easier to do more serious modifications in the future.
1956 make it easier to do more serious modifications in the future.
1950
1957
1951 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1958 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1952 which broke in .15 (thanks to a report by Ville).
1959 which broke in .15 (thanks to a report by Ville).
1953
1960
1954 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1961 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1955 be quite correct, I know next to nothing about unicode). This
1962 be quite correct, I know next to nothing about unicode). This
1956 will allow unicode strings to be used in prompts, amongst other
1963 will allow unicode strings to be used in prompts, amongst other
1957 cases. It also will prevent ipython from crashing when unicode
1964 cases. It also will prevent ipython from crashing when unicode
1958 shows up unexpectedly in many places. If ascii encoding fails, we
1965 shows up unexpectedly in many places. If ascii encoding fails, we
1959 assume utf_8. Currently the encoding is not a user-visible
1966 assume utf_8. Currently the encoding is not a user-visible
1960 setting, though it could be made so if there is demand for it.
1967 setting, though it could be made so if there is demand for it.
1961
1968
1962 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1969 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1963
1970
1964 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1971 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1965
1972
1966 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1973 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1967
1974
1968 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1975 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1969 code can work transparently for 2.2/2.3.
1976 code can work transparently for 2.2/2.3.
1970
1977
1971 2005-07-16 Fernando Perez <fperez@colorado.edu>
1978 2005-07-16 Fernando Perez <fperez@colorado.edu>
1972
1979
1973 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1980 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1974 out of the color scheme table used for coloring exception
1981 out of the color scheme table used for coloring exception
1975 tracebacks. This allows user code to add new schemes at runtime.
1982 tracebacks. This allows user code to add new schemes at runtime.
1976 This is a minimally modified version of the patch at
1983 This is a minimally modified version of the patch at
1977 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1984 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1978 for the contribution.
1985 for the contribution.
1979
1986
1980 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1987 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1981 slightly modified version of the patch in
1988 slightly modified version of the patch in
1982 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1989 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1983 to remove the previous try/except solution (which was costlier).
1990 to remove the previous try/except solution (which was costlier).
1984 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1991 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1985
1992
1986 2005-06-08 Fernando Perez <fperez@colorado.edu>
1993 2005-06-08 Fernando Perez <fperez@colorado.edu>
1987
1994
1988 * IPython/iplib.py (write/write_err): Add methods to abstract all
1995 * IPython/iplib.py (write/write_err): Add methods to abstract all
1989 I/O a bit more.
1996 I/O a bit more.
1990
1997
1991 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1998 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1992 warning, reported by Aric Hagberg, fix by JD Hunter.
1999 warning, reported by Aric Hagberg, fix by JD Hunter.
1993
2000
1994 2005-06-02 *** Released version 0.6.15
2001 2005-06-02 *** Released version 0.6.15
1995
2002
1996 2005-06-01 Fernando Perez <fperez@colorado.edu>
2003 2005-06-01 Fernando Perez <fperez@colorado.edu>
1997
2004
1998 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2005 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1999 tab-completion of filenames within open-quoted strings. Note that
2006 tab-completion of filenames within open-quoted strings. Note that
2000 this requires that in ~/.ipython/ipythonrc, users change the
2007 this requires that in ~/.ipython/ipythonrc, users change the
2001 readline delimiters configuration to read:
2008 readline delimiters configuration to read:
2002
2009
2003 readline_remove_delims -/~
2010 readline_remove_delims -/~
2004
2011
2005
2012
2006 2005-05-31 *** Released version 0.6.14
2013 2005-05-31 *** Released version 0.6.14
2007
2014
2008 2005-05-29 Fernando Perez <fperez@colorado.edu>
2015 2005-05-29 Fernando Perez <fperez@colorado.edu>
2009
2016
2010 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2017 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2011 with files not on the filesystem. Reported by Eliyahu Sandler
2018 with files not on the filesystem. Reported by Eliyahu Sandler
2012 <eli@gondolin.net>
2019 <eli@gondolin.net>
2013
2020
2014 2005-05-22 Fernando Perez <fperez@colorado.edu>
2021 2005-05-22 Fernando Perez <fperez@colorado.edu>
2015
2022
2016 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2023 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2017 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2024 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2018
2025
2019 2005-05-19 Fernando Perez <fperez@colorado.edu>
2026 2005-05-19 Fernando Perez <fperez@colorado.edu>
2020
2027
2021 * IPython/iplib.py (safe_execfile): close a file which could be
2028 * IPython/iplib.py (safe_execfile): close a file which could be
2022 left open (causing problems in win32, which locks open files).
2029 left open (causing problems in win32, which locks open files).
2023 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2030 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2024
2031
2025 2005-05-18 Fernando Perez <fperez@colorado.edu>
2032 2005-05-18 Fernando Perez <fperez@colorado.edu>
2026
2033
2027 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2034 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2028 keyword arguments correctly to safe_execfile().
2035 keyword arguments correctly to safe_execfile().
2029
2036
2030 2005-05-13 Fernando Perez <fperez@colorado.edu>
2037 2005-05-13 Fernando Perez <fperez@colorado.edu>
2031
2038
2032 * ipython.1: Added info about Qt to manpage, and threads warning
2039 * ipython.1: Added info about Qt to manpage, and threads warning
2033 to usage page (invoked with --help).
2040 to usage page (invoked with --help).
2034
2041
2035 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2042 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2036 new matcher (it goes at the end of the priority list) to do
2043 new matcher (it goes at the end of the priority list) to do
2037 tab-completion on named function arguments. Submitted by George
2044 tab-completion on named function arguments. Submitted by George
2038 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2045 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2039 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2046 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2040 for more details.
2047 for more details.
2041
2048
2042 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2049 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2043 SystemExit exceptions in the script being run. Thanks to a report
2050 SystemExit exceptions in the script being run. Thanks to a report
2044 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2051 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2045 producing very annoying behavior when running unit tests.
2052 producing very annoying behavior when running unit tests.
2046
2053
2047 2005-05-12 Fernando Perez <fperez@colorado.edu>
2054 2005-05-12 Fernando Perez <fperez@colorado.edu>
2048
2055
2049 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2056 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2050 which I'd broken (again) due to a changed regexp. In the process,
2057 which I'd broken (again) due to a changed regexp. In the process,
2051 added ';' as an escape to auto-quote the whole line without
2058 added ';' as an escape to auto-quote the whole line without
2052 splitting its arguments. Thanks to a report by Jerry McRae
2059 splitting its arguments. Thanks to a report by Jerry McRae
2053 <qrs0xyc02-AT-sneakemail.com>.
2060 <qrs0xyc02-AT-sneakemail.com>.
2054
2061
2055 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2062 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2056 possible crashes caused by a TokenError. Reported by Ed Schofield
2063 possible crashes caused by a TokenError. Reported by Ed Schofield
2057 <schofield-AT-ftw.at>.
2064 <schofield-AT-ftw.at>.
2058
2065
2059 2005-05-06 Fernando Perez <fperez@colorado.edu>
2066 2005-05-06 Fernando Perez <fperez@colorado.edu>
2060
2067
2061 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2068 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2062
2069
2063 2005-04-29 Fernando Perez <fperez@colorado.edu>
2070 2005-04-29 Fernando Perez <fperez@colorado.edu>
2064
2071
2065 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2072 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2066 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2073 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2067 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2074 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2068 which provides support for Qt interactive usage (similar to the
2075 which provides support for Qt interactive usage (similar to the
2069 existing one for WX and GTK). This had been often requested.
2076 existing one for WX and GTK). This had been often requested.
2070
2077
2071 2005-04-14 *** Released version 0.6.13
2078 2005-04-14 *** Released version 0.6.13
2072
2079
2073 2005-04-08 Fernando Perez <fperez@colorado.edu>
2080 2005-04-08 Fernando Perez <fperez@colorado.edu>
2074
2081
2075 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2082 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2076 from _ofind, which gets called on almost every input line. Now,
2083 from _ofind, which gets called on almost every input line. Now,
2077 we only try to get docstrings if they are actually going to be
2084 we only try to get docstrings if they are actually going to be
2078 used (the overhead of fetching unnecessary docstrings can be
2085 used (the overhead of fetching unnecessary docstrings can be
2079 noticeable for certain objects, such as Pyro proxies).
2086 noticeable for certain objects, such as Pyro proxies).
2080
2087
2081 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2088 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2082 for completers. For some reason I had been passing them the state
2089 for completers. For some reason I had been passing them the state
2083 variable, which completers never actually need, and was in
2090 variable, which completers never actually need, and was in
2084 conflict with the rlcompleter API. Custom completers ONLY need to
2091 conflict with the rlcompleter API. Custom completers ONLY need to
2085 take the text parameter.
2092 take the text parameter.
2086
2093
2087 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2094 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2088 work correctly in pysh. I've also moved all the logic which used
2095 work correctly in pysh. I've also moved all the logic which used
2089 to be in pysh.py here, which will prevent problems with future
2096 to be in pysh.py here, which will prevent problems with future
2090 upgrades. However, this time I must warn users to update their
2097 upgrades. However, this time I must warn users to update their
2091 pysh profile to include the line
2098 pysh profile to include the line
2092
2099
2093 import_all IPython.Extensions.InterpreterExec
2100 import_all IPython.Extensions.InterpreterExec
2094
2101
2095 because otherwise things won't work for them. They MUST also
2102 because otherwise things won't work for them. They MUST also
2096 delete pysh.py and the line
2103 delete pysh.py and the line
2097
2104
2098 execfile pysh.py
2105 execfile pysh.py
2099
2106
2100 from their ipythonrc-pysh.
2107 from their ipythonrc-pysh.
2101
2108
2102 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2109 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2103 robust in the face of objects whose dir() returns non-strings
2110 robust in the face of objects whose dir() returns non-strings
2104 (which it shouldn't, but some broken libs like ITK do). Thanks to
2111 (which it shouldn't, but some broken libs like ITK do). Thanks to
2105 a patch by John Hunter (implemented differently, though). Also
2112 a patch by John Hunter (implemented differently, though). Also
2106 minor improvements by using .extend instead of + on lists.
2113 minor improvements by using .extend instead of + on lists.
2107
2114
2108 * pysh.py:
2115 * pysh.py:
2109
2116
2110 2005-04-06 Fernando Perez <fperez@colorado.edu>
2117 2005-04-06 Fernando Perez <fperez@colorado.edu>
2111
2118
2112 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2119 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2113 by default, so that all users benefit from it. Those who don't
2120 by default, so that all users benefit from it. Those who don't
2114 want it can still turn it off.
2121 want it can still turn it off.
2115
2122
2116 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2123 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2117 config file, I'd forgotten about this, so users were getting it
2124 config file, I'd forgotten about this, so users were getting it
2118 off by default.
2125 off by default.
2119
2126
2120 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2127 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2121 consistency. Now magics can be called in multiline statements,
2128 consistency. Now magics can be called in multiline statements,
2122 and python variables can be expanded in magic calls via $var.
2129 and python variables can be expanded in magic calls via $var.
2123 This makes the magic system behave just like aliases or !system
2130 This makes the magic system behave just like aliases or !system
2124 calls.
2131 calls.
2125
2132
2126 2005-03-28 Fernando Perez <fperez@colorado.edu>
2133 2005-03-28 Fernando Perez <fperez@colorado.edu>
2127
2134
2128 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2135 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2129 expensive string additions for building command. Add support for
2136 expensive string additions for building command. Add support for
2130 trailing ';' when autocall is used.
2137 trailing ';' when autocall is used.
2131
2138
2132 2005-03-26 Fernando Perez <fperez@colorado.edu>
2139 2005-03-26 Fernando Perez <fperez@colorado.edu>
2133
2140
2134 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2141 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2135 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2142 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2136 ipython.el robust against prompts with any number of spaces
2143 ipython.el robust against prompts with any number of spaces
2137 (including 0) after the ':' character.
2144 (including 0) after the ':' character.
2138
2145
2139 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2146 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2140 continuation prompt, which misled users to think the line was
2147 continuation prompt, which misled users to think the line was
2141 already indented. Closes debian Bug#300847, reported to me by
2148 already indented. Closes debian Bug#300847, reported to me by
2142 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2149 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2143
2150
2144 2005-03-23 Fernando Perez <fperez@colorado.edu>
2151 2005-03-23 Fernando Perez <fperez@colorado.edu>
2145
2152
2146 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2153 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2147 properly aligned if they have embedded newlines.
2154 properly aligned if they have embedded newlines.
2148
2155
2149 * IPython/iplib.py (runlines): Add a public method to expose
2156 * IPython/iplib.py (runlines): Add a public method to expose
2150 IPython's code execution machinery, so that users can run strings
2157 IPython's code execution machinery, so that users can run strings
2151 as if they had been typed at the prompt interactively.
2158 as if they had been typed at the prompt interactively.
2152 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2159 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2153 methods which can call the system shell, but with python variable
2160 methods which can call the system shell, but with python variable
2154 expansion. The three such methods are: __IPYTHON__.system,
2161 expansion. The three such methods are: __IPYTHON__.system,
2155 .getoutput and .getoutputerror. These need to be documented in a
2162 .getoutput and .getoutputerror. These need to be documented in a
2156 'public API' section (to be written) of the manual.
2163 'public API' section (to be written) of the manual.
2157
2164
2158 2005-03-20 Fernando Perez <fperez@colorado.edu>
2165 2005-03-20 Fernando Perez <fperez@colorado.edu>
2159
2166
2160 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2167 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2161 for custom exception handling. This is quite powerful, and it
2168 for custom exception handling. This is quite powerful, and it
2162 allows for user-installable exception handlers which can trap
2169 allows for user-installable exception handlers which can trap
2163 custom exceptions at runtime and treat them separately from
2170 custom exceptions at runtime and treat them separately from
2164 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2171 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2165 Mantegazza <mantegazza-AT-ill.fr>.
2172 Mantegazza <mantegazza-AT-ill.fr>.
2166 (InteractiveShell.set_custom_completer): public API function to
2173 (InteractiveShell.set_custom_completer): public API function to
2167 add new completers at runtime.
2174 add new completers at runtime.
2168
2175
2169 2005-03-19 Fernando Perez <fperez@colorado.edu>
2176 2005-03-19 Fernando Perez <fperez@colorado.edu>
2170
2177
2171 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2178 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2172 allow objects which provide their docstrings via non-standard
2179 allow objects which provide their docstrings via non-standard
2173 mechanisms (like Pyro proxies) to still be inspected by ipython's
2180 mechanisms (like Pyro proxies) to still be inspected by ipython's
2174 ? system.
2181 ? system.
2175
2182
2176 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2183 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2177 automatic capture system. I tried quite hard to make it work
2184 automatic capture system. I tried quite hard to make it work
2178 reliably, and simply failed. I tried many combinations with the
2185 reliably, and simply failed. I tried many combinations with the
2179 subprocess module, but eventually nothing worked in all needed
2186 subprocess module, but eventually nothing worked in all needed
2180 cases (not blocking stdin for the child, duplicating stdout
2187 cases (not blocking stdin for the child, duplicating stdout
2181 without blocking, etc). The new %sc/%sx still do capture to these
2188 without blocking, etc). The new %sc/%sx still do capture to these
2182 magical list/string objects which make shell use much more
2189 magical list/string objects which make shell use much more
2183 conveninent, so not all is lost.
2190 conveninent, so not all is lost.
2184
2191
2185 XXX - FIX MANUAL for the change above!
2192 XXX - FIX MANUAL for the change above!
2186
2193
2187 (runsource): I copied code.py's runsource() into ipython to modify
2194 (runsource): I copied code.py's runsource() into ipython to modify
2188 it a bit. Now the code object and source to be executed are
2195 it a bit. Now the code object and source to be executed are
2189 stored in ipython. This makes this info accessible to third-party
2196 stored in ipython. This makes this info accessible to third-party
2190 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2197 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2191 Mantegazza <mantegazza-AT-ill.fr>.
2198 Mantegazza <mantegazza-AT-ill.fr>.
2192
2199
2193 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2200 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2194 history-search via readline (like C-p/C-n). I'd wanted this for a
2201 history-search via readline (like C-p/C-n). I'd wanted this for a
2195 long time, but only recently found out how to do it. For users
2202 long time, but only recently found out how to do it. For users
2196 who already have their ipythonrc files made and want this, just
2203 who already have their ipythonrc files made and want this, just
2197 add:
2204 add:
2198
2205
2199 readline_parse_and_bind "\e[A": history-search-backward
2206 readline_parse_and_bind "\e[A": history-search-backward
2200 readline_parse_and_bind "\e[B": history-search-forward
2207 readline_parse_and_bind "\e[B": history-search-forward
2201
2208
2202 2005-03-18 Fernando Perez <fperez@colorado.edu>
2209 2005-03-18 Fernando Perez <fperez@colorado.edu>
2203
2210
2204 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2211 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2205 LSString and SList classes which allow transparent conversions
2212 LSString and SList classes which allow transparent conversions
2206 between list mode and whitespace-separated string.
2213 between list mode and whitespace-separated string.
2207 (magic_r): Fix recursion problem in %r.
2214 (magic_r): Fix recursion problem in %r.
2208
2215
2209 * IPython/genutils.py (LSString): New class to be used for
2216 * IPython/genutils.py (LSString): New class to be used for
2210 automatic storage of the results of all alias/system calls in _o
2217 automatic storage of the results of all alias/system calls in _o
2211 and _e (stdout/err). These provide a .l/.list attribute which
2218 and _e (stdout/err). These provide a .l/.list attribute which
2212 does automatic splitting on newlines. This means that for most
2219 does automatic splitting on newlines. This means that for most
2213 uses, you'll never need to do capturing of output with %sc/%sx
2220 uses, you'll never need to do capturing of output with %sc/%sx
2214 anymore, since ipython keeps this always done for you. Note that
2221 anymore, since ipython keeps this always done for you. Note that
2215 only the LAST results are stored, the _o/e variables are
2222 only the LAST results are stored, the _o/e variables are
2216 overwritten on each call. If you need to save their contents
2223 overwritten on each call. If you need to save their contents
2217 further, simply bind them to any other name.
2224 further, simply bind them to any other name.
2218
2225
2219 2005-03-17 Fernando Perez <fperez@colorado.edu>
2226 2005-03-17 Fernando Perez <fperez@colorado.edu>
2220
2227
2221 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2228 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2222 prompt namespace handling.
2229 prompt namespace handling.
2223
2230
2224 2005-03-16 Fernando Perez <fperez@colorado.edu>
2231 2005-03-16 Fernando Perez <fperez@colorado.edu>
2225
2232
2226 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2233 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2227 classic prompts to be '>>> ' (final space was missing, and it
2234 classic prompts to be '>>> ' (final space was missing, and it
2228 trips the emacs python mode).
2235 trips the emacs python mode).
2229 (BasePrompt.__str__): Added safe support for dynamic prompt
2236 (BasePrompt.__str__): Added safe support for dynamic prompt
2230 strings. Now you can set your prompt string to be '$x', and the
2237 strings. Now you can set your prompt string to be '$x', and the
2231 value of x will be printed from your interactive namespace. The
2238 value of x will be printed from your interactive namespace. The
2232 interpolation syntax includes the full Itpl support, so
2239 interpolation syntax includes the full Itpl support, so
2233 ${foo()+x+bar()} is a valid prompt string now, and the function
2240 ${foo()+x+bar()} is a valid prompt string now, and the function
2234 calls will be made at runtime.
2241 calls will be made at runtime.
2235
2242
2236 2005-03-15 Fernando Perez <fperez@colorado.edu>
2243 2005-03-15 Fernando Perez <fperez@colorado.edu>
2237
2244
2238 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2245 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2239 avoid name clashes in pylab. %hist still works, it just forwards
2246 avoid name clashes in pylab. %hist still works, it just forwards
2240 the call to %history.
2247 the call to %history.
2241
2248
2242 2005-03-02 *** Released version 0.6.12
2249 2005-03-02 *** Released version 0.6.12
2243
2250
2244 2005-03-02 Fernando Perez <fperez@colorado.edu>
2251 2005-03-02 Fernando Perez <fperez@colorado.edu>
2245
2252
2246 * IPython/iplib.py (handle_magic): log magic calls properly as
2253 * IPython/iplib.py (handle_magic): log magic calls properly as
2247 ipmagic() function calls.
2254 ipmagic() function calls.
2248
2255
2249 * IPython/Magic.py (magic_time): Improved %time to support
2256 * IPython/Magic.py (magic_time): Improved %time to support
2250 statements and provide wall-clock as well as CPU time.
2257 statements and provide wall-clock as well as CPU time.
2251
2258
2252 2005-02-27 Fernando Perez <fperez@colorado.edu>
2259 2005-02-27 Fernando Perez <fperez@colorado.edu>
2253
2260
2254 * IPython/hooks.py: New hooks module, to expose user-modifiable
2261 * IPython/hooks.py: New hooks module, to expose user-modifiable
2255 IPython functionality in a clean manner. For now only the editor
2262 IPython functionality in a clean manner. For now only the editor
2256 hook is actually written, and other thigns which I intend to turn
2263 hook is actually written, and other thigns which I intend to turn
2257 into proper hooks aren't yet there. The display and prefilter
2264 into proper hooks aren't yet there. The display and prefilter
2258 stuff, for example, should be hooks. But at least now the
2265 stuff, for example, should be hooks. But at least now the
2259 framework is in place, and the rest can be moved here with more
2266 framework is in place, and the rest can be moved here with more
2260 time later. IPython had had a .hooks variable for a long time for
2267 time later. IPython had had a .hooks variable for a long time for
2261 this purpose, but I'd never actually used it for anything.
2268 this purpose, but I'd never actually used it for anything.
2262
2269
2263 2005-02-26 Fernando Perez <fperez@colorado.edu>
2270 2005-02-26 Fernando Perez <fperez@colorado.edu>
2264
2271
2265 * IPython/ipmaker.py (make_IPython): make the default ipython
2272 * IPython/ipmaker.py (make_IPython): make the default ipython
2266 directory be called _ipython under win32, to follow more the
2273 directory be called _ipython under win32, to follow more the
2267 naming peculiarities of that platform (where buggy software like
2274 naming peculiarities of that platform (where buggy software like
2268 Visual Sourcesafe breaks with .named directories). Reported by
2275 Visual Sourcesafe breaks with .named directories). Reported by
2269 Ville Vainio.
2276 Ville Vainio.
2270
2277
2271 2005-02-23 Fernando Perez <fperez@colorado.edu>
2278 2005-02-23 Fernando Perez <fperez@colorado.edu>
2272
2279
2273 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2280 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2274 auto_aliases for win32 which were causing problems. Users can
2281 auto_aliases for win32 which were causing problems. Users can
2275 define the ones they personally like.
2282 define the ones they personally like.
2276
2283
2277 2005-02-21 Fernando Perez <fperez@colorado.edu>
2284 2005-02-21 Fernando Perez <fperez@colorado.edu>
2278
2285
2279 * IPython/Magic.py (magic_time): new magic to time execution of
2286 * IPython/Magic.py (magic_time): new magic to time execution of
2280 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2287 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2281
2288
2282 2005-02-19 Fernando Perez <fperez@colorado.edu>
2289 2005-02-19 Fernando Perez <fperez@colorado.edu>
2283
2290
2284 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2291 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2285 into keys (for prompts, for example).
2292 into keys (for prompts, for example).
2286
2293
2287 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2294 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2288 prompts in case users want them. This introduces a small behavior
2295 prompts in case users want them. This introduces a small behavior
2289 change: ipython does not automatically add a space to all prompts
2296 change: ipython does not automatically add a space to all prompts
2290 anymore. To get the old prompts with a space, users should add it
2297 anymore. To get the old prompts with a space, users should add it
2291 manually to their ipythonrc file, so for example prompt_in1 should
2298 manually to their ipythonrc file, so for example prompt_in1 should
2292 now read 'In [\#]: ' instead of 'In [\#]:'.
2299 now read 'In [\#]: ' instead of 'In [\#]:'.
2293 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2300 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2294 file) to control left-padding of secondary prompts.
2301 file) to control left-padding of secondary prompts.
2295
2302
2296 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2303 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2297 the profiler can't be imported. Fix for Debian, which removed
2304 the profiler can't be imported. Fix for Debian, which removed
2298 profile.py because of License issues. I applied a slightly
2305 profile.py because of License issues. I applied a slightly
2299 modified version of the original Debian patch at
2306 modified version of the original Debian patch at
2300 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2307 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2301
2308
2302 2005-02-17 Fernando Perez <fperez@colorado.edu>
2309 2005-02-17 Fernando Perez <fperez@colorado.edu>
2303
2310
2304 * IPython/genutils.py (native_line_ends): Fix bug which would
2311 * IPython/genutils.py (native_line_ends): Fix bug which would
2305 cause improper line-ends under win32 b/c I was not opening files
2312 cause improper line-ends under win32 b/c I was not opening files
2306 in binary mode. Bug report and fix thanks to Ville.
2313 in binary mode. Bug report and fix thanks to Ville.
2307
2314
2308 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2315 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2309 trying to catch spurious foo[1] autocalls. My fix actually broke
2316 trying to catch spurious foo[1] autocalls. My fix actually broke
2310 ',/' autoquote/call with explicit escape (bad regexp).
2317 ',/' autoquote/call with explicit escape (bad regexp).
2311
2318
2312 2005-02-15 *** Released version 0.6.11
2319 2005-02-15 *** Released version 0.6.11
2313
2320
2314 2005-02-14 Fernando Perez <fperez@colorado.edu>
2321 2005-02-14 Fernando Perez <fperez@colorado.edu>
2315
2322
2316 * IPython/background_jobs.py: New background job management
2323 * IPython/background_jobs.py: New background job management
2317 subsystem. This is implemented via a new set of classes, and
2324 subsystem. This is implemented via a new set of classes, and
2318 IPython now provides a builtin 'jobs' object for background job
2325 IPython now provides a builtin 'jobs' object for background job
2319 execution. A convenience %bg magic serves as a lightweight
2326 execution. A convenience %bg magic serves as a lightweight
2320 frontend for starting the more common type of calls. This was
2327 frontend for starting the more common type of calls. This was
2321 inspired by discussions with B. Granger and the BackgroundCommand
2328 inspired by discussions with B. Granger and the BackgroundCommand
2322 class described in the book Python Scripting for Computational
2329 class described in the book Python Scripting for Computational
2323 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2330 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2324 (although ultimately no code from this text was used, as IPython's
2331 (although ultimately no code from this text was used, as IPython's
2325 system is a separate implementation).
2332 system is a separate implementation).
2326
2333
2327 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2334 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2328 to control the completion of single/double underscore names
2335 to control the completion of single/double underscore names
2329 separately. As documented in the example ipytonrc file, the
2336 separately. As documented in the example ipytonrc file, the
2330 readline_omit__names variable can now be set to 2, to omit even
2337 readline_omit__names variable can now be set to 2, to omit even
2331 single underscore names. Thanks to a patch by Brian Wong
2338 single underscore names. Thanks to a patch by Brian Wong
2332 <BrianWong-AT-AirgoNetworks.Com>.
2339 <BrianWong-AT-AirgoNetworks.Com>.
2333 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2340 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2334 be autocalled as foo([1]) if foo were callable. A problem for
2341 be autocalled as foo([1]) if foo were callable. A problem for
2335 things which are both callable and implement __getitem__.
2342 things which are both callable and implement __getitem__.
2336 (init_readline): Fix autoindentation for win32. Thanks to a patch
2343 (init_readline): Fix autoindentation for win32. Thanks to a patch
2337 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2344 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2338
2345
2339 2005-02-12 Fernando Perez <fperez@colorado.edu>
2346 2005-02-12 Fernando Perez <fperez@colorado.edu>
2340
2347
2341 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2348 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2342 which I had written long ago to sort out user error messages which
2349 which I had written long ago to sort out user error messages which
2343 may occur during startup. This seemed like a good idea initially,
2350 may occur during startup. This seemed like a good idea initially,
2344 but it has proven a disaster in retrospect. I don't want to
2351 but it has proven a disaster in retrospect. I don't want to
2345 change much code for now, so my fix is to set the internal 'debug'
2352 change much code for now, so my fix is to set the internal 'debug'
2346 flag to true everywhere, whose only job was precisely to control
2353 flag to true everywhere, whose only job was precisely to control
2347 this subsystem. This closes issue 28 (as well as avoiding all
2354 this subsystem. This closes issue 28 (as well as avoiding all
2348 sorts of strange hangups which occur from time to time).
2355 sorts of strange hangups which occur from time to time).
2349
2356
2350 2005-02-07 Fernando Perez <fperez@colorado.edu>
2357 2005-02-07 Fernando Perez <fperez@colorado.edu>
2351
2358
2352 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2359 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2353 previous call produced a syntax error.
2360 previous call produced a syntax error.
2354
2361
2355 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2362 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2356 classes without constructor.
2363 classes without constructor.
2357
2364
2358 2005-02-06 Fernando Perez <fperez@colorado.edu>
2365 2005-02-06 Fernando Perez <fperez@colorado.edu>
2359
2366
2360 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2367 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2361 completions with the results of each matcher, so we return results
2368 completions with the results of each matcher, so we return results
2362 to the user from all namespaces. This breaks with ipython
2369 to the user from all namespaces. This breaks with ipython
2363 tradition, but I think it's a nicer behavior. Now you get all
2370 tradition, but I think it's a nicer behavior. Now you get all
2364 possible completions listed, from all possible namespaces (python,
2371 possible completions listed, from all possible namespaces (python,
2365 filesystem, magics...) After a request by John Hunter
2372 filesystem, magics...) After a request by John Hunter
2366 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2373 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2367
2374
2368 2005-02-05 Fernando Perez <fperez@colorado.edu>
2375 2005-02-05 Fernando Perez <fperez@colorado.edu>
2369
2376
2370 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2377 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2371 the call had quote characters in it (the quotes were stripped).
2378 the call had quote characters in it (the quotes were stripped).
2372
2379
2373 2005-01-31 Fernando Perez <fperez@colorado.edu>
2380 2005-01-31 Fernando Perez <fperez@colorado.edu>
2374
2381
2375 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2382 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2376 Itpl.itpl() to make the code more robust against psyco
2383 Itpl.itpl() to make the code more robust against psyco
2377 optimizations.
2384 optimizations.
2378
2385
2379 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2386 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2380 of causing an exception. Quicker, cleaner.
2387 of causing an exception. Quicker, cleaner.
2381
2388
2382 2005-01-28 Fernando Perez <fperez@colorado.edu>
2389 2005-01-28 Fernando Perez <fperez@colorado.edu>
2383
2390
2384 * scripts/ipython_win_post_install.py (install): hardcode
2391 * scripts/ipython_win_post_install.py (install): hardcode
2385 sys.prefix+'python.exe' as the executable path. It turns out that
2392 sys.prefix+'python.exe' as the executable path. It turns out that
2386 during the post-installation run, sys.executable resolves to the
2393 during the post-installation run, sys.executable resolves to the
2387 name of the binary installer! I should report this as a distutils
2394 name of the binary installer! I should report this as a distutils
2388 bug, I think. I updated the .10 release with this tiny fix, to
2395 bug, I think. I updated the .10 release with this tiny fix, to
2389 avoid annoying the lists further.
2396 avoid annoying the lists further.
2390
2397
2391 2005-01-27 *** Released version 0.6.10
2398 2005-01-27 *** Released version 0.6.10
2392
2399
2393 2005-01-27 Fernando Perez <fperez@colorado.edu>
2400 2005-01-27 Fernando Perez <fperez@colorado.edu>
2394
2401
2395 * IPython/numutils.py (norm): Added 'inf' as optional name for
2402 * IPython/numutils.py (norm): Added 'inf' as optional name for
2396 L-infinity norm, included references to mathworld.com for vector
2403 L-infinity norm, included references to mathworld.com for vector
2397 norm definitions.
2404 norm definitions.
2398 (amin/amax): added amin/amax for array min/max. Similar to what
2405 (amin/amax): added amin/amax for array min/max. Similar to what
2399 pylab ships with after the recent reorganization of names.
2406 pylab ships with after the recent reorganization of names.
2400 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2407 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2401
2408
2402 * ipython.el: committed Alex's recent fixes and improvements.
2409 * ipython.el: committed Alex's recent fixes and improvements.
2403 Tested with python-mode from CVS, and it looks excellent. Since
2410 Tested with python-mode from CVS, and it looks excellent. Since
2404 python-mode hasn't released anything in a while, I'm temporarily
2411 python-mode hasn't released anything in a while, I'm temporarily
2405 putting a copy of today's CVS (v 4.70) of python-mode in:
2412 putting a copy of today's CVS (v 4.70) of python-mode in:
2406 http://ipython.scipy.org/tmp/python-mode.el
2413 http://ipython.scipy.org/tmp/python-mode.el
2407
2414
2408 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2415 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2409 sys.executable for the executable name, instead of assuming it's
2416 sys.executable for the executable name, instead of assuming it's
2410 called 'python.exe' (the post-installer would have produced broken
2417 called 'python.exe' (the post-installer would have produced broken
2411 setups on systems with a differently named python binary).
2418 setups on systems with a differently named python binary).
2412
2419
2413 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2420 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2414 references to os.linesep, to make the code more
2421 references to os.linesep, to make the code more
2415 platform-independent. This is also part of the win32 coloring
2422 platform-independent. This is also part of the win32 coloring
2416 fixes.
2423 fixes.
2417
2424
2418 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2425 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2419 lines, which actually cause coloring bugs because the length of
2426 lines, which actually cause coloring bugs because the length of
2420 the line is very difficult to correctly compute with embedded
2427 the line is very difficult to correctly compute with embedded
2421 escapes. This was the source of all the coloring problems under
2428 escapes. This was the source of all the coloring problems under
2422 Win32. I think that _finally_, Win32 users have a properly
2429 Win32. I think that _finally_, Win32 users have a properly
2423 working ipython in all respects. This would never have happened
2430 working ipython in all respects. This would never have happened
2424 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2431 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2425
2432
2426 2005-01-26 *** Released version 0.6.9
2433 2005-01-26 *** Released version 0.6.9
2427
2434
2428 2005-01-25 Fernando Perez <fperez@colorado.edu>
2435 2005-01-25 Fernando Perez <fperez@colorado.edu>
2429
2436
2430 * setup.py: finally, we have a true Windows installer, thanks to
2437 * setup.py: finally, we have a true Windows installer, thanks to
2431 the excellent work of Viktor Ransmayr
2438 the excellent work of Viktor Ransmayr
2432 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2439 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2433 Windows users. The setup routine is quite a bit cleaner thanks to
2440 Windows users. The setup routine is quite a bit cleaner thanks to
2434 this, and the post-install script uses the proper functions to
2441 this, and the post-install script uses the proper functions to
2435 allow a clean de-installation using the standard Windows Control
2442 allow a clean de-installation using the standard Windows Control
2436 Panel.
2443 Panel.
2437
2444
2438 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2445 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2439 environment variable under all OSes (including win32) if
2446 environment variable under all OSes (including win32) if
2440 available. This will give consistency to win32 users who have set
2447 available. This will give consistency to win32 users who have set
2441 this variable for any reason. If os.environ['HOME'] fails, the
2448 this variable for any reason. If os.environ['HOME'] fails, the
2442 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2449 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2443
2450
2444 2005-01-24 Fernando Perez <fperez@colorado.edu>
2451 2005-01-24 Fernando Perez <fperez@colorado.edu>
2445
2452
2446 * IPython/numutils.py (empty_like): add empty_like(), similar to
2453 * IPython/numutils.py (empty_like): add empty_like(), similar to
2447 zeros_like() but taking advantage of the new empty() Numeric routine.
2454 zeros_like() but taking advantage of the new empty() Numeric routine.
2448
2455
2449 2005-01-23 *** Released version 0.6.8
2456 2005-01-23 *** Released version 0.6.8
2450
2457
2451 2005-01-22 Fernando Perez <fperez@colorado.edu>
2458 2005-01-22 Fernando Perez <fperez@colorado.edu>
2452
2459
2453 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2460 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2454 automatic show() calls. After discussing things with JDH, it
2461 automatic show() calls. After discussing things with JDH, it
2455 turns out there are too many corner cases where this can go wrong.
2462 turns out there are too many corner cases where this can go wrong.
2456 It's best not to try to be 'too smart', and simply have ipython
2463 It's best not to try to be 'too smart', and simply have ipython
2457 reproduce as much as possible the default behavior of a normal
2464 reproduce as much as possible the default behavior of a normal
2458 python shell.
2465 python shell.
2459
2466
2460 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2467 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2461 line-splitting regexp and _prefilter() to avoid calling getattr()
2468 line-splitting regexp and _prefilter() to avoid calling getattr()
2462 on assignments. This closes
2469 on assignments. This closes
2463 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2470 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2464 readline uses getattr(), so a simple <TAB> keypress is still
2471 readline uses getattr(), so a simple <TAB> keypress is still
2465 enough to trigger getattr() calls on an object.
2472 enough to trigger getattr() calls on an object.
2466
2473
2467 2005-01-21 Fernando Perez <fperez@colorado.edu>
2474 2005-01-21 Fernando Perez <fperez@colorado.edu>
2468
2475
2469 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2476 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2470 docstring under pylab so it doesn't mask the original.
2477 docstring under pylab so it doesn't mask the original.
2471
2478
2472 2005-01-21 *** Released version 0.6.7
2479 2005-01-21 *** Released version 0.6.7
2473
2480
2474 2005-01-21 Fernando Perez <fperez@colorado.edu>
2481 2005-01-21 Fernando Perez <fperez@colorado.edu>
2475
2482
2476 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2483 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2477 signal handling for win32 users in multithreaded mode.
2484 signal handling for win32 users in multithreaded mode.
2478
2485
2479 2005-01-17 Fernando Perez <fperez@colorado.edu>
2486 2005-01-17 Fernando Perez <fperez@colorado.edu>
2480
2487
2481 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2488 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2482 instances with no __init__. After a crash report by Norbert Nemec
2489 instances with no __init__. After a crash report by Norbert Nemec
2483 <Norbert-AT-nemec-online.de>.
2490 <Norbert-AT-nemec-online.de>.
2484
2491
2485 2005-01-14 Fernando Perez <fperez@colorado.edu>
2492 2005-01-14 Fernando Perez <fperez@colorado.edu>
2486
2493
2487 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2494 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2488 names for verbose exceptions, when multiple dotted names and the
2495 names for verbose exceptions, when multiple dotted names and the
2489 'parent' object were present on the same line.
2496 'parent' object were present on the same line.
2490
2497
2491 2005-01-11 Fernando Perez <fperez@colorado.edu>
2498 2005-01-11 Fernando Perez <fperez@colorado.edu>
2492
2499
2493 * IPython/genutils.py (flag_calls): new utility to trap and flag
2500 * IPython/genutils.py (flag_calls): new utility to trap and flag
2494 calls in functions. I need it to clean up matplotlib support.
2501 calls in functions. I need it to clean up matplotlib support.
2495 Also removed some deprecated code in genutils.
2502 Also removed some deprecated code in genutils.
2496
2503
2497 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2504 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2498 that matplotlib scripts called with %run, which don't call show()
2505 that matplotlib scripts called with %run, which don't call show()
2499 themselves, still have their plotting windows open.
2506 themselves, still have their plotting windows open.
2500
2507
2501 2005-01-05 Fernando Perez <fperez@colorado.edu>
2508 2005-01-05 Fernando Perez <fperez@colorado.edu>
2502
2509
2503 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2510 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2504 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2511 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2505
2512
2506 2004-12-19 Fernando Perez <fperez@colorado.edu>
2513 2004-12-19 Fernando Perez <fperez@colorado.edu>
2507
2514
2508 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2515 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2509 parent_runcode, which was an eyesore. The same result can be
2516 parent_runcode, which was an eyesore. The same result can be
2510 obtained with Python's regular superclass mechanisms.
2517 obtained with Python's regular superclass mechanisms.
2511
2518
2512 2004-12-17 Fernando Perez <fperez@colorado.edu>
2519 2004-12-17 Fernando Perez <fperez@colorado.edu>
2513
2520
2514 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2521 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2515 reported by Prabhu.
2522 reported by Prabhu.
2516 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2523 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2517 sys.stderr) instead of explicitly calling sys.stderr. This helps
2524 sys.stderr) instead of explicitly calling sys.stderr. This helps
2518 maintain our I/O abstractions clean, for future GUI embeddings.
2525 maintain our I/O abstractions clean, for future GUI embeddings.
2519
2526
2520 * IPython/genutils.py (info): added new utility for sys.stderr
2527 * IPython/genutils.py (info): added new utility for sys.stderr
2521 unified info message handling (thin wrapper around warn()).
2528 unified info message handling (thin wrapper around warn()).
2522
2529
2523 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2530 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2524 composite (dotted) names on verbose exceptions.
2531 composite (dotted) names on verbose exceptions.
2525 (VerboseTB.nullrepr): harden against another kind of errors which
2532 (VerboseTB.nullrepr): harden against another kind of errors which
2526 Python's inspect module can trigger, and which were crashing
2533 Python's inspect module can trigger, and which were crashing
2527 IPython. Thanks to a report by Marco Lombardi
2534 IPython. Thanks to a report by Marco Lombardi
2528 <mlombard-AT-ma010192.hq.eso.org>.
2535 <mlombard-AT-ma010192.hq.eso.org>.
2529
2536
2530 2004-12-13 *** Released version 0.6.6
2537 2004-12-13 *** Released version 0.6.6
2531
2538
2532 2004-12-12 Fernando Perez <fperez@colorado.edu>
2539 2004-12-12 Fernando Perez <fperez@colorado.edu>
2533
2540
2534 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2541 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2535 generated by pygtk upon initialization if it was built without
2542 generated by pygtk upon initialization if it was built without
2536 threads (for matplotlib users). After a crash reported by
2543 threads (for matplotlib users). After a crash reported by
2537 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2544 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2538
2545
2539 * IPython/ipmaker.py (make_IPython): fix small bug in the
2546 * IPython/ipmaker.py (make_IPython): fix small bug in the
2540 import_some parameter for multiple imports.
2547 import_some parameter for multiple imports.
2541
2548
2542 * IPython/iplib.py (ipmagic): simplified the interface of
2549 * IPython/iplib.py (ipmagic): simplified the interface of
2543 ipmagic() to take a single string argument, just as it would be
2550 ipmagic() to take a single string argument, just as it would be
2544 typed at the IPython cmd line.
2551 typed at the IPython cmd line.
2545 (ipalias): Added new ipalias() with an interface identical to
2552 (ipalias): Added new ipalias() with an interface identical to
2546 ipmagic(). This completes exposing a pure python interface to the
2553 ipmagic(). This completes exposing a pure python interface to the
2547 alias and magic system, which can be used in loops or more complex
2554 alias and magic system, which can be used in loops or more complex
2548 code where IPython's automatic line mangling is not active.
2555 code where IPython's automatic line mangling is not active.
2549
2556
2550 * IPython/genutils.py (timing): changed interface of timing to
2557 * IPython/genutils.py (timing): changed interface of timing to
2551 simply run code once, which is the most common case. timings()
2558 simply run code once, which is the most common case. timings()
2552 remains unchanged, for the cases where you want multiple runs.
2559 remains unchanged, for the cases where you want multiple runs.
2553
2560
2554 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2561 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2555 bug where Python2.2 crashes with exec'ing code which does not end
2562 bug where Python2.2 crashes with exec'ing code which does not end
2556 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2563 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2557 before.
2564 before.
2558
2565
2559 2004-12-10 Fernando Perez <fperez@colorado.edu>
2566 2004-12-10 Fernando Perez <fperez@colorado.edu>
2560
2567
2561 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2568 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2562 -t to -T, to accomodate the new -t flag in %run (the %run and
2569 -t to -T, to accomodate the new -t flag in %run (the %run and
2563 %prun options are kind of intermixed, and it's not easy to change
2570 %prun options are kind of intermixed, and it's not easy to change
2564 this with the limitations of python's getopt).
2571 this with the limitations of python's getopt).
2565
2572
2566 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2573 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2567 the execution of scripts. It's not as fine-tuned as timeit.py,
2574 the execution of scripts. It's not as fine-tuned as timeit.py,
2568 but it works from inside ipython (and under 2.2, which lacks
2575 but it works from inside ipython (and under 2.2, which lacks
2569 timeit.py). Optionally a number of runs > 1 can be given for
2576 timeit.py). Optionally a number of runs > 1 can be given for
2570 timing very short-running code.
2577 timing very short-running code.
2571
2578
2572 * IPython/genutils.py (uniq_stable): new routine which returns a
2579 * IPython/genutils.py (uniq_stable): new routine which returns a
2573 list of unique elements in any iterable, but in stable order of
2580 list of unique elements in any iterable, but in stable order of
2574 appearance. I needed this for the ultraTB fixes, and it's a handy
2581 appearance. I needed this for the ultraTB fixes, and it's a handy
2575 utility.
2582 utility.
2576
2583
2577 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2584 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2578 dotted names in Verbose exceptions. This had been broken since
2585 dotted names in Verbose exceptions. This had been broken since
2579 the very start, now x.y will properly be printed in a Verbose
2586 the very start, now x.y will properly be printed in a Verbose
2580 traceback, instead of x being shown and y appearing always as an
2587 traceback, instead of x being shown and y appearing always as an
2581 'undefined global'. Getting this to work was a bit tricky,
2588 'undefined global'. Getting this to work was a bit tricky,
2582 because by default python tokenizers are stateless. Saved by
2589 because by default python tokenizers are stateless. Saved by
2583 python's ability to easily add a bit of state to an arbitrary
2590 python's ability to easily add a bit of state to an arbitrary
2584 function (without needing to build a full-blown callable object).
2591 function (without needing to build a full-blown callable object).
2585
2592
2586 Also big cleanup of this code, which had horrendous runtime
2593 Also big cleanup of this code, which had horrendous runtime
2587 lookups of zillions of attributes for colorization. Moved all
2594 lookups of zillions of attributes for colorization. Moved all
2588 this code into a few templates, which make it cleaner and quicker.
2595 this code into a few templates, which make it cleaner and quicker.
2589
2596
2590 Printout quality was also improved for Verbose exceptions: one
2597 Printout quality was also improved for Verbose exceptions: one
2591 variable per line, and memory addresses are printed (this can be
2598 variable per line, and memory addresses are printed (this can be
2592 quite handy in nasty debugging situations, which is what Verbose
2599 quite handy in nasty debugging situations, which is what Verbose
2593 is for).
2600 is for).
2594
2601
2595 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2602 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2596 the command line as scripts to be loaded by embedded instances.
2603 the command line as scripts to be loaded by embedded instances.
2597 Doing so has the potential for an infinite recursion if there are
2604 Doing so has the potential for an infinite recursion if there are
2598 exceptions thrown in the process. This fixes a strange crash
2605 exceptions thrown in the process. This fixes a strange crash
2599 reported by Philippe MULLER <muller-AT-irit.fr>.
2606 reported by Philippe MULLER <muller-AT-irit.fr>.
2600
2607
2601 2004-12-09 Fernando Perez <fperez@colorado.edu>
2608 2004-12-09 Fernando Perez <fperez@colorado.edu>
2602
2609
2603 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2610 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2604 to reflect new names in matplotlib, which now expose the
2611 to reflect new names in matplotlib, which now expose the
2605 matlab-compatible interface via a pylab module instead of the
2612 matlab-compatible interface via a pylab module instead of the
2606 'matlab' name. The new code is backwards compatible, so users of
2613 'matlab' name. The new code is backwards compatible, so users of
2607 all matplotlib versions are OK. Patch by J. Hunter.
2614 all matplotlib versions are OK. Patch by J. Hunter.
2608
2615
2609 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2616 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2610 of __init__ docstrings for instances (class docstrings are already
2617 of __init__ docstrings for instances (class docstrings are already
2611 automatically printed). Instances with customized docstrings
2618 automatically printed). Instances with customized docstrings
2612 (indep. of the class) are also recognized and all 3 separate
2619 (indep. of the class) are also recognized and all 3 separate
2613 docstrings are printed (instance, class, constructor). After some
2620 docstrings are printed (instance, class, constructor). After some
2614 comments/suggestions by J. Hunter.
2621 comments/suggestions by J. Hunter.
2615
2622
2616 2004-12-05 Fernando Perez <fperez@colorado.edu>
2623 2004-12-05 Fernando Perez <fperez@colorado.edu>
2617
2624
2618 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2625 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2619 warnings when tab-completion fails and triggers an exception.
2626 warnings when tab-completion fails and triggers an exception.
2620
2627
2621 2004-12-03 Fernando Perez <fperez@colorado.edu>
2628 2004-12-03 Fernando Perez <fperez@colorado.edu>
2622
2629
2623 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2630 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2624 be triggered when using 'run -p'. An incorrect option flag was
2631 be triggered when using 'run -p'. An incorrect option flag was
2625 being set ('d' instead of 'D').
2632 being set ('d' instead of 'D').
2626 (manpage): fix missing escaped \- sign.
2633 (manpage): fix missing escaped \- sign.
2627
2634
2628 2004-11-30 *** Released version 0.6.5
2635 2004-11-30 *** Released version 0.6.5
2629
2636
2630 2004-11-30 Fernando Perez <fperez@colorado.edu>
2637 2004-11-30 Fernando Perez <fperez@colorado.edu>
2631
2638
2632 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2639 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2633 setting with -d option.
2640 setting with -d option.
2634
2641
2635 * setup.py (docfiles): Fix problem where the doc glob I was using
2642 * setup.py (docfiles): Fix problem where the doc glob I was using
2636 was COMPLETELY BROKEN. It was giving the right files by pure
2643 was COMPLETELY BROKEN. It was giving the right files by pure
2637 accident, but failed once I tried to include ipython.el. Note:
2644 accident, but failed once I tried to include ipython.el. Note:
2638 glob() does NOT allow you to do exclusion on multiple endings!
2645 glob() does NOT allow you to do exclusion on multiple endings!
2639
2646
2640 2004-11-29 Fernando Perez <fperez@colorado.edu>
2647 2004-11-29 Fernando Perez <fperez@colorado.edu>
2641
2648
2642 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2649 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2643 the manpage as the source. Better formatting & consistency.
2650 the manpage as the source. Better formatting & consistency.
2644
2651
2645 * IPython/Magic.py (magic_run): Added new -d option, to run
2652 * IPython/Magic.py (magic_run): Added new -d option, to run
2646 scripts under the control of the python pdb debugger. Note that
2653 scripts under the control of the python pdb debugger. Note that
2647 this required changing the %prun option -d to -D, to avoid a clash
2654 this required changing the %prun option -d to -D, to avoid a clash
2648 (since %run must pass options to %prun, and getopt is too dumb to
2655 (since %run must pass options to %prun, and getopt is too dumb to
2649 handle options with string values with embedded spaces). Thanks
2656 handle options with string values with embedded spaces). Thanks
2650 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2657 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2651 (magic_who_ls): added type matching to %who and %whos, so that one
2658 (magic_who_ls): added type matching to %who and %whos, so that one
2652 can filter their output to only include variables of certain
2659 can filter their output to only include variables of certain
2653 types. Another suggestion by Matthew.
2660 types. Another suggestion by Matthew.
2654 (magic_whos): Added memory summaries in kb and Mb for arrays.
2661 (magic_whos): Added memory summaries in kb and Mb for arrays.
2655 (magic_who): Improve formatting (break lines every 9 vars).
2662 (magic_who): Improve formatting (break lines every 9 vars).
2656
2663
2657 2004-11-28 Fernando Perez <fperez@colorado.edu>
2664 2004-11-28 Fernando Perez <fperez@colorado.edu>
2658
2665
2659 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2666 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2660 cache when empty lines were present.
2667 cache when empty lines were present.
2661
2668
2662 2004-11-24 Fernando Perez <fperez@colorado.edu>
2669 2004-11-24 Fernando Perez <fperez@colorado.edu>
2663
2670
2664 * IPython/usage.py (__doc__): document the re-activated threading
2671 * IPython/usage.py (__doc__): document the re-activated threading
2665 options for WX and GTK.
2672 options for WX and GTK.
2666
2673
2667 2004-11-23 Fernando Perez <fperez@colorado.edu>
2674 2004-11-23 Fernando Perez <fperez@colorado.edu>
2668
2675
2669 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2676 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2670 the -wthread and -gthread options, along with a new -tk one to try
2677 the -wthread and -gthread options, along with a new -tk one to try
2671 and coordinate Tk threading with wx/gtk. The tk support is very
2678 and coordinate Tk threading with wx/gtk. The tk support is very
2672 platform dependent, since it seems to require Tcl and Tk to be
2679 platform dependent, since it seems to require Tcl and Tk to be
2673 built with threads (Fedora1/2 appears NOT to have it, but in
2680 built with threads (Fedora1/2 appears NOT to have it, but in
2674 Prabhu's Debian boxes it works OK). But even with some Tk
2681 Prabhu's Debian boxes it works OK). But even with some Tk
2675 limitations, this is a great improvement.
2682 limitations, this is a great improvement.
2676
2683
2677 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2684 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2678 info in user prompts. Patch by Prabhu.
2685 info in user prompts. Patch by Prabhu.
2679
2686
2680 2004-11-18 Fernando Perez <fperez@colorado.edu>
2687 2004-11-18 Fernando Perez <fperez@colorado.edu>
2681
2688
2682 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2689 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2683 EOFErrors and bail, to avoid infinite loops if a non-terminating
2690 EOFErrors and bail, to avoid infinite loops if a non-terminating
2684 file is fed into ipython. Patch submitted in issue 19 by user,
2691 file is fed into ipython. Patch submitted in issue 19 by user,
2685 many thanks.
2692 many thanks.
2686
2693
2687 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2694 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2688 autoquote/parens in continuation prompts, which can cause lots of
2695 autoquote/parens in continuation prompts, which can cause lots of
2689 problems. Closes roundup issue 20.
2696 problems. Closes roundup issue 20.
2690
2697
2691 2004-11-17 Fernando Perez <fperez@colorado.edu>
2698 2004-11-17 Fernando Perez <fperez@colorado.edu>
2692
2699
2693 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2700 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2694 reported as debian bug #280505. I'm not sure my local changelog
2701 reported as debian bug #280505. I'm not sure my local changelog
2695 entry has the proper debian format (Jack?).
2702 entry has the proper debian format (Jack?).
2696
2703
2697 2004-11-08 *** Released version 0.6.4
2704 2004-11-08 *** Released version 0.6.4
2698
2705
2699 2004-11-08 Fernando Perez <fperez@colorado.edu>
2706 2004-11-08 Fernando Perez <fperez@colorado.edu>
2700
2707
2701 * IPython/iplib.py (init_readline): Fix exit message for Windows
2708 * IPython/iplib.py (init_readline): Fix exit message for Windows
2702 when readline is active. Thanks to a report by Eric Jones
2709 when readline is active. Thanks to a report by Eric Jones
2703 <eric-AT-enthought.com>.
2710 <eric-AT-enthought.com>.
2704
2711
2705 2004-11-07 Fernando Perez <fperez@colorado.edu>
2712 2004-11-07 Fernando Perez <fperez@colorado.edu>
2706
2713
2707 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2714 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2708 sometimes seen by win2k/cygwin users.
2715 sometimes seen by win2k/cygwin users.
2709
2716
2710 2004-11-06 Fernando Perez <fperez@colorado.edu>
2717 2004-11-06 Fernando Perez <fperez@colorado.edu>
2711
2718
2712 * IPython/iplib.py (interact): Change the handling of %Exit from
2719 * IPython/iplib.py (interact): Change the handling of %Exit from
2713 trying to propagate a SystemExit to an internal ipython flag.
2720 trying to propagate a SystemExit to an internal ipython flag.
2714 This is less elegant than using Python's exception mechanism, but
2721 This is less elegant than using Python's exception mechanism, but
2715 I can't get that to work reliably with threads, so under -pylab
2722 I can't get that to work reliably with threads, so under -pylab
2716 %Exit was hanging IPython. Cross-thread exception handling is
2723 %Exit was hanging IPython. Cross-thread exception handling is
2717 really a bitch. Thaks to a bug report by Stephen Walton
2724 really a bitch. Thaks to a bug report by Stephen Walton
2718 <stephen.walton-AT-csun.edu>.
2725 <stephen.walton-AT-csun.edu>.
2719
2726
2720 2004-11-04 Fernando Perez <fperez@colorado.edu>
2727 2004-11-04 Fernando Perez <fperez@colorado.edu>
2721
2728
2722 * IPython/iplib.py (raw_input_original): store a pointer to the
2729 * IPython/iplib.py (raw_input_original): store a pointer to the
2723 true raw_input to harden against code which can modify it
2730 true raw_input to harden against code which can modify it
2724 (wx.py.PyShell does this and would otherwise crash ipython).
2731 (wx.py.PyShell does this and would otherwise crash ipython).
2725 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2732 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2726
2733
2727 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2734 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2728 Ctrl-C problem, which does not mess up the input line.
2735 Ctrl-C problem, which does not mess up the input line.
2729
2736
2730 2004-11-03 Fernando Perez <fperez@colorado.edu>
2737 2004-11-03 Fernando Perez <fperez@colorado.edu>
2731
2738
2732 * IPython/Release.py: Changed licensing to BSD, in all files.
2739 * IPython/Release.py: Changed licensing to BSD, in all files.
2733 (name): lowercase name for tarball/RPM release.
2740 (name): lowercase name for tarball/RPM release.
2734
2741
2735 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2742 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2736 use throughout ipython.
2743 use throughout ipython.
2737
2744
2738 * IPython/Magic.py (Magic._ofind): Switch to using the new
2745 * IPython/Magic.py (Magic._ofind): Switch to using the new
2739 OInspect.getdoc() function.
2746 OInspect.getdoc() function.
2740
2747
2741 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2748 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2742 of the line currently being canceled via Ctrl-C. It's extremely
2749 of the line currently being canceled via Ctrl-C. It's extremely
2743 ugly, but I don't know how to do it better (the problem is one of
2750 ugly, but I don't know how to do it better (the problem is one of
2744 handling cross-thread exceptions).
2751 handling cross-thread exceptions).
2745
2752
2746 2004-10-28 Fernando Perez <fperez@colorado.edu>
2753 2004-10-28 Fernando Perez <fperez@colorado.edu>
2747
2754
2748 * IPython/Shell.py (signal_handler): add signal handlers to trap
2755 * IPython/Shell.py (signal_handler): add signal handlers to trap
2749 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2756 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2750 report by Francesc Alted.
2757 report by Francesc Alted.
2751
2758
2752 2004-10-21 Fernando Perez <fperez@colorado.edu>
2759 2004-10-21 Fernando Perez <fperez@colorado.edu>
2753
2760
2754 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2761 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2755 to % for pysh syntax extensions.
2762 to % for pysh syntax extensions.
2756
2763
2757 2004-10-09 Fernando Perez <fperez@colorado.edu>
2764 2004-10-09 Fernando Perez <fperez@colorado.edu>
2758
2765
2759 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2766 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2760 arrays to print a more useful summary, without calling str(arr).
2767 arrays to print a more useful summary, without calling str(arr).
2761 This avoids the problem of extremely lengthy computations which
2768 This avoids the problem of extremely lengthy computations which
2762 occur if arr is large, and appear to the user as a system lockup
2769 occur if arr is large, and appear to the user as a system lockup
2763 with 100% cpu activity. After a suggestion by Kristian Sandberg
2770 with 100% cpu activity. After a suggestion by Kristian Sandberg
2764 <Kristian.Sandberg@colorado.edu>.
2771 <Kristian.Sandberg@colorado.edu>.
2765 (Magic.__init__): fix bug in global magic escapes not being
2772 (Magic.__init__): fix bug in global magic escapes not being
2766 correctly set.
2773 correctly set.
2767
2774
2768 2004-10-08 Fernando Perez <fperez@colorado.edu>
2775 2004-10-08 Fernando Perez <fperez@colorado.edu>
2769
2776
2770 * IPython/Magic.py (__license__): change to absolute imports of
2777 * IPython/Magic.py (__license__): change to absolute imports of
2771 ipython's own internal packages, to start adapting to the absolute
2778 ipython's own internal packages, to start adapting to the absolute
2772 import requirement of PEP-328.
2779 import requirement of PEP-328.
2773
2780
2774 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2781 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2775 files, and standardize author/license marks through the Release
2782 files, and standardize author/license marks through the Release
2776 module instead of having per/file stuff (except for files with
2783 module instead of having per/file stuff (except for files with
2777 particular licenses, like the MIT/PSF-licensed codes).
2784 particular licenses, like the MIT/PSF-licensed codes).
2778
2785
2779 * IPython/Debugger.py: remove dead code for python 2.1
2786 * IPython/Debugger.py: remove dead code for python 2.1
2780
2787
2781 2004-10-04 Fernando Perez <fperez@colorado.edu>
2788 2004-10-04 Fernando Perez <fperez@colorado.edu>
2782
2789
2783 * IPython/iplib.py (ipmagic): New function for accessing magics
2790 * IPython/iplib.py (ipmagic): New function for accessing magics
2784 via a normal python function call.
2791 via a normal python function call.
2785
2792
2786 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2793 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2787 from '@' to '%', to accomodate the new @decorator syntax of python
2794 from '@' to '%', to accomodate the new @decorator syntax of python
2788 2.4.
2795 2.4.
2789
2796
2790 2004-09-29 Fernando Perez <fperez@colorado.edu>
2797 2004-09-29 Fernando Perez <fperez@colorado.edu>
2791
2798
2792 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2799 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2793 matplotlib.use to prevent running scripts which try to switch
2800 matplotlib.use to prevent running scripts which try to switch
2794 interactive backends from within ipython. This will just crash
2801 interactive backends from within ipython. This will just crash
2795 the python interpreter, so we can't allow it (but a detailed error
2802 the python interpreter, so we can't allow it (but a detailed error
2796 is given to the user).
2803 is given to the user).
2797
2804
2798 2004-09-28 Fernando Perez <fperez@colorado.edu>
2805 2004-09-28 Fernando Perez <fperez@colorado.edu>
2799
2806
2800 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2807 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2801 matplotlib-related fixes so that using @run with non-matplotlib
2808 matplotlib-related fixes so that using @run with non-matplotlib
2802 scripts doesn't pop up spurious plot windows. This requires
2809 scripts doesn't pop up spurious plot windows. This requires
2803 matplotlib >= 0.63, where I had to make some changes as well.
2810 matplotlib >= 0.63, where I had to make some changes as well.
2804
2811
2805 * IPython/ipmaker.py (make_IPython): update version requirement to
2812 * IPython/ipmaker.py (make_IPython): update version requirement to
2806 python 2.2.
2813 python 2.2.
2807
2814
2808 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2815 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2809 banner arg for embedded customization.
2816 banner arg for embedded customization.
2810
2817
2811 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2818 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2812 explicit uses of __IP as the IPython's instance name. Now things
2819 explicit uses of __IP as the IPython's instance name. Now things
2813 are properly handled via the shell.name value. The actual code
2820 are properly handled via the shell.name value. The actual code
2814 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2821 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2815 is much better than before. I'll clean things completely when the
2822 is much better than before. I'll clean things completely when the
2816 magic stuff gets a real overhaul.
2823 magic stuff gets a real overhaul.
2817
2824
2818 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2825 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2819 minor changes to debian dir.
2826 minor changes to debian dir.
2820
2827
2821 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2828 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2822 pointer to the shell itself in the interactive namespace even when
2829 pointer to the shell itself in the interactive namespace even when
2823 a user-supplied dict is provided. This is needed for embedding
2830 a user-supplied dict is provided. This is needed for embedding
2824 purposes (found by tests with Michel Sanner).
2831 purposes (found by tests with Michel Sanner).
2825
2832
2826 2004-09-27 Fernando Perez <fperez@colorado.edu>
2833 2004-09-27 Fernando Perez <fperez@colorado.edu>
2827
2834
2828 * IPython/UserConfig/ipythonrc: remove []{} from
2835 * IPython/UserConfig/ipythonrc: remove []{} from
2829 readline_remove_delims, so that things like [modname.<TAB> do
2836 readline_remove_delims, so that things like [modname.<TAB> do
2830 proper completion. This disables [].TAB, but that's a less common
2837 proper completion. This disables [].TAB, but that's a less common
2831 case than module names in list comprehensions, for example.
2838 case than module names in list comprehensions, for example.
2832 Thanks to a report by Andrea Riciputi.
2839 Thanks to a report by Andrea Riciputi.
2833
2840
2834 2004-09-09 Fernando Perez <fperez@colorado.edu>
2841 2004-09-09 Fernando Perez <fperez@colorado.edu>
2835
2842
2836 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2843 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2837 blocking problems in win32 and osx. Fix by John.
2844 blocking problems in win32 and osx. Fix by John.
2838
2845
2839 2004-09-08 Fernando Perez <fperez@colorado.edu>
2846 2004-09-08 Fernando Perez <fperez@colorado.edu>
2840
2847
2841 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2848 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2842 for Win32 and OSX. Fix by John Hunter.
2849 for Win32 and OSX. Fix by John Hunter.
2843
2850
2844 2004-08-30 *** Released version 0.6.3
2851 2004-08-30 *** Released version 0.6.3
2845
2852
2846 2004-08-30 Fernando Perez <fperez@colorado.edu>
2853 2004-08-30 Fernando Perez <fperez@colorado.edu>
2847
2854
2848 * setup.py (isfile): Add manpages to list of dependent files to be
2855 * setup.py (isfile): Add manpages to list of dependent files to be
2849 updated.
2856 updated.
2850
2857
2851 2004-08-27 Fernando Perez <fperez@colorado.edu>
2858 2004-08-27 Fernando Perez <fperez@colorado.edu>
2852
2859
2853 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2860 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2854 for now. They don't really work with standalone WX/GTK code
2861 for now. They don't really work with standalone WX/GTK code
2855 (though matplotlib IS working fine with both of those backends).
2862 (though matplotlib IS working fine with both of those backends).
2856 This will neeed much more testing. I disabled most things with
2863 This will neeed much more testing. I disabled most things with
2857 comments, so turning it back on later should be pretty easy.
2864 comments, so turning it back on later should be pretty easy.
2858
2865
2859 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2866 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2860 autocalling of expressions like r'foo', by modifying the line
2867 autocalling of expressions like r'foo', by modifying the line
2861 split regexp. Closes
2868 split regexp. Closes
2862 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2869 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2863 Riley <ipythonbugs-AT-sabi.net>.
2870 Riley <ipythonbugs-AT-sabi.net>.
2864 (InteractiveShell.mainloop): honor --nobanner with banner
2871 (InteractiveShell.mainloop): honor --nobanner with banner
2865 extensions.
2872 extensions.
2866
2873
2867 * IPython/Shell.py: Significant refactoring of all classes, so
2874 * IPython/Shell.py: Significant refactoring of all classes, so
2868 that we can really support ALL matplotlib backends and threading
2875 that we can really support ALL matplotlib backends and threading
2869 models (John spotted a bug with Tk which required this). Now we
2876 models (John spotted a bug with Tk which required this). Now we
2870 should support single-threaded, WX-threads and GTK-threads, both
2877 should support single-threaded, WX-threads and GTK-threads, both
2871 for generic code and for matplotlib.
2878 for generic code and for matplotlib.
2872
2879
2873 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2880 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2874 -pylab, to simplify things for users. Will also remove the pylab
2881 -pylab, to simplify things for users. Will also remove the pylab
2875 profile, since now all of matplotlib configuration is directly
2882 profile, since now all of matplotlib configuration is directly
2876 handled here. This also reduces startup time.
2883 handled here. This also reduces startup time.
2877
2884
2878 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2885 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2879 shell wasn't being correctly called. Also in IPShellWX.
2886 shell wasn't being correctly called. Also in IPShellWX.
2880
2887
2881 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2888 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2882 fine-tune banner.
2889 fine-tune banner.
2883
2890
2884 * IPython/numutils.py (spike): Deprecate these spike functions,
2891 * IPython/numutils.py (spike): Deprecate these spike functions,
2885 delete (long deprecated) gnuplot_exec handler.
2892 delete (long deprecated) gnuplot_exec handler.
2886
2893
2887 2004-08-26 Fernando Perez <fperez@colorado.edu>
2894 2004-08-26 Fernando Perez <fperez@colorado.edu>
2888
2895
2889 * ipython.1: Update for threading options, plus some others which
2896 * ipython.1: Update for threading options, plus some others which
2890 were missing.
2897 were missing.
2891
2898
2892 * IPython/ipmaker.py (__call__): Added -wthread option for
2899 * IPython/ipmaker.py (__call__): Added -wthread option for
2893 wxpython thread handling. Make sure threading options are only
2900 wxpython thread handling. Make sure threading options are only
2894 valid at the command line.
2901 valid at the command line.
2895
2902
2896 * scripts/ipython: moved shell selection into a factory function
2903 * scripts/ipython: moved shell selection into a factory function
2897 in Shell.py, to keep the starter script to a minimum.
2904 in Shell.py, to keep the starter script to a minimum.
2898
2905
2899 2004-08-25 Fernando Perez <fperez@colorado.edu>
2906 2004-08-25 Fernando Perez <fperez@colorado.edu>
2900
2907
2901 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2908 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2902 John. Along with some recent changes he made to matplotlib, the
2909 John. Along with some recent changes he made to matplotlib, the
2903 next versions of both systems should work very well together.
2910 next versions of both systems should work very well together.
2904
2911
2905 2004-08-24 Fernando Perez <fperez@colorado.edu>
2912 2004-08-24 Fernando Perez <fperez@colorado.edu>
2906
2913
2907 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2914 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2908 tried to switch the profiling to using hotshot, but I'm getting
2915 tried to switch the profiling to using hotshot, but I'm getting
2909 strange errors from prof.runctx() there. I may be misreading the
2916 strange errors from prof.runctx() there. I may be misreading the
2910 docs, but it looks weird. For now the profiling code will
2917 docs, but it looks weird. For now the profiling code will
2911 continue to use the standard profiler.
2918 continue to use the standard profiler.
2912
2919
2913 2004-08-23 Fernando Perez <fperez@colorado.edu>
2920 2004-08-23 Fernando Perez <fperez@colorado.edu>
2914
2921
2915 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2922 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2916 threaded shell, by John Hunter. It's not quite ready yet, but
2923 threaded shell, by John Hunter. It's not quite ready yet, but
2917 close.
2924 close.
2918
2925
2919 2004-08-22 Fernando Perez <fperez@colorado.edu>
2926 2004-08-22 Fernando Perez <fperez@colorado.edu>
2920
2927
2921 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2928 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2922 in Magic and ultraTB.
2929 in Magic and ultraTB.
2923
2930
2924 * ipython.1: document threading options in manpage.
2931 * ipython.1: document threading options in manpage.
2925
2932
2926 * scripts/ipython: Changed name of -thread option to -gthread,
2933 * scripts/ipython: Changed name of -thread option to -gthread,
2927 since this is GTK specific. I want to leave the door open for a
2934 since this is GTK specific. I want to leave the door open for a
2928 -wthread option for WX, which will most likely be necessary. This
2935 -wthread option for WX, which will most likely be necessary. This
2929 change affects usage and ipmaker as well.
2936 change affects usage and ipmaker as well.
2930
2937
2931 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2938 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2932 handle the matplotlib shell issues. Code by John Hunter
2939 handle the matplotlib shell issues. Code by John Hunter
2933 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2940 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2934 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2941 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2935 broken (and disabled for end users) for now, but it puts the
2942 broken (and disabled for end users) for now, but it puts the
2936 infrastructure in place.
2943 infrastructure in place.
2937
2944
2938 2004-08-21 Fernando Perez <fperez@colorado.edu>
2945 2004-08-21 Fernando Perez <fperez@colorado.edu>
2939
2946
2940 * ipythonrc-pylab: Add matplotlib support.
2947 * ipythonrc-pylab: Add matplotlib support.
2941
2948
2942 * matplotlib_config.py: new files for matplotlib support, part of
2949 * matplotlib_config.py: new files for matplotlib support, part of
2943 the pylab profile.
2950 the pylab profile.
2944
2951
2945 * IPython/usage.py (__doc__): documented the threading options.
2952 * IPython/usage.py (__doc__): documented the threading options.
2946
2953
2947 2004-08-20 Fernando Perez <fperez@colorado.edu>
2954 2004-08-20 Fernando Perez <fperez@colorado.edu>
2948
2955
2949 * ipython: Modified the main calling routine to handle the -thread
2956 * ipython: Modified the main calling routine to handle the -thread
2950 and -mpthread options. This needs to be done as a top-level hack,
2957 and -mpthread options. This needs to be done as a top-level hack,
2951 because it determines which class to instantiate for IPython
2958 because it determines which class to instantiate for IPython
2952 itself.
2959 itself.
2953
2960
2954 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2961 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2955 classes to support multithreaded GTK operation without blocking,
2962 classes to support multithreaded GTK operation without blocking,
2956 and matplotlib with all backends. This is a lot of still very
2963 and matplotlib with all backends. This is a lot of still very
2957 experimental code, and threads are tricky. So it may still have a
2964 experimental code, and threads are tricky. So it may still have a
2958 few rough edges... This code owes a lot to
2965 few rough edges... This code owes a lot to
2959 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2966 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2960 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2967 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2961 to John Hunter for all the matplotlib work.
2968 to John Hunter for all the matplotlib work.
2962
2969
2963 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2970 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2964 options for gtk thread and matplotlib support.
2971 options for gtk thread and matplotlib support.
2965
2972
2966 2004-08-16 Fernando Perez <fperez@colorado.edu>
2973 2004-08-16 Fernando Perez <fperez@colorado.edu>
2967
2974
2968 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2975 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2969 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2976 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2970 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2977 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2971
2978
2972 2004-08-11 Fernando Perez <fperez@colorado.edu>
2979 2004-08-11 Fernando Perez <fperez@colorado.edu>
2973
2980
2974 * setup.py (isfile): Fix build so documentation gets updated for
2981 * setup.py (isfile): Fix build so documentation gets updated for
2975 rpms (it was only done for .tgz builds).
2982 rpms (it was only done for .tgz builds).
2976
2983
2977 2004-08-10 Fernando Perez <fperez@colorado.edu>
2984 2004-08-10 Fernando Perez <fperez@colorado.edu>
2978
2985
2979 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2986 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2980
2987
2981 * iplib.py : Silence syntax error exceptions in tab-completion.
2988 * iplib.py : Silence syntax error exceptions in tab-completion.
2982
2989
2983 2004-08-05 Fernando Perez <fperez@colorado.edu>
2990 2004-08-05 Fernando Perez <fperez@colorado.edu>
2984
2991
2985 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2992 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2986 'color off' mark for continuation prompts. This was causing long
2993 'color off' mark for continuation prompts. This was causing long
2987 continuation lines to mis-wrap.
2994 continuation lines to mis-wrap.
2988
2995
2989 2004-08-01 Fernando Perez <fperez@colorado.edu>
2996 2004-08-01 Fernando Perez <fperez@colorado.edu>
2990
2997
2991 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2998 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2992 for building ipython to be a parameter. All this is necessary
2999 for building ipython to be a parameter. All this is necessary
2993 right now to have a multithreaded version, but this insane
3000 right now to have a multithreaded version, but this insane
2994 non-design will be cleaned up soon. For now, it's a hack that
3001 non-design will be cleaned up soon. For now, it's a hack that
2995 works.
3002 works.
2996
3003
2997 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3004 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2998 args in various places. No bugs so far, but it's a dangerous
3005 args in various places. No bugs so far, but it's a dangerous
2999 practice.
3006 practice.
3000
3007
3001 2004-07-31 Fernando Perez <fperez@colorado.edu>
3008 2004-07-31 Fernando Perez <fperez@colorado.edu>
3002
3009
3003 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3010 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3004 fix completion of files with dots in their names under most
3011 fix completion of files with dots in their names under most
3005 profiles (pysh was OK because the completion order is different).
3012 profiles (pysh was OK because the completion order is different).
3006
3013
3007 2004-07-27 Fernando Perez <fperez@colorado.edu>
3014 2004-07-27 Fernando Perez <fperez@colorado.edu>
3008
3015
3009 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3016 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3010 keywords manually, b/c the one in keyword.py was removed in python
3017 keywords manually, b/c the one in keyword.py was removed in python
3011 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3018 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3012 This is NOT a bug under python 2.3 and earlier.
3019 This is NOT a bug under python 2.3 and earlier.
3013
3020
3014 2004-07-26 Fernando Perez <fperez@colorado.edu>
3021 2004-07-26 Fernando Perez <fperez@colorado.edu>
3015
3022
3016 * IPython/ultraTB.py (VerboseTB.text): Add another
3023 * IPython/ultraTB.py (VerboseTB.text): Add another
3017 linecache.checkcache() call to try to prevent inspect.py from
3024 linecache.checkcache() call to try to prevent inspect.py from
3018 crashing under python 2.3. I think this fixes
3025 crashing under python 2.3. I think this fixes
3019 http://www.scipy.net/roundup/ipython/issue17.
3026 http://www.scipy.net/roundup/ipython/issue17.
3020
3027
3021 2004-07-26 *** Released version 0.6.2
3028 2004-07-26 *** Released version 0.6.2
3022
3029
3023 2004-07-26 Fernando Perez <fperez@colorado.edu>
3030 2004-07-26 Fernando Perez <fperez@colorado.edu>
3024
3031
3025 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3032 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3026 fail for any number.
3033 fail for any number.
3027 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3034 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3028 empty bookmarks.
3035 empty bookmarks.
3029
3036
3030 2004-07-26 *** Released version 0.6.1
3037 2004-07-26 *** Released version 0.6.1
3031
3038
3032 2004-07-26 Fernando Perez <fperez@colorado.edu>
3039 2004-07-26 Fernando Perez <fperez@colorado.edu>
3033
3040
3034 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3041 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3035
3042
3036 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3043 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3037 escaping '()[]{}' in filenames.
3044 escaping '()[]{}' in filenames.
3038
3045
3039 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3046 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3040 Python 2.2 users who lack a proper shlex.split.
3047 Python 2.2 users who lack a proper shlex.split.
3041
3048
3042 2004-07-19 Fernando Perez <fperez@colorado.edu>
3049 2004-07-19 Fernando Perez <fperez@colorado.edu>
3043
3050
3044 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3051 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3045 for reading readline's init file. I follow the normal chain:
3052 for reading readline's init file. I follow the normal chain:
3046 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3053 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3047 report by Mike Heeter. This closes
3054 report by Mike Heeter. This closes
3048 http://www.scipy.net/roundup/ipython/issue16.
3055 http://www.scipy.net/roundup/ipython/issue16.
3049
3056
3050 2004-07-18 Fernando Perez <fperez@colorado.edu>
3057 2004-07-18 Fernando Perez <fperez@colorado.edu>
3051
3058
3052 * IPython/iplib.py (__init__): Add better handling of '\' under
3059 * IPython/iplib.py (__init__): Add better handling of '\' under
3053 Win32 for filenames. After a patch by Ville.
3060 Win32 for filenames. After a patch by Ville.
3054
3061
3055 2004-07-17 Fernando Perez <fperez@colorado.edu>
3062 2004-07-17 Fernando Perez <fperez@colorado.edu>
3056
3063
3057 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3064 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3058 autocalling would be triggered for 'foo is bar' if foo is
3065 autocalling would be triggered for 'foo is bar' if foo is
3059 callable. I also cleaned up the autocall detection code to use a
3066 callable. I also cleaned up the autocall detection code to use a
3060 regexp, which is faster. Bug reported by Alexander Schmolck.
3067 regexp, which is faster. Bug reported by Alexander Schmolck.
3061
3068
3062 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3069 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3063 '?' in them would confuse the help system. Reported by Alex
3070 '?' in them would confuse the help system. Reported by Alex
3064 Schmolck.
3071 Schmolck.
3065
3072
3066 2004-07-16 Fernando Perez <fperez@colorado.edu>
3073 2004-07-16 Fernando Perez <fperez@colorado.edu>
3067
3074
3068 * IPython/GnuplotInteractive.py (__all__): added plot2.
3075 * IPython/GnuplotInteractive.py (__all__): added plot2.
3069
3076
3070 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3077 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3071 plotting dictionaries, lists or tuples of 1d arrays.
3078 plotting dictionaries, lists or tuples of 1d arrays.
3072
3079
3073 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3080 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3074 optimizations.
3081 optimizations.
3075
3082
3076 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3083 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3077 the information which was there from Janko's original IPP code:
3084 the information which was there from Janko's original IPP code:
3078
3085
3079 03.05.99 20:53 porto.ifm.uni-kiel.de
3086 03.05.99 20:53 porto.ifm.uni-kiel.de
3080 --Started changelog.
3087 --Started changelog.
3081 --make clear do what it say it does
3088 --make clear do what it say it does
3082 --added pretty output of lines from inputcache
3089 --added pretty output of lines from inputcache
3083 --Made Logger a mixin class, simplifies handling of switches
3090 --Made Logger a mixin class, simplifies handling of switches
3084 --Added own completer class. .string<TAB> expands to last history
3091 --Added own completer class. .string<TAB> expands to last history
3085 line which starts with string. The new expansion is also present
3092 line which starts with string. The new expansion is also present
3086 with Ctrl-r from the readline library. But this shows, who this
3093 with Ctrl-r from the readline library. But this shows, who this
3087 can be done for other cases.
3094 can be done for other cases.
3088 --Added convention that all shell functions should accept a
3095 --Added convention that all shell functions should accept a
3089 parameter_string This opens the door for different behaviour for
3096 parameter_string This opens the door for different behaviour for
3090 each function. @cd is a good example of this.
3097 each function. @cd is a good example of this.
3091
3098
3092 04.05.99 12:12 porto.ifm.uni-kiel.de
3099 04.05.99 12:12 porto.ifm.uni-kiel.de
3093 --added logfile rotation
3100 --added logfile rotation
3094 --added new mainloop method which freezes first the namespace
3101 --added new mainloop method which freezes first the namespace
3095
3102
3096 07.05.99 21:24 porto.ifm.uni-kiel.de
3103 07.05.99 21:24 porto.ifm.uni-kiel.de
3097 --added the docreader classes. Now there is a help system.
3104 --added the docreader classes. Now there is a help system.
3098 -This is only a first try. Currently it's not easy to put new
3105 -This is only a first try. Currently it's not easy to put new
3099 stuff in the indices. But this is the way to go. Info would be
3106 stuff in the indices. But this is the way to go. Info would be
3100 better, but HTML is every where and not everybody has an info
3107 better, but HTML is every where and not everybody has an info
3101 system installed and it's not so easy to change html-docs to info.
3108 system installed and it's not so easy to change html-docs to info.
3102 --added global logfile option
3109 --added global logfile option
3103 --there is now a hook for object inspection method pinfo needs to
3110 --there is now a hook for object inspection method pinfo needs to
3104 be provided for this. Can be reached by two '??'.
3111 be provided for this. Can be reached by two '??'.
3105
3112
3106 08.05.99 20:51 porto.ifm.uni-kiel.de
3113 08.05.99 20:51 porto.ifm.uni-kiel.de
3107 --added a README
3114 --added a README
3108 --bug in rc file. Something has changed so functions in the rc
3115 --bug in rc file. Something has changed so functions in the rc
3109 file need to reference the shell and not self. Not clear if it's a
3116 file need to reference the shell and not self. Not clear if it's a
3110 bug or feature.
3117 bug or feature.
3111 --changed rc file for new behavior
3118 --changed rc file for new behavior
3112
3119
3113 2004-07-15 Fernando Perez <fperez@colorado.edu>
3120 2004-07-15 Fernando Perez <fperez@colorado.edu>
3114
3121
3115 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3122 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3116 cache was falling out of sync in bizarre manners when multi-line
3123 cache was falling out of sync in bizarre manners when multi-line
3117 input was present. Minor optimizations and cleanup.
3124 input was present. Minor optimizations and cleanup.
3118
3125
3119 (Logger): Remove old Changelog info for cleanup. This is the
3126 (Logger): Remove old Changelog info for cleanup. This is the
3120 information which was there from Janko's original code:
3127 information which was there from Janko's original code:
3121
3128
3122 Changes to Logger: - made the default log filename a parameter
3129 Changes to Logger: - made the default log filename a parameter
3123
3130
3124 - put a check for lines beginning with !@? in log(). Needed
3131 - put a check for lines beginning with !@? in log(). Needed
3125 (even if the handlers properly log their lines) for mid-session
3132 (even if the handlers properly log their lines) for mid-session
3126 logging activation to work properly. Without this, lines logged
3133 logging activation to work properly. Without this, lines logged
3127 in mid session, which get read from the cache, would end up
3134 in mid session, which get read from the cache, would end up
3128 'bare' (with !@? in the open) in the log. Now they are caught
3135 'bare' (with !@? in the open) in the log. Now they are caught
3129 and prepended with a #.
3136 and prepended with a #.
3130
3137
3131 * IPython/iplib.py (InteractiveShell.init_readline): added check
3138 * IPython/iplib.py (InteractiveShell.init_readline): added check
3132 in case MagicCompleter fails to be defined, so we don't crash.
3139 in case MagicCompleter fails to be defined, so we don't crash.
3133
3140
3134 2004-07-13 Fernando Perez <fperez@colorado.edu>
3141 2004-07-13 Fernando Perez <fperez@colorado.edu>
3135
3142
3136 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3143 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3137 of EPS if the requested filename ends in '.eps'.
3144 of EPS if the requested filename ends in '.eps'.
3138
3145
3139 2004-07-04 Fernando Perez <fperez@colorado.edu>
3146 2004-07-04 Fernando Perez <fperez@colorado.edu>
3140
3147
3141 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3148 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3142 escaping of quotes when calling the shell.
3149 escaping of quotes when calling the shell.
3143
3150
3144 2004-07-02 Fernando Perez <fperez@colorado.edu>
3151 2004-07-02 Fernando Perez <fperez@colorado.edu>
3145
3152
3146 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3153 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3147 gettext not working because we were clobbering '_'. Fixes
3154 gettext not working because we were clobbering '_'. Fixes
3148 http://www.scipy.net/roundup/ipython/issue6.
3155 http://www.scipy.net/roundup/ipython/issue6.
3149
3156
3150 2004-07-01 Fernando Perez <fperez@colorado.edu>
3157 2004-07-01 Fernando Perez <fperez@colorado.edu>
3151
3158
3152 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3159 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3153 into @cd. Patch by Ville.
3160 into @cd. Patch by Ville.
3154
3161
3155 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3162 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3156 new function to store things after ipmaker runs. Patch by Ville.
3163 new function to store things after ipmaker runs. Patch by Ville.
3157 Eventually this will go away once ipmaker is removed and the class
3164 Eventually this will go away once ipmaker is removed and the class
3158 gets cleaned up, but for now it's ok. Key functionality here is
3165 gets cleaned up, but for now it's ok. Key functionality here is
3159 the addition of the persistent storage mechanism, a dict for
3166 the addition of the persistent storage mechanism, a dict for
3160 keeping data across sessions (for now just bookmarks, but more can
3167 keeping data across sessions (for now just bookmarks, but more can
3161 be implemented later).
3168 be implemented later).
3162
3169
3163 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3170 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3164 persistent across sections. Patch by Ville, I modified it
3171 persistent across sections. Patch by Ville, I modified it
3165 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3172 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3166 added a '-l' option to list all bookmarks.
3173 added a '-l' option to list all bookmarks.
3167
3174
3168 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3175 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3169 center for cleanup. Registered with atexit.register(). I moved
3176 center for cleanup. Registered with atexit.register(). I moved
3170 here the old exit_cleanup(). After a patch by Ville.
3177 here the old exit_cleanup(). After a patch by Ville.
3171
3178
3172 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3179 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3173 characters in the hacked shlex_split for python 2.2.
3180 characters in the hacked shlex_split for python 2.2.
3174
3181
3175 * IPython/iplib.py (file_matches): more fixes to filenames with
3182 * IPython/iplib.py (file_matches): more fixes to filenames with
3176 whitespace in them. It's not perfect, but limitations in python's
3183 whitespace in them. It's not perfect, but limitations in python's
3177 readline make it impossible to go further.
3184 readline make it impossible to go further.
3178
3185
3179 2004-06-29 Fernando Perez <fperez@colorado.edu>
3186 2004-06-29 Fernando Perez <fperez@colorado.edu>
3180
3187
3181 * IPython/iplib.py (file_matches): escape whitespace correctly in
3188 * IPython/iplib.py (file_matches): escape whitespace correctly in
3182 filename completions. Bug reported by Ville.
3189 filename completions. Bug reported by Ville.
3183
3190
3184 2004-06-28 Fernando Perez <fperez@colorado.edu>
3191 2004-06-28 Fernando Perez <fperez@colorado.edu>
3185
3192
3186 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3193 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3187 the history file will be called 'history-PROFNAME' (or just
3194 the history file will be called 'history-PROFNAME' (or just
3188 'history' if no profile is loaded). I was getting annoyed at
3195 'history' if no profile is loaded). I was getting annoyed at
3189 getting my Numerical work history clobbered by pysh sessions.
3196 getting my Numerical work history clobbered by pysh sessions.
3190
3197
3191 * IPython/iplib.py (InteractiveShell.__init__): Internal
3198 * IPython/iplib.py (InteractiveShell.__init__): Internal
3192 getoutputerror() function so that we can honor the system_verbose
3199 getoutputerror() function so that we can honor the system_verbose
3193 flag for _all_ system calls. I also added escaping of #
3200 flag for _all_ system calls. I also added escaping of #
3194 characters here to avoid confusing Itpl.
3201 characters here to avoid confusing Itpl.
3195
3202
3196 * IPython/Magic.py (shlex_split): removed call to shell in
3203 * IPython/Magic.py (shlex_split): removed call to shell in
3197 parse_options and replaced it with shlex.split(). The annoying
3204 parse_options and replaced it with shlex.split(). The annoying
3198 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3205 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3199 to backport it from 2.3, with several frail hacks (the shlex
3206 to backport it from 2.3, with several frail hacks (the shlex
3200 module is rather limited in 2.2). Thanks to a suggestion by Ville
3207 module is rather limited in 2.2). Thanks to a suggestion by Ville
3201 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3208 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3202 problem.
3209 problem.
3203
3210
3204 (Magic.magic_system_verbose): new toggle to print the actual
3211 (Magic.magic_system_verbose): new toggle to print the actual
3205 system calls made by ipython. Mainly for debugging purposes.
3212 system calls made by ipython. Mainly for debugging purposes.
3206
3213
3207 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3214 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3208 doesn't support persistence. Reported (and fix suggested) by
3215 doesn't support persistence. Reported (and fix suggested) by
3209 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3216 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3210
3217
3211 2004-06-26 Fernando Perez <fperez@colorado.edu>
3218 2004-06-26 Fernando Perez <fperez@colorado.edu>
3212
3219
3213 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3220 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3214 continue prompts.
3221 continue prompts.
3215
3222
3216 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3223 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3217 function (basically a big docstring) and a few more things here to
3224 function (basically a big docstring) and a few more things here to
3218 speedup startup. pysh.py is now very lightweight. We want because
3225 speedup startup. pysh.py is now very lightweight. We want because
3219 it gets execfile'd, while InterpreterExec gets imported, so
3226 it gets execfile'd, while InterpreterExec gets imported, so
3220 byte-compilation saves time.
3227 byte-compilation saves time.
3221
3228
3222 2004-06-25 Fernando Perez <fperez@colorado.edu>
3229 2004-06-25 Fernando Perez <fperez@colorado.edu>
3223
3230
3224 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3231 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3225 -NUM', which was recently broken.
3232 -NUM', which was recently broken.
3226
3233
3227 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3234 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3228 in multi-line input (but not !!, which doesn't make sense there).
3235 in multi-line input (but not !!, which doesn't make sense there).
3229
3236
3230 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3237 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3231 It's just too useful, and people can turn it off in the less
3238 It's just too useful, and people can turn it off in the less
3232 common cases where it's a problem.
3239 common cases where it's a problem.
3233
3240
3234 2004-06-24 Fernando Perez <fperez@colorado.edu>
3241 2004-06-24 Fernando Perez <fperez@colorado.edu>
3235
3242
3236 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3243 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3237 special syntaxes (like alias calling) is now allied in multi-line
3244 special syntaxes (like alias calling) is now allied in multi-line
3238 input. This is still _very_ experimental, but it's necessary for
3245 input. This is still _very_ experimental, but it's necessary for
3239 efficient shell usage combining python looping syntax with system
3246 efficient shell usage combining python looping syntax with system
3240 calls. For now it's restricted to aliases, I don't think it
3247 calls. For now it's restricted to aliases, I don't think it
3241 really even makes sense to have this for magics.
3248 really even makes sense to have this for magics.
3242
3249
3243 2004-06-23 Fernando Perez <fperez@colorado.edu>
3250 2004-06-23 Fernando Perez <fperez@colorado.edu>
3244
3251
3245 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3252 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3246 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3253 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3247
3254
3248 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3255 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3249 extensions under Windows (after code sent by Gary Bishop). The
3256 extensions under Windows (after code sent by Gary Bishop). The
3250 extensions considered 'executable' are stored in IPython's rc
3257 extensions considered 'executable' are stored in IPython's rc
3251 structure as win_exec_ext.
3258 structure as win_exec_ext.
3252
3259
3253 * IPython/genutils.py (shell): new function, like system() but
3260 * IPython/genutils.py (shell): new function, like system() but
3254 without return value. Very useful for interactive shell work.
3261 without return value. Very useful for interactive shell work.
3255
3262
3256 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3263 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3257 delete aliases.
3264 delete aliases.
3258
3265
3259 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3266 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3260 sure that the alias table doesn't contain python keywords.
3267 sure that the alias table doesn't contain python keywords.
3261
3268
3262 2004-06-21 Fernando Perez <fperez@colorado.edu>
3269 2004-06-21 Fernando Perez <fperez@colorado.edu>
3263
3270
3264 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3271 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3265 non-existent items are found in $PATH. Reported by Thorsten.
3272 non-existent items are found in $PATH. Reported by Thorsten.
3266
3273
3267 2004-06-20 Fernando Perez <fperez@colorado.edu>
3274 2004-06-20 Fernando Perez <fperez@colorado.edu>
3268
3275
3269 * IPython/iplib.py (complete): modified the completer so that the
3276 * IPython/iplib.py (complete): modified the completer so that the
3270 order of priorities can be easily changed at runtime.
3277 order of priorities can be easily changed at runtime.
3271
3278
3272 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3279 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3273 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3280 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3274
3281
3275 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3282 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3276 expand Python variables prepended with $ in all system calls. The
3283 expand Python variables prepended with $ in all system calls. The
3277 same was done to InteractiveShell.handle_shell_escape. Now all
3284 same was done to InteractiveShell.handle_shell_escape. Now all
3278 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3285 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3279 expansion of python variables and expressions according to the
3286 expansion of python variables and expressions according to the
3280 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3287 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3281
3288
3282 Though PEP-215 has been rejected, a similar (but simpler) one
3289 Though PEP-215 has been rejected, a similar (but simpler) one
3283 seems like it will go into Python 2.4, PEP-292 -
3290 seems like it will go into Python 2.4, PEP-292 -
3284 http://www.python.org/peps/pep-0292.html.
3291 http://www.python.org/peps/pep-0292.html.
3285
3292
3286 I'll keep the full syntax of PEP-215, since IPython has since the
3293 I'll keep the full syntax of PEP-215, since IPython has since the
3287 start used Ka-Ping Yee's reference implementation discussed there
3294 start used Ka-Ping Yee's reference implementation discussed there
3288 (Itpl), and I actually like the powerful semantics it offers.
3295 (Itpl), and I actually like the powerful semantics it offers.
3289
3296
3290 In order to access normal shell variables, the $ has to be escaped
3297 In order to access normal shell variables, the $ has to be escaped
3291 via an extra $. For example:
3298 via an extra $. For example:
3292
3299
3293 In [7]: PATH='a python variable'
3300 In [7]: PATH='a python variable'
3294
3301
3295 In [8]: !echo $PATH
3302 In [8]: !echo $PATH
3296 a python variable
3303 a python variable
3297
3304
3298 In [9]: !echo $$PATH
3305 In [9]: !echo $$PATH
3299 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3306 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3300
3307
3301 (Magic.parse_options): escape $ so the shell doesn't evaluate
3308 (Magic.parse_options): escape $ so the shell doesn't evaluate
3302 things prematurely.
3309 things prematurely.
3303
3310
3304 * IPython/iplib.py (InteractiveShell.call_alias): added the
3311 * IPython/iplib.py (InteractiveShell.call_alias): added the
3305 ability for aliases to expand python variables via $.
3312 ability for aliases to expand python variables via $.
3306
3313
3307 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3314 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3308 system, now there's a @rehash/@rehashx pair of magics. These work
3315 system, now there's a @rehash/@rehashx pair of magics. These work
3309 like the csh rehash command, and can be invoked at any time. They
3316 like the csh rehash command, and can be invoked at any time. They
3310 build a table of aliases to everything in the user's $PATH
3317 build a table of aliases to everything in the user's $PATH
3311 (@rehash uses everything, @rehashx is slower but only adds
3318 (@rehash uses everything, @rehashx is slower but only adds
3312 executable files). With this, the pysh.py-based shell profile can
3319 executable files). With this, the pysh.py-based shell profile can
3313 now simply call rehash upon startup, and full access to all
3320 now simply call rehash upon startup, and full access to all
3314 programs in the user's path is obtained.
3321 programs in the user's path is obtained.
3315
3322
3316 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3323 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3317 functionality is now fully in place. I removed the old dynamic
3324 functionality is now fully in place. I removed the old dynamic
3318 code generation based approach, in favor of a much lighter one
3325 code generation based approach, in favor of a much lighter one
3319 based on a simple dict. The advantage is that this allows me to
3326 based on a simple dict. The advantage is that this allows me to
3320 now have thousands of aliases with negligible cost (unthinkable
3327 now have thousands of aliases with negligible cost (unthinkable
3321 with the old system).
3328 with the old system).
3322
3329
3323 2004-06-19 Fernando Perez <fperez@colorado.edu>
3330 2004-06-19 Fernando Perez <fperez@colorado.edu>
3324
3331
3325 * IPython/iplib.py (__init__): extended MagicCompleter class to
3332 * IPython/iplib.py (__init__): extended MagicCompleter class to
3326 also complete (last in priority) on user aliases.
3333 also complete (last in priority) on user aliases.
3327
3334
3328 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3335 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3329 call to eval.
3336 call to eval.
3330 (ItplNS.__init__): Added a new class which functions like Itpl,
3337 (ItplNS.__init__): Added a new class which functions like Itpl,
3331 but allows configuring the namespace for the evaluation to occur
3338 but allows configuring the namespace for the evaluation to occur
3332 in.
3339 in.
3333
3340
3334 2004-06-18 Fernando Perez <fperez@colorado.edu>
3341 2004-06-18 Fernando Perez <fperez@colorado.edu>
3335
3342
3336 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3343 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3337 better message when 'exit' or 'quit' are typed (a common newbie
3344 better message when 'exit' or 'quit' are typed (a common newbie
3338 confusion).
3345 confusion).
3339
3346
3340 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3347 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3341 check for Windows users.
3348 check for Windows users.
3342
3349
3343 * IPython/iplib.py (InteractiveShell.user_setup): removed
3350 * IPython/iplib.py (InteractiveShell.user_setup): removed
3344 disabling of colors for Windows. I'll test at runtime and issue a
3351 disabling of colors for Windows. I'll test at runtime and issue a
3345 warning if Gary's readline isn't found, as to nudge users to
3352 warning if Gary's readline isn't found, as to nudge users to
3346 download it.
3353 download it.
3347
3354
3348 2004-06-16 Fernando Perez <fperez@colorado.edu>
3355 2004-06-16 Fernando Perez <fperez@colorado.edu>
3349
3356
3350 * IPython/genutils.py (Stream.__init__): changed to print errors
3357 * IPython/genutils.py (Stream.__init__): changed to print errors
3351 to sys.stderr. I had a circular dependency here. Now it's
3358 to sys.stderr. I had a circular dependency here. Now it's
3352 possible to run ipython as IDLE's shell (consider this pre-alpha,
3359 possible to run ipython as IDLE's shell (consider this pre-alpha,
3353 since true stdout things end up in the starting terminal instead
3360 since true stdout things end up in the starting terminal instead
3354 of IDLE's out).
3361 of IDLE's out).
3355
3362
3356 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3363 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3357 users who haven't # updated their prompt_in2 definitions. Remove
3364 users who haven't # updated their prompt_in2 definitions. Remove
3358 eventually.
3365 eventually.
3359 (multiple_replace): added credit to original ASPN recipe.
3366 (multiple_replace): added credit to original ASPN recipe.
3360
3367
3361 2004-06-15 Fernando Perez <fperez@colorado.edu>
3368 2004-06-15 Fernando Perez <fperez@colorado.edu>
3362
3369
3363 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3370 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3364 list of auto-defined aliases.
3371 list of auto-defined aliases.
3365
3372
3366 2004-06-13 Fernando Perez <fperez@colorado.edu>
3373 2004-06-13 Fernando Perez <fperez@colorado.edu>
3367
3374
3368 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3375 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3369 install was really requested (so setup.py can be used for other
3376 install was really requested (so setup.py can be used for other
3370 things under Windows).
3377 things under Windows).
3371
3378
3372 2004-06-10 Fernando Perez <fperez@colorado.edu>
3379 2004-06-10 Fernando Perez <fperez@colorado.edu>
3373
3380
3374 * IPython/Logger.py (Logger.create_log): Manually remove any old
3381 * IPython/Logger.py (Logger.create_log): Manually remove any old
3375 backup, since os.remove may fail under Windows. Fixes bug
3382 backup, since os.remove may fail under Windows. Fixes bug
3376 reported by Thorsten.
3383 reported by Thorsten.
3377
3384
3378 2004-06-09 Fernando Perez <fperez@colorado.edu>
3385 2004-06-09 Fernando Perez <fperez@colorado.edu>
3379
3386
3380 * examples/example-embed.py: fixed all references to %n (replaced
3387 * examples/example-embed.py: fixed all references to %n (replaced
3381 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3388 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3382 for all examples and the manual as well.
3389 for all examples and the manual as well.
3383
3390
3384 2004-06-08 Fernando Perez <fperez@colorado.edu>
3391 2004-06-08 Fernando Perez <fperez@colorado.edu>
3385
3392
3386 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3393 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3387 alignment and color management. All 3 prompt subsystems now
3394 alignment and color management. All 3 prompt subsystems now
3388 inherit from BasePrompt.
3395 inherit from BasePrompt.
3389
3396
3390 * tools/release: updates for windows installer build and tag rpms
3397 * tools/release: updates for windows installer build and tag rpms
3391 with python version (since paths are fixed).
3398 with python version (since paths are fixed).
3392
3399
3393 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3400 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3394 which will become eventually obsolete. Also fixed the default
3401 which will become eventually obsolete. Also fixed the default
3395 prompt_in2 to use \D, so at least new users start with the correct
3402 prompt_in2 to use \D, so at least new users start with the correct
3396 defaults.
3403 defaults.
3397 WARNING: Users with existing ipythonrc files will need to apply
3404 WARNING: Users with existing ipythonrc files will need to apply
3398 this fix manually!
3405 this fix manually!
3399
3406
3400 * setup.py: make windows installer (.exe). This is finally the
3407 * setup.py: make windows installer (.exe). This is finally the
3401 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3408 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3402 which I hadn't included because it required Python 2.3 (or recent
3409 which I hadn't included because it required Python 2.3 (or recent
3403 distutils).
3410 distutils).
3404
3411
3405 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3412 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3406 usage of new '\D' escape.
3413 usage of new '\D' escape.
3407
3414
3408 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3415 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3409 lacks os.getuid())
3416 lacks os.getuid())
3410 (CachedOutput.set_colors): Added the ability to turn coloring
3417 (CachedOutput.set_colors): Added the ability to turn coloring
3411 on/off with @colors even for manually defined prompt colors. It
3418 on/off with @colors even for manually defined prompt colors. It
3412 uses a nasty global, but it works safely and via the generic color
3419 uses a nasty global, but it works safely and via the generic color
3413 handling mechanism.
3420 handling mechanism.
3414 (Prompt2.__init__): Introduced new escape '\D' for continuation
3421 (Prompt2.__init__): Introduced new escape '\D' for continuation
3415 prompts. It represents the counter ('\#') as dots.
3422 prompts. It represents the counter ('\#') as dots.
3416 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3423 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3417 need to update their ipythonrc files and replace '%n' with '\D' in
3424 need to update their ipythonrc files and replace '%n' with '\D' in
3418 their prompt_in2 settings everywhere. Sorry, but there's
3425 their prompt_in2 settings everywhere. Sorry, but there's
3419 otherwise no clean way to get all prompts to properly align. The
3426 otherwise no clean way to get all prompts to properly align. The
3420 ipythonrc shipped with IPython has been updated.
3427 ipythonrc shipped with IPython has been updated.
3421
3428
3422 2004-06-07 Fernando Perez <fperez@colorado.edu>
3429 2004-06-07 Fernando Perez <fperez@colorado.edu>
3423
3430
3424 * setup.py (isfile): Pass local_icons option to latex2html, so the
3431 * setup.py (isfile): Pass local_icons option to latex2html, so the
3425 resulting HTML file is self-contained. Thanks to
3432 resulting HTML file is self-contained. Thanks to
3426 dryice-AT-liu.com.cn for the tip.
3433 dryice-AT-liu.com.cn for the tip.
3427
3434
3428 * pysh.py: I created a new profile 'shell', which implements a
3435 * pysh.py: I created a new profile 'shell', which implements a
3429 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3436 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3430 system shell, nor will it become one anytime soon. It's mainly
3437 system shell, nor will it become one anytime soon. It's mainly
3431 meant to illustrate the use of the new flexible bash-like prompts.
3438 meant to illustrate the use of the new flexible bash-like prompts.
3432 I guess it could be used by hardy souls for true shell management,
3439 I guess it could be used by hardy souls for true shell management,
3433 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3440 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3434 profile. This uses the InterpreterExec extension provided by
3441 profile. This uses the InterpreterExec extension provided by
3435 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3442 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3436
3443
3437 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3444 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3438 auto-align itself with the length of the previous input prompt
3445 auto-align itself with the length of the previous input prompt
3439 (taking into account the invisible color escapes).
3446 (taking into account the invisible color escapes).
3440 (CachedOutput.__init__): Large restructuring of this class. Now
3447 (CachedOutput.__init__): Large restructuring of this class. Now
3441 all three prompts (primary1, primary2, output) are proper objects,
3448 all three prompts (primary1, primary2, output) are proper objects,
3442 managed by the 'parent' CachedOutput class. The code is still a
3449 managed by the 'parent' CachedOutput class. The code is still a
3443 bit hackish (all prompts share state via a pointer to the cache),
3450 bit hackish (all prompts share state via a pointer to the cache),
3444 but it's overall far cleaner than before.
3451 but it's overall far cleaner than before.
3445
3452
3446 * IPython/genutils.py (getoutputerror): modified to add verbose,
3453 * IPython/genutils.py (getoutputerror): modified to add verbose,
3447 debug and header options. This makes the interface of all getout*
3454 debug and header options. This makes the interface of all getout*
3448 functions uniform.
3455 functions uniform.
3449 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3456 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3450
3457
3451 * IPython/Magic.py (Magic.default_option): added a function to
3458 * IPython/Magic.py (Magic.default_option): added a function to
3452 allow registering default options for any magic command. This
3459 allow registering default options for any magic command. This
3453 makes it easy to have profiles which customize the magics globally
3460 makes it easy to have profiles which customize the magics globally
3454 for a certain use. The values set through this function are
3461 for a certain use. The values set through this function are
3455 picked up by the parse_options() method, which all magics should
3462 picked up by the parse_options() method, which all magics should
3456 use to parse their options.
3463 use to parse their options.
3457
3464
3458 * IPython/genutils.py (warn): modified the warnings framework to
3465 * IPython/genutils.py (warn): modified the warnings framework to
3459 use the Term I/O class. I'm trying to slowly unify all of
3466 use the Term I/O class. I'm trying to slowly unify all of
3460 IPython's I/O operations to pass through Term.
3467 IPython's I/O operations to pass through Term.
3461
3468
3462 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3469 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3463 the secondary prompt to correctly match the length of the primary
3470 the secondary prompt to correctly match the length of the primary
3464 one for any prompt. Now multi-line code will properly line up
3471 one for any prompt. Now multi-line code will properly line up
3465 even for path dependent prompts, such as the new ones available
3472 even for path dependent prompts, such as the new ones available
3466 via the prompt_specials.
3473 via the prompt_specials.
3467
3474
3468 2004-06-06 Fernando Perez <fperez@colorado.edu>
3475 2004-06-06 Fernando Perez <fperez@colorado.edu>
3469
3476
3470 * IPython/Prompts.py (prompt_specials): Added the ability to have
3477 * IPython/Prompts.py (prompt_specials): Added the ability to have
3471 bash-like special sequences in the prompts, which get
3478 bash-like special sequences in the prompts, which get
3472 automatically expanded. Things like hostname, current working
3479 automatically expanded. Things like hostname, current working
3473 directory and username are implemented already, but it's easy to
3480 directory and username are implemented already, but it's easy to
3474 add more in the future. Thanks to a patch by W.J. van der Laan
3481 add more in the future. Thanks to a patch by W.J. van der Laan
3475 <gnufnork-AT-hetdigitalegat.nl>
3482 <gnufnork-AT-hetdigitalegat.nl>
3476 (prompt_specials): Added color support for prompt strings, so
3483 (prompt_specials): Added color support for prompt strings, so
3477 users can define arbitrary color setups for their prompts.
3484 users can define arbitrary color setups for their prompts.
3478
3485
3479 2004-06-05 Fernando Perez <fperez@colorado.edu>
3486 2004-06-05 Fernando Perez <fperez@colorado.edu>
3480
3487
3481 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3488 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3482 code to load Gary Bishop's readline and configure it
3489 code to load Gary Bishop's readline and configure it
3483 automatically. Thanks to Gary for help on this.
3490 automatically. Thanks to Gary for help on this.
3484
3491
3485 2004-06-01 Fernando Perez <fperez@colorado.edu>
3492 2004-06-01 Fernando Perez <fperez@colorado.edu>
3486
3493
3487 * IPython/Logger.py (Logger.create_log): fix bug for logging
3494 * IPython/Logger.py (Logger.create_log): fix bug for logging
3488 with no filename (previous fix was incomplete).
3495 with no filename (previous fix was incomplete).
3489
3496
3490 2004-05-25 Fernando Perez <fperez@colorado.edu>
3497 2004-05-25 Fernando Perez <fperez@colorado.edu>
3491
3498
3492 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3499 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3493 parens would get passed to the shell.
3500 parens would get passed to the shell.
3494
3501
3495 2004-05-20 Fernando Perez <fperez@colorado.edu>
3502 2004-05-20 Fernando Perez <fperez@colorado.edu>
3496
3503
3497 * IPython/Magic.py (Magic.magic_prun): changed default profile
3504 * IPython/Magic.py (Magic.magic_prun): changed default profile
3498 sort order to 'time' (the more common profiling need).
3505 sort order to 'time' (the more common profiling need).
3499
3506
3500 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3507 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3501 so that source code shown is guaranteed in sync with the file on
3508 so that source code shown is guaranteed in sync with the file on
3502 disk (also changed in psource). Similar fix to the one for
3509 disk (also changed in psource). Similar fix to the one for
3503 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3510 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3504 <yann.ledu-AT-noos.fr>.
3511 <yann.ledu-AT-noos.fr>.
3505
3512
3506 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3513 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3507 with a single option would not be correctly parsed. Closes
3514 with a single option would not be correctly parsed. Closes
3508 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3515 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3509 introduced in 0.6.0 (on 2004-05-06).
3516 introduced in 0.6.0 (on 2004-05-06).
3510
3517
3511 2004-05-13 *** Released version 0.6.0
3518 2004-05-13 *** Released version 0.6.0
3512
3519
3513 2004-05-13 Fernando Perez <fperez@colorado.edu>
3520 2004-05-13 Fernando Perez <fperez@colorado.edu>
3514
3521
3515 * debian/: Added debian/ directory to CVS, so that debian support
3522 * debian/: Added debian/ directory to CVS, so that debian support
3516 is publicly accessible. The debian package is maintained by Jack
3523 is publicly accessible. The debian package is maintained by Jack
3517 Moffit <jack-AT-xiph.org>.
3524 Moffit <jack-AT-xiph.org>.
3518
3525
3519 * Documentation: included the notes about an ipython-based system
3526 * Documentation: included the notes about an ipython-based system
3520 shell (the hypothetical 'pysh') into the new_design.pdf document,
3527 shell (the hypothetical 'pysh') into the new_design.pdf document,
3521 so that these ideas get distributed to users along with the
3528 so that these ideas get distributed to users along with the
3522 official documentation.
3529 official documentation.
3523
3530
3524 2004-05-10 Fernando Perez <fperez@colorado.edu>
3531 2004-05-10 Fernando Perez <fperez@colorado.edu>
3525
3532
3526 * IPython/Logger.py (Logger.create_log): fix recently introduced
3533 * IPython/Logger.py (Logger.create_log): fix recently introduced
3527 bug (misindented line) where logstart would fail when not given an
3534 bug (misindented line) where logstart would fail when not given an
3528 explicit filename.
3535 explicit filename.
3529
3536
3530 2004-05-09 Fernando Perez <fperez@colorado.edu>
3537 2004-05-09 Fernando Perez <fperez@colorado.edu>
3531
3538
3532 * IPython/Magic.py (Magic.parse_options): skip system call when
3539 * IPython/Magic.py (Magic.parse_options): skip system call when
3533 there are no options to look for. Faster, cleaner for the common
3540 there are no options to look for. Faster, cleaner for the common
3534 case.
3541 case.
3535
3542
3536 * Documentation: many updates to the manual: describing Windows
3543 * Documentation: many updates to the manual: describing Windows
3537 support better, Gnuplot updates, credits, misc small stuff. Also
3544 support better, Gnuplot updates, credits, misc small stuff. Also
3538 updated the new_design doc a bit.
3545 updated the new_design doc a bit.
3539
3546
3540 2004-05-06 *** Released version 0.6.0.rc1
3547 2004-05-06 *** Released version 0.6.0.rc1
3541
3548
3542 2004-05-06 Fernando Perez <fperez@colorado.edu>
3549 2004-05-06 Fernando Perez <fperez@colorado.edu>
3543
3550
3544 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3551 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3545 operations to use the vastly more efficient list/''.join() method.
3552 operations to use the vastly more efficient list/''.join() method.
3546 (FormattedTB.text): Fix
3553 (FormattedTB.text): Fix
3547 http://www.scipy.net/roundup/ipython/issue12 - exception source
3554 http://www.scipy.net/roundup/ipython/issue12 - exception source
3548 extract not updated after reload. Thanks to Mike Salib
3555 extract not updated after reload. Thanks to Mike Salib
3549 <msalib-AT-mit.edu> for pinning the source of the problem.
3556 <msalib-AT-mit.edu> for pinning the source of the problem.
3550 Fortunately, the solution works inside ipython and doesn't require
3557 Fortunately, the solution works inside ipython and doesn't require
3551 any changes to python proper.
3558 any changes to python proper.
3552
3559
3553 * IPython/Magic.py (Magic.parse_options): Improved to process the
3560 * IPython/Magic.py (Magic.parse_options): Improved to process the
3554 argument list as a true shell would (by actually using the
3561 argument list as a true shell would (by actually using the
3555 underlying system shell). This way, all @magics automatically get
3562 underlying system shell). This way, all @magics automatically get
3556 shell expansion for variables. Thanks to a comment by Alex
3563 shell expansion for variables. Thanks to a comment by Alex
3557 Schmolck.
3564 Schmolck.
3558
3565
3559 2004-04-04 Fernando Perez <fperez@colorado.edu>
3566 2004-04-04 Fernando Perez <fperez@colorado.edu>
3560
3567
3561 * IPython/iplib.py (InteractiveShell.interact): Added a special
3568 * IPython/iplib.py (InteractiveShell.interact): Added a special
3562 trap for a debugger quit exception, which is basically impossible
3569 trap for a debugger quit exception, which is basically impossible
3563 to handle by normal mechanisms, given what pdb does to the stack.
3570 to handle by normal mechanisms, given what pdb does to the stack.
3564 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3571 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3565
3572
3566 2004-04-03 Fernando Perez <fperez@colorado.edu>
3573 2004-04-03 Fernando Perez <fperez@colorado.edu>
3567
3574
3568 * IPython/genutils.py (Term): Standardized the names of the Term
3575 * IPython/genutils.py (Term): Standardized the names of the Term
3569 class streams to cin/cout/cerr, following C++ naming conventions
3576 class streams to cin/cout/cerr, following C++ naming conventions
3570 (I can't use in/out/err because 'in' is not a valid attribute
3577 (I can't use in/out/err because 'in' is not a valid attribute
3571 name).
3578 name).
3572
3579
3573 * IPython/iplib.py (InteractiveShell.interact): don't increment
3580 * IPython/iplib.py (InteractiveShell.interact): don't increment
3574 the prompt if there's no user input. By Daniel 'Dang' Griffith
3581 the prompt if there's no user input. By Daniel 'Dang' Griffith
3575 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3582 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3576 Francois Pinard.
3583 Francois Pinard.
3577
3584
3578 2004-04-02 Fernando Perez <fperez@colorado.edu>
3585 2004-04-02 Fernando Perez <fperez@colorado.edu>
3579
3586
3580 * IPython/genutils.py (Stream.__init__): Modified to survive at
3587 * IPython/genutils.py (Stream.__init__): Modified to survive at
3581 least importing in contexts where stdin/out/err aren't true file
3588 least importing in contexts where stdin/out/err aren't true file
3582 objects, such as PyCrust (they lack fileno() and mode). However,
3589 objects, such as PyCrust (they lack fileno() and mode). However,
3583 the recovery facilities which rely on these things existing will
3590 the recovery facilities which rely on these things existing will
3584 not work.
3591 not work.
3585
3592
3586 2004-04-01 Fernando Perez <fperez@colorado.edu>
3593 2004-04-01 Fernando Perez <fperez@colorado.edu>
3587
3594
3588 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3595 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3589 use the new getoutputerror() function, so it properly
3596 use the new getoutputerror() function, so it properly
3590 distinguishes stdout/err.
3597 distinguishes stdout/err.
3591
3598
3592 * IPython/genutils.py (getoutputerror): added a function to
3599 * IPython/genutils.py (getoutputerror): added a function to
3593 capture separately the standard output and error of a command.
3600 capture separately the standard output and error of a command.
3594 After a comment from dang on the mailing lists. This code is
3601 After a comment from dang on the mailing lists. This code is
3595 basically a modified version of commands.getstatusoutput(), from
3602 basically a modified version of commands.getstatusoutput(), from
3596 the standard library.
3603 the standard library.
3597
3604
3598 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3605 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3599 '!!' as a special syntax (shorthand) to access @sx.
3606 '!!' as a special syntax (shorthand) to access @sx.
3600
3607
3601 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3608 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3602 command and return its output as a list split on '\n'.
3609 command and return its output as a list split on '\n'.
3603
3610
3604 2004-03-31 Fernando Perez <fperez@colorado.edu>
3611 2004-03-31 Fernando Perez <fperez@colorado.edu>
3605
3612
3606 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3613 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3607 method to dictionaries used as FakeModule instances if they lack
3614 method to dictionaries used as FakeModule instances if they lack
3608 it. At least pydoc in python2.3 breaks for runtime-defined
3615 it. At least pydoc in python2.3 breaks for runtime-defined
3609 functions without this hack. At some point I need to _really_
3616 functions without this hack. At some point I need to _really_
3610 understand what FakeModule is doing, because it's a gross hack.
3617 understand what FakeModule is doing, because it's a gross hack.
3611 But it solves Arnd's problem for now...
3618 But it solves Arnd's problem for now...
3612
3619
3613 2004-02-27 Fernando Perez <fperez@colorado.edu>
3620 2004-02-27 Fernando Perez <fperez@colorado.edu>
3614
3621
3615 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3622 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3616 mode would behave erratically. Also increased the number of
3623 mode would behave erratically. Also increased the number of
3617 possible logs in rotate mod to 999. Thanks to Rod Holland
3624 possible logs in rotate mod to 999. Thanks to Rod Holland
3618 <rhh@StructureLABS.com> for the report and fixes.
3625 <rhh@StructureLABS.com> for the report and fixes.
3619
3626
3620 2004-02-26 Fernando Perez <fperez@colorado.edu>
3627 2004-02-26 Fernando Perez <fperez@colorado.edu>
3621
3628
3622 * IPython/genutils.py (page): Check that the curses module really
3629 * IPython/genutils.py (page): Check that the curses module really
3623 has the initscr attribute before trying to use it. For some
3630 has the initscr attribute before trying to use it. For some
3624 reason, the Solaris curses module is missing this. I think this
3631 reason, the Solaris curses module is missing this. I think this
3625 should be considered a Solaris python bug, but I'm not sure.
3632 should be considered a Solaris python bug, but I'm not sure.
3626
3633
3627 2004-01-17 Fernando Perez <fperez@colorado.edu>
3634 2004-01-17 Fernando Perez <fperez@colorado.edu>
3628
3635
3629 * IPython/genutils.py (Stream.__init__): Changes to try to make
3636 * IPython/genutils.py (Stream.__init__): Changes to try to make
3630 ipython robust against stdin/out/err being closed by the user.
3637 ipython robust against stdin/out/err being closed by the user.
3631 This is 'user error' (and blocks a normal python session, at least
3638 This is 'user error' (and blocks a normal python session, at least
3632 the stdout case). However, Ipython should be able to survive such
3639 the stdout case). However, Ipython should be able to survive such
3633 instances of abuse as gracefully as possible. To simplify the
3640 instances of abuse as gracefully as possible. To simplify the
3634 coding and maintain compatibility with Gary Bishop's Term
3641 coding and maintain compatibility with Gary Bishop's Term
3635 contributions, I've made use of classmethods for this. I think
3642 contributions, I've made use of classmethods for this. I think
3636 this introduces a dependency on python 2.2.
3643 this introduces a dependency on python 2.2.
3637
3644
3638 2004-01-13 Fernando Perez <fperez@colorado.edu>
3645 2004-01-13 Fernando Perez <fperez@colorado.edu>
3639
3646
3640 * IPython/numutils.py (exp_safe): simplified the code a bit and
3647 * IPython/numutils.py (exp_safe): simplified the code a bit and
3641 removed the need for importing the kinds module altogether.
3648 removed the need for importing the kinds module altogether.
3642
3649
3643 2004-01-06 Fernando Perez <fperez@colorado.edu>
3650 2004-01-06 Fernando Perez <fperez@colorado.edu>
3644
3651
3645 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3652 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3646 a magic function instead, after some community feedback. No
3653 a magic function instead, after some community feedback. No
3647 special syntax will exist for it, but its name is deliberately
3654 special syntax will exist for it, but its name is deliberately
3648 very short.
3655 very short.
3649
3656
3650 2003-12-20 Fernando Perez <fperez@colorado.edu>
3657 2003-12-20 Fernando Perez <fperez@colorado.edu>
3651
3658
3652 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3659 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3653 new functionality, to automagically assign the result of a shell
3660 new functionality, to automagically assign the result of a shell
3654 command to a variable. I'll solicit some community feedback on
3661 command to a variable. I'll solicit some community feedback on
3655 this before making it permanent.
3662 this before making it permanent.
3656
3663
3657 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3664 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3658 requested about callables for which inspect couldn't obtain a
3665 requested about callables for which inspect couldn't obtain a
3659 proper argspec. Thanks to a crash report sent by Etienne
3666 proper argspec. Thanks to a crash report sent by Etienne
3660 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3667 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3661
3668
3662 2003-12-09 Fernando Perez <fperez@colorado.edu>
3669 2003-12-09 Fernando Perez <fperez@colorado.edu>
3663
3670
3664 * IPython/genutils.py (page): patch for the pager to work across
3671 * IPython/genutils.py (page): patch for the pager to work across
3665 various versions of Windows. By Gary Bishop.
3672 various versions of Windows. By Gary Bishop.
3666
3673
3667 2003-12-04 Fernando Perez <fperez@colorado.edu>
3674 2003-12-04 Fernando Perez <fperez@colorado.edu>
3668
3675
3669 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3676 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3670 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3677 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3671 While I tested this and it looks ok, there may still be corner
3678 While I tested this and it looks ok, there may still be corner
3672 cases I've missed.
3679 cases I've missed.
3673
3680
3674 2003-12-01 Fernando Perez <fperez@colorado.edu>
3681 2003-12-01 Fernando Perez <fperez@colorado.edu>
3675
3682
3676 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3683 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3677 where a line like 'p,q=1,2' would fail because the automagic
3684 where a line like 'p,q=1,2' would fail because the automagic
3678 system would be triggered for @p.
3685 system would be triggered for @p.
3679
3686
3680 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3687 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3681 cleanups, code unmodified.
3688 cleanups, code unmodified.
3682
3689
3683 * IPython/genutils.py (Term): added a class for IPython to handle
3690 * IPython/genutils.py (Term): added a class for IPython to handle
3684 output. In most cases it will just be a proxy for stdout/err, but
3691 output. In most cases it will just be a proxy for stdout/err, but
3685 having this allows modifications to be made for some platforms,
3692 having this allows modifications to be made for some platforms,
3686 such as handling color escapes under Windows. All of this code
3693 such as handling color escapes under Windows. All of this code
3687 was contributed by Gary Bishop, with minor modifications by me.
3694 was contributed by Gary Bishop, with minor modifications by me.
3688 The actual changes affect many files.
3695 The actual changes affect many files.
3689
3696
3690 2003-11-30 Fernando Perez <fperez@colorado.edu>
3697 2003-11-30 Fernando Perez <fperez@colorado.edu>
3691
3698
3692 * IPython/iplib.py (file_matches): new completion code, courtesy
3699 * IPython/iplib.py (file_matches): new completion code, courtesy
3693 of Jeff Collins. This enables filename completion again under
3700 of Jeff Collins. This enables filename completion again under
3694 python 2.3, which disabled it at the C level.
3701 python 2.3, which disabled it at the C level.
3695
3702
3696 2003-11-11 Fernando Perez <fperez@colorado.edu>
3703 2003-11-11 Fernando Perez <fperez@colorado.edu>
3697
3704
3698 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3705 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3699 for Numeric.array(map(...)), but often convenient.
3706 for Numeric.array(map(...)), but often convenient.
3700
3707
3701 2003-11-05 Fernando Perez <fperez@colorado.edu>
3708 2003-11-05 Fernando Perez <fperez@colorado.edu>
3702
3709
3703 * IPython/numutils.py (frange): Changed a call from int() to
3710 * IPython/numutils.py (frange): Changed a call from int() to
3704 int(round()) to prevent a problem reported with arange() in the
3711 int(round()) to prevent a problem reported with arange() in the
3705 numpy list.
3712 numpy list.
3706
3713
3707 2003-10-06 Fernando Perez <fperez@colorado.edu>
3714 2003-10-06 Fernando Perez <fperez@colorado.edu>
3708
3715
3709 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3716 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3710 prevent crashes if sys lacks an argv attribute (it happens with
3717 prevent crashes if sys lacks an argv attribute (it happens with
3711 embedded interpreters which build a bare-bones sys module).
3718 embedded interpreters which build a bare-bones sys module).
3712 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3719 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3713
3720
3714 2003-09-24 Fernando Perez <fperez@colorado.edu>
3721 2003-09-24 Fernando Perez <fperez@colorado.edu>
3715
3722
3716 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3723 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3717 to protect against poorly written user objects where __getattr__
3724 to protect against poorly written user objects where __getattr__
3718 raises exceptions other than AttributeError. Thanks to a bug
3725 raises exceptions other than AttributeError. Thanks to a bug
3719 report by Oliver Sander <osander-AT-gmx.de>.
3726 report by Oliver Sander <osander-AT-gmx.de>.
3720
3727
3721 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3728 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3722 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3729 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3723
3730
3724 2003-09-09 Fernando Perez <fperez@colorado.edu>
3731 2003-09-09 Fernando Perez <fperez@colorado.edu>
3725
3732
3726 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3733 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3727 unpacking a list whith a callable as first element would
3734 unpacking a list whith a callable as first element would
3728 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3735 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3729 Collins.
3736 Collins.
3730
3737
3731 2003-08-25 *** Released version 0.5.0
3738 2003-08-25 *** Released version 0.5.0
3732
3739
3733 2003-08-22 Fernando Perez <fperez@colorado.edu>
3740 2003-08-22 Fernando Perez <fperez@colorado.edu>
3734
3741
3735 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3742 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3736 improperly defined user exceptions. Thanks to feedback from Mark
3743 improperly defined user exceptions. Thanks to feedback from Mark
3737 Russell <mrussell-AT-verio.net>.
3744 Russell <mrussell-AT-verio.net>.
3738
3745
3739 2003-08-20 Fernando Perez <fperez@colorado.edu>
3746 2003-08-20 Fernando Perez <fperez@colorado.edu>
3740
3747
3741 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3748 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3742 printing so that it would print multi-line string forms starting
3749 printing so that it would print multi-line string forms starting
3743 with a new line. This way the formatting is better respected for
3750 with a new line. This way the formatting is better respected for
3744 objects which work hard to make nice string forms.
3751 objects which work hard to make nice string forms.
3745
3752
3746 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3753 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3747 autocall would overtake data access for objects with both
3754 autocall would overtake data access for objects with both
3748 __getitem__ and __call__.
3755 __getitem__ and __call__.
3749
3756
3750 2003-08-19 *** Released version 0.5.0-rc1
3757 2003-08-19 *** Released version 0.5.0-rc1
3751
3758
3752 2003-08-19 Fernando Perez <fperez@colorado.edu>
3759 2003-08-19 Fernando Perez <fperez@colorado.edu>
3753
3760
3754 * IPython/deep_reload.py (load_tail): single tiny change here
3761 * IPython/deep_reload.py (load_tail): single tiny change here
3755 seems to fix the long-standing bug of dreload() failing to work
3762 seems to fix the long-standing bug of dreload() failing to work
3756 for dotted names. But this module is pretty tricky, so I may have
3763 for dotted names. But this module is pretty tricky, so I may have
3757 missed some subtlety. Needs more testing!.
3764 missed some subtlety. Needs more testing!.
3758
3765
3759 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3766 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3760 exceptions which have badly implemented __str__ methods.
3767 exceptions which have badly implemented __str__ methods.
3761 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3768 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3762 which I've been getting reports about from Python 2.3 users. I
3769 which I've been getting reports about from Python 2.3 users. I
3763 wish I had a simple test case to reproduce the problem, so I could
3770 wish I had a simple test case to reproduce the problem, so I could
3764 either write a cleaner workaround or file a bug report if
3771 either write a cleaner workaround or file a bug report if
3765 necessary.
3772 necessary.
3766
3773
3767 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3774 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3768 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3775 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3769 a bug report by Tjabo Kloppenburg.
3776 a bug report by Tjabo Kloppenburg.
3770
3777
3771 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3778 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3772 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3779 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3773 seems rather unstable. Thanks to a bug report by Tjabo
3780 seems rather unstable. Thanks to a bug report by Tjabo
3774 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3781 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3775
3782
3776 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3783 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3777 this out soon because of the critical fixes in the inner loop for
3784 this out soon because of the critical fixes in the inner loop for
3778 generators.
3785 generators.
3779
3786
3780 * IPython/Magic.py (Magic.getargspec): removed. This (and
3787 * IPython/Magic.py (Magic.getargspec): removed. This (and
3781 _get_def) have been obsoleted by OInspect for a long time, I
3788 _get_def) have been obsoleted by OInspect for a long time, I
3782 hadn't noticed that they were dead code.
3789 hadn't noticed that they were dead code.
3783 (Magic._ofind): restored _ofind functionality for a few literals
3790 (Magic._ofind): restored _ofind functionality for a few literals
3784 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3791 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3785 for things like "hello".capitalize?, since that would require a
3792 for things like "hello".capitalize?, since that would require a
3786 potentially dangerous eval() again.
3793 potentially dangerous eval() again.
3787
3794
3788 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3795 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3789 logic a bit more to clean up the escapes handling and minimize the
3796 logic a bit more to clean up the escapes handling and minimize the
3790 use of _ofind to only necessary cases. The interactive 'feel' of
3797 use of _ofind to only necessary cases. The interactive 'feel' of
3791 IPython should have improved quite a bit with the changes in
3798 IPython should have improved quite a bit with the changes in
3792 _prefilter and _ofind (besides being far safer than before).
3799 _prefilter and _ofind (besides being far safer than before).
3793
3800
3794 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3801 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3795 obscure, never reported). Edit would fail to find the object to
3802 obscure, never reported). Edit would fail to find the object to
3796 edit under some circumstances.
3803 edit under some circumstances.
3797 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3804 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3798 which were causing double-calling of generators. Those eval calls
3805 which were causing double-calling of generators. Those eval calls
3799 were _very_ dangerous, since code with side effects could be
3806 were _very_ dangerous, since code with side effects could be
3800 triggered. As they say, 'eval is evil'... These were the
3807 triggered. As they say, 'eval is evil'... These were the
3801 nastiest evals in IPython. Besides, _ofind is now far simpler,
3808 nastiest evals in IPython. Besides, _ofind is now far simpler,
3802 and it should also be quite a bit faster. Its use of inspect is
3809 and it should also be quite a bit faster. Its use of inspect is
3803 also safer, so perhaps some of the inspect-related crashes I've
3810 also safer, so perhaps some of the inspect-related crashes I've
3804 seen lately with Python 2.3 might be taken care of. That will
3811 seen lately with Python 2.3 might be taken care of. That will
3805 need more testing.
3812 need more testing.
3806
3813
3807 2003-08-17 Fernando Perez <fperez@colorado.edu>
3814 2003-08-17 Fernando Perez <fperez@colorado.edu>
3808
3815
3809 * IPython/iplib.py (InteractiveShell._prefilter): significant
3816 * IPython/iplib.py (InteractiveShell._prefilter): significant
3810 simplifications to the logic for handling user escapes. Faster
3817 simplifications to the logic for handling user escapes. Faster
3811 and simpler code.
3818 and simpler code.
3812
3819
3813 2003-08-14 Fernando Perez <fperez@colorado.edu>
3820 2003-08-14 Fernando Perez <fperez@colorado.edu>
3814
3821
3815 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3822 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3816 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3823 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3817 but it should be quite a bit faster. And the recursive version
3824 but it should be quite a bit faster. And the recursive version
3818 generated O(log N) intermediate storage for all rank>1 arrays,
3825 generated O(log N) intermediate storage for all rank>1 arrays,
3819 even if they were contiguous.
3826 even if they were contiguous.
3820 (l1norm): Added this function.
3827 (l1norm): Added this function.
3821 (norm): Added this function for arbitrary norms (including
3828 (norm): Added this function for arbitrary norms (including
3822 l-infinity). l1 and l2 are still special cases for convenience
3829 l-infinity). l1 and l2 are still special cases for convenience
3823 and speed.
3830 and speed.
3824
3831
3825 2003-08-03 Fernando Perez <fperez@colorado.edu>
3832 2003-08-03 Fernando Perez <fperez@colorado.edu>
3826
3833
3827 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3834 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3828 exceptions, which now raise PendingDeprecationWarnings in Python
3835 exceptions, which now raise PendingDeprecationWarnings in Python
3829 2.3. There were some in Magic and some in Gnuplot2.
3836 2.3. There were some in Magic and some in Gnuplot2.
3830
3837
3831 2003-06-30 Fernando Perez <fperez@colorado.edu>
3838 2003-06-30 Fernando Perez <fperez@colorado.edu>
3832
3839
3833 * IPython/genutils.py (page): modified to call curses only for
3840 * IPython/genutils.py (page): modified to call curses only for
3834 terminals where TERM=='xterm'. After problems under many other
3841 terminals where TERM=='xterm'. After problems under many other
3835 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3842 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3836
3843
3837 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3844 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3838 would be triggered when readline was absent. This was just an old
3845 would be triggered when readline was absent. This was just an old
3839 debugging statement I'd forgotten to take out.
3846 debugging statement I'd forgotten to take out.
3840
3847
3841 2003-06-20 Fernando Perez <fperez@colorado.edu>
3848 2003-06-20 Fernando Perez <fperez@colorado.edu>
3842
3849
3843 * IPython/genutils.py (clock): modified to return only user time
3850 * IPython/genutils.py (clock): modified to return only user time
3844 (not counting system time), after a discussion on scipy. While
3851 (not counting system time), after a discussion on scipy. While
3845 system time may be a useful quantity occasionally, it may much
3852 system time may be a useful quantity occasionally, it may much
3846 more easily be skewed by occasional swapping or other similar
3853 more easily be skewed by occasional swapping or other similar
3847 activity.
3854 activity.
3848
3855
3849 2003-06-05 Fernando Perez <fperez@colorado.edu>
3856 2003-06-05 Fernando Perez <fperez@colorado.edu>
3850
3857
3851 * IPython/numutils.py (identity): new function, for building
3858 * IPython/numutils.py (identity): new function, for building
3852 arbitrary rank Kronecker deltas (mostly backwards compatible with
3859 arbitrary rank Kronecker deltas (mostly backwards compatible with
3853 Numeric.identity)
3860 Numeric.identity)
3854
3861
3855 2003-06-03 Fernando Perez <fperez@colorado.edu>
3862 2003-06-03 Fernando Perez <fperez@colorado.edu>
3856
3863
3857 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3864 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3858 arguments passed to magics with spaces, to allow trailing '\' to
3865 arguments passed to magics with spaces, to allow trailing '\' to
3859 work normally (mainly for Windows users).
3866 work normally (mainly for Windows users).
3860
3867
3861 2003-05-29 Fernando Perez <fperez@colorado.edu>
3868 2003-05-29 Fernando Perez <fperez@colorado.edu>
3862
3869
3863 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3870 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3864 instead of pydoc.help. This fixes a bizarre behavior where
3871 instead of pydoc.help. This fixes a bizarre behavior where
3865 printing '%s' % locals() would trigger the help system. Now
3872 printing '%s' % locals() would trigger the help system. Now
3866 ipython behaves like normal python does.
3873 ipython behaves like normal python does.
3867
3874
3868 Note that if one does 'from pydoc import help', the bizarre
3875 Note that if one does 'from pydoc import help', the bizarre
3869 behavior returns, but this will also happen in normal python, so
3876 behavior returns, but this will also happen in normal python, so
3870 it's not an ipython bug anymore (it has to do with how pydoc.help
3877 it's not an ipython bug anymore (it has to do with how pydoc.help
3871 is implemented).
3878 is implemented).
3872
3879
3873 2003-05-22 Fernando Perez <fperez@colorado.edu>
3880 2003-05-22 Fernando Perez <fperez@colorado.edu>
3874
3881
3875 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3882 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3876 return [] instead of None when nothing matches, also match to end
3883 return [] instead of None when nothing matches, also match to end
3877 of line. Patch by Gary Bishop.
3884 of line. Patch by Gary Bishop.
3878
3885
3879 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3886 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3880 protection as before, for files passed on the command line. This
3887 protection as before, for files passed on the command line. This
3881 prevents the CrashHandler from kicking in if user files call into
3888 prevents the CrashHandler from kicking in if user files call into
3882 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3889 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3883 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3890 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3884
3891
3885 2003-05-20 *** Released version 0.4.0
3892 2003-05-20 *** Released version 0.4.0
3886
3893
3887 2003-05-20 Fernando Perez <fperez@colorado.edu>
3894 2003-05-20 Fernando Perez <fperez@colorado.edu>
3888
3895
3889 * setup.py: added support for manpages. It's a bit hackish b/c of
3896 * setup.py: added support for manpages. It's a bit hackish b/c of
3890 a bug in the way the bdist_rpm distutils target handles gzipped
3897 a bug in the way the bdist_rpm distutils target handles gzipped
3891 manpages, but it works. After a patch by Jack.
3898 manpages, but it works. After a patch by Jack.
3892
3899
3893 2003-05-19 Fernando Perez <fperez@colorado.edu>
3900 2003-05-19 Fernando Perez <fperez@colorado.edu>
3894
3901
3895 * IPython/numutils.py: added a mockup of the kinds module, since
3902 * IPython/numutils.py: added a mockup of the kinds module, since
3896 it was recently removed from Numeric. This way, numutils will
3903 it was recently removed from Numeric. This way, numutils will
3897 work for all users even if they are missing kinds.
3904 work for all users even if they are missing kinds.
3898
3905
3899 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3906 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3900 failure, which can occur with SWIG-wrapped extensions. After a
3907 failure, which can occur with SWIG-wrapped extensions. After a
3901 crash report from Prabhu.
3908 crash report from Prabhu.
3902
3909
3903 2003-05-16 Fernando Perez <fperez@colorado.edu>
3910 2003-05-16 Fernando Perez <fperez@colorado.edu>
3904
3911
3905 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3912 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3906 protect ipython from user code which may call directly
3913 protect ipython from user code which may call directly
3907 sys.excepthook (this looks like an ipython crash to the user, even
3914 sys.excepthook (this looks like an ipython crash to the user, even
3908 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3915 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3909 This is especially important to help users of WxWindows, but may
3916 This is especially important to help users of WxWindows, but may
3910 also be useful in other cases.
3917 also be useful in other cases.
3911
3918
3912 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3919 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3913 an optional tb_offset to be specified, and to preserve exception
3920 an optional tb_offset to be specified, and to preserve exception
3914 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3921 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3915
3922
3916 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3923 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3917
3924
3918 2003-05-15 Fernando Perez <fperez@colorado.edu>
3925 2003-05-15 Fernando Perez <fperez@colorado.edu>
3919
3926
3920 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3927 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3921 installing for a new user under Windows.
3928 installing for a new user under Windows.
3922
3929
3923 2003-05-12 Fernando Perez <fperez@colorado.edu>
3930 2003-05-12 Fernando Perez <fperez@colorado.edu>
3924
3931
3925 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3932 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3926 handler for Emacs comint-based lines. Currently it doesn't do
3933 handler for Emacs comint-based lines. Currently it doesn't do
3927 much (but importantly, it doesn't update the history cache). In
3934 much (but importantly, it doesn't update the history cache). In
3928 the future it may be expanded if Alex needs more functionality
3935 the future it may be expanded if Alex needs more functionality
3929 there.
3936 there.
3930
3937
3931 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3938 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3932 info to crash reports.
3939 info to crash reports.
3933
3940
3934 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3941 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3935 just like Python's -c. Also fixed crash with invalid -color
3942 just like Python's -c. Also fixed crash with invalid -color
3936 option value at startup. Thanks to Will French
3943 option value at startup. Thanks to Will French
3937 <wfrench-AT-bestweb.net> for the bug report.
3944 <wfrench-AT-bestweb.net> for the bug report.
3938
3945
3939 2003-05-09 Fernando Perez <fperez@colorado.edu>
3946 2003-05-09 Fernando Perez <fperez@colorado.edu>
3940
3947
3941 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3948 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3942 to EvalDict (it's a mapping, after all) and simplified its code
3949 to EvalDict (it's a mapping, after all) and simplified its code
3943 quite a bit, after a nice discussion on c.l.py where Gustavo
3950 quite a bit, after a nice discussion on c.l.py where Gustavo
3944 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3951 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3945
3952
3946 2003-04-30 Fernando Perez <fperez@colorado.edu>
3953 2003-04-30 Fernando Perez <fperez@colorado.edu>
3947
3954
3948 * IPython/genutils.py (timings_out): modified it to reduce its
3955 * IPython/genutils.py (timings_out): modified it to reduce its
3949 overhead in the common reps==1 case.
3956 overhead in the common reps==1 case.
3950
3957
3951 2003-04-29 Fernando Perez <fperez@colorado.edu>
3958 2003-04-29 Fernando Perez <fperez@colorado.edu>
3952
3959
3953 * IPython/genutils.py (timings_out): Modified to use the resource
3960 * IPython/genutils.py (timings_out): Modified to use the resource
3954 module, which avoids the wraparound problems of time.clock().
3961 module, which avoids the wraparound problems of time.clock().
3955
3962
3956 2003-04-17 *** Released version 0.2.15pre4
3963 2003-04-17 *** Released version 0.2.15pre4
3957
3964
3958 2003-04-17 Fernando Perez <fperez@colorado.edu>
3965 2003-04-17 Fernando Perez <fperez@colorado.edu>
3959
3966
3960 * setup.py (scriptfiles): Split windows-specific stuff over to a
3967 * setup.py (scriptfiles): Split windows-specific stuff over to a
3961 separate file, in an attempt to have a Windows GUI installer.
3968 separate file, in an attempt to have a Windows GUI installer.
3962 That didn't work, but part of the groundwork is done.
3969 That didn't work, but part of the groundwork is done.
3963
3970
3964 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3971 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3965 indent/unindent with 4 spaces. Particularly useful in combination
3972 indent/unindent with 4 spaces. Particularly useful in combination
3966 with the new auto-indent option.
3973 with the new auto-indent option.
3967
3974
3968 2003-04-16 Fernando Perez <fperez@colorado.edu>
3975 2003-04-16 Fernando Perez <fperez@colorado.edu>
3969
3976
3970 * IPython/Magic.py: various replacements of self.rc for
3977 * IPython/Magic.py: various replacements of self.rc for
3971 self.shell.rc. A lot more remains to be done to fully disentangle
3978 self.shell.rc. A lot more remains to be done to fully disentangle
3972 this class from the main Shell class.
3979 this class from the main Shell class.
3973
3980
3974 * IPython/GnuplotRuntime.py: added checks for mouse support so
3981 * IPython/GnuplotRuntime.py: added checks for mouse support so
3975 that we don't try to enable it if the current gnuplot doesn't
3982 that we don't try to enable it if the current gnuplot doesn't
3976 really support it. Also added checks so that we don't try to
3983 really support it. Also added checks so that we don't try to
3977 enable persist under Windows (where Gnuplot doesn't recognize the
3984 enable persist under Windows (where Gnuplot doesn't recognize the
3978 option).
3985 option).
3979
3986
3980 * IPython/iplib.py (InteractiveShell.interact): Added optional
3987 * IPython/iplib.py (InteractiveShell.interact): Added optional
3981 auto-indenting code, after a patch by King C. Shu
3988 auto-indenting code, after a patch by King C. Shu
3982 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3989 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3983 get along well with pasting indented code. If I ever figure out
3990 get along well with pasting indented code. If I ever figure out
3984 how to make that part go well, it will become on by default.
3991 how to make that part go well, it will become on by default.
3985
3992
3986 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3993 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3987 crash ipython if there was an unmatched '%' in the user's prompt
3994 crash ipython if there was an unmatched '%' in the user's prompt
3988 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3995 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3989
3996
3990 * IPython/iplib.py (InteractiveShell.interact): removed the
3997 * IPython/iplib.py (InteractiveShell.interact): removed the
3991 ability to ask the user whether he wants to crash or not at the
3998 ability to ask the user whether he wants to crash or not at the
3992 'last line' exception handler. Calling functions at that point
3999 'last line' exception handler. Calling functions at that point
3993 changes the stack, and the error reports would have incorrect
4000 changes the stack, and the error reports would have incorrect
3994 tracebacks.
4001 tracebacks.
3995
4002
3996 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4003 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3997 pass through a peger a pretty-printed form of any object. After a
4004 pass through a peger a pretty-printed form of any object. After a
3998 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4005 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3999
4006
4000 2003-04-14 Fernando Perez <fperez@colorado.edu>
4007 2003-04-14 Fernando Perez <fperez@colorado.edu>
4001
4008
4002 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4009 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4003 all files in ~ would be modified at first install (instead of
4010 all files in ~ would be modified at first install (instead of
4004 ~/.ipython). This could be potentially disastrous, as the
4011 ~/.ipython). This could be potentially disastrous, as the
4005 modification (make line-endings native) could damage binary files.
4012 modification (make line-endings native) could damage binary files.
4006
4013
4007 2003-04-10 Fernando Perez <fperez@colorado.edu>
4014 2003-04-10 Fernando Perez <fperez@colorado.edu>
4008
4015
4009 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4016 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4010 handle only lines which are invalid python. This now means that
4017 handle only lines which are invalid python. This now means that
4011 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4018 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4012 for the bug report.
4019 for the bug report.
4013
4020
4014 2003-04-01 Fernando Perez <fperez@colorado.edu>
4021 2003-04-01 Fernando Perez <fperez@colorado.edu>
4015
4022
4016 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4023 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4017 where failing to set sys.last_traceback would crash pdb.pm().
4024 where failing to set sys.last_traceback would crash pdb.pm().
4018 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4025 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4019 report.
4026 report.
4020
4027
4021 2003-03-25 Fernando Perez <fperez@colorado.edu>
4028 2003-03-25 Fernando Perez <fperez@colorado.edu>
4022
4029
4023 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4030 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4024 before printing it (it had a lot of spurious blank lines at the
4031 before printing it (it had a lot of spurious blank lines at the
4025 end).
4032 end).
4026
4033
4027 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4034 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4028 output would be sent 21 times! Obviously people don't use this
4035 output would be sent 21 times! Obviously people don't use this
4029 too often, or I would have heard about it.
4036 too often, or I would have heard about it.
4030
4037
4031 2003-03-24 Fernando Perez <fperez@colorado.edu>
4038 2003-03-24 Fernando Perez <fperez@colorado.edu>
4032
4039
4033 * setup.py (scriptfiles): renamed the data_files parameter from
4040 * setup.py (scriptfiles): renamed the data_files parameter from
4034 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4041 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4035 for the patch.
4042 for the patch.
4036
4043
4037 2003-03-20 Fernando Perez <fperez@colorado.edu>
4044 2003-03-20 Fernando Perez <fperez@colorado.edu>
4038
4045
4039 * IPython/genutils.py (error): added error() and fatal()
4046 * IPython/genutils.py (error): added error() and fatal()
4040 functions.
4047 functions.
4041
4048
4042 2003-03-18 *** Released version 0.2.15pre3
4049 2003-03-18 *** Released version 0.2.15pre3
4043
4050
4044 2003-03-18 Fernando Perez <fperez@colorado.edu>
4051 2003-03-18 Fernando Perez <fperez@colorado.edu>
4045
4052
4046 * setupext/install_data_ext.py
4053 * setupext/install_data_ext.py
4047 (install_data_ext.initialize_options): Class contributed by Jack
4054 (install_data_ext.initialize_options): Class contributed by Jack
4048 Moffit for fixing the old distutils hack. He is sending this to
4055 Moffit for fixing the old distutils hack. He is sending this to
4049 the distutils folks so in the future we may not need it as a
4056 the distutils folks so in the future we may not need it as a
4050 private fix.
4057 private fix.
4051
4058
4052 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4059 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4053 changes for Debian packaging. See his patch for full details.
4060 changes for Debian packaging. See his patch for full details.
4054 The old distutils hack of making the ipythonrc* files carry a
4061 The old distutils hack of making the ipythonrc* files carry a
4055 bogus .py extension is gone, at last. Examples were moved to a
4062 bogus .py extension is gone, at last. Examples were moved to a
4056 separate subdir under doc/, and the separate executable scripts
4063 separate subdir under doc/, and the separate executable scripts
4057 now live in their own directory. Overall a great cleanup. The
4064 now live in their own directory. Overall a great cleanup. The
4058 manual was updated to use the new files, and setup.py has been
4065 manual was updated to use the new files, and setup.py has been
4059 fixed for this setup.
4066 fixed for this setup.
4060
4067
4061 * IPython/PyColorize.py (Parser.usage): made non-executable and
4068 * IPython/PyColorize.py (Parser.usage): made non-executable and
4062 created a pycolor wrapper around it to be included as a script.
4069 created a pycolor wrapper around it to be included as a script.
4063
4070
4064 2003-03-12 *** Released version 0.2.15pre2
4071 2003-03-12 *** Released version 0.2.15pre2
4065
4072
4066 2003-03-12 Fernando Perez <fperez@colorado.edu>
4073 2003-03-12 Fernando Perez <fperez@colorado.edu>
4067
4074
4068 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4075 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4069 long-standing problem with garbage characters in some terminals.
4076 long-standing problem with garbage characters in some terminals.
4070 The issue was really that the \001 and \002 escapes must _only_ be
4077 The issue was really that the \001 and \002 escapes must _only_ be
4071 passed to input prompts (which call readline), but _never_ to
4078 passed to input prompts (which call readline), but _never_ to
4072 normal text to be printed on screen. I changed ColorANSI to have
4079 normal text to be printed on screen. I changed ColorANSI to have
4073 two classes: TermColors and InputTermColors, each with the
4080 two classes: TermColors and InputTermColors, each with the
4074 appropriate escapes for input prompts or normal text. The code in
4081 appropriate escapes for input prompts or normal text. The code in
4075 Prompts.py got slightly more complicated, but this very old and
4082 Prompts.py got slightly more complicated, but this very old and
4076 annoying bug is finally fixed.
4083 annoying bug is finally fixed.
4077
4084
4078 All the credit for nailing down the real origin of this problem
4085 All the credit for nailing down the real origin of this problem
4079 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4086 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4080 *Many* thanks to him for spending quite a bit of effort on this.
4087 *Many* thanks to him for spending quite a bit of effort on this.
4081
4088
4082 2003-03-05 *** Released version 0.2.15pre1
4089 2003-03-05 *** Released version 0.2.15pre1
4083
4090
4084 2003-03-03 Fernando Perez <fperez@colorado.edu>
4091 2003-03-03 Fernando Perez <fperez@colorado.edu>
4085
4092
4086 * IPython/FakeModule.py: Moved the former _FakeModule to a
4093 * IPython/FakeModule.py: Moved the former _FakeModule to a
4087 separate file, because it's also needed by Magic (to fix a similar
4094 separate file, because it's also needed by Magic (to fix a similar
4088 pickle-related issue in @run).
4095 pickle-related issue in @run).
4089
4096
4090 2003-03-02 Fernando Perez <fperez@colorado.edu>
4097 2003-03-02 Fernando Perez <fperez@colorado.edu>
4091
4098
4092 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4099 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4093 the autocall option at runtime.
4100 the autocall option at runtime.
4094 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4101 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4095 across Magic.py to start separating Magic from InteractiveShell.
4102 across Magic.py to start separating Magic from InteractiveShell.
4096 (Magic._ofind): Fixed to return proper namespace for dotted
4103 (Magic._ofind): Fixed to return proper namespace for dotted
4097 names. Before, a dotted name would always return 'not currently
4104 names. Before, a dotted name would always return 'not currently
4098 defined', because it would find the 'parent'. s.x would be found,
4105 defined', because it would find the 'parent'. s.x would be found,
4099 but since 'x' isn't defined by itself, it would get confused.
4106 but since 'x' isn't defined by itself, it would get confused.
4100 (Magic.magic_run): Fixed pickling problems reported by Ralf
4107 (Magic.magic_run): Fixed pickling problems reported by Ralf
4101 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4108 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4102 that I'd used when Mike Heeter reported similar issues at the
4109 that I'd used when Mike Heeter reported similar issues at the
4103 top-level, but now for @run. It boils down to injecting the
4110 top-level, but now for @run. It boils down to injecting the
4104 namespace where code is being executed with something that looks
4111 namespace where code is being executed with something that looks
4105 enough like a module to fool pickle.dump(). Since a pickle stores
4112 enough like a module to fool pickle.dump(). Since a pickle stores
4106 a named reference to the importing module, we need this for
4113 a named reference to the importing module, we need this for
4107 pickles to save something sensible.
4114 pickles to save something sensible.
4108
4115
4109 * IPython/ipmaker.py (make_IPython): added an autocall option.
4116 * IPython/ipmaker.py (make_IPython): added an autocall option.
4110
4117
4111 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4118 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4112 the auto-eval code. Now autocalling is an option, and the code is
4119 the auto-eval code. Now autocalling is an option, and the code is
4113 also vastly safer. There is no more eval() involved at all.
4120 also vastly safer. There is no more eval() involved at all.
4114
4121
4115 2003-03-01 Fernando Perez <fperez@colorado.edu>
4122 2003-03-01 Fernando Perez <fperez@colorado.edu>
4116
4123
4117 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4124 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4118 dict with named keys instead of a tuple.
4125 dict with named keys instead of a tuple.
4119
4126
4120 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4127 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4121
4128
4122 * setup.py (make_shortcut): Fixed message about directories
4129 * setup.py (make_shortcut): Fixed message about directories
4123 created during Windows installation (the directories were ok, just
4130 created during Windows installation (the directories were ok, just
4124 the printed message was misleading). Thanks to Chris Liechti
4131 the printed message was misleading). Thanks to Chris Liechti
4125 <cliechti-AT-gmx.net> for the heads up.
4132 <cliechti-AT-gmx.net> for the heads up.
4126
4133
4127 2003-02-21 Fernando Perez <fperez@colorado.edu>
4134 2003-02-21 Fernando Perez <fperez@colorado.edu>
4128
4135
4129 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4136 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4130 of ValueError exception when checking for auto-execution. This
4137 of ValueError exception when checking for auto-execution. This
4131 one is raised by things like Numeric arrays arr.flat when the
4138 one is raised by things like Numeric arrays arr.flat when the
4132 array is non-contiguous.
4139 array is non-contiguous.
4133
4140
4134 2003-01-31 Fernando Perez <fperez@colorado.edu>
4141 2003-01-31 Fernando Perez <fperez@colorado.edu>
4135
4142
4136 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4143 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4137 not return any value at all (even though the command would get
4144 not return any value at all (even though the command would get
4138 executed).
4145 executed).
4139 (xsys): Flush stdout right after printing the command to ensure
4146 (xsys): Flush stdout right after printing the command to ensure
4140 proper ordering of commands and command output in the total
4147 proper ordering of commands and command output in the total
4141 output.
4148 output.
4142 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4149 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4143 system/getoutput as defaults. The old ones are kept for
4150 system/getoutput as defaults. The old ones are kept for
4144 compatibility reasons, so no code which uses this library needs
4151 compatibility reasons, so no code which uses this library needs
4145 changing.
4152 changing.
4146
4153
4147 2003-01-27 *** Released version 0.2.14
4154 2003-01-27 *** Released version 0.2.14
4148
4155
4149 2003-01-25 Fernando Perez <fperez@colorado.edu>
4156 2003-01-25 Fernando Perez <fperez@colorado.edu>
4150
4157
4151 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4158 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4152 functions defined in previous edit sessions could not be re-edited
4159 functions defined in previous edit sessions could not be re-edited
4153 (because the temp files were immediately removed). Now temp files
4160 (because the temp files were immediately removed). Now temp files
4154 are removed only at IPython's exit.
4161 are removed only at IPython's exit.
4155 (Magic.magic_run): Improved @run to perform shell-like expansions
4162 (Magic.magic_run): Improved @run to perform shell-like expansions
4156 on its arguments (~users and $VARS). With this, @run becomes more
4163 on its arguments (~users and $VARS). With this, @run becomes more
4157 like a normal command-line.
4164 like a normal command-line.
4158
4165
4159 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4166 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4160 bugs related to embedding and cleaned up that code. A fairly
4167 bugs related to embedding and cleaned up that code. A fairly
4161 important one was the impossibility to access the global namespace
4168 important one was the impossibility to access the global namespace
4162 through the embedded IPython (only local variables were visible).
4169 through the embedded IPython (only local variables were visible).
4163
4170
4164 2003-01-14 Fernando Perez <fperez@colorado.edu>
4171 2003-01-14 Fernando Perez <fperez@colorado.edu>
4165
4172
4166 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4173 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4167 auto-calling to be a bit more conservative. Now it doesn't get
4174 auto-calling to be a bit more conservative. Now it doesn't get
4168 triggered if any of '!=()<>' are in the rest of the input line, to
4175 triggered if any of '!=()<>' are in the rest of the input line, to
4169 allow comparing callables. Thanks to Alex for the heads up.
4176 allow comparing callables. Thanks to Alex for the heads up.
4170
4177
4171 2003-01-07 Fernando Perez <fperez@colorado.edu>
4178 2003-01-07 Fernando Perez <fperez@colorado.edu>
4172
4179
4173 * IPython/genutils.py (page): fixed estimation of the number of
4180 * IPython/genutils.py (page): fixed estimation of the number of
4174 lines in a string to be paged to simply count newlines. This
4181 lines in a string to be paged to simply count newlines. This
4175 prevents over-guessing due to embedded escape sequences. A better
4182 prevents over-guessing due to embedded escape sequences. A better
4176 long-term solution would involve stripping out the control chars
4183 long-term solution would involve stripping out the control chars
4177 for the count, but it's potentially so expensive I just don't
4184 for the count, but it's potentially so expensive I just don't
4178 think it's worth doing.
4185 think it's worth doing.
4179
4186
4180 2002-12-19 *** Released version 0.2.14pre50
4187 2002-12-19 *** Released version 0.2.14pre50
4181
4188
4182 2002-12-19 Fernando Perez <fperez@colorado.edu>
4189 2002-12-19 Fernando Perez <fperez@colorado.edu>
4183
4190
4184 * tools/release (version): Changed release scripts to inform
4191 * tools/release (version): Changed release scripts to inform
4185 Andrea and build a NEWS file with a list of recent changes.
4192 Andrea and build a NEWS file with a list of recent changes.
4186
4193
4187 * IPython/ColorANSI.py (__all__): changed terminal detection
4194 * IPython/ColorANSI.py (__all__): changed terminal detection
4188 code. Seems to work better for xterms without breaking
4195 code. Seems to work better for xterms without breaking
4189 konsole. Will need more testing to determine if WinXP and Mac OSX
4196 konsole. Will need more testing to determine if WinXP and Mac OSX
4190 also work ok.
4197 also work ok.
4191
4198
4192 2002-12-18 *** Released version 0.2.14pre49
4199 2002-12-18 *** Released version 0.2.14pre49
4193
4200
4194 2002-12-18 Fernando Perez <fperez@colorado.edu>
4201 2002-12-18 Fernando Perez <fperez@colorado.edu>
4195
4202
4196 * Docs: added new info about Mac OSX, from Andrea.
4203 * Docs: added new info about Mac OSX, from Andrea.
4197
4204
4198 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4205 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4199 allow direct plotting of python strings whose format is the same
4206 allow direct plotting of python strings whose format is the same
4200 of gnuplot data files.
4207 of gnuplot data files.
4201
4208
4202 2002-12-16 Fernando Perez <fperez@colorado.edu>
4209 2002-12-16 Fernando Perez <fperez@colorado.edu>
4203
4210
4204 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4211 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4205 value of exit question to be acknowledged.
4212 value of exit question to be acknowledged.
4206
4213
4207 2002-12-03 Fernando Perez <fperez@colorado.edu>
4214 2002-12-03 Fernando Perez <fperez@colorado.edu>
4208
4215
4209 * IPython/ipmaker.py: removed generators, which had been added
4216 * IPython/ipmaker.py: removed generators, which had been added
4210 by mistake in an earlier debugging run. This was causing trouble
4217 by mistake in an earlier debugging run. This was causing trouble
4211 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4218 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4212 for pointing this out.
4219 for pointing this out.
4213
4220
4214 2002-11-17 Fernando Perez <fperez@colorado.edu>
4221 2002-11-17 Fernando Perez <fperez@colorado.edu>
4215
4222
4216 * Manual: updated the Gnuplot section.
4223 * Manual: updated the Gnuplot section.
4217
4224
4218 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4225 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4219 a much better split of what goes in Runtime and what goes in
4226 a much better split of what goes in Runtime and what goes in
4220 Interactive.
4227 Interactive.
4221
4228
4222 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4229 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4223 being imported from iplib.
4230 being imported from iplib.
4224
4231
4225 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4232 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4226 for command-passing. Now the global Gnuplot instance is called
4233 for command-passing. Now the global Gnuplot instance is called
4227 'gp' instead of 'g', which was really a far too fragile and
4234 'gp' instead of 'g', which was really a far too fragile and
4228 common name.
4235 common name.
4229
4236
4230 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4237 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4231 bounding boxes generated by Gnuplot for square plots.
4238 bounding boxes generated by Gnuplot for square plots.
4232
4239
4233 * IPython/genutils.py (popkey): new function added. I should
4240 * IPython/genutils.py (popkey): new function added. I should
4234 suggest this on c.l.py as a dict method, it seems useful.
4241 suggest this on c.l.py as a dict method, it seems useful.
4235
4242
4236 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4243 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4237 to transparently handle PostScript generation. MUCH better than
4244 to transparently handle PostScript generation. MUCH better than
4238 the previous plot_eps/replot_eps (which I removed now). The code
4245 the previous plot_eps/replot_eps (which I removed now). The code
4239 is also fairly clean and well documented now (including
4246 is also fairly clean and well documented now (including
4240 docstrings).
4247 docstrings).
4241
4248
4242 2002-11-13 Fernando Perez <fperez@colorado.edu>
4249 2002-11-13 Fernando Perez <fperez@colorado.edu>
4243
4250
4244 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4251 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4245 (inconsistent with options).
4252 (inconsistent with options).
4246
4253
4247 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4254 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4248 manually disabled, I don't know why. Fixed it.
4255 manually disabled, I don't know why. Fixed it.
4249 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4256 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4250 eps output.
4257 eps output.
4251
4258
4252 2002-11-12 Fernando Perez <fperez@colorado.edu>
4259 2002-11-12 Fernando Perez <fperez@colorado.edu>
4253
4260
4254 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4261 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4255 don't propagate up to caller. Fixes crash reported by François
4262 don't propagate up to caller. Fixes crash reported by François
4256 Pinard.
4263 Pinard.
4257
4264
4258 2002-11-09 Fernando Perez <fperez@colorado.edu>
4265 2002-11-09 Fernando Perez <fperez@colorado.edu>
4259
4266
4260 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4267 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4261 history file for new users.
4268 history file for new users.
4262 (make_IPython): fixed bug where initial install would leave the
4269 (make_IPython): fixed bug where initial install would leave the
4263 user running in the .ipython dir.
4270 user running in the .ipython dir.
4264 (make_IPython): fixed bug where config dir .ipython would be
4271 (make_IPython): fixed bug where config dir .ipython would be
4265 created regardless of the given -ipythondir option. Thanks to Cory
4272 created regardless of the given -ipythondir option. Thanks to Cory
4266 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4273 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4267
4274
4268 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4275 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4269 type confirmations. Will need to use it in all of IPython's code
4276 type confirmations. Will need to use it in all of IPython's code
4270 consistently.
4277 consistently.
4271
4278
4272 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4279 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4273 context to print 31 lines instead of the default 5. This will make
4280 context to print 31 lines instead of the default 5. This will make
4274 the crash reports extremely detailed in case the problem is in
4281 the crash reports extremely detailed in case the problem is in
4275 libraries I don't have access to.
4282 libraries I don't have access to.
4276
4283
4277 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4284 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4278 line of defense' code to still crash, but giving users fair
4285 line of defense' code to still crash, but giving users fair
4279 warning. I don't want internal errors to go unreported: if there's
4286 warning. I don't want internal errors to go unreported: if there's
4280 an internal problem, IPython should crash and generate a full
4287 an internal problem, IPython should crash and generate a full
4281 report.
4288 report.
4282
4289
4283 2002-11-08 Fernando Perez <fperez@colorado.edu>
4290 2002-11-08 Fernando Perez <fperez@colorado.edu>
4284
4291
4285 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4292 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4286 otherwise uncaught exceptions which can appear if people set
4293 otherwise uncaught exceptions which can appear if people set
4287 sys.stdout to something badly broken. Thanks to a crash report
4294 sys.stdout to something badly broken. Thanks to a crash report
4288 from henni-AT-mail.brainbot.com.
4295 from henni-AT-mail.brainbot.com.
4289
4296
4290 2002-11-04 Fernando Perez <fperez@colorado.edu>
4297 2002-11-04 Fernando Perez <fperez@colorado.edu>
4291
4298
4292 * IPython/iplib.py (InteractiveShell.interact): added
4299 * IPython/iplib.py (InteractiveShell.interact): added
4293 __IPYTHON__active to the builtins. It's a flag which goes on when
4300 __IPYTHON__active to the builtins. It's a flag which goes on when
4294 the interaction starts and goes off again when it stops. This
4301 the interaction starts and goes off again when it stops. This
4295 allows embedding code to detect being inside IPython. Before this
4302 allows embedding code to detect being inside IPython. Before this
4296 was done via __IPYTHON__, but that only shows that an IPython
4303 was done via __IPYTHON__, but that only shows that an IPython
4297 instance has been created.
4304 instance has been created.
4298
4305
4299 * IPython/Magic.py (Magic.magic_env): I realized that in a
4306 * IPython/Magic.py (Magic.magic_env): I realized that in a
4300 UserDict, instance.data holds the data as a normal dict. So I
4307 UserDict, instance.data holds the data as a normal dict. So I
4301 modified @env to return os.environ.data instead of rebuilding a
4308 modified @env to return os.environ.data instead of rebuilding a
4302 dict by hand.
4309 dict by hand.
4303
4310
4304 2002-11-02 Fernando Perez <fperez@colorado.edu>
4311 2002-11-02 Fernando Perez <fperez@colorado.edu>
4305
4312
4306 * IPython/genutils.py (warn): changed so that level 1 prints no
4313 * IPython/genutils.py (warn): changed so that level 1 prints no
4307 header. Level 2 is now the default (with 'WARNING' header, as
4314 header. Level 2 is now the default (with 'WARNING' header, as
4308 before). I think I tracked all places where changes were needed in
4315 before). I think I tracked all places where changes were needed in
4309 IPython, but outside code using the old level numbering may have
4316 IPython, but outside code using the old level numbering may have
4310 broken.
4317 broken.
4311
4318
4312 * IPython/iplib.py (InteractiveShell.runcode): added this to
4319 * IPython/iplib.py (InteractiveShell.runcode): added this to
4313 handle the tracebacks in SystemExit traps correctly. The previous
4320 handle the tracebacks in SystemExit traps correctly. The previous
4314 code (through interact) was printing more of the stack than
4321 code (through interact) was printing more of the stack than
4315 necessary, showing IPython internal code to the user.
4322 necessary, showing IPython internal code to the user.
4316
4323
4317 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4324 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4318 default. Now that the default at the confirmation prompt is yes,
4325 default. Now that the default at the confirmation prompt is yes,
4319 it's not so intrusive. François' argument that ipython sessions
4326 it's not so intrusive. François' argument that ipython sessions
4320 tend to be complex enough not to lose them from an accidental C-d,
4327 tend to be complex enough not to lose them from an accidental C-d,
4321 is a valid one.
4328 is a valid one.
4322
4329
4323 * IPython/iplib.py (InteractiveShell.interact): added a
4330 * IPython/iplib.py (InteractiveShell.interact): added a
4324 showtraceback() call to the SystemExit trap, and modified the exit
4331 showtraceback() call to the SystemExit trap, and modified the exit
4325 confirmation to have yes as the default.
4332 confirmation to have yes as the default.
4326
4333
4327 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4334 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4328 this file. It's been gone from the code for a long time, this was
4335 this file. It's been gone from the code for a long time, this was
4329 simply leftover junk.
4336 simply leftover junk.
4330
4337
4331 2002-11-01 Fernando Perez <fperez@colorado.edu>
4338 2002-11-01 Fernando Perez <fperez@colorado.edu>
4332
4339
4333 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4340 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4334 added. If set, IPython now traps EOF and asks for
4341 added. If set, IPython now traps EOF and asks for
4335 confirmation. After a request by François Pinard.
4342 confirmation. After a request by François Pinard.
4336
4343
4337 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4344 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4338 of @abort, and with a new (better) mechanism for handling the
4345 of @abort, and with a new (better) mechanism for handling the
4339 exceptions.
4346 exceptions.
4340
4347
4341 2002-10-27 Fernando Perez <fperez@colorado.edu>
4348 2002-10-27 Fernando Perez <fperez@colorado.edu>
4342
4349
4343 * IPython/usage.py (__doc__): updated the --help information and
4350 * IPython/usage.py (__doc__): updated the --help information and
4344 the ipythonrc file to indicate that -log generates
4351 the ipythonrc file to indicate that -log generates
4345 ./ipython.log. Also fixed the corresponding info in @logstart.
4352 ./ipython.log. Also fixed the corresponding info in @logstart.
4346 This and several other fixes in the manuals thanks to reports by
4353 This and several other fixes in the manuals thanks to reports by
4347 François Pinard <pinard-AT-iro.umontreal.ca>.
4354 François Pinard <pinard-AT-iro.umontreal.ca>.
4348
4355
4349 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4356 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4350 refer to @logstart (instead of @log, which doesn't exist).
4357 refer to @logstart (instead of @log, which doesn't exist).
4351
4358
4352 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4359 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4353 AttributeError crash. Thanks to Christopher Armstrong
4360 AttributeError crash. Thanks to Christopher Armstrong
4354 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4361 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4355 introduced recently (in 0.2.14pre37) with the fix to the eval
4362 introduced recently (in 0.2.14pre37) with the fix to the eval
4356 problem mentioned below.
4363 problem mentioned below.
4357
4364
4358 2002-10-17 Fernando Perez <fperez@colorado.edu>
4365 2002-10-17 Fernando Perez <fperez@colorado.edu>
4359
4366
4360 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4367 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4361 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4368 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4362
4369
4363 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4370 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4364 this function to fix a problem reported by Alex Schmolck. He saw
4371 this function to fix a problem reported by Alex Schmolck. He saw
4365 it with list comprehensions and generators, which were getting
4372 it with list comprehensions and generators, which were getting
4366 called twice. The real problem was an 'eval' call in testing for
4373 called twice. The real problem was an 'eval' call in testing for
4367 automagic which was evaluating the input line silently.
4374 automagic which was evaluating the input line silently.
4368
4375
4369 This is a potentially very nasty bug, if the input has side
4376 This is a potentially very nasty bug, if the input has side
4370 effects which must not be repeated. The code is much cleaner now,
4377 effects which must not be repeated. The code is much cleaner now,
4371 without any blanket 'except' left and with a regexp test for
4378 without any blanket 'except' left and with a regexp test for
4372 actual function names.
4379 actual function names.
4373
4380
4374 But an eval remains, which I'm not fully comfortable with. I just
4381 But an eval remains, which I'm not fully comfortable with. I just
4375 don't know how to find out if an expression could be a callable in
4382 don't know how to find out if an expression could be a callable in
4376 the user's namespace without doing an eval on the string. However
4383 the user's namespace without doing an eval on the string. However
4377 that string is now much more strictly checked so that no code
4384 that string is now much more strictly checked so that no code
4378 slips by, so the eval should only happen for things that can
4385 slips by, so the eval should only happen for things that can
4379 really be only function/method names.
4386 really be only function/method names.
4380
4387
4381 2002-10-15 Fernando Perez <fperez@colorado.edu>
4388 2002-10-15 Fernando Perez <fperez@colorado.edu>
4382
4389
4383 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4390 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4384 OSX information to main manual, removed README_Mac_OSX file from
4391 OSX information to main manual, removed README_Mac_OSX file from
4385 distribution. Also updated credits for recent additions.
4392 distribution. Also updated credits for recent additions.
4386
4393
4387 2002-10-10 Fernando Perez <fperez@colorado.edu>
4394 2002-10-10 Fernando Perez <fperez@colorado.edu>
4388
4395
4389 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4396 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4390 terminal-related issues. Many thanks to Andrea Riciputi
4397 terminal-related issues. Many thanks to Andrea Riciputi
4391 <andrea.riciputi-AT-libero.it> for writing it.
4398 <andrea.riciputi-AT-libero.it> for writing it.
4392
4399
4393 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4400 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4394 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4401 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4395
4402
4396 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4403 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4397 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4404 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4398 <syver-en-AT-online.no> who both submitted patches for this problem.
4405 <syver-en-AT-online.no> who both submitted patches for this problem.
4399
4406
4400 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4407 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4401 global embedding to make sure that things don't overwrite user
4408 global embedding to make sure that things don't overwrite user
4402 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4409 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4403
4410
4404 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4411 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4405 compatibility. Thanks to Hayden Callow
4412 compatibility. Thanks to Hayden Callow
4406 <h.callow-AT-elec.canterbury.ac.nz>
4413 <h.callow-AT-elec.canterbury.ac.nz>
4407
4414
4408 2002-10-04 Fernando Perez <fperez@colorado.edu>
4415 2002-10-04 Fernando Perez <fperez@colorado.edu>
4409
4416
4410 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4417 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4411 Gnuplot.File objects.
4418 Gnuplot.File objects.
4412
4419
4413 2002-07-23 Fernando Perez <fperez@colorado.edu>
4420 2002-07-23 Fernando Perez <fperez@colorado.edu>
4414
4421
4415 * IPython/genutils.py (timing): Added timings() and timing() for
4422 * IPython/genutils.py (timing): Added timings() and timing() for
4416 quick access to the most commonly needed data, the execution
4423 quick access to the most commonly needed data, the execution
4417 times. Old timing() renamed to timings_out().
4424 times. Old timing() renamed to timings_out().
4418
4425
4419 2002-07-18 Fernando Perez <fperez@colorado.edu>
4426 2002-07-18 Fernando Perez <fperez@colorado.edu>
4420
4427
4421 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4428 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4422 bug with nested instances disrupting the parent's tab completion.
4429 bug with nested instances disrupting the parent's tab completion.
4423
4430
4424 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4431 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4425 all_completions code to begin the emacs integration.
4432 all_completions code to begin the emacs integration.
4426
4433
4427 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4434 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4428 argument to allow titling individual arrays when plotting.
4435 argument to allow titling individual arrays when plotting.
4429
4436
4430 2002-07-15 Fernando Perez <fperez@colorado.edu>
4437 2002-07-15 Fernando Perez <fperez@colorado.edu>
4431
4438
4432 * setup.py (make_shortcut): changed to retrieve the value of
4439 * setup.py (make_shortcut): changed to retrieve the value of
4433 'Program Files' directory from the registry (this value changes in
4440 'Program Files' directory from the registry (this value changes in
4434 non-english versions of Windows). Thanks to Thomas Fanslau
4441 non-english versions of Windows). Thanks to Thomas Fanslau
4435 <tfanslau-AT-gmx.de> for the report.
4442 <tfanslau-AT-gmx.de> for the report.
4436
4443
4437 2002-07-10 Fernando Perez <fperez@colorado.edu>
4444 2002-07-10 Fernando Perez <fperez@colorado.edu>
4438
4445
4439 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4446 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4440 a bug in pdb, which crashes if a line with only whitespace is
4447 a bug in pdb, which crashes if a line with only whitespace is
4441 entered. Bug report submitted to sourceforge.
4448 entered. Bug report submitted to sourceforge.
4442
4449
4443 2002-07-09 Fernando Perez <fperez@colorado.edu>
4450 2002-07-09 Fernando Perez <fperez@colorado.edu>
4444
4451
4445 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4452 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4446 reporting exceptions (it's a bug in inspect.py, I just set a
4453 reporting exceptions (it's a bug in inspect.py, I just set a
4447 workaround).
4454 workaround).
4448
4455
4449 2002-07-08 Fernando Perez <fperez@colorado.edu>
4456 2002-07-08 Fernando Perez <fperez@colorado.edu>
4450
4457
4451 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4458 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4452 __IPYTHON__ in __builtins__ to show up in user_ns.
4459 __IPYTHON__ in __builtins__ to show up in user_ns.
4453
4460
4454 2002-07-03 Fernando Perez <fperez@colorado.edu>
4461 2002-07-03 Fernando Perez <fperez@colorado.edu>
4455
4462
4456 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4463 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4457 name from @gp_set_instance to @gp_set_default.
4464 name from @gp_set_instance to @gp_set_default.
4458
4465
4459 * IPython/ipmaker.py (make_IPython): default editor value set to
4466 * IPython/ipmaker.py (make_IPython): default editor value set to
4460 '0' (a string), to match the rc file. Otherwise will crash when
4467 '0' (a string), to match the rc file. Otherwise will crash when
4461 .strip() is called on it.
4468 .strip() is called on it.
4462
4469
4463
4470
4464 2002-06-28 Fernando Perez <fperez@colorado.edu>
4471 2002-06-28 Fernando Perez <fperez@colorado.edu>
4465
4472
4466 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4473 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4467 of files in current directory when a file is executed via
4474 of files in current directory when a file is executed via
4468 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4475 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4469
4476
4470 * setup.py (manfiles): fix for rpm builds, submitted by RA
4477 * setup.py (manfiles): fix for rpm builds, submitted by RA
4471 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4478 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4472
4479
4473 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4480 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4474 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4481 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4475 string!). A. Schmolck caught this one.
4482 string!). A. Schmolck caught this one.
4476
4483
4477 2002-06-27 Fernando Perez <fperez@colorado.edu>
4484 2002-06-27 Fernando Perez <fperez@colorado.edu>
4478
4485
4479 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4486 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4480 defined files at the cmd line. __name__ wasn't being set to
4487 defined files at the cmd line. __name__ wasn't being set to
4481 __main__.
4488 __main__.
4482
4489
4483 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4490 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4484 regular lists and tuples besides Numeric arrays.
4491 regular lists and tuples besides Numeric arrays.
4485
4492
4486 * IPython/Prompts.py (CachedOutput.__call__): Added output
4493 * IPython/Prompts.py (CachedOutput.__call__): Added output
4487 supression for input ending with ';'. Similar to Mathematica and
4494 supression for input ending with ';'. Similar to Mathematica and
4488 Matlab. The _* vars and Out[] list are still updated, just like
4495 Matlab. The _* vars and Out[] list are still updated, just like
4489 Mathematica behaves.
4496 Mathematica behaves.
4490
4497
4491 2002-06-25 Fernando Perez <fperez@colorado.edu>
4498 2002-06-25 Fernando Perez <fperez@colorado.edu>
4492
4499
4493 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4500 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4494 .ini extensions for profiels under Windows.
4501 .ini extensions for profiels under Windows.
4495
4502
4496 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4503 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4497 string form. Fix contributed by Alexander Schmolck
4504 string form. Fix contributed by Alexander Schmolck
4498 <a.schmolck-AT-gmx.net>
4505 <a.schmolck-AT-gmx.net>
4499
4506
4500 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4507 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4501 pre-configured Gnuplot instance.
4508 pre-configured Gnuplot instance.
4502
4509
4503 2002-06-21 Fernando Perez <fperez@colorado.edu>
4510 2002-06-21 Fernando Perez <fperez@colorado.edu>
4504
4511
4505 * IPython/numutils.py (exp_safe): new function, works around the
4512 * IPython/numutils.py (exp_safe): new function, works around the
4506 underflow problems in Numeric.
4513 underflow problems in Numeric.
4507 (log2): New fn. Safe log in base 2: returns exact integer answer
4514 (log2): New fn. Safe log in base 2: returns exact integer answer
4508 for exact integer powers of 2.
4515 for exact integer powers of 2.
4509
4516
4510 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4517 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4511 properly.
4518 properly.
4512
4519
4513 2002-06-20 Fernando Perez <fperez@colorado.edu>
4520 2002-06-20 Fernando Perez <fperez@colorado.edu>
4514
4521
4515 * IPython/genutils.py (timing): new function like
4522 * IPython/genutils.py (timing): new function like
4516 Mathematica's. Similar to time_test, but returns more info.
4523 Mathematica's. Similar to time_test, but returns more info.
4517
4524
4518 2002-06-18 Fernando Perez <fperez@colorado.edu>
4525 2002-06-18 Fernando Perez <fperez@colorado.edu>
4519
4526
4520 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4527 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4521 according to Mike Heeter's suggestions.
4528 according to Mike Heeter's suggestions.
4522
4529
4523 2002-06-16 Fernando Perez <fperez@colorado.edu>
4530 2002-06-16 Fernando Perez <fperez@colorado.edu>
4524
4531
4525 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4532 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4526 system. GnuplotMagic is gone as a user-directory option. New files
4533 system. GnuplotMagic is gone as a user-directory option. New files
4527 make it easier to use all the gnuplot stuff both from external
4534 make it easier to use all the gnuplot stuff both from external
4528 programs as well as from IPython. Had to rewrite part of
4535 programs as well as from IPython. Had to rewrite part of
4529 hardcopy() b/c of a strange bug: often the ps files simply don't
4536 hardcopy() b/c of a strange bug: often the ps files simply don't
4530 get created, and require a repeat of the command (often several
4537 get created, and require a repeat of the command (often several
4531 times).
4538 times).
4532
4539
4533 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4540 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4534 resolve output channel at call time, so that if sys.stderr has
4541 resolve output channel at call time, so that if sys.stderr has
4535 been redirected by user this gets honored.
4542 been redirected by user this gets honored.
4536
4543
4537 2002-06-13 Fernando Perez <fperez@colorado.edu>
4544 2002-06-13 Fernando Perez <fperez@colorado.edu>
4538
4545
4539 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4546 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4540 IPShell. Kept a copy with the old names to avoid breaking people's
4547 IPShell. Kept a copy with the old names to avoid breaking people's
4541 embedded code.
4548 embedded code.
4542
4549
4543 * IPython/ipython: simplified it to the bare minimum after
4550 * IPython/ipython: simplified it to the bare minimum after
4544 Holger's suggestions. Added info about how to use it in
4551 Holger's suggestions. Added info about how to use it in
4545 PYTHONSTARTUP.
4552 PYTHONSTARTUP.
4546
4553
4547 * IPython/Shell.py (IPythonShell): changed the options passing
4554 * IPython/Shell.py (IPythonShell): changed the options passing
4548 from a string with funky %s replacements to a straight list. Maybe
4555 from a string with funky %s replacements to a straight list. Maybe
4549 a bit more typing, but it follows sys.argv conventions, so there's
4556 a bit more typing, but it follows sys.argv conventions, so there's
4550 less special-casing to remember.
4557 less special-casing to remember.
4551
4558
4552 2002-06-12 Fernando Perez <fperez@colorado.edu>
4559 2002-06-12 Fernando Perez <fperez@colorado.edu>
4553
4560
4554 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4561 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4555 command. Thanks to a suggestion by Mike Heeter.
4562 command. Thanks to a suggestion by Mike Heeter.
4556 (Magic.magic_pfile): added behavior to look at filenames if given
4563 (Magic.magic_pfile): added behavior to look at filenames if given
4557 arg is not a defined object.
4564 arg is not a defined object.
4558 (Magic.magic_save): New @save function to save code snippets. Also
4565 (Magic.magic_save): New @save function to save code snippets. Also
4559 a Mike Heeter idea.
4566 a Mike Heeter idea.
4560
4567
4561 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4568 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4562 plot() and replot(). Much more convenient now, especially for
4569 plot() and replot(). Much more convenient now, especially for
4563 interactive use.
4570 interactive use.
4564
4571
4565 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4572 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4566 filenames.
4573 filenames.
4567
4574
4568 2002-06-02 Fernando Perez <fperez@colorado.edu>
4575 2002-06-02 Fernando Perez <fperez@colorado.edu>
4569
4576
4570 * IPython/Struct.py (Struct.__init__): modified to admit
4577 * IPython/Struct.py (Struct.__init__): modified to admit
4571 initialization via another struct.
4578 initialization via another struct.
4572
4579
4573 * IPython/genutils.py (SystemExec.__init__): New stateful
4580 * IPython/genutils.py (SystemExec.__init__): New stateful
4574 interface to xsys and bq. Useful for writing system scripts.
4581 interface to xsys and bq. Useful for writing system scripts.
4575
4582
4576 2002-05-30 Fernando Perez <fperez@colorado.edu>
4583 2002-05-30 Fernando Perez <fperez@colorado.edu>
4577
4584
4578 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4585 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4579 documents. This will make the user download smaller (it's getting
4586 documents. This will make the user download smaller (it's getting
4580 too big).
4587 too big).
4581
4588
4582 2002-05-29 Fernando Perez <fperez@colorado.edu>
4589 2002-05-29 Fernando Perez <fperez@colorado.edu>
4583
4590
4584 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4591 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4585 fix problems with shelve and pickle. Seems to work, but I don't
4592 fix problems with shelve and pickle. Seems to work, but I don't
4586 know if corner cases break it. Thanks to Mike Heeter
4593 know if corner cases break it. Thanks to Mike Heeter
4587 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4594 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4588
4595
4589 2002-05-24 Fernando Perez <fperez@colorado.edu>
4596 2002-05-24 Fernando Perez <fperez@colorado.edu>
4590
4597
4591 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4598 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4592 macros having broken.
4599 macros having broken.
4593
4600
4594 2002-05-21 Fernando Perez <fperez@colorado.edu>
4601 2002-05-21 Fernando Perez <fperez@colorado.edu>
4595
4602
4596 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4603 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4597 introduced logging bug: all history before logging started was
4604 introduced logging bug: all history before logging started was
4598 being written one character per line! This came from the redesign
4605 being written one character per line! This came from the redesign
4599 of the input history as a special list which slices to strings,
4606 of the input history as a special list which slices to strings,
4600 not to lists.
4607 not to lists.
4601
4608
4602 2002-05-20 Fernando Perez <fperez@colorado.edu>
4609 2002-05-20 Fernando Perez <fperez@colorado.edu>
4603
4610
4604 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4611 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4605 be an attribute of all classes in this module. The design of these
4612 be an attribute of all classes in this module. The design of these
4606 classes needs some serious overhauling.
4613 classes needs some serious overhauling.
4607
4614
4608 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4615 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4609 which was ignoring '_' in option names.
4616 which was ignoring '_' in option names.
4610
4617
4611 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4618 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4612 'Verbose_novars' to 'Context' and made it the new default. It's a
4619 'Verbose_novars' to 'Context' and made it the new default. It's a
4613 bit more readable and also safer than verbose.
4620 bit more readable and also safer than verbose.
4614
4621
4615 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4622 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4616 triple-quoted strings.
4623 triple-quoted strings.
4617
4624
4618 * IPython/OInspect.py (__all__): new module exposing the object
4625 * IPython/OInspect.py (__all__): new module exposing the object
4619 introspection facilities. Now the corresponding magics are dummy
4626 introspection facilities. Now the corresponding magics are dummy
4620 wrappers around this. Having this module will make it much easier
4627 wrappers around this. Having this module will make it much easier
4621 to put these functions into our modified pdb.
4628 to put these functions into our modified pdb.
4622 This new object inspector system uses the new colorizing module,
4629 This new object inspector system uses the new colorizing module,
4623 so source code and other things are nicely syntax highlighted.
4630 so source code and other things are nicely syntax highlighted.
4624
4631
4625 2002-05-18 Fernando Perez <fperez@colorado.edu>
4632 2002-05-18 Fernando Perez <fperez@colorado.edu>
4626
4633
4627 * IPython/ColorANSI.py: Split the coloring tools into a separate
4634 * IPython/ColorANSI.py: Split the coloring tools into a separate
4628 module so I can use them in other code easier (they were part of
4635 module so I can use them in other code easier (they were part of
4629 ultraTB).
4636 ultraTB).
4630
4637
4631 2002-05-17 Fernando Perez <fperez@colorado.edu>
4638 2002-05-17 Fernando Perez <fperez@colorado.edu>
4632
4639
4633 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4640 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4634 fixed it to set the global 'g' also to the called instance, as
4641 fixed it to set the global 'g' also to the called instance, as
4635 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4642 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4636 user's 'g' variables).
4643 user's 'g' variables).
4637
4644
4638 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4645 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4639 global variables (aliases to _ih,_oh) so that users which expect
4646 global variables (aliases to _ih,_oh) so that users which expect
4640 In[5] or Out[7] to work aren't unpleasantly surprised.
4647 In[5] or Out[7] to work aren't unpleasantly surprised.
4641 (InputList.__getslice__): new class to allow executing slices of
4648 (InputList.__getslice__): new class to allow executing slices of
4642 input history directly. Very simple class, complements the use of
4649 input history directly. Very simple class, complements the use of
4643 macros.
4650 macros.
4644
4651
4645 2002-05-16 Fernando Perez <fperez@colorado.edu>
4652 2002-05-16 Fernando Perez <fperez@colorado.edu>
4646
4653
4647 * setup.py (docdirbase): make doc directory be just doc/IPython
4654 * setup.py (docdirbase): make doc directory be just doc/IPython
4648 without version numbers, it will reduce clutter for users.
4655 without version numbers, it will reduce clutter for users.
4649
4656
4650 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4657 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4651 execfile call to prevent possible memory leak. See for details:
4658 execfile call to prevent possible memory leak. See for details:
4652 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4659 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4653
4660
4654 2002-05-15 Fernando Perez <fperez@colorado.edu>
4661 2002-05-15 Fernando Perez <fperez@colorado.edu>
4655
4662
4656 * IPython/Magic.py (Magic.magic_psource): made the object
4663 * IPython/Magic.py (Magic.magic_psource): made the object
4657 introspection names be more standard: pdoc, pdef, pfile and
4664 introspection names be more standard: pdoc, pdef, pfile and
4658 psource. They all print/page their output, and it makes
4665 psource. They all print/page their output, and it makes
4659 remembering them easier. Kept old names for compatibility as
4666 remembering them easier. Kept old names for compatibility as
4660 aliases.
4667 aliases.
4661
4668
4662 2002-05-14 Fernando Perez <fperez@colorado.edu>
4669 2002-05-14 Fernando Perez <fperez@colorado.edu>
4663
4670
4664 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4671 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4665 what the mouse problem was. The trick is to use gnuplot with temp
4672 what the mouse problem was. The trick is to use gnuplot with temp
4666 files and NOT with pipes (for data communication), because having
4673 files and NOT with pipes (for data communication), because having
4667 both pipes and the mouse on is bad news.
4674 both pipes and the mouse on is bad news.
4668
4675
4669 2002-05-13 Fernando Perez <fperez@colorado.edu>
4676 2002-05-13 Fernando Perez <fperez@colorado.edu>
4670
4677
4671 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4678 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4672 bug. Information would be reported about builtins even when
4679 bug. Information would be reported about builtins even when
4673 user-defined functions overrode them.
4680 user-defined functions overrode them.
4674
4681
4675 2002-05-11 Fernando Perez <fperez@colorado.edu>
4682 2002-05-11 Fernando Perez <fperez@colorado.edu>
4676
4683
4677 * IPython/__init__.py (__all__): removed FlexCompleter from
4684 * IPython/__init__.py (__all__): removed FlexCompleter from
4678 __all__ so that things don't fail in platforms without readline.
4685 __all__ so that things don't fail in platforms without readline.
4679
4686
4680 2002-05-10 Fernando Perez <fperez@colorado.edu>
4687 2002-05-10 Fernando Perez <fperez@colorado.edu>
4681
4688
4682 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4689 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4683 it requires Numeric, effectively making Numeric a dependency for
4690 it requires Numeric, effectively making Numeric a dependency for
4684 IPython.
4691 IPython.
4685
4692
4686 * Released 0.2.13
4693 * Released 0.2.13
4687
4694
4688 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4695 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4689 profiler interface. Now all the major options from the profiler
4696 profiler interface. Now all the major options from the profiler
4690 module are directly supported in IPython, both for single
4697 module are directly supported in IPython, both for single
4691 expressions (@prun) and for full programs (@run -p).
4698 expressions (@prun) and for full programs (@run -p).
4692
4699
4693 2002-05-09 Fernando Perez <fperez@colorado.edu>
4700 2002-05-09 Fernando Perez <fperez@colorado.edu>
4694
4701
4695 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4702 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4696 magic properly formatted for screen.
4703 magic properly formatted for screen.
4697
4704
4698 * setup.py (make_shortcut): Changed things to put pdf version in
4705 * setup.py (make_shortcut): Changed things to put pdf version in
4699 doc/ instead of doc/manual (had to change lyxport a bit).
4706 doc/ instead of doc/manual (had to change lyxport a bit).
4700
4707
4701 * IPython/Magic.py (Profile.string_stats): made profile runs go
4708 * IPython/Magic.py (Profile.string_stats): made profile runs go
4702 through pager (they are long and a pager allows searching, saving,
4709 through pager (they are long and a pager allows searching, saving,
4703 etc.)
4710 etc.)
4704
4711
4705 2002-05-08 Fernando Perez <fperez@colorado.edu>
4712 2002-05-08 Fernando Perez <fperez@colorado.edu>
4706
4713
4707 * Released 0.2.12
4714 * Released 0.2.12
4708
4715
4709 2002-05-06 Fernando Perez <fperez@colorado.edu>
4716 2002-05-06 Fernando Perez <fperez@colorado.edu>
4710
4717
4711 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4718 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4712 introduced); 'hist n1 n2' was broken.
4719 introduced); 'hist n1 n2' was broken.
4713 (Magic.magic_pdb): added optional on/off arguments to @pdb
4720 (Magic.magic_pdb): added optional on/off arguments to @pdb
4714 (Magic.magic_run): added option -i to @run, which executes code in
4721 (Magic.magic_run): added option -i to @run, which executes code in
4715 the IPython namespace instead of a clean one. Also added @irun as
4722 the IPython namespace instead of a clean one. Also added @irun as
4716 an alias to @run -i.
4723 an alias to @run -i.
4717
4724
4718 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4725 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4719 fixed (it didn't really do anything, the namespaces were wrong).
4726 fixed (it didn't really do anything, the namespaces were wrong).
4720
4727
4721 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4728 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4722
4729
4723 * IPython/__init__.py (__all__): Fixed package namespace, now
4730 * IPython/__init__.py (__all__): Fixed package namespace, now
4724 'import IPython' does give access to IPython.<all> as
4731 'import IPython' does give access to IPython.<all> as
4725 expected. Also renamed __release__ to Release.
4732 expected. Also renamed __release__ to Release.
4726
4733
4727 * IPython/Debugger.py (__license__): created new Pdb class which
4734 * IPython/Debugger.py (__license__): created new Pdb class which
4728 functions like a drop-in for the normal pdb.Pdb but does NOT
4735 functions like a drop-in for the normal pdb.Pdb but does NOT
4729 import readline by default. This way it doesn't muck up IPython's
4736 import readline by default. This way it doesn't muck up IPython's
4730 readline handling, and now tab-completion finally works in the
4737 readline handling, and now tab-completion finally works in the
4731 debugger -- sort of. It completes things globally visible, but the
4738 debugger -- sort of. It completes things globally visible, but the
4732 completer doesn't track the stack as pdb walks it. That's a bit
4739 completer doesn't track the stack as pdb walks it. That's a bit
4733 tricky, and I'll have to implement it later.
4740 tricky, and I'll have to implement it later.
4734
4741
4735 2002-05-05 Fernando Perez <fperez@colorado.edu>
4742 2002-05-05 Fernando Perez <fperez@colorado.edu>
4736
4743
4737 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4744 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4738 magic docstrings when printed via ? (explicit \'s were being
4745 magic docstrings when printed via ? (explicit \'s were being
4739 printed).
4746 printed).
4740
4747
4741 * IPython/ipmaker.py (make_IPython): fixed namespace
4748 * IPython/ipmaker.py (make_IPython): fixed namespace
4742 identification bug. Now variables loaded via logs or command-line
4749 identification bug. Now variables loaded via logs or command-line
4743 files are recognized in the interactive namespace by @who.
4750 files are recognized in the interactive namespace by @who.
4744
4751
4745 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4752 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4746 log replay system stemming from the string form of Structs.
4753 log replay system stemming from the string form of Structs.
4747
4754
4748 * IPython/Magic.py (Macro.__init__): improved macros to properly
4755 * IPython/Magic.py (Macro.__init__): improved macros to properly
4749 handle magic commands in them.
4756 handle magic commands in them.
4750 (Magic.magic_logstart): usernames are now expanded so 'logstart
4757 (Magic.magic_logstart): usernames are now expanded so 'logstart
4751 ~/mylog' now works.
4758 ~/mylog' now works.
4752
4759
4753 * IPython/iplib.py (complete): fixed bug where paths starting with
4760 * IPython/iplib.py (complete): fixed bug where paths starting with
4754 '/' would be completed as magic names.
4761 '/' would be completed as magic names.
4755
4762
4756 2002-05-04 Fernando Perez <fperez@colorado.edu>
4763 2002-05-04 Fernando Perez <fperez@colorado.edu>
4757
4764
4758 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4765 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4759 allow running full programs under the profiler's control.
4766 allow running full programs under the profiler's control.
4760
4767
4761 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4768 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4762 mode to report exceptions verbosely but without formatting
4769 mode to report exceptions verbosely but without formatting
4763 variables. This addresses the issue of ipython 'freezing' (it's
4770 variables. This addresses the issue of ipython 'freezing' (it's
4764 not frozen, but caught in an expensive formatting loop) when huge
4771 not frozen, but caught in an expensive formatting loop) when huge
4765 variables are in the context of an exception.
4772 variables are in the context of an exception.
4766 (VerboseTB.text): Added '--->' markers at line where exception was
4773 (VerboseTB.text): Added '--->' markers at line where exception was
4767 triggered. Much clearer to read, especially in NoColor modes.
4774 triggered. Much clearer to read, especially in NoColor modes.
4768
4775
4769 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4776 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4770 implemented in reverse when changing to the new parse_options().
4777 implemented in reverse when changing to the new parse_options().
4771
4778
4772 2002-05-03 Fernando Perez <fperez@colorado.edu>
4779 2002-05-03 Fernando Perez <fperez@colorado.edu>
4773
4780
4774 * IPython/Magic.py (Magic.parse_options): new function so that
4781 * IPython/Magic.py (Magic.parse_options): new function so that
4775 magics can parse options easier.
4782 magics can parse options easier.
4776 (Magic.magic_prun): new function similar to profile.run(),
4783 (Magic.magic_prun): new function similar to profile.run(),
4777 suggested by Chris Hart.
4784 suggested by Chris Hart.
4778 (Magic.magic_cd): fixed behavior so that it only changes if
4785 (Magic.magic_cd): fixed behavior so that it only changes if
4779 directory actually is in history.
4786 directory actually is in history.
4780
4787
4781 * IPython/usage.py (__doc__): added information about potential
4788 * IPython/usage.py (__doc__): added information about potential
4782 slowness of Verbose exception mode when there are huge data
4789 slowness of Verbose exception mode when there are huge data
4783 structures to be formatted (thanks to Archie Paulson).
4790 structures to be formatted (thanks to Archie Paulson).
4784
4791
4785 * IPython/ipmaker.py (make_IPython): Changed default logging
4792 * IPython/ipmaker.py (make_IPython): Changed default logging
4786 (when simply called with -log) to use curr_dir/ipython.log in
4793 (when simply called with -log) to use curr_dir/ipython.log in
4787 rotate mode. Fixed crash which was occuring with -log before
4794 rotate mode. Fixed crash which was occuring with -log before
4788 (thanks to Jim Boyle).
4795 (thanks to Jim Boyle).
4789
4796
4790 2002-05-01 Fernando Perez <fperez@colorado.edu>
4797 2002-05-01 Fernando Perez <fperez@colorado.edu>
4791
4798
4792 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4799 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4793 was nasty -- though somewhat of a corner case).
4800 was nasty -- though somewhat of a corner case).
4794
4801
4795 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4802 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4796 text (was a bug).
4803 text (was a bug).
4797
4804
4798 2002-04-30 Fernando Perez <fperez@colorado.edu>
4805 2002-04-30 Fernando Perez <fperez@colorado.edu>
4799
4806
4800 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4807 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4801 a print after ^D or ^C from the user so that the In[] prompt
4808 a print after ^D or ^C from the user so that the In[] prompt
4802 doesn't over-run the gnuplot one.
4809 doesn't over-run the gnuplot one.
4803
4810
4804 2002-04-29 Fernando Perez <fperez@colorado.edu>
4811 2002-04-29 Fernando Perez <fperez@colorado.edu>
4805
4812
4806 * Released 0.2.10
4813 * Released 0.2.10
4807
4814
4808 * IPython/__release__.py (version): get date dynamically.
4815 * IPython/__release__.py (version): get date dynamically.
4809
4816
4810 * Misc. documentation updates thanks to Arnd's comments. Also ran
4817 * Misc. documentation updates thanks to Arnd's comments. Also ran
4811 a full spellcheck on the manual (hadn't been done in a while).
4818 a full spellcheck on the manual (hadn't been done in a while).
4812
4819
4813 2002-04-27 Fernando Perez <fperez@colorado.edu>
4820 2002-04-27 Fernando Perez <fperez@colorado.edu>
4814
4821
4815 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4822 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4816 starting a log in mid-session would reset the input history list.
4823 starting a log in mid-session would reset the input history list.
4817
4824
4818 2002-04-26 Fernando Perez <fperez@colorado.edu>
4825 2002-04-26 Fernando Perez <fperez@colorado.edu>
4819
4826
4820 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4827 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4821 all files were being included in an update. Now anything in
4828 all files were being included in an update. Now anything in
4822 UserConfig that matches [A-Za-z]*.py will go (this excludes
4829 UserConfig that matches [A-Za-z]*.py will go (this excludes
4823 __init__.py)
4830 __init__.py)
4824
4831
4825 2002-04-25 Fernando Perez <fperez@colorado.edu>
4832 2002-04-25 Fernando Perez <fperez@colorado.edu>
4826
4833
4827 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4834 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4828 to __builtins__ so that any form of embedded or imported code can
4835 to __builtins__ so that any form of embedded or imported code can
4829 test for being inside IPython.
4836 test for being inside IPython.
4830
4837
4831 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4838 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4832 changed to GnuplotMagic because it's now an importable module,
4839 changed to GnuplotMagic because it's now an importable module,
4833 this makes the name follow that of the standard Gnuplot module.
4840 this makes the name follow that of the standard Gnuplot module.
4834 GnuplotMagic can now be loaded at any time in mid-session.
4841 GnuplotMagic can now be loaded at any time in mid-session.
4835
4842
4836 2002-04-24 Fernando Perez <fperez@colorado.edu>
4843 2002-04-24 Fernando Perez <fperez@colorado.edu>
4837
4844
4838 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4845 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4839 the globals (IPython has its own namespace) and the
4846 the globals (IPython has its own namespace) and the
4840 PhysicalQuantity stuff is much better anyway.
4847 PhysicalQuantity stuff is much better anyway.
4841
4848
4842 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4849 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4843 embedding example to standard user directory for
4850 embedding example to standard user directory for
4844 distribution. Also put it in the manual.
4851 distribution. Also put it in the manual.
4845
4852
4846 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4853 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4847 instance as first argument (so it doesn't rely on some obscure
4854 instance as first argument (so it doesn't rely on some obscure
4848 hidden global).
4855 hidden global).
4849
4856
4850 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4857 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4851 delimiters. While it prevents ().TAB from working, it allows
4858 delimiters. While it prevents ().TAB from working, it allows
4852 completions in open (... expressions. This is by far a more common
4859 completions in open (... expressions. This is by far a more common
4853 case.
4860 case.
4854
4861
4855 2002-04-23 Fernando Perez <fperez@colorado.edu>
4862 2002-04-23 Fernando Perez <fperez@colorado.edu>
4856
4863
4857 * IPython/Extensions/InterpreterPasteInput.py: new
4864 * IPython/Extensions/InterpreterPasteInput.py: new
4858 syntax-processing module for pasting lines with >>> or ... at the
4865 syntax-processing module for pasting lines with >>> or ... at the
4859 start.
4866 start.
4860
4867
4861 * IPython/Extensions/PhysicalQ_Interactive.py
4868 * IPython/Extensions/PhysicalQ_Interactive.py
4862 (PhysicalQuantityInteractive.__int__): fixed to work with either
4869 (PhysicalQuantityInteractive.__int__): fixed to work with either
4863 Numeric or math.
4870 Numeric or math.
4864
4871
4865 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4872 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4866 provided profiles. Now we have:
4873 provided profiles. Now we have:
4867 -math -> math module as * and cmath with its own namespace.
4874 -math -> math module as * and cmath with its own namespace.
4868 -numeric -> Numeric as *, plus gnuplot & grace
4875 -numeric -> Numeric as *, plus gnuplot & grace
4869 -physics -> same as before
4876 -physics -> same as before
4870
4877
4871 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4878 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4872 user-defined magics wouldn't be found by @magic if they were
4879 user-defined magics wouldn't be found by @magic if they were
4873 defined as class methods. Also cleaned up the namespace search
4880 defined as class methods. Also cleaned up the namespace search
4874 logic and the string building (to use %s instead of many repeated
4881 logic and the string building (to use %s instead of many repeated
4875 string adds).
4882 string adds).
4876
4883
4877 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4884 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4878 of user-defined magics to operate with class methods (cleaner, in
4885 of user-defined magics to operate with class methods (cleaner, in
4879 line with the gnuplot code).
4886 line with the gnuplot code).
4880
4887
4881 2002-04-22 Fernando Perez <fperez@colorado.edu>
4888 2002-04-22 Fernando Perez <fperez@colorado.edu>
4882
4889
4883 * setup.py: updated dependency list so that manual is updated when
4890 * setup.py: updated dependency list so that manual is updated when
4884 all included files change.
4891 all included files change.
4885
4892
4886 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4893 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4887 the delimiter removal option (the fix is ugly right now).
4894 the delimiter removal option (the fix is ugly right now).
4888
4895
4889 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4896 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4890 all of the math profile (quicker loading, no conflict between
4897 all of the math profile (quicker loading, no conflict between
4891 g-9.8 and g-gnuplot).
4898 g-9.8 and g-gnuplot).
4892
4899
4893 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4900 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4894 name of post-mortem files to IPython_crash_report.txt.
4901 name of post-mortem files to IPython_crash_report.txt.
4895
4902
4896 * Cleanup/update of the docs. Added all the new readline info and
4903 * Cleanup/update of the docs. Added all the new readline info and
4897 formatted all lists as 'real lists'.
4904 formatted all lists as 'real lists'.
4898
4905
4899 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4906 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4900 tab-completion options, since the full readline parse_and_bind is
4907 tab-completion options, since the full readline parse_and_bind is
4901 now accessible.
4908 now accessible.
4902
4909
4903 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4910 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4904 handling of readline options. Now users can specify any string to
4911 handling of readline options. Now users can specify any string to
4905 be passed to parse_and_bind(), as well as the delimiters to be
4912 be passed to parse_and_bind(), as well as the delimiters to be
4906 removed.
4913 removed.
4907 (InteractiveShell.__init__): Added __name__ to the global
4914 (InteractiveShell.__init__): Added __name__ to the global
4908 namespace so that things like Itpl which rely on its existence
4915 namespace so that things like Itpl which rely on its existence
4909 don't crash.
4916 don't crash.
4910 (InteractiveShell._prefilter): Defined the default with a _ so
4917 (InteractiveShell._prefilter): Defined the default with a _ so
4911 that prefilter() is easier to override, while the default one
4918 that prefilter() is easier to override, while the default one
4912 remains available.
4919 remains available.
4913
4920
4914 2002-04-18 Fernando Perez <fperez@colorado.edu>
4921 2002-04-18 Fernando Perez <fperez@colorado.edu>
4915
4922
4916 * Added information about pdb in the docs.
4923 * Added information about pdb in the docs.
4917
4924
4918 2002-04-17 Fernando Perez <fperez@colorado.edu>
4925 2002-04-17 Fernando Perez <fperez@colorado.edu>
4919
4926
4920 * IPython/ipmaker.py (make_IPython): added rc_override option to
4927 * IPython/ipmaker.py (make_IPython): added rc_override option to
4921 allow passing config options at creation time which may override
4928 allow passing config options at creation time which may override
4922 anything set in the config files or command line. This is
4929 anything set in the config files or command line. This is
4923 particularly useful for configuring embedded instances.
4930 particularly useful for configuring embedded instances.
4924
4931
4925 2002-04-15 Fernando Perez <fperez@colorado.edu>
4932 2002-04-15 Fernando Perez <fperez@colorado.edu>
4926
4933
4927 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4934 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4928 crash embedded instances because of the input cache falling out of
4935 crash embedded instances because of the input cache falling out of
4929 sync with the output counter.
4936 sync with the output counter.
4930
4937
4931 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4938 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4932 mode which calls pdb after an uncaught exception in IPython itself.
4939 mode which calls pdb after an uncaught exception in IPython itself.
4933
4940
4934 2002-04-14 Fernando Perez <fperez@colorado.edu>
4941 2002-04-14 Fernando Perez <fperez@colorado.edu>
4935
4942
4936 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4943 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4937 readline, fix it back after each call.
4944 readline, fix it back after each call.
4938
4945
4939 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4946 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4940 method to force all access via __call__(), which guarantees that
4947 method to force all access via __call__(), which guarantees that
4941 traceback references are properly deleted.
4948 traceback references are properly deleted.
4942
4949
4943 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4950 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4944 improve printing when pprint is in use.
4951 improve printing when pprint is in use.
4945
4952
4946 2002-04-13 Fernando Perez <fperez@colorado.edu>
4953 2002-04-13 Fernando Perez <fperez@colorado.edu>
4947
4954
4948 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4955 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4949 exceptions aren't caught anymore. If the user triggers one, he
4956 exceptions aren't caught anymore. If the user triggers one, he
4950 should know why he's doing it and it should go all the way up,
4957 should know why he's doing it and it should go all the way up,
4951 just like any other exception. So now @abort will fully kill the
4958 just like any other exception. So now @abort will fully kill the
4952 embedded interpreter and the embedding code (unless that happens
4959 embedded interpreter and the embedding code (unless that happens
4953 to catch SystemExit).
4960 to catch SystemExit).
4954
4961
4955 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4962 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4956 and a debugger() method to invoke the interactive pdb debugger
4963 and a debugger() method to invoke the interactive pdb debugger
4957 after printing exception information. Also added the corresponding
4964 after printing exception information. Also added the corresponding
4958 -pdb option and @pdb magic to control this feature, and updated
4965 -pdb option and @pdb magic to control this feature, and updated
4959 the docs. After a suggestion from Christopher Hart
4966 the docs. After a suggestion from Christopher Hart
4960 (hart-AT-caltech.edu).
4967 (hart-AT-caltech.edu).
4961
4968
4962 2002-04-12 Fernando Perez <fperez@colorado.edu>
4969 2002-04-12 Fernando Perez <fperez@colorado.edu>
4963
4970
4964 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4971 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4965 the exception handlers defined by the user (not the CrashHandler)
4972 the exception handlers defined by the user (not the CrashHandler)
4966 so that user exceptions don't trigger an ipython bug report.
4973 so that user exceptions don't trigger an ipython bug report.
4967
4974
4968 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4975 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4969 configurable (it should have always been so).
4976 configurable (it should have always been so).
4970
4977
4971 2002-03-26 Fernando Perez <fperez@colorado.edu>
4978 2002-03-26 Fernando Perez <fperez@colorado.edu>
4972
4979
4973 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4980 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4974 and there to fix embedding namespace issues. This should all be
4981 and there to fix embedding namespace issues. This should all be
4975 done in a more elegant way.
4982 done in a more elegant way.
4976
4983
4977 2002-03-25 Fernando Perez <fperez@colorado.edu>
4984 2002-03-25 Fernando Perez <fperez@colorado.edu>
4978
4985
4979 * IPython/genutils.py (get_home_dir): Try to make it work under
4986 * IPython/genutils.py (get_home_dir): Try to make it work under
4980 win9x also.
4987 win9x also.
4981
4988
4982 2002-03-20 Fernando Perez <fperez@colorado.edu>
4989 2002-03-20 Fernando Perez <fperez@colorado.edu>
4983
4990
4984 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4991 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4985 sys.displayhook untouched upon __init__.
4992 sys.displayhook untouched upon __init__.
4986
4993
4987 2002-03-19 Fernando Perez <fperez@colorado.edu>
4994 2002-03-19 Fernando Perez <fperez@colorado.edu>
4988
4995
4989 * Released 0.2.9 (for embedding bug, basically).
4996 * Released 0.2.9 (for embedding bug, basically).
4990
4997
4991 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4998 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4992 exceptions so that enclosing shell's state can be restored.
4999 exceptions so that enclosing shell's state can be restored.
4993
5000
4994 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5001 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4995 naming conventions in the .ipython/ dir.
5002 naming conventions in the .ipython/ dir.
4996
5003
4997 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5004 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4998 from delimiters list so filenames with - in them get expanded.
5005 from delimiters list so filenames with - in them get expanded.
4999
5006
5000 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5007 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5001 sys.displayhook not being properly restored after an embedded call.
5008 sys.displayhook not being properly restored after an embedded call.
5002
5009
5003 2002-03-18 Fernando Perez <fperez@colorado.edu>
5010 2002-03-18 Fernando Perez <fperez@colorado.edu>
5004
5011
5005 * Released 0.2.8
5012 * Released 0.2.8
5006
5013
5007 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5014 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5008 some files weren't being included in a -upgrade.
5015 some files weren't being included in a -upgrade.
5009 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5016 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5010 on' so that the first tab completes.
5017 on' so that the first tab completes.
5011 (InteractiveShell.handle_magic): fixed bug with spaces around
5018 (InteractiveShell.handle_magic): fixed bug with spaces around
5012 quotes breaking many magic commands.
5019 quotes breaking many magic commands.
5013
5020
5014 * setup.py: added note about ignoring the syntax error messages at
5021 * setup.py: added note about ignoring the syntax error messages at
5015 installation.
5022 installation.
5016
5023
5017 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5024 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5018 streamlining the gnuplot interface, now there's only one magic @gp.
5025 streamlining the gnuplot interface, now there's only one magic @gp.
5019
5026
5020 2002-03-17 Fernando Perez <fperez@colorado.edu>
5027 2002-03-17 Fernando Perez <fperez@colorado.edu>
5021
5028
5022 * IPython/UserConfig/magic_gnuplot.py: new name for the
5029 * IPython/UserConfig/magic_gnuplot.py: new name for the
5023 example-magic_pm.py file. Much enhanced system, now with a shell
5030 example-magic_pm.py file. Much enhanced system, now with a shell
5024 for communicating directly with gnuplot, one command at a time.
5031 for communicating directly with gnuplot, one command at a time.
5025
5032
5026 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5033 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5027 setting __name__=='__main__'.
5034 setting __name__=='__main__'.
5028
5035
5029 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5036 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5030 mini-shell for accessing gnuplot from inside ipython. Should
5037 mini-shell for accessing gnuplot from inside ipython. Should
5031 extend it later for grace access too. Inspired by Arnd's
5038 extend it later for grace access too. Inspired by Arnd's
5032 suggestion.
5039 suggestion.
5033
5040
5034 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5041 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5035 calling magic functions with () in their arguments. Thanks to Arnd
5042 calling magic functions with () in their arguments. Thanks to Arnd
5036 Baecker for pointing this to me.
5043 Baecker for pointing this to me.
5037
5044
5038 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5045 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5039 infinitely for integer or complex arrays (only worked with floats).
5046 infinitely for integer or complex arrays (only worked with floats).
5040
5047
5041 2002-03-16 Fernando Perez <fperez@colorado.edu>
5048 2002-03-16 Fernando Perez <fperez@colorado.edu>
5042
5049
5043 * setup.py: Merged setup and setup_windows into a single script
5050 * setup.py: Merged setup and setup_windows into a single script
5044 which properly handles things for windows users.
5051 which properly handles things for windows users.
5045
5052
5046 2002-03-15 Fernando Perez <fperez@colorado.edu>
5053 2002-03-15 Fernando Perez <fperez@colorado.edu>
5047
5054
5048 * Big change to the manual: now the magics are all automatically
5055 * Big change to the manual: now the magics are all automatically
5049 documented. This information is generated from their docstrings
5056 documented. This information is generated from their docstrings
5050 and put in a latex file included by the manual lyx file. This way
5057 and put in a latex file included by the manual lyx file. This way
5051 we get always up to date information for the magics. The manual
5058 we get always up to date information for the magics. The manual
5052 now also has proper version information, also auto-synced.
5059 now also has proper version information, also auto-synced.
5053
5060
5054 For this to work, an undocumented --magic_docstrings option was added.
5061 For this to work, an undocumented --magic_docstrings option was added.
5055
5062
5056 2002-03-13 Fernando Perez <fperez@colorado.edu>
5063 2002-03-13 Fernando Perez <fperez@colorado.edu>
5057
5064
5058 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5065 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5059 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5066 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5060
5067
5061 2002-03-12 Fernando Perez <fperez@colorado.edu>
5068 2002-03-12 Fernando Perez <fperez@colorado.edu>
5062
5069
5063 * IPython/ultraTB.py (TermColors): changed color escapes again to
5070 * IPython/ultraTB.py (TermColors): changed color escapes again to
5064 fix the (old, reintroduced) line-wrapping bug. Basically, if
5071 fix the (old, reintroduced) line-wrapping bug. Basically, if
5065 \001..\002 aren't given in the color escapes, lines get wrapped
5072 \001..\002 aren't given in the color escapes, lines get wrapped
5066 weirdly. But giving those screws up old xterms and emacs terms. So
5073 weirdly. But giving those screws up old xterms and emacs terms. So
5067 I added some logic for emacs terms to be ok, but I can't identify old
5074 I added some logic for emacs terms to be ok, but I can't identify old
5068 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5075 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5069
5076
5070 2002-03-10 Fernando Perez <fperez@colorado.edu>
5077 2002-03-10 Fernando Perez <fperez@colorado.edu>
5071
5078
5072 * IPython/usage.py (__doc__): Various documentation cleanups and
5079 * IPython/usage.py (__doc__): Various documentation cleanups and
5073 updates, both in usage docstrings and in the manual.
5080 updates, both in usage docstrings and in the manual.
5074
5081
5075 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5082 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5076 handling of caching. Set minimum acceptabe value for having a
5083 handling of caching. Set minimum acceptabe value for having a
5077 cache at 20 values.
5084 cache at 20 values.
5078
5085
5079 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5086 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5080 install_first_time function to a method, renamed it and added an
5087 install_first_time function to a method, renamed it and added an
5081 'upgrade' mode. Now people can update their config directory with
5088 'upgrade' mode. Now people can update their config directory with
5082 a simple command line switch (-upgrade, also new).
5089 a simple command line switch (-upgrade, also new).
5083
5090
5084 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5091 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5085 @file (convenient for automagic users under Python >= 2.2).
5092 @file (convenient for automagic users under Python >= 2.2).
5086 Removed @files (it seemed more like a plural than an abbrev. of
5093 Removed @files (it seemed more like a plural than an abbrev. of
5087 'file show').
5094 'file show').
5088
5095
5089 * IPython/iplib.py (install_first_time): Fixed crash if there were
5096 * IPython/iplib.py (install_first_time): Fixed crash if there were
5090 backup files ('~') in .ipython/ install directory.
5097 backup files ('~') in .ipython/ install directory.
5091
5098
5092 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5099 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5093 system. Things look fine, but these changes are fairly
5100 system. Things look fine, but these changes are fairly
5094 intrusive. Test them for a few days.
5101 intrusive. Test them for a few days.
5095
5102
5096 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5103 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5097 the prompts system. Now all in/out prompt strings are user
5104 the prompts system. Now all in/out prompt strings are user
5098 controllable. This is particularly useful for embedding, as one
5105 controllable. This is particularly useful for embedding, as one
5099 can tag embedded instances with particular prompts.
5106 can tag embedded instances with particular prompts.
5100
5107
5101 Also removed global use of sys.ps1/2, which now allows nested
5108 Also removed global use of sys.ps1/2, which now allows nested
5102 embeddings without any problems. Added command-line options for
5109 embeddings without any problems. Added command-line options for
5103 the prompt strings.
5110 the prompt strings.
5104
5111
5105 2002-03-08 Fernando Perez <fperez@colorado.edu>
5112 2002-03-08 Fernando Perez <fperez@colorado.edu>
5106
5113
5107 * IPython/UserConfig/example-embed-short.py (ipshell): added
5114 * IPython/UserConfig/example-embed-short.py (ipshell): added
5108 example file with the bare minimum code for embedding.
5115 example file with the bare minimum code for embedding.
5109
5116
5110 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5117 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5111 functionality for the embeddable shell to be activated/deactivated
5118 functionality for the embeddable shell to be activated/deactivated
5112 either globally or at each call.
5119 either globally or at each call.
5113
5120
5114 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5121 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5115 rewriting the prompt with '--->' for auto-inputs with proper
5122 rewriting the prompt with '--->' for auto-inputs with proper
5116 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5123 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5117 this is handled by the prompts class itself, as it should.
5124 this is handled by the prompts class itself, as it should.
5118
5125
5119 2002-03-05 Fernando Perez <fperez@colorado.edu>
5126 2002-03-05 Fernando Perez <fperez@colorado.edu>
5120
5127
5121 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5128 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5122 @logstart to avoid name clashes with the math log function.
5129 @logstart to avoid name clashes with the math log function.
5123
5130
5124 * Big updates to X/Emacs section of the manual.
5131 * Big updates to X/Emacs section of the manual.
5125
5132
5126 * Removed ipython_emacs. Milan explained to me how to pass
5133 * Removed ipython_emacs. Milan explained to me how to pass
5127 arguments to ipython through Emacs. Some day I'm going to end up
5134 arguments to ipython through Emacs. Some day I'm going to end up
5128 learning some lisp...
5135 learning some lisp...
5129
5136
5130 2002-03-04 Fernando Perez <fperez@colorado.edu>
5137 2002-03-04 Fernando Perez <fperez@colorado.edu>
5131
5138
5132 * IPython/ipython_emacs: Created script to be used as the
5139 * IPython/ipython_emacs: Created script to be used as the
5133 py-python-command Emacs variable so we can pass IPython
5140 py-python-command Emacs variable so we can pass IPython
5134 parameters. I can't figure out how to tell Emacs directly to pass
5141 parameters. I can't figure out how to tell Emacs directly to pass
5135 parameters to IPython, so a dummy shell script will do it.
5142 parameters to IPython, so a dummy shell script will do it.
5136
5143
5137 Other enhancements made for things to work better under Emacs'
5144 Other enhancements made for things to work better under Emacs'
5138 various types of terminals. Many thanks to Milan Zamazal
5145 various types of terminals. Many thanks to Milan Zamazal
5139 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5146 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5140
5147
5141 2002-03-01 Fernando Perez <fperez@colorado.edu>
5148 2002-03-01 Fernando Perez <fperez@colorado.edu>
5142
5149
5143 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5150 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5144 that loading of readline is now optional. This gives better
5151 that loading of readline is now optional. This gives better
5145 control to emacs users.
5152 control to emacs users.
5146
5153
5147 * IPython/ultraTB.py (__date__): Modified color escape sequences
5154 * IPython/ultraTB.py (__date__): Modified color escape sequences
5148 and now things work fine under xterm and in Emacs' term buffers
5155 and now things work fine under xterm and in Emacs' term buffers
5149 (though not shell ones). Well, in emacs you get colors, but all
5156 (though not shell ones). Well, in emacs you get colors, but all
5150 seem to be 'light' colors (no difference between dark and light
5157 seem to be 'light' colors (no difference between dark and light
5151 ones). But the garbage chars are gone, and also in xterms. It
5158 ones). But the garbage chars are gone, and also in xterms. It
5152 seems that now I'm using 'cleaner' ansi sequences.
5159 seems that now I'm using 'cleaner' ansi sequences.
5153
5160
5154 2002-02-21 Fernando Perez <fperez@colorado.edu>
5161 2002-02-21 Fernando Perez <fperez@colorado.edu>
5155
5162
5156 * Released 0.2.7 (mainly to publish the scoping fix).
5163 * Released 0.2.7 (mainly to publish the scoping fix).
5157
5164
5158 * IPython/Logger.py (Logger.logstate): added. A corresponding
5165 * IPython/Logger.py (Logger.logstate): added. A corresponding
5159 @logstate magic was created.
5166 @logstate magic was created.
5160
5167
5161 * IPython/Magic.py: fixed nested scoping problem under Python
5168 * IPython/Magic.py: fixed nested scoping problem under Python
5162 2.1.x (automagic wasn't working).
5169 2.1.x (automagic wasn't working).
5163
5170
5164 2002-02-20 Fernando Perez <fperez@colorado.edu>
5171 2002-02-20 Fernando Perez <fperez@colorado.edu>
5165
5172
5166 * Released 0.2.6.
5173 * Released 0.2.6.
5167
5174
5168 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5175 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5169 option so that logs can come out without any headers at all.
5176 option so that logs can come out without any headers at all.
5170
5177
5171 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5178 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5172 SciPy.
5179 SciPy.
5173
5180
5174 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5181 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5175 that embedded IPython calls don't require vars() to be explicitly
5182 that embedded IPython calls don't require vars() to be explicitly
5176 passed. Now they are extracted from the caller's frame (code
5183 passed. Now they are extracted from the caller's frame (code
5177 snatched from Eric Jones' weave). Added better documentation to
5184 snatched from Eric Jones' weave). Added better documentation to
5178 the section on embedding and the example file.
5185 the section on embedding and the example file.
5179
5186
5180 * IPython/genutils.py (page): Changed so that under emacs, it just
5187 * IPython/genutils.py (page): Changed so that under emacs, it just
5181 prints the string. You can then page up and down in the emacs
5188 prints the string. You can then page up and down in the emacs
5182 buffer itself. This is how the builtin help() works.
5189 buffer itself. This is how the builtin help() works.
5183
5190
5184 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5191 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5185 macro scoping: macros need to be executed in the user's namespace
5192 macro scoping: macros need to be executed in the user's namespace
5186 to work as if they had been typed by the user.
5193 to work as if they had been typed by the user.
5187
5194
5188 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5195 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5189 execute automatically (no need to type 'exec...'). They then
5196 execute automatically (no need to type 'exec...'). They then
5190 behave like 'true macros'. The printing system was also modified
5197 behave like 'true macros'. The printing system was also modified
5191 for this to work.
5198 for this to work.
5192
5199
5193 2002-02-19 Fernando Perez <fperez@colorado.edu>
5200 2002-02-19 Fernando Perez <fperez@colorado.edu>
5194
5201
5195 * IPython/genutils.py (page_file): new function for paging files
5202 * IPython/genutils.py (page_file): new function for paging files
5196 in an OS-independent way. Also necessary for file viewing to work
5203 in an OS-independent way. Also necessary for file viewing to work
5197 well inside Emacs buffers.
5204 well inside Emacs buffers.
5198 (page): Added checks for being in an emacs buffer.
5205 (page): Added checks for being in an emacs buffer.
5199 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5206 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5200 same bug in iplib.
5207 same bug in iplib.
5201
5208
5202 2002-02-18 Fernando Perez <fperez@colorado.edu>
5209 2002-02-18 Fernando Perez <fperez@colorado.edu>
5203
5210
5204 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5211 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5205 of readline so that IPython can work inside an Emacs buffer.
5212 of readline so that IPython can work inside an Emacs buffer.
5206
5213
5207 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5214 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5208 method signatures (they weren't really bugs, but it looks cleaner
5215 method signatures (they weren't really bugs, but it looks cleaner
5209 and keeps PyChecker happy).
5216 and keeps PyChecker happy).
5210
5217
5211 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5218 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5212 for implementing various user-defined hooks. Currently only
5219 for implementing various user-defined hooks. Currently only
5213 display is done.
5220 display is done.
5214
5221
5215 * IPython/Prompts.py (CachedOutput._display): changed display
5222 * IPython/Prompts.py (CachedOutput._display): changed display
5216 functions so that they can be dynamically changed by users easily.
5223 functions so that they can be dynamically changed by users easily.
5217
5224
5218 * IPython/Extensions/numeric_formats.py (num_display): added an
5225 * IPython/Extensions/numeric_formats.py (num_display): added an
5219 extension for printing NumPy arrays in flexible manners. It
5226 extension for printing NumPy arrays in flexible manners. It
5220 doesn't do anything yet, but all the structure is in
5227 doesn't do anything yet, but all the structure is in
5221 place. Ultimately the plan is to implement output format control
5228 place. Ultimately the plan is to implement output format control
5222 like in Octave.
5229 like in Octave.
5223
5230
5224 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5231 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5225 methods are found at run-time by all the automatic machinery.
5232 methods are found at run-time by all the automatic machinery.
5226
5233
5227 2002-02-17 Fernando Perez <fperez@colorado.edu>
5234 2002-02-17 Fernando Perez <fperez@colorado.edu>
5228
5235
5229 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5236 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5230 whole file a little.
5237 whole file a little.
5231
5238
5232 * ToDo: closed this document. Now there's a new_design.lyx
5239 * ToDo: closed this document. Now there's a new_design.lyx
5233 document for all new ideas. Added making a pdf of it for the
5240 document for all new ideas. Added making a pdf of it for the
5234 end-user distro.
5241 end-user distro.
5235
5242
5236 * IPython/Logger.py (Logger.switch_log): Created this to replace
5243 * IPython/Logger.py (Logger.switch_log): Created this to replace
5237 logon() and logoff(). It also fixes a nasty crash reported by
5244 logon() and logoff(). It also fixes a nasty crash reported by
5238 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5245 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5239
5246
5240 * IPython/iplib.py (complete): got auto-completion to work with
5247 * IPython/iplib.py (complete): got auto-completion to work with
5241 automagic (I had wanted this for a long time).
5248 automagic (I had wanted this for a long time).
5242
5249
5243 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5250 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5244 to @file, since file() is now a builtin and clashes with automagic
5251 to @file, since file() is now a builtin and clashes with automagic
5245 for @file.
5252 for @file.
5246
5253
5247 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5254 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5248 of this was previously in iplib, which had grown to more than 2000
5255 of this was previously in iplib, which had grown to more than 2000
5249 lines, way too long. No new functionality, but it makes managing
5256 lines, way too long. No new functionality, but it makes managing
5250 the code a bit easier.
5257 the code a bit easier.
5251
5258
5252 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5259 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5253 information to crash reports.
5260 information to crash reports.
5254
5261
5255 2002-02-12 Fernando Perez <fperez@colorado.edu>
5262 2002-02-12 Fernando Perez <fperez@colorado.edu>
5256
5263
5257 * Released 0.2.5.
5264 * Released 0.2.5.
5258
5265
5259 2002-02-11 Fernando Perez <fperez@colorado.edu>
5266 2002-02-11 Fernando Perez <fperez@colorado.edu>
5260
5267
5261 * Wrote a relatively complete Windows installer. It puts
5268 * Wrote a relatively complete Windows installer. It puts
5262 everything in place, creates Start Menu entries and fixes the
5269 everything in place, creates Start Menu entries and fixes the
5263 color issues. Nothing fancy, but it works.
5270 color issues. Nothing fancy, but it works.
5264
5271
5265 2002-02-10 Fernando Perez <fperez@colorado.edu>
5272 2002-02-10 Fernando Perez <fperez@colorado.edu>
5266
5273
5267 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5274 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5268 os.path.expanduser() call so that we can type @run ~/myfile.py and
5275 os.path.expanduser() call so that we can type @run ~/myfile.py and
5269 have thigs work as expected.
5276 have thigs work as expected.
5270
5277
5271 * IPython/genutils.py (page): fixed exception handling so things
5278 * IPython/genutils.py (page): fixed exception handling so things
5272 work both in Unix and Windows correctly. Quitting a pager triggers
5279 work both in Unix and Windows correctly. Quitting a pager triggers
5273 an IOError/broken pipe in Unix, and in windows not finding a pager
5280 an IOError/broken pipe in Unix, and in windows not finding a pager
5274 is also an IOError, so I had to actually look at the return value
5281 is also an IOError, so I had to actually look at the return value
5275 of the exception, not just the exception itself. Should be ok now.
5282 of the exception, not just the exception itself. Should be ok now.
5276
5283
5277 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5284 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5278 modified to allow case-insensitive color scheme changes.
5285 modified to allow case-insensitive color scheme changes.
5279
5286
5280 2002-02-09 Fernando Perez <fperez@colorado.edu>
5287 2002-02-09 Fernando Perez <fperez@colorado.edu>
5281
5288
5282 * IPython/genutils.py (native_line_ends): new function to leave
5289 * IPython/genutils.py (native_line_ends): new function to leave
5283 user config files with os-native line-endings.
5290 user config files with os-native line-endings.
5284
5291
5285 * README and manual updates.
5292 * README and manual updates.
5286
5293
5287 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5294 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5288 instead of StringType to catch Unicode strings.
5295 instead of StringType to catch Unicode strings.
5289
5296
5290 * IPython/genutils.py (filefind): fixed bug for paths with
5297 * IPython/genutils.py (filefind): fixed bug for paths with
5291 embedded spaces (very common in Windows).
5298 embedded spaces (very common in Windows).
5292
5299
5293 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5300 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5294 files under Windows, so that they get automatically associated
5301 files under Windows, so that they get automatically associated
5295 with a text editor. Windows makes it a pain to handle
5302 with a text editor. Windows makes it a pain to handle
5296 extension-less files.
5303 extension-less files.
5297
5304
5298 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5305 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5299 warning about readline only occur for Posix. In Windows there's no
5306 warning about readline only occur for Posix. In Windows there's no
5300 way to get readline, so why bother with the warning.
5307 way to get readline, so why bother with the warning.
5301
5308
5302 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5309 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5303 for __str__ instead of dir(self), since dir() changed in 2.2.
5310 for __str__ instead of dir(self), since dir() changed in 2.2.
5304
5311
5305 * Ported to Windows! Tested on XP, I suspect it should work fine
5312 * Ported to Windows! Tested on XP, I suspect it should work fine
5306 on NT/2000, but I don't think it will work on 98 et al. That
5313 on NT/2000, but I don't think it will work on 98 et al. That
5307 series of Windows is such a piece of junk anyway that I won't try
5314 series of Windows is such a piece of junk anyway that I won't try
5308 porting it there. The XP port was straightforward, showed a few
5315 porting it there. The XP port was straightforward, showed a few
5309 bugs here and there (fixed all), in particular some string
5316 bugs here and there (fixed all), in particular some string
5310 handling stuff which required considering Unicode strings (which
5317 handling stuff which required considering Unicode strings (which
5311 Windows uses). This is good, but hasn't been too tested :) No
5318 Windows uses). This is good, but hasn't been too tested :) No
5312 fancy installer yet, I'll put a note in the manual so people at
5319 fancy installer yet, I'll put a note in the manual so people at
5313 least make manually a shortcut.
5320 least make manually a shortcut.
5314
5321
5315 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5322 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5316 into a single one, "colors". This now controls both prompt and
5323 into a single one, "colors". This now controls both prompt and
5317 exception color schemes, and can be changed both at startup
5324 exception color schemes, and can be changed both at startup
5318 (either via command-line switches or via ipythonrc files) and at
5325 (either via command-line switches or via ipythonrc files) and at
5319 runtime, with @colors.
5326 runtime, with @colors.
5320 (Magic.magic_run): renamed @prun to @run and removed the old
5327 (Magic.magic_run): renamed @prun to @run and removed the old
5321 @run. The two were too similar to warrant keeping both.
5328 @run. The two were too similar to warrant keeping both.
5322
5329
5323 2002-02-03 Fernando Perez <fperez@colorado.edu>
5330 2002-02-03 Fernando Perez <fperez@colorado.edu>
5324
5331
5325 * IPython/iplib.py (install_first_time): Added comment on how to
5332 * IPython/iplib.py (install_first_time): Added comment on how to
5326 configure the color options for first-time users. Put a <return>
5333 configure the color options for first-time users. Put a <return>
5327 request at the end so that small-terminal users get a chance to
5334 request at the end so that small-terminal users get a chance to
5328 read the startup info.
5335 read the startup info.
5329
5336
5330 2002-01-23 Fernando Perez <fperez@colorado.edu>
5337 2002-01-23 Fernando Perez <fperez@colorado.edu>
5331
5338
5332 * IPython/iplib.py (CachedOutput.update): Changed output memory
5339 * IPython/iplib.py (CachedOutput.update): Changed output memory
5333 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5340 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5334 input history we still use _i. Did this b/c these variable are
5341 input history we still use _i. Did this b/c these variable are
5335 very commonly used in interactive work, so the less we need to
5342 very commonly used in interactive work, so the less we need to
5336 type the better off we are.
5343 type the better off we are.
5337 (Magic.magic_prun): updated @prun to better handle the namespaces
5344 (Magic.magic_prun): updated @prun to better handle the namespaces
5338 the file will run in, including a fix for __name__ not being set
5345 the file will run in, including a fix for __name__ not being set
5339 before.
5346 before.
5340
5347
5341 2002-01-20 Fernando Perez <fperez@colorado.edu>
5348 2002-01-20 Fernando Perez <fperez@colorado.edu>
5342
5349
5343 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5350 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5344 extra garbage for Python 2.2. Need to look more carefully into
5351 extra garbage for Python 2.2. Need to look more carefully into
5345 this later.
5352 this later.
5346
5353
5347 2002-01-19 Fernando Perez <fperez@colorado.edu>
5354 2002-01-19 Fernando Perez <fperez@colorado.edu>
5348
5355
5349 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5356 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5350 display SyntaxError exceptions properly formatted when they occur
5357 display SyntaxError exceptions properly formatted when they occur
5351 (they can be triggered by imported code).
5358 (they can be triggered by imported code).
5352
5359
5353 2002-01-18 Fernando Perez <fperez@colorado.edu>
5360 2002-01-18 Fernando Perez <fperez@colorado.edu>
5354
5361
5355 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5362 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5356 SyntaxError exceptions are reported nicely formatted, instead of
5363 SyntaxError exceptions are reported nicely formatted, instead of
5357 spitting out only offset information as before.
5364 spitting out only offset information as before.
5358 (Magic.magic_prun): Added the @prun function for executing
5365 (Magic.magic_prun): Added the @prun function for executing
5359 programs with command line args inside IPython.
5366 programs with command line args inside IPython.
5360
5367
5361 2002-01-16 Fernando Perez <fperez@colorado.edu>
5368 2002-01-16 Fernando Perez <fperez@colorado.edu>
5362
5369
5363 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5370 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5364 to *not* include the last item given in a range. This brings their
5371 to *not* include the last item given in a range. This brings their
5365 behavior in line with Python's slicing:
5372 behavior in line with Python's slicing:
5366 a[n1:n2] -> a[n1]...a[n2-1]
5373 a[n1:n2] -> a[n1]...a[n2-1]
5367 It may be a bit less convenient, but I prefer to stick to Python's
5374 It may be a bit less convenient, but I prefer to stick to Python's
5368 conventions *everywhere*, so users never have to wonder.
5375 conventions *everywhere*, so users never have to wonder.
5369 (Magic.magic_macro): Added @macro function to ease the creation of
5376 (Magic.magic_macro): Added @macro function to ease the creation of
5370 macros.
5377 macros.
5371
5378
5372 2002-01-05 Fernando Perez <fperez@colorado.edu>
5379 2002-01-05 Fernando Perez <fperez@colorado.edu>
5373
5380
5374 * Released 0.2.4.
5381 * Released 0.2.4.
5375
5382
5376 * IPython/iplib.py (Magic.magic_pdef):
5383 * IPython/iplib.py (Magic.magic_pdef):
5377 (InteractiveShell.safe_execfile): report magic lines and error
5384 (InteractiveShell.safe_execfile): report magic lines and error
5378 lines without line numbers so one can easily copy/paste them for
5385 lines without line numbers so one can easily copy/paste them for
5379 re-execution.
5386 re-execution.
5380
5387
5381 * Updated manual with recent changes.
5388 * Updated manual with recent changes.
5382
5389
5383 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5390 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5384 docstring printing when class? is called. Very handy for knowing
5391 docstring printing when class? is called. Very handy for knowing
5385 how to create class instances (as long as __init__ is well
5392 how to create class instances (as long as __init__ is well
5386 documented, of course :)
5393 documented, of course :)
5387 (Magic.magic_doc): print both class and constructor docstrings.
5394 (Magic.magic_doc): print both class and constructor docstrings.
5388 (Magic.magic_pdef): give constructor info if passed a class and
5395 (Magic.magic_pdef): give constructor info if passed a class and
5389 __call__ info for callable object instances.
5396 __call__ info for callable object instances.
5390
5397
5391 2002-01-04 Fernando Perez <fperez@colorado.edu>
5398 2002-01-04 Fernando Perez <fperez@colorado.edu>
5392
5399
5393 * Made deep_reload() off by default. It doesn't always work
5400 * Made deep_reload() off by default. It doesn't always work
5394 exactly as intended, so it's probably safer to have it off. It's
5401 exactly as intended, so it's probably safer to have it off. It's
5395 still available as dreload() anyway, so nothing is lost.
5402 still available as dreload() anyway, so nothing is lost.
5396
5403
5397 2002-01-02 Fernando Perez <fperez@colorado.edu>
5404 2002-01-02 Fernando Perez <fperez@colorado.edu>
5398
5405
5399 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5406 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5400 so I wanted an updated release).
5407 so I wanted an updated release).
5401
5408
5402 2001-12-27 Fernando Perez <fperez@colorado.edu>
5409 2001-12-27 Fernando Perez <fperez@colorado.edu>
5403
5410
5404 * IPython/iplib.py (InteractiveShell.interact): Added the original
5411 * IPython/iplib.py (InteractiveShell.interact): Added the original
5405 code from 'code.py' for this module in order to change the
5412 code from 'code.py' for this module in order to change the
5406 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5413 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5407 the history cache would break when the user hit Ctrl-C, and
5414 the history cache would break when the user hit Ctrl-C, and
5408 interact() offers no way to add any hooks to it.
5415 interact() offers no way to add any hooks to it.
5409
5416
5410 2001-12-23 Fernando Perez <fperez@colorado.edu>
5417 2001-12-23 Fernando Perez <fperez@colorado.edu>
5411
5418
5412 * setup.py: added check for 'MANIFEST' before trying to remove
5419 * setup.py: added check for 'MANIFEST' before trying to remove
5413 it. Thanks to Sean Reifschneider.
5420 it. Thanks to Sean Reifschneider.
5414
5421
5415 2001-12-22 Fernando Perez <fperez@colorado.edu>
5422 2001-12-22 Fernando Perez <fperez@colorado.edu>
5416
5423
5417 * Released 0.2.2.
5424 * Released 0.2.2.
5418
5425
5419 * Finished (reasonably) writing the manual. Later will add the
5426 * Finished (reasonably) writing the manual. Later will add the
5420 python-standard navigation stylesheets, but for the time being
5427 python-standard navigation stylesheets, but for the time being
5421 it's fairly complete. Distribution will include html and pdf
5428 it's fairly complete. Distribution will include html and pdf
5422 versions.
5429 versions.
5423
5430
5424 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5431 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5425 (MayaVi author).
5432 (MayaVi author).
5426
5433
5427 2001-12-21 Fernando Perez <fperez@colorado.edu>
5434 2001-12-21 Fernando Perez <fperez@colorado.edu>
5428
5435
5429 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5436 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5430 good public release, I think (with the manual and the distutils
5437 good public release, I think (with the manual and the distutils
5431 installer). The manual can use some work, but that can go
5438 installer). The manual can use some work, but that can go
5432 slowly. Otherwise I think it's quite nice for end users. Next
5439 slowly. Otherwise I think it's quite nice for end users. Next
5433 summer, rewrite the guts of it...
5440 summer, rewrite the guts of it...
5434
5441
5435 * Changed format of ipythonrc files to use whitespace as the
5442 * Changed format of ipythonrc files to use whitespace as the
5436 separator instead of an explicit '='. Cleaner.
5443 separator instead of an explicit '='. Cleaner.
5437
5444
5438 2001-12-20 Fernando Perez <fperez@colorado.edu>
5445 2001-12-20 Fernando Perez <fperez@colorado.edu>
5439
5446
5440 * Started a manual in LyX. For now it's just a quick merge of the
5447 * Started a manual in LyX. For now it's just a quick merge of the
5441 various internal docstrings and READMEs. Later it may grow into a
5448 various internal docstrings and READMEs. Later it may grow into a
5442 nice, full-blown manual.
5449 nice, full-blown manual.
5443
5450
5444 * Set up a distutils based installer. Installation should now be
5451 * Set up a distutils based installer. Installation should now be
5445 trivially simple for end-users.
5452 trivially simple for end-users.
5446
5453
5447 2001-12-11 Fernando Perez <fperez@colorado.edu>
5454 2001-12-11 Fernando Perez <fperez@colorado.edu>
5448
5455
5449 * Released 0.2.0. First public release, announced it at
5456 * Released 0.2.0. First public release, announced it at
5450 comp.lang.python. From now on, just bugfixes...
5457 comp.lang.python. From now on, just bugfixes...
5451
5458
5452 * Went through all the files, set copyright/license notices and
5459 * Went through all the files, set copyright/license notices and
5453 cleaned up things. Ready for release.
5460 cleaned up things. Ready for release.
5454
5461
5455 2001-12-10 Fernando Perez <fperez@colorado.edu>
5462 2001-12-10 Fernando Perez <fperez@colorado.edu>
5456
5463
5457 * Changed the first-time installer not to use tarfiles. It's more
5464 * Changed the first-time installer not to use tarfiles. It's more
5458 robust now and less unix-dependent. Also makes it easier for
5465 robust now and less unix-dependent. Also makes it easier for
5459 people to later upgrade versions.
5466 people to later upgrade versions.
5460
5467
5461 * Changed @exit to @abort to reflect the fact that it's pretty
5468 * Changed @exit to @abort to reflect the fact that it's pretty
5462 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5469 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5463 becomes significant only when IPyhton is embedded: in that case,
5470 becomes significant only when IPyhton is embedded: in that case,
5464 C-D closes IPython only, but @abort kills the enclosing program
5471 C-D closes IPython only, but @abort kills the enclosing program
5465 too (unless it had called IPython inside a try catching
5472 too (unless it had called IPython inside a try catching
5466 SystemExit).
5473 SystemExit).
5467
5474
5468 * Created Shell module which exposes the actuall IPython Shell
5475 * Created Shell module which exposes the actuall IPython Shell
5469 classes, currently the normal and the embeddable one. This at
5476 classes, currently the normal and the embeddable one. This at
5470 least offers a stable interface we won't need to change when
5477 least offers a stable interface we won't need to change when
5471 (later) the internals are rewritten. That rewrite will be confined
5478 (later) the internals are rewritten. That rewrite will be confined
5472 to iplib and ipmaker, but the Shell interface should remain as is.
5479 to iplib and ipmaker, but the Shell interface should remain as is.
5473
5480
5474 * Added embed module which offers an embeddable IPShell object,
5481 * Added embed module which offers an embeddable IPShell object,
5475 useful to fire up IPython *inside* a running program. Great for
5482 useful to fire up IPython *inside* a running program. Great for
5476 debugging or dynamical data analysis.
5483 debugging or dynamical data analysis.
5477
5484
5478 2001-12-08 Fernando Perez <fperez@colorado.edu>
5485 2001-12-08 Fernando Perez <fperez@colorado.edu>
5479
5486
5480 * Fixed small bug preventing seeing info from methods of defined
5487 * Fixed small bug preventing seeing info from methods of defined
5481 objects (incorrect namespace in _ofind()).
5488 objects (incorrect namespace in _ofind()).
5482
5489
5483 * Documentation cleanup. Moved the main usage docstrings to a
5490 * Documentation cleanup. Moved the main usage docstrings to a
5484 separate file, usage.py (cleaner to maintain, and hopefully in the
5491 separate file, usage.py (cleaner to maintain, and hopefully in the
5485 future some perlpod-like way of producing interactive, man and
5492 future some perlpod-like way of producing interactive, man and
5486 html docs out of it will be found).
5493 html docs out of it will be found).
5487
5494
5488 * Added @profile to see your profile at any time.
5495 * Added @profile to see your profile at any time.
5489
5496
5490 * Added @p as an alias for 'print'. It's especially convenient if
5497 * Added @p as an alias for 'print'. It's especially convenient if
5491 using automagic ('p x' prints x).
5498 using automagic ('p x' prints x).
5492
5499
5493 * Small cleanups and fixes after a pychecker run.
5500 * Small cleanups and fixes after a pychecker run.
5494
5501
5495 * Changed the @cd command to handle @cd - and @cd -<n> for
5502 * Changed the @cd command to handle @cd - and @cd -<n> for
5496 visiting any directory in _dh.
5503 visiting any directory in _dh.
5497
5504
5498 * Introduced _dh, a history of visited directories. @dhist prints
5505 * Introduced _dh, a history of visited directories. @dhist prints
5499 it out with numbers.
5506 it out with numbers.
5500
5507
5501 2001-12-07 Fernando Perez <fperez@colorado.edu>
5508 2001-12-07 Fernando Perez <fperez@colorado.edu>
5502
5509
5503 * Released 0.1.22
5510 * Released 0.1.22
5504
5511
5505 * Made initialization a bit more robust against invalid color
5512 * Made initialization a bit more robust against invalid color
5506 options in user input (exit, not traceback-crash).
5513 options in user input (exit, not traceback-crash).
5507
5514
5508 * Changed the bug crash reporter to write the report only in the
5515 * Changed the bug crash reporter to write the report only in the
5509 user's .ipython directory. That way IPython won't litter people's
5516 user's .ipython directory. That way IPython won't litter people's
5510 hard disks with crash files all over the place. Also print on
5517 hard disks with crash files all over the place. Also print on
5511 screen the necessary mail command.
5518 screen the necessary mail command.
5512
5519
5513 * With the new ultraTB, implemented LightBG color scheme for light
5520 * With the new ultraTB, implemented LightBG color scheme for light
5514 background terminals. A lot of people like white backgrounds, so I
5521 background terminals. A lot of people like white backgrounds, so I
5515 guess we should at least give them something readable.
5522 guess we should at least give them something readable.
5516
5523
5517 2001-12-06 Fernando Perez <fperez@colorado.edu>
5524 2001-12-06 Fernando Perez <fperez@colorado.edu>
5518
5525
5519 * Modified the structure of ultraTB. Now there's a proper class
5526 * Modified the structure of ultraTB. Now there's a proper class
5520 for tables of color schemes which allow adding schemes easily and
5527 for tables of color schemes which allow adding schemes easily and
5521 switching the active scheme without creating a new instance every
5528 switching the active scheme without creating a new instance every
5522 time (which was ridiculous). The syntax for creating new schemes
5529 time (which was ridiculous). The syntax for creating new schemes
5523 is also cleaner. I think ultraTB is finally done, with a clean
5530 is also cleaner. I think ultraTB is finally done, with a clean
5524 class structure. Names are also much cleaner (now there's proper
5531 class structure. Names are also much cleaner (now there's proper
5525 color tables, no need for every variable to also have 'color' in
5532 color tables, no need for every variable to also have 'color' in
5526 its name).
5533 its name).
5527
5534
5528 * Broke down genutils into separate files. Now genutils only
5535 * Broke down genutils into separate files. Now genutils only
5529 contains utility functions, and classes have been moved to their
5536 contains utility functions, and classes have been moved to their
5530 own files (they had enough independent functionality to warrant
5537 own files (they had enough independent functionality to warrant
5531 it): ConfigLoader, OutputTrap, Struct.
5538 it): ConfigLoader, OutputTrap, Struct.
5532
5539
5533 2001-12-05 Fernando Perez <fperez@colorado.edu>
5540 2001-12-05 Fernando Perez <fperez@colorado.edu>
5534
5541
5535 * IPython turns 21! Released version 0.1.21, as a candidate for
5542 * IPython turns 21! Released version 0.1.21, as a candidate for
5536 public consumption. If all goes well, release in a few days.
5543 public consumption. If all goes well, release in a few days.
5537
5544
5538 * Fixed path bug (files in Extensions/ directory wouldn't be found
5545 * Fixed path bug (files in Extensions/ directory wouldn't be found
5539 unless IPython/ was explicitly in sys.path).
5546 unless IPython/ was explicitly in sys.path).
5540
5547
5541 * Extended the FlexCompleter class as MagicCompleter to allow
5548 * Extended the FlexCompleter class as MagicCompleter to allow
5542 completion of @-starting lines.
5549 completion of @-starting lines.
5543
5550
5544 * Created __release__.py file as a central repository for release
5551 * Created __release__.py file as a central repository for release
5545 info that other files can read from.
5552 info that other files can read from.
5546
5553
5547 * Fixed small bug in logging: when logging was turned on in
5554 * Fixed small bug in logging: when logging was turned on in
5548 mid-session, old lines with special meanings (!@?) were being
5555 mid-session, old lines with special meanings (!@?) were being
5549 logged without the prepended comment, which is necessary since
5556 logged without the prepended comment, which is necessary since
5550 they are not truly valid python syntax. This should make session
5557 they are not truly valid python syntax. This should make session
5551 restores produce less errors.
5558 restores produce less errors.
5552
5559
5553 * The namespace cleanup forced me to make a FlexCompleter class
5560 * The namespace cleanup forced me to make a FlexCompleter class
5554 which is nothing but a ripoff of rlcompleter, but with selectable
5561 which is nothing but a ripoff of rlcompleter, but with selectable
5555 namespace (rlcompleter only works in __main__.__dict__). I'll try
5562 namespace (rlcompleter only works in __main__.__dict__). I'll try
5556 to submit a note to the authors to see if this change can be
5563 to submit a note to the authors to see if this change can be
5557 incorporated in future rlcompleter releases (Dec.6: done)
5564 incorporated in future rlcompleter releases (Dec.6: done)
5558
5565
5559 * More fixes to namespace handling. It was a mess! Now all
5566 * More fixes to namespace handling. It was a mess! Now all
5560 explicit references to __main__.__dict__ are gone (except when
5567 explicit references to __main__.__dict__ are gone (except when
5561 really needed) and everything is handled through the namespace
5568 really needed) and everything is handled through the namespace
5562 dicts in the IPython instance. We seem to be getting somewhere
5569 dicts in the IPython instance. We seem to be getting somewhere
5563 with this, finally...
5570 with this, finally...
5564
5571
5565 * Small documentation updates.
5572 * Small documentation updates.
5566
5573
5567 * Created the Extensions directory under IPython (with an
5574 * Created the Extensions directory under IPython (with an
5568 __init__.py). Put the PhysicalQ stuff there. This directory should
5575 __init__.py). Put the PhysicalQ stuff there. This directory should
5569 be used for all special-purpose extensions.
5576 be used for all special-purpose extensions.
5570
5577
5571 * File renaming:
5578 * File renaming:
5572 ipythonlib --> ipmaker
5579 ipythonlib --> ipmaker
5573 ipplib --> iplib
5580 ipplib --> iplib
5574 This makes a bit more sense in terms of what these files actually do.
5581 This makes a bit more sense in terms of what these files actually do.
5575
5582
5576 * Moved all the classes and functions in ipythonlib to ipplib, so
5583 * Moved all the classes and functions in ipythonlib to ipplib, so
5577 now ipythonlib only has make_IPython(). This will ease up its
5584 now ipythonlib only has make_IPython(). This will ease up its
5578 splitting in smaller functional chunks later.
5585 splitting in smaller functional chunks later.
5579
5586
5580 * Cleaned up (done, I think) output of @whos. Better column
5587 * Cleaned up (done, I think) output of @whos. Better column
5581 formatting, and now shows str(var) for as much as it can, which is
5588 formatting, and now shows str(var) for as much as it can, which is
5582 typically what one gets with a 'print var'.
5589 typically what one gets with a 'print var'.
5583
5590
5584 2001-12-04 Fernando Perez <fperez@colorado.edu>
5591 2001-12-04 Fernando Perez <fperez@colorado.edu>
5585
5592
5586 * Fixed namespace problems. Now builtin/IPyhton/user names get
5593 * Fixed namespace problems. Now builtin/IPyhton/user names get
5587 properly reported in their namespace. Internal namespace handling
5594 properly reported in their namespace. Internal namespace handling
5588 is finally getting decent (not perfect yet, but much better than
5595 is finally getting decent (not perfect yet, but much better than
5589 the ad-hoc mess we had).
5596 the ad-hoc mess we had).
5590
5597
5591 * Removed -exit option. If people just want to run a python
5598 * Removed -exit option. If people just want to run a python
5592 script, that's what the normal interpreter is for. Less
5599 script, that's what the normal interpreter is for. Less
5593 unnecessary options, less chances for bugs.
5600 unnecessary options, less chances for bugs.
5594
5601
5595 * Added a crash handler which generates a complete post-mortem if
5602 * Added a crash handler which generates a complete post-mortem if
5596 IPython crashes. This will help a lot in tracking bugs down the
5603 IPython crashes. This will help a lot in tracking bugs down the
5597 road.
5604 road.
5598
5605
5599 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5606 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5600 which were boud to functions being reassigned would bypass the
5607 which were boud to functions being reassigned would bypass the
5601 logger, breaking the sync of _il with the prompt counter. This
5608 logger, breaking the sync of _il with the prompt counter. This
5602 would then crash IPython later when a new line was logged.
5609 would then crash IPython later when a new line was logged.
5603
5610
5604 2001-12-02 Fernando Perez <fperez@colorado.edu>
5611 2001-12-02 Fernando Perez <fperez@colorado.edu>
5605
5612
5606 * Made IPython a package. This means people don't have to clutter
5613 * Made IPython a package. This means people don't have to clutter
5607 their sys.path with yet another directory. Changed the INSTALL
5614 their sys.path with yet another directory. Changed the INSTALL
5608 file accordingly.
5615 file accordingly.
5609
5616
5610 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5617 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5611 sorts its output (so @who shows it sorted) and @whos formats the
5618 sorts its output (so @who shows it sorted) and @whos formats the
5612 table according to the width of the first column. Nicer, easier to
5619 table according to the width of the first column. Nicer, easier to
5613 read. Todo: write a generic table_format() which takes a list of
5620 read. Todo: write a generic table_format() which takes a list of
5614 lists and prints it nicely formatted, with optional row/column
5621 lists and prints it nicely formatted, with optional row/column
5615 separators and proper padding and justification.
5622 separators and proper padding and justification.
5616
5623
5617 * Released 0.1.20
5624 * Released 0.1.20
5618
5625
5619 * Fixed bug in @log which would reverse the inputcache list (a
5626 * Fixed bug in @log which would reverse the inputcache list (a
5620 copy operation was missing).
5627 copy operation was missing).
5621
5628
5622 * Code cleanup. @config was changed to use page(). Better, since
5629 * Code cleanup. @config was changed to use page(). Better, since
5623 its output is always quite long.
5630 its output is always quite long.
5624
5631
5625 * Itpl is back as a dependency. I was having too many problems
5632 * Itpl is back as a dependency. I was having too many problems
5626 getting the parametric aliases to work reliably, and it's just
5633 getting the parametric aliases to work reliably, and it's just
5627 easier to code weird string operations with it than playing %()s
5634 easier to code weird string operations with it than playing %()s
5628 games. It's only ~6k, so I don't think it's too big a deal.
5635 games. It's only ~6k, so I don't think it's too big a deal.
5629
5636
5630 * Found (and fixed) a very nasty bug with history. !lines weren't
5637 * Found (and fixed) a very nasty bug with history. !lines weren't
5631 getting cached, and the out of sync caches would crash
5638 getting cached, and the out of sync caches would crash
5632 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5639 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5633 division of labor a bit better. Bug fixed, cleaner structure.
5640 division of labor a bit better. Bug fixed, cleaner structure.
5634
5641
5635 2001-12-01 Fernando Perez <fperez@colorado.edu>
5642 2001-12-01 Fernando Perez <fperez@colorado.edu>
5636
5643
5637 * Released 0.1.19
5644 * Released 0.1.19
5638
5645
5639 * Added option -n to @hist to prevent line number printing. Much
5646 * Added option -n to @hist to prevent line number printing. Much
5640 easier to copy/paste code this way.
5647 easier to copy/paste code this way.
5641
5648
5642 * Created global _il to hold the input list. Allows easy
5649 * Created global _il to hold the input list. Allows easy
5643 re-execution of blocks of code by slicing it (inspired by Janko's
5650 re-execution of blocks of code by slicing it (inspired by Janko's
5644 comment on 'macros').
5651 comment on 'macros').
5645
5652
5646 * Small fixes and doc updates.
5653 * Small fixes and doc updates.
5647
5654
5648 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5655 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5649 much too fragile with automagic. Handles properly multi-line
5656 much too fragile with automagic. Handles properly multi-line
5650 statements and takes parameters.
5657 statements and takes parameters.
5651
5658
5652 2001-11-30 Fernando Perez <fperez@colorado.edu>
5659 2001-11-30 Fernando Perez <fperez@colorado.edu>
5653
5660
5654 * Version 0.1.18 released.
5661 * Version 0.1.18 released.
5655
5662
5656 * Fixed nasty namespace bug in initial module imports.
5663 * Fixed nasty namespace bug in initial module imports.
5657
5664
5658 * Added copyright/license notes to all code files (except
5665 * Added copyright/license notes to all code files (except
5659 DPyGetOpt). For the time being, LGPL. That could change.
5666 DPyGetOpt). For the time being, LGPL. That could change.
5660
5667
5661 * Rewrote a much nicer README, updated INSTALL, cleaned up
5668 * Rewrote a much nicer README, updated INSTALL, cleaned up
5662 ipythonrc-* samples.
5669 ipythonrc-* samples.
5663
5670
5664 * Overall code/documentation cleanup. Basically ready for
5671 * Overall code/documentation cleanup. Basically ready for
5665 release. Only remaining thing: licence decision (LGPL?).
5672 release. Only remaining thing: licence decision (LGPL?).
5666
5673
5667 * Converted load_config to a class, ConfigLoader. Now recursion
5674 * Converted load_config to a class, ConfigLoader. Now recursion
5668 control is better organized. Doesn't include the same file twice.
5675 control is better organized. Doesn't include the same file twice.
5669
5676
5670 2001-11-29 Fernando Perez <fperez@colorado.edu>
5677 2001-11-29 Fernando Perez <fperez@colorado.edu>
5671
5678
5672 * Got input history working. Changed output history variables from
5679 * Got input history working. Changed output history variables from
5673 _p to _o so that _i is for input and _o for output. Just cleaner
5680 _p to _o so that _i is for input and _o for output. Just cleaner
5674 convention.
5681 convention.
5675
5682
5676 * Implemented parametric aliases. This pretty much allows the
5683 * Implemented parametric aliases. This pretty much allows the
5677 alias system to offer full-blown shell convenience, I think.
5684 alias system to offer full-blown shell convenience, I think.
5678
5685
5679 * Version 0.1.17 released, 0.1.18 opened.
5686 * Version 0.1.17 released, 0.1.18 opened.
5680
5687
5681 * dot_ipython/ipythonrc (alias): added documentation.
5688 * dot_ipython/ipythonrc (alias): added documentation.
5682 (xcolor): Fixed small bug (xcolors -> xcolor)
5689 (xcolor): Fixed small bug (xcolors -> xcolor)
5683
5690
5684 * Changed the alias system. Now alias is a magic command to define
5691 * Changed the alias system. Now alias is a magic command to define
5685 aliases just like the shell. Rationale: the builtin magics should
5692 aliases just like the shell. Rationale: the builtin magics should
5686 be there for things deeply connected to IPython's
5693 be there for things deeply connected to IPython's
5687 architecture. And this is a much lighter system for what I think
5694 architecture. And this is a much lighter system for what I think
5688 is the really important feature: allowing users to define quickly
5695 is the really important feature: allowing users to define quickly
5689 magics that will do shell things for them, so they can customize
5696 magics that will do shell things for them, so they can customize
5690 IPython easily to match their work habits. If someone is really
5697 IPython easily to match their work habits. If someone is really
5691 desperate to have another name for a builtin alias, they can
5698 desperate to have another name for a builtin alias, they can
5692 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5699 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5693 works.
5700 works.
5694
5701
5695 2001-11-28 Fernando Perez <fperez@colorado.edu>
5702 2001-11-28 Fernando Perez <fperez@colorado.edu>
5696
5703
5697 * Changed @file so that it opens the source file at the proper
5704 * Changed @file so that it opens the source file at the proper
5698 line. Since it uses less, if your EDITOR environment is
5705 line. Since it uses less, if your EDITOR environment is
5699 configured, typing v will immediately open your editor of choice
5706 configured, typing v will immediately open your editor of choice
5700 right at the line where the object is defined. Not as quick as
5707 right at the line where the object is defined. Not as quick as
5701 having a direct @edit command, but for all intents and purposes it
5708 having a direct @edit command, but for all intents and purposes it
5702 works. And I don't have to worry about writing @edit to deal with
5709 works. And I don't have to worry about writing @edit to deal with
5703 all the editors, less does that.
5710 all the editors, less does that.
5704
5711
5705 * Version 0.1.16 released, 0.1.17 opened.
5712 * Version 0.1.16 released, 0.1.17 opened.
5706
5713
5707 * Fixed some nasty bugs in the page/page_dumb combo that could
5714 * Fixed some nasty bugs in the page/page_dumb combo that could
5708 crash IPython.
5715 crash IPython.
5709
5716
5710 2001-11-27 Fernando Perez <fperez@colorado.edu>
5717 2001-11-27 Fernando Perez <fperez@colorado.edu>
5711
5718
5712 * Version 0.1.15 released, 0.1.16 opened.
5719 * Version 0.1.15 released, 0.1.16 opened.
5713
5720
5714 * Finally got ? and ?? to work for undefined things: now it's
5721 * Finally got ? and ?? to work for undefined things: now it's
5715 possible to type {}.get? and get information about the get method
5722 possible to type {}.get? and get information about the get method
5716 of dicts, or os.path? even if only os is defined (so technically
5723 of dicts, or os.path? even if only os is defined (so technically
5717 os.path isn't). Works at any level. For example, after import os,
5724 os.path isn't). Works at any level. For example, after import os,
5718 os?, os.path?, os.path.abspath? all work. This is great, took some
5725 os?, os.path?, os.path.abspath? all work. This is great, took some
5719 work in _ofind.
5726 work in _ofind.
5720
5727
5721 * Fixed more bugs with logging. The sanest way to do it was to add
5728 * Fixed more bugs with logging. The sanest way to do it was to add
5722 to @log a 'mode' parameter. Killed two in one shot (this mode
5729 to @log a 'mode' parameter. Killed two in one shot (this mode
5723 option was a request of Janko's). I think it's finally clean
5730 option was a request of Janko's). I think it's finally clean
5724 (famous last words).
5731 (famous last words).
5725
5732
5726 * Added a page_dumb() pager which does a decent job of paging on
5733 * Added a page_dumb() pager which does a decent job of paging on
5727 screen, if better things (like less) aren't available. One less
5734 screen, if better things (like less) aren't available. One less
5728 unix dependency (someday maybe somebody will port this to
5735 unix dependency (someday maybe somebody will port this to
5729 windows).
5736 windows).
5730
5737
5731 * Fixed problem in magic_log: would lock of logging out if log
5738 * Fixed problem in magic_log: would lock of logging out if log
5732 creation failed (because it would still think it had succeeded).
5739 creation failed (because it would still think it had succeeded).
5733
5740
5734 * Improved the page() function using curses to auto-detect screen
5741 * Improved the page() function using curses to auto-detect screen
5735 size. Now it can make a much better decision on whether to print
5742 size. Now it can make a much better decision on whether to print
5736 or page a string. Option screen_length was modified: a value 0
5743 or page a string. Option screen_length was modified: a value 0
5737 means auto-detect, and that's the default now.
5744 means auto-detect, and that's the default now.
5738
5745
5739 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5746 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5740 go out. I'll test it for a few days, then talk to Janko about
5747 go out. I'll test it for a few days, then talk to Janko about
5741 licences and announce it.
5748 licences and announce it.
5742
5749
5743 * Fixed the length of the auto-generated ---> prompt which appears
5750 * Fixed the length of the auto-generated ---> prompt which appears
5744 for auto-parens and auto-quotes. Getting this right isn't trivial,
5751 for auto-parens and auto-quotes. Getting this right isn't trivial,
5745 with all the color escapes, different prompt types and optional
5752 with all the color escapes, different prompt types and optional
5746 separators. But it seems to be working in all the combinations.
5753 separators. But it seems to be working in all the combinations.
5747
5754
5748 2001-11-26 Fernando Perez <fperez@colorado.edu>
5755 2001-11-26 Fernando Perez <fperez@colorado.edu>
5749
5756
5750 * Wrote a regexp filter to get option types from the option names
5757 * Wrote a regexp filter to get option types from the option names
5751 string. This eliminates the need to manually keep two duplicate
5758 string. This eliminates the need to manually keep two duplicate
5752 lists.
5759 lists.
5753
5760
5754 * Removed the unneeded check_option_names. Now options are handled
5761 * Removed the unneeded check_option_names. Now options are handled
5755 in a much saner manner and it's easy to visually check that things
5762 in a much saner manner and it's easy to visually check that things
5756 are ok.
5763 are ok.
5757
5764
5758 * Updated version numbers on all files I modified to carry a
5765 * Updated version numbers on all files I modified to carry a
5759 notice so Janko and Nathan have clear version markers.
5766 notice so Janko and Nathan have clear version markers.
5760
5767
5761 * Updated docstring for ultraTB with my changes. I should send
5768 * Updated docstring for ultraTB with my changes. I should send
5762 this to Nathan.
5769 this to Nathan.
5763
5770
5764 * Lots of small fixes. Ran everything through pychecker again.
5771 * Lots of small fixes. Ran everything through pychecker again.
5765
5772
5766 * Made loading of deep_reload an cmd line option. If it's not too
5773 * Made loading of deep_reload an cmd line option. If it's not too
5767 kosher, now people can just disable it. With -nodeep_reload it's
5774 kosher, now people can just disable it. With -nodeep_reload it's
5768 still available as dreload(), it just won't overwrite reload().
5775 still available as dreload(), it just won't overwrite reload().
5769
5776
5770 * Moved many options to the no| form (-opt and -noopt
5777 * Moved many options to the no| form (-opt and -noopt
5771 accepted). Cleaner.
5778 accepted). Cleaner.
5772
5779
5773 * Changed magic_log so that if called with no parameters, it uses
5780 * Changed magic_log so that if called with no parameters, it uses
5774 'rotate' mode. That way auto-generated logs aren't automatically
5781 'rotate' mode. That way auto-generated logs aren't automatically
5775 over-written. For normal logs, now a backup is made if it exists
5782 over-written. For normal logs, now a backup is made if it exists
5776 (only 1 level of backups). A new 'backup' mode was added to the
5783 (only 1 level of backups). A new 'backup' mode was added to the
5777 Logger class to support this. This was a request by Janko.
5784 Logger class to support this. This was a request by Janko.
5778
5785
5779 * Added @logoff/@logon to stop/restart an active log.
5786 * Added @logoff/@logon to stop/restart an active log.
5780
5787
5781 * Fixed a lot of bugs in log saving/replay. It was pretty
5788 * Fixed a lot of bugs in log saving/replay. It was pretty
5782 broken. Now special lines (!@,/) appear properly in the command
5789 broken. Now special lines (!@,/) appear properly in the command
5783 history after a log replay.
5790 history after a log replay.
5784
5791
5785 * Tried and failed to implement full session saving via pickle. My
5792 * Tried and failed to implement full session saving via pickle. My
5786 idea was to pickle __main__.__dict__, but modules can't be
5793 idea was to pickle __main__.__dict__, but modules can't be
5787 pickled. This would be a better alternative to replaying logs, but
5794 pickled. This would be a better alternative to replaying logs, but
5788 seems quite tricky to get to work. Changed -session to be called
5795 seems quite tricky to get to work. Changed -session to be called
5789 -logplay, which more accurately reflects what it does. And if we
5796 -logplay, which more accurately reflects what it does. And if we
5790 ever get real session saving working, -session is now available.
5797 ever get real session saving working, -session is now available.
5791
5798
5792 * Implemented color schemes for prompts also. As for tracebacks,
5799 * Implemented color schemes for prompts also. As for tracebacks,
5793 currently only NoColor and Linux are supported. But now the
5800 currently only NoColor and Linux are supported. But now the
5794 infrastructure is in place, based on a generic ColorScheme
5801 infrastructure is in place, based on a generic ColorScheme
5795 class. So writing and activating new schemes both for the prompts
5802 class. So writing and activating new schemes both for the prompts
5796 and the tracebacks should be straightforward.
5803 and the tracebacks should be straightforward.
5797
5804
5798 * Version 0.1.13 released, 0.1.14 opened.
5805 * Version 0.1.13 released, 0.1.14 opened.
5799
5806
5800 * Changed handling of options for output cache. Now counter is
5807 * Changed handling of options for output cache. Now counter is
5801 hardwired starting at 1 and one specifies the maximum number of
5808 hardwired starting at 1 and one specifies the maximum number of
5802 entries *in the outcache* (not the max prompt counter). This is
5809 entries *in the outcache* (not the max prompt counter). This is
5803 much better, since many statements won't increase the cache
5810 much better, since many statements won't increase the cache
5804 count. It also eliminated some confusing options, now there's only
5811 count. It also eliminated some confusing options, now there's only
5805 one: cache_size.
5812 one: cache_size.
5806
5813
5807 * Added 'alias' magic function and magic_alias option in the
5814 * Added 'alias' magic function and magic_alias option in the
5808 ipythonrc file. Now the user can easily define whatever names he
5815 ipythonrc file. Now the user can easily define whatever names he
5809 wants for the magic functions without having to play weird
5816 wants for the magic functions without having to play weird
5810 namespace games. This gives IPython a real shell-like feel.
5817 namespace games. This gives IPython a real shell-like feel.
5811
5818
5812 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5819 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5813 @ or not).
5820 @ or not).
5814
5821
5815 This was one of the last remaining 'visible' bugs (that I know
5822 This was one of the last remaining 'visible' bugs (that I know
5816 of). I think if I can clean up the session loading so it works
5823 of). I think if I can clean up the session loading so it works
5817 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5824 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5818 about licensing).
5825 about licensing).
5819
5826
5820 2001-11-25 Fernando Perez <fperez@colorado.edu>
5827 2001-11-25 Fernando Perez <fperez@colorado.edu>
5821
5828
5822 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5829 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5823 there's a cleaner distinction between what ? and ?? show.
5830 there's a cleaner distinction between what ? and ?? show.
5824
5831
5825 * Added screen_length option. Now the user can define his own
5832 * Added screen_length option. Now the user can define his own
5826 screen size for page() operations.
5833 screen size for page() operations.
5827
5834
5828 * Implemented magic shell-like functions with automatic code
5835 * Implemented magic shell-like functions with automatic code
5829 generation. Now adding another function is just a matter of adding
5836 generation. Now adding another function is just a matter of adding
5830 an entry to a dict, and the function is dynamically generated at
5837 an entry to a dict, and the function is dynamically generated at
5831 run-time. Python has some really cool features!
5838 run-time. Python has some really cool features!
5832
5839
5833 * Renamed many options to cleanup conventions a little. Now all
5840 * Renamed many options to cleanup conventions a little. Now all
5834 are lowercase, and only underscores where needed. Also in the code
5841 are lowercase, and only underscores where needed. Also in the code
5835 option name tables are clearer.
5842 option name tables are clearer.
5836
5843
5837 * Changed prompts a little. Now input is 'In [n]:' instead of
5844 * Changed prompts a little. Now input is 'In [n]:' instead of
5838 'In[n]:='. This allows it the numbers to be aligned with the
5845 'In[n]:='. This allows it the numbers to be aligned with the
5839 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5846 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5840 Python (it was a Mathematica thing). The '...' continuation prompt
5847 Python (it was a Mathematica thing). The '...' continuation prompt
5841 was also changed a little to align better.
5848 was also changed a little to align better.
5842
5849
5843 * Fixed bug when flushing output cache. Not all _p<n> variables
5850 * Fixed bug when flushing output cache. Not all _p<n> variables
5844 exist, so their deletion needs to be wrapped in a try:
5851 exist, so their deletion needs to be wrapped in a try:
5845
5852
5846 * Figured out how to properly use inspect.formatargspec() (it
5853 * Figured out how to properly use inspect.formatargspec() (it
5847 requires the args preceded by *). So I removed all the code from
5854 requires the args preceded by *). So I removed all the code from
5848 _get_pdef in Magic, which was just replicating that.
5855 _get_pdef in Magic, which was just replicating that.
5849
5856
5850 * Added test to prefilter to allow redefining magic function names
5857 * Added test to prefilter to allow redefining magic function names
5851 as variables. This is ok, since the @ form is always available,
5858 as variables. This is ok, since the @ form is always available,
5852 but whe should allow the user to define a variable called 'ls' if
5859 but whe should allow the user to define a variable called 'ls' if
5853 he needs it.
5860 he needs it.
5854
5861
5855 * Moved the ToDo information from README into a separate ToDo.
5862 * Moved the ToDo information from README into a separate ToDo.
5856
5863
5857 * General code cleanup and small bugfixes. I think it's close to a
5864 * General code cleanup and small bugfixes. I think it's close to a
5858 state where it can be released, obviously with a big 'beta'
5865 state where it can be released, obviously with a big 'beta'
5859 warning on it.
5866 warning on it.
5860
5867
5861 * Got the magic function split to work. Now all magics are defined
5868 * Got the magic function split to work. Now all magics are defined
5862 in a separate class. It just organizes things a bit, and now
5869 in a separate class. It just organizes things a bit, and now
5863 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5870 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5864 was too long).
5871 was too long).
5865
5872
5866 * Changed @clear to @reset to avoid potential confusions with
5873 * Changed @clear to @reset to avoid potential confusions with
5867 the shell command clear. Also renamed @cl to @clear, which does
5874 the shell command clear. Also renamed @cl to @clear, which does
5868 exactly what people expect it to from their shell experience.
5875 exactly what people expect it to from their shell experience.
5869
5876
5870 Added a check to the @reset command (since it's so
5877 Added a check to the @reset command (since it's so
5871 destructive, it's probably a good idea to ask for confirmation).
5878 destructive, it's probably a good idea to ask for confirmation).
5872 But now reset only works for full namespace resetting. Since the
5879 But now reset only works for full namespace resetting. Since the
5873 del keyword is already there for deleting a few specific
5880 del keyword is already there for deleting a few specific
5874 variables, I don't see the point of having a redundant magic
5881 variables, I don't see the point of having a redundant magic
5875 function for the same task.
5882 function for the same task.
5876
5883
5877 2001-11-24 Fernando Perez <fperez@colorado.edu>
5884 2001-11-24 Fernando Perez <fperez@colorado.edu>
5878
5885
5879 * Updated the builtin docs (esp. the ? ones).
5886 * Updated the builtin docs (esp. the ? ones).
5880
5887
5881 * Ran all the code through pychecker. Not terribly impressed with
5888 * Ran all the code through pychecker. Not terribly impressed with
5882 it: lots of spurious warnings and didn't really find anything of
5889 it: lots of spurious warnings and didn't really find anything of
5883 substance (just a few modules being imported and not used).
5890 substance (just a few modules being imported and not used).
5884
5891
5885 * Implemented the new ultraTB functionality into IPython. New
5892 * Implemented the new ultraTB functionality into IPython. New
5886 option: xcolors. This chooses color scheme. xmode now only selects
5893 option: xcolors. This chooses color scheme. xmode now only selects
5887 between Plain and Verbose. Better orthogonality.
5894 between Plain and Verbose. Better orthogonality.
5888
5895
5889 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5896 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5890 mode and color scheme for the exception handlers. Now it's
5897 mode and color scheme for the exception handlers. Now it's
5891 possible to have the verbose traceback with no coloring.
5898 possible to have the verbose traceback with no coloring.
5892
5899
5893 2001-11-23 Fernando Perez <fperez@colorado.edu>
5900 2001-11-23 Fernando Perez <fperez@colorado.edu>
5894
5901
5895 * Version 0.1.12 released, 0.1.13 opened.
5902 * Version 0.1.12 released, 0.1.13 opened.
5896
5903
5897 * Removed option to set auto-quote and auto-paren escapes by
5904 * Removed option to set auto-quote and auto-paren escapes by
5898 user. The chances of breaking valid syntax are just too high. If
5905 user. The chances of breaking valid syntax are just too high. If
5899 someone *really* wants, they can always dig into the code.
5906 someone *really* wants, they can always dig into the code.
5900
5907
5901 * Made prompt separators configurable.
5908 * Made prompt separators configurable.
5902
5909
5903 2001-11-22 Fernando Perez <fperez@colorado.edu>
5910 2001-11-22 Fernando Perez <fperez@colorado.edu>
5904
5911
5905 * Small bugfixes in many places.
5912 * Small bugfixes in many places.
5906
5913
5907 * Removed the MyCompleter class from ipplib. It seemed redundant
5914 * Removed the MyCompleter class from ipplib. It seemed redundant
5908 with the C-p,C-n history search functionality. Less code to
5915 with the C-p,C-n history search functionality. Less code to
5909 maintain.
5916 maintain.
5910
5917
5911 * Moved all the original ipython.py code into ipythonlib.py. Right
5918 * Moved all the original ipython.py code into ipythonlib.py. Right
5912 now it's just one big dump into a function called make_IPython, so
5919 now it's just one big dump into a function called make_IPython, so
5913 no real modularity has been gained. But at least it makes the
5920 no real modularity has been gained. But at least it makes the
5914 wrapper script tiny, and since ipythonlib is a module, it gets
5921 wrapper script tiny, and since ipythonlib is a module, it gets
5915 compiled and startup is much faster.
5922 compiled and startup is much faster.
5916
5923
5917 This is a reasobably 'deep' change, so we should test it for a
5924 This is a reasobably 'deep' change, so we should test it for a
5918 while without messing too much more with the code.
5925 while without messing too much more with the code.
5919
5926
5920 2001-11-21 Fernando Perez <fperez@colorado.edu>
5927 2001-11-21 Fernando Perez <fperez@colorado.edu>
5921
5928
5922 * Version 0.1.11 released, 0.1.12 opened for further work.
5929 * Version 0.1.11 released, 0.1.12 opened for further work.
5923
5930
5924 * Removed dependency on Itpl. It was only needed in one place. It
5931 * Removed dependency on Itpl. It was only needed in one place. It
5925 would be nice if this became part of python, though. It makes life
5932 would be nice if this became part of python, though. It makes life
5926 *a lot* easier in some cases.
5933 *a lot* easier in some cases.
5927
5934
5928 * Simplified the prefilter code a bit. Now all handlers are
5935 * Simplified the prefilter code a bit. Now all handlers are
5929 expected to explicitly return a value (at least a blank string).
5936 expected to explicitly return a value (at least a blank string).
5930
5937
5931 * Heavy edits in ipplib. Removed the help system altogether. Now
5938 * Heavy edits in ipplib. Removed the help system altogether. Now
5932 obj?/?? is used for inspecting objects, a magic @doc prints
5939 obj?/?? is used for inspecting objects, a magic @doc prints
5933 docstrings, and full-blown Python help is accessed via the 'help'
5940 docstrings, and full-blown Python help is accessed via the 'help'
5934 keyword. This cleans up a lot of code (less to maintain) and does
5941 keyword. This cleans up a lot of code (less to maintain) and does
5935 the job. Since 'help' is now a standard Python component, might as
5942 the job. Since 'help' is now a standard Python component, might as
5936 well use it and remove duplicate functionality.
5943 well use it and remove duplicate functionality.
5937
5944
5938 Also removed the option to use ipplib as a standalone program. By
5945 Also removed the option to use ipplib as a standalone program. By
5939 now it's too dependent on other parts of IPython to function alone.
5946 now it's too dependent on other parts of IPython to function alone.
5940
5947
5941 * Fixed bug in genutils.pager. It would crash if the pager was
5948 * Fixed bug in genutils.pager. It would crash if the pager was
5942 exited immediately after opening (broken pipe).
5949 exited immediately after opening (broken pipe).
5943
5950
5944 * Trimmed down the VerboseTB reporting a little. The header is
5951 * Trimmed down the VerboseTB reporting a little. The header is
5945 much shorter now and the repeated exception arguments at the end
5952 much shorter now and the repeated exception arguments at the end
5946 have been removed. For interactive use the old header seemed a bit
5953 have been removed. For interactive use the old header seemed a bit
5947 excessive.
5954 excessive.
5948
5955
5949 * Fixed small bug in output of @whos for variables with multi-word
5956 * Fixed small bug in output of @whos for variables with multi-word
5950 types (only first word was displayed).
5957 types (only first word was displayed).
5951
5958
5952 2001-11-17 Fernando Perez <fperez@colorado.edu>
5959 2001-11-17 Fernando Perez <fperez@colorado.edu>
5953
5960
5954 * Version 0.1.10 released, 0.1.11 opened for further work.
5961 * Version 0.1.10 released, 0.1.11 opened for further work.
5955
5962
5956 * Modified dirs and friends. dirs now *returns* the stack (not
5963 * Modified dirs and friends. dirs now *returns* the stack (not
5957 prints), so one can manipulate it as a variable. Convenient to
5964 prints), so one can manipulate it as a variable. Convenient to
5958 travel along many directories.
5965 travel along many directories.
5959
5966
5960 * Fixed bug in magic_pdef: would only work with functions with
5967 * Fixed bug in magic_pdef: would only work with functions with
5961 arguments with default values.
5968 arguments with default values.
5962
5969
5963 2001-11-14 Fernando Perez <fperez@colorado.edu>
5970 2001-11-14 Fernando Perez <fperez@colorado.edu>
5964
5971
5965 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5972 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5966 example with IPython. Various other minor fixes and cleanups.
5973 example with IPython. Various other minor fixes and cleanups.
5967
5974
5968 * Version 0.1.9 released, 0.1.10 opened for further work.
5975 * Version 0.1.9 released, 0.1.10 opened for further work.
5969
5976
5970 * Added sys.path to the list of directories searched in the
5977 * Added sys.path to the list of directories searched in the
5971 execfile= option. It used to be the current directory and the
5978 execfile= option. It used to be the current directory and the
5972 user's IPYTHONDIR only.
5979 user's IPYTHONDIR only.
5973
5980
5974 2001-11-13 Fernando Perez <fperez@colorado.edu>
5981 2001-11-13 Fernando Perez <fperez@colorado.edu>
5975
5982
5976 * Reinstated the raw_input/prefilter separation that Janko had
5983 * Reinstated the raw_input/prefilter separation that Janko had
5977 initially. This gives a more convenient setup for extending the
5984 initially. This gives a more convenient setup for extending the
5978 pre-processor from the outside: raw_input always gets a string,
5985 pre-processor from the outside: raw_input always gets a string,
5979 and prefilter has to process it. We can then redefine prefilter
5986 and prefilter has to process it. We can then redefine prefilter
5980 from the outside and implement extensions for special
5987 from the outside and implement extensions for special
5981 purposes.
5988 purposes.
5982
5989
5983 Today I got one for inputting PhysicalQuantity objects
5990 Today I got one for inputting PhysicalQuantity objects
5984 (from Scientific) without needing any function calls at
5991 (from Scientific) without needing any function calls at
5985 all. Extremely convenient, and it's all done as a user-level
5992 all. Extremely convenient, and it's all done as a user-level
5986 extension (no IPython code was touched). Now instead of:
5993 extension (no IPython code was touched). Now instead of:
5987 a = PhysicalQuantity(4.2,'m/s**2')
5994 a = PhysicalQuantity(4.2,'m/s**2')
5988 one can simply say
5995 one can simply say
5989 a = 4.2 m/s**2
5996 a = 4.2 m/s**2
5990 or even
5997 or even
5991 a = 4.2 m/s^2
5998 a = 4.2 m/s^2
5992
5999
5993 I use this, but it's also a proof of concept: IPython really is
6000 I use this, but it's also a proof of concept: IPython really is
5994 fully user-extensible, even at the level of the parsing of the
6001 fully user-extensible, even at the level of the parsing of the
5995 command line. It's not trivial, but it's perfectly doable.
6002 command line. It's not trivial, but it's perfectly doable.
5996
6003
5997 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6004 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5998 the problem of modules being loaded in the inverse order in which
6005 the problem of modules being loaded in the inverse order in which
5999 they were defined in
6006 they were defined in
6000
6007
6001 * Version 0.1.8 released, 0.1.9 opened for further work.
6008 * Version 0.1.8 released, 0.1.9 opened for further work.
6002
6009
6003 * Added magics pdef, source and file. They respectively show the
6010 * Added magics pdef, source and file. They respectively show the
6004 definition line ('prototype' in C), source code and full python
6011 definition line ('prototype' in C), source code and full python
6005 file for any callable object. The object inspector oinfo uses
6012 file for any callable object. The object inspector oinfo uses
6006 these to show the same information.
6013 these to show the same information.
6007
6014
6008 * Version 0.1.7 released, 0.1.8 opened for further work.
6015 * Version 0.1.7 released, 0.1.8 opened for further work.
6009
6016
6010 * Separated all the magic functions into a class called Magic. The
6017 * Separated all the magic functions into a class called Magic. The
6011 InteractiveShell class was becoming too big for Xemacs to handle
6018 InteractiveShell class was becoming too big for Xemacs to handle
6012 (de-indenting a line would lock it up for 10 seconds while it
6019 (de-indenting a line would lock it up for 10 seconds while it
6013 backtracked on the whole class!)
6020 backtracked on the whole class!)
6014
6021
6015 FIXME: didn't work. It can be done, but right now namespaces are
6022 FIXME: didn't work. It can be done, but right now namespaces are
6016 all messed up. Do it later (reverted it for now, so at least
6023 all messed up. Do it later (reverted it for now, so at least
6017 everything works as before).
6024 everything works as before).
6018
6025
6019 * Got the object introspection system (magic_oinfo) working! I
6026 * Got the object introspection system (magic_oinfo) working! I
6020 think this is pretty much ready for release to Janko, so he can
6027 think this is pretty much ready for release to Janko, so he can
6021 test it for a while and then announce it. Pretty much 100% of what
6028 test it for a while and then announce it. Pretty much 100% of what
6022 I wanted for the 'phase 1' release is ready. Happy, tired.
6029 I wanted for the 'phase 1' release is ready. Happy, tired.
6023
6030
6024 2001-11-12 Fernando Perez <fperez@colorado.edu>
6031 2001-11-12 Fernando Perez <fperez@colorado.edu>
6025
6032
6026 * Version 0.1.6 released, 0.1.7 opened for further work.
6033 * Version 0.1.6 released, 0.1.7 opened for further work.
6027
6034
6028 * Fixed bug in printing: it used to test for truth before
6035 * Fixed bug in printing: it used to test for truth before
6029 printing, so 0 wouldn't print. Now checks for None.
6036 printing, so 0 wouldn't print. Now checks for None.
6030
6037
6031 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6038 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6032 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6039 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6033 reaches by hand into the outputcache. Think of a better way to do
6040 reaches by hand into the outputcache. Think of a better way to do
6034 this later.
6041 this later.
6035
6042
6036 * Various small fixes thanks to Nathan's comments.
6043 * Various small fixes thanks to Nathan's comments.
6037
6044
6038 * Changed magic_pprint to magic_Pprint. This way it doesn't
6045 * Changed magic_pprint to magic_Pprint. This way it doesn't
6039 collide with pprint() and the name is consistent with the command
6046 collide with pprint() and the name is consistent with the command
6040 line option.
6047 line option.
6041
6048
6042 * Changed prompt counter behavior to be fully like
6049 * Changed prompt counter behavior to be fully like
6043 Mathematica's. That is, even input that doesn't return a result
6050 Mathematica's. That is, even input that doesn't return a result
6044 raises the prompt counter. The old behavior was kind of confusing
6051 raises the prompt counter. The old behavior was kind of confusing
6045 (getting the same prompt number several times if the operation
6052 (getting the same prompt number several times if the operation
6046 didn't return a result).
6053 didn't return a result).
6047
6054
6048 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6055 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6049
6056
6050 * Fixed -Classic mode (wasn't working anymore).
6057 * Fixed -Classic mode (wasn't working anymore).
6051
6058
6052 * Added colored prompts using Nathan's new code. Colors are
6059 * Added colored prompts using Nathan's new code. Colors are
6053 currently hardwired, they can be user-configurable. For
6060 currently hardwired, they can be user-configurable. For
6054 developers, they can be chosen in file ipythonlib.py, at the
6061 developers, they can be chosen in file ipythonlib.py, at the
6055 beginning of the CachedOutput class def.
6062 beginning of the CachedOutput class def.
6056
6063
6057 2001-11-11 Fernando Perez <fperez@colorado.edu>
6064 2001-11-11 Fernando Perez <fperez@colorado.edu>
6058
6065
6059 * Version 0.1.5 released, 0.1.6 opened for further work.
6066 * Version 0.1.5 released, 0.1.6 opened for further work.
6060
6067
6061 * Changed magic_env to *return* the environment as a dict (not to
6068 * Changed magic_env to *return* the environment as a dict (not to
6062 print it). This way it prints, but it can also be processed.
6069 print it). This way it prints, but it can also be processed.
6063
6070
6064 * Added Verbose exception reporting to interactive
6071 * Added Verbose exception reporting to interactive
6065 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6072 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6066 traceback. Had to make some changes to the ultraTB file. This is
6073 traceback. Had to make some changes to the ultraTB file. This is
6067 probably the last 'big' thing in my mental todo list. This ties
6074 probably the last 'big' thing in my mental todo list. This ties
6068 in with the next entry:
6075 in with the next entry:
6069
6076
6070 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6077 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6071 has to specify is Plain, Color or Verbose for all exception
6078 has to specify is Plain, Color or Verbose for all exception
6072 handling.
6079 handling.
6073
6080
6074 * Removed ShellServices option. All this can really be done via
6081 * Removed ShellServices option. All this can really be done via
6075 the magic system. It's easier to extend, cleaner and has automatic
6082 the magic system. It's easier to extend, cleaner and has automatic
6076 namespace protection and documentation.
6083 namespace protection and documentation.
6077
6084
6078 2001-11-09 Fernando Perez <fperez@colorado.edu>
6085 2001-11-09 Fernando Perez <fperez@colorado.edu>
6079
6086
6080 * Fixed bug in output cache flushing (missing parameter to
6087 * Fixed bug in output cache flushing (missing parameter to
6081 __init__). Other small bugs fixed (found using pychecker).
6088 __init__). Other small bugs fixed (found using pychecker).
6082
6089
6083 * Version 0.1.4 opened for bugfixing.
6090 * Version 0.1.4 opened for bugfixing.
6084
6091
6085 2001-11-07 Fernando Perez <fperez@colorado.edu>
6092 2001-11-07 Fernando Perez <fperez@colorado.edu>
6086
6093
6087 * Version 0.1.3 released, mainly because of the raw_input bug.
6094 * Version 0.1.3 released, mainly because of the raw_input bug.
6088
6095
6089 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6096 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6090 and when testing for whether things were callable, a call could
6097 and when testing for whether things were callable, a call could
6091 actually be made to certain functions. They would get called again
6098 actually be made to certain functions. They would get called again
6092 once 'really' executed, with a resulting double call. A disaster
6099 once 'really' executed, with a resulting double call. A disaster
6093 in many cases (list.reverse() would never work!).
6100 in many cases (list.reverse() would never work!).
6094
6101
6095 * Removed prefilter() function, moved its code to raw_input (which
6102 * Removed prefilter() function, moved its code to raw_input (which
6096 after all was just a near-empty caller for prefilter). This saves
6103 after all was just a near-empty caller for prefilter). This saves
6097 a function call on every prompt, and simplifies the class a tiny bit.
6104 a function call on every prompt, and simplifies the class a tiny bit.
6098
6105
6099 * Fix _ip to __ip name in magic example file.
6106 * Fix _ip to __ip name in magic example file.
6100
6107
6101 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6108 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6102 work with non-gnu versions of tar.
6109 work with non-gnu versions of tar.
6103
6110
6104 2001-11-06 Fernando Perez <fperez@colorado.edu>
6111 2001-11-06 Fernando Perez <fperez@colorado.edu>
6105
6112
6106 * Version 0.1.2. Just to keep track of the recent changes.
6113 * Version 0.1.2. Just to keep track of the recent changes.
6107
6114
6108 * Fixed nasty bug in output prompt routine. It used to check 'if
6115 * Fixed nasty bug in output prompt routine. It used to check 'if
6109 arg != None...'. Problem is, this fails if arg implements a
6116 arg != None...'. Problem is, this fails if arg implements a
6110 special comparison (__cmp__) which disallows comparing to
6117 special comparison (__cmp__) which disallows comparing to
6111 None. Found it when trying to use the PhysicalQuantity module from
6118 None. Found it when trying to use the PhysicalQuantity module from
6112 ScientificPython.
6119 ScientificPython.
6113
6120
6114 2001-11-05 Fernando Perez <fperez@colorado.edu>
6121 2001-11-05 Fernando Perez <fperez@colorado.edu>
6115
6122
6116 * Also added dirs. Now the pushd/popd/dirs family functions
6123 * Also added dirs. Now the pushd/popd/dirs family functions
6117 basically like the shell, with the added convenience of going home
6124 basically like the shell, with the added convenience of going home
6118 when called with no args.
6125 when called with no args.
6119
6126
6120 * pushd/popd slightly modified to mimic shell behavior more
6127 * pushd/popd slightly modified to mimic shell behavior more
6121 closely.
6128 closely.
6122
6129
6123 * Added env,pushd,popd from ShellServices as magic functions. I
6130 * Added env,pushd,popd from ShellServices as magic functions. I
6124 think the cleanest will be to port all desired functions from
6131 think the cleanest will be to port all desired functions from
6125 ShellServices as magics and remove ShellServices altogether. This
6132 ShellServices as magics and remove ShellServices altogether. This
6126 will provide a single, clean way of adding functionality
6133 will provide a single, clean way of adding functionality
6127 (shell-type or otherwise) to IP.
6134 (shell-type or otherwise) to IP.
6128
6135
6129 2001-11-04 Fernando Perez <fperez@colorado.edu>
6136 2001-11-04 Fernando Perez <fperez@colorado.edu>
6130
6137
6131 * Added .ipython/ directory to sys.path. This way users can keep
6138 * Added .ipython/ directory to sys.path. This way users can keep
6132 customizations there and access them via import.
6139 customizations there and access them via import.
6133
6140
6134 2001-11-03 Fernando Perez <fperez@colorado.edu>
6141 2001-11-03 Fernando Perez <fperez@colorado.edu>
6135
6142
6136 * Opened version 0.1.1 for new changes.
6143 * Opened version 0.1.1 for new changes.
6137
6144
6138 * Changed version number to 0.1.0: first 'public' release, sent to
6145 * Changed version number to 0.1.0: first 'public' release, sent to
6139 Nathan and Janko.
6146 Nathan and Janko.
6140
6147
6141 * Lots of small fixes and tweaks.
6148 * Lots of small fixes and tweaks.
6142
6149
6143 * Minor changes to whos format. Now strings are shown, snipped if
6150 * Minor changes to whos format. Now strings are shown, snipped if
6144 too long.
6151 too long.
6145
6152
6146 * Changed ShellServices to work on __main__ so they show up in @who
6153 * Changed ShellServices to work on __main__ so they show up in @who
6147
6154
6148 * Help also works with ? at the end of a line:
6155 * Help also works with ? at the end of a line:
6149 ?sin and sin?
6156 ?sin and sin?
6150 both produce the same effect. This is nice, as often I use the
6157 both produce the same effect. This is nice, as often I use the
6151 tab-complete to find the name of a method, but I used to then have
6158 tab-complete to find the name of a method, but I used to then have
6152 to go to the beginning of the line to put a ? if I wanted more
6159 to go to the beginning of the line to put a ? if I wanted more
6153 info. Now I can just add the ? and hit return. Convenient.
6160 info. Now I can just add the ? and hit return. Convenient.
6154
6161
6155 2001-11-02 Fernando Perez <fperez@colorado.edu>
6162 2001-11-02 Fernando Perez <fperez@colorado.edu>
6156
6163
6157 * Python version check (>=2.1) added.
6164 * Python version check (>=2.1) added.
6158
6165
6159 * Added LazyPython documentation. At this point the docs are quite
6166 * Added LazyPython documentation. At this point the docs are quite
6160 a mess. A cleanup is in order.
6167 a mess. A cleanup is in order.
6161
6168
6162 * Auto-installer created. For some bizarre reason, the zipfiles
6169 * Auto-installer created. For some bizarre reason, the zipfiles
6163 module isn't working on my system. So I made a tar version
6170 module isn't working on my system. So I made a tar version
6164 (hopefully the command line options in various systems won't kill
6171 (hopefully the command line options in various systems won't kill
6165 me).
6172 me).
6166
6173
6167 * Fixes to Struct in genutils. Now all dictionary-like methods are
6174 * Fixes to Struct in genutils. Now all dictionary-like methods are
6168 protected (reasonably).
6175 protected (reasonably).
6169
6176
6170 * Added pager function to genutils and changed ? to print usage
6177 * Added pager function to genutils and changed ? to print usage
6171 note through it (it was too long).
6178 note through it (it was too long).
6172
6179
6173 * Added the LazyPython functionality. Works great! I changed the
6180 * Added the LazyPython functionality. Works great! I changed the
6174 auto-quote escape to ';', it's on home row and next to '. But
6181 auto-quote escape to ';', it's on home row and next to '. But
6175 both auto-quote and auto-paren (still /) escapes are command-line
6182 both auto-quote and auto-paren (still /) escapes are command-line
6176 parameters.
6183 parameters.
6177
6184
6178
6185
6179 2001-11-01 Fernando Perez <fperez@colorado.edu>
6186 2001-11-01 Fernando Perez <fperez@colorado.edu>
6180
6187
6181 * Version changed to 0.0.7. Fairly large change: configuration now
6188 * Version changed to 0.0.7. Fairly large change: configuration now
6182 is all stored in a directory, by default .ipython. There, all
6189 is all stored in a directory, by default .ipython. There, all
6183 config files have normal looking names (not .names)
6190 config files have normal looking names (not .names)
6184
6191
6185 * Version 0.0.6 Released first to Lucas and Archie as a test
6192 * Version 0.0.6 Released first to Lucas and Archie as a test
6186 run. Since it's the first 'semi-public' release, change version to
6193 run. Since it's the first 'semi-public' release, change version to
6187 > 0.0.6 for any changes now.
6194 > 0.0.6 for any changes now.
6188
6195
6189 * Stuff I had put in the ipplib.py changelog:
6196 * Stuff I had put in the ipplib.py changelog:
6190
6197
6191 Changes to InteractiveShell:
6198 Changes to InteractiveShell:
6192
6199
6193 - Made the usage message a parameter.
6200 - Made the usage message a parameter.
6194
6201
6195 - Require the name of the shell variable to be given. It's a bit
6202 - Require the name of the shell variable to be given. It's a bit
6196 of a hack, but allows the name 'shell' not to be hardwired in the
6203 of a hack, but allows the name 'shell' not to be hardwired in the
6197 magic (@) handler, which is problematic b/c it requires
6204 magic (@) handler, which is problematic b/c it requires
6198 polluting the global namespace with 'shell'. This in turn is
6205 polluting the global namespace with 'shell'. This in turn is
6199 fragile: if a user redefines a variable called shell, things
6206 fragile: if a user redefines a variable called shell, things
6200 break.
6207 break.
6201
6208
6202 - magic @: all functions available through @ need to be defined
6209 - magic @: all functions available through @ need to be defined
6203 as magic_<name>, even though they can be called simply as
6210 as magic_<name>, even though they can be called simply as
6204 @<name>. This allows the special command @magic to gather
6211 @<name>. This allows the special command @magic to gather
6205 information automatically about all existing magic functions,
6212 information automatically about all existing magic functions,
6206 even if they are run-time user extensions, by parsing the shell
6213 even if they are run-time user extensions, by parsing the shell
6207 instance __dict__ looking for special magic_ names.
6214 instance __dict__ looking for special magic_ names.
6208
6215
6209 - mainloop: added *two* local namespace parameters. This allows
6216 - mainloop: added *two* local namespace parameters. This allows
6210 the class to differentiate between parameters which were there
6217 the class to differentiate between parameters which were there
6211 before and after command line initialization was processed. This
6218 before and after command line initialization was processed. This
6212 way, later @who can show things loaded at startup by the
6219 way, later @who can show things loaded at startup by the
6213 user. This trick was necessary to make session saving/reloading
6220 user. This trick was necessary to make session saving/reloading
6214 really work: ideally after saving/exiting/reloading a session,
6221 really work: ideally after saving/exiting/reloading a session,
6215 *everything* should look the same, including the output of @who. I
6222 *everything* should look the same, including the output of @who. I
6216 was only able to make this work with this double namespace
6223 was only able to make this work with this double namespace
6217 trick.
6224 trick.
6218
6225
6219 - added a header to the logfile which allows (almost) full
6226 - added a header to the logfile which allows (almost) full
6220 session restoring.
6227 session restoring.
6221
6228
6222 - prepend lines beginning with @ or !, with a and log
6229 - prepend lines beginning with @ or !, with a and log
6223 them. Why? !lines: may be useful to know what you did @lines:
6230 them. Why? !lines: may be useful to know what you did @lines:
6224 they may affect session state. So when restoring a session, at
6231 they may affect session state. So when restoring a session, at
6225 least inform the user of their presence. I couldn't quite get
6232 least inform the user of their presence. I couldn't quite get
6226 them to properly re-execute, but at least the user is warned.
6233 them to properly re-execute, but at least the user is warned.
6227
6234
6228 * Started ChangeLog.
6235 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now