##// END OF EJS Templates
envpersist.py extension - boosts %env to remember env variables
vivainio -
Show More
@@ -0,0 +1,78 b''
1 # -*- coding: utf-8 -*-
2 """
3 %store magic for lightweight persistence.
4
5 Stores variables, aliases etc. in PickleShare database.
6
7 $Id: iplib.py 1107 2006-01-30 19:02:20Z vivainio $
8 """
9
10 import IPython.ipapi
11 ip = IPython.ipapi.get()
12
13 import os,sys
14
15 def restore_env(self):
16 ip = self.getapi()
17 env = ip.db.get('stored_env', {'set' : {}, 'add' : []})
18 for k,v in env['set'].items():
19 #print "restore alias",k,v # dbg
20 os.environ[k] = v
21 self.alias_table[k] = v
22 for k,v in env['add']:
23 os.environ[k] = os.environ.get(k,"") + v
24
25
26 ip.set_hook('late_startup_hook', restore_env)
27
28 def persist_env(self, parameter_s=''):
29 """ Store environment variables persistently
30
31 IPython remembers the values across sessions, which is handy to avoid
32 editing startup files.
33
34 %env - Show all environment variables
35 %env VISUAL=jed - set VISUAL to jed
36 %env PATH+=;/foo - append ;foo to PATH
37 %env PATH+=;/foo - also append ;bar to PATH
38 %env VISUAL=del - forget VISUAL persistent val
39
40 """
41
42
43
44 if not parameter_s.strip():
45 return os.environ.data
46
47 parts = parameter_s.strip().split('=')
48
49 ip = self.getapi()
50 db = ip.db
51 env = ip.db.get('stored_env', {'set' : {}, 'add' : []})
52
53 if len(parts) == 2:
54 k,v = parts
55
56
57 if v == 'del':
58 if k in env['set']:
59 del env['set'][k]
60 env['add'] = [el for el in env['add'] if el[0] == k]
61 #del os.environ[k]
62 print "Forgot",k,"(for next session)"
63
64 elif k.endswith('+'):
65 k = k[:-1]
66 env['add'].append((k,v))
67 os.environ[k] += v
68 else:
69 env['set'][k] = v
70 print "Setting",k,"to",v
71 os.environ[k] = os.environ.get(k,"") + v
72
73 db['stored_env'] = env
74
75
76
77
78 ip.expose_magic('env', persist_env)
@@ -1,6150 +1,6156 b''
1 2007-01-10 Ville Vainio <vivainio@gmail.com>
2
3 * Extensions/envpersist.py: Turbocharged %env that remembers
4 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
5 "%env VISUAL=jed".
6
1 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
7 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
2
8
3 * IPython/iplib.py (showtraceback): ensure that we correctly call
9 * IPython/iplib.py (showtraceback): ensure that we correctly call
4 custom handlers in all cases (some with pdb were slipping through,
10 custom handlers in all cases (some with pdb were slipping through,
5 but I'm not exactly sure why).
11 but I'm not exactly sure why).
6
12
7 * IPython/Debugger.py (Tracer.__init__): added new class to
13 * IPython/Debugger.py (Tracer.__init__): added new class to
8 support set_trace-like usage of IPython's enhanced debugger.
14 support set_trace-like usage of IPython's enhanced debugger.
9
15
10 2006-12-24 Ville Vainio <vivainio@gmail.com>
16 2006-12-24 Ville Vainio <vivainio@gmail.com>
11
17
12 * ipmaker.py: more informative message when ipy_user_conf
18 * ipmaker.py: more informative message when ipy_user_conf
13 import fails (suggest running %upgrade).
19 import fails (suggest running %upgrade).
14
20
15 * tools/run_ipy_in_profiler.py: Utility to see where
21 * tools/run_ipy_in_profiler.py: Utility to see where
16 the time during IPython startup is spent.
22 the time during IPython startup is spent.
17
23
18 2006-12-20 Ville Vainio <vivainio@gmail.com>
24 2006-12-20 Ville Vainio <vivainio@gmail.com>
19
25
20 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
26 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
21
27
22 * ipapi.py: Add new ipapi method, expand_alias.
28 * ipapi.py: Add new ipapi method, expand_alias.
23
29
24 * Release.py: Bump up version to 0.7.4.svn
30 * Release.py: Bump up version to 0.7.4.svn
25
31
26 2006-12-17 Ville Vainio <vivainio@gmail.com>
32 2006-12-17 Ville Vainio <vivainio@gmail.com>
27
33
28 * Extensions/jobctrl.py: Fixed &cmd arg arg...
34 * Extensions/jobctrl.py: Fixed &cmd arg arg...
29 to work properly on posix too
35 to work properly on posix too
30
36
31 * Release.py: Update revnum (version is still just 0.7.3).
37 * Release.py: Update revnum (version is still just 0.7.3).
32
38
33 2006-12-15 Ville Vainio <vivainio@gmail.com>
39 2006-12-15 Ville Vainio <vivainio@gmail.com>
34
40
35 * scripts/ipython_win_post_install: create ipython.py in
41 * scripts/ipython_win_post_install: create ipython.py in
36 prefix + "/scripts".
42 prefix + "/scripts".
37
43
38 * Release.py: Update version to 0.7.3.
44 * Release.py: Update version to 0.7.3.
39
45
40 2006-12-14 Ville Vainio <vivainio@gmail.com>
46 2006-12-14 Ville Vainio <vivainio@gmail.com>
41
47
42 * scripts/ipython_win_post_install: Overwrite old shortcuts
48 * scripts/ipython_win_post_install: Overwrite old shortcuts
43 if they already exist
49 if they already exist
44
50
45 * Release.py: release 0.7.3rc2
51 * Release.py: release 0.7.3rc2
46
52
47 2006-12-13 Ville Vainio <vivainio@gmail.com>
53 2006-12-13 Ville Vainio <vivainio@gmail.com>
48
54
49 * Branch and update Release.py for 0.7.3rc1
55 * Branch and update Release.py for 0.7.3rc1
50
56
51 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
57 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
52
58
53 * IPython/Shell.py (IPShellWX): update for current WX naming
59 * IPython/Shell.py (IPShellWX): update for current WX naming
54 conventions, to avoid a deprecation warning with current WX
60 conventions, to avoid a deprecation warning with current WX
55 versions. Thanks to a report by Danny Shevitz.
61 versions. Thanks to a report by Danny Shevitz.
56
62
57 2006-12-12 Ville Vainio <vivainio@gmail.com>
63 2006-12-12 Ville Vainio <vivainio@gmail.com>
58
64
59 * ipmaker.py: apply david cournapeau's patch to make
65 * ipmaker.py: apply david cournapeau's patch to make
60 import_some work properly even when ipythonrc does
66 import_some work properly even when ipythonrc does
61 import_some on empty list (it was an old bug!).
67 import_some on empty list (it was an old bug!).
62
68
63 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
69 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
64 Add deprecation note to ipythonrc and a url to wiki
70 Add deprecation note to ipythonrc and a url to wiki
65 in ipy_user_conf.py
71 in ipy_user_conf.py
66
72
67
73
68 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
74 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
69 as if it was typed on IPython command prompt, i.e.
75 as if it was typed on IPython command prompt, i.e.
70 as IPython script.
76 as IPython script.
71
77
72 * example-magic.py, magic_grepl.py: remove outdated examples
78 * example-magic.py, magic_grepl.py: remove outdated examples
73
79
74 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
80 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
75
81
76 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
82 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
77 is called before any exception has occurred.
83 is called before any exception has occurred.
78
84
79 2006-12-08 Ville Vainio <vivainio@gmail.com>
85 2006-12-08 Ville Vainio <vivainio@gmail.com>
80
86
81 * Extensions/ipy_stock_completers.py.py: fix cd completer
87 * Extensions/ipy_stock_completers.py.py: fix cd completer
82 to translate /'s to \'s again.
88 to translate /'s to \'s again.
83
89
84 * completer.py: prevent traceback on file completions w/
90 * completer.py: prevent traceback on file completions w/
85 backslash.
91 backslash.
86
92
87 * Release.py: Update release number to 0.7.3b3 for release
93 * Release.py: Update release number to 0.7.3b3 for release
88
94
89 2006-12-07 Ville Vainio <vivainio@gmail.com>
95 2006-12-07 Ville Vainio <vivainio@gmail.com>
90
96
91 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
97 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
92 while executing external code. Provides more shell-like behaviour
98 while executing external code. Provides more shell-like behaviour
93 and overall better response to ctrl + C / ctrl + break.
99 and overall better response to ctrl + C / ctrl + break.
94
100
95 * tools/make_tarball.py: new script to create tarball straight from svn
101 * tools/make_tarball.py: new script to create tarball straight from svn
96 (setup.py sdist doesn't work on win32).
102 (setup.py sdist doesn't work on win32).
97
103
98 * Extensions/ipy_stock_completers.py: fix cd completer to give up
104 * Extensions/ipy_stock_completers.py: fix cd completer to give up
99 on dirnames with spaces and use the default completer instead.
105 on dirnames with spaces and use the default completer instead.
100
106
101 * Revision.py: Change version to 0.7.3b2 for release.
107 * Revision.py: Change version to 0.7.3b2 for release.
102
108
103 2006-12-05 Ville Vainio <vivainio@gmail.com>
109 2006-12-05 Ville Vainio <vivainio@gmail.com>
104
110
105 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
111 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
106 pydb patch 4 (rm debug printing, py 2.5 checking)
112 pydb patch 4 (rm debug printing, py 2.5 checking)
107
113
108 2006-11-30 Walter Doerwald <walter@livinglogic.de>
114 2006-11-30 Walter Doerwald <walter@livinglogic.de>
109 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
115 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
110 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
116 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
111 "refreshfind" (mapped to "R") does the same but tries to go back to the same
117 "refreshfind" (mapped to "R") does the same but tries to go back to the same
112 object the cursor was on before the refresh. The command "markrange" is
118 object the cursor was on before the refresh. The command "markrange" is
113 mapped to "%" now.
119 mapped to "%" now.
114 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
120 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
115
121
116 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
122 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
117
123
118 * IPython/Magic.py (magic_debug): new %debug magic to activate the
124 * IPython/Magic.py (magic_debug): new %debug magic to activate the
119 interactive debugger on the last traceback, without having to call
125 interactive debugger on the last traceback, without having to call
120 %pdb and rerun your code. Made minor changes in various modules,
126 %pdb and rerun your code. Made minor changes in various modules,
121 should automatically recognize pydb if available.
127 should automatically recognize pydb if available.
122
128
123 2006-11-28 Ville Vainio <vivainio@gmail.com>
129 2006-11-28 Ville Vainio <vivainio@gmail.com>
124
130
125 * completer.py: If the text start with !, show file completions
131 * completer.py: If the text start with !, show file completions
126 properly. This helps when trying to complete command name
132 properly. This helps when trying to complete command name
127 for shell escapes.
133 for shell escapes.
128
134
129 2006-11-27 Ville Vainio <vivainio@gmail.com>
135 2006-11-27 Ville Vainio <vivainio@gmail.com>
130
136
131 * ipy_stock_completers.py: bzr completer submitted by Stefan van
137 * ipy_stock_completers.py: bzr completer submitted by Stefan van
132 der Walt. Clean up svn and hg completers by using a common
138 der Walt. Clean up svn and hg completers by using a common
133 vcs_completer.
139 vcs_completer.
134
140
135 2006-11-26 Ville Vainio <vivainio@gmail.com>
141 2006-11-26 Ville Vainio <vivainio@gmail.com>
136
142
137 * Remove ipconfig and %config; you should use _ip.options structure
143 * Remove ipconfig and %config; you should use _ip.options structure
138 directly instead!
144 directly instead!
139
145
140 * genutils.py: add wrap_deprecated function for deprecating callables
146 * genutils.py: add wrap_deprecated function for deprecating callables
141
147
142 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
148 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
143 _ip.system instead. ipalias is redundant.
149 _ip.system instead. ipalias is redundant.
144
150
145 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
151 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
146 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
152 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
147 explicit.
153 explicit.
148
154
149 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
155 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
150 completer. Try it by entering 'hg ' and pressing tab.
156 completer. Try it by entering 'hg ' and pressing tab.
151
157
152 * macro.py: Give Macro a useful __repr__ method
158 * macro.py: Give Macro a useful __repr__ method
153
159
154 * Magic.py: %whos abbreviates the typename of Macro for brevity.
160 * Magic.py: %whos abbreviates the typename of Macro for brevity.
155
161
156 2006-11-24 Walter Doerwald <walter@livinglogic.de>
162 2006-11-24 Walter Doerwald <walter@livinglogic.de>
157 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
163 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
158 we don't get a duplicate ipipe module, where registration of the xrepr
164 we don't get a duplicate ipipe module, where registration of the xrepr
159 implementation for Text is useless.
165 implementation for Text is useless.
160
166
161 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
167 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
162
168
163 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
169 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
164
170
165 2006-11-24 Ville Vainio <vivainio@gmail.com>
171 2006-11-24 Ville Vainio <vivainio@gmail.com>
166
172
167 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
173 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
168 try to use "cProfile" instead of the slower pure python
174 try to use "cProfile" instead of the slower pure python
169 "profile"
175 "profile"
170
176
171 2006-11-23 Ville Vainio <vivainio@gmail.com>
177 2006-11-23 Ville Vainio <vivainio@gmail.com>
172
178
173 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
179 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
174 Qt+IPython+Designer link in documentation.
180 Qt+IPython+Designer link in documentation.
175
181
176 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
182 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
177 correct Pdb object to %pydb.
183 correct Pdb object to %pydb.
178
184
179
185
180 2006-11-22 Walter Doerwald <walter@livinglogic.de>
186 2006-11-22 Walter Doerwald <walter@livinglogic.de>
181 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
187 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
182 generic xrepr(), otherwise the list implementation would kick in.
188 generic xrepr(), otherwise the list implementation would kick in.
183
189
184 2006-11-21 Ville Vainio <vivainio@gmail.com>
190 2006-11-21 Ville Vainio <vivainio@gmail.com>
185
191
186 * upgrade_dir.py: Now actually overwrites a nonmodified user file
192 * upgrade_dir.py: Now actually overwrites a nonmodified user file
187 with one from UserConfig.
193 with one from UserConfig.
188
194
189 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
195 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
190 it was missing which broke the sh profile.
196 it was missing which broke the sh profile.
191
197
192 * completer.py: file completer now uses explicit '/' instead
198 * completer.py: file completer now uses explicit '/' instead
193 of os.path.join, expansion of 'foo' was broken on win32
199 of os.path.join, expansion of 'foo' was broken on win32
194 if there was one directory with name 'foobar'.
200 if there was one directory with name 'foobar'.
195
201
196 * A bunch of patches from Kirill Smelkov:
202 * A bunch of patches from Kirill Smelkov:
197
203
198 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
204 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
199
205
200 * [patch 7/9] Implement %page -r (page in raw mode) -
206 * [patch 7/9] Implement %page -r (page in raw mode) -
201
207
202 * [patch 5/9] ScientificPython webpage has moved
208 * [patch 5/9] ScientificPython webpage has moved
203
209
204 * [patch 4/9] The manual mentions %ds, should be %dhist
210 * [patch 4/9] The manual mentions %ds, should be %dhist
205
211
206 * [patch 3/9] Kill old bits from %prun doc.
212 * [patch 3/9] Kill old bits from %prun doc.
207
213
208 * [patch 1/9] Fix typos here and there.
214 * [patch 1/9] Fix typos here and there.
209
215
210 2006-11-08 Ville Vainio <vivainio@gmail.com>
216 2006-11-08 Ville Vainio <vivainio@gmail.com>
211
217
212 * completer.py (attr_matches): catch all exceptions raised
218 * completer.py (attr_matches): catch all exceptions raised
213 by eval of expr with dots.
219 by eval of expr with dots.
214
220
215 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
221 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
216
222
217 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
223 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
218 input if it starts with whitespace. This allows you to paste
224 input if it starts with whitespace. This allows you to paste
219 indented input from any editor without manually having to type in
225 indented input from any editor without manually having to type in
220 the 'if 1:', which is convenient when working interactively.
226 the 'if 1:', which is convenient when working interactively.
221 Slightly modifed version of a patch by Bo Peng
227 Slightly modifed version of a patch by Bo Peng
222 <bpeng-AT-rice.edu>.
228 <bpeng-AT-rice.edu>.
223
229
224 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
230 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
225
231
226 * IPython/irunner.py (main): modified irunner so it automatically
232 * IPython/irunner.py (main): modified irunner so it automatically
227 recognizes the right runner to use based on the extension (.py for
233 recognizes the right runner to use based on the extension (.py for
228 python, .ipy for ipython and .sage for sage).
234 python, .ipy for ipython and .sage for sage).
229
235
230 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
236 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
231 visible in ipapi as ip.config(), to programatically control the
237 visible in ipapi as ip.config(), to programatically control the
232 internal rc object. There's an accompanying %config magic for
238 internal rc object. There's an accompanying %config magic for
233 interactive use, which has been enhanced to match the
239 interactive use, which has been enhanced to match the
234 funtionality in ipconfig.
240 funtionality in ipconfig.
235
241
236 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
242 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
237 so it's not just a toggle, it now takes an argument. Add support
243 so it's not just a toggle, it now takes an argument. Add support
238 for a customizable header when making system calls, as the new
244 for a customizable header when making system calls, as the new
239 system_header variable in the ipythonrc file.
245 system_header variable in the ipythonrc file.
240
246
241 2006-11-03 Walter Doerwald <walter@livinglogic.de>
247 2006-11-03 Walter Doerwald <walter@livinglogic.de>
242
248
243 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
249 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
244 generic functions (using Philip J. Eby's simplegeneric package).
250 generic functions (using Philip J. Eby's simplegeneric package).
245 This makes it possible to customize the display of third-party classes
251 This makes it possible to customize the display of third-party classes
246 without having to monkeypatch them. xiter() no longer supports a mode
252 without having to monkeypatch them. xiter() no longer supports a mode
247 argument and the XMode class has been removed. The same functionality can
253 argument and the XMode class has been removed. The same functionality can
248 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
254 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
249 One consequence of the switch to generic functions is that xrepr() and
255 One consequence of the switch to generic functions is that xrepr() and
250 xattrs() implementation must define the default value for the mode
256 xattrs() implementation must define the default value for the mode
251 argument themselves and xattrs() implementations must return real
257 argument themselves and xattrs() implementations must return real
252 descriptors.
258 descriptors.
253
259
254 * IPython/external: This new subpackage will contain all third-party
260 * IPython/external: This new subpackage will contain all third-party
255 packages that are bundled with IPython. (The first one is simplegeneric).
261 packages that are bundled with IPython. (The first one is simplegeneric).
256
262
257 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
263 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
258 directory which as been dropped in r1703.
264 directory which as been dropped in r1703.
259
265
260 * IPython/Extensions/ipipe.py (iless): Fixed.
266 * IPython/Extensions/ipipe.py (iless): Fixed.
261
267
262 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
268 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
263
269
264 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
270 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
265
271
266 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
272 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
267 handling in variable expansion so that shells and magics recognize
273 handling in variable expansion so that shells and magics recognize
268 function local scopes correctly. Bug reported by Brian.
274 function local scopes correctly. Bug reported by Brian.
269
275
270 * scripts/ipython: remove the very first entry in sys.path which
276 * scripts/ipython: remove the very first entry in sys.path which
271 Python auto-inserts for scripts, so that sys.path under IPython is
277 Python auto-inserts for scripts, so that sys.path under IPython is
272 as similar as possible to that under plain Python.
278 as similar as possible to that under plain Python.
273
279
274 * IPython/completer.py (IPCompleter.file_matches): Fix
280 * IPython/completer.py (IPCompleter.file_matches): Fix
275 tab-completion so that quotes are not closed unless the completion
281 tab-completion so that quotes are not closed unless the completion
276 is unambiguous. After a request by Stefan. Minor cleanups in
282 is unambiguous. After a request by Stefan. Minor cleanups in
277 ipy_stock_completers.
283 ipy_stock_completers.
278
284
279 2006-11-02 Ville Vainio <vivainio@gmail.com>
285 2006-11-02 Ville Vainio <vivainio@gmail.com>
280
286
281 * ipy_stock_completers.py: Add %run and %cd completers.
287 * ipy_stock_completers.py: Add %run and %cd completers.
282
288
283 * completer.py: Try running custom completer for both
289 * completer.py: Try running custom completer for both
284 "foo" and "%foo" if the command is just "foo". Ignore case
290 "foo" and "%foo" if the command is just "foo". Ignore case
285 when filtering possible completions.
291 when filtering possible completions.
286
292
287 * UserConfig/ipy_user_conf.py: install stock completers as default
293 * UserConfig/ipy_user_conf.py: install stock completers as default
288
294
289 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
295 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
290 simplified readline history save / restore through a wrapper
296 simplified readline history save / restore through a wrapper
291 function
297 function
292
298
293
299
294 2006-10-31 Ville Vainio <vivainio@gmail.com>
300 2006-10-31 Ville Vainio <vivainio@gmail.com>
295
301
296 * strdispatch.py, completer.py, ipy_stock_completers.py:
302 * strdispatch.py, completer.py, ipy_stock_completers.py:
297 Allow str_key ("command") in completer hooks. Implement
303 Allow str_key ("command") in completer hooks. Implement
298 trivial completer for 'import' (stdlib modules only). Rename
304 trivial completer for 'import' (stdlib modules only). Rename
299 ipy_linux_package_managers.py to ipy_stock_completers.py.
305 ipy_linux_package_managers.py to ipy_stock_completers.py.
300 SVN completer.
306 SVN completer.
301
307
302 * Extensions/ledit.py: %magic line editor for easily and
308 * Extensions/ledit.py: %magic line editor for easily and
303 incrementally manipulating lists of strings. The magic command
309 incrementally manipulating lists of strings. The magic command
304 name is %led.
310 name is %led.
305
311
306 2006-10-30 Ville Vainio <vivainio@gmail.com>
312 2006-10-30 Ville Vainio <vivainio@gmail.com>
307
313
308 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
314 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
309 Bernsteins's patches for pydb integration.
315 Bernsteins's patches for pydb integration.
310 http://bashdb.sourceforge.net/pydb/
316 http://bashdb.sourceforge.net/pydb/
311
317
312 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
318 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
313 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
319 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
314 custom completer hook to allow the users to implement their own
320 custom completer hook to allow the users to implement their own
315 completers. See ipy_linux_package_managers.py for example. The
321 completers. See ipy_linux_package_managers.py for example. The
316 hook name is 'complete_command'.
322 hook name is 'complete_command'.
317
323
318 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
324 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
319
325
320 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
326 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
321 Numeric leftovers.
327 Numeric leftovers.
322
328
323 * ipython.el (py-execute-region): apply Stefan's patch to fix
329 * ipython.el (py-execute-region): apply Stefan's patch to fix
324 garbled results if the python shell hasn't been previously started.
330 garbled results if the python shell hasn't been previously started.
325
331
326 * IPython/genutils.py (arg_split): moved to genutils, since it's a
332 * IPython/genutils.py (arg_split): moved to genutils, since it's a
327 pretty generic function and useful for other things.
333 pretty generic function and useful for other things.
328
334
329 * IPython/OInspect.py (getsource): Add customizable source
335 * IPython/OInspect.py (getsource): Add customizable source
330 extractor. After a request/patch form W. Stein (SAGE).
336 extractor. After a request/patch form W. Stein (SAGE).
331
337
332 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
338 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
333 window size to a more reasonable value from what pexpect does,
339 window size to a more reasonable value from what pexpect does,
334 since their choice causes wrapping bugs with long input lines.
340 since their choice causes wrapping bugs with long input lines.
335
341
336 2006-10-28 Ville Vainio <vivainio@gmail.com>
342 2006-10-28 Ville Vainio <vivainio@gmail.com>
337
343
338 * Magic.py (%run): Save and restore the readline history from
344 * Magic.py (%run): Save and restore the readline history from
339 file around %run commands to prevent side effects from
345 file around %run commands to prevent side effects from
340 %runned programs that might use readline (e.g. pydb).
346 %runned programs that might use readline (e.g. pydb).
341
347
342 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
348 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
343 invoking the pydb enhanced debugger.
349 invoking the pydb enhanced debugger.
344
350
345 2006-10-23 Walter Doerwald <walter@livinglogic.de>
351 2006-10-23 Walter Doerwald <walter@livinglogic.de>
346
352
347 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
353 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
348 call the base class method and propagate the return value to
354 call the base class method and propagate the return value to
349 ifile. This is now done by path itself.
355 ifile. This is now done by path itself.
350
356
351 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
357 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
352
358
353 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
359 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
354 api: set_crash_handler(), to expose the ability to change the
360 api: set_crash_handler(), to expose the ability to change the
355 internal crash handler.
361 internal crash handler.
356
362
357 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
363 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
358 the various parameters of the crash handler so that apps using
364 the various parameters of the crash handler so that apps using
359 IPython as their engine can customize crash handling. Ipmlemented
365 IPython as their engine can customize crash handling. Ipmlemented
360 at the request of SAGE.
366 at the request of SAGE.
361
367
362 2006-10-14 Ville Vainio <vivainio@gmail.com>
368 2006-10-14 Ville Vainio <vivainio@gmail.com>
363
369
364 * Magic.py, ipython.el: applied first "safe" part of Rocky
370 * Magic.py, ipython.el: applied first "safe" part of Rocky
365 Bernstein's patch set for pydb integration.
371 Bernstein's patch set for pydb integration.
366
372
367 * Magic.py (%unalias, %alias): %store'd aliases can now be
373 * Magic.py (%unalias, %alias): %store'd aliases can now be
368 removed with '%unalias'. %alias w/o args now shows most
374 removed with '%unalias'. %alias w/o args now shows most
369 interesting (stored / manually defined) aliases last
375 interesting (stored / manually defined) aliases last
370 where they catch the eye w/o scrolling.
376 where they catch the eye w/o scrolling.
371
377
372 * Magic.py (%rehashx), ext_rehashdir.py: files with
378 * Magic.py (%rehashx), ext_rehashdir.py: files with
373 'py' extension are always considered executable, even
379 'py' extension are always considered executable, even
374 when not in PATHEXT environment variable.
380 when not in PATHEXT environment variable.
375
381
376 2006-10-12 Ville Vainio <vivainio@gmail.com>
382 2006-10-12 Ville Vainio <vivainio@gmail.com>
377
383
378 * jobctrl.py: Add new "jobctrl" extension for spawning background
384 * jobctrl.py: Add new "jobctrl" extension for spawning background
379 processes with "&find /". 'import jobctrl' to try it out. Requires
385 processes with "&find /". 'import jobctrl' to try it out. Requires
380 'subprocess' module, standard in python 2.4+.
386 'subprocess' module, standard in python 2.4+.
381
387
382 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
388 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
383 so if foo -> bar and bar -> baz, then foo -> baz.
389 so if foo -> bar and bar -> baz, then foo -> baz.
384
390
385 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
391 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
386
392
387 * IPython/Magic.py (Magic.parse_options): add a new posix option
393 * IPython/Magic.py (Magic.parse_options): add a new posix option
388 to allow parsing of input args in magics that doesn't strip quotes
394 to allow parsing of input args in magics that doesn't strip quotes
389 (if posix=False). This also closes %timeit bug reported by
395 (if posix=False). This also closes %timeit bug reported by
390 Stefan.
396 Stefan.
391
397
392 2006-10-03 Ville Vainio <vivainio@gmail.com>
398 2006-10-03 Ville Vainio <vivainio@gmail.com>
393
399
394 * iplib.py (raw_input, interact): Return ValueError catching for
400 * iplib.py (raw_input, interact): Return ValueError catching for
395 raw_input. Fixes infinite loop for sys.stdin.close() or
401 raw_input. Fixes infinite loop for sys.stdin.close() or
396 sys.stdout.close().
402 sys.stdout.close().
397
403
398 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
404 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
399
405
400 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
406 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
401 to help in handling doctests. irunner is now pretty useful for
407 to help in handling doctests. irunner is now pretty useful for
402 running standalone scripts and simulate a full interactive session
408 running standalone scripts and simulate a full interactive session
403 in a format that can be then pasted as a doctest.
409 in a format that can be then pasted as a doctest.
404
410
405 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
411 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
406 on top of the default (useless) ones. This also fixes the nasty
412 on top of the default (useless) ones. This also fixes the nasty
407 way in which 2.5's Quitter() exits (reverted [1785]).
413 way in which 2.5's Quitter() exits (reverted [1785]).
408
414
409 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
415 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
410 2.5.
416 2.5.
411
417
412 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
418 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
413 color scheme is updated as well when color scheme is changed
419 color scheme is updated as well when color scheme is changed
414 interactively.
420 interactively.
415
421
416 2006-09-27 Ville Vainio <vivainio@gmail.com>
422 2006-09-27 Ville Vainio <vivainio@gmail.com>
417
423
418 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
424 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
419 infinite loop and just exit. It's a hack, but will do for a while.
425 infinite loop and just exit. It's a hack, but will do for a while.
420
426
421 2006-08-25 Walter Doerwald <walter@livinglogic.de>
427 2006-08-25 Walter Doerwald <walter@livinglogic.de>
422
428
423 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
429 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
424 the constructor, this makes it possible to get a list of only directories
430 the constructor, this makes it possible to get a list of only directories
425 or only files.
431 or only files.
426
432
427 2006-08-12 Ville Vainio <vivainio@gmail.com>
433 2006-08-12 Ville Vainio <vivainio@gmail.com>
428
434
429 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
435 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
430 they broke unittest
436 they broke unittest
431
437
432 2006-08-11 Ville Vainio <vivainio@gmail.com>
438 2006-08-11 Ville Vainio <vivainio@gmail.com>
433
439
434 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
440 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
435 by resolving issue properly, i.e. by inheriting FakeModule
441 by resolving issue properly, i.e. by inheriting FakeModule
436 from types.ModuleType. Pickling ipython interactive data
442 from types.ModuleType. Pickling ipython interactive data
437 should still work as usual (testing appreciated).
443 should still work as usual (testing appreciated).
438
444
439 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
445 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
440
446
441 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
447 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
442 running under python 2.3 with code from 2.4 to fix a bug with
448 running under python 2.3 with code from 2.4 to fix a bug with
443 help(). Reported by the Debian maintainers, Norbert Tretkowski
449 help(). Reported by the Debian maintainers, Norbert Tretkowski
444 <norbert-AT-tretkowski.de> and Alexandre Fayolle
450 <norbert-AT-tretkowski.de> and Alexandre Fayolle
445 <afayolle-AT-debian.org>.
451 <afayolle-AT-debian.org>.
446
452
447 2006-08-04 Walter Doerwald <walter@livinglogic.de>
453 2006-08-04 Walter Doerwald <walter@livinglogic.de>
448
454
449 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
455 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
450 (which was displaying "quit" twice).
456 (which was displaying "quit" twice).
451
457
452 2006-07-28 Walter Doerwald <walter@livinglogic.de>
458 2006-07-28 Walter Doerwald <walter@livinglogic.de>
453
459
454 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
460 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
455 the mode argument).
461 the mode argument).
456
462
457 2006-07-27 Walter Doerwald <walter@livinglogic.de>
463 2006-07-27 Walter Doerwald <walter@livinglogic.de>
458
464
459 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
465 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
460 not running under IPython.
466 not running under IPython.
461
467
462 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
468 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
463 and make it iterable (iterating over the attribute itself). Add two new
469 and make it iterable (iterating over the attribute itself). Add two new
464 magic strings for __xattrs__(): If the string starts with "-", the attribute
470 magic strings for __xattrs__(): If the string starts with "-", the attribute
465 will not be displayed in ibrowse's detail view (but it can still be
471 will not be displayed in ibrowse's detail view (but it can still be
466 iterated over). This makes it possible to add attributes that are large
472 iterated over). This makes it possible to add attributes that are large
467 lists or generator methods to the detail view. Replace magic attribute names
473 lists or generator methods to the detail view. Replace magic attribute names
468 and _attrname() and _getattr() with "descriptors": For each type of magic
474 and _attrname() and _getattr() with "descriptors": For each type of magic
469 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
475 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
470 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
476 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
471 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
477 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
472 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
478 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
473 are still supported.
479 are still supported.
474
480
475 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
481 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
476 fails in ibrowse.fetch(), the exception object is added as the last item
482 fails in ibrowse.fetch(), the exception object is added as the last item
477 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
483 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
478 a generator throws an exception midway through execution.
484 a generator throws an exception midway through execution.
479
485
480 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
486 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
481 encoding into methods.
487 encoding into methods.
482
488
483 2006-07-26 Ville Vainio <vivainio@gmail.com>
489 2006-07-26 Ville Vainio <vivainio@gmail.com>
484
490
485 * iplib.py: history now stores multiline input as single
491 * iplib.py: history now stores multiline input as single
486 history entries. Patch by Jorgen Cederlof.
492 history entries. Patch by Jorgen Cederlof.
487
493
488 2006-07-18 Walter Doerwald <walter@livinglogic.de>
494 2006-07-18 Walter Doerwald <walter@livinglogic.de>
489
495
490 * IPython/Extensions/ibrowse.py: Make cursor visible over
496 * IPython/Extensions/ibrowse.py: Make cursor visible over
491 non existing attributes.
497 non existing attributes.
492
498
493 2006-07-14 Walter Doerwald <walter@livinglogic.de>
499 2006-07-14 Walter Doerwald <walter@livinglogic.de>
494
500
495 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
501 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
496 error output of the running command doesn't mess up the screen.
502 error output of the running command doesn't mess up the screen.
497
503
498 2006-07-13 Walter Doerwald <walter@livinglogic.de>
504 2006-07-13 Walter Doerwald <walter@livinglogic.de>
499
505
500 * IPython/Extensions/ipipe.py (isort): Make isort usable without
506 * IPython/Extensions/ipipe.py (isort): Make isort usable without
501 argument. This sorts the items themselves.
507 argument. This sorts the items themselves.
502
508
503 2006-07-12 Walter Doerwald <walter@livinglogic.de>
509 2006-07-12 Walter Doerwald <walter@livinglogic.de>
504
510
505 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
511 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
506 Compile expression strings into code objects. This should speed
512 Compile expression strings into code objects. This should speed
507 up ifilter and friends somewhat.
513 up ifilter and friends somewhat.
508
514
509 2006-07-08 Ville Vainio <vivainio@gmail.com>
515 2006-07-08 Ville Vainio <vivainio@gmail.com>
510
516
511 * Magic.py: %cpaste now strips > from the beginning of lines
517 * Magic.py: %cpaste now strips > from the beginning of lines
512 to ease pasting quoted code from emails. Contributed by
518 to ease pasting quoted code from emails. Contributed by
513 Stefan van der Walt.
519 Stefan van der Walt.
514
520
515 2006-06-29 Ville Vainio <vivainio@gmail.com>
521 2006-06-29 Ville Vainio <vivainio@gmail.com>
516
522
517 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
523 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
518 mode, patch contributed by Darren Dale. NEEDS TESTING!
524 mode, patch contributed by Darren Dale. NEEDS TESTING!
519
525
520 2006-06-28 Walter Doerwald <walter@livinglogic.de>
526 2006-06-28 Walter Doerwald <walter@livinglogic.de>
521
527
522 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
528 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
523 a blue background. Fix fetching new display rows when the browser
529 a blue background. Fix fetching new display rows when the browser
524 scrolls more than a screenful (e.g. by using the goto command).
530 scrolls more than a screenful (e.g. by using the goto command).
525
531
526 2006-06-27 Ville Vainio <vivainio@gmail.com>
532 2006-06-27 Ville Vainio <vivainio@gmail.com>
527
533
528 * Magic.py (_inspect, _ofind) Apply David Huard's
534 * Magic.py (_inspect, _ofind) Apply David Huard's
529 patch for displaying the correct docstring for 'property'
535 patch for displaying the correct docstring for 'property'
530 attributes.
536 attributes.
531
537
532 2006-06-23 Walter Doerwald <walter@livinglogic.de>
538 2006-06-23 Walter Doerwald <walter@livinglogic.de>
533
539
534 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
540 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
535 commands into the methods implementing them.
541 commands into the methods implementing them.
536
542
537 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
543 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
538
544
539 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
545 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
540 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
546 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
541 autoindent support was authored by Jin Liu.
547 autoindent support was authored by Jin Liu.
542
548
543 2006-06-22 Walter Doerwald <walter@livinglogic.de>
549 2006-06-22 Walter Doerwald <walter@livinglogic.de>
544
550
545 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
551 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
546 for keymaps with a custom class that simplifies handling.
552 for keymaps with a custom class that simplifies handling.
547
553
548 2006-06-19 Walter Doerwald <walter@livinglogic.de>
554 2006-06-19 Walter Doerwald <walter@livinglogic.de>
549
555
550 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
556 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
551 resizing. This requires Python 2.5 to work.
557 resizing. This requires Python 2.5 to work.
552
558
553 2006-06-16 Walter Doerwald <walter@livinglogic.de>
559 2006-06-16 Walter Doerwald <walter@livinglogic.de>
554
560
555 * IPython/Extensions/ibrowse.py: Add two new commands to
561 * IPython/Extensions/ibrowse.py: Add two new commands to
556 ibrowse: "hideattr" (mapped to "h") hides the attribute under
562 ibrowse: "hideattr" (mapped to "h") hides the attribute under
557 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
563 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
558 attributes again. Remapped the help command to "?". Display
564 attributes again. Remapped the help command to "?". Display
559 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
565 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
560 as keys for the "home" and "end" commands. Add three new commands
566 as keys for the "home" and "end" commands. Add three new commands
561 to the input mode for "find" and friends: "delend" (CTRL-K)
567 to the input mode for "find" and friends: "delend" (CTRL-K)
562 deletes to the end of line. "incsearchup" searches upwards in the
568 deletes to the end of line. "incsearchup" searches upwards in the
563 command history for an input that starts with the text before the cursor.
569 command history for an input that starts with the text before the cursor.
564 "incsearchdown" does the same downwards. Removed a bogus mapping of
570 "incsearchdown" does the same downwards. Removed a bogus mapping of
565 the x key to "delete".
571 the x key to "delete".
566
572
567 2006-06-15 Ville Vainio <vivainio@gmail.com>
573 2006-06-15 Ville Vainio <vivainio@gmail.com>
568
574
569 * iplib.py, hooks.py: Added new generate_prompt hook that can be
575 * iplib.py, hooks.py: Added new generate_prompt hook that can be
570 used to create prompts dynamically, instead of the "old" way of
576 used to create prompts dynamically, instead of the "old" way of
571 assigning "magic" strings to prompt_in1 and prompt_in2. The old
577 assigning "magic" strings to prompt_in1 and prompt_in2. The old
572 way still works (it's invoked by the default hook), of course.
578 way still works (it's invoked by the default hook), of course.
573
579
574 * Prompts.py: added generate_output_prompt hook for altering output
580 * Prompts.py: added generate_output_prompt hook for altering output
575 prompt
581 prompt
576
582
577 * Release.py: Changed version string to 0.7.3.svn.
583 * Release.py: Changed version string to 0.7.3.svn.
578
584
579 2006-06-15 Walter Doerwald <walter@livinglogic.de>
585 2006-06-15 Walter Doerwald <walter@livinglogic.de>
580
586
581 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
587 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
582 the call to fetch() always tries to fetch enough data for at least one
588 the call to fetch() always tries to fetch enough data for at least one
583 full screen. This makes it possible to simply call moveto(0,0,True) in
589 full screen. This makes it possible to simply call moveto(0,0,True) in
584 the constructor. Fix typos and removed the obsolete goto attribute.
590 the constructor. Fix typos and removed the obsolete goto attribute.
585
591
586 2006-06-12 Ville Vainio <vivainio@gmail.com>
592 2006-06-12 Ville Vainio <vivainio@gmail.com>
587
593
588 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
594 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
589 allowing $variable interpolation within multiline statements,
595 allowing $variable interpolation within multiline statements,
590 though so far only with "sh" profile for a testing period.
596 though so far only with "sh" profile for a testing period.
591 The patch also enables splitting long commands with \ but it
597 The patch also enables splitting long commands with \ but it
592 doesn't work properly yet.
598 doesn't work properly yet.
593
599
594 2006-06-12 Walter Doerwald <walter@livinglogic.de>
600 2006-06-12 Walter Doerwald <walter@livinglogic.de>
595
601
596 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
602 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
597 input history and the position of the cursor in the input history for
603 input history and the position of the cursor in the input history for
598 the find, findbackwards and goto command.
604 the find, findbackwards and goto command.
599
605
600 2006-06-10 Walter Doerwald <walter@livinglogic.de>
606 2006-06-10 Walter Doerwald <walter@livinglogic.de>
601
607
602 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
608 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
603 implements the basic functionality of browser commands that require
609 implements the basic functionality of browser commands that require
604 input. Reimplement the goto, find and findbackwards commands as
610 input. Reimplement the goto, find and findbackwards commands as
605 subclasses of _CommandInput. Add an input history and keymaps to those
611 subclasses of _CommandInput. Add an input history and keymaps to those
606 commands. Add "\r" as a keyboard shortcut for the enterdefault and
612 commands. Add "\r" as a keyboard shortcut for the enterdefault and
607 execute commands.
613 execute commands.
608
614
609 2006-06-07 Ville Vainio <vivainio@gmail.com>
615 2006-06-07 Ville Vainio <vivainio@gmail.com>
610
616
611 * iplib.py: ipython mybatch.ipy exits ipython immediately after
617 * iplib.py: ipython mybatch.ipy exits ipython immediately after
612 running the batch files instead of leaving the session open.
618 running the batch files instead of leaving the session open.
613
619
614 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
620 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
615
621
616 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
622 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
617 the original fix was incomplete. Patch submitted by W. Maier.
623 the original fix was incomplete. Patch submitted by W. Maier.
618
624
619 2006-06-07 Ville Vainio <vivainio@gmail.com>
625 2006-06-07 Ville Vainio <vivainio@gmail.com>
620
626
621 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
627 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
622 Confirmation prompts can be supressed by 'quiet' option.
628 Confirmation prompts can be supressed by 'quiet' option.
623 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
629 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
624
630
625 2006-06-06 *** Released version 0.7.2
631 2006-06-06 *** Released version 0.7.2
626
632
627 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
633 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
628
634
629 * IPython/Release.py (version): Made 0.7.2 final for release.
635 * IPython/Release.py (version): Made 0.7.2 final for release.
630 Repo tagged and release cut.
636 Repo tagged and release cut.
631
637
632 2006-06-05 Ville Vainio <vivainio@gmail.com>
638 2006-06-05 Ville Vainio <vivainio@gmail.com>
633
639
634 * Magic.py (magic_rehashx): Honor no_alias list earlier in
640 * Magic.py (magic_rehashx): Honor no_alias list earlier in
635 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
641 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
636
642
637 * upgrade_dir.py: try import 'path' module a bit harder
643 * upgrade_dir.py: try import 'path' module a bit harder
638 (for %upgrade)
644 (for %upgrade)
639
645
640 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
646 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
641
647
642 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
648 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
643 instead of looping 20 times.
649 instead of looping 20 times.
644
650
645 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
651 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
646 correctly at initialization time. Bug reported by Krishna Mohan
652 correctly at initialization time. Bug reported by Krishna Mohan
647 Gundu <gkmohan-AT-gmail.com> on the user list.
653 Gundu <gkmohan-AT-gmail.com> on the user list.
648
654
649 * IPython/Release.py (version): Mark 0.7.2 version to start
655 * IPython/Release.py (version): Mark 0.7.2 version to start
650 testing for release on 06/06.
656 testing for release on 06/06.
651
657
652 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
658 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
653
659
654 * scripts/irunner: thin script interface so users don't have to
660 * scripts/irunner: thin script interface so users don't have to
655 find the module and call it as an executable, since modules rarely
661 find the module and call it as an executable, since modules rarely
656 live in people's PATH.
662 live in people's PATH.
657
663
658 * IPython/irunner.py (InteractiveRunner.__init__): added
664 * IPython/irunner.py (InteractiveRunner.__init__): added
659 delaybeforesend attribute to control delays with newer versions of
665 delaybeforesend attribute to control delays with newer versions of
660 pexpect. Thanks to detailed help from pexpect's author, Noah
666 pexpect. Thanks to detailed help from pexpect's author, Noah
661 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
667 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
662 correctly (it works in NoColor mode).
668 correctly (it works in NoColor mode).
663
669
664 * IPython/iplib.py (handle_normal): fix nasty crash reported on
670 * IPython/iplib.py (handle_normal): fix nasty crash reported on
665 SAGE list, from improper log() calls.
671 SAGE list, from improper log() calls.
666
672
667 2006-05-31 Ville Vainio <vivainio@gmail.com>
673 2006-05-31 Ville Vainio <vivainio@gmail.com>
668
674
669 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
675 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
670 with args in parens to work correctly with dirs that have spaces.
676 with args in parens to work correctly with dirs that have spaces.
671
677
672 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
678 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
673
679
674 * IPython/Logger.py (Logger.logstart): add option to log raw input
680 * IPython/Logger.py (Logger.logstart): add option to log raw input
675 instead of the processed one. A -r flag was added to the
681 instead of the processed one. A -r flag was added to the
676 %logstart magic used for controlling logging.
682 %logstart magic used for controlling logging.
677
683
678 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
684 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
679
685
680 * IPython/iplib.py (InteractiveShell.__init__): add check for the
686 * IPython/iplib.py (InteractiveShell.__init__): add check for the
681 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
687 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
682 recognize the option. After a bug report by Will Maier. This
688 recognize the option. After a bug report by Will Maier. This
683 closes #64 (will do it after confirmation from W. Maier).
689 closes #64 (will do it after confirmation from W. Maier).
684
690
685 * IPython/irunner.py: New module to run scripts as if manually
691 * IPython/irunner.py: New module to run scripts as if manually
686 typed into an interactive environment, based on pexpect. After a
692 typed into an interactive environment, based on pexpect. After a
687 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
693 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
688 ipython-user list. Simple unittests in the tests/ directory.
694 ipython-user list. Simple unittests in the tests/ directory.
689
695
690 * tools/release: add Will Maier, OpenBSD port maintainer, to
696 * tools/release: add Will Maier, OpenBSD port maintainer, to
691 recepients list. We are now officially part of the OpenBSD ports:
697 recepients list. We are now officially part of the OpenBSD ports:
692 http://www.openbsd.org/ports.html ! Many thanks to Will for the
698 http://www.openbsd.org/ports.html ! Many thanks to Will for the
693 work.
699 work.
694
700
695 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
701 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
696
702
697 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
703 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
698 so that it doesn't break tkinter apps.
704 so that it doesn't break tkinter apps.
699
705
700 * IPython/iplib.py (_prefilter): fix bug where aliases would
706 * IPython/iplib.py (_prefilter): fix bug where aliases would
701 shadow variables when autocall was fully off. Reported by SAGE
707 shadow variables when autocall was fully off. Reported by SAGE
702 author William Stein.
708 author William Stein.
703
709
704 * IPython/OInspect.py (Inspector.__init__): add a flag to control
710 * IPython/OInspect.py (Inspector.__init__): add a flag to control
705 at what detail level strings are computed when foo? is requested.
711 at what detail level strings are computed when foo? is requested.
706 This allows users to ask for example that the string form of an
712 This allows users to ask for example that the string form of an
707 object is only computed when foo?? is called, or even never, by
713 object is only computed when foo?? is called, or even never, by
708 setting the object_info_string_level >= 2 in the configuration
714 setting the object_info_string_level >= 2 in the configuration
709 file. This new option has been added and documented. After a
715 file. This new option has been added and documented. After a
710 request by SAGE to be able to control the printing of very large
716 request by SAGE to be able to control the printing of very large
711 objects more easily.
717 objects more easily.
712
718
713 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
719 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
714
720
715 * IPython/ipmaker.py (make_IPython): remove the ipython call path
721 * IPython/ipmaker.py (make_IPython): remove the ipython call path
716 from sys.argv, to be 100% consistent with how Python itself works
722 from sys.argv, to be 100% consistent with how Python itself works
717 (as seen for example with python -i file.py). After a bug report
723 (as seen for example with python -i file.py). After a bug report
718 by Jeffrey Collins.
724 by Jeffrey Collins.
719
725
720 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
726 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
721 nasty bug which was preventing custom namespaces with -pylab,
727 nasty bug which was preventing custom namespaces with -pylab,
722 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
728 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
723 compatibility (long gone from mpl).
729 compatibility (long gone from mpl).
724
730
725 * IPython/ipapi.py (make_session): name change: create->make. We
731 * IPython/ipapi.py (make_session): name change: create->make. We
726 use make in other places (ipmaker,...), it's shorter and easier to
732 use make in other places (ipmaker,...), it's shorter and easier to
727 type and say, etc. I'm trying to clean things before 0.7.2 so
733 type and say, etc. I'm trying to clean things before 0.7.2 so
728 that I can keep things stable wrt to ipapi in the chainsaw branch.
734 that I can keep things stable wrt to ipapi in the chainsaw branch.
729
735
730 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
736 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
731 python-mode recognizes our debugger mode. Add support for
737 python-mode recognizes our debugger mode. Add support for
732 autoindent inside (X)emacs. After a patch sent in by Jin Liu
738 autoindent inside (X)emacs. After a patch sent in by Jin Liu
733 <m.liu.jin-AT-gmail.com> originally written by
739 <m.liu.jin-AT-gmail.com> originally written by
734 doxgen-AT-newsmth.net (with minor modifications for xemacs
740 doxgen-AT-newsmth.net (with minor modifications for xemacs
735 compatibility)
741 compatibility)
736
742
737 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
743 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
738 tracebacks when walking the stack so that the stack tracking system
744 tracebacks when walking the stack so that the stack tracking system
739 in emacs' python-mode can identify the frames correctly.
745 in emacs' python-mode can identify the frames correctly.
740
746
741 * IPython/ipmaker.py (make_IPython): make the internal (and
747 * IPython/ipmaker.py (make_IPython): make the internal (and
742 default config) autoedit_syntax value false by default. Too many
748 default config) autoedit_syntax value false by default. Too many
743 users have complained to me (both on and off-list) about problems
749 users have complained to me (both on and off-list) about problems
744 with this option being on by default, so I'm making it default to
750 with this option being on by default, so I'm making it default to
745 off. It can still be enabled by anyone via the usual mechanisms.
751 off. It can still be enabled by anyone via the usual mechanisms.
746
752
747 * IPython/completer.py (Completer.attr_matches): add support for
753 * IPython/completer.py (Completer.attr_matches): add support for
748 PyCrust-style _getAttributeNames magic method. Patch contributed
754 PyCrust-style _getAttributeNames magic method. Patch contributed
749 by <mscott-AT-goldenspud.com>. Closes #50.
755 by <mscott-AT-goldenspud.com>. Closes #50.
750
756
751 * IPython/iplib.py (InteractiveShell.__init__): remove the
757 * IPython/iplib.py (InteractiveShell.__init__): remove the
752 deletion of exit/quit from __builtin__, which can break
758 deletion of exit/quit from __builtin__, which can break
753 third-party tools like the Zope debugging console. The
759 third-party tools like the Zope debugging console. The
754 %exit/%quit magics remain. In general, it's probably a good idea
760 %exit/%quit magics remain. In general, it's probably a good idea
755 not to delete anything from __builtin__, since we never know what
761 not to delete anything from __builtin__, since we never know what
756 that will break. In any case, python now (for 2.5) will support
762 that will break. In any case, python now (for 2.5) will support
757 'real' exit/quit, so this issue is moot. Closes #55.
763 'real' exit/quit, so this issue is moot. Closes #55.
758
764
759 * IPython/genutils.py (with_obj): rename the 'with' function to
765 * IPython/genutils.py (with_obj): rename the 'with' function to
760 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
766 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
761 becomes a language keyword. Closes #53.
767 becomes a language keyword. Closes #53.
762
768
763 * IPython/FakeModule.py (FakeModule.__init__): add a proper
769 * IPython/FakeModule.py (FakeModule.__init__): add a proper
764 __file__ attribute to this so it fools more things into thinking
770 __file__ attribute to this so it fools more things into thinking
765 it is a real module. Closes #59.
771 it is a real module. Closes #59.
766
772
767 * IPython/Magic.py (magic_edit): add -n option to open the editor
773 * IPython/Magic.py (magic_edit): add -n option to open the editor
768 at a specific line number. After a patch by Stefan van der Walt.
774 at a specific line number. After a patch by Stefan van der Walt.
769
775
770 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
776 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
771
777
772 * IPython/iplib.py (edit_syntax_error): fix crash when for some
778 * IPython/iplib.py (edit_syntax_error): fix crash when for some
773 reason the file could not be opened. After automatic crash
779 reason the file could not be opened. After automatic crash
774 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
780 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
775 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
781 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
776 (_should_recompile): Don't fire editor if using %bg, since there
782 (_should_recompile): Don't fire editor if using %bg, since there
777 is no file in the first place. From the same report as above.
783 is no file in the first place. From the same report as above.
778 (raw_input): protect against faulty third-party prefilters. After
784 (raw_input): protect against faulty third-party prefilters. After
779 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
785 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
780 while running under SAGE.
786 while running under SAGE.
781
787
782 2006-05-23 Ville Vainio <vivainio@gmail.com>
788 2006-05-23 Ville Vainio <vivainio@gmail.com>
783
789
784 * ipapi.py: Stripped down ip.to_user_ns() to work only as
790 * ipapi.py: Stripped down ip.to_user_ns() to work only as
785 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
791 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
786 now returns None (again), unless dummy is specifically allowed by
792 now returns None (again), unless dummy is specifically allowed by
787 ipapi.get(allow_dummy=True).
793 ipapi.get(allow_dummy=True).
788
794
789 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
795 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
790
796
791 * IPython: remove all 2.2-compatibility objects and hacks from
797 * IPython: remove all 2.2-compatibility objects and hacks from
792 everywhere, since we only support 2.3 at this point. Docs
798 everywhere, since we only support 2.3 at this point. Docs
793 updated.
799 updated.
794
800
795 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
801 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
796 Anything requiring extra validation can be turned into a Python
802 Anything requiring extra validation can be turned into a Python
797 property in the future. I used a property for the db one b/c
803 property in the future. I used a property for the db one b/c
798 there was a nasty circularity problem with the initialization
804 there was a nasty circularity problem with the initialization
799 order, which right now I don't have time to clean up.
805 order, which right now I don't have time to clean up.
800
806
801 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
807 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
802 another locking bug reported by Jorgen. I'm not 100% sure though,
808 another locking bug reported by Jorgen. I'm not 100% sure though,
803 so more testing is needed...
809 so more testing is needed...
804
810
805 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
811 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
806
812
807 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
813 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
808 local variables from any routine in user code (typically executed
814 local variables from any routine in user code (typically executed
809 with %run) directly into the interactive namespace. Very useful
815 with %run) directly into the interactive namespace. Very useful
810 when doing complex debugging.
816 when doing complex debugging.
811 (IPythonNotRunning): Changed the default None object to a dummy
817 (IPythonNotRunning): Changed the default None object to a dummy
812 whose attributes can be queried as well as called without
818 whose attributes can be queried as well as called without
813 exploding, to ease writing code which works transparently both in
819 exploding, to ease writing code which works transparently both in
814 and out of ipython and uses some of this API.
820 and out of ipython and uses some of this API.
815
821
816 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
822 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
817
823
818 * IPython/hooks.py (result_display): Fix the fact that our display
824 * IPython/hooks.py (result_display): Fix the fact that our display
819 hook was using str() instead of repr(), as the default python
825 hook was using str() instead of repr(), as the default python
820 console does. This had gone unnoticed b/c it only happened if
826 console does. This had gone unnoticed b/c it only happened if
821 %Pprint was off, but the inconsistency was there.
827 %Pprint was off, but the inconsistency was there.
822
828
823 2006-05-15 Ville Vainio <vivainio@gmail.com>
829 2006-05-15 Ville Vainio <vivainio@gmail.com>
824
830
825 * Oinspect.py: Only show docstring for nonexisting/binary files
831 * Oinspect.py: Only show docstring for nonexisting/binary files
826 when doing object??, closing ticket #62
832 when doing object??, closing ticket #62
827
833
828 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
834 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
829
835
830 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
836 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
831 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
837 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
832 was being released in a routine which hadn't checked if it had
838 was being released in a routine which hadn't checked if it had
833 been the one to acquire it.
839 been the one to acquire it.
834
840
835 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
841 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
836
842
837 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
843 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
838
844
839 2006-04-11 Ville Vainio <vivainio@gmail.com>
845 2006-04-11 Ville Vainio <vivainio@gmail.com>
840
846
841 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
847 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
842 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
848 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
843 prefilters, allowing stuff like magics and aliases in the file.
849 prefilters, allowing stuff like magics and aliases in the file.
844
850
845 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
851 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
846 added. Supported now are "%clear in" and "%clear out" (clear input and
852 added. Supported now are "%clear in" and "%clear out" (clear input and
847 output history, respectively). Also fixed CachedOutput.flush to
853 output history, respectively). Also fixed CachedOutput.flush to
848 properly flush the output cache.
854 properly flush the output cache.
849
855
850 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
856 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
851 half-success (and fail explicitly).
857 half-success (and fail explicitly).
852
858
853 2006-03-28 Ville Vainio <vivainio@gmail.com>
859 2006-03-28 Ville Vainio <vivainio@gmail.com>
854
860
855 * iplib.py: Fix quoting of aliases so that only argless ones
861 * iplib.py: Fix quoting of aliases so that only argless ones
856 are quoted
862 are quoted
857
863
858 2006-03-28 Ville Vainio <vivainio@gmail.com>
864 2006-03-28 Ville Vainio <vivainio@gmail.com>
859
865
860 * iplib.py: Quote aliases with spaces in the name.
866 * iplib.py: Quote aliases with spaces in the name.
861 "c:\program files\blah\bin" is now legal alias target.
867 "c:\program files\blah\bin" is now legal alias target.
862
868
863 * ext_rehashdir.py: Space no longer allowed as arg
869 * ext_rehashdir.py: Space no longer allowed as arg
864 separator, since space is legal in path names.
870 separator, since space is legal in path names.
865
871
866 2006-03-16 Ville Vainio <vivainio@gmail.com>
872 2006-03-16 Ville Vainio <vivainio@gmail.com>
867
873
868 * upgrade_dir.py: Take path.py from Extensions, correcting
874 * upgrade_dir.py: Take path.py from Extensions, correcting
869 %upgrade magic
875 %upgrade magic
870
876
871 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
877 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
872
878
873 * hooks.py: Only enclose editor binary in quotes if legal and
879 * hooks.py: Only enclose editor binary in quotes if legal and
874 necessary (space in the name, and is an existing file). Fixes a bug
880 necessary (space in the name, and is an existing file). Fixes a bug
875 reported by Zachary Pincus.
881 reported by Zachary Pincus.
876
882
877 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
883 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
878
884
879 * Manual: thanks to a tip on proper color handling for Emacs, by
885 * Manual: thanks to a tip on proper color handling for Emacs, by
880 Eric J Haywiser <ejh1-AT-MIT.EDU>.
886 Eric J Haywiser <ejh1-AT-MIT.EDU>.
881
887
882 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
888 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
883 by applying the provided patch. Thanks to Liu Jin
889 by applying the provided patch. Thanks to Liu Jin
884 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
890 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
885 XEmacs/Linux, I'm trusting the submitter that it actually helps
891 XEmacs/Linux, I'm trusting the submitter that it actually helps
886 under win32/GNU Emacs. Will revisit if any problems are reported.
892 under win32/GNU Emacs. Will revisit if any problems are reported.
887
893
888 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
894 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
889
895
890 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
896 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
891 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
897 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
892
898
893 2006-03-12 Ville Vainio <vivainio@gmail.com>
899 2006-03-12 Ville Vainio <vivainio@gmail.com>
894
900
895 * Magic.py (magic_timeit): Added %timeit magic, contributed by
901 * Magic.py (magic_timeit): Added %timeit magic, contributed by
896 Torsten Marek.
902 Torsten Marek.
897
903
898 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
904 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
899
905
900 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
906 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
901 line ranges works again.
907 line ranges works again.
902
908
903 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
909 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
904
910
905 * IPython/iplib.py (showtraceback): add back sys.last_traceback
911 * IPython/iplib.py (showtraceback): add back sys.last_traceback
906 and friends, after a discussion with Zach Pincus on ipython-user.
912 and friends, after a discussion with Zach Pincus on ipython-user.
907 I'm not 100% sure, but after thinking about it quite a bit, it may
913 I'm not 100% sure, but after thinking about it quite a bit, it may
908 be OK. Testing with the multithreaded shells didn't reveal any
914 be OK. Testing with the multithreaded shells didn't reveal any
909 problems, but let's keep an eye out.
915 problems, but let's keep an eye out.
910
916
911 In the process, I fixed a few things which were calling
917 In the process, I fixed a few things which were calling
912 self.InteractiveTB() directly (like safe_execfile), which is a
918 self.InteractiveTB() directly (like safe_execfile), which is a
913 mistake: ALL exception reporting should be done by calling
919 mistake: ALL exception reporting should be done by calling
914 self.showtraceback(), which handles state and tab-completion and
920 self.showtraceback(), which handles state and tab-completion and
915 more.
921 more.
916
922
917 2006-03-01 Ville Vainio <vivainio@gmail.com>
923 2006-03-01 Ville Vainio <vivainio@gmail.com>
918
924
919 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
925 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
920 To use, do "from ipipe import *".
926 To use, do "from ipipe import *".
921
927
922 2006-02-24 Ville Vainio <vivainio@gmail.com>
928 2006-02-24 Ville Vainio <vivainio@gmail.com>
923
929
924 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
930 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
925 "cleanly" and safely than the older upgrade mechanism.
931 "cleanly" and safely than the older upgrade mechanism.
926
932
927 2006-02-21 Ville Vainio <vivainio@gmail.com>
933 2006-02-21 Ville Vainio <vivainio@gmail.com>
928
934
929 * Magic.py: %save works again.
935 * Magic.py: %save works again.
930
936
931 2006-02-15 Ville Vainio <vivainio@gmail.com>
937 2006-02-15 Ville Vainio <vivainio@gmail.com>
932
938
933 * Magic.py: %Pprint works again
939 * Magic.py: %Pprint works again
934
940
935 * Extensions/ipy_sane_defaults.py: Provide everything provided
941 * Extensions/ipy_sane_defaults.py: Provide everything provided
936 in default ipythonrc, to make it possible to have a completely empty
942 in default ipythonrc, to make it possible to have a completely empty
937 ipythonrc (and thus completely rc-file free configuration)
943 ipythonrc (and thus completely rc-file free configuration)
938
944
939 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
945 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
940
946
941 * IPython/hooks.py (editor): quote the call to the editor command,
947 * IPython/hooks.py (editor): quote the call to the editor command,
942 to allow commands with spaces in them. Problem noted by watching
948 to allow commands with spaces in them. Problem noted by watching
943 Ian Oswald's video about textpad under win32 at
949 Ian Oswald's video about textpad under win32 at
944 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
950 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
945
951
946 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
952 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
947 describing magics (we haven't used @ for a loong time).
953 describing magics (we haven't used @ for a loong time).
948
954
949 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
955 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
950 contributed by marienz to close
956 contributed by marienz to close
951 http://www.scipy.net/roundup/ipython/issue53.
957 http://www.scipy.net/roundup/ipython/issue53.
952
958
953 2006-02-10 Ville Vainio <vivainio@gmail.com>
959 2006-02-10 Ville Vainio <vivainio@gmail.com>
954
960
955 * genutils.py: getoutput now works in win32 too
961 * genutils.py: getoutput now works in win32 too
956
962
957 * completer.py: alias and magic completion only invoked
963 * completer.py: alias and magic completion only invoked
958 at the first "item" in the line, to avoid "cd %store"
964 at the first "item" in the line, to avoid "cd %store"
959 nonsense.
965 nonsense.
960
966
961 2006-02-09 Ville Vainio <vivainio@gmail.com>
967 2006-02-09 Ville Vainio <vivainio@gmail.com>
962
968
963 * test/*: Added a unit testing framework (finally).
969 * test/*: Added a unit testing framework (finally).
964 '%run runtests.py' to run test_*.
970 '%run runtests.py' to run test_*.
965
971
966 * ipapi.py: Exposed runlines and set_custom_exc
972 * ipapi.py: Exposed runlines and set_custom_exc
967
973
968 2006-02-07 Ville Vainio <vivainio@gmail.com>
974 2006-02-07 Ville Vainio <vivainio@gmail.com>
969
975
970 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
976 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
971 instead use "f(1 2)" as before.
977 instead use "f(1 2)" as before.
972
978
973 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
979 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
974
980
975 * IPython/demo.py (IPythonDemo): Add new classes to the demo
981 * IPython/demo.py (IPythonDemo): Add new classes to the demo
976 facilities, for demos processed by the IPython input filter
982 facilities, for demos processed by the IPython input filter
977 (IPythonDemo), and for running a script one-line-at-a-time as a
983 (IPythonDemo), and for running a script one-line-at-a-time as a
978 demo, both for pure Python (LineDemo) and for IPython-processed
984 demo, both for pure Python (LineDemo) and for IPython-processed
979 input (IPythonLineDemo). After a request by Dave Kohel, from the
985 input (IPythonLineDemo). After a request by Dave Kohel, from the
980 SAGE team.
986 SAGE team.
981 (Demo.edit): added an edit() method to the demo objects, to edit
987 (Demo.edit): added an edit() method to the demo objects, to edit
982 the in-memory copy of the last executed block.
988 the in-memory copy of the last executed block.
983
989
984 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
990 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
985 processing to %edit, %macro and %save. These commands can now be
991 processing to %edit, %macro and %save. These commands can now be
986 invoked on the unprocessed input as it was typed by the user
992 invoked on the unprocessed input as it was typed by the user
987 (without any prefilters applied). After requests by the SAGE team
993 (without any prefilters applied). After requests by the SAGE team
988 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
994 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
989
995
990 2006-02-01 Ville Vainio <vivainio@gmail.com>
996 2006-02-01 Ville Vainio <vivainio@gmail.com>
991
997
992 * setup.py, eggsetup.py: easy_install ipython==dev works
998 * setup.py, eggsetup.py: easy_install ipython==dev works
993 correctly now (on Linux)
999 correctly now (on Linux)
994
1000
995 * ipy_user_conf,ipmaker: user config changes, removed spurious
1001 * ipy_user_conf,ipmaker: user config changes, removed spurious
996 warnings
1002 warnings
997
1003
998 * iplib: if rc.banner is string, use it as is.
1004 * iplib: if rc.banner is string, use it as is.
999
1005
1000 * Magic: %pycat accepts a string argument and pages it's contents.
1006 * Magic: %pycat accepts a string argument and pages it's contents.
1001
1007
1002
1008
1003 2006-01-30 Ville Vainio <vivainio@gmail.com>
1009 2006-01-30 Ville Vainio <vivainio@gmail.com>
1004
1010
1005 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1011 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1006 Now %store and bookmarks work through PickleShare, meaning that
1012 Now %store and bookmarks work through PickleShare, meaning that
1007 concurrent access is possible and all ipython sessions see the
1013 concurrent access is possible and all ipython sessions see the
1008 same database situation all the time, instead of snapshot of
1014 same database situation all the time, instead of snapshot of
1009 the situation when the session was started. Hence, %bookmark
1015 the situation when the session was started. Hence, %bookmark
1010 results are immediately accessible from othes sessions. The database
1016 results are immediately accessible from othes sessions. The database
1011 is also available for use by user extensions. See:
1017 is also available for use by user extensions. See:
1012 http://www.python.org/pypi/pickleshare
1018 http://www.python.org/pypi/pickleshare
1013
1019
1014 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1020 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1015
1021
1016 * aliases can now be %store'd
1022 * aliases can now be %store'd
1017
1023
1018 * path.py moved to Extensions so that pickleshare does not need
1024 * path.py moved to Extensions so that pickleshare does not need
1019 IPython-specific import. Extensions added to pythonpath right
1025 IPython-specific import. Extensions added to pythonpath right
1020 at __init__.
1026 at __init__.
1021
1027
1022 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1028 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1023 called with _ip.system and the pre-transformed command string.
1029 called with _ip.system and the pre-transformed command string.
1024
1030
1025 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1031 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1026
1032
1027 * IPython/iplib.py (interact): Fix that we were not catching
1033 * IPython/iplib.py (interact): Fix that we were not catching
1028 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1034 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1029 logic here had to change, but it's fixed now.
1035 logic here had to change, but it's fixed now.
1030
1036
1031 2006-01-29 Ville Vainio <vivainio@gmail.com>
1037 2006-01-29 Ville Vainio <vivainio@gmail.com>
1032
1038
1033 * iplib.py: Try to import pyreadline on Windows.
1039 * iplib.py: Try to import pyreadline on Windows.
1034
1040
1035 2006-01-27 Ville Vainio <vivainio@gmail.com>
1041 2006-01-27 Ville Vainio <vivainio@gmail.com>
1036
1042
1037 * iplib.py: Expose ipapi as _ip in builtin namespace.
1043 * iplib.py: Expose ipapi as _ip in builtin namespace.
1038 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1044 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1039 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1045 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1040 syntax now produce _ip.* variant of the commands.
1046 syntax now produce _ip.* variant of the commands.
1041
1047
1042 * "_ip.options().autoedit_syntax = 2" automatically throws
1048 * "_ip.options().autoedit_syntax = 2" automatically throws
1043 user to editor for syntax error correction without prompting.
1049 user to editor for syntax error correction without prompting.
1044
1050
1045 2006-01-27 Ville Vainio <vivainio@gmail.com>
1051 2006-01-27 Ville Vainio <vivainio@gmail.com>
1046
1052
1047 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1053 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1048 'ipython' at argv[0]) executed through command line.
1054 'ipython' at argv[0]) executed through command line.
1049 NOTE: this DEPRECATES calling ipython with multiple scripts
1055 NOTE: this DEPRECATES calling ipython with multiple scripts
1050 ("ipython a.py b.py c.py")
1056 ("ipython a.py b.py c.py")
1051
1057
1052 * iplib.py, hooks.py: Added configurable input prefilter,
1058 * iplib.py, hooks.py: Added configurable input prefilter,
1053 named 'input_prefilter'. See ext_rescapture.py for example
1059 named 'input_prefilter'. See ext_rescapture.py for example
1054 usage.
1060 usage.
1055
1061
1056 * ext_rescapture.py, Magic.py: Better system command output capture
1062 * ext_rescapture.py, Magic.py: Better system command output capture
1057 through 'var = !ls' (deprecates user-visible %sc). Same notation
1063 through 'var = !ls' (deprecates user-visible %sc). Same notation
1058 applies for magics, 'var = %alias' assigns alias list to var.
1064 applies for magics, 'var = %alias' assigns alias list to var.
1059
1065
1060 * ipapi.py: added meta() for accessing extension-usable data store.
1066 * ipapi.py: added meta() for accessing extension-usable data store.
1061
1067
1062 * iplib.py: added InteractiveShell.getapi(). New magics should be
1068 * iplib.py: added InteractiveShell.getapi(). New magics should be
1063 written doing self.getapi() instead of using the shell directly.
1069 written doing self.getapi() instead of using the shell directly.
1064
1070
1065 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1071 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1066 %store foo >> ~/myfoo.txt to store variables to files (in clean
1072 %store foo >> ~/myfoo.txt to store variables to files (in clean
1067 textual form, not a restorable pickle).
1073 textual form, not a restorable pickle).
1068
1074
1069 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1075 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1070
1076
1071 * usage.py, Magic.py: added %quickref
1077 * usage.py, Magic.py: added %quickref
1072
1078
1073 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1079 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1074
1080
1075 * GetoptErrors when invoking magics etc. with wrong args
1081 * GetoptErrors when invoking magics etc. with wrong args
1076 are now more helpful:
1082 are now more helpful:
1077 GetoptError: option -l not recognized (allowed: "qb" )
1083 GetoptError: option -l not recognized (allowed: "qb" )
1078
1084
1079 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1085 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1080
1086
1081 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1087 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1082 computationally intensive blocks don't appear to stall the demo.
1088 computationally intensive blocks don't appear to stall the demo.
1083
1089
1084 2006-01-24 Ville Vainio <vivainio@gmail.com>
1090 2006-01-24 Ville Vainio <vivainio@gmail.com>
1085
1091
1086 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1092 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1087 value to manipulate resulting history entry.
1093 value to manipulate resulting history entry.
1088
1094
1089 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1095 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1090 to instance methods of IPApi class, to make extending an embedded
1096 to instance methods of IPApi class, to make extending an embedded
1091 IPython feasible. See ext_rehashdir.py for example usage.
1097 IPython feasible. See ext_rehashdir.py for example usage.
1092
1098
1093 * Merged 1071-1076 from branches/0.7.1
1099 * Merged 1071-1076 from branches/0.7.1
1094
1100
1095
1101
1096 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1102 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1097
1103
1098 * tools/release (daystamp): Fix build tools to use the new
1104 * tools/release (daystamp): Fix build tools to use the new
1099 eggsetup.py script to build lightweight eggs.
1105 eggsetup.py script to build lightweight eggs.
1100
1106
1101 * Applied changesets 1062 and 1064 before 0.7.1 release.
1107 * Applied changesets 1062 and 1064 before 0.7.1 release.
1102
1108
1103 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1109 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1104 see the raw input history (without conversions like %ls ->
1110 see the raw input history (without conversions like %ls ->
1105 ipmagic("ls")). After a request from W. Stein, SAGE
1111 ipmagic("ls")). After a request from W. Stein, SAGE
1106 (http://modular.ucsd.edu/sage) developer. This information is
1112 (http://modular.ucsd.edu/sage) developer. This information is
1107 stored in the input_hist_raw attribute of the IPython instance, so
1113 stored in the input_hist_raw attribute of the IPython instance, so
1108 developers can access it if needed (it's an InputList instance).
1114 developers can access it if needed (it's an InputList instance).
1109
1115
1110 * Versionstring = 0.7.2.svn
1116 * Versionstring = 0.7.2.svn
1111
1117
1112 * eggsetup.py: A separate script for constructing eggs, creates
1118 * eggsetup.py: A separate script for constructing eggs, creates
1113 proper launch scripts even on Windows (an .exe file in
1119 proper launch scripts even on Windows (an .exe file in
1114 \python24\scripts).
1120 \python24\scripts).
1115
1121
1116 * ipapi.py: launch_new_instance, launch entry point needed for the
1122 * ipapi.py: launch_new_instance, launch entry point needed for the
1117 egg.
1123 egg.
1118
1124
1119 2006-01-23 Ville Vainio <vivainio@gmail.com>
1125 2006-01-23 Ville Vainio <vivainio@gmail.com>
1120
1126
1121 * Added %cpaste magic for pasting python code
1127 * Added %cpaste magic for pasting python code
1122
1128
1123 2006-01-22 Ville Vainio <vivainio@gmail.com>
1129 2006-01-22 Ville Vainio <vivainio@gmail.com>
1124
1130
1125 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1131 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1126
1132
1127 * Versionstring = 0.7.2.svn
1133 * Versionstring = 0.7.2.svn
1128
1134
1129 * eggsetup.py: A separate script for constructing eggs, creates
1135 * eggsetup.py: A separate script for constructing eggs, creates
1130 proper launch scripts even on Windows (an .exe file in
1136 proper launch scripts even on Windows (an .exe file in
1131 \python24\scripts).
1137 \python24\scripts).
1132
1138
1133 * ipapi.py: launch_new_instance, launch entry point needed for the
1139 * ipapi.py: launch_new_instance, launch entry point needed for the
1134 egg.
1140 egg.
1135
1141
1136 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1142 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1137
1143
1138 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1144 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1139 %pfile foo would print the file for foo even if it was a binary.
1145 %pfile foo would print the file for foo even if it was a binary.
1140 Now, extensions '.so' and '.dll' are skipped.
1146 Now, extensions '.so' and '.dll' are skipped.
1141
1147
1142 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1148 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1143 bug, where macros would fail in all threaded modes. I'm not 100%
1149 bug, where macros would fail in all threaded modes. I'm not 100%
1144 sure, so I'm going to put out an rc instead of making a release
1150 sure, so I'm going to put out an rc instead of making a release
1145 today, and wait for feedback for at least a few days.
1151 today, and wait for feedback for at least a few days.
1146
1152
1147 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1153 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1148 it...) the handling of pasting external code with autoindent on.
1154 it...) the handling of pasting external code with autoindent on.
1149 To get out of a multiline input, the rule will appear for most
1155 To get out of a multiline input, the rule will appear for most
1150 users unchanged: two blank lines or change the indent level
1156 users unchanged: two blank lines or change the indent level
1151 proposed by IPython. But there is a twist now: you can
1157 proposed by IPython. But there is a twist now: you can
1152 add/subtract only *one or two spaces*. If you add/subtract three
1158 add/subtract only *one or two spaces*. If you add/subtract three
1153 or more (unless you completely delete the line), IPython will
1159 or more (unless you completely delete the line), IPython will
1154 accept that line, and you'll need to enter a second one of pure
1160 accept that line, and you'll need to enter a second one of pure
1155 whitespace. I know it sounds complicated, but I can't find a
1161 whitespace. I know it sounds complicated, but I can't find a
1156 different solution that covers all the cases, with the right
1162 different solution that covers all the cases, with the right
1157 heuristics. Hopefully in actual use, nobody will really notice
1163 heuristics. Hopefully in actual use, nobody will really notice
1158 all these strange rules and things will 'just work'.
1164 all these strange rules and things will 'just work'.
1159
1165
1160 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1166 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1161
1167
1162 * IPython/iplib.py (interact): catch exceptions which can be
1168 * IPython/iplib.py (interact): catch exceptions which can be
1163 triggered asynchronously by signal handlers. Thanks to an
1169 triggered asynchronously by signal handlers. Thanks to an
1164 automatic crash report, submitted by Colin Kingsley
1170 automatic crash report, submitted by Colin Kingsley
1165 <tercel-AT-gentoo.org>.
1171 <tercel-AT-gentoo.org>.
1166
1172
1167 2006-01-20 Ville Vainio <vivainio@gmail.com>
1173 2006-01-20 Ville Vainio <vivainio@gmail.com>
1168
1174
1169 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1175 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1170 (%rehashdir, very useful, try it out) of how to extend ipython
1176 (%rehashdir, very useful, try it out) of how to extend ipython
1171 with new magics. Also added Extensions dir to pythonpath to make
1177 with new magics. Also added Extensions dir to pythonpath to make
1172 importing extensions easy.
1178 importing extensions easy.
1173
1179
1174 * %store now complains when trying to store interactively declared
1180 * %store now complains when trying to store interactively declared
1175 classes / instances of those classes.
1181 classes / instances of those classes.
1176
1182
1177 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1183 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1178 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1184 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1179 if they exist, and ipy_user_conf.py with some defaults is created for
1185 if they exist, and ipy_user_conf.py with some defaults is created for
1180 the user.
1186 the user.
1181
1187
1182 * Startup rehashing done by the config file, not InterpreterExec.
1188 * Startup rehashing done by the config file, not InterpreterExec.
1183 This means system commands are available even without selecting the
1189 This means system commands are available even without selecting the
1184 pysh profile. It's the sensible default after all.
1190 pysh profile. It's the sensible default after all.
1185
1191
1186 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1192 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1187
1193
1188 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1194 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1189 multiline code with autoindent on working. But I am really not
1195 multiline code with autoindent on working. But I am really not
1190 sure, so this needs more testing. Will commit a debug-enabled
1196 sure, so this needs more testing. Will commit a debug-enabled
1191 version for now, while I test it some more, so that Ville and
1197 version for now, while I test it some more, so that Ville and
1192 others may also catch any problems. Also made
1198 others may also catch any problems. Also made
1193 self.indent_current_str() a method, to ensure that there's no
1199 self.indent_current_str() a method, to ensure that there's no
1194 chance of the indent space count and the corresponding string
1200 chance of the indent space count and the corresponding string
1195 falling out of sync. All code needing the string should just call
1201 falling out of sync. All code needing the string should just call
1196 the method.
1202 the method.
1197
1203
1198 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1204 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1199
1205
1200 * IPython/Magic.py (magic_edit): fix check for when users don't
1206 * IPython/Magic.py (magic_edit): fix check for when users don't
1201 save their output files, the try/except was in the wrong section.
1207 save their output files, the try/except was in the wrong section.
1202
1208
1203 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1209 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1204
1210
1205 * IPython/Magic.py (magic_run): fix __file__ global missing from
1211 * IPython/Magic.py (magic_run): fix __file__ global missing from
1206 script's namespace when executed via %run. After a report by
1212 script's namespace when executed via %run. After a report by
1207 Vivian.
1213 Vivian.
1208
1214
1209 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1215 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1210 when using python 2.4. The parent constructor changed in 2.4, and
1216 when using python 2.4. The parent constructor changed in 2.4, and
1211 we need to track it directly (we can't call it, as it messes up
1217 we need to track it directly (we can't call it, as it messes up
1212 readline and tab-completion inside our pdb would stop working).
1218 readline and tab-completion inside our pdb would stop working).
1213 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1219 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1214
1220
1215 2006-01-16 Ville Vainio <vivainio@gmail.com>
1221 2006-01-16 Ville Vainio <vivainio@gmail.com>
1216
1222
1217 * Ipython/magic.py: Reverted back to old %edit functionality
1223 * Ipython/magic.py: Reverted back to old %edit functionality
1218 that returns file contents on exit.
1224 that returns file contents on exit.
1219
1225
1220 * IPython/path.py: Added Jason Orendorff's "path" module to
1226 * IPython/path.py: Added Jason Orendorff's "path" module to
1221 IPython tree, http://www.jorendorff.com/articles/python/path/.
1227 IPython tree, http://www.jorendorff.com/articles/python/path/.
1222 You can get path objects conveniently through %sc, and !!, e.g.:
1228 You can get path objects conveniently through %sc, and !!, e.g.:
1223 sc files=ls
1229 sc files=ls
1224 for p in files.paths: # or files.p
1230 for p in files.paths: # or files.p
1225 print p,p.mtime
1231 print p,p.mtime
1226
1232
1227 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1233 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1228 now work again without considering the exclusion regexp -
1234 now work again without considering the exclusion regexp -
1229 hence, things like ',foo my/path' turn to 'foo("my/path")'
1235 hence, things like ',foo my/path' turn to 'foo("my/path")'
1230 instead of syntax error.
1236 instead of syntax error.
1231
1237
1232
1238
1233 2006-01-14 Ville Vainio <vivainio@gmail.com>
1239 2006-01-14 Ville Vainio <vivainio@gmail.com>
1234
1240
1235 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1241 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1236 ipapi decorators for python 2.4 users, options() provides access to rc
1242 ipapi decorators for python 2.4 users, options() provides access to rc
1237 data.
1243 data.
1238
1244
1239 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1245 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1240 as path separators (even on Linux ;-). Space character after
1246 as path separators (even on Linux ;-). Space character after
1241 backslash (as yielded by tab completer) is still space;
1247 backslash (as yielded by tab completer) is still space;
1242 "%cd long\ name" works as expected.
1248 "%cd long\ name" works as expected.
1243
1249
1244 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1250 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1245 as "chain of command", with priority. API stays the same,
1251 as "chain of command", with priority. API stays the same,
1246 TryNext exception raised by a hook function signals that
1252 TryNext exception raised by a hook function signals that
1247 current hook failed and next hook should try handling it, as
1253 current hook failed and next hook should try handling it, as
1248 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1254 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1249 requested configurable display hook, which is now implemented.
1255 requested configurable display hook, which is now implemented.
1250
1256
1251 2006-01-13 Ville Vainio <vivainio@gmail.com>
1257 2006-01-13 Ville Vainio <vivainio@gmail.com>
1252
1258
1253 * IPython/platutils*.py: platform specific utility functions,
1259 * IPython/platutils*.py: platform specific utility functions,
1254 so far only set_term_title is implemented (change terminal
1260 so far only set_term_title is implemented (change terminal
1255 label in windowing systems). %cd now changes the title to
1261 label in windowing systems). %cd now changes the title to
1256 current dir.
1262 current dir.
1257
1263
1258 * IPython/Release.py: Added myself to "authors" list,
1264 * IPython/Release.py: Added myself to "authors" list,
1259 had to create new files.
1265 had to create new files.
1260
1266
1261 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1267 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1262 shell escape; not a known bug but had potential to be one in the
1268 shell escape; not a known bug but had potential to be one in the
1263 future.
1269 future.
1264
1270
1265 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1271 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1266 extension API for IPython! See the module for usage example. Fix
1272 extension API for IPython! See the module for usage example. Fix
1267 OInspect for docstring-less magic functions.
1273 OInspect for docstring-less magic functions.
1268
1274
1269
1275
1270 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1276 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1271
1277
1272 * IPython/iplib.py (raw_input): temporarily deactivate all
1278 * IPython/iplib.py (raw_input): temporarily deactivate all
1273 attempts at allowing pasting of code with autoindent on. It
1279 attempts at allowing pasting of code with autoindent on. It
1274 introduced bugs (reported by Prabhu) and I can't seem to find a
1280 introduced bugs (reported by Prabhu) and I can't seem to find a
1275 robust combination which works in all cases. Will have to revisit
1281 robust combination which works in all cases. Will have to revisit
1276 later.
1282 later.
1277
1283
1278 * IPython/genutils.py: remove isspace() function. We've dropped
1284 * IPython/genutils.py: remove isspace() function. We've dropped
1279 2.2 compatibility, so it's OK to use the string method.
1285 2.2 compatibility, so it's OK to use the string method.
1280
1286
1281 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1287 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1282
1288
1283 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1289 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1284 matching what NOT to autocall on, to include all python binary
1290 matching what NOT to autocall on, to include all python binary
1285 operators (including things like 'and', 'or', 'is' and 'in').
1291 operators (including things like 'and', 'or', 'is' and 'in').
1286 Prompted by a bug report on 'foo & bar', but I realized we had
1292 Prompted by a bug report on 'foo & bar', but I realized we had
1287 many more potential bug cases with other operators. The regexp is
1293 many more potential bug cases with other operators. The regexp is
1288 self.re_exclude_auto, it's fairly commented.
1294 self.re_exclude_auto, it's fairly commented.
1289
1295
1290 2006-01-12 Ville Vainio <vivainio@gmail.com>
1296 2006-01-12 Ville Vainio <vivainio@gmail.com>
1291
1297
1292 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1298 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1293 Prettified and hardened string/backslash quoting with ipsystem(),
1299 Prettified and hardened string/backslash quoting with ipsystem(),
1294 ipalias() and ipmagic(). Now even \ characters are passed to
1300 ipalias() and ipmagic(). Now even \ characters are passed to
1295 %magics, !shell escapes and aliases exactly as they are in the
1301 %magics, !shell escapes and aliases exactly as they are in the
1296 ipython command line. Should improve backslash experience,
1302 ipython command line. Should improve backslash experience,
1297 particularly in Windows (path delimiter for some commands that
1303 particularly in Windows (path delimiter for some commands that
1298 won't understand '/'), but Unix benefits as well (regexps). %cd
1304 won't understand '/'), but Unix benefits as well (regexps). %cd
1299 magic still doesn't support backslash path delimiters, though. Also
1305 magic still doesn't support backslash path delimiters, though. Also
1300 deleted all pretense of supporting multiline command strings in
1306 deleted all pretense of supporting multiline command strings in
1301 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1307 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1302
1308
1303 * doc/build_doc_instructions.txt added. Documentation on how to
1309 * doc/build_doc_instructions.txt added. Documentation on how to
1304 use doc/update_manual.py, added yesterday. Both files contributed
1310 use doc/update_manual.py, added yesterday. Both files contributed
1305 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1311 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1306 doc/*.sh for deprecation at a later date.
1312 doc/*.sh for deprecation at a later date.
1307
1313
1308 * /ipython.py Added ipython.py to root directory for
1314 * /ipython.py Added ipython.py to root directory for
1309 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1315 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1310 ipython.py) and development convenience (no need to keep doing
1316 ipython.py) and development convenience (no need to keep doing
1311 "setup.py install" between changes).
1317 "setup.py install" between changes).
1312
1318
1313 * Made ! and !! shell escapes work (again) in multiline expressions:
1319 * Made ! and !! shell escapes work (again) in multiline expressions:
1314 if 1:
1320 if 1:
1315 !ls
1321 !ls
1316 !!ls
1322 !!ls
1317
1323
1318 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1324 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1319
1325
1320 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1326 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1321 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1327 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1322 module in case-insensitive installation. Was causing crashes
1328 module in case-insensitive installation. Was causing crashes
1323 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1329 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1324
1330
1325 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1331 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1326 <marienz-AT-gentoo.org>, closes
1332 <marienz-AT-gentoo.org>, closes
1327 http://www.scipy.net/roundup/ipython/issue51.
1333 http://www.scipy.net/roundup/ipython/issue51.
1328
1334
1329 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1335 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1330
1336
1331 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1337 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1332 problem of excessive CPU usage under *nix and keyboard lag under
1338 problem of excessive CPU usage under *nix and keyboard lag under
1333 win32.
1339 win32.
1334
1340
1335 2006-01-10 *** Released version 0.7.0
1341 2006-01-10 *** Released version 0.7.0
1336
1342
1337 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1343 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1338
1344
1339 * IPython/Release.py (revision): tag version number to 0.7.0,
1345 * IPython/Release.py (revision): tag version number to 0.7.0,
1340 ready for release.
1346 ready for release.
1341
1347
1342 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1348 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1343 it informs the user of the name of the temp. file used. This can
1349 it informs the user of the name of the temp. file used. This can
1344 help if you decide later to reuse that same file, so you know
1350 help if you decide later to reuse that same file, so you know
1345 where to copy the info from.
1351 where to copy the info from.
1346
1352
1347 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1353 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1348
1354
1349 * setup_bdist_egg.py: little script to build an egg. Added
1355 * setup_bdist_egg.py: little script to build an egg. Added
1350 support in the release tools as well.
1356 support in the release tools as well.
1351
1357
1352 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1358 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1353
1359
1354 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1360 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1355 version selection (new -wxversion command line and ipythonrc
1361 version selection (new -wxversion command line and ipythonrc
1356 parameter). Patch contributed by Arnd Baecker
1362 parameter). Patch contributed by Arnd Baecker
1357 <arnd.baecker-AT-web.de>.
1363 <arnd.baecker-AT-web.de>.
1358
1364
1359 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1365 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1360 embedded instances, for variables defined at the interactive
1366 embedded instances, for variables defined at the interactive
1361 prompt of the embedded ipython. Reported by Arnd.
1367 prompt of the embedded ipython. Reported by Arnd.
1362
1368
1363 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1369 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1364 it can be used as a (stateful) toggle, or with a direct parameter.
1370 it can be used as a (stateful) toggle, or with a direct parameter.
1365
1371
1366 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1372 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1367 could be triggered in certain cases and cause the traceback
1373 could be triggered in certain cases and cause the traceback
1368 printer not to work.
1374 printer not to work.
1369
1375
1370 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1376 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1371
1377
1372 * IPython/iplib.py (_should_recompile): Small fix, closes
1378 * IPython/iplib.py (_should_recompile): Small fix, closes
1373 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1379 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1374
1380
1375 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1381 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1376
1382
1377 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1383 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1378 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1384 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1379 Moad for help with tracking it down.
1385 Moad for help with tracking it down.
1380
1386
1381 * IPython/iplib.py (handle_auto): fix autocall handling for
1387 * IPython/iplib.py (handle_auto): fix autocall handling for
1382 objects which support BOTH __getitem__ and __call__ (so that f [x]
1388 objects which support BOTH __getitem__ and __call__ (so that f [x]
1383 is left alone, instead of becoming f([x]) automatically).
1389 is left alone, instead of becoming f([x]) automatically).
1384
1390
1385 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1391 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1386 Ville's patch.
1392 Ville's patch.
1387
1393
1388 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1394 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1389
1395
1390 * IPython/iplib.py (handle_auto): changed autocall semantics to
1396 * IPython/iplib.py (handle_auto): changed autocall semantics to
1391 include 'smart' mode, where the autocall transformation is NOT
1397 include 'smart' mode, where the autocall transformation is NOT
1392 applied if there are no arguments on the line. This allows you to
1398 applied if there are no arguments on the line. This allows you to
1393 just type 'foo' if foo is a callable to see its internal form,
1399 just type 'foo' if foo is a callable to see its internal form,
1394 instead of having it called with no arguments (typically a
1400 instead of having it called with no arguments (typically a
1395 mistake). The old 'full' autocall still exists: for that, you
1401 mistake). The old 'full' autocall still exists: for that, you
1396 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1402 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1397
1403
1398 * IPython/completer.py (Completer.attr_matches): add
1404 * IPython/completer.py (Completer.attr_matches): add
1399 tab-completion support for Enthoughts' traits. After a report by
1405 tab-completion support for Enthoughts' traits. After a report by
1400 Arnd and a patch by Prabhu.
1406 Arnd and a patch by Prabhu.
1401
1407
1402 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1408 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1403
1409
1404 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1410 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1405 Schmolck's patch to fix inspect.getinnerframes().
1411 Schmolck's patch to fix inspect.getinnerframes().
1406
1412
1407 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1413 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1408 for embedded instances, regarding handling of namespaces and items
1414 for embedded instances, regarding handling of namespaces and items
1409 added to the __builtin__ one. Multiple embedded instances and
1415 added to the __builtin__ one. Multiple embedded instances and
1410 recursive embeddings should work better now (though I'm not sure
1416 recursive embeddings should work better now (though I'm not sure
1411 I've got all the corner cases fixed, that code is a bit of a brain
1417 I've got all the corner cases fixed, that code is a bit of a brain
1412 twister).
1418 twister).
1413
1419
1414 * IPython/Magic.py (magic_edit): added support to edit in-memory
1420 * IPython/Magic.py (magic_edit): added support to edit in-memory
1415 macros (automatically creates the necessary temp files). %edit
1421 macros (automatically creates the necessary temp files). %edit
1416 also doesn't return the file contents anymore, it's just noise.
1422 also doesn't return the file contents anymore, it's just noise.
1417
1423
1418 * IPython/completer.py (Completer.attr_matches): revert change to
1424 * IPython/completer.py (Completer.attr_matches): revert change to
1419 complete only on attributes listed in __all__. I realized it
1425 complete only on attributes listed in __all__. I realized it
1420 cripples the tab-completion system as a tool for exploring the
1426 cripples the tab-completion system as a tool for exploring the
1421 internals of unknown libraries (it renders any non-__all__
1427 internals of unknown libraries (it renders any non-__all__
1422 attribute off-limits). I got bit by this when trying to see
1428 attribute off-limits). I got bit by this when trying to see
1423 something inside the dis module.
1429 something inside the dis module.
1424
1430
1425 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1431 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1426
1432
1427 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1433 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1428 namespace for users and extension writers to hold data in. This
1434 namespace for users and extension writers to hold data in. This
1429 follows the discussion in
1435 follows the discussion in
1430 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1436 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1431
1437
1432 * IPython/completer.py (IPCompleter.complete): small patch to help
1438 * IPython/completer.py (IPCompleter.complete): small patch to help
1433 tab-completion under Emacs, after a suggestion by John Barnard
1439 tab-completion under Emacs, after a suggestion by John Barnard
1434 <barnarj-AT-ccf.org>.
1440 <barnarj-AT-ccf.org>.
1435
1441
1436 * IPython/Magic.py (Magic.extract_input_slices): added support for
1442 * IPython/Magic.py (Magic.extract_input_slices): added support for
1437 the slice notation in magics to use N-M to represent numbers N...M
1443 the slice notation in magics to use N-M to represent numbers N...M
1438 (closed endpoints). This is used by %macro and %save.
1444 (closed endpoints). This is used by %macro and %save.
1439
1445
1440 * IPython/completer.py (Completer.attr_matches): for modules which
1446 * IPython/completer.py (Completer.attr_matches): for modules which
1441 define __all__, complete only on those. After a patch by Jeffrey
1447 define __all__, complete only on those. After a patch by Jeffrey
1442 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1448 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1443 speed up this routine.
1449 speed up this routine.
1444
1450
1445 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1451 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1446 don't know if this is the end of it, but the behavior now is
1452 don't know if this is the end of it, but the behavior now is
1447 certainly much more correct. Note that coupled with macros,
1453 certainly much more correct. Note that coupled with macros,
1448 slightly surprising (at first) behavior may occur: a macro will in
1454 slightly surprising (at first) behavior may occur: a macro will in
1449 general expand to multiple lines of input, so upon exiting, the
1455 general expand to multiple lines of input, so upon exiting, the
1450 in/out counters will both be bumped by the corresponding amount
1456 in/out counters will both be bumped by the corresponding amount
1451 (as if the macro's contents had been typed interactively). Typing
1457 (as if the macro's contents had been typed interactively). Typing
1452 %hist will reveal the intermediate (silently processed) lines.
1458 %hist will reveal the intermediate (silently processed) lines.
1453
1459
1454 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1460 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1455 pickle to fail (%run was overwriting __main__ and not restoring
1461 pickle to fail (%run was overwriting __main__ and not restoring
1456 it, but pickle relies on __main__ to operate).
1462 it, but pickle relies on __main__ to operate).
1457
1463
1458 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1464 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1459 using properties, but forgot to make the main InteractiveShell
1465 using properties, but forgot to make the main InteractiveShell
1460 class a new-style class. Properties fail silently, and
1466 class a new-style class. Properties fail silently, and
1461 mysteriously, with old-style class (getters work, but
1467 mysteriously, with old-style class (getters work, but
1462 setters don't do anything).
1468 setters don't do anything).
1463
1469
1464 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1470 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1465
1471
1466 * IPython/Magic.py (magic_history): fix history reporting bug (I
1472 * IPython/Magic.py (magic_history): fix history reporting bug (I
1467 know some nasties are still there, I just can't seem to find a
1473 know some nasties are still there, I just can't seem to find a
1468 reproducible test case to track them down; the input history is
1474 reproducible test case to track them down; the input history is
1469 falling out of sync...)
1475 falling out of sync...)
1470
1476
1471 * IPython/iplib.py (handle_shell_escape): fix bug where both
1477 * IPython/iplib.py (handle_shell_escape): fix bug where both
1472 aliases and system accesses where broken for indented code (such
1478 aliases and system accesses where broken for indented code (such
1473 as loops).
1479 as loops).
1474
1480
1475 * IPython/genutils.py (shell): fix small but critical bug for
1481 * IPython/genutils.py (shell): fix small but critical bug for
1476 win32 system access.
1482 win32 system access.
1477
1483
1478 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1484 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1479
1485
1480 * IPython/iplib.py (showtraceback): remove use of the
1486 * IPython/iplib.py (showtraceback): remove use of the
1481 sys.last_{type/value/traceback} structures, which are non
1487 sys.last_{type/value/traceback} structures, which are non
1482 thread-safe.
1488 thread-safe.
1483 (_prefilter): change control flow to ensure that we NEVER
1489 (_prefilter): change control flow to ensure that we NEVER
1484 introspect objects when autocall is off. This will guarantee that
1490 introspect objects when autocall is off. This will guarantee that
1485 having an input line of the form 'x.y', where access to attribute
1491 having an input line of the form 'x.y', where access to attribute
1486 'y' has side effects, doesn't trigger the side effect TWICE. It
1492 'y' has side effects, doesn't trigger the side effect TWICE. It
1487 is important to note that, with autocall on, these side effects
1493 is important to note that, with autocall on, these side effects
1488 can still happen.
1494 can still happen.
1489 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1495 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1490 trio. IPython offers these three kinds of special calls which are
1496 trio. IPython offers these three kinds of special calls which are
1491 not python code, and it's a good thing to have their call method
1497 not python code, and it's a good thing to have their call method
1492 be accessible as pure python functions (not just special syntax at
1498 be accessible as pure python functions (not just special syntax at
1493 the command line). It gives us a better internal implementation
1499 the command line). It gives us a better internal implementation
1494 structure, as well as exposing these for user scripting more
1500 structure, as well as exposing these for user scripting more
1495 cleanly.
1501 cleanly.
1496
1502
1497 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1503 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1498 file. Now that they'll be more likely to be used with the
1504 file. Now that they'll be more likely to be used with the
1499 persistance system (%store), I want to make sure their module path
1505 persistance system (%store), I want to make sure their module path
1500 doesn't change in the future, so that we don't break things for
1506 doesn't change in the future, so that we don't break things for
1501 users' persisted data.
1507 users' persisted data.
1502
1508
1503 * IPython/iplib.py (autoindent_update): move indentation
1509 * IPython/iplib.py (autoindent_update): move indentation
1504 management into the _text_ processing loop, not the keyboard
1510 management into the _text_ processing loop, not the keyboard
1505 interactive one. This is necessary to correctly process non-typed
1511 interactive one. This is necessary to correctly process non-typed
1506 multiline input (such as macros).
1512 multiline input (such as macros).
1507
1513
1508 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1514 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1509 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1515 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1510 which was producing problems in the resulting manual.
1516 which was producing problems in the resulting manual.
1511 (magic_whos): improve reporting of instances (show their class,
1517 (magic_whos): improve reporting of instances (show their class,
1512 instead of simply printing 'instance' which isn't terribly
1518 instead of simply printing 'instance' which isn't terribly
1513 informative).
1519 informative).
1514
1520
1515 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1521 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1516 (minor mods) to support network shares under win32.
1522 (minor mods) to support network shares under win32.
1517
1523
1518 * IPython/winconsole.py (get_console_size): add new winconsole
1524 * IPython/winconsole.py (get_console_size): add new winconsole
1519 module and fixes to page_dumb() to improve its behavior under
1525 module and fixes to page_dumb() to improve its behavior under
1520 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1526 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1521
1527
1522 * IPython/Magic.py (Macro): simplified Macro class to just
1528 * IPython/Magic.py (Macro): simplified Macro class to just
1523 subclass list. We've had only 2.2 compatibility for a very long
1529 subclass list. We've had only 2.2 compatibility for a very long
1524 time, yet I was still avoiding subclassing the builtin types. No
1530 time, yet I was still avoiding subclassing the builtin types. No
1525 more (I'm also starting to use properties, though I won't shift to
1531 more (I'm also starting to use properties, though I won't shift to
1526 2.3-specific features quite yet).
1532 2.3-specific features quite yet).
1527 (magic_store): added Ville's patch for lightweight variable
1533 (magic_store): added Ville's patch for lightweight variable
1528 persistence, after a request on the user list by Matt Wilkie
1534 persistence, after a request on the user list by Matt Wilkie
1529 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1535 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1530 details.
1536 details.
1531
1537
1532 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1538 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1533 changed the default logfile name from 'ipython.log' to
1539 changed the default logfile name from 'ipython.log' to
1534 'ipython_log.py'. These logs are real python files, and now that
1540 'ipython_log.py'. These logs are real python files, and now that
1535 we have much better multiline support, people are more likely to
1541 we have much better multiline support, people are more likely to
1536 want to use them as such. Might as well name them correctly.
1542 want to use them as such. Might as well name them correctly.
1537
1543
1538 * IPython/Magic.py: substantial cleanup. While we can't stop
1544 * IPython/Magic.py: substantial cleanup. While we can't stop
1539 using magics as mixins, due to the existing customizations 'out
1545 using magics as mixins, due to the existing customizations 'out
1540 there' which rely on the mixin naming conventions, at least I
1546 there' which rely on the mixin naming conventions, at least I
1541 cleaned out all cross-class name usage. So once we are OK with
1547 cleaned out all cross-class name usage. So once we are OK with
1542 breaking compatibility, the two systems can be separated.
1548 breaking compatibility, the two systems can be separated.
1543
1549
1544 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1550 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1545 anymore, and the class is a fair bit less hideous as well. New
1551 anymore, and the class is a fair bit less hideous as well. New
1546 features were also introduced: timestamping of input, and logging
1552 features were also introduced: timestamping of input, and logging
1547 of output results. These are user-visible with the -t and -o
1553 of output results. These are user-visible with the -t and -o
1548 options to %logstart. Closes
1554 options to %logstart. Closes
1549 http://www.scipy.net/roundup/ipython/issue11 and a request by
1555 http://www.scipy.net/roundup/ipython/issue11 and a request by
1550 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1556 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1551
1557
1552 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1558 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1553
1559
1554 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1560 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1555 better handle backslashes in paths. See the thread 'More Windows
1561 better handle backslashes in paths. See the thread 'More Windows
1556 questions part 2 - \/ characters revisited' on the iypthon user
1562 questions part 2 - \/ characters revisited' on the iypthon user
1557 list:
1563 list:
1558 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1564 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1559
1565
1560 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1566 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1561
1567
1562 (InteractiveShell.__init__): change threaded shells to not use the
1568 (InteractiveShell.__init__): change threaded shells to not use the
1563 ipython crash handler. This was causing more problems than not,
1569 ipython crash handler. This was causing more problems than not,
1564 as exceptions in the main thread (GUI code, typically) would
1570 as exceptions in the main thread (GUI code, typically) would
1565 always show up as a 'crash', when they really weren't.
1571 always show up as a 'crash', when they really weren't.
1566
1572
1567 The colors and exception mode commands (%colors/%xmode) have been
1573 The colors and exception mode commands (%colors/%xmode) have been
1568 synchronized to also take this into account, so users can get
1574 synchronized to also take this into account, so users can get
1569 verbose exceptions for their threaded code as well. I also added
1575 verbose exceptions for their threaded code as well. I also added
1570 support for activating pdb inside this exception handler as well,
1576 support for activating pdb inside this exception handler as well,
1571 so now GUI authors can use IPython's enhanced pdb at runtime.
1577 so now GUI authors can use IPython's enhanced pdb at runtime.
1572
1578
1573 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1579 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1574 true by default, and add it to the shipped ipythonrc file. Since
1580 true by default, and add it to the shipped ipythonrc file. Since
1575 this asks the user before proceeding, I think it's OK to make it
1581 this asks the user before proceeding, I think it's OK to make it
1576 true by default.
1582 true by default.
1577
1583
1578 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1584 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1579 of the previous special-casing of input in the eval loop. I think
1585 of the previous special-casing of input in the eval loop. I think
1580 this is cleaner, as they really are commands and shouldn't have
1586 this is cleaner, as they really are commands and shouldn't have
1581 a special role in the middle of the core code.
1587 a special role in the middle of the core code.
1582
1588
1583 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1589 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1584
1590
1585 * IPython/iplib.py (edit_syntax_error): added support for
1591 * IPython/iplib.py (edit_syntax_error): added support for
1586 automatically reopening the editor if the file had a syntax error
1592 automatically reopening the editor if the file had a syntax error
1587 in it. Thanks to scottt who provided the patch at:
1593 in it. Thanks to scottt who provided the patch at:
1588 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1594 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1589 version committed).
1595 version committed).
1590
1596
1591 * IPython/iplib.py (handle_normal): add suport for multi-line
1597 * IPython/iplib.py (handle_normal): add suport for multi-line
1592 input with emtpy lines. This fixes
1598 input with emtpy lines. This fixes
1593 http://www.scipy.net/roundup/ipython/issue43 and a similar
1599 http://www.scipy.net/roundup/ipython/issue43 and a similar
1594 discussion on the user list.
1600 discussion on the user list.
1595
1601
1596 WARNING: a behavior change is necessarily introduced to support
1602 WARNING: a behavior change is necessarily introduced to support
1597 blank lines: now a single blank line with whitespace does NOT
1603 blank lines: now a single blank line with whitespace does NOT
1598 break the input loop, which means that when autoindent is on, by
1604 break the input loop, which means that when autoindent is on, by
1599 default hitting return on the next (indented) line does NOT exit.
1605 default hitting return on the next (indented) line does NOT exit.
1600
1606
1601 Instead, to exit a multiline input you can either have:
1607 Instead, to exit a multiline input you can either have:
1602
1608
1603 - TWO whitespace lines (just hit return again), or
1609 - TWO whitespace lines (just hit return again), or
1604 - a single whitespace line of a different length than provided
1610 - a single whitespace line of a different length than provided
1605 by the autoindent (add or remove a space).
1611 by the autoindent (add or remove a space).
1606
1612
1607 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1613 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1608 module to better organize all readline-related functionality.
1614 module to better organize all readline-related functionality.
1609 I've deleted FlexCompleter and put all completion clases here.
1615 I've deleted FlexCompleter and put all completion clases here.
1610
1616
1611 * IPython/iplib.py (raw_input): improve indentation management.
1617 * IPython/iplib.py (raw_input): improve indentation management.
1612 It is now possible to paste indented code with autoindent on, and
1618 It is now possible to paste indented code with autoindent on, and
1613 the code is interpreted correctly (though it still looks bad on
1619 the code is interpreted correctly (though it still looks bad on
1614 screen, due to the line-oriented nature of ipython).
1620 screen, due to the line-oriented nature of ipython).
1615 (MagicCompleter.complete): change behavior so that a TAB key on an
1621 (MagicCompleter.complete): change behavior so that a TAB key on an
1616 otherwise empty line actually inserts a tab, instead of completing
1622 otherwise empty line actually inserts a tab, instead of completing
1617 on the entire global namespace. This makes it easier to use the
1623 on the entire global namespace. This makes it easier to use the
1618 TAB key for indentation. After a request by Hans Meine
1624 TAB key for indentation. After a request by Hans Meine
1619 <hans_meine-AT-gmx.net>
1625 <hans_meine-AT-gmx.net>
1620 (_prefilter): add support so that typing plain 'exit' or 'quit'
1626 (_prefilter): add support so that typing plain 'exit' or 'quit'
1621 does a sensible thing. Originally I tried to deviate as little as
1627 does a sensible thing. Originally I tried to deviate as little as
1622 possible from the default python behavior, but even that one may
1628 possible from the default python behavior, but even that one may
1623 change in this direction (thread on python-dev to that effect).
1629 change in this direction (thread on python-dev to that effect).
1624 Regardless, ipython should do the right thing even if CPython's
1630 Regardless, ipython should do the right thing even if CPython's
1625 '>>>' prompt doesn't.
1631 '>>>' prompt doesn't.
1626 (InteractiveShell): removed subclassing code.InteractiveConsole
1632 (InteractiveShell): removed subclassing code.InteractiveConsole
1627 class. By now we'd overridden just about all of its methods: I've
1633 class. By now we'd overridden just about all of its methods: I've
1628 copied the remaining two over, and now ipython is a standalone
1634 copied the remaining two over, and now ipython is a standalone
1629 class. This will provide a clearer picture for the chainsaw
1635 class. This will provide a clearer picture for the chainsaw
1630 branch refactoring.
1636 branch refactoring.
1631
1637
1632 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1638 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1633
1639
1634 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1640 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1635 failures for objects which break when dir() is called on them.
1641 failures for objects which break when dir() is called on them.
1636
1642
1637 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1643 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1638 distinct local and global namespaces in the completer API. This
1644 distinct local and global namespaces in the completer API. This
1639 change allows us to properly handle completion with distinct
1645 change allows us to properly handle completion with distinct
1640 scopes, including in embedded instances (this had never really
1646 scopes, including in embedded instances (this had never really
1641 worked correctly).
1647 worked correctly).
1642
1648
1643 Note: this introduces a change in the constructor for
1649 Note: this introduces a change in the constructor for
1644 MagicCompleter, as a new global_namespace parameter is now the
1650 MagicCompleter, as a new global_namespace parameter is now the
1645 second argument (the others were bumped one position).
1651 second argument (the others were bumped one position).
1646
1652
1647 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1653 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1648
1654
1649 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1655 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1650 embedded instances (which can be done now thanks to Vivian's
1656 embedded instances (which can be done now thanks to Vivian's
1651 frame-handling fixes for pdb).
1657 frame-handling fixes for pdb).
1652 (InteractiveShell.__init__): Fix namespace handling problem in
1658 (InteractiveShell.__init__): Fix namespace handling problem in
1653 embedded instances. We were overwriting __main__ unconditionally,
1659 embedded instances. We were overwriting __main__ unconditionally,
1654 and this should only be done for 'full' (non-embedded) IPython;
1660 and this should only be done for 'full' (non-embedded) IPython;
1655 embedded instances must respect the caller's __main__. Thanks to
1661 embedded instances must respect the caller's __main__. Thanks to
1656 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1662 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1657
1663
1658 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1664 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1659
1665
1660 * setup.py: added download_url to setup(). This registers the
1666 * setup.py: added download_url to setup(). This registers the
1661 download address at PyPI, which is not only useful to humans
1667 download address at PyPI, which is not only useful to humans
1662 browsing the site, but is also picked up by setuptools (the Eggs
1668 browsing the site, but is also picked up by setuptools (the Eggs
1663 machinery). Thanks to Ville and R. Kern for the info/discussion
1669 machinery). Thanks to Ville and R. Kern for the info/discussion
1664 on this.
1670 on this.
1665
1671
1666 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1672 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1667
1673
1668 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1674 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1669 This brings a lot of nice functionality to the pdb mode, which now
1675 This brings a lot of nice functionality to the pdb mode, which now
1670 has tab-completion, syntax highlighting, and better stack handling
1676 has tab-completion, syntax highlighting, and better stack handling
1671 than before. Many thanks to Vivian De Smedt
1677 than before. Many thanks to Vivian De Smedt
1672 <vivian-AT-vdesmedt.com> for the original patches.
1678 <vivian-AT-vdesmedt.com> for the original patches.
1673
1679
1674 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1680 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1675
1681
1676 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1682 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1677 sequence to consistently accept the banner argument. The
1683 sequence to consistently accept the banner argument. The
1678 inconsistency was tripping SAGE, thanks to Gary Zablackis
1684 inconsistency was tripping SAGE, thanks to Gary Zablackis
1679 <gzabl-AT-yahoo.com> for the report.
1685 <gzabl-AT-yahoo.com> for the report.
1680
1686
1681 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1687 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1682
1688
1683 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1689 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1684 Fix bug where a naked 'alias' call in the ipythonrc file would
1690 Fix bug where a naked 'alias' call in the ipythonrc file would
1685 cause a crash. Bug reported by Jorgen Stenarson.
1691 cause a crash. Bug reported by Jorgen Stenarson.
1686
1692
1687 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1693 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1688
1694
1689 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1695 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1690 startup time.
1696 startup time.
1691
1697
1692 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1698 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1693 instances had introduced a bug with globals in normal code. Now
1699 instances had introduced a bug with globals in normal code. Now
1694 it's working in all cases.
1700 it's working in all cases.
1695
1701
1696 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1702 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1697 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1703 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1698 has been introduced to set the default case sensitivity of the
1704 has been introduced to set the default case sensitivity of the
1699 searches. Users can still select either mode at runtime on a
1705 searches. Users can still select either mode at runtime on a
1700 per-search basis.
1706 per-search basis.
1701
1707
1702 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1708 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1703
1709
1704 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1710 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1705 attributes in wildcard searches for subclasses. Modified version
1711 attributes in wildcard searches for subclasses. Modified version
1706 of a patch by Jorgen.
1712 of a patch by Jorgen.
1707
1713
1708 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1714 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1709
1715
1710 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1716 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1711 embedded instances. I added a user_global_ns attribute to the
1717 embedded instances. I added a user_global_ns attribute to the
1712 InteractiveShell class to handle this.
1718 InteractiveShell class to handle this.
1713
1719
1714 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1720 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1715
1721
1716 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1722 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1717 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1723 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1718 (reported under win32, but may happen also in other platforms).
1724 (reported under win32, but may happen also in other platforms).
1719 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1725 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1720
1726
1721 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1727 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1722
1728
1723 * IPython/Magic.py (magic_psearch): new support for wildcard
1729 * IPython/Magic.py (magic_psearch): new support for wildcard
1724 patterns. Now, typing ?a*b will list all names which begin with a
1730 patterns. Now, typing ?a*b will list all names which begin with a
1725 and end in b, for example. The %psearch magic has full
1731 and end in b, for example. The %psearch magic has full
1726 docstrings. Many thanks to JΓΆrgen Stenarson
1732 docstrings. Many thanks to JΓΆrgen Stenarson
1727 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1733 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1728 implementing this functionality.
1734 implementing this functionality.
1729
1735
1730 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1736 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1731
1737
1732 * Manual: fixed long-standing annoyance of double-dashes (as in
1738 * Manual: fixed long-standing annoyance of double-dashes (as in
1733 --prefix=~, for example) being stripped in the HTML version. This
1739 --prefix=~, for example) being stripped in the HTML version. This
1734 is a latex2html bug, but a workaround was provided. Many thanks
1740 is a latex2html bug, but a workaround was provided. Many thanks
1735 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1741 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1736 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1742 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1737 rolling. This seemingly small issue had tripped a number of users
1743 rolling. This seemingly small issue had tripped a number of users
1738 when first installing, so I'm glad to see it gone.
1744 when first installing, so I'm glad to see it gone.
1739
1745
1740 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1746 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1741
1747
1742 * IPython/Extensions/numeric_formats.py: fix missing import,
1748 * IPython/Extensions/numeric_formats.py: fix missing import,
1743 reported by Stephen Walton.
1749 reported by Stephen Walton.
1744
1750
1745 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1751 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1746
1752
1747 * IPython/demo.py: finish demo module, fully documented now.
1753 * IPython/demo.py: finish demo module, fully documented now.
1748
1754
1749 * IPython/genutils.py (file_read): simple little utility to read a
1755 * IPython/genutils.py (file_read): simple little utility to read a
1750 file and ensure it's closed afterwards.
1756 file and ensure it's closed afterwards.
1751
1757
1752 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1758 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1753
1759
1754 * IPython/demo.py (Demo.__init__): added support for individually
1760 * IPython/demo.py (Demo.__init__): added support for individually
1755 tagging blocks for automatic execution.
1761 tagging blocks for automatic execution.
1756
1762
1757 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1763 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1758 syntax-highlighted python sources, requested by John.
1764 syntax-highlighted python sources, requested by John.
1759
1765
1760 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1766 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1761
1767
1762 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1768 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1763 finishing.
1769 finishing.
1764
1770
1765 * IPython/genutils.py (shlex_split): moved from Magic to here,
1771 * IPython/genutils.py (shlex_split): moved from Magic to here,
1766 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1772 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1767
1773
1768 * IPython/demo.py (Demo.__init__): added support for silent
1774 * IPython/demo.py (Demo.__init__): added support for silent
1769 blocks, improved marks as regexps, docstrings written.
1775 blocks, improved marks as regexps, docstrings written.
1770 (Demo.__init__): better docstring, added support for sys.argv.
1776 (Demo.__init__): better docstring, added support for sys.argv.
1771
1777
1772 * IPython/genutils.py (marquee): little utility used by the demo
1778 * IPython/genutils.py (marquee): little utility used by the demo
1773 code, handy in general.
1779 code, handy in general.
1774
1780
1775 * IPython/demo.py (Demo.__init__): new class for interactive
1781 * IPython/demo.py (Demo.__init__): new class for interactive
1776 demos. Not documented yet, I just wrote it in a hurry for
1782 demos. Not documented yet, I just wrote it in a hurry for
1777 scipy'05. Will docstring later.
1783 scipy'05. Will docstring later.
1778
1784
1779 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1785 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1780
1786
1781 * IPython/Shell.py (sigint_handler): Drastic simplification which
1787 * IPython/Shell.py (sigint_handler): Drastic simplification which
1782 also seems to make Ctrl-C work correctly across threads! This is
1788 also seems to make Ctrl-C work correctly across threads! This is
1783 so simple, that I can't beleive I'd missed it before. Needs more
1789 so simple, that I can't beleive I'd missed it before. Needs more
1784 testing, though.
1790 testing, though.
1785 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1791 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1786 like this before...
1792 like this before...
1787
1793
1788 * IPython/genutils.py (get_home_dir): add protection against
1794 * IPython/genutils.py (get_home_dir): add protection against
1789 non-dirs in win32 registry.
1795 non-dirs in win32 registry.
1790
1796
1791 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1797 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1792 bug where dict was mutated while iterating (pysh crash).
1798 bug where dict was mutated while iterating (pysh crash).
1793
1799
1794 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1800 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1795
1801
1796 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1802 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1797 spurious newlines added by this routine. After a report by
1803 spurious newlines added by this routine. After a report by
1798 F. Mantegazza.
1804 F. Mantegazza.
1799
1805
1800 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1806 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1801
1807
1802 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1808 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1803 calls. These were a leftover from the GTK 1.x days, and can cause
1809 calls. These were a leftover from the GTK 1.x days, and can cause
1804 problems in certain cases (after a report by John Hunter).
1810 problems in certain cases (after a report by John Hunter).
1805
1811
1806 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1812 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1807 os.getcwd() fails at init time. Thanks to patch from David Remahl
1813 os.getcwd() fails at init time. Thanks to patch from David Remahl
1808 <chmod007-AT-mac.com>.
1814 <chmod007-AT-mac.com>.
1809 (InteractiveShell.__init__): prevent certain special magics from
1815 (InteractiveShell.__init__): prevent certain special magics from
1810 being shadowed by aliases. Closes
1816 being shadowed by aliases. Closes
1811 http://www.scipy.net/roundup/ipython/issue41.
1817 http://www.scipy.net/roundup/ipython/issue41.
1812
1818
1813 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1819 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1814
1820
1815 * IPython/iplib.py (InteractiveShell.complete): Added new
1821 * IPython/iplib.py (InteractiveShell.complete): Added new
1816 top-level completion method to expose the completion mechanism
1822 top-level completion method to expose the completion mechanism
1817 beyond readline-based environments.
1823 beyond readline-based environments.
1818
1824
1819 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1825 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1820
1826
1821 * tools/ipsvnc (svnversion): fix svnversion capture.
1827 * tools/ipsvnc (svnversion): fix svnversion capture.
1822
1828
1823 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1829 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1824 attribute to self, which was missing. Before, it was set by a
1830 attribute to self, which was missing. Before, it was set by a
1825 routine which in certain cases wasn't being called, so the
1831 routine which in certain cases wasn't being called, so the
1826 instance could end up missing the attribute. This caused a crash.
1832 instance could end up missing the attribute. This caused a crash.
1827 Closes http://www.scipy.net/roundup/ipython/issue40.
1833 Closes http://www.scipy.net/roundup/ipython/issue40.
1828
1834
1829 2005-08-16 Fernando Perez <fperez@colorado.edu>
1835 2005-08-16 Fernando Perez <fperez@colorado.edu>
1830
1836
1831 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1837 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1832 contains non-string attribute. Closes
1838 contains non-string attribute. Closes
1833 http://www.scipy.net/roundup/ipython/issue38.
1839 http://www.scipy.net/roundup/ipython/issue38.
1834
1840
1835 2005-08-14 Fernando Perez <fperez@colorado.edu>
1841 2005-08-14 Fernando Perez <fperez@colorado.edu>
1836
1842
1837 * tools/ipsvnc: Minor improvements, to add changeset info.
1843 * tools/ipsvnc: Minor improvements, to add changeset info.
1838
1844
1839 2005-08-12 Fernando Perez <fperez@colorado.edu>
1845 2005-08-12 Fernando Perez <fperez@colorado.edu>
1840
1846
1841 * IPython/iplib.py (runsource): remove self.code_to_run_src
1847 * IPython/iplib.py (runsource): remove self.code_to_run_src
1842 attribute. I realized this is nothing more than
1848 attribute. I realized this is nothing more than
1843 '\n'.join(self.buffer), and having the same data in two different
1849 '\n'.join(self.buffer), and having the same data in two different
1844 places is just asking for synchronization bugs. This may impact
1850 places is just asking for synchronization bugs. This may impact
1845 people who have custom exception handlers, so I need to warn
1851 people who have custom exception handlers, so I need to warn
1846 ipython-dev about it (F. Mantegazza may use them).
1852 ipython-dev about it (F. Mantegazza may use them).
1847
1853
1848 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1854 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1849
1855
1850 * IPython/genutils.py: fix 2.2 compatibility (generators)
1856 * IPython/genutils.py: fix 2.2 compatibility (generators)
1851
1857
1852 2005-07-18 Fernando Perez <fperez@colorado.edu>
1858 2005-07-18 Fernando Perez <fperez@colorado.edu>
1853
1859
1854 * IPython/genutils.py (get_home_dir): fix to help users with
1860 * IPython/genutils.py (get_home_dir): fix to help users with
1855 invalid $HOME under win32.
1861 invalid $HOME under win32.
1856
1862
1857 2005-07-17 Fernando Perez <fperez@colorado.edu>
1863 2005-07-17 Fernando Perez <fperez@colorado.edu>
1858
1864
1859 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1865 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1860 some old hacks and clean up a bit other routines; code should be
1866 some old hacks and clean up a bit other routines; code should be
1861 simpler and a bit faster.
1867 simpler and a bit faster.
1862
1868
1863 * IPython/iplib.py (interact): removed some last-resort attempts
1869 * IPython/iplib.py (interact): removed some last-resort attempts
1864 to survive broken stdout/stderr. That code was only making it
1870 to survive broken stdout/stderr. That code was only making it
1865 harder to abstract out the i/o (necessary for gui integration),
1871 harder to abstract out the i/o (necessary for gui integration),
1866 and the crashes it could prevent were extremely rare in practice
1872 and the crashes it could prevent were extremely rare in practice
1867 (besides being fully user-induced in a pretty violent manner).
1873 (besides being fully user-induced in a pretty violent manner).
1868
1874
1869 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1875 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1870 Nothing major yet, but the code is simpler to read; this should
1876 Nothing major yet, but the code is simpler to read; this should
1871 make it easier to do more serious modifications in the future.
1877 make it easier to do more serious modifications in the future.
1872
1878
1873 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1879 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1874 which broke in .15 (thanks to a report by Ville).
1880 which broke in .15 (thanks to a report by Ville).
1875
1881
1876 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1882 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1877 be quite correct, I know next to nothing about unicode). This
1883 be quite correct, I know next to nothing about unicode). This
1878 will allow unicode strings to be used in prompts, amongst other
1884 will allow unicode strings to be used in prompts, amongst other
1879 cases. It also will prevent ipython from crashing when unicode
1885 cases. It also will prevent ipython from crashing when unicode
1880 shows up unexpectedly in many places. If ascii encoding fails, we
1886 shows up unexpectedly in many places. If ascii encoding fails, we
1881 assume utf_8. Currently the encoding is not a user-visible
1887 assume utf_8. Currently the encoding is not a user-visible
1882 setting, though it could be made so if there is demand for it.
1888 setting, though it could be made so if there is demand for it.
1883
1889
1884 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1890 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1885
1891
1886 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1892 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1887
1893
1888 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1894 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1889
1895
1890 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1896 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1891 code can work transparently for 2.2/2.3.
1897 code can work transparently for 2.2/2.3.
1892
1898
1893 2005-07-16 Fernando Perez <fperez@colorado.edu>
1899 2005-07-16 Fernando Perez <fperez@colorado.edu>
1894
1900
1895 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1901 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1896 out of the color scheme table used for coloring exception
1902 out of the color scheme table used for coloring exception
1897 tracebacks. This allows user code to add new schemes at runtime.
1903 tracebacks. This allows user code to add new schemes at runtime.
1898 This is a minimally modified version of the patch at
1904 This is a minimally modified version of the patch at
1899 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1905 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1900 for the contribution.
1906 for the contribution.
1901
1907
1902 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1908 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1903 slightly modified version of the patch in
1909 slightly modified version of the patch in
1904 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1910 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1905 to remove the previous try/except solution (which was costlier).
1911 to remove the previous try/except solution (which was costlier).
1906 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1912 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1907
1913
1908 2005-06-08 Fernando Perez <fperez@colorado.edu>
1914 2005-06-08 Fernando Perez <fperez@colorado.edu>
1909
1915
1910 * IPython/iplib.py (write/write_err): Add methods to abstract all
1916 * IPython/iplib.py (write/write_err): Add methods to abstract all
1911 I/O a bit more.
1917 I/O a bit more.
1912
1918
1913 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1919 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1914 warning, reported by Aric Hagberg, fix by JD Hunter.
1920 warning, reported by Aric Hagberg, fix by JD Hunter.
1915
1921
1916 2005-06-02 *** Released version 0.6.15
1922 2005-06-02 *** Released version 0.6.15
1917
1923
1918 2005-06-01 Fernando Perez <fperez@colorado.edu>
1924 2005-06-01 Fernando Perez <fperez@colorado.edu>
1919
1925
1920 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1926 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1921 tab-completion of filenames within open-quoted strings. Note that
1927 tab-completion of filenames within open-quoted strings. Note that
1922 this requires that in ~/.ipython/ipythonrc, users change the
1928 this requires that in ~/.ipython/ipythonrc, users change the
1923 readline delimiters configuration to read:
1929 readline delimiters configuration to read:
1924
1930
1925 readline_remove_delims -/~
1931 readline_remove_delims -/~
1926
1932
1927
1933
1928 2005-05-31 *** Released version 0.6.14
1934 2005-05-31 *** Released version 0.6.14
1929
1935
1930 2005-05-29 Fernando Perez <fperez@colorado.edu>
1936 2005-05-29 Fernando Perez <fperez@colorado.edu>
1931
1937
1932 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1938 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1933 with files not on the filesystem. Reported by Eliyahu Sandler
1939 with files not on the filesystem. Reported by Eliyahu Sandler
1934 <eli@gondolin.net>
1940 <eli@gondolin.net>
1935
1941
1936 2005-05-22 Fernando Perez <fperez@colorado.edu>
1942 2005-05-22 Fernando Perez <fperez@colorado.edu>
1937
1943
1938 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1944 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1939 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1945 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1940
1946
1941 2005-05-19 Fernando Perez <fperez@colorado.edu>
1947 2005-05-19 Fernando Perez <fperez@colorado.edu>
1942
1948
1943 * IPython/iplib.py (safe_execfile): close a file which could be
1949 * IPython/iplib.py (safe_execfile): close a file which could be
1944 left open (causing problems in win32, which locks open files).
1950 left open (causing problems in win32, which locks open files).
1945 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1951 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1946
1952
1947 2005-05-18 Fernando Perez <fperez@colorado.edu>
1953 2005-05-18 Fernando Perez <fperez@colorado.edu>
1948
1954
1949 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1955 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1950 keyword arguments correctly to safe_execfile().
1956 keyword arguments correctly to safe_execfile().
1951
1957
1952 2005-05-13 Fernando Perez <fperez@colorado.edu>
1958 2005-05-13 Fernando Perez <fperez@colorado.edu>
1953
1959
1954 * ipython.1: Added info about Qt to manpage, and threads warning
1960 * ipython.1: Added info about Qt to manpage, and threads warning
1955 to usage page (invoked with --help).
1961 to usage page (invoked with --help).
1956
1962
1957 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1963 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1958 new matcher (it goes at the end of the priority list) to do
1964 new matcher (it goes at the end of the priority list) to do
1959 tab-completion on named function arguments. Submitted by George
1965 tab-completion on named function arguments. Submitted by George
1960 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1966 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1961 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1967 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1962 for more details.
1968 for more details.
1963
1969
1964 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1970 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1965 SystemExit exceptions in the script being run. Thanks to a report
1971 SystemExit exceptions in the script being run. Thanks to a report
1966 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1972 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1967 producing very annoying behavior when running unit tests.
1973 producing very annoying behavior when running unit tests.
1968
1974
1969 2005-05-12 Fernando Perez <fperez@colorado.edu>
1975 2005-05-12 Fernando Perez <fperez@colorado.edu>
1970
1976
1971 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1977 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1972 which I'd broken (again) due to a changed regexp. In the process,
1978 which I'd broken (again) due to a changed regexp. In the process,
1973 added ';' as an escape to auto-quote the whole line without
1979 added ';' as an escape to auto-quote the whole line without
1974 splitting its arguments. Thanks to a report by Jerry McRae
1980 splitting its arguments. Thanks to a report by Jerry McRae
1975 <qrs0xyc02-AT-sneakemail.com>.
1981 <qrs0xyc02-AT-sneakemail.com>.
1976
1982
1977 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1983 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1978 possible crashes caused by a TokenError. Reported by Ed Schofield
1984 possible crashes caused by a TokenError. Reported by Ed Schofield
1979 <schofield-AT-ftw.at>.
1985 <schofield-AT-ftw.at>.
1980
1986
1981 2005-05-06 Fernando Perez <fperez@colorado.edu>
1987 2005-05-06 Fernando Perez <fperez@colorado.edu>
1982
1988
1983 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1989 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1984
1990
1985 2005-04-29 Fernando Perez <fperez@colorado.edu>
1991 2005-04-29 Fernando Perez <fperez@colorado.edu>
1986
1992
1987 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1993 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1988 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1994 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1989 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1995 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1990 which provides support for Qt interactive usage (similar to the
1996 which provides support for Qt interactive usage (similar to the
1991 existing one for WX and GTK). This had been often requested.
1997 existing one for WX and GTK). This had been often requested.
1992
1998
1993 2005-04-14 *** Released version 0.6.13
1999 2005-04-14 *** Released version 0.6.13
1994
2000
1995 2005-04-08 Fernando Perez <fperez@colorado.edu>
2001 2005-04-08 Fernando Perez <fperez@colorado.edu>
1996
2002
1997 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2003 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1998 from _ofind, which gets called on almost every input line. Now,
2004 from _ofind, which gets called on almost every input line. Now,
1999 we only try to get docstrings if they are actually going to be
2005 we only try to get docstrings if they are actually going to be
2000 used (the overhead of fetching unnecessary docstrings can be
2006 used (the overhead of fetching unnecessary docstrings can be
2001 noticeable for certain objects, such as Pyro proxies).
2007 noticeable for certain objects, such as Pyro proxies).
2002
2008
2003 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2009 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2004 for completers. For some reason I had been passing them the state
2010 for completers. For some reason I had been passing them the state
2005 variable, which completers never actually need, and was in
2011 variable, which completers never actually need, and was in
2006 conflict with the rlcompleter API. Custom completers ONLY need to
2012 conflict with the rlcompleter API. Custom completers ONLY need to
2007 take the text parameter.
2013 take the text parameter.
2008
2014
2009 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2015 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2010 work correctly in pysh. I've also moved all the logic which used
2016 work correctly in pysh. I've also moved all the logic which used
2011 to be in pysh.py here, which will prevent problems with future
2017 to be in pysh.py here, which will prevent problems with future
2012 upgrades. However, this time I must warn users to update their
2018 upgrades. However, this time I must warn users to update their
2013 pysh profile to include the line
2019 pysh profile to include the line
2014
2020
2015 import_all IPython.Extensions.InterpreterExec
2021 import_all IPython.Extensions.InterpreterExec
2016
2022
2017 because otherwise things won't work for them. They MUST also
2023 because otherwise things won't work for them. They MUST also
2018 delete pysh.py and the line
2024 delete pysh.py and the line
2019
2025
2020 execfile pysh.py
2026 execfile pysh.py
2021
2027
2022 from their ipythonrc-pysh.
2028 from their ipythonrc-pysh.
2023
2029
2024 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2030 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2025 robust in the face of objects whose dir() returns non-strings
2031 robust in the face of objects whose dir() returns non-strings
2026 (which it shouldn't, but some broken libs like ITK do). Thanks to
2032 (which it shouldn't, but some broken libs like ITK do). Thanks to
2027 a patch by John Hunter (implemented differently, though). Also
2033 a patch by John Hunter (implemented differently, though). Also
2028 minor improvements by using .extend instead of + on lists.
2034 minor improvements by using .extend instead of + on lists.
2029
2035
2030 * pysh.py:
2036 * pysh.py:
2031
2037
2032 2005-04-06 Fernando Perez <fperez@colorado.edu>
2038 2005-04-06 Fernando Perez <fperez@colorado.edu>
2033
2039
2034 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2040 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2035 by default, so that all users benefit from it. Those who don't
2041 by default, so that all users benefit from it. Those who don't
2036 want it can still turn it off.
2042 want it can still turn it off.
2037
2043
2038 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2044 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2039 config file, I'd forgotten about this, so users were getting it
2045 config file, I'd forgotten about this, so users were getting it
2040 off by default.
2046 off by default.
2041
2047
2042 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2048 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2043 consistency. Now magics can be called in multiline statements,
2049 consistency. Now magics can be called in multiline statements,
2044 and python variables can be expanded in magic calls via $var.
2050 and python variables can be expanded in magic calls via $var.
2045 This makes the magic system behave just like aliases or !system
2051 This makes the magic system behave just like aliases or !system
2046 calls.
2052 calls.
2047
2053
2048 2005-03-28 Fernando Perez <fperez@colorado.edu>
2054 2005-03-28 Fernando Perez <fperez@colorado.edu>
2049
2055
2050 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2056 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2051 expensive string additions for building command. Add support for
2057 expensive string additions for building command. Add support for
2052 trailing ';' when autocall is used.
2058 trailing ';' when autocall is used.
2053
2059
2054 2005-03-26 Fernando Perez <fperez@colorado.edu>
2060 2005-03-26 Fernando Perez <fperez@colorado.edu>
2055
2061
2056 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2062 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2057 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2063 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2058 ipython.el robust against prompts with any number of spaces
2064 ipython.el robust against prompts with any number of spaces
2059 (including 0) after the ':' character.
2065 (including 0) after the ':' character.
2060
2066
2061 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2067 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2062 continuation prompt, which misled users to think the line was
2068 continuation prompt, which misled users to think the line was
2063 already indented. Closes debian Bug#300847, reported to me by
2069 already indented. Closes debian Bug#300847, reported to me by
2064 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2070 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2065
2071
2066 2005-03-23 Fernando Perez <fperez@colorado.edu>
2072 2005-03-23 Fernando Perez <fperez@colorado.edu>
2067
2073
2068 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2074 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2069 properly aligned if they have embedded newlines.
2075 properly aligned if they have embedded newlines.
2070
2076
2071 * IPython/iplib.py (runlines): Add a public method to expose
2077 * IPython/iplib.py (runlines): Add a public method to expose
2072 IPython's code execution machinery, so that users can run strings
2078 IPython's code execution machinery, so that users can run strings
2073 as if they had been typed at the prompt interactively.
2079 as if they had been typed at the prompt interactively.
2074 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2080 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2075 methods which can call the system shell, but with python variable
2081 methods which can call the system shell, but with python variable
2076 expansion. The three such methods are: __IPYTHON__.system,
2082 expansion. The three such methods are: __IPYTHON__.system,
2077 .getoutput and .getoutputerror. These need to be documented in a
2083 .getoutput and .getoutputerror. These need to be documented in a
2078 'public API' section (to be written) of the manual.
2084 'public API' section (to be written) of the manual.
2079
2085
2080 2005-03-20 Fernando Perez <fperez@colorado.edu>
2086 2005-03-20 Fernando Perez <fperez@colorado.edu>
2081
2087
2082 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2088 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2083 for custom exception handling. This is quite powerful, and it
2089 for custom exception handling. This is quite powerful, and it
2084 allows for user-installable exception handlers which can trap
2090 allows for user-installable exception handlers which can trap
2085 custom exceptions at runtime and treat them separately from
2091 custom exceptions at runtime and treat them separately from
2086 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2092 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2087 Mantegazza <mantegazza-AT-ill.fr>.
2093 Mantegazza <mantegazza-AT-ill.fr>.
2088 (InteractiveShell.set_custom_completer): public API function to
2094 (InteractiveShell.set_custom_completer): public API function to
2089 add new completers at runtime.
2095 add new completers at runtime.
2090
2096
2091 2005-03-19 Fernando Perez <fperez@colorado.edu>
2097 2005-03-19 Fernando Perez <fperez@colorado.edu>
2092
2098
2093 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2099 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2094 allow objects which provide their docstrings via non-standard
2100 allow objects which provide their docstrings via non-standard
2095 mechanisms (like Pyro proxies) to still be inspected by ipython's
2101 mechanisms (like Pyro proxies) to still be inspected by ipython's
2096 ? system.
2102 ? system.
2097
2103
2098 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2104 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2099 automatic capture system. I tried quite hard to make it work
2105 automatic capture system. I tried quite hard to make it work
2100 reliably, and simply failed. I tried many combinations with the
2106 reliably, and simply failed. I tried many combinations with the
2101 subprocess module, but eventually nothing worked in all needed
2107 subprocess module, but eventually nothing worked in all needed
2102 cases (not blocking stdin for the child, duplicating stdout
2108 cases (not blocking stdin for the child, duplicating stdout
2103 without blocking, etc). The new %sc/%sx still do capture to these
2109 without blocking, etc). The new %sc/%sx still do capture to these
2104 magical list/string objects which make shell use much more
2110 magical list/string objects which make shell use much more
2105 conveninent, so not all is lost.
2111 conveninent, so not all is lost.
2106
2112
2107 XXX - FIX MANUAL for the change above!
2113 XXX - FIX MANUAL for the change above!
2108
2114
2109 (runsource): I copied code.py's runsource() into ipython to modify
2115 (runsource): I copied code.py's runsource() into ipython to modify
2110 it a bit. Now the code object and source to be executed are
2116 it a bit. Now the code object and source to be executed are
2111 stored in ipython. This makes this info accessible to third-party
2117 stored in ipython. This makes this info accessible to third-party
2112 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2118 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2113 Mantegazza <mantegazza-AT-ill.fr>.
2119 Mantegazza <mantegazza-AT-ill.fr>.
2114
2120
2115 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2121 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2116 history-search via readline (like C-p/C-n). I'd wanted this for a
2122 history-search via readline (like C-p/C-n). I'd wanted this for a
2117 long time, but only recently found out how to do it. For users
2123 long time, but only recently found out how to do it. For users
2118 who already have their ipythonrc files made and want this, just
2124 who already have their ipythonrc files made and want this, just
2119 add:
2125 add:
2120
2126
2121 readline_parse_and_bind "\e[A": history-search-backward
2127 readline_parse_and_bind "\e[A": history-search-backward
2122 readline_parse_and_bind "\e[B": history-search-forward
2128 readline_parse_and_bind "\e[B": history-search-forward
2123
2129
2124 2005-03-18 Fernando Perez <fperez@colorado.edu>
2130 2005-03-18 Fernando Perez <fperez@colorado.edu>
2125
2131
2126 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2132 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2127 LSString and SList classes which allow transparent conversions
2133 LSString and SList classes which allow transparent conversions
2128 between list mode and whitespace-separated string.
2134 between list mode and whitespace-separated string.
2129 (magic_r): Fix recursion problem in %r.
2135 (magic_r): Fix recursion problem in %r.
2130
2136
2131 * IPython/genutils.py (LSString): New class to be used for
2137 * IPython/genutils.py (LSString): New class to be used for
2132 automatic storage of the results of all alias/system calls in _o
2138 automatic storage of the results of all alias/system calls in _o
2133 and _e (stdout/err). These provide a .l/.list attribute which
2139 and _e (stdout/err). These provide a .l/.list attribute which
2134 does automatic splitting on newlines. This means that for most
2140 does automatic splitting on newlines. This means that for most
2135 uses, you'll never need to do capturing of output with %sc/%sx
2141 uses, you'll never need to do capturing of output with %sc/%sx
2136 anymore, since ipython keeps this always done for you. Note that
2142 anymore, since ipython keeps this always done for you. Note that
2137 only the LAST results are stored, the _o/e variables are
2143 only the LAST results are stored, the _o/e variables are
2138 overwritten on each call. If you need to save their contents
2144 overwritten on each call. If you need to save their contents
2139 further, simply bind them to any other name.
2145 further, simply bind them to any other name.
2140
2146
2141 2005-03-17 Fernando Perez <fperez@colorado.edu>
2147 2005-03-17 Fernando Perez <fperez@colorado.edu>
2142
2148
2143 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2149 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2144 prompt namespace handling.
2150 prompt namespace handling.
2145
2151
2146 2005-03-16 Fernando Perez <fperez@colorado.edu>
2152 2005-03-16 Fernando Perez <fperez@colorado.edu>
2147
2153
2148 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2154 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2149 classic prompts to be '>>> ' (final space was missing, and it
2155 classic prompts to be '>>> ' (final space was missing, and it
2150 trips the emacs python mode).
2156 trips the emacs python mode).
2151 (BasePrompt.__str__): Added safe support for dynamic prompt
2157 (BasePrompt.__str__): Added safe support for dynamic prompt
2152 strings. Now you can set your prompt string to be '$x', and the
2158 strings. Now you can set your prompt string to be '$x', and the
2153 value of x will be printed from your interactive namespace. The
2159 value of x will be printed from your interactive namespace. The
2154 interpolation syntax includes the full Itpl support, so
2160 interpolation syntax includes the full Itpl support, so
2155 ${foo()+x+bar()} is a valid prompt string now, and the function
2161 ${foo()+x+bar()} is a valid prompt string now, and the function
2156 calls will be made at runtime.
2162 calls will be made at runtime.
2157
2163
2158 2005-03-15 Fernando Perez <fperez@colorado.edu>
2164 2005-03-15 Fernando Perez <fperez@colorado.edu>
2159
2165
2160 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2166 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2161 avoid name clashes in pylab. %hist still works, it just forwards
2167 avoid name clashes in pylab. %hist still works, it just forwards
2162 the call to %history.
2168 the call to %history.
2163
2169
2164 2005-03-02 *** Released version 0.6.12
2170 2005-03-02 *** Released version 0.6.12
2165
2171
2166 2005-03-02 Fernando Perez <fperez@colorado.edu>
2172 2005-03-02 Fernando Perez <fperez@colorado.edu>
2167
2173
2168 * IPython/iplib.py (handle_magic): log magic calls properly as
2174 * IPython/iplib.py (handle_magic): log magic calls properly as
2169 ipmagic() function calls.
2175 ipmagic() function calls.
2170
2176
2171 * IPython/Magic.py (magic_time): Improved %time to support
2177 * IPython/Magic.py (magic_time): Improved %time to support
2172 statements and provide wall-clock as well as CPU time.
2178 statements and provide wall-clock as well as CPU time.
2173
2179
2174 2005-02-27 Fernando Perez <fperez@colorado.edu>
2180 2005-02-27 Fernando Perez <fperez@colorado.edu>
2175
2181
2176 * IPython/hooks.py: New hooks module, to expose user-modifiable
2182 * IPython/hooks.py: New hooks module, to expose user-modifiable
2177 IPython functionality in a clean manner. For now only the editor
2183 IPython functionality in a clean manner. For now only the editor
2178 hook is actually written, and other thigns which I intend to turn
2184 hook is actually written, and other thigns which I intend to turn
2179 into proper hooks aren't yet there. The display and prefilter
2185 into proper hooks aren't yet there. The display and prefilter
2180 stuff, for example, should be hooks. But at least now the
2186 stuff, for example, should be hooks. But at least now the
2181 framework is in place, and the rest can be moved here with more
2187 framework is in place, and the rest can be moved here with more
2182 time later. IPython had had a .hooks variable for a long time for
2188 time later. IPython had had a .hooks variable for a long time for
2183 this purpose, but I'd never actually used it for anything.
2189 this purpose, but I'd never actually used it for anything.
2184
2190
2185 2005-02-26 Fernando Perez <fperez@colorado.edu>
2191 2005-02-26 Fernando Perez <fperez@colorado.edu>
2186
2192
2187 * IPython/ipmaker.py (make_IPython): make the default ipython
2193 * IPython/ipmaker.py (make_IPython): make the default ipython
2188 directory be called _ipython under win32, to follow more the
2194 directory be called _ipython under win32, to follow more the
2189 naming peculiarities of that platform (where buggy software like
2195 naming peculiarities of that platform (where buggy software like
2190 Visual Sourcesafe breaks with .named directories). Reported by
2196 Visual Sourcesafe breaks with .named directories). Reported by
2191 Ville Vainio.
2197 Ville Vainio.
2192
2198
2193 2005-02-23 Fernando Perez <fperez@colorado.edu>
2199 2005-02-23 Fernando Perez <fperez@colorado.edu>
2194
2200
2195 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2201 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2196 auto_aliases for win32 which were causing problems. Users can
2202 auto_aliases for win32 which were causing problems. Users can
2197 define the ones they personally like.
2203 define the ones they personally like.
2198
2204
2199 2005-02-21 Fernando Perez <fperez@colorado.edu>
2205 2005-02-21 Fernando Perez <fperez@colorado.edu>
2200
2206
2201 * IPython/Magic.py (magic_time): new magic to time execution of
2207 * IPython/Magic.py (magic_time): new magic to time execution of
2202 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2208 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2203
2209
2204 2005-02-19 Fernando Perez <fperez@colorado.edu>
2210 2005-02-19 Fernando Perez <fperez@colorado.edu>
2205
2211
2206 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2212 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2207 into keys (for prompts, for example).
2213 into keys (for prompts, for example).
2208
2214
2209 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2215 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2210 prompts in case users want them. This introduces a small behavior
2216 prompts in case users want them. This introduces a small behavior
2211 change: ipython does not automatically add a space to all prompts
2217 change: ipython does not automatically add a space to all prompts
2212 anymore. To get the old prompts with a space, users should add it
2218 anymore. To get the old prompts with a space, users should add it
2213 manually to their ipythonrc file, so for example prompt_in1 should
2219 manually to their ipythonrc file, so for example prompt_in1 should
2214 now read 'In [\#]: ' instead of 'In [\#]:'.
2220 now read 'In [\#]: ' instead of 'In [\#]:'.
2215 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2221 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2216 file) to control left-padding of secondary prompts.
2222 file) to control left-padding of secondary prompts.
2217
2223
2218 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2224 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2219 the profiler can't be imported. Fix for Debian, which removed
2225 the profiler can't be imported. Fix for Debian, which removed
2220 profile.py because of License issues. I applied a slightly
2226 profile.py because of License issues. I applied a slightly
2221 modified version of the original Debian patch at
2227 modified version of the original Debian patch at
2222 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2228 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2223
2229
2224 2005-02-17 Fernando Perez <fperez@colorado.edu>
2230 2005-02-17 Fernando Perez <fperez@colorado.edu>
2225
2231
2226 * IPython/genutils.py (native_line_ends): Fix bug which would
2232 * IPython/genutils.py (native_line_ends): Fix bug which would
2227 cause improper line-ends under win32 b/c I was not opening files
2233 cause improper line-ends under win32 b/c I was not opening files
2228 in binary mode. Bug report and fix thanks to Ville.
2234 in binary mode. Bug report and fix thanks to Ville.
2229
2235
2230 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2236 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2231 trying to catch spurious foo[1] autocalls. My fix actually broke
2237 trying to catch spurious foo[1] autocalls. My fix actually broke
2232 ',/' autoquote/call with explicit escape (bad regexp).
2238 ',/' autoquote/call with explicit escape (bad regexp).
2233
2239
2234 2005-02-15 *** Released version 0.6.11
2240 2005-02-15 *** Released version 0.6.11
2235
2241
2236 2005-02-14 Fernando Perez <fperez@colorado.edu>
2242 2005-02-14 Fernando Perez <fperez@colorado.edu>
2237
2243
2238 * IPython/background_jobs.py: New background job management
2244 * IPython/background_jobs.py: New background job management
2239 subsystem. This is implemented via a new set of classes, and
2245 subsystem. This is implemented via a new set of classes, and
2240 IPython now provides a builtin 'jobs' object for background job
2246 IPython now provides a builtin 'jobs' object for background job
2241 execution. A convenience %bg magic serves as a lightweight
2247 execution. A convenience %bg magic serves as a lightweight
2242 frontend for starting the more common type of calls. This was
2248 frontend for starting the more common type of calls. This was
2243 inspired by discussions with B. Granger and the BackgroundCommand
2249 inspired by discussions with B. Granger and the BackgroundCommand
2244 class described in the book Python Scripting for Computational
2250 class described in the book Python Scripting for Computational
2245 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2251 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2246 (although ultimately no code from this text was used, as IPython's
2252 (although ultimately no code from this text was used, as IPython's
2247 system is a separate implementation).
2253 system is a separate implementation).
2248
2254
2249 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2255 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2250 to control the completion of single/double underscore names
2256 to control the completion of single/double underscore names
2251 separately. As documented in the example ipytonrc file, the
2257 separately. As documented in the example ipytonrc file, the
2252 readline_omit__names variable can now be set to 2, to omit even
2258 readline_omit__names variable can now be set to 2, to omit even
2253 single underscore names. Thanks to a patch by Brian Wong
2259 single underscore names. Thanks to a patch by Brian Wong
2254 <BrianWong-AT-AirgoNetworks.Com>.
2260 <BrianWong-AT-AirgoNetworks.Com>.
2255 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2261 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2256 be autocalled as foo([1]) if foo were callable. A problem for
2262 be autocalled as foo([1]) if foo were callable. A problem for
2257 things which are both callable and implement __getitem__.
2263 things which are both callable and implement __getitem__.
2258 (init_readline): Fix autoindentation for win32. Thanks to a patch
2264 (init_readline): Fix autoindentation for win32. Thanks to a patch
2259 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2265 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2260
2266
2261 2005-02-12 Fernando Perez <fperez@colorado.edu>
2267 2005-02-12 Fernando Perez <fperez@colorado.edu>
2262
2268
2263 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2269 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2264 which I had written long ago to sort out user error messages which
2270 which I had written long ago to sort out user error messages which
2265 may occur during startup. This seemed like a good idea initially,
2271 may occur during startup. This seemed like a good idea initially,
2266 but it has proven a disaster in retrospect. I don't want to
2272 but it has proven a disaster in retrospect. I don't want to
2267 change much code for now, so my fix is to set the internal 'debug'
2273 change much code for now, so my fix is to set the internal 'debug'
2268 flag to true everywhere, whose only job was precisely to control
2274 flag to true everywhere, whose only job was precisely to control
2269 this subsystem. This closes issue 28 (as well as avoiding all
2275 this subsystem. This closes issue 28 (as well as avoiding all
2270 sorts of strange hangups which occur from time to time).
2276 sorts of strange hangups which occur from time to time).
2271
2277
2272 2005-02-07 Fernando Perez <fperez@colorado.edu>
2278 2005-02-07 Fernando Perez <fperez@colorado.edu>
2273
2279
2274 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2280 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2275 previous call produced a syntax error.
2281 previous call produced a syntax error.
2276
2282
2277 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2283 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2278 classes without constructor.
2284 classes without constructor.
2279
2285
2280 2005-02-06 Fernando Perez <fperez@colorado.edu>
2286 2005-02-06 Fernando Perez <fperez@colorado.edu>
2281
2287
2282 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2288 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2283 completions with the results of each matcher, so we return results
2289 completions with the results of each matcher, so we return results
2284 to the user from all namespaces. This breaks with ipython
2290 to the user from all namespaces. This breaks with ipython
2285 tradition, but I think it's a nicer behavior. Now you get all
2291 tradition, but I think it's a nicer behavior. Now you get all
2286 possible completions listed, from all possible namespaces (python,
2292 possible completions listed, from all possible namespaces (python,
2287 filesystem, magics...) After a request by John Hunter
2293 filesystem, magics...) After a request by John Hunter
2288 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2294 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2289
2295
2290 2005-02-05 Fernando Perez <fperez@colorado.edu>
2296 2005-02-05 Fernando Perez <fperez@colorado.edu>
2291
2297
2292 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2298 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2293 the call had quote characters in it (the quotes were stripped).
2299 the call had quote characters in it (the quotes were stripped).
2294
2300
2295 2005-01-31 Fernando Perez <fperez@colorado.edu>
2301 2005-01-31 Fernando Perez <fperez@colorado.edu>
2296
2302
2297 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2303 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2298 Itpl.itpl() to make the code more robust against psyco
2304 Itpl.itpl() to make the code more robust against psyco
2299 optimizations.
2305 optimizations.
2300
2306
2301 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2307 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2302 of causing an exception. Quicker, cleaner.
2308 of causing an exception. Quicker, cleaner.
2303
2309
2304 2005-01-28 Fernando Perez <fperez@colorado.edu>
2310 2005-01-28 Fernando Perez <fperez@colorado.edu>
2305
2311
2306 * scripts/ipython_win_post_install.py (install): hardcode
2312 * scripts/ipython_win_post_install.py (install): hardcode
2307 sys.prefix+'python.exe' as the executable path. It turns out that
2313 sys.prefix+'python.exe' as the executable path. It turns out that
2308 during the post-installation run, sys.executable resolves to the
2314 during the post-installation run, sys.executable resolves to the
2309 name of the binary installer! I should report this as a distutils
2315 name of the binary installer! I should report this as a distutils
2310 bug, I think. I updated the .10 release with this tiny fix, to
2316 bug, I think. I updated the .10 release with this tiny fix, to
2311 avoid annoying the lists further.
2317 avoid annoying the lists further.
2312
2318
2313 2005-01-27 *** Released version 0.6.10
2319 2005-01-27 *** Released version 0.6.10
2314
2320
2315 2005-01-27 Fernando Perez <fperez@colorado.edu>
2321 2005-01-27 Fernando Perez <fperez@colorado.edu>
2316
2322
2317 * IPython/numutils.py (norm): Added 'inf' as optional name for
2323 * IPython/numutils.py (norm): Added 'inf' as optional name for
2318 L-infinity norm, included references to mathworld.com for vector
2324 L-infinity norm, included references to mathworld.com for vector
2319 norm definitions.
2325 norm definitions.
2320 (amin/amax): added amin/amax for array min/max. Similar to what
2326 (amin/amax): added amin/amax for array min/max. Similar to what
2321 pylab ships with after the recent reorganization of names.
2327 pylab ships with after the recent reorganization of names.
2322 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2328 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2323
2329
2324 * ipython.el: committed Alex's recent fixes and improvements.
2330 * ipython.el: committed Alex's recent fixes and improvements.
2325 Tested with python-mode from CVS, and it looks excellent. Since
2331 Tested with python-mode from CVS, and it looks excellent. Since
2326 python-mode hasn't released anything in a while, I'm temporarily
2332 python-mode hasn't released anything in a while, I'm temporarily
2327 putting a copy of today's CVS (v 4.70) of python-mode in:
2333 putting a copy of today's CVS (v 4.70) of python-mode in:
2328 http://ipython.scipy.org/tmp/python-mode.el
2334 http://ipython.scipy.org/tmp/python-mode.el
2329
2335
2330 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2336 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2331 sys.executable for the executable name, instead of assuming it's
2337 sys.executable for the executable name, instead of assuming it's
2332 called 'python.exe' (the post-installer would have produced broken
2338 called 'python.exe' (the post-installer would have produced broken
2333 setups on systems with a differently named python binary).
2339 setups on systems with a differently named python binary).
2334
2340
2335 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2341 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2336 references to os.linesep, to make the code more
2342 references to os.linesep, to make the code more
2337 platform-independent. This is also part of the win32 coloring
2343 platform-independent. This is also part of the win32 coloring
2338 fixes.
2344 fixes.
2339
2345
2340 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2346 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2341 lines, which actually cause coloring bugs because the length of
2347 lines, which actually cause coloring bugs because the length of
2342 the line is very difficult to correctly compute with embedded
2348 the line is very difficult to correctly compute with embedded
2343 escapes. This was the source of all the coloring problems under
2349 escapes. This was the source of all the coloring problems under
2344 Win32. I think that _finally_, Win32 users have a properly
2350 Win32. I think that _finally_, Win32 users have a properly
2345 working ipython in all respects. This would never have happened
2351 working ipython in all respects. This would never have happened
2346 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2352 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2347
2353
2348 2005-01-26 *** Released version 0.6.9
2354 2005-01-26 *** Released version 0.6.9
2349
2355
2350 2005-01-25 Fernando Perez <fperez@colorado.edu>
2356 2005-01-25 Fernando Perez <fperez@colorado.edu>
2351
2357
2352 * setup.py: finally, we have a true Windows installer, thanks to
2358 * setup.py: finally, we have a true Windows installer, thanks to
2353 the excellent work of Viktor Ransmayr
2359 the excellent work of Viktor Ransmayr
2354 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2360 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2355 Windows users. The setup routine is quite a bit cleaner thanks to
2361 Windows users. The setup routine is quite a bit cleaner thanks to
2356 this, and the post-install script uses the proper functions to
2362 this, and the post-install script uses the proper functions to
2357 allow a clean de-installation using the standard Windows Control
2363 allow a clean de-installation using the standard Windows Control
2358 Panel.
2364 Panel.
2359
2365
2360 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2366 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2361 environment variable under all OSes (including win32) if
2367 environment variable under all OSes (including win32) if
2362 available. This will give consistency to win32 users who have set
2368 available. This will give consistency to win32 users who have set
2363 this variable for any reason. If os.environ['HOME'] fails, the
2369 this variable for any reason. If os.environ['HOME'] fails, the
2364 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2370 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2365
2371
2366 2005-01-24 Fernando Perez <fperez@colorado.edu>
2372 2005-01-24 Fernando Perez <fperez@colorado.edu>
2367
2373
2368 * IPython/numutils.py (empty_like): add empty_like(), similar to
2374 * IPython/numutils.py (empty_like): add empty_like(), similar to
2369 zeros_like() but taking advantage of the new empty() Numeric routine.
2375 zeros_like() but taking advantage of the new empty() Numeric routine.
2370
2376
2371 2005-01-23 *** Released version 0.6.8
2377 2005-01-23 *** Released version 0.6.8
2372
2378
2373 2005-01-22 Fernando Perez <fperez@colorado.edu>
2379 2005-01-22 Fernando Perez <fperez@colorado.edu>
2374
2380
2375 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2381 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2376 automatic show() calls. After discussing things with JDH, it
2382 automatic show() calls. After discussing things with JDH, it
2377 turns out there are too many corner cases where this can go wrong.
2383 turns out there are too many corner cases where this can go wrong.
2378 It's best not to try to be 'too smart', and simply have ipython
2384 It's best not to try to be 'too smart', and simply have ipython
2379 reproduce as much as possible the default behavior of a normal
2385 reproduce as much as possible the default behavior of a normal
2380 python shell.
2386 python shell.
2381
2387
2382 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2388 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2383 line-splitting regexp and _prefilter() to avoid calling getattr()
2389 line-splitting regexp and _prefilter() to avoid calling getattr()
2384 on assignments. This closes
2390 on assignments. This closes
2385 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2391 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2386 readline uses getattr(), so a simple <TAB> keypress is still
2392 readline uses getattr(), so a simple <TAB> keypress is still
2387 enough to trigger getattr() calls on an object.
2393 enough to trigger getattr() calls on an object.
2388
2394
2389 2005-01-21 Fernando Perez <fperez@colorado.edu>
2395 2005-01-21 Fernando Perez <fperez@colorado.edu>
2390
2396
2391 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2397 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2392 docstring under pylab so it doesn't mask the original.
2398 docstring under pylab so it doesn't mask the original.
2393
2399
2394 2005-01-21 *** Released version 0.6.7
2400 2005-01-21 *** Released version 0.6.7
2395
2401
2396 2005-01-21 Fernando Perez <fperez@colorado.edu>
2402 2005-01-21 Fernando Perez <fperez@colorado.edu>
2397
2403
2398 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2404 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2399 signal handling for win32 users in multithreaded mode.
2405 signal handling for win32 users in multithreaded mode.
2400
2406
2401 2005-01-17 Fernando Perez <fperez@colorado.edu>
2407 2005-01-17 Fernando Perez <fperez@colorado.edu>
2402
2408
2403 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2409 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2404 instances with no __init__. After a crash report by Norbert Nemec
2410 instances with no __init__. After a crash report by Norbert Nemec
2405 <Norbert-AT-nemec-online.de>.
2411 <Norbert-AT-nemec-online.de>.
2406
2412
2407 2005-01-14 Fernando Perez <fperez@colorado.edu>
2413 2005-01-14 Fernando Perez <fperez@colorado.edu>
2408
2414
2409 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2415 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2410 names for verbose exceptions, when multiple dotted names and the
2416 names for verbose exceptions, when multiple dotted names and the
2411 'parent' object were present on the same line.
2417 'parent' object were present on the same line.
2412
2418
2413 2005-01-11 Fernando Perez <fperez@colorado.edu>
2419 2005-01-11 Fernando Perez <fperez@colorado.edu>
2414
2420
2415 * IPython/genutils.py (flag_calls): new utility to trap and flag
2421 * IPython/genutils.py (flag_calls): new utility to trap and flag
2416 calls in functions. I need it to clean up matplotlib support.
2422 calls in functions. I need it to clean up matplotlib support.
2417 Also removed some deprecated code in genutils.
2423 Also removed some deprecated code in genutils.
2418
2424
2419 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2425 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2420 that matplotlib scripts called with %run, which don't call show()
2426 that matplotlib scripts called with %run, which don't call show()
2421 themselves, still have their plotting windows open.
2427 themselves, still have their plotting windows open.
2422
2428
2423 2005-01-05 Fernando Perez <fperez@colorado.edu>
2429 2005-01-05 Fernando Perez <fperez@colorado.edu>
2424
2430
2425 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2431 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2426 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2432 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2427
2433
2428 2004-12-19 Fernando Perez <fperez@colorado.edu>
2434 2004-12-19 Fernando Perez <fperez@colorado.edu>
2429
2435
2430 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2436 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2431 parent_runcode, which was an eyesore. The same result can be
2437 parent_runcode, which was an eyesore. The same result can be
2432 obtained with Python's regular superclass mechanisms.
2438 obtained with Python's regular superclass mechanisms.
2433
2439
2434 2004-12-17 Fernando Perez <fperez@colorado.edu>
2440 2004-12-17 Fernando Perez <fperez@colorado.edu>
2435
2441
2436 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2442 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2437 reported by Prabhu.
2443 reported by Prabhu.
2438 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2444 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2439 sys.stderr) instead of explicitly calling sys.stderr. This helps
2445 sys.stderr) instead of explicitly calling sys.stderr. This helps
2440 maintain our I/O abstractions clean, for future GUI embeddings.
2446 maintain our I/O abstractions clean, for future GUI embeddings.
2441
2447
2442 * IPython/genutils.py (info): added new utility for sys.stderr
2448 * IPython/genutils.py (info): added new utility for sys.stderr
2443 unified info message handling (thin wrapper around warn()).
2449 unified info message handling (thin wrapper around warn()).
2444
2450
2445 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2451 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2446 composite (dotted) names on verbose exceptions.
2452 composite (dotted) names on verbose exceptions.
2447 (VerboseTB.nullrepr): harden against another kind of errors which
2453 (VerboseTB.nullrepr): harden against another kind of errors which
2448 Python's inspect module can trigger, and which were crashing
2454 Python's inspect module can trigger, and which were crashing
2449 IPython. Thanks to a report by Marco Lombardi
2455 IPython. Thanks to a report by Marco Lombardi
2450 <mlombard-AT-ma010192.hq.eso.org>.
2456 <mlombard-AT-ma010192.hq.eso.org>.
2451
2457
2452 2004-12-13 *** Released version 0.6.6
2458 2004-12-13 *** Released version 0.6.6
2453
2459
2454 2004-12-12 Fernando Perez <fperez@colorado.edu>
2460 2004-12-12 Fernando Perez <fperez@colorado.edu>
2455
2461
2456 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2462 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2457 generated by pygtk upon initialization if it was built without
2463 generated by pygtk upon initialization if it was built without
2458 threads (for matplotlib users). After a crash reported by
2464 threads (for matplotlib users). After a crash reported by
2459 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2465 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2460
2466
2461 * IPython/ipmaker.py (make_IPython): fix small bug in the
2467 * IPython/ipmaker.py (make_IPython): fix small bug in the
2462 import_some parameter for multiple imports.
2468 import_some parameter for multiple imports.
2463
2469
2464 * IPython/iplib.py (ipmagic): simplified the interface of
2470 * IPython/iplib.py (ipmagic): simplified the interface of
2465 ipmagic() to take a single string argument, just as it would be
2471 ipmagic() to take a single string argument, just as it would be
2466 typed at the IPython cmd line.
2472 typed at the IPython cmd line.
2467 (ipalias): Added new ipalias() with an interface identical to
2473 (ipalias): Added new ipalias() with an interface identical to
2468 ipmagic(). This completes exposing a pure python interface to the
2474 ipmagic(). This completes exposing a pure python interface to the
2469 alias and magic system, which can be used in loops or more complex
2475 alias and magic system, which can be used in loops or more complex
2470 code where IPython's automatic line mangling is not active.
2476 code where IPython's automatic line mangling is not active.
2471
2477
2472 * IPython/genutils.py (timing): changed interface of timing to
2478 * IPython/genutils.py (timing): changed interface of timing to
2473 simply run code once, which is the most common case. timings()
2479 simply run code once, which is the most common case. timings()
2474 remains unchanged, for the cases where you want multiple runs.
2480 remains unchanged, for the cases where you want multiple runs.
2475
2481
2476 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2482 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2477 bug where Python2.2 crashes with exec'ing code which does not end
2483 bug where Python2.2 crashes with exec'ing code which does not end
2478 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2484 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2479 before.
2485 before.
2480
2486
2481 2004-12-10 Fernando Perez <fperez@colorado.edu>
2487 2004-12-10 Fernando Perez <fperez@colorado.edu>
2482
2488
2483 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2489 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2484 -t to -T, to accomodate the new -t flag in %run (the %run and
2490 -t to -T, to accomodate the new -t flag in %run (the %run and
2485 %prun options are kind of intermixed, and it's not easy to change
2491 %prun options are kind of intermixed, and it's not easy to change
2486 this with the limitations of python's getopt).
2492 this with the limitations of python's getopt).
2487
2493
2488 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2494 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2489 the execution of scripts. It's not as fine-tuned as timeit.py,
2495 the execution of scripts. It's not as fine-tuned as timeit.py,
2490 but it works from inside ipython (and under 2.2, which lacks
2496 but it works from inside ipython (and under 2.2, which lacks
2491 timeit.py). Optionally a number of runs > 1 can be given for
2497 timeit.py). Optionally a number of runs > 1 can be given for
2492 timing very short-running code.
2498 timing very short-running code.
2493
2499
2494 * IPython/genutils.py (uniq_stable): new routine which returns a
2500 * IPython/genutils.py (uniq_stable): new routine which returns a
2495 list of unique elements in any iterable, but in stable order of
2501 list of unique elements in any iterable, but in stable order of
2496 appearance. I needed this for the ultraTB fixes, and it's a handy
2502 appearance. I needed this for the ultraTB fixes, and it's a handy
2497 utility.
2503 utility.
2498
2504
2499 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2505 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2500 dotted names in Verbose exceptions. This had been broken since
2506 dotted names in Verbose exceptions. This had been broken since
2501 the very start, now x.y will properly be printed in a Verbose
2507 the very start, now x.y will properly be printed in a Verbose
2502 traceback, instead of x being shown and y appearing always as an
2508 traceback, instead of x being shown and y appearing always as an
2503 'undefined global'. Getting this to work was a bit tricky,
2509 'undefined global'. Getting this to work was a bit tricky,
2504 because by default python tokenizers are stateless. Saved by
2510 because by default python tokenizers are stateless. Saved by
2505 python's ability to easily add a bit of state to an arbitrary
2511 python's ability to easily add a bit of state to an arbitrary
2506 function (without needing to build a full-blown callable object).
2512 function (without needing to build a full-blown callable object).
2507
2513
2508 Also big cleanup of this code, which had horrendous runtime
2514 Also big cleanup of this code, which had horrendous runtime
2509 lookups of zillions of attributes for colorization. Moved all
2515 lookups of zillions of attributes for colorization. Moved all
2510 this code into a few templates, which make it cleaner and quicker.
2516 this code into a few templates, which make it cleaner and quicker.
2511
2517
2512 Printout quality was also improved for Verbose exceptions: one
2518 Printout quality was also improved for Verbose exceptions: one
2513 variable per line, and memory addresses are printed (this can be
2519 variable per line, and memory addresses are printed (this can be
2514 quite handy in nasty debugging situations, which is what Verbose
2520 quite handy in nasty debugging situations, which is what Verbose
2515 is for).
2521 is for).
2516
2522
2517 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2523 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2518 the command line as scripts to be loaded by embedded instances.
2524 the command line as scripts to be loaded by embedded instances.
2519 Doing so has the potential for an infinite recursion if there are
2525 Doing so has the potential for an infinite recursion if there are
2520 exceptions thrown in the process. This fixes a strange crash
2526 exceptions thrown in the process. This fixes a strange crash
2521 reported by Philippe MULLER <muller-AT-irit.fr>.
2527 reported by Philippe MULLER <muller-AT-irit.fr>.
2522
2528
2523 2004-12-09 Fernando Perez <fperez@colorado.edu>
2529 2004-12-09 Fernando Perez <fperez@colorado.edu>
2524
2530
2525 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2531 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2526 to reflect new names in matplotlib, which now expose the
2532 to reflect new names in matplotlib, which now expose the
2527 matlab-compatible interface via a pylab module instead of the
2533 matlab-compatible interface via a pylab module instead of the
2528 'matlab' name. The new code is backwards compatible, so users of
2534 'matlab' name. The new code is backwards compatible, so users of
2529 all matplotlib versions are OK. Patch by J. Hunter.
2535 all matplotlib versions are OK. Patch by J. Hunter.
2530
2536
2531 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2537 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2532 of __init__ docstrings for instances (class docstrings are already
2538 of __init__ docstrings for instances (class docstrings are already
2533 automatically printed). Instances with customized docstrings
2539 automatically printed). Instances with customized docstrings
2534 (indep. of the class) are also recognized and all 3 separate
2540 (indep. of the class) are also recognized and all 3 separate
2535 docstrings are printed (instance, class, constructor). After some
2541 docstrings are printed (instance, class, constructor). After some
2536 comments/suggestions by J. Hunter.
2542 comments/suggestions by J. Hunter.
2537
2543
2538 2004-12-05 Fernando Perez <fperez@colorado.edu>
2544 2004-12-05 Fernando Perez <fperez@colorado.edu>
2539
2545
2540 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2546 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2541 warnings when tab-completion fails and triggers an exception.
2547 warnings when tab-completion fails and triggers an exception.
2542
2548
2543 2004-12-03 Fernando Perez <fperez@colorado.edu>
2549 2004-12-03 Fernando Perez <fperez@colorado.edu>
2544
2550
2545 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2551 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2546 be triggered when using 'run -p'. An incorrect option flag was
2552 be triggered when using 'run -p'. An incorrect option flag was
2547 being set ('d' instead of 'D').
2553 being set ('d' instead of 'D').
2548 (manpage): fix missing escaped \- sign.
2554 (manpage): fix missing escaped \- sign.
2549
2555
2550 2004-11-30 *** Released version 0.6.5
2556 2004-11-30 *** Released version 0.6.5
2551
2557
2552 2004-11-30 Fernando Perez <fperez@colorado.edu>
2558 2004-11-30 Fernando Perez <fperez@colorado.edu>
2553
2559
2554 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2560 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2555 setting with -d option.
2561 setting with -d option.
2556
2562
2557 * setup.py (docfiles): Fix problem where the doc glob I was using
2563 * setup.py (docfiles): Fix problem where the doc glob I was using
2558 was COMPLETELY BROKEN. It was giving the right files by pure
2564 was COMPLETELY BROKEN. It was giving the right files by pure
2559 accident, but failed once I tried to include ipython.el. Note:
2565 accident, but failed once I tried to include ipython.el. Note:
2560 glob() does NOT allow you to do exclusion on multiple endings!
2566 glob() does NOT allow you to do exclusion on multiple endings!
2561
2567
2562 2004-11-29 Fernando Perez <fperez@colorado.edu>
2568 2004-11-29 Fernando Perez <fperez@colorado.edu>
2563
2569
2564 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2570 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2565 the manpage as the source. Better formatting & consistency.
2571 the manpage as the source. Better formatting & consistency.
2566
2572
2567 * IPython/Magic.py (magic_run): Added new -d option, to run
2573 * IPython/Magic.py (magic_run): Added new -d option, to run
2568 scripts under the control of the python pdb debugger. Note that
2574 scripts under the control of the python pdb debugger. Note that
2569 this required changing the %prun option -d to -D, to avoid a clash
2575 this required changing the %prun option -d to -D, to avoid a clash
2570 (since %run must pass options to %prun, and getopt is too dumb to
2576 (since %run must pass options to %prun, and getopt is too dumb to
2571 handle options with string values with embedded spaces). Thanks
2577 handle options with string values with embedded spaces). Thanks
2572 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2578 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2573 (magic_who_ls): added type matching to %who and %whos, so that one
2579 (magic_who_ls): added type matching to %who and %whos, so that one
2574 can filter their output to only include variables of certain
2580 can filter their output to only include variables of certain
2575 types. Another suggestion by Matthew.
2581 types. Another suggestion by Matthew.
2576 (magic_whos): Added memory summaries in kb and Mb for arrays.
2582 (magic_whos): Added memory summaries in kb and Mb for arrays.
2577 (magic_who): Improve formatting (break lines every 9 vars).
2583 (magic_who): Improve formatting (break lines every 9 vars).
2578
2584
2579 2004-11-28 Fernando Perez <fperez@colorado.edu>
2585 2004-11-28 Fernando Perez <fperez@colorado.edu>
2580
2586
2581 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2587 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2582 cache when empty lines were present.
2588 cache when empty lines were present.
2583
2589
2584 2004-11-24 Fernando Perez <fperez@colorado.edu>
2590 2004-11-24 Fernando Perez <fperez@colorado.edu>
2585
2591
2586 * IPython/usage.py (__doc__): document the re-activated threading
2592 * IPython/usage.py (__doc__): document the re-activated threading
2587 options for WX and GTK.
2593 options for WX and GTK.
2588
2594
2589 2004-11-23 Fernando Perez <fperez@colorado.edu>
2595 2004-11-23 Fernando Perez <fperez@colorado.edu>
2590
2596
2591 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2597 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2592 the -wthread and -gthread options, along with a new -tk one to try
2598 the -wthread and -gthread options, along with a new -tk one to try
2593 and coordinate Tk threading with wx/gtk. The tk support is very
2599 and coordinate Tk threading with wx/gtk. The tk support is very
2594 platform dependent, since it seems to require Tcl and Tk to be
2600 platform dependent, since it seems to require Tcl and Tk to be
2595 built with threads (Fedora1/2 appears NOT to have it, but in
2601 built with threads (Fedora1/2 appears NOT to have it, but in
2596 Prabhu's Debian boxes it works OK). But even with some Tk
2602 Prabhu's Debian boxes it works OK). But even with some Tk
2597 limitations, this is a great improvement.
2603 limitations, this is a great improvement.
2598
2604
2599 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2605 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2600 info in user prompts. Patch by Prabhu.
2606 info in user prompts. Patch by Prabhu.
2601
2607
2602 2004-11-18 Fernando Perez <fperez@colorado.edu>
2608 2004-11-18 Fernando Perez <fperez@colorado.edu>
2603
2609
2604 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2610 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2605 EOFErrors and bail, to avoid infinite loops if a non-terminating
2611 EOFErrors and bail, to avoid infinite loops if a non-terminating
2606 file is fed into ipython. Patch submitted in issue 19 by user,
2612 file is fed into ipython. Patch submitted in issue 19 by user,
2607 many thanks.
2613 many thanks.
2608
2614
2609 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2615 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2610 autoquote/parens in continuation prompts, which can cause lots of
2616 autoquote/parens in continuation prompts, which can cause lots of
2611 problems. Closes roundup issue 20.
2617 problems. Closes roundup issue 20.
2612
2618
2613 2004-11-17 Fernando Perez <fperez@colorado.edu>
2619 2004-11-17 Fernando Perez <fperez@colorado.edu>
2614
2620
2615 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2621 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2616 reported as debian bug #280505. I'm not sure my local changelog
2622 reported as debian bug #280505. I'm not sure my local changelog
2617 entry has the proper debian format (Jack?).
2623 entry has the proper debian format (Jack?).
2618
2624
2619 2004-11-08 *** Released version 0.6.4
2625 2004-11-08 *** Released version 0.6.4
2620
2626
2621 2004-11-08 Fernando Perez <fperez@colorado.edu>
2627 2004-11-08 Fernando Perez <fperez@colorado.edu>
2622
2628
2623 * IPython/iplib.py (init_readline): Fix exit message for Windows
2629 * IPython/iplib.py (init_readline): Fix exit message for Windows
2624 when readline is active. Thanks to a report by Eric Jones
2630 when readline is active. Thanks to a report by Eric Jones
2625 <eric-AT-enthought.com>.
2631 <eric-AT-enthought.com>.
2626
2632
2627 2004-11-07 Fernando Perez <fperez@colorado.edu>
2633 2004-11-07 Fernando Perez <fperez@colorado.edu>
2628
2634
2629 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2635 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2630 sometimes seen by win2k/cygwin users.
2636 sometimes seen by win2k/cygwin users.
2631
2637
2632 2004-11-06 Fernando Perez <fperez@colorado.edu>
2638 2004-11-06 Fernando Perez <fperez@colorado.edu>
2633
2639
2634 * IPython/iplib.py (interact): Change the handling of %Exit from
2640 * IPython/iplib.py (interact): Change the handling of %Exit from
2635 trying to propagate a SystemExit to an internal ipython flag.
2641 trying to propagate a SystemExit to an internal ipython flag.
2636 This is less elegant than using Python's exception mechanism, but
2642 This is less elegant than using Python's exception mechanism, but
2637 I can't get that to work reliably with threads, so under -pylab
2643 I can't get that to work reliably with threads, so under -pylab
2638 %Exit was hanging IPython. Cross-thread exception handling is
2644 %Exit was hanging IPython. Cross-thread exception handling is
2639 really a bitch. Thaks to a bug report by Stephen Walton
2645 really a bitch. Thaks to a bug report by Stephen Walton
2640 <stephen.walton-AT-csun.edu>.
2646 <stephen.walton-AT-csun.edu>.
2641
2647
2642 2004-11-04 Fernando Perez <fperez@colorado.edu>
2648 2004-11-04 Fernando Perez <fperez@colorado.edu>
2643
2649
2644 * IPython/iplib.py (raw_input_original): store a pointer to the
2650 * IPython/iplib.py (raw_input_original): store a pointer to the
2645 true raw_input to harden against code which can modify it
2651 true raw_input to harden against code which can modify it
2646 (wx.py.PyShell does this and would otherwise crash ipython).
2652 (wx.py.PyShell does this and would otherwise crash ipython).
2647 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2653 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2648
2654
2649 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2655 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2650 Ctrl-C problem, which does not mess up the input line.
2656 Ctrl-C problem, which does not mess up the input line.
2651
2657
2652 2004-11-03 Fernando Perez <fperez@colorado.edu>
2658 2004-11-03 Fernando Perez <fperez@colorado.edu>
2653
2659
2654 * IPython/Release.py: Changed licensing to BSD, in all files.
2660 * IPython/Release.py: Changed licensing to BSD, in all files.
2655 (name): lowercase name for tarball/RPM release.
2661 (name): lowercase name for tarball/RPM release.
2656
2662
2657 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2663 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2658 use throughout ipython.
2664 use throughout ipython.
2659
2665
2660 * IPython/Magic.py (Magic._ofind): Switch to using the new
2666 * IPython/Magic.py (Magic._ofind): Switch to using the new
2661 OInspect.getdoc() function.
2667 OInspect.getdoc() function.
2662
2668
2663 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2669 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2664 of the line currently being canceled via Ctrl-C. It's extremely
2670 of the line currently being canceled via Ctrl-C. It's extremely
2665 ugly, but I don't know how to do it better (the problem is one of
2671 ugly, but I don't know how to do it better (the problem is one of
2666 handling cross-thread exceptions).
2672 handling cross-thread exceptions).
2667
2673
2668 2004-10-28 Fernando Perez <fperez@colorado.edu>
2674 2004-10-28 Fernando Perez <fperez@colorado.edu>
2669
2675
2670 * IPython/Shell.py (signal_handler): add signal handlers to trap
2676 * IPython/Shell.py (signal_handler): add signal handlers to trap
2671 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2677 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2672 report by Francesc Alted.
2678 report by Francesc Alted.
2673
2679
2674 2004-10-21 Fernando Perez <fperez@colorado.edu>
2680 2004-10-21 Fernando Perez <fperez@colorado.edu>
2675
2681
2676 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2682 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2677 to % for pysh syntax extensions.
2683 to % for pysh syntax extensions.
2678
2684
2679 2004-10-09 Fernando Perez <fperez@colorado.edu>
2685 2004-10-09 Fernando Perez <fperez@colorado.edu>
2680
2686
2681 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2687 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2682 arrays to print a more useful summary, without calling str(arr).
2688 arrays to print a more useful summary, without calling str(arr).
2683 This avoids the problem of extremely lengthy computations which
2689 This avoids the problem of extremely lengthy computations which
2684 occur if arr is large, and appear to the user as a system lockup
2690 occur if arr is large, and appear to the user as a system lockup
2685 with 100% cpu activity. After a suggestion by Kristian Sandberg
2691 with 100% cpu activity. After a suggestion by Kristian Sandberg
2686 <Kristian.Sandberg@colorado.edu>.
2692 <Kristian.Sandberg@colorado.edu>.
2687 (Magic.__init__): fix bug in global magic escapes not being
2693 (Magic.__init__): fix bug in global magic escapes not being
2688 correctly set.
2694 correctly set.
2689
2695
2690 2004-10-08 Fernando Perez <fperez@colorado.edu>
2696 2004-10-08 Fernando Perez <fperez@colorado.edu>
2691
2697
2692 * IPython/Magic.py (__license__): change to absolute imports of
2698 * IPython/Magic.py (__license__): change to absolute imports of
2693 ipython's own internal packages, to start adapting to the absolute
2699 ipython's own internal packages, to start adapting to the absolute
2694 import requirement of PEP-328.
2700 import requirement of PEP-328.
2695
2701
2696 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2702 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2697 files, and standardize author/license marks through the Release
2703 files, and standardize author/license marks through the Release
2698 module instead of having per/file stuff (except for files with
2704 module instead of having per/file stuff (except for files with
2699 particular licenses, like the MIT/PSF-licensed codes).
2705 particular licenses, like the MIT/PSF-licensed codes).
2700
2706
2701 * IPython/Debugger.py: remove dead code for python 2.1
2707 * IPython/Debugger.py: remove dead code for python 2.1
2702
2708
2703 2004-10-04 Fernando Perez <fperez@colorado.edu>
2709 2004-10-04 Fernando Perez <fperez@colorado.edu>
2704
2710
2705 * IPython/iplib.py (ipmagic): New function for accessing magics
2711 * IPython/iplib.py (ipmagic): New function for accessing magics
2706 via a normal python function call.
2712 via a normal python function call.
2707
2713
2708 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2714 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2709 from '@' to '%', to accomodate the new @decorator syntax of python
2715 from '@' to '%', to accomodate the new @decorator syntax of python
2710 2.4.
2716 2.4.
2711
2717
2712 2004-09-29 Fernando Perez <fperez@colorado.edu>
2718 2004-09-29 Fernando Perez <fperez@colorado.edu>
2713
2719
2714 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2720 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2715 matplotlib.use to prevent running scripts which try to switch
2721 matplotlib.use to prevent running scripts which try to switch
2716 interactive backends from within ipython. This will just crash
2722 interactive backends from within ipython. This will just crash
2717 the python interpreter, so we can't allow it (but a detailed error
2723 the python interpreter, so we can't allow it (but a detailed error
2718 is given to the user).
2724 is given to the user).
2719
2725
2720 2004-09-28 Fernando Perez <fperez@colorado.edu>
2726 2004-09-28 Fernando Perez <fperez@colorado.edu>
2721
2727
2722 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2728 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2723 matplotlib-related fixes so that using @run with non-matplotlib
2729 matplotlib-related fixes so that using @run with non-matplotlib
2724 scripts doesn't pop up spurious plot windows. This requires
2730 scripts doesn't pop up spurious plot windows. This requires
2725 matplotlib >= 0.63, where I had to make some changes as well.
2731 matplotlib >= 0.63, where I had to make some changes as well.
2726
2732
2727 * IPython/ipmaker.py (make_IPython): update version requirement to
2733 * IPython/ipmaker.py (make_IPython): update version requirement to
2728 python 2.2.
2734 python 2.2.
2729
2735
2730 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2736 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2731 banner arg for embedded customization.
2737 banner arg for embedded customization.
2732
2738
2733 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2739 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2734 explicit uses of __IP as the IPython's instance name. Now things
2740 explicit uses of __IP as the IPython's instance name. Now things
2735 are properly handled via the shell.name value. The actual code
2741 are properly handled via the shell.name value. The actual code
2736 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2742 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2737 is much better than before. I'll clean things completely when the
2743 is much better than before. I'll clean things completely when the
2738 magic stuff gets a real overhaul.
2744 magic stuff gets a real overhaul.
2739
2745
2740 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2746 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2741 minor changes to debian dir.
2747 minor changes to debian dir.
2742
2748
2743 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2749 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2744 pointer to the shell itself in the interactive namespace even when
2750 pointer to the shell itself in the interactive namespace even when
2745 a user-supplied dict is provided. This is needed for embedding
2751 a user-supplied dict is provided. This is needed for embedding
2746 purposes (found by tests with Michel Sanner).
2752 purposes (found by tests with Michel Sanner).
2747
2753
2748 2004-09-27 Fernando Perez <fperez@colorado.edu>
2754 2004-09-27 Fernando Perez <fperez@colorado.edu>
2749
2755
2750 * IPython/UserConfig/ipythonrc: remove []{} from
2756 * IPython/UserConfig/ipythonrc: remove []{} from
2751 readline_remove_delims, so that things like [modname.<TAB> do
2757 readline_remove_delims, so that things like [modname.<TAB> do
2752 proper completion. This disables [].TAB, but that's a less common
2758 proper completion. This disables [].TAB, but that's a less common
2753 case than module names in list comprehensions, for example.
2759 case than module names in list comprehensions, for example.
2754 Thanks to a report by Andrea Riciputi.
2760 Thanks to a report by Andrea Riciputi.
2755
2761
2756 2004-09-09 Fernando Perez <fperez@colorado.edu>
2762 2004-09-09 Fernando Perez <fperez@colorado.edu>
2757
2763
2758 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2764 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2759 blocking problems in win32 and osx. Fix by John.
2765 blocking problems in win32 and osx. Fix by John.
2760
2766
2761 2004-09-08 Fernando Perez <fperez@colorado.edu>
2767 2004-09-08 Fernando Perez <fperez@colorado.edu>
2762
2768
2763 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2769 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2764 for Win32 and OSX. Fix by John Hunter.
2770 for Win32 and OSX. Fix by John Hunter.
2765
2771
2766 2004-08-30 *** Released version 0.6.3
2772 2004-08-30 *** Released version 0.6.3
2767
2773
2768 2004-08-30 Fernando Perez <fperez@colorado.edu>
2774 2004-08-30 Fernando Perez <fperez@colorado.edu>
2769
2775
2770 * setup.py (isfile): Add manpages to list of dependent files to be
2776 * setup.py (isfile): Add manpages to list of dependent files to be
2771 updated.
2777 updated.
2772
2778
2773 2004-08-27 Fernando Perez <fperez@colorado.edu>
2779 2004-08-27 Fernando Perez <fperez@colorado.edu>
2774
2780
2775 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2781 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2776 for now. They don't really work with standalone WX/GTK code
2782 for now. They don't really work with standalone WX/GTK code
2777 (though matplotlib IS working fine with both of those backends).
2783 (though matplotlib IS working fine with both of those backends).
2778 This will neeed much more testing. I disabled most things with
2784 This will neeed much more testing. I disabled most things with
2779 comments, so turning it back on later should be pretty easy.
2785 comments, so turning it back on later should be pretty easy.
2780
2786
2781 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2787 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2782 autocalling of expressions like r'foo', by modifying the line
2788 autocalling of expressions like r'foo', by modifying the line
2783 split regexp. Closes
2789 split regexp. Closes
2784 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2790 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2785 Riley <ipythonbugs-AT-sabi.net>.
2791 Riley <ipythonbugs-AT-sabi.net>.
2786 (InteractiveShell.mainloop): honor --nobanner with banner
2792 (InteractiveShell.mainloop): honor --nobanner with banner
2787 extensions.
2793 extensions.
2788
2794
2789 * IPython/Shell.py: Significant refactoring of all classes, so
2795 * IPython/Shell.py: Significant refactoring of all classes, so
2790 that we can really support ALL matplotlib backends and threading
2796 that we can really support ALL matplotlib backends and threading
2791 models (John spotted a bug with Tk which required this). Now we
2797 models (John spotted a bug with Tk which required this). Now we
2792 should support single-threaded, WX-threads and GTK-threads, both
2798 should support single-threaded, WX-threads and GTK-threads, both
2793 for generic code and for matplotlib.
2799 for generic code and for matplotlib.
2794
2800
2795 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2801 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2796 -pylab, to simplify things for users. Will also remove the pylab
2802 -pylab, to simplify things for users. Will also remove the pylab
2797 profile, since now all of matplotlib configuration is directly
2803 profile, since now all of matplotlib configuration is directly
2798 handled here. This also reduces startup time.
2804 handled here. This also reduces startup time.
2799
2805
2800 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2806 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2801 shell wasn't being correctly called. Also in IPShellWX.
2807 shell wasn't being correctly called. Also in IPShellWX.
2802
2808
2803 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2809 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2804 fine-tune banner.
2810 fine-tune banner.
2805
2811
2806 * IPython/numutils.py (spike): Deprecate these spike functions,
2812 * IPython/numutils.py (spike): Deprecate these spike functions,
2807 delete (long deprecated) gnuplot_exec handler.
2813 delete (long deprecated) gnuplot_exec handler.
2808
2814
2809 2004-08-26 Fernando Perez <fperez@colorado.edu>
2815 2004-08-26 Fernando Perez <fperez@colorado.edu>
2810
2816
2811 * ipython.1: Update for threading options, plus some others which
2817 * ipython.1: Update for threading options, plus some others which
2812 were missing.
2818 were missing.
2813
2819
2814 * IPython/ipmaker.py (__call__): Added -wthread option for
2820 * IPython/ipmaker.py (__call__): Added -wthread option for
2815 wxpython thread handling. Make sure threading options are only
2821 wxpython thread handling. Make sure threading options are only
2816 valid at the command line.
2822 valid at the command line.
2817
2823
2818 * scripts/ipython: moved shell selection into a factory function
2824 * scripts/ipython: moved shell selection into a factory function
2819 in Shell.py, to keep the starter script to a minimum.
2825 in Shell.py, to keep the starter script to a minimum.
2820
2826
2821 2004-08-25 Fernando Perez <fperez@colorado.edu>
2827 2004-08-25 Fernando Perez <fperez@colorado.edu>
2822
2828
2823 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2829 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2824 John. Along with some recent changes he made to matplotlib, the
2830 John. Along with some recent changes he made to matplotlib, the
2825 next versions of both systems should work very well together.
2831 next versions of both systems should work very well together.
2826
2832
2827 2004-08-24 Fernando Perez <fperez@colorado.edu>
2833 2004-08-24 Fernando Perez <fperez@colorado.edu>
2828
2834
2829 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2835 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2830 tried to switch the profiling to using hotshot, but I'm getting
2836 tried to switch the profiling to using hotshot, but I'm getting
2831 strange errors from prof.runctx() there. I may be misreading the
2837 strange errors from prof.runctx() there. I may be misreading the
2832 docs, but it looks weird. For now the profiling code will
2838 docs, but it looks weird. For now the profiling code will
2833 continue to use the standard profiler.
2839 continue to use the standard profiler.
2834
2840
2835 2004-08-23 Fernando Perez <fperez@colorado.edu>
2841 2004-08-23 Fernando Perez <fperez@colorado.edu>
2836
2842
2837 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2843 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2838 threaded shell, by John Hunter. It's not quite ready yet, but
2844 threaded shell, by John Hunter. It's not quite ready yet, but
2839 close.
2845 close.
2840
2846
2841 2004-08-22 Fernando Perez <fperez@colorado.edu>
2847 2004-08-22 Fernando Perez <fperez@colorado.edu>
2842
2848
2843 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2849 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2844 in Magic and ultraTB.
2850 in Magic and ultraTB.
2845
2851
2846 * ipython.1: document threading options in manpage.
2852 * ipython.1: document threading options in manpage.
2847
2853
2848 * scripts/ipython: Changed name of -thread option to -gthread,
2854 * scripts/ipython: Changed name of -thread option to -gthread,
2849 since this is GTK specific. I want to leave the door open for a
2855 since this is GTK specific. I want to leave the door open for a
2850 -wthread option for WX, which will most likely be necessary. This
2856 -wthread option for WX, which will most likely be necessary. This
2851 change affects usage and ipmaker as well.
2857 change affects usage and ipmaker as well.
2852
2858
2853 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2859 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2854 handle the matplotlib shell issues. Code by John Hunter
2860 handle the matplotlib shell issues. Code by John Hunter
2855 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2861 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2856 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2862 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2857 broken (and disabled for end users) for now, but it puts the
2863 broken (and disabled for end users) for now, but it puts the
2858 infrastructure in place.
2864 infrastructure in place.
2859
2865
2860 2004-08-21 Fernando Perez <fperez@colorado.edu>
2866 2004-08-21 Fernando Perez <fperez@colorado.edu>
2861
2867
2862 * ipythonrc-pylab: Add matplotlib support.
2868 * ipythonrc-pylab: Add matplotlib support.
2863
2869
2864 * matplotlib_config.py: new files for matplotlib support, part of
2870 * matplotlib_config.py: new files for matplotlib support, part of
2865 the pylab profile.
2871 the pylab profile.
2866
2872
2867 * IPython/usage.py (__doc__): documented the threading options.
2873 * IPython/usage.py (__doc__): documented the threading options.
2868
2874
2869 2004-08-20 Fernando Perez <fperez@colorado.edu>
2875 2004-08-20 Fernando Perez <fperez@colorado.edu>
2870
2876
2871 * ipython: Modified the main calling routine to handle the -thread
2877 * ipython: Modified the main calling routine to handle the -thread
2872 and -mpthread options. This needs to be done as a top-level hack,
2878 and -mpthread options. This needs to be done as a top-level hack,
2873 because it determines which class to instantiate for IPython
2879 because it determines which class to instantiate for IPython
2874 itself.
2880 itself.
2875
2881
2876 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2882 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2877 classes to support multithreaded GTK operation without blocking,
2883 classes to support multithreaded GTK operation without blocking,
2878 and matplotlib with all backends. This is a lot of still very
2884 and matplotlib with all backends. This is a lot of still very
2879 experimental code, and threads are tricky. So it may still have a
2885 experimental code, and threads are tricky. So it may still have a
2880 few rough edges... This code owes a lot to
2886 few rough edges... This code owes a lot to
2881 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2887 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2882 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2888 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2883 to John Hunter for all the matplotlib work.
2889 to John Hunter for all the matplotlib work.
2884
2890
2885 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2891 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2886 options for gtk thread and matplotlib support.
2892 options for gtk thread and matplotlib support.
2887
2893
2888 2004-08-16 Fernando Perez <fperez@colorado.edu>
2894 2004-08-16 Fernando Perez <fperez@colorado.edu>
2889
2895
2890 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2896 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2891 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2897 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2892 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2898 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2893
2899
2894 2004-08-11 Fernando Perez <fperez@colorado.edu>
2900 2004-08-11 Fernando Perez <fperez@colorado.edu>
2895
2901
2896 * setup.py (isfile): Fix build so documentation gets updated for
2902 * setup.py (isfile): Fix build so documentation gets updated for
2897 rpms (it was only done for .tgz builds).
2903 rpms (it was only done for .tgz builds).
2898
2904
2899 2004-08-10 Fernando Perez <fperez@colorado.edu>
2905 2004-08-10 Fernando Perez <fperez@colorado.edu>
2900
2906
2901 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2907 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2902
2908
2903 * iplib.py : Silence syntax error exceptions in tab-completion.
2909 * iplib.py : Silence syntax error exceptions in tab-completion.
2904
2910
2905 2004-08-05 Fernando Perez <fperez@colorado.edu>
2911 2004-08-05 Fernando Perez <fperez@colorado.edu>
2906
2912
2907 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2913 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2908 'color off' mark for continuation prompts. This was causing long
2914 'color off' mark for continuation prompts. This was causing long
2909 continuation lines to mis-wrap.
2915 continuation lines to mis-wrap.
2910
2916
2911 2004-08-01 Fernando Perez <fperez@colorado.edu>
2917 2004-08-01 Fernando Perez <fperez@colorado.edu>
2912
2918
2913 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2919 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2914 for building ipython to be a parameter. All this is necessary
2920 for building ipython to be a parameter. All this is necessary
2915 right now to have a multithreaded version, but this insane
2921 right now to have a multithreaded version, but this insane
2916 non-design will be cleaned up soon. For now, it's a hack that
2922 non-design will be cleaned up soon. For now, it's a hack that
2917 works.
2923 works.
2918
2924
2919 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2925 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2920 args in various places. No bugs so far, but it's a dangerous
2926 args in various places. No bugs so far, but it's a dangerous
2921 practice.
2927 practice.
2922
2928
2923 2004-07-31 Fernando Perez <fperez@colorado.edu>
2929 2004-07-31 Fernando Perez <fperez@colorado.edu>
2924
2930
2925 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2931 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2926 fix completion of files with dots in their names under most
2932 fix completion of files with dots in their names under most
2927 profiles (pysh was OK because the completion order is different).
2933 profiles (pysh was OK because the completion order is different).
2928
2934
2929 2004-07-27 Fernando Perez <fperez@colorado.edu>
2935 2004-07-27 Fernando Perez <fperez@colorado.edu>
2930
2936
2931 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2937 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2932 keywords manually, b/c the one in keyword.py was removed in python
2938 keywords manually, b/c the one in keyword.py was removed in python
2933 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2939 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2934 This is NOT a bug under python 2.3 and earlier.
2940 This is NOT a bug under python 2.3 and earlier.
2935
2941
2936 2004-07-26 Fernando Perez <fperez@colorado.edu>
2942 2004-07-26 Fernando Perez <fperez@colorado.edu>
2937
2943
2938 * IPython/ultraTB.py (VerboseTB.text): Add another
2944 * IPython/ultraTB.py (VerboseTB.text): Add another
2939 linecache.checkcache() call to try to prevent inspect.py from
2945 linecache.checkcache() call to try to prevent inspect.py from
2940 crashing under python 2.3. I think this fixes
2946 crashing under python 2.3. I think this fixes
2941 http://www.scipy.net/roundup/ipython/issue17.
2947 http://www.scipy.net/roundup/ipython/issue17.
2942
2948
2943 2004-07-26 *** Released version 0.6.2
2949 2004-07-26 *** Released version 0.6.2
2944
2950
2945 2004-07-26 Fernando Perez <fperez@colorado.edu>
2951 2004-07-26 Fernando Perez <fperez@colorado.edu>
2946
2952
2947 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2953 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2948 fail for any number.
2954 fail for any number.
2949 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2955 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2950 empty bookmarks.
2956 empty bookmarks.
2951
2957
2952 2004-07-26 *** Released version 0.6.1
2958 2004-07-26 *** Released version 0.6.1
2953
2959
2954 2004-07-26 Fernando Perez <fperez@colorado.edu>
2960 2004-07-26 Fernando Perez <fperez@colorado.edu>
2955
2961
2956 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2962 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2957
2963
2958 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2964 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2959 escaping '()[]{}' in filenames.
2965 escaping '()[]{}' in filenames.
2960
2966
2961 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2967 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2962 Python 2.2 users who lack a proper shlex.split.
2968 Python 2.2 users who lack a proper shlex.split.
2963
2969
2964 2004-07-19 Fernando Perez <fperez@colorado.edu>
2970 2004-07-19 Fernando Perez <fperez@colorado.edu>
2965
2971
2966 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2972 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2967 for reading readline's init file. I follow the normal chain:
2973 for reading readline's init file. I follow the normal chain:
2968 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2974 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2969 report by Mike Heeter. This closes
2975 report by Mike Heeter. This closes
2970 http://www.scipy.net/roundup/ipython/issue16.
2976 http://www.scipy.net/roundup/ipython/issue16.
2971
2977
2972 2004-07-18 Fernando Perez <fperez@colorado.edu>
2978 2004-07-18 Fernando Perez <fperez@colorado.edu>
2973
2979
2974 * IPython/iplib.py (__init__): Add better handling of '\' under
2980 * IPython/iplib.py (__init__): Add better handling of '\' under
2975 Win32 for filenames. After a patch by Ville.
2981 Win32 for filenames. After a patch by Ville.
2976
2982
2977 2004-07-17 Fernando Perez <fperez@colorado.edu>
2983 2004-07-17 Fernando Perez <fperez@colorado.edu>
2978
2984
2979 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2985 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2980 autocalling would be triggered for 'foo is bar' if foo is
2986 autocalling would be triggered for 'foo is bar' if foo is
2981 callable. I also cleaned up the autocall detection code to use a
2987 callable. I also cleaned up the autocall detection code to use a
2982 regexp, which is faster. Bug reported by Alexander Schmolck.
2988 regexp, which is faster. Bug reported by Alexander Schmolck.
2983
2989
2984 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2990 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2985 '?' in them would confuse the help system. Reported by Alex
2991 '?' in them would confuse the help system. Reported by Alex
2986 Schmolck.
2992 Schmolck.
2987
2993
2988 2004-07-16 Fernando Perez <fperez@colorado.edu>
2994 2004-07-16 Fernando Perez <fperez@colorado.edu>
2989
2995
2990 * IPython/GnuplotInteractive.py (__all__): added plot2.
2996 * IPython/GnuplotInteractive.py (__all__): added plot2.
2991
2997
2992 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2998 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2993 plotting dictionaries, lists or tuples of 1d arrays.
2999 plotting dictionaries, lists or tuples of 1d arrays.
2994
3000
2995 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3001 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2996 optimizations.
3002 optimizations.
2997
3003
2998 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3004 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2999 the information which was there from Janko's original IPP code:
3005 the information which was there from Janko's original IPP code:
3000
3006
3001 03.05.99 20:53 porto.ifm.uni-kiel.de
3007 03.05.99 20:53 porto.ifm.uni-kiel.de
3002 --Started changelog.
3008 --Started changelog.
3003 --make clear do what it say it does
3009 --make clear do what it say it does
3004 --added pretty output of lines from inputcache
3010 --added pretty output of lines from inputcache
3005 --Made Logger a mixin class, simplifies handling of switches
3011 --Made Logger a mixin class, simplifies handling of switches
3006 --Added own completer class. .string<TAB> expands to last history
3012 --Added own completer class. .string<TAB> expands to last history
3007 line which starts with string. The new expansion is also present
3013 line which starts with string. The new expansion is also present
3008 with Ctrl-r from the readline library. But this shows, who this
3014 with Ctrl-r from the readline library. But this shows, who this
3009 can be done for other cases.
3015 can be done for other cases.
3010 --Added convention that all shell functions should accept a
3016 --Added convention that all shell functions should accept a
3011 parameter_string This opens the door for different behaviour for
3017 parameter_string This opens the door for different behaviour for
3012 each function. @cd is a good example of this.
3018 each function. @cd is a good example of this.
3013
3019
3014 04.05.99 12:12 porto.ifm.uni-kiel.de
3020 04.05.99 12:12 porto.ifm.uni-kiel.de
3015 --added logfile rotation
3021 --added logfile rotation
3016 --added new mainloop method which freezes first the namespace
3022 --added new mainloop method which freezes first the namespace
3017
3023
3018 07.05.99 21:24 porto.ifm.uni-kiel.de
3024 07.05.99 21:24 porto.ifm.uni-kiel.de
3019 --added the docreader classes. Now there is a help system.
3025 --added the docreader classes. Now there is a help system.
3020 -This is only a first try. Currently it's not easy to put new
3026 -This is only a first try. Currently it's not easy to put new
3021 stuff in the indices. But this is the way to go. Info would be
3027 stuff in the indices. But this is the way to go. Info would be
3022 better, but HTML is every where and not everybody has an info
3028 better, but HTML is every where and not everybody has an info
3023 system installed and it's not so easy to change html-docs to info.
3029 system installed and it's not so easy to change html-docs to info.
3024 --added global logfile option
3030 --added global logfile option
3025 --there is now a hook for object inspection method pinfo needs to
3031 --there is now a hook for object inspection method pinfo needs to
3026 be provided for this. Can be reached by two '??'.
3032 be provided for this. Can be reached by two '??'.
3027
3033
3028 08.05.99 20:51 porto.ifm.uni-kiel.de
3034 08.05.99 20:51 porto.ifm.uni-kiel.de
3029 --added a README
3035 --added a README
3030 --bug in rc file. Something has changed so functions in the rc
3036 --bug in rc file. Something has changed so functions in the rc
3031 file need to reference the shell and not self. Not clear if it's a
3037 file need to reference the shell and not self. Not clear if it's a
3032 bug or feature.
3038 bug or feature.
3033 --changed rc file for new behavior
3039 --changed rc file for new behavior
3034
3040
3035 2004-07-15 Fernando Perez <fperez@colorado.edu>
3041 2004-07-15 Fernando Perez <fperez@colorado.edu>
3036
3042
3037 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3043 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3038 cache was falling out of sync in bizarre manners when multi-line
3044 cache was falling out of sync in bizarre manners when multi-line
3039 input was present. Minor optimizations and cleanup.
3045 input was present. Minor optimizations and cleanup.
3040
3046
3041 (Logger): Remove old Changelog info for cleanup. This is the
3047 (Logger): Remove old Changelog info for cleanup. This is the
3042 information which was there from Janko's original code:
3048 information which was there from Janko's original code:
3043
3049
3044 Changes to Logger: - made the default log filename a parameter
3050 Changes to Logger: - made the default log filename a parameter
3045
3051
3046 - put a check for lines beginning with !@? in log(). Needed
3052 - put a check for lines beginning with !@? in log(). Needed
3047 (even if the handlers properly log their lines) for mid-session
3053 (even if the handlers properly log their lines) for mid-session
3048 logging activation to work properly. Without this, lines logged
3054 logging activation to work properly. Without this, lines logged
3049 in mid session, which get read from the cache, would end up
3055 in mid session, which get read from the cache, would end up
3050 'bare' (with !@? in the open) in the log. Now they are caught
3056 'bare' (with !@? in the open) in the log. Now they are caught
3051 and prepended with a #.
3057 and prepended with a #.
3052
3058
3053 * IPython/iplib.py (InteractiveShell.init_readline): added check
3059 * IPython/iplib.py (InteractiveShell.init_readline): added check
3054 in case MagicCompleter fails to be defined, so we don't crash.
3060 in case MagicCompleter fails to be defined, so we don't crash.
3055
3061
3056 2004-07-13 Fernando Perez <fperez@colorado.edu>
3062 2004-07-13 Fernando Perez <fperez@colorado.edu>
3057
3063
3058 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3064 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3059 of EPS if the requested filename ends in '.eps'.
3065 of EPS if the requested filename ends in '.eps'.
3060
3066
3061 2004-07-04 Fernando Perez <fperez@colorado.edu>
3067 2004-07-04 Fernando Perez <fperez@colorado.edu>
3062
3068
3063 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3069 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3064 escaping of quotes when calling the shell.
3070 escaping of quotes when calling the shell.
3065
3071
3066 2004-07-02 Fernando Perez <fperez@colorado.edu>
3072 2004-07-02 Fernando Perez <fperez@colorado.edu>
3067
3073
3068 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3074 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3069 gettext not working because we were clobbering '_'. Fixes
3075 gettext not working because we were clobbering '_'. Fixes
3070 http://www.scipy.net/roundup/ipython/issue6.
3076 http://www.scipy.net/roundup/ipython/issue6.
3071
3077
3072 2004-07-01 Fernando Perez <fperez@colorado.edu>
3078 2004-07-01 Fernando Perez <fperez@colorado.edu>
3073
3079
3074 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3080 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3075 into @cd. Patch by Ville.
3081 into @cd. Patch by Ville.
3076
3082
3077 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3083 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3078 new function to store things after ipmaker runs. Patch by Ville.
3084 new function to store things after ipmaker runs. Patch by Ville.
3079 Eventually this will go away once ipmaker is removed and the class
3085 Eventually this will go away once ipmaker is removed and the class
3080 gets cleaned up, but for now it's ok. Key functionality here is
3086 gets cleaned up, but for now it's ok. Key functionality here is
3081 the addition of the persistent storage mechanism, a dict for
3087 the addition of the persistent storage mechanism, a dict for
3082 keeping data across sessions (for now just bookmarks, but more can
3088 keeping data across sessions (for now just bookmarks, but more can
3083 be implemented later).
3089 be implemented later).
3084
3090
3085 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3091 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3086 persistent across sections. Patch by Ville, I modified it
3092 persistent across sections. Patch by Ville, I modified it
3087 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3093 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3088 added a '-l' option to list all bookmarks.
3094 added a '-l' option to list all bookmarks.
3089
3095
3090 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3096 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3091 center for cleanup. Registered with atexit.register(). I moved
3097 center for cleanup. Registered with atexit.register(). I moved
3092 here the old exit_cleanup(). After a patch by Ville.
3098 here the old exit_cleanup(). After a patch by Ville.
3093
3099
3094 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3100 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3095 characters in the hacked shlex_split for python 2.2.
3101 characters in the hacked shlex_split for python 2.2.
3096
3102
3097 * IPython/iplib.py (file_matches): more fixes to filenames with
3103 * IPython/iplib.py (file_matches): more fixes to filenames with
3098 whitespace in them. It's not perfect, but limitations in python's
3104 whitespace in them. It's not perfect, but limitations in python's
3099 readline make it impossible to go further.
3105 readline make it impossible to go further.
3100
3106
3101 2004-06-29 Fernando Perez <fperez@colorado.edu>
3107 2004-06-29 Fernando Perez <fperez@colorado.edu>
3102
3108
3103 * IPython/iplib.py (file_matches): escape whitespace correctly in
3109 * IPython/iplib.py (file_matches): escape whitespace correctly in
3104 filename completions. Bug reported by Ville.
3110 filename completions. Bug reported by Ville.
3105
3111
3106 2004-06-28 Fernando Perez <fperez@colorado.edu>
3112 2004-06-28 Fernando Perez <fperez@colorado.edu>
3107
3113
3108 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3114 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3109 the history file will be called 'history-PROFNAME' (or just
3115 the history file will be called 'history-PROFNAME' (or just
3110 'history' if no profile is loaded). I was getting annoyed at
3116 'history' if no profile is loaded). I was getting annoyed at
3111 getting my Numerical work history clobbered by pysh sessions.
3117 getting my Numerical work history clobbered by pysh sessions.
3112
3118
3113 * IPython/iplib.py (InteractiveShell.__init__): Internal
3119 * IPython/iplib.py (InteractiveShell.__init__): Internal
3114 getoutputerror() function so that we can honor the system_verbose
3120 getoutputerror() function so that we can honor the system_verbose
3115 flag for _all_ system calls. I also added escaping of #
3121 flag for _all_ system calls. I also added escaping of #
3116 characters here to avoid confusing Itpl.
3122 characters here to avoid confusing Itpl.
3117
3123
3118 * IPython/Magic.py (shlex_split): removed call to shell in
3124 * IPython/Magic.py (shlex_split): removed call to shell in
3119 parse_options and replaced it with shlex.split(). The annoying
3125 parse_options and replaced it with shlex.split(). The annoying
3120 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3126 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3121 to backport it from 2.3, with several frail hacks (the shlex
3127 to backport it from 2.3, with several frail hacks (the shlex
3122 module is rather limited in 2.2). Thanks to a suggestion by Ville
3128 module is rather limited in 2.2). Thanks to a suggestion by Ville
3123 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3129 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3124 problem.
3130 problem.
3125
3131
3126 (Magic.magic_system_verbose): new toggle to print the actual
3132 (Magic.magic_system_verbose): new toggle to print the actual
3127 system calls made by ipython. Mainly for debugging purposes.
3133 system calls made by ipython. Mainly for debugging purposes.
3128
3134
3129 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3135 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3130 doesn't support persistence. Reported (and fix suggested) by
3136 doesn't support persistence. Reported (and fix suggested) by
3131 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3137 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3132
3138
3133 2004-06-26 Fernando Perez <fperez@colorado.edu>
3139 2004-06-26 Fernando Perez <fperez@colorado.edu>
3134
3140
3135 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3141 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3136 continue prompts.
3142 continue prompts.
3137
3143
3138 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3144 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3139 function (basically a big docstring) and a few more things here to
3145 function (basically a big docstring) and a few more things here to
3140 speedup startup. pysh.py is now very lightweight. We want because
3146 speedup startup. pysh.py is now very lightweight. We want because
3141 it gets execfile'd, while InterpreterExec gets imported, so
3147 it gets execfile'd, while InterpreterExec gets imported, so
3142 byte-compilation saves time.
3148 byte-compilation saves time.
3143
3149
3144 2004-06-25 Fernando Perez <fperez@colorado.edu>
3150 2004-06-25 Fernando Perez <fperez@colorado.edu>
3145
3151
3146 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3152 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3147 -NUM', which was recently broken.
3153 -NUM', which was recently broken.
3148
3154
3149 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3155 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3150 in multi-line input (but not !!, which doesn't make sense there).
3156 in multi-line input (but not !!, which doesn't make sense there).
3151
3157
3152 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3158 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3153 It's just too useful, and people can turn it off in the less
3159 It's just too useful, and people can turn it off in the less
3154 common cases where it's a problem.
3160 common cases where it's a problem.
3155
3161
3156 2004-06-24 Fernando Perez <fperez@colorado.edu>
3162 2004-06-24 Fernando Perez <fperez@colorado.edu>
3157
3163
3158 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3164 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3159 special syntaxes (like alias calling) is now allied in multi-line
3165 special syntaxes (like alias calling) is now allied in multi-line
3160 input. This is still _very_ experimental, but it's necessary for
3166 input. This is still _very_ experimental, but it's necessary for
3161 efficient shell usage combining python looping syntax with system
3167 efficient shell usage combining python looping syntax with system
3162 calls. For now it's restricted to aliases, I don't think it
3168 calls. For now it's restricted to aliases, I don't think it
3163 really even makes sense to have this for magics.
3169 really even makes sense to have this for magics.
3164
3170
3165 2004-06-23 Fernando Perez <fperez@colorado.edu>
3171 2004-06-23 Fernando Perez <fperez@colorado.edu>
3166
3172
3167 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3173 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3168 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3174 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3169
3175
3170 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3176 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3171 extensions under Windows (after code sent by Gary Bishop). The
3177 extensions under Windows (after code sent by Gary Bishop). The
3172 extensions considered 'executable' are stored in IPython's rc
3178 extensions considered 'executable' are stored in IPython's rc
3173 structure as win_exec_ext.
3179 structure as win_exec_ext.
3174
3180
3175 * IPython/genutils.py (shell): new function, like system() but
3181 * IPython/genutils.py (shell): new function, like system() but
3176 without return value. Very useful for interactive shell work.
3182 without return value. Very useful for interactive shell work.
3177
3183
3178 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3184 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3179 delete aliases.
3185 delete aliases.
3180
3186
3181 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3187 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3182 sure that the alias table doesn't contain python keywords.
3188 sure that the alias table doesn't contain python keywords.
3183
3189
3184 2004-06-21 Fernando Perez <fperez@colorado.edu>
3190 2004-06-21 Fernando Perez <fperez@colorado.edu>
3185
3191
3186 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3192 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3187 non-existent items are found in $PATH. Reported by Thorsten.
3193 non-existent items are found in $PATH. Reported by Thorsten.
3188
3194
3189 2004-06-20 Fernando Perez <fperez@colorado.edu>
3195 2004-06-20 Fernando Perez <fperez@colorado.edu>
3190
3196
3191 * IPython/iplib.py (complete): modified the completer so that the
3197 * IPython/iplib.py (complete): modified the completer so that the
3192 order of priorities can be easily changed at runtime.
3198 order of priorities can be easily changed at runtime.
3193
3199
3194 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3200 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3195 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3201 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3196
3202
3197 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3203 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3198 expand Python variables prepended with $ in all system calls. The
3204 expand Python variables prepended with $ in all system calls. The
3199 same was done to InteractiveShell.handle_shell_escape. Now all
3205 same was done to InteractiveShell.handle_shell_escape. Now all
3200 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3206 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3201 expansion of python variables and expressions according to the
3207 expansion of python variables and expressions according to the
3202 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3208 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3203
3209
3204 Though PEP-215 has been rejected, a similar (but simpler) one
3210 Though PEP-215 has been rejected, a similar (but simpler) one
3205 seems like it will go into Python 2.4, PEP-292 -
3211 seems like it will go into Python 2.4, PEP-292 -
3206 http://www.python.org/peps/pep-0292.html.
3212 http://www.python.org/peps/pep-0292.html.
3207
3213
3208 I'll keep the full syntax of PEP-215, since IPython has since the
3214 I'll keep the full syntax of PEP-215, since IPython has since the
3209 start used Ka-Ping Yee's reference implementation discussed there
3215 start used Ka-Ping Yee's reference implementation discussed there
3210 (Itpl), and I actually like the powerful semantics it offers.
3216 (Itpl), and I actually like the powerful semantics it offers.
3211
3217
3212 In order to access normal shell variables, the $ has to be escaped
3218 In order to access normal shell variables, the $ has to be escaped
3213 via an extra $. For example:
3219 via an extra $. For example:
3214
3220
3215 In [7]: PATH='a python variable'
3221 In [7]: PATH='a python variable'
3216
3222
3217 In [8]: !echo $PATH
3223 In [8]: !echo $PATH
3218 a python variable
3224 a python variable
3219
3225
3220 In [9]: !echo $$PATH
3226 In [9]: !echo $$PATH
3221 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3227 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3222
3228
3223 (Magic.parse_options): escape $ so the shell doesn't evaluate
3229 (Magic.parse_options): escape $ so the shell doesn't evaluate
3224 things prematurely.
3230 things prematurely.
3225
3231
3226 * IPython/iplib.py (InteractiveShell.call_alias): added the
3232 * IPython/iplib.py (InteractiveShell.call_alias): added the
3227 ability for aliases to expand python variables via $.
3233 ability for aliases to expand python variables via $.
3228
3234
3229 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3235 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3230 system, now there's a @rehash/@rehashx pair of magics. These work
3236 system, now there's a @rehash/@rehashx pair of magics. These work
3231 like the csh rehash command, and can be invoked at any time. They
3237 like the csh rehash command, and can be invoked at any time. They
3232 build a table of aliases to everything in the user's $PATH
3238 build a table of aliases to everything in the user's $PATH
3233 (@rehash uses everything, @rehashx is slower but only adds
3239 (@rehash uses everything, @rehashx is slower but only adds
3234 executable files). With this, the pysh.py-based shell profile can
3240 executable files). With this, the pysh.py-based shell profile can
3235 now simply call rehash upon startup, and full access to all
3241 now simply call rehash upon startup, and full access to all
3236 programs in the user's path is obtained.
3242 programs in the user's path is obtained.
3237
3243
3238 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3244 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3239 functionality is now fully in place. I removed the old dynamic
3245 functionality is now fully in place. I removed the old dynamic
3240 code generation based approach, in favor of a much lighter one
3246 code generation based approach, in favor of a much lighter one
3241 based on a simple dict. The advantage is that this allows me to
3247 based on a simple dict. The advantage is that this allows me to
3242 now have thousands of aliases with negligible cost (unthinkable
3248 now have thousands of aliases with negligible cost (unthinkable
3243 with the old system).
3249 with the old system).
3244
3250
3245 2004-06-19 Fernando Perez <fperez@colorado.edu>
3251 2004-06-19 Fernando Perez <fperez@colorado.edu>
3246
3252
3247 * IPython/iplib.py (__init__): extended MagicCompleter class to
3253 * IPython/iplib.py (__init__): extended MagicCompleter class to
3248 also complete (last in priority) on user aliases.
3254 also complete (last in priority) on user aliases.
3249
3255
3250 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3256 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3251 call to eval.
3257 call to eval.
3252 (ItplNS.__init__): Added a new class which functions like Itpl,
3258 (ItplNS.__init__): Added a new class which functions like Itpl,
3253 but allows configuring the namespace for the evaluation to occur
3259 but allows configuring the namespace for the evaluation to occur
3254 in.
3260 in.
3255
3261
3256 2004-06-18 Fernando Perez <fperez@colorado.edu>
3262 2004-06-18 Fernando Perez <fperez@colorado.edu>
3257
3263
3258 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3264 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3259 better message when 'exit' or 'quit' are typed (a common newbie
3265 better message when 'exit' or 'quit' are typed (a common newbie
3260 confusion).
3266 confusion).
3261
3267
3262 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3268 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3263 check for Windows users.
3269 check for Windows users.
3264
3270
3265 * IPython/iplib.py (InteractiveShell.user_setup): removed
3271 * IPython/iplib.py (InteractiveShell.user_setup): removed
3266 disabling of colors for Windows. I'll test at runtime and issue a
3272 disabling of colors for Windows. I'll test at runtime and issue a
3267 warning if Gary's readline isn't found, as to nudge users to
3273 warning if Gary's readline isn't found, as to nudge users to
3268 download it.
3274 download it.
3269
3275
3270 2004-06-16 Fernando Perez <fperez@colorado.edu>
3276 2004-06-16 Fernando Perez <fperez@colorado.edu>
3271
3277
3272 * IPython/genutils.py (Stream.__init__): changed to print errors
3278 * IPython/genutils.py (Stream.__init__): changed to print errors
3273 to sys.stderr. I had a circular dependency here. Now it's
3279 to sys.stderr. I had a circular dependency here. Now it's
3274 possible to run ipython as IDLE's shell (consider this pre-alpha,
3280 possible to run ipython as IDLE's shell (consider this pre-alpha,
3275 since true stdout things end up in the starting terminal instead
3281 since true stdout things end up in the starting terminal instead
3276 of IDLE's out).
3282 of IDLE's out).
3277
3283
3278 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3284 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3279 users who haven't # updated their prompt_in2 definitions. Remove
3285 users who haven't # updated their prompt_in2 definitions. Remove
3280 eventually.
3286 eventually.
3281 (multiple_replace): added credit to original ASPN recipe.
3287 (multiple_replace): added credit to original ASPN recipe.
3282
3288
3283 2004-06-15 Fernando Perez <fperez@colorado.edu>
3289 2004-06-15 Fernando Perez <fperez@colorado.edu>
3284
3290
3285 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3291 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3286 list of auto-defined aliases.
3292 list of auto-defined aliases.
3287
3293
3288 2004-06-13 Fernando Perez <fperez@colorado.edu>
3294 2004-06-13 Fernando Perez <fperez@colorado.edu>
3289
3295
3290 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3296 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3291 install was really requested (so setup.py can be used for other
3297 install was really requested (so setup.py can be used for other
3292 things under Windows).
3298 things under Windows).
3293
3299
3294 2004-06-10 Fernando Perez <fperez@colorado.edu>
3300 2004-06-10 Fernando Perez <fperez@colorado.edu>
3295
3301
3296 * IPython/Logger.py (Logger.create_log): Manually remove any old
3302 * IPython/Logger.py (Logger.create_log): Manually remove any old
3297 backup, since os.remove may fail under Windows. Fixes bug
3303 backup, since os.remove may fail under Windows. Fixes bug
3298 reported by Thorsten.
3304 reported by Thorsten.
3299
3305
3300 2004-06-09 Fernando Perez <fperez@colorado.edu>
3306 2004-06-09 Fernando Perez <fperez@colorado.edu>
3301
3307
3302 * examples/example-embed.py: fixed all references to %n (replaced
3308 * examples/example-embed.py: fixed all references to %n (replaced
3303 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3309 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3304 for all examples and the manual as well.
3310 for all examples and the manual as well.
3305
3311
3306 2004-06-08 Fernando Perez <fperez@colorado.edu>
3312 2004-06-08 Fernando Perez <fperez@colorado.edu>
3307
3313
3308 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3314 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3309 alignment and color management. All 3 prompt subsystems now
3315 alignment and color management. All 3 prompt subsystems now
3310 inherit from BasePrompt.
3316 inherit from BasePrompt.
3311
3317
3312 * tools/release: updates for windows installer build and tag rpms
3318 * tools/release: updates for windows installer build and tag rpms
3313 with python version (since paths are fixed).
3319 with python version (since paths are fixed).
3314
3320
3315 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3321 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3316 which will become eventually obsolete. Also fixed the default
3322 which will become eventually obsolete. Also fixed the default
3317 prompt_in2 to use \D, so at least new users start with the correct
3323 prompt_in2 to use \D, so at least new users start with the correct
3318 defaults.
3324 defaults.
3319 WARNING: Users with existing ipythonrc files will need to apply
3325 WARNING: Users with existing ipythonrc files will need to apply
3320 this fix manually!
3326 this fix manually!
3321
3327
3322 * setup.py: make windows installer (.exe). This is finally the
3328 * setup.py: make windows installer (.exe). This is finally the
3323 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3329 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3324 which I hadn't included because it required Python 2.3 (or recent
3330 which I hadn't included because it required Python 2.3 (or recent
3325 distutils).
3331 distutils).
3326
3332
3327 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3333 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3328 usage of new '\D' escape.
3334 usage of new '\D' escape.
3329
3335
3330 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3336 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3331 lacks os.getuid())
3337 lacks os.getuid())
3332 (CachedOutput.set_colors): Added the ability to turn coloring
3338 (CachedOutput.set_colors): Added the ability to turn coloring
3333 on/off with @colors even for manually defined prompt colors. It
3339 on/off with @colors even for manually defined prompt colors. It
3334 uses a nasty global, but it works safely and via the generic color
3340 uses a nasty global, but it works safely and via the generic color
3335 handling mechanism.
3341 handling mechanism.
3336 (Prompt2.__init__): Introduced new escape '\D' for continuation
3342 (Prompt2.__init__): Introduced new escape '\D' for continuation
3337 prompts. It represents the counter ('\#') as dots.
3343 prompts. It represents the counter ('\#') as dots.
3338 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3344 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3339 need to update their ipythonrc files and replace '%n' with '\D' in
3345 need to update their ipythonrc files and replace '%n' with '\D' in
3340 their prompt_in2 settings everywhere. Sorry, but there's
3346 their prompt_in2 settings everywhere. Sorry, but there's
3341 otherwise no clean way to get all prompts to properly align. The
3347 otherwise no clean way to get all prompts to properly align. The
3342 ipythonrc shipped with IPython has been updated.
3348 ipythonrc shipped with IPython has been updated.
3343
3349
3344 2004-06-07 Fernando Perez <fperez@colorado.edu>
3350 2004-06-07 Fernando Perez <fperez@colorado.edu>
3345
3351
3346 * setup.py (isfile): Pass local_icons option to latex2html, so the
3352 * setup.py (isfile): Pass local_icons option to latex2html, so the
3347 resulting HTML file is self-contained. Thanks to
3353 resulting HTML file is self-contained. Thanks to
3348 dryice-AT-liu.com.cn for the tip.
3354 dryice-AT-liu.com.cn for the tip.
3349
3355
3350 * pysh.py: I created a new profile 'shell', which implements a
3356 * pysh.py: I created a new profile 'shell', which implements a
3351 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3357 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3352 system shell, nor will it become one anytime soon. It's mainly
3358 system shell, nor will it become one anytime soon. It's mainly
3353 meant to illustrate the use of the new flexible bash-like prompts.
3359 meant to illustrate the use of the new flexible bash-like prompts.
3354 I guess it could be used by hardy souls for true shell management,
3360 I guess it could be used by hardy souls for true shell management,
3355 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3361 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3356 profile. This uses the InterpreterExec extension provided by
3362 profile. This uses the InterpreterExec extension provided by
3357 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3363 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3358
3364
3359 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3365 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3360 auto-align itself with the length of the previous input prompt
3366 auto-align itself with the length of the previous input prompt
3361 (taking into account the invisible color escapes).
3367 (taking into account the invisible color escapes).
3362 (CachedOutput.__init__): Large restructuring of this class. Now
3368 (CachedOutput.__init__): Large restructuring of this class. Now
3363 all three prompts (primary1, primary2, output) are proper objects,
3369 all three prompts (primary1, primary2, output) are proper objects,
3364 managed by the 'parent' CachedOutput class. The code is still a
3370 managed by the 'parent' CachedOutput class. The code is still a
3365 bit hackish (all prompts share state via a pointer to the cache),
3371 bit hackish (all prompts share state via a pointer to the cache),
3366 but it's overall far cleaner than before.
3372 but it's overall far cleaner than before.
3367
3373
3368 * IPython/genutils.py (getoutputerror): modified to add verbose,
3374 * IPython/genutils.py (getoutputerror): modified to add verbose,
3369 debug and header options. This makes the interface of all getout*
3375 debug and header options. This makes the interface of all getout*
3370 functions uniform.
3376 functions uniform.
3371 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3377 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3372
3378
3373 * IPython/Magic.py (Magic.default_option): added a function to
3379 * IPython/Magic.py (Magic.default_option): added a function to
3374 allow registering default options for any magic command. This
3380 allow registering default options for any magic command. This
3375 makes it easy to have profiles which customize the magics globally
3381 makes it easy to have profiles which customize the magics globally
3376 for a certain use. The values set through this function are
3382 for a certain use. The values set through this function are
3377 picked up by the parse_options() method, which all magics should
3383 picked up by the parse_options() method, which all magics should
3378 use to parse their options.
3384 use to parse their options.
3379
3385
3380 * IPython/genutils.py (warn): modified the warnings framework to
3386 * IPython/genutils.py (warn): modified the warnings framework to
3381 use the Term I/O class. I'm trying to slowly unify all of
3387 use the Term I/O class. I'm trying to slowly unify all of
3382 IPython's I/O operations to pass through Term.
3388 IPython's I/O operations to pass through Term.
3383
3389
3384 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3390 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3385 the secondary prompt to correctly match the length of the primary
3391 the secondary prompt to correctly match the length of the primary
3386 one for any prompt. Now multi-line code will properly line up
3392 one for any prompt. Now multi-line code will properly line up
3387 even for path dependent prompts, such as the new ones available
3393 even for path dependent prompts, such as the new ones available
3388 via the prompt_specials.
3394 via the prompt_specials.
3389
3395
3390 2004-06-06 Fernando Perez <fperez@colorado.edu>
3396 2004-06-06 Fernando Perez <fperez@colorado.edu>
3391
3397
3392 * IPython/Prompts.py (prompt_specials): Added the ability to have
3398 * IPython/Prompts.py (prompt_specials): Added the ability to have
3393 bash-like special sequences in the prompts, which get
3399 bash-like special sequences in the prompts, which get
3394 automatically expanded. Things like hostname, current working
3400 automatically expanded. Things like hostname, current working
3395 directory and username are implemented already, but it's easy to
3401 directory and username are implemented already, but it's easy to
3396 add more in the future. Thanks to a patch by W.J. van der Laan
3402 add more in the future. Thanks to a patch by W.J. van der Laan
3397 <gnufnork-AT-hetdigitalegat.nl>
3403 <gnufnork-AT-hetdigitalegat.nl>
3398 (prompt_specials): Added color support for prompt strings, so
3404 (prompt_specials): Added color support for prompt strings, so
3399 users can define arbitrary color setups for their prompts.
3405 users can define arbitrary color setups for their prompts.
3400
3406
3401 2004-06-05 Fernando Perez <fperez@colorado.edu>
3407 2004-06-05 Fernando Perez <fperez@colorado.edu>
3402
3408
3403 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3409 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3404 code to load Gary Bishop's readline and configure it
3410 code to load Gary Bishop's readline and configure it
3405 automatically. Thanks to Gary for help on this.
3411 automatically. Thanks to Gary for help on this.
3406
3412
3407 2004-06-01 Fernando Perez <fperez@colorado.edu>
3413 2004-06-01 Fernando Perez <fperez@colorado.edu>
3408
3414
3409 * IPython/Logger.py (Logger.create_log): fix bug for logging
3415 * IPython/Logger.py (Logger.create_log): fix bug for logging
3410 with no filename (previous fix was incomplete).
3416 with no filename (previous fix was incomplete).
3411
3417
3412 2004-05-25 Fernando Perez <fperez@colorado.edu>
3418 2004-05-25 Fernando Perez <fperez@colorado.edu>
3413
3419
3414 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3420 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3415 parens would get passed to the shell.
3421 parens would get passed to the shell.
3416
3422
3417 2004-05-20 Fernando Perez <fperez@colorado.edu>
3423 2004-05-20 Fernando Perez <fperez@colorado.edu>
3418
3424
3419 * IPython/Magic.py (Magic.magic_prun): changed default profile
3425 * IPython/Magic.py (Magic.magic_prun): changed default profile
3420 sort order to 'time' (the more common profiling need).
3426 sort order to 'time' (the more common profiling need).
3421
3427
3422 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3428 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3423 so that source code shown is guaranteed in sync with the file on
3429 so that source code shown is guaranteed in sync with the file on
3424 disk (also changed in psource). Similar fix to the one for
3430 disk (also changed in psource). Similar fix to the one for
3425 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3431 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3426 <yann.ledu-AT-noos.fr>.
3432 <yann.ledu-AT-noos.fr>.
3427
3433
3428 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3434 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3429 with a single option would not be correctly parsed. Closes
3435 with a single option would not be correctly parsed. Closes
3430 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3436 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3431 introduced in 0.6.0 (on 2004-05-06).
3437 introduced in 0.6.0 (on 2004-05-06).
3432
3438
3433 2004-05-13 *** Released version 0.6.0
3439 2004-05-13 *** Released version 0.6.0
3434
3440
3435 2004-05-13 Fernando Perez <fperez@colorado.edu>
3441 2004-05-13 Fernando Perez <fperez@colorado.edu>
3436
3442
3437 * debian/: Added debian/ directory to CVS, so that debian support
3443 * debian/: Added debian/ directory to CVS, so that debian support
3438 is publicly accessible. The debian package is maintained by Jack
3444 is publicly accessible. The debian package is maintained by Jack
3439 Moffit <jack-AT-xiph.org>.
3445 Moffit <jack-AT-xiph.org>.
3440
3446
3441 * Documentation: included the notes about an ipython-based system
3447 * Documentation: included the notes about an ipython-based system
3442 shell (the hypothetical 'pysh') into the new_design.pdf document,
3448 shell (the hypothetical 'pysh') into the new_design.pdf document,
3443 so that these ideas get distributed to users along with the
3449 so that these ideas get distributed to users along with the
3444 official documentation.
3450 official documentation.
3445
3451
3446 2004-05-10 Fernando Perez <fperez@colorado.edu>
3452 2004-05-10 Fernando Perez <fperez@colorado.edu>
3447
3453
3448 * IPython/Logger.py (Logger.create_log): fix recently introduced
3454 * IPython/Logger.py (Logger.create_log): fix recently introduced
3449 bug (misindented line) where logstart would fail when not given an
3455 bug (misindented line) where logstart would fail when not given an
3450 explicit filename.
3456 explicit filename.
3451
3457
3452 2004-05-09 Fernando Perez <fperez@colorado.edu>
3458 2004-05-09 Fernando Perez <fperez@colorado.edu>
3453
3459
3454 * IPython/Magic.py (Magic.parse_options): skip system call when
3460 * IPython/Magic.py (Magic.parse_options): skip system call when
3455 there are no options to look for. Faster, cleaner for the common
3461 there are no options to look for. Faster, cleaner for the common
3456 case.
3462 case.
3457
3463
3458 * Documentation: many updates to the manual: describing Windows
3464 * Documentation: many updates to the manual: describing Windows
3459 support better, Gnuplot updates, credits, misc small stuff. Also
3465 support better, Gnuplot updates, credits, misc small stuff. Also
3460 updated the new_design doc a bit.
3466 updated the new_design doc a bit.
3461
3467
3462 2004-05-06 *** Released version 0.6.0.rc1
3468 2004-05-06 *** Released version 0.6.0.rc1
3463
3469
3464 2004-05-06 Fernando Perez <fperez@colorado.edu>
3470 2004-05-06 Fernando Perez <fperez@colorado.edu>
3465
3471
3466 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3472 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3467 operations to use the vastly more efficient list/''.join() method.
3473 operations to use the vastly more efficient list/''.join() method.
3468 (FormattedTB.text): Fix
3474 (FormattedTB.text): Fix
3469 http://www.scipy.net/roundup/ipython/issue12 - exception source
3475 http://www.scipy.net/roundup/ipython/issue12 - exception source
3470 extract not updated after reload. Thanks to Mike Salib
3476 extract not updated after reload. Thanks to Mike Salib
3471 <msalib-AT-mit.edu> for pinning the source of the problem.
3477 <msalib-AT-mit.edu> for pinning the source of the problem.
3472 Fortunately, the solution works inside ipython and doesn't require
3478 Fortunately, the solution works inside ipython and doesn't require
3473 any changes to python proper.
3479 any changes to python proper.
3474
3480
3475 * IPython/Magic.py (Magic.parse_options): Improved to process the
3481 * IPython/Magic.py (Magic.parse_options): Improved to process the
3476 argument list as a true shell would (by actually using the
3482 argument list as a true shell would (by actually using the
3477 underlying system shell). This way, all @magics automatically get
3483 underlying system shell). This way, all @magics automatically get
3478 shell expansion for variables. Thanks to a comment by Alex
3484 shell expansion for variables. Thanks to a comment by Alex
3479 Schmolck.
3485 Schmolck.
3480
3486
3481 2004-04-04 Fernando Perez <fperez@colorado.edu>
3487 2004-04-04 Fernando Perez <fperez@colorado.edu>
3482
3488
3483 * IPython/iplib.py (InteractiveShell.interact): Added a special
3489 * IPython/iplib.py (InteractiveShell.interact): Added a special
3484 trap for a debugger quit exception, which is basically impossible
3490 trap for a debugger quit exception, which is basically impossible
3485 to handle by normal mechanisms, given what pdb does to the stack.
3491 to handle by normal mechanisms, given what pdb does to the stack.
3486 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3492 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3487
3493
3488 2004-04-03 Fernando Perez <fperez@colorado.edu>
3494 2004-04-03 Fernando Perez <fperez@colorado.edu>
3489
3495
3490 * IPython/genutils.py (Term): Standardized the names of the Term
3496 * IPython/genutils.py (Term): Standardized the names of the Term
3491 class streams to cin/cout/cerr, following C++ naming conventions
3497 class streams to cin/cout/cerr, following C++ naming conventions
3492 (I can't use in/out/err because 'in' is not a valid attribute
3498 (I can't use in/out/err because 'in' is not a valid attribute
3493 name).
3499 name).
3494
3500
3495 * IPython/iplib.py (InteractiveShell.interact): don't increment
3501 * IPython/iplib.py (InteractiveShell.interact): don't increment
3496 the prompt if there's no user input. By Daniel 'Dang' Griffith
3502 the prompt if there's no user input. By Daniel 'Dang' Griffith
3497 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3503 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3498 Francois Pinard.
3504 Francois Pinard.
3499
3505
3500 2004-04-02 Fernando Perez <fperez@colorado.edu>
3506 2004-04-02 Fernando Perez <fperez@colorado.edu>
3501
3507
3502 * IPython/genutils.py (Stream.__init__): Modified to survive at
3508 * IPython/genutils.py (Stream.__init__): Modified to survive at
3503 least importing in contexts where stdin/out/err aren't true file
3509 least importing in contexts where stdin/out/err aren't true file
3504 objects, such as PyCrust (they lack fileno() and mode). However,
3510 objects, such as PyCrust (they lack fileno() and mode). However,
3505 the recovery facilities which rely on these things existing will
3511 the recovery facilities which rely on these things existing will
3506 not work.
3512 not work.
3507
3513
3508 2004-04-01 Fernando Perez <fperez@colorado.edu>
3514 2004-04-01 Fernando Perez <fperez@colorado.edu>
3509
3515
3510 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3516 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3511 use the new getoutputerror() function, so it properly
3517 use the new getoutputerror() function, so it properly
3512 distinguishes stdout/err.
3518 distinguishes stdout/err.
3513
3519
3514 * IPython/genutils.py (getoutputerror): added a function to
3520 * IPython/genutils.py (getoutputerror): added a function to
3515 capture separately the standard output and error of a command.
3521 capture separately the standard output and error of a command.
3516 After a comment from dang on the mailing lists. This code is
3522 After a comment from dang on the mailing lists. This code is
3517 basically a modified version of commands.getstatusoutput(), from
3523 basically a modified version of commands.getstatusoutput(), from
3518 the standard library.
3524 the standard library.
3519
3525
3520 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3526 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3521 '!!' as a special syntax (shorthand) to access @sx.
3527 '!!' as a special syntax (shorthand) to access @sx.
3522
3528
3523 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3529 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3524 command and return its output as a list split on '\n'.
3530 command and return its output as a list split on '\n'.
3525
3531
3526 2004-03-31 Fernando Perez <fperez@colorado.edu>
3532 2004-03-31 Fernando Perez <fperez@colorado.edu>
3527
3533
3528 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3534 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3529 method to dictionaries used as FakeModule instances if they lack
3535 method to dictionaries used as FakeModule instances if they lack
3530 it. At least pydoc in python2.3 breaks for runtime-defined
3536 it. At least pydoc in python2.3 breaks for runtime-defined
3531 functions without this hack. At some point I need to _really_
3537 functions without this hack. At some point I need to _really_
3532 understand what FakeModule is doing, because it's a gross hack.
3538 understand what FakeModule is doing, because it's a gross hack.
3533 But it solves Arnd's problem for now...
3539 But it solves Arnd's problem for now...
3534
3540
3535 2004-02-27 Fernando Perez <fperez@colorado.edu>
3541 2004-02-27 Fernando Perez <fperez@colorado.edu>
3536
3542
3537 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3543 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3538 mode would behave erratically. Also increased the number of
3544 mode would behave erratically. Also increased the number of
3539 possible logs in rotate mod to 999. Thanks to Rod Holland
3545 possible logs in rotate mod to 999. Thanks to Rod Holland
3540 <rhh@StructureLABS.com> for the report and fixes.
3546 <rhh@StructureLABS.com> for the report and fixes.
3541
3547
3542 2004-02-26 Fernando Perez <fperez@colorado.edu>
3548 2004-02-26 Fernando Perez <fperez@colorado.edu>
3543
3549
3544 * IPython/genutils.py (page): Check that the curses module really
3550 * IPython/genutils.py (page): Check that the curses module really
3545 has the initscr attribute before trying to use it. For some
3551 has the initscr attribute before trying to use it. For some
3546 reason, the Solaris curses module is missing this. I think this
3552 reason, the Solaris curses module is missing this. I think this
3547 should be considered a Solaris python bug, but I'm not sure.
3553 should be considered a Solaris python bug, but I'm not sure.
3548
3554
3549 2004-01-17 Fernando Perez <fperez@colorado.edu>
3555 2004-01-17 Fernando Perez <fperez@colorado.edu>
3550
3556
3551 * IPython/genutils.py (Stream.__init__): Changes to try to make
3557 * IPython/genutils.py (Stream.__init__): Changes to try to make
3552 ipython robust against stdin/out/err being closed by the user.
3558 ipython robust against stdin/out/err being closed by the user.
3553 This is 'user error' (and blocks a normal python session, at least
3559 This is 'user error' (and blocks a normal python session, at least
3554 the stdout case). However, Ipython should be able to survive such
3560 the stdout case). However, Ipython should be able to survive such
3555 instances of abuse as gracefully as possible. To simplify the
3561 instances of abuse as gracefully as possible. To simplify the
3556 coding and maintain compatibility with Gary Bishop's Term
3562 coding and maintain compatibility with Gary Bishop's Term
3557 contributions, I've made use of classmethods for this. I think
3563 contributions, I've made use of classmethods for this. I think
3558 this introduces a dependency on python 2.2.
3564 this introduces a dependency on python 2.2.
3559
3565
3560 2004-01-13 Fernando Perez <fperez@colorado.edu>
3566 2004-01-13 Fernando Perez <fperez@colorado.edu>
3561
3567
3562 * IPython/numutils.py (exp_safe): simplified the code a bit and
3568 * IPython/numutils.py (exp_safe): simplified the code a bit and
3563 removed the need for importing the kinds module altogether.
3569 removed the need for importing the kinds module altogether.
3564
3570
3565 2004-01-06 Fernando Perez <fperez@colorado.edu>
3571 2004-01-06 Fernando Perez <fperez@colorado.edu>
3566
3572
3567 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3573 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3568 a magic function instead, after some community feedback. No
3574 a magic function instead, after some community feedback. No
3569 special syntax will exist for it, but its name is deliberately
3575 special syntax will exist for it, but its name is deliberately
3570 very short.
3576 very short.
3571
3577
3572 2003-12-20 Fernando Perez <fperez@colorado.edu>
3578 2003-12-20 Fernando Perez <fperez@colorado.edu>
3573
3579
3574 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3580 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3575 new functionality, to automagically assign the result of a shell
3581 new functionality, to automagically assign the result of a shell
3576 command to a variable. I'll solicit some community feedback on
3582 command to a variable. I'll solicit some community feedback on
3577 this before making it permanent.
3583 this before making it permanent.
3578
3584
3579 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3585 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3580 requested about callables for which inspect couldn't obtain a
3586 requested about callables for which inspect couldn't obtain a
3581 proper argspec. Thanks to a crash report sent by Etienne
3587 proper argspec. Thanks to a crash report sent by Etienne
3582 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3588 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3583
3589
3584 2003-12-09 Fernando Perez <fperez@colorado.edu>
3590 2003-12-09 Fernando Perez <fperez@colorado.edu>
3585
3591
3586 * IPython/genutils.py (page): patch for the pager to work across
3592 * IPython/genutils.py (page): patch for the pager to work across
3587 various versions of Windows. By Gary Bishop.
3593 various versions of Windows. By Gary Bishop.
3588
3594
3589 2003-12-04 Fernando Perez <fperez@colorado.edu>
3595 2003-12-04 Fernando Perez <fperez@colorado.edu>
3590
3596
3591 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3597 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3592 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3598 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3593 While I tested this and it looks ok, there may still be corner
3599 While I tested this and it looks ok, there may still be corner
3594 cases I've missed.
3600 cases I've missed.
3595
3601
3596 2003-12-01 Fernando Perez <fperez@colorado.edu>
3602 2003-12-01 Fernando Perez <fperez@colorado.edu>
3597
3603
3598 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3604 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3599 where a line like 'p,q=1,2' would fail because the automagic
3605 where a line like 'p,q=1,2' would fail because the automagic
3600 system would be triggered for @p.
3606 system would be triggered for @p.
3601
3607
3602 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3608 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3603 cleanups, code unmodified.
3609 cleanups, code unmodified.
3604
3610
3605 * IPython/genutils.py (Term): added a class for IPython to handle
3611 * IPython/genutils.py (Term): added a class for IPython to handle
3606 output. In most cases it will just be a proxy for stdout/err, but
3612 output. In most cases it will just be a proxy for stdout/err, but
3607 having this allows modifications to be made for some platforms,
3613 having this allows modifications to be made for some platforms,
3608 such as handling color escapes under Windows. All of this code
3614 such as handling color escapes under Windows. All of this code
3609 was contributed by Gary Bishop, with minor modifications by me.
3615 was contributed by Gary Bishop, with minor modifications by me.
3610 The actual changes affect many files.
3616 The actual changes affect many files.
3611
3617
3612 2003-11-30 Fernando Perez <fperez@colorado.edu>
3618 2003-11-30 Fernando Perez <fperez@colorado.edu>
3613
3619
3614 * IPython/iplib.py (file_matches): new completion code, courtesy
3620 * IPython/iplib.py (file_matches): new completion code, courtesy
3615 of Jeff Collins. This enables filename completion again under
3621 of Jeff Collins. This enables filename completion again under
3616 python 2.3, which disabled it at the C level.
3622 python 2.3, which disabled it at the C level.
3617
3623
3618 2003-11-11 Fernando Perez <fperez@colorado.edu>
3624 2003-11-11 Fernando Perez <fperez@colorado.edu>
3619
3625
3620 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3626 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3621 for Numeric.array(map(...)), but often convenient.
3627 for Numeric.array(map(...)), but often convenient.
3622
3628
3623 2003-11-05 Fernando Perez <fperez@colorado.edu>
3629 2003-11-05 Fernando Perez <fperez@colorado.edu>
3624
3630
3625 * IPython/numutils.py (frange): Changed a call from int() to
3631 * IPython/numutils.py (frange): Changed a call from int() to
3626 int(round()) to prevent a problem reported with arange() in the
3632 int(round()) to prevent a problem reported with arange() in the
3627 numpy list.
3633 numpy list.
3628
3634
3629 2003-10-06 Fernando Perez <fperez@colorado.edu>
3635 2003-10-06 Fernando Perez <fperez@colorado.edu>
3630
3636
3631 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3637 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3632 prevent crashes if sys lacks an argv attribute (it happens with
3638 prevent crashes if sys lacks an argv attribute (it happens with
3633 embedded interpreters which build a bare-bones sys module).
3639 embedded interpreters which build a bare-bones sys module).
3634 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3640 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3635
3641
3636 2003-09-24 Fernando Perez <fperez@colorado.edu>
3642 2003-09-24 Fernando Perez <fperez@colorado.edu>
3637
3643
3638 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3644 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3639 to protect against poorly written user objects where __getattr__
3645 to protect against poorly written user objects where __getattr__
3640 raises exceptions other than AttributeError. Thanks to a bug
3646 raises exceptions other than AttributeError. Thanks to a bug
3641 report by Oliver Sander <osander-AT-gmx.de>.
3647 report by Oliver Sander <osander-AT-gmx.de>.
3642
3648
3643 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3649 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3644 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3650 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3645
3651
3646 2003-09-09 Fernando Perez <fperez@colorado.edu>
3652 2003-09-09 Fernando Perez <fperez@colorado.edu>
3647
3653
3648 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3654 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3649 unpacking a list whith a callable as first element would
3655 unpacking a list whith a callable as first element would
3650 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3656 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3651 Collins.
3657 Collins.
3652
3658
3653 2003-08-25 *** Released version 0.5.0
3659 2003-08-25 *** Released version 0.5.0
3654
3660
3655 2003-08-22 Fernando Perez <fperez@colorado.edu>
3661 2003-08-22 Fernando Perez <fperez@colorado.edu>
3656
3662
3657 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3663 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3658 improperly defined user exceptions. Thanks to feedback from Mark
3664 improperly defined user exceptions. Thanks to feedback from Mark
3659 Russell <mrussell-AT-verio.net>.
3665 Russell <mrussell-AT-verio.net>.
3660
3666
3661 2003-08-20 Fernando Perez <fperez@colorado.edu>
3667 2003-08-20 Fernando Perez <fperez@colorado.edu>
3662
3668
3663 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3669 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3664 printing so that it would print multi-line string forms starting
3670 printing so that it would print multi-line string forms starting
3665 with a new line. This way the formatting is better respected for
3671 with a new line. This way the formatting is better respected for
3666 objects which work hard to make nice string forms.
3672 objects which work hard to make nice string forms.
3667
3673
3668 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3674 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3669 autocall would overtake data access for objects with both
3675 autocall would overtake data access for objects with both
3670 __getitem__ and __call__.
3676 __getitem__ and __call__.
3671
3677
3672 2003-08-19 *** Released version 0.5.0-rc1
3678 2003-08-19 *** Released version 0.5.0-rc1
3673
3679
3674 2003-08-19 Fernando Perez <fperez@colorado.edu>
3680 2003-08-19 Fernando Perez <fperez@colorado.edu>
3675
3681
3676 * IPython/deep_reload.py (load_tail): single tiny change here
3682 * IPython/deep_reload.py (load_tail): single tiny change here
3677 seems to fix the long-standing bug of dreload() failing to work
3683 seems to fix the long-standing bug of dreload() failing to work
3678 for dotted names. But this module is pretty tricky, so I may have
3684 for dotted names. But this module is pretty tricky, so I may have
3679 missed some subtlety. Needs more testing!.
3685 missed some subtlety. Needs more testing!.
3680
3686
3681 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3687 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3682 exceptions which have badly implemented __str__ methods.
3688 exceptions which have badly implemented __str__ methods.
3683 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3689 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3684 which I've been getting reports about from Python 2.3 users. I
3690 which I've been getting reports about from Python 2.3 users. I
3685 wish I had a simple test case to reproduce the problem, so I could
3691 wish I had a simple test case to reproduce the problem, so I could
3686 either write a cleaner workaround or file a bug report if
3692 either write a cleaner workaround or file a bug report if
3687 necessary.
3693 necessary.
3688
3694
3689 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3695 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3690 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3696 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3691 a bug report by Tjabo Kloppenburg.
3697 a bug report by Tjabo Kloppenburg.
3692
3698
3693 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3699 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3694 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3700 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3695 seems rather unstable. Thanks to a bug report by Tjabo
3701 seems rather unstable. Thanks to a bug report by Tjabo
3696 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3702 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3697
3703
3698 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3704 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3699 this out soon because of the critical fixes in the inner loop for
3705 this out soon because of the critical fixes in the inner loop for
3700 generators.
3706 generators.
3701
3707
3702 * IPython/Magic.py (Magic.getargspec): removed. This (and
3708 * IPython/Magic.py (Magic.getargspec): removed. This (and
3703 _get_def) have been obsoleted by OInspect for a long time, I
3709 _get_def) have been obsoleted by OInspect for a long time, I
3704 hadn't noticed that they were dead code.
3710 hadn't noticed that they were dead code.
3705 (Magic._ofind): restored _ofind functionality for a few literals
3711 (Magic._ofind): restored _ofind functionality for a few literals
3706 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3712 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3707 for things like "hello".capitalize?, since that would require a
3713 for things like "hello".capitalize?, since that would require a
3708 potentially dangerous eval() again.
3714 potentially dangerous eval() again.
3709
3715
3710 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3716 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3711 logic a bit more to clean up the escapes handling and minimize the
3717 logic a bit more to clean up the escapes handling and minimize the
3712 use of _ofind to only necessary cases. The interactive 'feel' of
3718 use of _ofind to only necessary cases. The interactive 'feel' of
3713 IPython should have improved quite a bit with the changes in
3719 IPython should have improved quite a bit with the changes in
3714 _prefilter and _ofind (besides being far safer than before).
3720 _prefilter and _ofind (besides being far safer than before).
3715
3721
3716 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3722 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3717 obscure, never reported). Edit would fail to find the object to
3723 obscure, never reported). Edit would fail to find the object to
3718 edit under some circumstances.
3724 edit under some circumstances.
3719 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3725 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3720 which were causing double-calling of generators. Those eval calls
3726 which were causing double-calling of generators. Those eval calls
3721 were _very_ dangerous, since code with side effects could be
3727 were _very_ dangerous, since code with side effects could be
3722 triggered. As they say, 'eval is evil'... These were the
3728 triggered. As they say, 'eval is evil'... These were the
3723 nastiest evals in IPython. Besides, _ofind is now far simpler,
3729 nastiest evals in IPython. Besides, _ofind is now far simpler,
3724 and it should also be quite a bit faster. Its use of inspect is
3730 and it should also be quite a bit faster. Its use of inspect is
3725 also safer, so perhaps some of the inspect-related crashes I've
3731 also safer, so perhaps some of the inspect-related crashes I've
3726 seen lately with Python 2.3 might be taken care of. That will
3732 seen lately with Python 2.3 might be taken care of. That will
3727 need more testing.
3733 need more testing.
3728
3734
3729 2003-08-17 Fernando Perez <fperez@colorado.edu>
3735 2003-08-17 Fernando Perez <fperez@colorado.edu>
3730
3736
3731 * IPython/iplib.py (InteractiveShell._prefilter): significant
3737 * IPython/iplib.py (InteractiveShell._prefilter): significant
3732 simplifications to the logic for handling user escapes. Faster
3738 simplifications to the logic for handling user escapes. Faster
3733 and simpler code.
3739 and simpler code.
3734
3740
3735 2003-08-14 Fernando Perez <fperez@colorado.edu>
3741 2003-08-14 Fernando Perez <fperez@colorado.edu>
3736
3742
3737 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3743 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3738 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3744 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3739 but it should be quite a bit faster. And the recursive version
3745 but it should be quite a bit faster. And the recursive version
3740 generated O(log N) intermediate storage for all rank>1 arrays,
3746 generated O(log N) intermediate storage for all rank>1 arrays,
3741 even if they were contiguous.
3747 even if they were contiguous.
3742 (l1norm): Added this function.
3748 (l1norm): Added this function.
3743 (norm): Added this function for arbitrary norms (including
3749 (norm): Added this function for arbitrary norms (including
3744 l-infinity). l1 and l2 are still special cases for convenience
3750 l-infinity). l1 and l2 are still special cases for convenience
3745 and speed.
3751 and speed.
3746
3752
3747 2003-08-03 Fernando Perez <fperez@colorado.edu>
3753 2003-08-03 Fernando Perez <fperez@colorado.edu>
3748
3754
3749 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3755 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3750 exceptions, which now raise PendingDeprecationWarnings in Python
3756 exceptions, which now raise PendingDeprecationWarnings in Python
3751 2.3. There were some in Magic and some in Gnuplot2.
3757 2.3. There were some in Magic and some in Gnuplot2.
3752
3758
3753 2003-06-30 Fernando Perez <fperez@colorado.edu>
3759 2003-06-30 Fernando Perez <fperez@colorado.edu>
3754
3760
3755 * IPython/genutils.py (page): modified to call curses only for
3761 * IPython/genutils.py (page): modified to call curses only for
3756 terminals where TERM=='xterm'. After problems under many other
3762 terminals where TERM=='xterm'. After problems under many other
3757 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3763 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3758
3764
3759 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3765 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3760 would be triggered when readline was absent. This was just an old
3766 would be triggered when readline was absent. This was just an old
3761 debugging statement I'd forgotten to take out.
3767 debugging statement I'd forgotten to take out.
3762
3768
3763 2003-06-20 Fernando Perez <fperez@colorado.edu>
3769 2003-06-20 Fernando Perez <fperez@colorado.edu>
3764
3770
3765 * IPython/genutils.py (clock): modified to return only user time
3771 * IPython/genutils.py (clock): modified to return only user time
3766 (not counting system time), after a discussion on scipy. While
3772 (not counting system time), after a discussion on scipy. While
3767 system time may be a useful quantity occasionally, it may much
3773 system time may be a useful quantity occasionally, it may much
3768 more easily be skewed by occasional swapping or other similar
3774 more easily be skewed by occasional swapping or other similar
3769 activity.
3775 activity.
3770
3776
3771 2003-06-05 Fernando Perez <fperez@colorado.edu>
3777 2003-06-05 Fernando Perez <fperez@colorado.edu>
3772
3778
3773 * IPython/numutils.py (identity): new function, for building
3779 * IPython/numutils.py (identity): new function, for building
3774 arbitrary rank Kronecker deltas (mostly backwards compatible with
3780 arbitrary rank Kronecker deltas (mostly backwards compatible with
3775 Numeric.identity)
3781 Numeric.identity)
3776
3782
3777 2003-06-03 Fernando Perez <fperez@colorado.edu>
3783 2003-06-03 Fernando Perez <fperez@colorado.edu>
3778
3784
3779 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3785 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3780 arguments passed to magics with spaces, to allow trailing '\' to
3786 arguments passed to magics with spaces, to allow trailing '\' to
3781 work normally (mainly for Windows users).
3787 work normally (mainly for Windows users).
3782
3788
3783 2003-05-29 Fernando Perez <fperez@colorado.edu>
3789 2003-05-29 Fernando Perez <fperez@colorado.edu>
3784
3790
3785 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3791 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3786 instead of pydoc.help. This fixes a bizarre behavior where
3792 instead of pydoc.help. This fixes a bizarre behavior where
3787 printing '%s' % locals() would trigger the help system. Now
3793 printing '%s' % locals() would trigger the help system. Now
3788 ipython behaves like normal python does.
3794 ipython behaves like normal python does.
3789
3795
3790 Note that if one does 'from pydoc import help', the bizarre
3796 Note that if one does 'from pydoc import help', the bizarre
3791 behavior returns, but this will also happen in normal python, so
3797 behavior returns, but this will also happen in normal python, so
3792 it's not an ipython bug anymore (it has to do with how pydoc.help
3798 it's not an ipython bug anymore (it has to do with how pydoc.help
3793 is implemented).
3799 is implemented).
3794
3800
3795 2003-05-22 Fernando Perez <fperez@colorado.edu>
3801 2003-05-22 Fernando Perez <fperez@colorado.edu>
3796
3802
3797 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3803 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3798 return [] instead of None when nothing matches, also match to end
3804 return [] instead of None when nothing matches, also match to end
3799 of line. Patch by Gary Bishop.
3805 of line. Patch by Gary Bishop.
3800
3806
3801 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3807 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3802 protection as before, for files passed on the command line. This
3808 protection as before, for files passed on the command line. This
3803 prevents the CrashHandler from kicking in if user files call into
3809 prevents the CrashHandler from kicking in if user files call into
3804 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3810 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3805 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3811 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3806
3812
3807 2003-05-20 *** Released version 0.4.0
3813 2003-05-20 *** Released version 0.4.0
3808
3814
3809 2003-05-20 Fernando Perez <fperez@colorado.edu>
3815 2003-05-20 Fernando Perez <fperez@colorado.edu>
3810
3816
3811 * setup.py: added support for manpages. It's a bit hackish b/c of
3817 * setup.py: added support for manpages. It's a bit hackish b/c of
3812 a bug in the way the bdist_rpm distutils target handles gzipped
3818 a bug in the way the bdist_rpm distutils target handles gzipped
3813 manpages, but it works. After a patch by Jack.
3819 manpages, but it works. After a patch by Jack.
3814
3820
3815 2003-05-19 Fernando Perez <fperez@colorado.edu>
3821 2003-05-19 Fernando Perez <fperez@colorado.edu>
3816
3822
3817 * IPython/numutils.py: added a mockup of the kinds module, since
3823 * IPython/numutils.py: added a mockup of the kinds module, since
3818 it was recently removed from Numeric. This way, numutils will
3824 it was recently removed from Numeric. This way, numutils will
3819 work for all users even if they are missing kinds.
3825 work for all users even if they are missing kinds.
3820
3826
3821 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3827 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3822 failure, which can occur with SWIG-wrapped extensions. After a
3828 failure, which can occur with SWIG-wrapped extensions. After a
3823 crash report from Prabhu.
3829 crash report from Prabhu.
3824
3830
3825 2003-05-16 Fernando Perez <fperez@colorado.edu>
3831 2003-05-16 Fernando Perez <fperez@colorado.edu>
3826
3832
3827 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3833 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3828 protect ipython from user code which may call directly
3834 protect ipython from user code which may call directly
3829 sys.excepthook (this looks like an ipython crash to the user, even
3835 sys.excepthook (this looks like an ipython crash to the user, even
3830 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3836 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3831 This is especially important to help users of WxWindows, but may
3837 This is especially important to help users of WxWindows, but may
3832 also be useful in other cases.
3838 also be useful in other cases.
3833
3839
3834 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3840 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3835 an optional tb_offset to be specified, and to preserve exception
3841 an optional tb_offset to be specified, and to preserve exception
3836 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3842 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3837
3843
3838 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3844 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3839
3845
3840 2003-05-15 Fernando Perez <fperez@colorado.edu>
3846 2003-05-15 Fernando Perez <fperez@colorado.edu>
3841
3847
3842 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3848 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3843 installing for a new user under Windows.
3849 installing for a new user under Windows.
3844
3850
3845 2003-05-12 Fernando Perez <fperez@colorado.edu>
3851 2003-05-12 Fernando Perez <fperez@colorado.edu>
3846
3852
3847 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3853 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3848 handler for Emacs comint-based lines. Currently it doesn't do
3854 handler for Emacs comint-based lines. Currently it doesn't do
3849 much (but importantly, it doesn't update the history cache). In
3855 much (but importantly, it doesn't update the history cache). In
3850 the future it may be expanded if Alex needs more functionality
3856 the future it may be expanded if Alex needs more functionality
3851 there.
3857 there.
3852
3858
3853 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3859 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3854 info to crash reports.
3860 info to crash reports.
3855
3861
3856 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3862 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3857 just like Python's -c. Also fixed crash with invalid -color
3863 just like Python's -c. Also fixed crash with invalid -color
3858 option value at startup. Thanks to Will French
3864 option value at startup. Thanks to Will French
3859 <wfrench-AT-bestweb.net> for the bug report.
3865 <wfrench-AT-bestweb.net> for the bug report.
3860
3866
3861 2003-05-09 Fernando Perez <fperez@colorado.edu>
3867 2003-05-09 Fernando Perez <fperez@colorado.edu>
3862
3868
3863 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3869 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3864 to EvalDict (it's a mapping, after all) and simplified its code
3870 to EvalDict (it's a mapping, after all) and simplified its code
3865 quite a bit, after a nice discussion on c.l.py where Gustavo
3871 quite a bit, after a nice discussion on c.l.py where Gustavo
3866 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3872 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3867
3873
3868 2003-04-30 Fernando Perez <fperez@colorado.edu>
3874 2003-04-30 Fernando Perez <fperez@colorado.edu>
3869
3875
3870 * IPython/genutils.py (timings_out): modified it to reduce its
3876 * IPython/genutils.py (timings_out): modified it to reduce its
3871 overhead in the common reps==1 case.
3877 overhead in the common reps==1 case.
3872
3878
3873 2003-04-29 Fernando Perez <fperez@colorado.edu>
3879 2003-04-29 Fernando Perez <fperez@colorado.edu>
3874
3880
3875 * IPython/genutils.py (timings_out): Modified to use the resource
3881 * IPython/genutils.py (timings_out): Modified to use the resource
3876 module, which avoids the wraparound problems of time.clock().
3882 module, which avoids the wraparound problems of time.clock().
3877
3883
3878 2003-04-17 *** Released version 0.2.15pre4
3884 2003-04-17 *** Released version 0.2.15pre4
3879
3885
3880 2003-04-17 Fernando Perez <fperez@colorado.edu>
3886 2003-04-17 Fernando Perez <fperez@colorado.edu>
3881
3887
3882 * setup.py (scriptfiles): Split windows-specific stuff over to a
3888 * setup.py (scriptfiles): Split windows-specific stuff over to a
3883 separate file, in an attempt to have a Windows GUI installer.
3889 separate file, in an attempt to have a Windows GUI installer.
3884 That didn't work, but part of the groundwork is done.
3890 That didn't work, but part of the groundwork is done.
3885
3891
3886 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3892 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3887 indent/unindent with 4 spaces. Particularly useful in combination
3893 indent/unindent with 4 spaces. Particularly useful in combination
3888 with the new auto-indent option.
3894 with the new auto-indent option.
3889
3895
3890 2003-04-16 Fernando Perez <fperez@colorado.edu>
3896 2003-04-16 Fernando Perez <fperez@colorado.edu>
3891
3897
3892 * IPython/Magic.py: various replacements of self.rc for
3898 * IPython/Magic.py: various replacements of self.rc for
3893 self.shell.rc. A lot more remains to be done to fully disentangle
3899 self.shell.rc. A lot more remains to be done to fully disentangle
3894 this class from the main Shell class.
3900 this class from the main Shell class.
3895
3901
3896 * IPython/GnuplotRuntime.py: added checks for mouse support so
3902 * IPython/GnuplotRuntime.py: added checks for mouse support so
3897 that we don't try to enable it if the current gnuplot doesn't
3903 that we don't try to enable it if the current gnuplot doesn't
3898 really support it. Also added checks so that we don't try to
3904 really support it. Also added checks so that we don't try to
3899 enable persist under Windows (where Gnuplot doesn't recognize the
3905 enable persist under Windows (where Gnuplot doesn't recognize the
3900 option).
3906 option).
3901
3907
3902 * IPython/iplib.py (InteractiveShell.interact): Added optional
3908 * IPython/iplib.py (InteractiveShell.interact): Added optional
3903 auto-indenting code, after a patch by King C. Shu
3909 auto-indenting code, after a patch by King C. Shu
3904 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3910 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3905 get along well with pasting indented code. If I ever figure out
3911 get along well with pasting indented code. If I ever figure out
3906 how to make that part go well, it will become on by default.
3912 how to make that part go well, it will become on by default.
3907
3913
3908 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3914 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3909 crash ipython if there was an unmatched '%' in the user's prompt
3915 crash ipython if there was an unmatched '%' in the user's prompt
3910 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3916 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3911
3917
3912 * IPython/iplib.py (InteractiveShell.interact): removed the
3918 * IPython/iplib.py (InteractiveShell.interact): removed the
3913 ability to ask the user whether he wants to crash or not at the
3919 ability to ask the user whether he wants to crash or not at the
3914 'last line' exception handler. Calling functions at that point
3920 'last line' exception handler. Calling functions at that point
3915 changes the stack, and the error reports would have incorrect
3921 changes the stack, and the error reports would have incorrect
3916 tracebacks.
3922 tracebacks.
3917
3923
3918 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3924 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3919 pass through a peger a pretty-printed form of any object. After a
3925 pass through a peger a pretty-printed form of any object. After a
3920 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3926 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3921
3927
3922 2003-04-14 Fernando Perez <fperez@colorado.edu>
3928 2003-04-14 Fernando Perez <fperez@colorado.edu>
3923
3929
3924 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3930 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3925 all files in ~ would be modified at first install (instead of
3931 all files in ~ would be modified at first install (instead of
3926 ~/.ipython). This could be potentially disastrous, as the
3932 ~/.ipython). This could be potentially disastrous, as the
3927 modification (make line-endings native) could damage binary files.
3933 modification (make line-endings native) could damage binary files.
3928
3934
3929 2003-04-10 Fernando Perez <fperez@colorado.edu>
3935 2003-04-10 Fernando Perez <fperez@colorado.edu>
3930
3936
3931 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3937 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3932 handle only lines which are invalid python. This now means that
3938 handle only lines which are invalid python. This now means that
3933 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3939 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3934 for the bug report.
3940 for the bug report.
3935
3941
3936 2003-04-01 Fernando Perez <fperez@colorado.edu>
3942 2003-04-01 Fernando Perez <fperez@colorado.edu>
3937
3943
3938 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3944 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3939 where failing to set sys.last_traceback would crash pdb.pm().
3945 where failing to set sys.last_traceback would crash pdb.pm().
3940 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3946 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3941 report.
3947 report.
3942
3948
3943 2003-03-25 Fernando Perez <fperez@colorado.edu>
3949 2003-03-25 Fernando Perez <fperez@colorado.edu>
3944
3950
3945 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3951 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3946 before printing it (it had a lot of spurious blank lines at the
3952 before printing it (it had a lot of spurious blank lines at the
3947 end).
3953 end).
3948
3954
3949 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3955 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3950 output would be sent 21 times! Obviously people don't use this
3956 output would be sent 21 times! Obviously people don't use this
3951 too often, or I would have heard about it.
3957 too often, or I would have heard about it.
3952
3958
3953 2003-03-24 Fernando Perez <fperez@colorado.edu>
3959 2003-03-24 Fernando Perez <fperez@colorado.edu>
3954
3960
3955 * setup.py (scriptfiles): renamed the data_files parameter from
3961 * setup.py (scriptfiles): renamed the data_files parameter from
3956 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3962 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3957 for the patch.
3963 for the patch.
3958
3964
3959 2003-03-20 Fernando Perez <fperez@colorado.edu>
3965 2003-03-20 Fernando Perez <fperez@colorado.edu>
3960
3966
3961 * IPython/genutils.py (error): added error() and fatal()
3967 * IPython/genutils.py (error): added error() and fatal()
3962 functions.
3968 functions.
3963
3969
3964 2003-03-18 *** Released version 0.2.15pre3
3970 2003-03-18 *** Released version 0.2.15pre3
3965
3971
3966 2003-03-18 Fernando Perez <fperez@colorado.edu>
3972 2003-03-18 Fernando Perez <fperez@colorado.edu>
3967
3973
3968 * setupext/install_data_ext.py
3974 * setupext/install_data_ext.py
3969 (install_data_ext.initialize_options): Class contributed by Jack
3975 (install_data_ext.initialize_options): Class contributed by Jack
3970 Moffit for fixing the old distutils hack. He is sending this to
3976 Moffit for fixing the old distutils hack. He is sending this to
3971 the distutils folks so in the future we may not need it as a
3977 the distutils folks so in the future we may not need it as a
3972 private fix.
3978 private fix.
3973
3979
3974 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3980 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3975 changes for Debian packaging. See his patch for full details.
3981 changes for Debian packaging. See his patch for full details.
3976 The old distutils hack of making the ipythonrc* files carry a
3982 The old distutils hack of making the ipythonrc* files carry a
3977 bogus .py extension is gone, at last. Examples were moved to a
3983 bogus .py extension is gone, at last. Examples were moved to a
3978 separate subdir under doc/, and the separate executable scripts
3984 separate subdir under doc/, and the separate executable scripts
3979 now live in their own directory. Overall a great cleanup. The
3985 now live in their own directory. Overall a great cleanup. The
3980 manual was updated to use the new files, and setup.py has been
3986 manual was updated to use the new files, and setup.py has been
3981 fixed for this setup.
3987 fixed for this setup.
3982
3988
3983 * IPython/PyColorize.py (Parser.usage): made non-executable and
3989 * IPython/PyColorize.py (Parser.usage): made non-executable and
3984 created a pycolor wrapper around it to be included as a script.
3990 created a pycolor wrapper around it to be included as a script.
3985
3991
3986 2003-03-12 *** Released version 0.2.15pre2
3992 2003-03-12 *** Released version 0.2.15pre2
3987
3993
3988 2003-03-12 Fernando Perez <fperez@colorado.edu>
3994 2003-03-12 Fernando Perez <fperez@colorado.edu>
3989
3995
3990 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3996 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3991 long-standing problem with garbage characters in some terminals.
3997 long-standing problem with garbage characters in some terminals.
3992 The issue was really that the \001 and \002 escapes must _only_ be
3998 The issue was really that the \001 and \002 escapes must _only_ be
3993 passed to input prompts (which call readline), but _never_ to
3999 passed to input prompts (which call readline), but _never_ to
3994 normal text to be printed on screen. I changed ColorANSI to have
4000 normal text to be printed on screen. I changed ColorANSI to have
3995 two classes: TermColors and InputTermColors, each with the
4001 two classes: TermColors and InputTermColors, each with the
3996 appropriate escapes for input prompts or normal text. The code in
4002 appropriate escapes for input prompts or normal text. The code in
3997 Prompts.py got slightly more complicated, but this very old and
4003 Prompts.py got slightly more complicated, but this very old and
3998 annoying bug is finally fixed.
4004 annoying bug is finally fixed.
3999
4005
4000 All the credit for nailing down the real origin of this problem
4006 All the credit for nailing down the real origin of this problem
4001 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4007 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4002 *Many* thanks to him for spending quite a bit of effort on this.
4008 *Many* thanks to him for spending quite a bit of effort on this.
4003
4009
4004 2003-03-05 *** Released version 0.2.15pre1
4010 2003-03-05 *** Released version 0.2.15pre1
4005
4011
4006 2003-03-03 Fernando Perez <fperez@colorado.edu>
4012 2003-03-03 Fernando Perez <fperez@colorado.edu>
4007
4013
4008 * IPython/FakeModule.py: Moved the former _FakeModule to a
4014 * IPython/FakeModule.py: Moved the former _FakeModule to a
4009 separate file, because it's also needed by Magic (to fix a similar
4015 separate file, because it's also needed by Magic (to fix a similar
4010 pickle-related issue in @run).
4016 pickle-related issue in @run).
4011
4017
4012 2003-03-02 Fernando Perez <fperez@colorado.edu>
4018 2003-03-02 Fernando Perez <fperez@colorado.edu>
4013
4019
4014 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4020 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4015 the autocall option at runtime.
4021 the autocall option at runtime.
4016 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4022 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4017 across Magic.py to start separating Magic from InteractiveShell.
4023 across Magic.py to start separating Magic from InteractiveShell.
4018 (Magic._ofind): Fixed to return proper namespace for dotted
4024 (Magic._ofind): Fixed to return proper namespace for dotted
4019 names. Before, a dotted name would always return 'not currently
4025 names. Before, a dotted name would always return 'not currently
4020 defined', because it would find the 'parent'. s.x would be found,
4026 defined', because it would find the 'parent'. s.x would be found,
4021 but since 'x' isn't defined by itself, it would get confused.
4027 but since 'x' isn't defined by itself, it would get confused.
4022 (Magic.magic_run): Fixed pickling problems reported by Ralf
4028 (Magic.magic_run): Fixed pickling problems reported by Ralf
4023 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4029 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4024 that I'd used when Mike Heeter reported similar issues at the
4030 that I'd used when Mike Heeter reported similar issues at the
4025 top-level, but now for @run. It boils down to injecting the
4031 top-level, but now for @run. It boils down to injecting the
4026 namespace where code is being executed with something that looks
4032 namespace where code is being executed with something that looks
4027 enough like a module to fool pickle.dump(). Since a pickle stores
4033 enough like a module to fool pickle.dump(). Since a pickle stores
4028 a named reference to the importing module, we need this for
4034 a named reference to the importing module, we need this for
4029 pickles to save something sensible.
4035 pickles to save something sensible.
4030
4036
4031 * IPython/ipmaker.py (make_IPython): added an autocall option.
4037 * IPython/ipmaker.py (make_IPython): added an autocall option.
4032
4038
4033 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4039 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4034 the auto-eval code. Now autocalling is an option, and the code is
4040 the auto-eval code. Now autocalling is an option, and the code is
4035 also vastly safer. There is no more eval() involved at all.
4041 also vastly safer. There is no more eval() involved at all.
4036
4042
4037 2003-03-01 Fernando Perez <fperez@colorado.edu>
4043 2003-03-01 Fernando Perez <fperez@colorado.edu>
4038
4044
4039 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4045 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4040 dict with named keys instead of a tuple.
4046 dict with named keys instead of a tuple.
4041
4047
4042 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4048 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4043
4049
4044 * setup.py (make_shortcut): Fixed message about directories
4050 * setup.py (make_shortcut): Fixed message about directories
4045 created during Windows installation (the directories were ok, just
4051 created during Windows installation (the directories were ok, just
4046 the printed message was misleading). Thanks to Chris Liechti
4052 the printed message was misleading). Thanks to Chris Liechti
4047 <cliechti-AT-gmx.net> for the heads up.
4053 <cliechti-AT-gmx.net> for the heads up.
4048
4054
4049 2003-02-21 Fernando Perez <fperez@colorado.edu>
4055 2003-02-21 Fernando Perez <fperez@colorado.edu>
4050
4056
4051 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4057 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4052 of ValueError exception when checking for auto-execution. This
4058 of ValueError exception when checking for auto-execution. This
4053 one is raised by things like Numeric arrays arr.flat when the
4059 one is raised by things like Numeric arrays arr.flat when the
4054 array is non-contiguous.
4060 array is non-contiguous.
4055
4061
4056 2003-01-31 Fernando Perez <fperez@colorado.edu>
4062 2003-01-31 Fernando Perez <fperez@colorado.edu>
4057
4063
4058 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4064 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4059 not return any value at all (even though the command would get
4065 not return any value at all (even though the command would get
4060 executed).
4066 executed).
4061 (xsys): Flush stdout right after printing the command to ensure
4067 (xsys): Flush stdout right after printing the command to ensure
4062 proper ordering of commands and command output in the total
4068 proper ordering of commands and command output in the total
4063 output.
4069 output.
4064 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4070 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4065 system/getoutput as defaults. The old ones are kept for
4071 system/getoutput as defaults. The old ones are kept for
4066 compatibility reasons, so no code which uses this library needs
4072 compatibility reasons, so no code which uses this library needs
4067 changing.
4073 changing.
4068
4074
4069 2003-01-27 *** Released version 0.2.14
4075 2003-01-27 *** Released version 0.2.14
4070
4076
4071 2003-01-25 Fernando Perez <fperez@colorado.edu>
4077 2003-01-25 Fernando Perez <fperez@colorado.edu>
4072
4078
4073 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4079 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4074 functions defined in previous edit sessions could not be re-edited
4080 functions defined in previous edit sessions could not be re-edited
4075 (because the temp files were immediately removed). Now temp files
4081 (because the temp files were immediately removed). Now temp files
4076 are removed only at IPython's exit.
4082 are removed only at IPython's exit.
4077 (Magic.magic_run): Improved @run to perform shell-like expansions
4083 (Magic.magic_run): Improved @run to perform shell-like expansions
4078 on its arguments (~users and $VARS). With this, @run becomes more
4084 on its arguments (~users and $VARS). With this, @run becomes more
4079 like a normal command-line.
4085 like a normal command-line.
4080
4086
4081 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4087 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4082 bugs related to embedding and cleaned up that code. A fairly
4088 bugs related to embedding and cleaned up that code. A fairly
4083 important one was the impossibility to access the global namespace
4089 important one was the impossibility to access the global namespace
4084 through the embedded IPython (only local variables were visible).
4090 through the embedded IPython (only local variables were visible).
4085
4091
4086 2003-01-14 Fernando Perez <fperez@colorado.edu>
4092 2003-01-14 Fernando Perez <fperez@colorado.edu>
4087
4093
4088 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4094 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4089 auto-calling to be a bit more conservative. Now it doesn't get
4095 auto-calling to be a bit more conservative. Now it doesn't get
4090 triggered if any of '!=()<>' are in the rest of the input line, to
4096 triggered if any of '!=()<>' are in the rest of the input line, to
4091 allow comparing callables. Thanks to Alex for the heads up.
4097 allow comparing callables. Thanks to Alex for the heads up.
4092
4098
4093 2003-01-07 Fernando Perez <fperez@colorado.edu>
4099 2003-01-07 Fernando Perez <fperez@colorado.edu>
4094
4100
4095 * IPython/genutils.py (page): fixed estimation of the number of
4101 * IPython/genutils.py (page): fixed estimation of the number of
4096 lines in a string to be paged to simply count newlines. This
4102 lines in a string to be paged to simply count newlines. This
4097 prevents over-guessing due to embedded escape sequences. A better
4103 prevents over-guessing due to embedded escape sequences. A better
4098 long-term solution would involve stripping out the control chars
4104 long-term solution would involve stripping out the control chars
4099 for the count, but it's potentially so expensive I just don't
4105 for the count, but it's potentially so expensive I just don't
4100 think it's worth doing.
4106 think it's worth doing.
4101
4107
4102 2002-12-19 *** Released version 0.2.14pre50
4108 2002-12-19 *** Released version 0.2.14pre50
4103
4109
4104 2002-12-19 Fernando Perez <fperez@colorado.edu>
4110 2002-12-19 Fernando Perez <fperez@colorado.edu>
4105
4111
4106 * tools/release (version): Changed release scripts to inform
4112 * tools/release (version): Changed release scripts to inform
4107 Andrea and build a NEWS file with a list of recent changes.
4113 Andrea and build a NEWS file with a list of recent changes.
4108
4114
4109 * IPython/ColorANSI.py (__all__): changed terminal detection
4115 * IPython/ColorANSI.py (__all__): changed terminal detection
4110 code. Seems to work better for xterms without breaking
4116 code. Seems to work better for xterms without breaking
4111 konsole. Will need more testing to determine if WinXP and Mac OSX
4117 konsole. Will need more testing to determine if WinXP and Mac OSX
4112 also work ok.
4118 also work ok.
4113
4119
4114 2002-12-18 *** Released version 0.2.14pre49
4120 2002-12-18 *** Released version 0.2.14pre49
4115
4121
4116 2002-12-18 Fernando Perez <fperez@colorado.edu>
4122 2002-12-18 Fernando Perez <fperez@colorado.edu>
4117
4123
4118 * Docs: added new info about Mac OSX, from Andrea.
4124 * Docs: added new info about Mac OSX, from Andrea.
4119
4125
4120 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4126 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4121 allow direct plotting of python strings whose format is the same
4127 allow direct plotting of python strings whose format is the same
4122 of gnuplot data files.
4128 of gnuplot data files.
4123
4129
4124 2002-12-16 Fernando Perez <fperez@colorado.edu>
4130 2002-12-16 Fernando Perez <fperez@colorado.edu>
4125
4131
4126 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4132 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4127 value of exit question to be acknowledged.
4133 value of exit question to be acknowledged.
4128
4134
4129 2002-12-03 Fernando Perez <fperez@colorado.edu>
4135 2002-12-03 Fernando Perez <fperez@colorado.edu>
4130
4136
4131 * IPython/ipmaker.py: removed generators, which had been added
4137 * IPython/ipmaker.py: removed generators, which had been added
4132 by mistake in an earlier debugging run. This was causing trouble
4138 by mistake in an earlier debugging run. This was causing trouble
4133 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4139 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4134 for pointing this out.
4140 for pointing this out.
4135
4141
4136 2002-11-17 Fernando Perez <fperez@colorado.edu>
4142 2002-11-17 Fernando Perez <fperez@colorado.edu>
4137
4143
4138 * Manual: updated the Gnuplot section.
4144 * Manual: updated the Gnuplot section.
4139
4145
4140 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4146 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4141 a much better split of what goes in Runtime and what goes in
4147 a much better split of what goes in Runtime and what goes in
4142 Interactive.
4148 Interactive.
4143
4149
4144 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4150 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4145 being imported from iplib.
4151 being imported from iplib.
4146
4152
4147 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4153 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4148 for command-passing. Now the global Gnuplot instance is called
4154 for command-passing. Now the global Gnuplot instance is called
4149 'gp' instead of 'g', which was really a far too fragile and
4155 'gp' instead of 'g', which was really a far too fragile and
4150 common name.
4156 common name.
4151
4157
4152 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4158 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4153 bounding boxes generated by Gnuplot for square plots.
4159 bounding boxes generated by Gnuplot for square plots.
4154
4160
4155 * IPython/genutils.py (popkey): new function added. I should
4161 * IPython/genutils.py (popkey): new function added. I should
4156 suggest this on c.l.py as a dict method, it seems useful.
4162 suggest this on c.l.py as a dict method, it seems useful.
4157
4163
4158 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4164 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4159 to transparently handle PostScript generation. MUCH better than
4165 to transparently handle PostScript generation. MUCH better than
4160 the previous plot_eps/replot_eps (which I removed now). The code
4166 the previous plot_eps/replot_eps (which I removed now). The code
4161 is also fairly clean and well documented now (including
4167 is also fairly clean and well documented now (including
4162 docstrings).
4168 docstrings).
4163
4169
4164 2002-11-13 Fernando Perez <fperez@colorado.edu>
4170 2002-11-13 Fernando Perez <fperez@colorado.edu>
4165
4171
4166 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4172 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4167 (inconsistent with options).
4173 (inconsistent with options).
4168
4174
4169 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4175 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4170 manually disabled, I don't know why. Fixed it.
4176 manually disabled, I don't know why. Fixed it.
4171 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4177 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4172 eps output.
4178 eps output.
4173
4179
4174 2002-11-12 Fernando Perez <fperez@colorado.edu>
4180 2002-11-12 Fernando Perez <fperez@colorado.edu>
4175
4181
4176 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4182 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4177 don't propagate up to caller. Fixes crash reported by François
4183 don't propagate up to caller. Fixes crash reported by François
4178 Pinard.
4184 Pinard.
4179
4185
4180 2002-11-09 Fernando Perez <fperez@colorado.edu>
4186 2002-11-09 Fernando Perez <fperez@colorado.edu>
4181
4187
4182 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4188 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4183 history file for new users.
4189 history file for new users.
4184 (make_IPython): fixed bug where initial install would leave the
4190 (make_IPython): fixed bug where initial install would leave the
4185 user running in the .ipython dir.
4191 user running in the .ipython dir.
4186 (make_IPython): fixed bug where config dir .ipython would be
4192 (make_IPython): fixed bug where config dir .ipython would be
4187 created regardless of the given -ipythondir option. Thanks to Cory
4193 created regardless of the given -ipythondir option. Thanks to Cory
4188 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4194 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4189
4195
4190 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4196 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4191 type confirmations. Will need to use it in all of IPython's code
4197 type confirmations. Will need to use it in all of IPython's code
4192 consistently.
4198 consistently.
4193
4199
4194 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4200 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4195 context to print 31 lines instead of the default 5. This will make
4201 context to print 31 lines instead of the default 5. This will make
4196 the crash reports extremely detailed in case the problem is in
4202 the crash reports extremely detailed in case the problem is in
4197 libraries I don't have access to.
4203 libraries I don't have access to.
4198
4204
4199 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4205 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4200 line of defense' code to still crash, but giving users fair
4206 line of defense' code to still crash, but giving users fair
4201 warning. I don't want internal errors to go unreported: if there's
4207 warning. I don't want internal errors to go unreported: if there's
4202 an internal problem, IPython should crash and generate a full
4208 an internal problem, IPython should crash and generate a full
4203 report.
4209 report.
4204
4210
4205 2002-11-08 Fernando Perez <fperez@colorado.edu>
4211 2002-11-08 Fernando Perez <fperez@colorado.edu>
4206
4212
4207 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4213 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4208 otherwise uncaught exceptions which can appear if people set
4214 otherwise uncaught exceptions which can appear if people set
4209 sys.stdout to something badly broken. Thanks to a crash report
4215 sys.stdout to something badly broken. Thanks to a crash report
4210 from henni-AT-mail.brainbot.com.
4216 from henni-AT-mail.brainbot.com.
4211
4217
4212 2002-11-04 Fernando Perez <fperez@colorado.edu>
4218 2002-11-04 Fernando Perez <fperez@colorado.edu>
4213
4219
4214 * IPython/iplib.py (InteractiveShell.interact): added
4220 * IPython/iplib.py (InteractiveShell.interact): added
4215 __IPYTHON__active to the builtins. It's a flag which goes on when
4221 __IPYTHON__active to the builtins. It's a flag which goes on when
4216 the interaction starts and goes off again when it stops. This
4222 the interaction starts and goes off again when it stops. This
4217 allows embedding code to detect being inside IPython. Before this
4223 allows embedding code to detect being inside IPython. Before this
4218 was done via __IPYTHON__, but that only shows that an IPython
4224 was done via __IPYTHON__, but that only shows that an IPython
4219 instance has been created.
4225 instance has been created.
4220
4226
4221 * IPython/Magic.py (Magic.magic_env): I realized that in a
4227 * IPython/Magic.py (Magic.magic_env): I realized that in a
4222 UserDict, instance.data holds the data as a normal dict. So I
4228 UserDict, instance.data holds the data as a normal dict. So I
4223 modified @env to return os.environ.data instead of rebuilding a
4229 modified @env to return os.environ.data instead of rebuilding a
4224 dict by hand.
4230 dict by hand.
4225
4231
4226 2002-11-02 Fernando Perez <fperez@colorado.edu>
4232 2002-11-02 Fernando Perez <fperez@colorado.edu>
4227
4233
4228 * IPython/genutils.py (warn): changed so that level 1 prints no
4234 * IPython/genutils.py (warn): changed so that level 1 prints no
4229 header. Level 2 is now the default (with 'WARNING' header, as
4235 header. Level 2 is now the default (with 'WARNING' header, as
4230 before). I think I tracked all places where changes were needed in
4236 before). I think I tracked all places where changes were needed in
4231 IPython, but outside code using the old level numbering may have
4237 IPython, but outside code using the old level numbering may have
4232 broken.
4238 broken.
4233
4239
4234 * IPython/iplib.py (InteractiveShell.runcode): added this to
4240 * IPython/iplib.py (InteractiveShell.runcode): added this to
4235 handle the tracebacks in SystemExit traps correctly. The previous
4241 handle the tracebacks in SystemExit traps correctly. The previous
4236 code (through interact) was printing more of the stack than
4242 code (through interact) was printing more of the stack than
4237 necessary, showing IPython internal code to the user.
4243 necessary, showing IPython internal code to the user.
4238
4244
4239 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4245 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4240 default. Now that the default at the confirmation prompt is yes,
4246 default. Now that the default at the confirmation prompt is yes,
4241 it's not so intrusive. François' argument that ipython sessions
4247 it's not so intrusive. François' argument that ipython sessions
4242 tend to be complex enough not to lose them from an accidental C-d,
4248 tend to be complex enough not to lose them from an accidental C-d,
4243 is a valid one.
4249 is a valid one.
4244
4250
4245 * IPython/iplib.py (InteractiveShell.interact): added a
4251 * IPython/iplib.py (InteractiveShell.interact): added a
4246 showtraceback() call to the SystemExit trap, and modified the exit
4252 showtraceback() call to the SystemExit trap, and modified the exit
4247 confirmation to have yes as the default.
4253 confirmation to have yes as the default.
4248
4254
4249 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4255 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4250 this file. It's been gone from the code for a long time, this was
4256 this file. It's been gone from the code for a long time, this was
4251 simply leftover junk.
4257 simply leftover junk.
4252
4258
4253 2002-11-01 Fernando Perez <fperez@colorado.edu>
4259 2002-11-01 Fernando Perez <fperez@colorado.edu>
4254
4260
4255 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4261 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4256 added. If set, IPython now traps EOF and asks for
4262 added. If set, IPython now traps EOF and asks for
4257 confirmation. After a request by François Pinard.
4263 confirmation. After a request by François Pinard.
4258
4264
4259 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4265 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4260 of @abort, and with a new (better) mechanism for handling the
4266 of @abort, and with a new (better) mechanism for handling the
4261 exceptions.
4267 exceptions.
4262
4268
4263 2002-10-27 Fernando Perez <fperez@colorado.edu>
4269 2002-10-27 Fernando Perez <fperez@colorado.edu>
4264
4270
4265 * IPython/usage.py (__doc__): updated the --help information and
4271 * IPython/usage.py (__doc__): updated the --help information and
4266 the ipythonrc file to indicate that -log generates
4272 the ipythonrc file to indicate that -log generates
4267 ./ipython.log. Also fixed the corresponding info in @logstart.
4273 ./ipython.log. Also fixed the corresponding info in @logstart.
4268 This and several other fixes in the manuals thanks to reports by
4274 This and several other fixes in the manuals thanks to reports by
4269 François Pinard <pinard-AT-iro.umontreal.ca>.
4275 François Pinard <pinard-AT-iro.umontreal.ca>.
4270
4276
4271 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4277 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4272 refer to @logstart (instead of @log, which doesn't exist).
4278 refer to @logstart (instead of @log, which doesn't exist).
4273
4279
4274 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4280 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4275 AttributeError crash. Thanks to Christopher Armstrong
4281 AttributeError crash. Thanks to Christopher Armstrong
4276 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4282 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4277 introduced recently (in 0.2.14pre37) with the fix to the eval
4283 introduced recently (in 0.2.14pre37) with the fix to the eval
4278 problem mentioned below.
4284 problem mentioned below.
4279
4285
4280 2002-10-17 Fernando Perez <fperez@colorado.edu>
4286 2002-10-17 Fernando Perez <fperez@colorado.edu>
4281
4287
4282 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4288 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4283 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4289 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4284
4290
4285 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4291 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4286 this function to fix a problem reported by Alex Schmolck. He saw
4292 this function to fix a problem reported by Alex Schmolck. He saw
4287 it with list comprehensions and generators, which were getting
4293 it with list comprehensions and generators, which were getting
4288 called twice. The real problem was an 'eval' call in testing for
4294 called twice. The real problem was an 'eval' call in testing for
4289 automagic which was evaluating the input line silently.
4295 automagic which was evaluating the input line silently.
4290
4296
4291 This is a potentially very nasty bug, if the input has side
4297 This is a potentially very nasty bug, if the input has side
4292 effects which must not be repeated. The code is much cleaner now,
4298 effects which must not be repeated. The code is much cleaner now,
4293 without any blanket 'except' left and with a regexp test for
4299 without any blanket 'except' left and with a regexp test for
4294 actual function names.
4300 actual function names.
4295
4301
4296 But an eval remains, which I'm not fully comfortable with. I just
4302 But an eval remains, which I'm not fully comfortable with. I just
4297 don't know how to find out if an expression could be a callable in
4303 don't know how to find out if an expression could be a callable in
4298 the user's namespace without doing an eval on the string. However
4304 the user's namespace without doing an eval on the string. However
4299 that string is now much more strictly checked so that no code
4305 that string is now much more strictly checked so that no code
4300 slips by, so the eval should only happen for things that can
4306 slips by, so the eval should only happen for things that can
4301 really be only function/method names.
4307 really be only function/method names.
4302
4308
4303 2002-10-15 Fernando Perez <fperez@colorado.edu>
4309 2002-10-15 Fernando Perez <fperez@colorado.edu>
4304
4310
4305 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4311 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4306 OSX information to main manual, removed README_Mac_OSX file from
4312 OSX information to main manual, removed README_Mac_OSX file from
4307 distribution. Also updated credits for recent additions.
4313 distribution. Also updated credits for recent additions.
4308
4314
4309 2002-10-10 Fernando Perez <fperez@colorado.edu>
4315 2002-10-10 Fernando Perez <fperez@colorado.edu>
4310
4316
4311 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4317 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4312 terminal-related issues. Many thanks to Andrea Riciputi
4318 terminal-related issues. Many thanks to Andrea Riciputi
4313 <andrea.riciputi-AT-libero.it> for writing it.
4319 <andrea.riciputi-AT-libero.it> for writing it.
4314
4320
4315 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4321 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4316 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4322 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4317
4323
4318 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4324 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4319 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4325 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4320 <syver-en-AT-online.no> who both submitted patches for this problem.
4326 <syver-en-AT-online.no> who both submitted patches for this problem.
4321
4327
4322 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4328 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4323 global embedding to make sure that things don't overwrite user
4329 global embedding to make sure that things don't overwrite user
4324 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4330 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4325
4331
4326 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4332 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4327 compatibility. Thanks to Hayden Callow
4333 compatibility. Thanks to Hayden Callow
4328 <h.callow-AT-elec.canterbury.ac.nz>
4334 <h.callow-AT-elec.canterbury.ac.nz>
4329
4335
4330 2002-10-04 Fernando Perez <fperez@colorado.edu>
4336 2002-10-04 Fernando Perez <fperez@colorado.edu>
4331
4337
4332 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4338 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4333 Gnuplot.File objects.
4339 Gnuplot.File objects.
4334
4340
4335 2002-07-23 Fernando Perez <fperez@colorado.edu>
4341 2002-07-23 Fernando Perez <fperez@colorado.edu>
4336
4342
4337 * IPython/genutils.py (timing): Added timings() and timing() for
4343 * IPython/genutils.py (timing): Added timings() and timing() for
4338 quick access to the most commonly needed data, the execution
4344 quick access to the most commonly needed data, the execution
4339 times. Old timing() renamed to timings_out().
4345 times. Old timing() renamed to timings_out().
4340
4346
4341 2002-07-18 Fernando Perez <fperez@colorado.edu>
4347 2002-07-18 Fernando Perez <fperez@colorado.edu>
4342
4348
4343 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4349 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4344 bug with nested instances disrupting the parent's tab completion.
4350 bug with nested instances disrupting the parent's tab completion.
4345
4351
4346 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4352 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4347 all_completions code to begin the emacs integration.
4353 all_completions code to begin the emacs integration.
4348
4354
4349 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4355 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4350 argument to allow titling individual arrays when plotting.
4356 argument to allow titling individual arrays when plotting.
4351
4357
4352 2002-07-15 Fernando Perez <fperez@colorado.edu>
4358 2002-07-15 Fernando Perez <fperez@colorado.edu>
4353
4359
4354 * setup.py (make_shortcut): changed to retrieve the value of
4360 * setup.py (make_shortcut): changed to retrieve the value of
4355 'Program Files' directory from the registry (this value changes in
4361 'Program Files' directory from the registry (this value changes in
4356 non-english versions of Windows). Thanks to Thomas Fanslau
4362 non-english versions of Windows). Thanks to Thomas Fanslau
4357 <tfanslau-AT-gmx.de> for the report.
4363 <tfanslau-AT-gmx.de> for the report.
4358
4364
4359 2002-07-10 Fernando Perez <fperez@colorado.edu>
4365 2002-07-10 Fernando Perez <fperez@colorado.edu>
4360
4366
4361 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4367 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4362 a bug in pdb, which crashes if a line with only whitespace is
4368 a bug in pdb, which crashes if a line with only whitespace is
4363 entered. Bug report submitted to sourceforge.
4369 entered. Bug report submitted to sourceforge.
4364
4370
4365 2002-07-09 Fernando Perez <fperez@colorado.edu>
4371 2002-07-09 Fernando Perez <fperez@colorado.edu>
4366
4372
4367 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4373 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4368 reporting exceptions (it's a bug in inspect.py, I just set a
4374 reporting exceptions (it's a bug in inspect.py, I just set a
4369 workaround).
4375 workaround).
4370
4376
4371 2002-07-08 Fernando Perez <fperez@colorado.edu>
4377 2002-07-08 Fernando Perez <fperez@colorado.edu>
4372
4378
4373 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4379 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4374 __IPYTHON__ in __builtins__ to show up in user_ns.
4380 __IPYTHON__ in __builtins__ to show up in user_ns.
4375
4381
4376 2002-07-03 Fernando Perez <fperez@colorado.edu>
4382 2002-07-03 Fernando Perez <fperez@colorado.edu>
4377
4383
4378 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4384 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4379 name from @gp_set_instance to @gp_set_default.
4385 name from @gp_set_instance to @gp_set_default.
4380
4386
4381 * IPython/ipmaker.py (make_IPython): default editor value set to
4387 * IPython/ipmaker.py (make_IPython): default editor value set to
4382 '0' (a string), to match the rc file. Otherwise will crash when
4388 '0' (a string), to match the rc file. Otherwise will crash when
4383 .strip() is called on it.
4389 .strip() is called on it.
4384
4390
4385
4391
4386 2002-06-28 Fernando Perez <fperez@colorado.edu>
4392 2002-06-28 Fernando Perez <fperez@colorado.edu>
4387
4393
4388 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4394 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4389 of files in current directory when a file is executed via
4395 of files in current directory when a file is executed via
4390 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4396 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4391
4397
4392 * setup.py (manfiles): fix for rpm builds, submitted by RA
4398 * setup.py (manfiles): fix for rpm builds, submitted by RA
4393 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4399 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4394
4400
4395 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4401 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4396 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4402 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4397 string!). A. Schmolck caught this one.
4403 string!). A. Schmolck caught this one.
4398
4404
4399 2002-06-27 Fernando Perez <fperez@colorado.edu>
4405 2002-06-27 Fernando Perez <fperez@colorado.edu>
4400
4406
4401 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4407 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4402 defined files at the cmd line. __name__ wasn't being set to
4408 defined files at the cmd line. __name__ wasn't being set to
4403 __main__.
4409 __main__.
4404
4410
4405 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4411 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4406 regular lists and tuples besides Numeric arrays.
4412 regular lists and tuples besides Numeric arrays.
4407
4413
4408 * IPython/Prompts.py (CachedOutput.__call__): Added output
4414 * IPython/Prompts.py (CachedOutput.__call__): Added output
4409 supression for input ending with ';'. Similar to Mathematica and
4415 supression for input ending with ';'. Similar to Mathematica and
4410 Matlab. The _* vars and Out[] list are still updated, just like
4416 Matlab. The _* vars and Out[] list are still updated, just like
4411 Mathematica behaves.
4417 Mathematica behaves.
4412
4418
4413 2002-06-25 Fernando Perez <fperez@colorado.edu>
4419 2002-06-25 Fernando Perez <fperez@colorado.edu>
4414
4420
4415 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4421 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4416 .ini extensions for profiels under Windows.
4422 .ini extensions for profiels under Windows.
4417
4423
4418 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4424 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4419 string form. Fix contributed by Alexander Schmolck
4425 string form. Fix contributed by Alexander Schmolck
4420 <a.schmolck-AT-gmx.net>
4426 <a.schmolck-AT-gmx.net>
4421
4427
4422 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4428 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4423 pre-configured Gnuplot instance.
4429 pre-configured Gnuplot instance.
4424
4430
4425 2002-06-21 Fernando Perez <fperez@colorado.edu>
4431 2002-06-21 Fernando Perez <fperez@colorado.edu>
4426
4432
4427 * IPython/numutils.py (exp_safe): new function, works around the
4433 * IPython/numutils.py (exp_safe): new function, works around the
4428 underflow problems in Numeric.
4434 underflow problems in Numeric.
4429 (log2): New fn. Safe log in base 2: returns exact integer answer
4435 (log2): New fn. Safe log in base 2: returns exact integer answer
4430 for exact integer powers of 2.
4436 for exact integer powers of 2.
4431
4437
4432 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4438 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4433 properly.
4439 properly.
4434
4440
4435 2002-06-20 Fernando Perez <fperez@colorado.edu>
4441 2002-06-20 Fernando Perez <fperez@colorado.edu>
4436
4442
4437 * IPython/genutils.py (timing): new function like
4443 * IPython/genutils.py (timing): new function like
4438 Mathematica's. Similar to time_test, but returns more info.
4444 Mathematica's. Similar to time_test, but returns more info.
4439
4445
4440 2002-06-18 Fernando Perez <fperez@colorado.edu>
4446 2002-06-18 Fernando Perez <fperez@colorado.edu>
4441
4447
4442 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4448 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4443 according to Mike Heeter's suggestions.
4449 according to Mike Heeter's suggestions.
4444
4450
4445 2002-06-16 Fernando Perez <fperez@colorado.edu>
4451 2002-06-16 Fernando Perez <fperez@colorado.edu>
4446
4452
4447 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4453 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4448 system. GnuplotMagic is gone as a user-directory option. New files
4454 system. GnuplotMagic is gone as a user-directory option. New files
4449 make it easier to use all the gnuplot stuff both from external
4455 make it easier to use all the gnuplot stuff both from external
4450 programs as well as from IPython. Had to rewrite part of
4456 programs as well as from IPython. Had to rewrite part of
4451 hardcopy() b/c of a strange bug: often the ps files simply don't
4457 hardcopy() b/c of a strange bug: often the ps files simply don't
4452 get created, and require a repeat of the command (often several
4458 get created, and require a repeat of the command (often several
4453 times).
4459 times).
4454
4460
4455 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4461 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4456 resolve output channel at call time, so that if sys.stderr has
4462 resolve output channel at call time, so that if sys.stderr has
4457 been redirected by user this gets honored.
4463 been redirected by user this gets honored.
4458
4464
4459 2002-06-13 Fernando Perez <fperez@colorado.edu>
4465 2002-06-13 Fernando Perez <fperez@colorado.edu>
4460
4466
4461 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4467 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4462 IPShell. Kept a copy with the old names to avoid breaking people's
4468 IPShell. Kept a copy with the old names to avoid breaking people's
4463 embedded code.
4469 embedded code.
4464
4470
4465 * IPython/ipython: simplified it to the bare minimum after
4471 * IPython/ipython: simplified it to the bare minimum after
4466 Holger's suggestions. Added info about how to use it in
4472 Holger's suggestions. Added info about how to use it in
4467 PYTHONSTARTUP.
4473 PYTHONSTARTUP.
4468
4474
4469 * IPython/Shell.py (IPythonShell): changed the options passing
4475 * IPython/Shell.py (IPythonShell): changed the options passing
4470 from a string with funky %s replacements to a straight list. Maybe
4476 from a string with funky %s replacements to a straight list. Maybe
4471 a bit more typing, but it follows sys.argv conventions, so there's
4477 a bit more typing, but it follows sys.argv conventions, so there's
4472 less special-casing to remember.
4478 less special-casing to remember.
4473
4479
4474 2002-06-12 Fernando Perez <fperez@colorado.edu>
4480 2002-06-12 Fernando Perez <fperez@colorado.edu>
4475
4481
4476 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4482 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4477 command. Thanks to a suggestion by Mike Heeter.
4483 command. Thanks to a suggestion by Mike Heeter.
4478 (Magic.magic_pfile): added behavior to look at filenames if given
4484 (Magic.magic_pfile): added behavior to look at filenames if given
4479 arg is not a defined object.
4485 arg is not a defined object.
4480 (Magic.magic_save): New @save function to save code snippets. Also
4486 (Magic.magic_save): New @save function to save code snippets. Also
4481 a Mike Heeter idea.
4487 a Mike Heeter idea.
4482
4488
4483 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4489 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4484 plot() and replot(). Much more convenient now, especially for
4490 plot() and replot(). Much more convenient now, especially for
4485 interactive use.
4491 interactive use.
4486
4492
4487 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4493 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4488 filenames.
4494 filenames.
4489
4495
4490 2002-06-02 Fernando Perez <fperez@colorado.edu>
4496 2002-06-02 Fernando Perez <fperez@colorado.edu>
4491
4497
4492 * IPython/Struct.py (Struct.__init__): modified to admit
4498 * IPython/Struct.py (Struct.__init__): modified to admit
4493 initialization via another struct.
4499 initialization via another struct.
4494
4500
4495 * IPython/genutils.py (SystemExec.__init__): New stateful
4501 * IPython/genutils.py (SystemExec.__init__): New stateful
4496 interface to xsys and bq. Useful for writing system scripts.
4502 interface to xsys and bq. Useful for writing system scripts.
4497
4503
4498 2002-05-30 Fernando Perez <fperez@colorado.edu>
4504 2002-05-30 Fernando Perez <fperez@colorado.edu>
4499
4505
4500 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4506 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4501 documents. This will make the user download smaller (it's getting
4507 documents. This will make the user download smaller (it's getting
4502 too big).
4508 too big).
4503
4509
4504 2002-05-29 Fernando Perez <fperez@colorado.edu>
4510 2002-05-29 Fernando Perez <fperez@colorado.edu>
4505
4511
4506 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4512 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4507 fix problems with shelve and pickle. Seems to work, but I don't
4513 fix problems with shelve and pickle. Seems to work, but I don't
4508 know if corner cases break it. Thanks to Mike Heeter
4514 know if corner cases break it. Thanks to Mike Heeter
4509 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4515 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4510
4516
4511 2002-05-24 Fernando Perez <fperez@colorado.edu>
4517 2002-05-24 Fernando Perez <fperez@colorado.edu>
4512
4518
4513 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4519 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4514 macros having broken.
4520 macros having broken.
4515
4521
4516 2002-05-21 Fernando Perez <fperez@colorado.edu>
4522 2002-05-21 Fernando Perez <fperez@colorado.edu>
4517
4523
4518 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4524 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4519 introduced logging bug: all history before logging started was
4525 introduced logging bug: all history before logging started was
4520 being written one character per line! This came from the redesign
4526 being written one character per line! This came from the redesign
4521 of the input history as a special list which slices to strings,
4527 of the input history as a special list which slices to strings,
4522 not to lists.
4528 not to lists.
4523
4529
4524 2002-05-20 Fernando Perez <fperez@colorado.edu>
4530 2002-05-20 Fernando Perez <fperez@colorado.edu>
4525
4531
4526 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4532 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4527 be an attribute of all classes in this module. The design of these
4533 be an attribute of all classes in this module. The design of these
4528 classes needs some serious overhauling.
4534 classes needs some serious overhauling.
4529
4535
4530 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4536 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4531 which was ignoring '_' in option names.
4537 which was ignoring '_' in option names.
4532
4538
4533 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4539 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4534 'Verbose_novars' to 'Context' and made it the new default. It's a
4540 'Verbose_novars' to 'Context' and made it the new default. It's a
4535 bit more readable and also safer than verbose.
4541 bit more readable and also safer than verbose.
4536
4542
4537 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4543 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4538 triple-quoted strings.
4544 triple-quoted strings.
4539
4545
4540 * IPython/OInspect.py (__all__): new module exposing the object
4546 * IPython/OInspect.py (__all__): new module exposing the object
4541 introspection facilities. Now the corresponding magics are dummy
4547 introspection facilities. Now the corresponding magics are dummy
4542 wrappers around this. Having this module will make it much easier
4548 wrappers around this. Having this module will make it much easier
4543 to put these functions into our modified pdb.
4549 to put these functions into our modified pdb.
4544 This new object inspector system uses the new colorizing module,
4550 This new object inspector system uses the new colorizing module,
4545 so source code and other things are nicely syntax highlighted.
4551 so source code and other things are nicely syntax highlighted.
4546
4552
4547 2002-05-18 Fernando Perez <fperez@colorado.edu>
4553 2002-05-18 Fernando Perez <fperez@colorado.edu>
4548
4554
4549 * IPython/ColorANSI.py: Split the coloring tools into a separate
4555 * IPython/ColorANSI.py: Split the coloring tools into a separate
4550 module so I can use them in other code easier (they were part of
4556 module so I can use them in other code easier (they were part of
4551 ultraTB).
4557 ultraTB).
4552
4558
4553 2002-05-17 Fernando Perez <fperez@colorado.edu>
4559 2002-05-17 Fernando Perez <fperez@colorado.edu>
4554
4560
4555 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4561 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4556 fixed it to set the global 'g' also to the called instance, as
4562 fixed it to set the global 'g' also to the called instance, as
4557 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4563 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4558 user's 'g' variables).
4564 user's 'g' variables).
4559
4565
4560 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4566 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4561 global variables (aliases to _ih,_oh) so that users which expect
4567 global variables (aliases to _ih,_oh) so that users which expect
4562 In[5] or Out[7] to work aren't unpleasantly surprised.
4568 In[5] or Out[7] to work aren't unpleasantly surprised.
4563 (InputList.__getslice__): new class to allow executing slices of
4569 (InputList.__getslice__): new class to allow executing slices of
4564 input history directly. Very simple class, complements the use of
4570 input history directly. Very simple class, complements the use of
4565 macros.
4571 macros.
4566
4572
4567 2002-05-16 Fernando Perez <fperez@colorado.edu>
4573 2002-05-16 Fernando Perez <fperez@colorado.edu>
4568
4574
4569 * setup.py (docdirbase): make doc directory be just doc/IPython
4575 * setup.py (docdirbase): make doc directory be just doc/IPython
4570 without version numbers, it will reduce clutter for users.
4576 without version numbers, it will reduce clutter for users.
4571
4577
4572 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4578 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4573 execfile call to prevent possible memory leak. See for details:
4579 execfile call to prevent possible memory leak. See for details:
4574 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4580 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4575
4581
4576 2002-05-15 Fernando Perez <fperez@colorado.edu>
4582 2002-05-15 Fernando Perez <fperez@colorado.edu>
4577
4583
4578 * IPython/Magic.py (Magic.magic_psource): made the object
4584 * IPython/Magic.py (Magic.magic_psource): made the object
4579 introspection names be more standard: pdoc, pdef, pfile and
4585 introspection names be more standard: pdoc, pdef, pfile and
4580 psource. They all print/page their output, and it makes
4586 psource. They all print/page their output, and it makes
4581 remembering them easier. Kept old names for compatibility as
4587 remembering them easier. Kept old names for compatibility as
4582 aliases.
4588 aliases.
4583
4589
4584 2002-05-14 Fernando Perez <fperez@colorado.edu>
4590 2002-05-14 Fernando Perez <fperez@colorado.edu>
4585
4591
4586 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4592 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4587 what the mouse problem was. The trick is to use gnuplot with temp
4593 what the mouse problem was. The trick is to use gnuplot with temp
4588 files and NOT with pipes (for data communication), because having
4594 files and NOT with pipes (for data communication), because having
4589 both pipes and the mouse on is bad news.
4595 both pipes and the mouse on is bad news.
4590
4596
4591 2002-05-13 Fernando Perez <fperez@colorado.edu>
4597 2002-05-13 Fernando Perez <fperez@colorado.edu>
4592
4598
4593 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4599 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4594 bug. Information would be reported about builtins even when
4600 bug. Information would be reported about builtins even when
4595 user-defined functions overrode them.
4601 user-defined functions overrode them.
4596
4602
4597 2002-05-11 Fernando Perez <fperez@colorado.edu>
4603 2002-05-11 Fernando Perez <fperez@colorado.edu>
4598
4604
4599 * IPython/__init__.py (__all__): removed FlexCompleter from
4605 * IPython/__init__.py (__all__): removed FlexCompleter from
4600 __all__ so that things don't fail in platforms without readline.
4606 __all__ so that things don't fail in platforms without readline.
4601
4607
4602 2002-05-10 Fernando Perez <fperez@colorado.edu>
4608 2002-05-10 Fernando Perez <fperez@colorado.edu>
4603
4609
4604 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4610 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4605 it requires Numeric, effectively making Numeric a dependency for
4611 it requires Numeric, effectively making Numeric a dependency for
4606 IPython.
4612 IPython.
4607
4613
4608 * Released 0.2.13
4614 * Released 0.2.13
4609
4615
4610 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4616 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4611 profiler interface. Now all the major options from the profiler
4617 profiler interface. Now all the major options from the profiler
4612 module are directly supported in IPython, both for single
4618 module are directly supported in IPython, both for single
4613 expressions (@prun) and for full programs (@run -p).
4619 expressions (@prun) and for full programs (@run -p).
4614
4620
4615 2002-05-09 Fernando Perez <fperez@colorado.edu>
4621 2002-05-09 Fernando Perez <fperez@colorado.edu>
4616
4622
4617 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4623 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4618 magic properly formatted for screen.
4624 magic properly formatted for screen.
4619
4625
4620 * setup.py (make_shortcut): Changed things to put pdf version in
4626 * setup.py (make_shortcut): Changed things to put pdf version in
4621 doc/ instead of doc/manual (had to change lyxport a bit).
4627 doc/ instead of doc/manual (had to change lyxport a bit).
4622
4628
4623 * IPython/Magic.py (Profile.string_stats): made profile runs go
4629 * IPython/Magic.py (Profile.string_stats): made profile runs go
4624 through pager (they are long and a pager allows searching, saving,
4630 through pager (they are long and a pager allows searching, saving,
4625 etc.)
4631 etc.)
4626
4632
4627 2002-05-08 Fernando Perez <fperez@colorado.edu>
4633 2002-05-08 Fernando Perez <fperez@colorado.edu>
4628
4634
4629 * Released 0.2.12
4635 * Released 0.2.12
4630
4636
4631 2002-05-06 Fernando Perez <fperez@colorado.edu>
4637 2002-05-06 Fernando Perez <fperez@colorado.edu>
4632
4638
4633 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4639 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4634 introduced); 'hist n1 n2' was broken.
4640 introduced); 'hist n1 n2' was broken.
4635 (Magic.magic_pdb): added optional on/off arguments to @pdb
4641 (Magic.magic_pdb): added optional on/off arguments to @pdb
4636 (Magic.magic_run): added option -i to @run, which executes code in
4642 (Magic.magic_run): added option -i to @run, which executes code in
4637 the IPython namespace instead of a clean one. Also added @irun as
4643 the IPython namespace instead of a clean one. Also added @irun as
4638 an alias to @run -i.
4644 an alias to @run -i.
4639
4645
4640 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4646 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4641 fixed (it didn't really do anything, the namespaces were wrong).
4647 fixed (it didn't really do anything, the namespaces were wrong).
4642
4648
4643 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4649 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4644
4650
4645 * IPython/__init__.py (__all__): Fixed package namespace, now
4651 * IPython/__init__.py (__all__): Fixed package namespace, now
4646 'import IPython' does give access to IPython.<all> as
4652 'import IPython' does give access to IPython.<all> as
4647 expected. Also renamed __release__ to Release.
4653 expected. Also renamed __release__ to Release.
4648
4654
4649 * IPython/Debugger.py (__license__): created new Pdb class which
4655 * IPython/Debugger.py (__license__): created new Pdb class which
4650 functions like a drop-in for the normal pdb.Pdb but does NOT
4656 functions like a drop-in for the normal pdb.Pdb but does NOT
4651 import readline by default. This way it doesn't muck up IPython's
4657 import readline by default. This way it doesn't muck up IPython's
4652 readline handling, and now tab-completion finally works in the
4658 readline handling, and now tab-completion finally works in the
4653 debugger -- sort of. It completes things globally visible, but the
4659 debugger -- sort of. It completes things globally visible, but the
4654 completer doesn't track the stack as pdb walks it. That's a bit
4660 completer doesn't track the stack as pdb walks it. That's a bit
4655 tricky, and I'll have to implement it later.
4661 tricky, and I'll have to implement it later.
4656
4662
4657 2002-05-05 Fernando Perez <fperez@colorado.edu>
4663 2002-05-05 Fernando Perez <fperez@colorado.edu>
4658
4664
4659 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4665 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4660 magic docstrings when printed via ? (explicit \'s were being
4666 magic docstrings when printed via ? (explicit \'s were being
4661 printed).
4667 printed).
4662
4668
4663 * IPython/ipmaker.py (make_IPython): fixed namespace
4669 * IPython/ipmaker.py (make_IPython): fixed namespace
4664 identification bug. Now variables loaded via logs or command-line
4670 identification bug. Now variables loaded via logs or command-line
4665 files are recognized in the interactive namespace by @who.
4671 files are recognized in the interactive namespace by @who.
4666
4672
4667 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4673 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4668 log replay system stemming from the string form of Structs.
4674 log replay system stemming from the string form of Structs.
4669
4675
4670 * IPython/Magic.py (Macro.__init__): improved macros to properly
4676 * IPython/Magic.py (Macro.__init__): improved macros to properly
4671 handle magic commands in them.
4677 handle magic commands in them.
4672 (Magic.magic_logstart): usernames are now expanded so 'logstart
4678 (Magic.magic_logstart): usernames are now expanded so 'logstart
4673 ~/mylog' now works.
4679 ~/mylog' now works.
4674
4680
4675 * IPython/iplib.py (complete): fixed bug where paths starting with
4681 * IPython/iplib.py (complete): fixed bug where paths starting with
4676 '/' would be completed as magic names.
4682 '/' would be completed as magic names.
4677
4683
4678 2002-05-04 Fernando Perez <fperez@colorado.edu>
4684 2002-05-04 Fernando Perez <fperez@colorado.edu>
4679
4685
4680 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4686 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4681 allow running full programs under the profiler's control.
4687 allow running full programs under the profiler's control.
4682
4688
4683 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4689 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4684 mode to report exceptions verbosely but without formatting
4690 mode to report exceptions verbosely but without formatting
4685 variables. This addresses the issue of ipython 'freezing' (it's
4691 variables. This addresses the issue of ipython 'freezing' (it's
4686 not frozen, but caught in an expensive formatting loop) when huge
4692 not frozen, but caught in an expensive formatting loop) when huge
4687 variables are in the context of an exception.
4693 variables are in the context of an exception.
4688 (VerboseTB.text): Added '--->' markers at line where exception was
4694 (VerboseTB.text): Added '--->' markers at line where exception was
4689 triggered. Much clearer to read, especially in NoColor modes.
4695 triggered. Much clearer to read, especially in NoColor modes.
4690
4696
4691 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4697 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4692 implemented in reverse when changing to the new parse_options().
4698 implemented in reverse when changing to the new parse_options().
4693
4699
4694 2002-05-03 Fernando Perez <fperez@colorado.edu>
4700 2002-05-03 Fernando Perez <fperez@colorado.edu>
4695
4701
4696 * IPython/Magic.py (Magic.parse_options): new function so that
4702 * IPython/Magic.py (Magic.parse_options): new function so that
4697 magics can parse options easier.
4703 magics can parse options easier.
4698 (Magic.magic_prun): new function similar to profile.run(),
4704 (Magic.magic_prun): new function similar to profile.run(),
4699 suggested by Chris Hart.
4705 suggested by Chris Hart.
4700 (Magic.magic_cd): fixed behavior so that it only changes if
4706 (Magic.magic_cd): fixed behavior so that it only changes if
4701 directory actually is in history.
4707 directory actually is in history.
4702
4708
4703 * IPython/usage.py (__doc__): added information about potential
4709 * IPython/usage.py (__doc__): added information about potential
4704 slowness of Verbose exception mode when there are huge data
4710 slowness of Verbose exception mode when there are huge data
4705 structures to be formatted (thanks to Archie Paulson).
4711 structures to be formatted (thanks to Archie Paulson).
4706
4712
4707 * IPython/ipmaker.py (make_IPython): Changed default logging
4713 * IPython/ipmaker.py (make_IPython): Changed default logging
4708 (when simply called with -log) to use curr_dir/ipython.log in
4714 (when simply called with -log) to use curr_dir/ipython.log in
4709 rotate mode. Fixed crash which was occuring with -log before
4715 rotate mode. Fixed crash which was occuring with -log before
4710 (thanks to Jim Boyle).
4716 (thanks to Jim Boyle).
4711
4717
4712 2002-05-01 Fernando Perez <fperez@colorado.edu>
4718 2002-05-01 Fernando Perez <fperez@colorado.edu>
4713
4719
4714 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4720 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4715 was nasty -- though somewhat of a corner case).
4721 was nasty -- though somewhat of a corner case).
4716
4722
4717 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4723 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4718 text (was a bug).
4724 text (was a bug).
4719
4725
4720 2002-04-30 Fernando Perez <fperez@colorado.edu>
4726 2002-04-30 Fernando Perez <fperez@colorado.edu>
4721
4727
4722 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4728 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4723 a print after ^D or ^C from the user so that the In[] prompt
4729 a print after ^D or ^C from the user so that the In[] prompt
4724 doesn't over-run the gnuplot one.
4730 doesn't over-run the gnuplot one.
4725
4731
4726 2002-04-29 Fernando Perez <fperez@colorado.edu>
4732 2002-04-29 Fernando Perez <fperez@colorado.edu>
4727
4733
4728 * Released 0.2.10
4734 * Released 0.2.10
4729
4735
4730 * IPython/__release__.py (version): get date dynamically.
4736 * IPython/__release__.py (version): get date dynamically.
4731
4737
4732 * Misc. documentation updates thanks to Arnd's comments. Also ran
4738 * Misc. documentation updates thanks to Arnd's comments. Also ran
4733 a full spellcheck on the manual (hadn't been done in a while).
4739 a full spellcheck on the manual (hadn't been done in a while).
4734
4740
4735 2002-04-27 Fernando Perez <fperez@colorado.edu>
4741 2002-04-27 Fernando Perez <fperez@colorado.edu>
4736
4742
4737 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4743 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4738 starting a log in mid-session would reset the input history list.
4744 starting a log in mid-session would reset the input history list.
4739
4745
4740 2002-04-26 Fernando Perez <fperez@colorado.edu>
4746 2002-04-26 Fernando Perez <fperez@colorado.edu>
4741
4747
4742 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4748 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4743 all files were being included in an update. Now anything in
4749 all files were being included in an update. Now anything in
4744 UserConfig that matches [A-Za-z]*.py will go (this excludes
4750 UserConfig that matches [A-Za-z]*.py will go (this excludes
4745 __init__.py)
4751 __init__.py)
4746
4752
4747 2002-04-25 Fernando Perez <fperez@colorado.edu>
4753 2002-04-25 Fernando Perez <fperez@colorado.edu>
4748
4754
4749 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4755 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4750 to __builtins__ so that any form of embedded or imported code can
4756 to __builtins__ so that any form of embedded or imported code can
4751 test for being inside IPython.
4757 test for being inside IPython.
4752
4758
4753 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4759 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4754 changed to GnuplotMagic because it's now an importable module,
4760 changed to GnuplotMagic because it's now an importable module,
4755 this makes the name follow that of the standard Gnuplot module.
4761 this makes the name follow that of the standard Gnuplot module.
4756 GnuplotMagic can now be loaded at any time in mid-session.
4762 GnuplotMagic can now be loaded at any time in mid-session.
4757
4763
4758 2002-04-24 Fernando Perez <fperez@colorado.edu>
4764 2002-04-24 Fernando Perez <fperez@colorado.edu>
4759
4765
4760 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4766 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4761 the globals (IPython has its own namespace) and the
4767 the globals (IPython has its own namespace) and the
4762 PhysicalQuantity stuff is much better anyway.
4768 PhysicalQuantity stuff is much better anyway.
4763
4769
4764 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4770 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4765 embedding example to standard user directory for
4771 embedding example to standard user directory for
4766 distribution. Also put it in the manual.
4772 distribution. Also put it in the manual.
4767
4773
4768 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4774 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4769 instance as first argument (so it doesn't rely on some obscure
4775 instance as first argument (so it doesn't rely on some obscure
4770 hidden global).
4776 hidden global).
4771
4777
4772 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4778 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4773 delimiters. While it prevents ().TAB from working, it allows
4779 delimiters. While it prevents ().TAB from working, it allows
4774 completions in open (... expressions. This is by far a more common
4780 completions in open (... expressions. This is by far a more common
4775 case.
4781 case.
4776
4782
4777 2002-04-23 Fernando Perez <fperez@colorado.edu>
4783 2002-04-23 Fernando Perez <fperez@colorado.edu>
4778
4784
4779 * IPython/Extensions/InterpreterPasteInput.py: new
4785 * IPython/Extensions/InterpreterPasteInput.py: new
4780 syntax-processing module for pasting lines with >>> or ... at the
4786 syntax-processing module for pasting lines with >>> or ... at the
4781 start.
4787 start.
4782
4788
4783 * IPython/Extensions/PhysicalQ_Interactive.py
4789 * IPython/Extensions/PhysicalQ_Interactive.py
4784 (PhysicalQuantityInteractive.__int__): fixed to work with either
4790 (PhysicalQuantityInteractive.__int__): fixed to work with either
4785 Numeric or math.
4791 Numeric or math.
4786
4792
4787 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4793 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4788 provided profiles. Now we have:
4794 provided profiles. Now we have:
4789 -math -> math module as * and cmath with its own namespace.
4795 -math -> math module as * and cmath with its own namespace.
4790 -numeric -> Numeric as *, plus gnuplot & grace
4796 -numeric -> Numeric as *, plus gnuplot & grace
4791 -physics -> same as before
4797 -physics -> same as before
4792
4798
4793 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4799 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4794 user-defined magics wouldn't be found by @magic if they were
4800 user-defined magics wouldn't be found by @magic if they were
4795 defined as class methods. Also cleaned up the namespace search
4801 defined as class methods. Also cleaned up the namespace search
4796 logic and the string building (to use %s instead of many repeated
4802 logic and the string building (to use %s instead of many repeated
4797 string adds).
4803 string adds).
4798
4804
4799 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4805 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4800 of user-defined magics to operate with class methods (cleaner, in
4806 of user-defined magics to operate with class methods (cleaner, in
4801 line with the gnuplot code).
4807 line with the gnuplot code).
4802
4808
4803 2002-04-22 Fernando Perez <fperez@colorado.edu>
4809 2002-04-22 Fernando Perez <fperez@colorado.edu>
4804
4810
4805 * setup.py: updated dependency list so that manual is updated when
4811 * setup.py: updated dependency list so that manual is updated when
4806 all included files change.
4812 all included files change.
4807
4813
4808 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4814 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4809 the delimiter removal option (the fix is ugly right now).
4815 the delimiter removal option (the fix is ugly right now).
4810
4816
4811 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4817 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4812 all of the math profile (quicker loading, no conflict between
4818 all of the math profile (quicker loading, no conflict between
4813 g-9.8 and g-gnuplot).
4819 g-9.8 and g-gnuplot).
4814
4820
4815 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4821 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4816 name of post-mortem files to IPython_crash_report.txt.
4822 name of post-mortem files to IPython_crash_report.txt.
4817
4823
4818 * Cleanup/update of the docs. Added all the new readline info and
4824 * Cleanup/update of the docs. Added all the new readline info and
4819 formatted all lists as 'real lists'.
4825 formatted all lists as 'real lists'.
4820
4826
4821 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4827 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4822 tab-completion options, since the full readline parse_and_bind is
4828 tab-completion options, since the full readline parse_and_bind is
4823 now accessible.
4829 now accessible.
4824
4830
4825 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4831 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4826 handling of readline options. Now users can specify any string to
4832 handling of readline options. Now users can specify any string to
4827 be passed to parse_and_bind(), as well as the delimiters to be
4833 be passed to parse_and_bind(), as well as the delimiters to be
4828 removed.
4834 removed.
4829 (InteractiveShell.__init__): Added __name__ to the global
4835 (InteractiveShell.__init__): Added __name__ to the global
4830 namespace so that things like Itpl which rely on its existence
4836 namespace so that things like Itpl which rely on its existence
4831 don't crash.
4837 don't crash.
4832 (InteractiveShell._prefilter): Defined the default with a _ so
4838 (InteractiveShell._prefilter): Defined the default with a _ so
4833 that prefilter() is easier to override, while the default one
4839 that prefilter() is easier to override, while the default one
4834 remains available.
4840 remains available.
4835
4841
4836 2002-04-18 Fernando Perez <fperez@colorado.edu>
4842 2002-04-18 Fernando Perez <fperez@colorado.edu>
4837
4843
4838 * Added information about pdb in the docs.
4844 * Added information about pdb in the docs.
4839
4845
4840 2002-04-17 Fernando Perez <fperez@colorado.edu>
4846 2002-04-17 Fernando Perez <fperez@colorado.edu>
4841
4847
4842 * IPython/ipmaker.py (make_IPython): added rc_override option to
4848 * IPython/ipmaker.py (make_IPython): added rc_override option to
4843 allow passing config options at creation time which may override
4849 allow passing config options at creation time which may override
4844 anything set in the config files or command line. This is
4850 anything set in the config files or command line. This is
4845 particularly useful for configuring embedded instances.
4851 particularly useful for configuring embedded instances.
4846
4852
4847 2002-04-15 Fernando Perez <fperez@colorado.edu>
4853 2002-04-15 Fernando Perez <fperez@colorado.edu>
4848
4854
4849 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4855 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4850 crash embedded instances because of the input cache falling out of
4856 crash embedded instances because of the input cache falling out of
4851 sync with the output counter.
4857 sync with the output counter.
4852
4858
4853 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4859 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4854 mode which calls pdb after an uncaught exception in IPython itself.
4860 mode which calls pdb after an uncaught exception in IPython itself.
4855
4861
4856 2002-04-14 Fernando Perez <fperez@colorado.edu>
4862 2002-04-14 Fernando Perez <fperez@colorado.edu>
4857
4863
4858 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4864 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4859 readline, fix it back after each call.
4865 readline, fix it back after each call.
4860
4866
4861 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4867 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4862 method to force all access via __call__(), which guarantees that
4868 method to force all access via __call__(), which guarantees that
4863 traceback references are properly deleted.
4869 traceback references are properly deleted.
4864
4870
4865 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4871 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4866 improve printing when pprint is in use.
4872 improve printing when pprint is in use.
4867
4873
4868 2002-04-13 Fernando Perez <fperez@colorado.edu>
4874 2002-04-13 Fernando Perez <fperez@colorado.edu>
4869
4875
4870 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4876 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4871 exceptions aren't caught anymore. If the user triggers one, he
4877 exceptions aren't caught anymore. If the user triggers one, he
4872 should know why he's doing it and it should go all the way up,
4878 should know why he's doing it and it should go all the way up,
4873 just like any other exception. So now @abort will fully kill the
4879 just like any other exception. So now @abort will fully kill the
4874 embedded interpreter and the embedding code (unless that happens
4880 embedded interpreter and the embedding code (unless that happens
4875 to catch SystemExit).
4881 to catch SystemExit).
4876
4882
4877 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4883 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4878 and a debugger() method to invoke the interactive pdb debugger
4884 and a debugger() method to invoke the interactive pdb debugger
4879 after printing exception information. Also added the corresponding
4885 after printing exception information. Also added the corresponding
4880 -pdb option and @pdb magic to control this feature, and updated
4886 -pdb option and @pdb magic to control this feature, and updated
4881 the docs. After a suggestion from Christopher Hart
4887 the docs. After a suggestion from Christopher Hart
4882 (hart-AT-caltech.edu).
4888 (hart-AT-caltech.edu).
4883
4889
4884 2002-04-12 Fernando Perez <fperez@colorado.edu>
4890 2002-04-12 Fernando Perez <fperez@colorado.edu>
4885
4891
4886 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4892 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4887 the exception handlers defined by the user (not the CrashHandler)
4893 the exception handlers defined by the user (not the CrashHandler)
4888 so that user exceptions don't trigger an ipython bug report.
4894 so that user exceptions don't trigger an ipython bug report.
4889
4895
4890 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4896 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4891 configurable (it should have always been so).
4897 configurable (it should have always been so).
4892
4898
4893 2002-03-26 Fernando Perez <fperez@colorado.edu>
4899 2002-03-26 Fernando Perez <fperez@colorado.edu>
4894
4900
4895 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4901 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4896 and there to fix embedding namespace issues. This should all be
4902 and there to fix embedding namespace issues. This should all be
4897 done in a more elegant way.
4903 done in a more elegant way.
4898
4904
4899 2002-03-25 Fernando Perez <fperez@colorado.edu>
4905 2002-03-25 Fernando Perez <fperez@colorado.edu>
4900
4906
4901 * IPython/genutils.py (get_home_dir): Try to make it work under
4907 * IPython/genutils.py (get_home_dir): Try to make it work under
4902 win9x also.
4908 win9x also.
4903
4909
4904 2002-03-20 Fernando Perez <fperez@colorado.edu>
4910 2002-03-20 Fernando Perez <fperez@colorado.edu>
4905
4911
4906 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4912 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4907 sys.displayhook untouched upon __init__.
4913 sys.displayhook untouched upon __init__.
4908
4914
4909 2002-03-19 Fernando Perez <fperez@colorado.edu>
4915 2002-03-19 Fernando Perez <fperez@colorado.edu>
4910
4916
4911 * Released 0.2.9 (for embedding bug, basically).
4917 * Released 0.2.9 (for embedding bug, basically).
4912
4918
4913 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4919 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4914 exceptions so that enclosing shell's state can be restored.
4920 exceptions so that enclosing shell's state can be restored.
4915
4921
4916 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4922 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4917 naming conventions in the .ipython/ dir.
4923 naming conventions in the .ipython/ dir.
4918
4924
4919 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4925 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4920 from delimiters list so filenames with - in them get expanded.
4926 from delimiters list so filenames with - in them get expanded.
4921
4927
4922 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4928 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4923 sys.displayhook not being properly restored after an embedded call.
4929 sys.displayhook not being properly restored after an embedded call.
4924
4930
4925 2002-03-18 Fernando Perez <fperez@colorado.edu>
4931 2002-03-18 Fernando Perez <fperez@colorado.edu>
4926
4932
4927 * Released 0.2.8
4933 * Released 0.2.8
4928
4934
4929 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4935 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4930 some files weren't being included in a -upgrade.
4936 some files weren't being included in a -upgrade.
4931 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4937 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4932 on' so that the first tab completes.
4938 on' so that the first tab completes.
4933 (InteractiveShell.handle_magic): fixed bug with spaces around
4939 (InteractiveShell.handle_magic): fixed bug with spaces around
4934 quotes breaking many magic commands.
4940 quotes breaking many magic commands.
4935
4941
4936 * setup.py: added note about ignoring the syntax error messages at
4942 * setup.py: added note about ignoring the syntax error messages at
4937 installation.
4943 installation.
4938
4944
4939 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4945 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4940 streamlining the gnuplot interface, now there's only one magic @gp.
4946 streamlining the gnuplot interface, now there's only one magic @gp.
4941
4947
4942 2002-03-17 Fernando Perez <fperez@colorado.edu>
4948 2002-03-17 Fernando Perez <fperez@colorado.edu>
4943
4949
4944 * IPython/UserConfig/magic_gnuplot.py: new name for the
4950 * IPython/UserConfig/magic_gnuplot.py: new name for the
4945 example-magic_pm.py file. Much enhanced system, now with a shell
4951 example-magic_pm.py file. Much enhanced system, now with a shell
4946 for communicating directly with gnuplot, one command at a time.
4952 for communicating directly with gnuplot, one command at a time.
4947
4953
4948 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4954 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4949 setting __name__=='__main__'.
4955 setting __name__=='__main__'.
4950
4956
4951 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4957 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4952 mini-shell for accessing gnuplot from inside ipython. Should
4958 mini-shell for accessing gnuplot from inside ipython. Should
4953 extend it later for grace access too. Inspired by Arnd's
4959 extend it later for grace access too. Inspired by Arnd's
4954 suggestion.
4960 suggestion.
4955
4961
4956 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4962 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4957 calling magic functions with () in their arguments. Thanks to Arnd
4963 calling magic functions with () in their arguments. Thanks to Arnd
4958 Baecker for pointing this to me.
4964 Baecker for pointing this to me.
4959
4965
4960 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4966 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4961 infinitely for integer or complex arrays (only worked with floats).
4967 infinitely for integer or complex arrays (only worked with floats).
4962
4968
4963 2002-03-16 Fernando Perez <fperez@colorado.edu>
4969 2002-03-16 Fernando Perez <fperez@colorado.edu>
4964
4970
4965 * setup.py: Merged setup and setup_windows into a single script
4971 * setup.py: Merged setup and setup_windows into a single script
4966 which properly handles things for windows users.
4972 which properly handles things for windows users.
4967
4973
4968 2002-03-15 Fernando Perez <fperez@colorado.edu>
4974 2002-03-15 Fernando Perez <fperez@colorado.edu>
4969
4975
4970 * Big change to the manual: now the magics are all automatically
4976 * Big change to the manual: now the magics are all automatically
4971 documented. This information is generated from their docstrings
4977 documented. This information is generated from their docstrings
4972 and put in a latex file included by the manual lyx file. This way
4978 and put in a latex file included by the manual lyx file. This way
4973 we get always up to date information for the magics. The manual
4979 we get always up to date information for the magics. The manual
4974 now also has proper version information, also auto-synced.
4980 now also has proper version information, also auto-synced.
4975
4981
4976 For this to work, an undocumented --magic_docstrings option was added.
4982 For this to work, an undocumented --magic_docstrings option was added.
4977
4983
4978 2002-03-13 Fernando Perez <fperez@colorado.edu>
4984 2002-03-13 Fernando Perez <fperez@colorado.edu>
4979
4985
4980 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4986 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4981 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4987 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4982
4988
4983 2002-03-12 Fernando Perez <fperez@colorado.edu>
4989 2002-03-12 Fernando Perez <fperez@colorado.edu>
4984
4990
4985 * IPython/ultraTB.py (TermColors): changed color escapes again to
4991 * IPython/ultraTB.py (TermColors): changed color escapes again to
4986 fix the (old, reintroduced) line-wrapping bug. Basically, if
4992 fix the (old, reintroduced) line-wrapping bug. Basically, if
4987 \001..\002 aren't given in the color escapes, lines get wrapped
4993 \001..\002 aren't given in the color escapes, lines get wrapped
4988 weirdly. But giving those screws up old xterms and emacs terms. So
4994 weirdly. But giving those screws up old xterms and emacs terms. So
4989 I added some logic for emacs terms to be ok, but I can't identify old
4995 I added some logic for emacs terms to be ok, but I can't identify old
4990 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4996 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4991
4997
4992 2002-03-10 Fernando Perez <fperez@colorado.edu>
4998 2002-03-10 Fernando Perez <fperez@colorado.edu>
4993
4999
4994 * IPython/usage.py (__doc__): Various documentation cleanups and
5000 * IPython/usage.py (__doc__): Various documentation cleanups and
4995 updates, both in usage docstrings and in the manual.
5001 updates, both in usage docstrings and in the manual.
4996
5002
4997 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5003 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4998 handling of caching. Set minimum acceptabe value for having a
5004 handling of caching. Set minimum acceptabe value for having a
4999 cache at 20 values.
5005 cache at 20 values.
5000
5006
5001 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5007 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5002 install_first_time function to a method, renamed it and added an
5008 install_first_time function to a method, renamed it and added an
5003 'upgrade' mode. Now people can update their config directory with
5009 'upgrade' mode. Now people can update their config directory with
5004 a simple command line switch (-upgrade, also new).
5010 a simple command line switch (-upgrade, also new).
5005
5011
5006 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5012 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5007 @file (convenient for automagic users under Python >= 2.2).
5013 @file (convenient for automagic users under Python >= 2.2).
5008 Removed @files (it seemed more like a plural than an abbrev. of
5014 Removed @files (it seemed more like a plural than an abbrev. of
5009 'file show').
5015 'file show').
5010
5016
5011 * IPython/iplib.py (install_first_time): Fixed crash if there were
5017 * IPython/iplib.py (install_first_time): Fixed crash if there were
5012 backup files ('~') in .ipython/ install directory.
5018 backup files ('~') in .ipython/ install directory.
5013
5019
5014 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5020 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5015 system. Things look fine, but these changes are fairly
5021 system. Things look fine, but these changes are fairly
5016 intrusive. Test them for a few days.
5022 intrusive. Test them for a few days.
5017
5023
5018 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5024 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5019 the prompts system. Now all in/out prompt strings are user
5025 the prompts system. Now all in/out prompt strings are user
5020 controllable. This is particularly useful for embedding, as one
5026 controllable. This is particularly useful for embedding, as one
5021 can tag embedded instances with particular prompts.
5027 can tag embedded instances with particular prompts.
5022
5028
5023 Also removed global use of sys.ps1/2, which now allows nested
5029 Also removed global use of sys.ps1/2, which now allows nested
5024 embeddings without any problems. Added command-line options for
5030 embeddings without any problems. Added command-line options for
5025 the prompt strings.
5031 the prompt strings.
5026
5032
5027 2002-03-08 Fernando Perez <fperez@colorado.edu>
5033 2002-03-08 Fernando Perez <fperez@colorado.edu>
5028
5034
5029 * IPython/UserConfig/example-embed-short.py (ipshell): added
5035 * IPython/UserConfig/example-embed-short.py (ipshell): added
5030 example file with the bare minimum code for embedding.
5036 example file with the bare minimum code for embedding.
5031
5037
5032 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5038 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5033 functionality for the embeddable shell to be activated/deactivated
5039 functionality for the embeddable shell to be activated/deactivated
5034 either globally or at each call.
5040 either globally or at each call.
5035
5041
5036 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5042 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5037 rewriting the prompt with '--->' for auto-inputs with proper
5043 rewriting the prompt with '--->' for auto-inputs with proper
5038 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5044 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5039 this is handled by the prompts class itself, as it should.
5045 this is handled by the prompts class itself, as it should.
5040
5046
5041 2002-03-05 Fernando Perez <fperez@colorado.edu>
5047 2002-03-05 Fernando Perez <fperez@colorado.edu>
5042
5048
5043 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5049 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5044 @logstart to avoid name clashes with the math log function.
5050 @logstart to avoid name clashes with the math log function.
5045
5051
5046 * Big updates to X/Emacs section of the manual.
5052 * Big updates to X/Emacs section of the manual.
5047
5053
5048 * Removed ipython_emacs. Milan explained to me how to pass
5054 * Removed ipython_emacs. Milan explained to me how to pass
5049 arguments to ipython through Emacs. Some day I'm going to end up
5055 arguments to ipython through Emacs. Some day I'm going to end up
5050 learning some lisp...
5056 learning some lisp...
5051
5057
5052 2002-03-04 Fernando Perez <fperez@colorado.edu>
5058 2002-03-04 Fernando Perez <fperez@colorado.edu>
5053
5059
5054 * IPython/ipython_emacs: Created script to be used as the
5060 * IPython/ipython_emacs: Created script to be used as the
5055 py-python-command Emacs variable so we can pass IPython
5061 py-python-command Emacs variable so we can pass IPython
5056 parameters. I can't figure out how to tell Emacs directly to pass
5062 parameters. I can't figure out how to tell Emacs directly to pass
5057 parameters to IPython, so a dummy shell script will do it.
5063 parameters to IPython, so a dummy shell script will do it.
5058
5064
5059 Other enhancements made for things to work better under Emacs'
5065 Other enhancements made for things to work better under Emacs'
5060 various types of terminals. Many thanks to Milan Zamazal
5066 various types of terminals. Many thanks to Milan Zamazal
5061 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5067 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5062
5068
5063 2002-03-01 Fernando Perez <fperez@colorado.edu>
5069 2002-03-01 Fernando Perez <fperez@colorado.edu>
5064
5070
5065 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5071 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5066 that loading of readline is now optional. This gives better
5072 that loading of readline is now optional. This gives better
5067 control to emacs users.
5073 control to emacs users.
5068
5074
5069 * IPython/ultraTB.py (__date__): Modified color escape sequences
5075 * IPython/ultraTB.py (__date__): Modified color escape sequences
5070 and now things work fine under xterm and in Emacs' term buffers
5076 and now things work fine under xterm and in Emacs' term buffers
5071 (though not shell ones). Well, in emacs you get colors, but all
5077 (though not shell ones). Well, in emacs you get colors, but all
5072 seem to be 'light' colors (no difference between dark and light
5078 seem to be 'light' colors (no difference between dark and light
5073 ones). But the garbage chars are gone, and also in xterms. It
5079 ones). But the garbage chars are gone, and also in xterms. It
5074 seems that now I'm using 'cleaner' ansi sequences.
5080 seems that now I'm using 'cleaner' ansi sequences.
5075
5081
5076 2002-02-21 Fernando Perez <fperez@colorado.edu>
5082 2002-02-21 Fernando Perez <fperez@colorado.edu>
5077
5083
5078 * Released 0.2.7 (mainly to publish the scoping fix).
5084 * Released 0.2.7 (mainly to publish the scoping fix).
5079
5085
5080 * IPython/Logger.py (Logger.logstate): added. A corresponding
5086 * IPython/Logger.py (Logger.logstate): added. A corresponding
5081 @logstate magic was created.
5087 @logstate magic was created.
5082
5088
5083 * IPython/Magic.py: fixed nested scoping problem under Python
5089 * IPython/Magic.py: fixed nested scoping problem under Python
5084 2.1.x (automagic wasn't working).
5090 2.1.x (automagic wasn't working).
5085
5091
5086 2002-02-20 Fernando Perez <fperez@colorado.edu>
5092 2002-02-20 Fernando Perez <fperez@colorado.edu>
5087
5093
5088 * Released 0.2.6.
5094 * Released 0.2.6.
5089
5095
5090 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5096 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5091 option so that logs can come out without any headers at all.
5097 option so that logs can come out without any headers at all.
5092
5098
5093 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5099 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5094 SciPy.
5100 SciPy.
5095
5101
5096 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5102 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5097 that embedded IPython calls don't require vars() to be explicitly
5103 that embedded IPython calls don't require vars() to be explicitly
5098 passed. Now they are extracted from the caller's frame (code
5104 passed. Now they are extracted from the caller's frame (code
5099 snatched from Eric Jones' weave). Added better documentation to
5105 snatched from Eric Jones' weave). Added better documentation to
5100 the section on embedding and the example file.
5106 the section on embedding and the example file.
5101
5107
5102 * IPython/genutils.py (page): Changed so that under emacs, it just
5108 * IPython/genutils.py (page): Changed so that under emacs, it just
5103 prints the string. You can then page up and down in the emacs
5109 prints the string. You can then page up and down in the emacs
5104 buffer itself. This is how the builtin help() works.
5110 buffer itself. This is how the builtin help() works.
5105
5111
5106 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5112 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5107 macro scoping: macros need to be executed in the user's namespace
5113 macro scoping: macros need to be executed in the user's namespace
5108 to work as if they had been typed by the user.
5114 to work as if they had been typed by the user.
5109
5115
5110 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5116 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5111 execute automatically (no need to type 'exec...'). They then
5117 execute automatically (no need to type 'exec...'). They then
5112 behave like 'true macros'. The printing system was also modified
5118 behave like 'true macros'. The printing system was also modified
5113 for this to work.
5119 for this to work.
5114
5120
5115 2002-02-19 Fernando Perez <fperez@colorado.edu>
5121 2002-02-19 Fernando Perez <fperez@colorado.edu>
5116
5122
5117 * IPython/genutils.py (page_file): new function for paging files
5123 * IPython/genutils.py (page_file): new function for paging files
5118 in an OS-independent way. Also necessary for file viewing to work
5124 in an OS-independent way. Also necessary for file viewing to work
5119 well inside Emacs buffers.
5125 well inside Emacs buffers.
5120 (page): Added checks for being in an emacs buffer.
5126 (page): Added checks for being in an emacs buffer.
5121 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5127 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5122 same bug in iplib.
5128 same bug in iplib.
5123
5129
5124 2002-02-18 Fernando Perez <fperez@colorado.edu>
5130 2002-02-18 Fernando Perez <fperez@colorado.edu>
5125
5131
5126 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5132 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5127 of readline so that IPython can work inside an Emacs buffer.
5133 of readline so that IPython can work inside an Emacs buffer.
5128
5134
5129 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5135 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5130 method signatures (they weren't really bugs, but it looks cleaner
5136 method signatures (they weren't really bugs, but it looks cleaner
5131 and keeps PyChecker happy).
5137 and keeps PyChecker happy).
5132
5138
5133 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5139 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5134 for implementing various user-defined hooks. Currently only
5140 for implementing various user-defined hooks. Currently only
5135 display is done.
5141 display is done.
5136
5142
5137 * IPython/Prompts.py (CachedOutput._display): changed display
5143 * IPython/Prompts.py (CachedOutput._display): changed display
5138 functions so that they can be dynamically changed by users easily.
5144 functions so that they can be dynamically changed by users easily.
5139
5145
5140 * IPython/Extensions/numeric_formats.py (num_display): added an
5146 * IPython/Extensions/numeric_formats.py (num_display): added an
5141 extension for printing NumPy arrays in flexible manners. It
5147 extension for printing NumPy arrays in flexible manners. It
5142 doesn't do anything yet, but all the structure is in
5148 doesn't do anything yet, but all the structure is in
5143 place. Ultimately the plan is to implement output format control
5149 place. Ultimately the plan is to implement output format control
5144 like in Octave.
5150 like in Octave.
5145
5151
5146 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5152 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5147 methods are found at run-time by all the automatic machinery.
5153 methods are found at run-time by all the automatic machinery.
5148
5154
5149 2002-02-17 Fernando Perez <fperez@colorado.edu>
5155 2002-02-17 Fernando Perez <fperez@colorado.edu>
5150
5156
5151 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5157 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5152 whole file a little.
5158 whole file a little.
5153
5159
5154 * ToDo: closed this document. Now there's a new_design.lyx
5160 * ToDo: closed this document. Now there's a new_design.lyx
5155 document for all new ideas. Added making a pdf of it for the
5161 document for all new ideas. Added making a pdf of it for the
5156 end-user distro.
5162 end-user distro.
5157
5163
5158 * IPython/Logger.py (Logger.switch_log): Created this to replace
5164 * IPython/Logger.py (Logger.switch_log): Created this to replace
5159 logon() and logoff(). It also fixes a nasty crash reported by
5165 logon() and logoff(). It also fixes a nasty crash reported by
5160 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5166 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5161
5167
5162 * IPython/iplib.py (complete): got auto-completion to work with
5168 * IPython/iplib.py (complete): got auto-completion to work with
5163 automagic (I had wanted this for a long time).
5169 automagic (I had wanted this for a long time).
5164
5170
5165 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5171 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5166 to @file, since file() is now a builtin and clashes with automagic
5172 to @file, since file() is now a builtin and clashes with automagic
5167 for @file.
5173 for @file.
5168
5174
5169 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5175 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5170 of this was previously in iplib, which had grown to more than 2000
5176 of this was previously in iplib, which had grown to more than 2000
5171 lines, way too long. No new functionality, but it makes managing
5177 lines, way too long. No new functionality, but it makes managing
5172 the code a bit easier.
5178 the code a bit easier.
5173
5179
5174 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5180 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5175 information to crash reports.
5181 information to crash reports.
5176
5182
5177 2002-02-12 Fernando Perez <fperez@colorado.edu>
5183 2002-02-12 Fernando Perez <fperez@colorado.edu>
5178
5184
5179 * Released 0.2.5.
5185 * Released 0.2.5.
5180
5186
5181 2002-02-11 Fernando Perez <fperez@colorado.edu>
5187 2002-02-11 Fernando Perez <fperez@colorado.edu>
5182
5188
5183 * Wrote a relatively complete Windows installer. It puts
5189 * Wrote a relatively complete Windows installer. It puts
5184 everything in place, creates Start Menu entries and fixes the
5190 everything in place, creates Start Menu entries and fixes the
5185 color issues. Nothing fancy, but it works.
5191 color issues. Nothing fancy, but it works.
5186
5192
5187 2002-02-10 Fernando Perez <fperez@colorado.edu>
5193 2002-02-10 Fernando Perez <fperez@colorado.edu>
5188
5194
5189 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5195 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5190 os.path.expanduser() call so that we can type @run ~/myfile.py and
5196 os.path.expanduser() call so that we can type @run ~/myfile.py and
5191 have thigs work as expected.
5197 have thigs work as expected.
5192
5198
5193 * IPython/genutils.py (page): fixed exception handling so things
5199 * IPython/genutils.py (page): fixed exception handling so things
5194 work both in Unix and Windows correctly. Quitting a pager triggers
5200 work both in Unix and Windows correctly. Quitting a pager triggers
5195 an IOError/broken pipe in Unix, and in windows not finding a pager
5201 an IOError/broken pipe in Unix, and in windows not finding a pager
5196 is also an IOError, so I had to actually look at the return value
5202 is also an IOError, so I had to actually look at the return value
5197 of the exception, not just the exception itself. Should be ok now.
5203 of the exception, not just the exception itself. Should be ok now.
5198
5204
5199 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5205 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5200 modified to allow case-insensitive color scheme changes.
5206 modified to allow case-insensitive color scheme changes.
5201
5207
5202 2002-02-09 Fernando Perez <fperez@colorado.edu>
5208 2002-02-09 Fernando Perez <fperez@colorado.edu>
5203
5209
5204 * IPython/genutils.py (native_line_ends): new function to leave
5210 * IPython/genutils.py (native_line_ends): new function to leave
5205 user config files with os-native line-endings.
5211 user config files with os-native line-endings.
5206
5212
5207 * README and manual updates.
5213 * README and manual updates.
5208
5214
5209 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5215 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5210 instead of StringType to catch Unicode strings.
5216 instead of StringType to catch Unicode strings.
5211
5217
5212 * IPython/genutils.py (filefind): fixed bug for paths with
5218 * IPython/genutils.py (filefind): fixed bug for paths with
5213 embedded spaces (very common in Windows).
5219 embedded spaces (very common in Windows).
5214
5220
5215 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5221 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5216 files under Windows, so that they get automatically associated
5222 files under Windows, so that they get automatically associated
5217 with a text editor. Windows makes it a pain to handle
5223 with a text editor. Windows makes it a pain to handle
5218 extension-less files.
5224 extension-less files.
5219
5225
5220 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5226 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5221 warning about readline only occur for Posix. In Windows there's no
5227 warning about readline only occur for Posix. In Windows there's no
5222 way to get readline, so why bother with the warning.
5228 way to get readline, so why bother with the warning.
5223
5229
5224 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5230 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5225 for __str__ instead of dir(self), since dir() changed in 2.2.
5231 for __str__ instead of dir(self), since dir() changed in 2.2.
5226
5232
5227 * Ported to Windows! Tested on XP, I suspect it should work fine
5233 * Ported to Windows! Tested on XP, I suspect it should work fine
5228 on NT/2000, but I don't think it will work on 98 et al. That
5234 on NT/2000, but I don't think it will work on 98 et al. That
5229 series of Windows is such a piece of junk anyway that I won't try
5235 series of Windows is such a piece of junk anyway that I won't try
5230 porting it there. The XP port was straightforward, showed a few
5236 porting it there. The XP port was straightforward, showed a few
5231 bugs here and there (fixed all), in particular some string
5237 bugs here and there (fixed all), in particular some string
5232 handling stuff which required considering Unicode strings (which
5238 handling stuff which required considering Unicode strings (which
5233 Windows uses). This is good, but hasn't been too tested :) No
5239 Windows uses). This is good, but hasn't been too tested :) No
5234 fancy installer yet, I'll put a note in the manual so people at
5240 fancy installer yet, I'll put a note in the manual so people at
5235 least make manually a shortcut.
5241 least make manually a shortcut.
5236
5242
5237 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5243 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5238 into a single one, "colors". This now controls both prompt and
5244 into a single one, "colors". This now controls both prompt and
5239 exception color schemes, and can be changed both at startup
5245 exception color schemes, and can be changed both at startup
5240 (either via command-line switches or via ipythonrc files) and at
5246 (either via command-line switches or via ipythonrc files) and at
5241 runtime, with @colors.
5247 runtime, with @colors.
5242 (Magic.magic_run): renamed @prun to @run and removed the old
5248 (Magic.magic_run): renamed @prun to @run and removed the old
5243 @run. The two were too similar to warrant keeping both.
5249 @run. The two were too similar to warrant keeping both.
5244
5250
5245 2002-02-03 Fernando Perez <fperez@colorado.edu>
5251 2002-02-03 Fernando Perez <fperez@colorado.edu>
5246
5252
5247 * IPython/iplib.py (install_first_time): Added comment on how to
5253 * IPython/iplib.py (install_first_time): Added comment on how to
5248 configure the color options for first-time users. Put a <return>
5254 configure the color options for first-time users. Put a <return>
5249 request at the end so that small-terminal users get a chance to
5255 request at the end so that small-terminal users get a chance to
5250 read the startup info.
5256 read the startup info.
5251
5257
5252 2002-01-23 Fernando Perez <fperez@colorado.edu>
5258 2002-01-23 Fernando Perez <fperez@colorado.edu>
5253
5259
5254 * IPython/iplib.py (CachedOutput.update): Changed output memory
5260 * IPython/iplib.py (CachedOutput.update): Changed output memory
5255 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5261 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5256 input history we still use _i. Did this b/c these variable are
5262 input history we still use _i. Did this b/c these variable are
5257 very commonly used in interactive work, so the less we need to
5263 very commonly used in interactive work, so the less we need to
5258 type the better off we are.
5264 type the better off we are.
5259 (Magic.magic_prun): updated @prun to better handle the namespaces
5265 (Magic.magic_prun): updated @prun to better handle the namespaces
5260 the file will run in, including a fix for __name__ not being set
5266 the file will run in, including a fix for __name__ not being set
5261 before.
5267 before.
5262
5268
5263 2002-01-20 Fernando Perez <fperez@colorado.edu>
5269 2002-01-20 Fernando Perez <fperez@colorado.edu>
5264
5270
5265 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5271 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5266 extra garbage for Python 2.2. Need to look more carefully into
5272 extra garbage for Python 2.2. Need to look more carefully into
5267 this later.
5273 this later.
5268
5274
5269 2002-01-19 Fernando Perez <fperez@colorado.edu>
5275 2002-01-19 Fernando Perez <fperez@colorado.edu>
5270
5276
5271 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5277 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5272 display SyntaxError exceptions properly formatted when they occur
5278 display SyntaxError exceptions properly formatted when they occur
5273 (they can be triggered by imported code).
5279 (they can be triggered by imported code).
5274
5280
5275 2002-01-18 Fernando Perez <fperez@colorado.edu>
5281 2002-01-18 Fernando Perez <fperez@colorado.edu>
5276
5282
5277 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5283 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5278 SyntaxError exceptions are reported nicely formatted, instead of
5284 SyntaxError exceptions are reported nicely formatted, instead of
5279 spitting out only offset information as before.
5285 spitting out only offset information as before.
5280 (Magic.magic_prun): Added the @prun function for executing
5286 (Magic.magic_prun): Added the @prun function for executing
5281 programs with command line args inside IPython.
5287 programs with command line args inside IPython.
5282
5288
5283 2002-01-16 Fernando Perez <fperez@colorado.edu>
5289 2002-01-16 Fernando Perez <fperez@colorado.edu>
5284
5290
5285 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5291 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5286 to *not* include the last item given in a range. This brings their
5292 to *not* include the last item given in a range. This brings their
5287 behavior in line with Python's slicing:
5293 behavior in line with Python's slicing:
5288 a[n1:n2] -> a[n1]...a[n2-1]
5294 a[n1:n2] -> a[n1]...a[n2-1]
5289 It may be a bit less convenient, but I prefer to stick to Python's
5295 It may be a bit less convenient, but I prefer to stick to Python's
5290 conventions *everywhere*, so users never have to wonder.
5296 conventions *everywhere*, so users never have to wonder.
5291 (Magic.magic_macro): Added @macro function to ease the creation of
5297 (Magic.magic_macro): Added @macro function to ease the creation of
5292 macros.
5298 macros.
5293
5299
5294 2002-01-05 Fernando Perez <fperez@colorado.edu>
5300 2002-01-05 Fernando Perez <fperez@colorado.edu>
5295
5301
5296 * Released 0.2.4.
5302 * Released 0.2.4.
5297
5303
5298 * IPython/iplib.py (Magic.magic_pdef):
5304 * IPython/iplib.py (Magic.magic_pdef):
5299 (InteractiveShell.safe_execfile): report magic lines and error
5305 (InteractiveShell.safe_execfile): report magic lines and error
5300 lines without line numbers so one can easily copy/paste them for
5306 lines without line numbers so one can easily copy/paste them for
5301 re-execution.
5307 re-execution.
5302
5308
5303 * Updated manual with recent changes.
5309 * Updated manual with recent changes.
5304
5310
5305 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5311 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5306 docstring printing when class? is called. Very handy for knowing
5312 docstring printing when class? is called. Very handy for knowing
5307 how to create class instances (as long as __init__ is well
5313 how to create class instances (as long as __init__ is well
5308 documented, of course :)
5314 documented, of course :)
5309 (Magic.magic_doc): print both class and constructor docstrings.
5315 (Magic.magic_doc): print both class and constructor docstrings.
5310 (Magic.magic_pdef): give constructor info if passed a class and
5316 (Magic.magic_pdef): give constructor info if passed a class and
5311 __call__ info for callable object instances.
5317 __call__ info for callable object instances.
5312
5318
5313 2002-01-04 Fernando Perez <fperez@colorado.edu>
5319 2002-01-04 Fernando Perez <fperez@colorado.edu>
5314
5320
5315 * Made deep_reload() off by default. It doesn't always work
5321 * Made deep_reload() off by default. It doesn't always work
5316 exactly as intended, so it's probably safer to have it off. It's
5322 exactly as intended, so it's probably safer to have it off. It's
5317 still available as dreload() anyway, so nothing is lost.
5323 still available as dreload() anyway, so nothing is lost.
5318
5324
5319 2002-01-02 Fernando Perez <fperez@colorado.edu>
5325 2002-01-02 Fernando Perez <fperez@colorado.edu>
5320
5326
5321 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5327 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5322 so I wanted an updated release).
5328 so I wanted an updated release).
5323
5329
5324 2001-12-27 Fernando Perez <fperez@colorado.edu>
5330 2001-12-27 Fernando Perez <fperez@colorado.edu>
5325
5331
5326 * IPython/iplib.py (InteractiveShell.interact): Added the original
5332 * IPython/iplib.py (InteractiveShell.interact): Added the original
5327 code from 'code.py' for this module in order to change the
5333 code from 'code.py' for this module in order to change the
5328 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5334 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5329 the history cache would break when the user hit Ctrl-C, and
5335 the history cache would break when the user hit Ctrl-C, and
5330 interact() offers no way to add any hooks to it.
5336 interact() offers no way to add any hooks to it.
5331
5337
5332 2001-12-23 Fernando Perez <fperez@colorado.edu>
5338 2001-12-23 Fernando Perez <fperez@colorado.edu>
5333
5339
5334 * setup.py: added check for 'MANIFEST' before trying to remove
5340 * setup.py: added check for 'MANIFEST' before trying to remove
5335 it. Thanks to Sean Reifschneider.
5341 it. Thanks to Sean Reifschneider.
5336
5342
5337 2001-12-22 Fernando Perez <fperez@colorado.edu>
5343 2001-12-22 Fernando Perez <fperez@colorado.edu>
5338
5344
5339 * Released 0.2.2.
5345 * Released 0.2.2.
5340
5346
5341 * Finished (reasonably) writing the manual. Later will add the
5347 * Finished (reasonably) writing the manual. Later will add the
5342 python-standard navigation stylesheets, but for the time being
5348 python-standard navigation stylesheets, but for the time being
5343 it's fairly complete. Distribution will include html and pdf
5349 it's fairly complete. Distribution will include html and pdf
5344 versions.
5350 versions.
5345
5351
5346 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5352 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5347 (MayaVi author).
5353 (MayaVi author).
5348
5354
5349 2001-12-21 Fernando Perez <fperez@colorado.edu>
5355 2001-12-21 Fernando Perez <fperez@colorado.edu>
5350
5356
5351 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5357 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5352 good public release, I think (with the manual and the distutils
5358 good public release, I think (with the manual and the distutils
5353 installer). The manual can use some work, but that can go
5359 installer). The manual can use some work, but that can go
5354 slowly. Otherwise I think it's quite nice for end users. Next
5360 slowly. Otherwise I think it's quite nice for end users. Next
5355 summer, rewrite the guts of it...
5361 summer, rewrite the guts of it...
5356
5362
5357 * Changed format of ipythonrc files to use whitespace as the
5363 * Changed format of ipythonrc files to use whitespace as the
5358 separator instead of an explicit '='. Cleaner.
5364 separator instead of an explicit '='. Cleaner.
5359
5365
5360 2001-12-20 Fernando Perez <fperez@colorado.edu>
5366 2001-12-20 Fernando Perez <fperez@colorado.edu>
5361
5367
5362 * Started a manual in LyX. For now it's just a quick merge of the
5368 * Started a manual in LyX. For now it's just a quick merge of the
5363 various internal docstrings and READMEs. Later it may grow into a
5369 various internal docstrings and READMEs. Later it may grow into a
5364 nice, full-blown manual.
5370 nice, full-blown manual.
5365
5371
5366 * Set up a distutils based installer. Installation should now be
5372 * Set up a distutils based installer. Installation should now be
5367 trivially simple for end-users.
5373 trivially simple for end-users.
5368
5374
5369 2001-12-11 Fernando Perez <fperez@colorado.edu>
5375 2001-12-11 Fernando Perez <fperez@colorado.edu>
5370
5376
5371 * Released 0.2.0. First public release, announced it at
5377 * Released 0.2.0. First public release, announced it at
5372 comp.lang.python. From now on, just bugfixes...
5378 comp.lang.python. From now on, just bugfixes...
5373
5379
5374 * Went through all the files, set copyright/license notices and
5380 * Went through all the files, set copyright/license notices and
5375 cleaned up things. Ready for release.
5381 cleaned up things. Ready for release.
5376
5382
5377 2001-12-10 Fernando Perez <fperez@colorado.edu>
5383 2001-12-10 Fernando Perez <fperez@colorado.edu>
5378
5384
5379 * Changed the first-time installer not to use tarfiles. It's more
5385 * Changed the first-time installer not to use tarfiles. It's more
5380 robust now and less unix-dependent. Also makes it easier for
5386 robust now and less unix-dependent. Also makes it easier for
5381 people to later upgrade versions.
5387 people to later upgrade versions.
5382
5388
5383 * Changed @exit to @abort to reflect the fact that it's pretty
5389 * Changed @exit to @abort to reflect the fact that it's pretty
5384 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5390 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5385 becomes significant only when IPyhton is embedded: in that case,
5391 becomes significant only when IPyhton is embedded: in that case,
5386 C-D closes IPython only, but @abort kills the enclosing program
5392 C-D closes IPython only, but @abort kills the enclosing program
5387 too (unless it had called IPython inside a try catching
5393 too (unless it had called IPython inside a try catching
5388 SystemExit).
5394 SystemExit).
5389
5395
5390 * Created Shell module which exposes the actuall IPython Shell
5396 * Created Shell module which exposes the actuall IPython Shell
5391 classes, currently the normal and the embeddable one. This at
5397 classes, currently the normal and the embeddable one. This at
5392 least offers a stable interface we won't need to change when
5398 least offers a stable interface we won't need to change when
5393 (later) the internals are rewritten. That rewrite will be confined
5399 (later) the internals are rewritten. That rewrite will be confined
5394 to iplib and ipmaker, but the Shell interface should remain as is.
5400 to iplib and ipmaker, but the Shell interface should remain as is.
5395
5401
5396 * Added embed module which offers an embeddable IPShell object,
5402 * Added embed module which offers an embeddable IPShell object,
5397 useful to fire up IPython *inside* a running program. Great for
5403 useful to fire up IPython *inside* a running program. Great for
5398 debugging or dynamical data analysis.
5404 debugging or dynamical data analysis.
5399
5405
5400 2001-12-08 Fernando Perez <fperez@colorado.edu>
5406 2001-12-08 Fernando Perez <fperez@colorado.edu>
5401
5407
5402 * Fixed small bug preventing seeing info from methods of defined
5408 * Fixed small bug preventing seeing info from methods of defined
5403 objects (incorrect namespace in _ofind()).
5409 objects (incorrect namespace in _ofind()).
5404
5410
5405 * Documentation cleanup. Moved the main usage docstrings to a
5411 * Documentation cleanup. Moved the main usage docstrings to a
5406 separate file, usage.py (cleaner to maintain, and hopefully in the
5412 separate file, usage.py (cleaner to maintain, and hopefully in the
5407 future some perlpod-like way of producing interactive, man and
5413 future some perlpod-like way of producing interactive, man and
5408 html docs out of it will be found).
5414 html docs out of it will be found).
5409
5415
5410 * Added @profile to see your profile at any time.
5416 * Added @profile to see your profile at any time.
5411
5417
5412 * Added @p as an alias for 'print'. It's especially convenient if
5418 * Added @p as an alias for 'print'. It's especially convenient if
5413 using automagic ('p x' prints x).
5419 using automagic ('p x' prints x).
5414
5420
5415 * Small cleanups and fixes after a pychecker run.
5421 * Small cleanups and fixes after a pychecker run.
5416
5422
5417 * Changed the @cd command to handle @cd - and @cd -<n> for
5423 * Changed the @cd command to handle @cd - and @cd -<n> for
5418 visiting any directory in _dh.
5424 visiting any directory in _dh.
5419
5425
5420 * Introduced _dh, a history of visited directories. @dhist prints
5426 * Introduced _dh, a history of visited directories. @dhist prints
5421 it out with numbers.
5427 it out with numbers.
5422
5428
5423 2001-12-07 Fernando Perez <fperez@colorado.edu>
5429 2001-12-07 Fernando Perez <fperez@colorado.edu>
5424
5430
5425 * Released 0.1.22
5431 * Released 0.1.22
5426
5432
5427 * Made initialization a bit more robust against invalid color
5433 * Made initialization a bit more robust against invalid color
5428 options in user input (exit, not traceback-crash).
5434 options in user input (exit, not traceback-crash).
5429
5435
5430 * Changed the bug crash reporter to write the report only in the
5436 * Changed the bug crash reporter to write the report only in the
5431 user's .ipython directory. That way IPython won't litter people's
5437 user's .ipython directory. That way IPython won't litter people's
5432 hard disks with crash files all over the place. Also print on
5438 hard disks with crash files all over the place. Also print on
5433 screen the necessary mail command.
5439 screen the necessary mail command.
5434
5440
5435 * With the new ultraTB, implemented LightBG color scheme for light
5441 * With the new ultraTB, implemented LightBG color scheme for light
5436 background terminals. A lot of people like white backgrounds, so I
5442 background terminals. A lot of people like white backgrounds, so I
5437 guess we should at least give them something readable.
5443 guess we should at least give them something readable.
5438
5444
5439 2001-12-06 Fernando Perez <fperez@colorado.edu>
5445 2001-12-06 Fernando Perez <fperez@colorado.edu>
5440
5446
5441 * Modified the structure of ultraTB. Now there's a proper class
5447 * Modified the structure of ultraTB. Now there's a proper class
5442 for tables of color schemes which allow adding schemes easily and
5448 for tables of color schemes which allow adding schemes easily and
5443 switching the active scheme without creating a new instance every
5449 switching the active scheme without creating a new instance every
5444 time (which was ridiculous). The syntax for creating new schemes
5450 time (which was ridiculous). The syntax for creating new schemes
5445 is also cleaner. I think ultraTB is finally done, with a clean
5451 is also cleaner. I think ultraTB is finally done, with a clean
5446 class structure. Names are also much cleaner (now there's proper
5452 class structure. Names are also much cleaner (now there's proper
5447 color tables, no need for every variable to also have 'color' in
5453 color tables, no need for every variable to also have 'color' in
5448 its name).
5454 its name).
5449
5455
5450 * Broke down genutils into separate files. Now genutils only
5456 * Broke down genutils into separate files. Now genutils only
5451 contains utility functions, and classes have been moved to their
5457 contains utility functions, and classes have been moved to their
5452 own files (they had enough independent functionality to warrant
5458 own files (they had enough independent functionality to warrant
5453 it): ConfigLoader, OutputTrap, Struct.
5459 it): ConfigLoader, OutputTrap, Struct.
5454
5460
5455 2001-12-05 Fernando Perez <fperez@colorado.edu>
5461 2001-12-05 Fernando Perez <fperez@colorado.edu>
5456
5462
5457 * IPython turns 21! Released version 0.1.21, as a candidate for
5463 * IPython turns 21! Released version 0.1.21, as a candidate for
5458 public consumption. If all goes well, release in a few days.
5464 public consumption. If all goes well, release in a few days.
5459
5465
5460 * Fixed path bug (files in Extensions/ directory wouldn't be found
5466 * Fixed path bug (files in Extensions/ directory wouldn't be found
5461 unless IPython/ was explicitly in sys.path).
5467 unless IPython/ was explicitly in sys.path).
5462
5468
5463 * Extended the FlexCompleter class as MagicCompleter to allow
5469 * Extended the FlexCompleter class as MagicCompleter to allow
5464 completion of @-starting lines.
5470 completion of @-starting lines.
5465
5471
5466 * Created __release__.py file as a central repository for release
5472 * Created __release__.py file as a central repository for release
5467 info that other files can read from.
5473 info that other files can read from.
5468
5474
5469 * Fixed small bug in logging: when logging was turned on in
5475 * Fixed small bug in logging: when logging was turned on in
5470 mid-session, old lines with special meanings (!@?) were being
5476 mid-session, old lines with special meanings (!@?) were being
5471 logged without the prepended comment, which is necessary since
5477 logged without the prepended comment, which is necessary since
5472 they are not truly valid python syntax. This should make session
5478 they are not truly valid python syntax. This should make session
5473 restores produce less errors.
5479 restores produce less errors.
5474
5480
5475 * The namespace cleanup forced me to make a FlexCompleter class
5481 * The namespace cleanup forced me to make a FlexCompleter class
5476 which is nothing but a ripoff of rlcompleter, but with selectable
5482 which is nothing but a ripoff of rlcompleter, but with selectable
5477 namespace (rlcompleter only works in __main__.__dict__). I'll try
5483 namespace (rlcompleter only works in __main__.__dict__). I'll try
5478 to submit a note to the authors to see if this change can be
5484 to submit a note to the authors to see if this change can be
5479 incorporated in future rlcompleter releases (Dec.6: done)
5485 incorporated in future rlcompleter releases (Dec.6: done)
5480
5486
5481 * More fixes to namespace handling. It was a mess! Now all
5487 * More fixes to namespace handling. It was a mess! Now all
5482 explicit references to __main__.__dict__ are gone (except when
5488 explicit references to __main__.__dict__ are gone (except when
5483 really needed) and everything is handled through the namespace
5489 really needed) and everything is handled through the namespace
5484 dicts in the IPython instance. We seem to be getting somewhere
5490 dicts in the IPython instance. We seem to be getting somewhere
5485 with this, finally...
5491 with this, finally...
5486
5492
5487 * Small documentation updates.
5493 * Small documentation updates.
5488
5494
5489 * Created the Extensions directory under IPython (with an
5495 * Created the Extensions directory under IPython (with an
5490 __init__.py). Put the PhysicalQ stuff there. This directory should
5496 __init__.py). Put the PhysicalQ stuff there. This directory should
5491 be used for all special-purpose extensions.
5497 be used for all special-purpose extensions.
5492
5498
5493 * File renaming:
5499 * File renaming:
5494 ipythonlib --> ipmaker
5500 ipythonlib --> ipmaker
5495 ipplib --> iplib
5501 ipplib --> iplib
5496 This makes a bit more sense in terms of what these files actually do.
5502 This makes a bit more sense in terms of what these files actually do.
5497
5503
5498 * Moved all the classes and functions in ipythonlib to ipplib, so
5504 * Moved all the classes and functions in ipythonlib to ipplib, so
5499 now ipythonlib only has make_IPython(). This will ease up its
5505 now ipythonlib only has make_IPython(). This will ease up its
5500 splitting in smaller functional chunks later.
5506 splitting in smaller functional chunks later.
5501
5507
5502 * Cleaned up (done, I think) output of @whos. Better column
5508 * Cleaned up (done, I think) output of @whos. Better column
5503 formatting, and now shows str(var) for as much as it can, which is
5509 formatting, and now shows str(var) for as much as it can, which is
5504 typically what one gets with a 'print var'.
5510 typically what one gets with a 'print var'.
5505
5511
5506 2001-12-04 Fernando Perez <fperez@colorado.edu>
5512 2001-12-04 Fernando Perez <fperez@colorado.edu>
5507
5513
5508 * Fixed namespace problems. Now builtin/IPyhton/user names get
5514 * Fixed namespace problems. Now builtin/IPyhton/user names get
5509 properly reported in their namespace. Internal namespace handling
5515 properly reported in their namespace. Internal namespace handling
5510 is finally getting decent (not perfect yet, but much better than
5516 is finally getting decent (not perfect yet, but much better than
5511 the ad-hoc mess we had).
5517 the ad-hoc mess we had).
5512
5518
5513 * Removed -exit option. If people just want to run a python
5519 * Removed -exit option. If people just want to run a python
5514 script, that's what the normal interpreter is for. Less
5520 script, that's what the normal interpreter is for. Less
5515 unnecessary options, less chances for bugs.
5521 unnecessary options, less chances for bugs.
5516
5522
5517 * Added a crash handler which generates a complete post-mortem if
5523 * Added a crash handler which generates a complete post-mortem if
5518 IPython crashes. This will help a lot in tracking bugs down the
5524 IPython crashes. This will help a lot in tracking bugs down the
5519 road.
5525 road.
5520
5526
5521 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5527 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5522 which were boud to functions being reassigned would bypass the
5528 which were boud to functions being reassigned would bypass the
5523 logger, breaking the sync of _il with the prompt counter. This
5529 logger, breaking the sync of _il with the prompt counter. This
5524 would then crash IPython later when a new line was logged.
5530 would then crash IPython later when a new line was logged.
5525
5531
5526 2001-12-02 Fernando Perez <fperez@colorado.edu>
5532 2001-12-02 Fernando Perez <fperez@colorado.edu>
5527
5533
5528 * Made IPython a package. This means people don't have to clutter
5534 * Made IPython a package. This means people don't have to clutter
5529 their sys.path with yet another directory. Changed the INSTALL
5535 their sys.path with yet another directory. Changed the INSTALL
5530 file accordingly.
5536 file accordingly.
5531
5537
5532 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5538 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5533 sorts its output (so @who shows it sorted) and @whos formats the
5539 sorts its output (so @who shows it sorted) and @whos formats the
5534 table according to the width of the first column. Nicer, easier to
5540 table according to the width of the first column. Nicer, easier to
5535 read. Todo: write a generic table_format() which takes a list of
5541 read. Todo: write a generic table_format() which takes a list of
5536 lists and prints it nicely formatted, with optional row/column
5542 lists and prints it nicely formatted, with optional row/column
5537 separators and proper padding and justification.
5543 separators and proper padding and justification.
5538
5544
5539 * Released 0.1.20
5545 * Released 0.1.20
5540
5546
5541 * Fixed bug in @log which would reverse the inputcache list (a
5547 * Fixed bug in @log which would reverse the inputcache list (a
5542 copy operation was missing).
5548 copy operation was missing).
5543
5549
5544 * Code cleanup. @config was changed to use page(). Better, since
5550 * Code cleanup. @config was changed to use page(). Better, since
5545 its output is always quite long.
5551 its output is always quite long.
5546
5552
5547 * Itpl is back as a dependency. I was having too many problems
5553 * Itpl is back as a dependency. I was having too many problems
5548 getting the parametric aliases to work reliably, and it's just
5554 getting the parametric aliases to work reliably, and it's just
5549 easier to code weird string operations with it than playing %()s
5555 easier to code weird string operations with it than playing %()s
5550 games. It's only ~6k, so I don't think it's too big a deal.
5556 games. It's only ~6k, so I don't think it's too big a deal.
5551
5557
5552 * Found (and fixed) a very nasty bug with history. !lines weren't
5558 * Found (and fixed) a very nasty bug with history. !lines weren't
5553 getting cached, and the out of sync caches would crash
5559 getting cached, and the out of sync caches would crash
5554 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5560 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5555 division of labor a bit better. Bug fixed, cleaner structure.
5561 division of labor a bit better. Bug fixed, cleaner structure.
5556
5562
5557 2001-12-01 Fernando Perez <fperez@colorado.edu>
5563 2001-12-01 Fernando Perez <fperez@colorado.edu>
5558
5564
5559 * Released 0.1.19
5565 * Released 0.1.19
5560
5566
5561 * Added option -n to @hist to prevent line number printing. Much
5567 * Added option -n to @hist to prevent line number printing. Much
5562 easier to copy/paste code this way.
5568 easier to copy/paste code this way.
5563
5569
5564 * Created global _il to hold the input list. Allows easy
5570 * Created global _il to hold the input list. Allows easy
5565 re-execution of blocks of code by slicing it (inspired by Janko's
5571 re-execution of blocks of code by slicing it (inspired by Janko's
5566 comment on 'macros').
5572 comment on 'macros').
5567
5573
5568 * Small fixes and doc updates.
5574 * Small fixes and doc updates.
5569
5575
5570 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5576 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5571 much too fragile with automagic. Handles properly multi-line
5577 much too fragile with automagic. Handles properly multi-line
5572 statements and takes parameters.
5578 statements and takes parameters.
5573
5579
5574 2001-11-30 Fernando Perez <fperez@colorado.edu>
5580 2001-11-30 Fernando Perez <fperez@colorado.edu>
5575
5581
5576 * Version 0.1.18 released.
5582 * Version 0.1.18 released.
5577
5583
5578 * Fixed nasty namespace bug in initial module imports.
5584 * Fixed nasty namespace bug in initial module imports.
5579
5585
5580 * Added copyright/license notes to all code files (except
5586 * Added copyright/license notes to all code files (except
5581 DPyGetOpt). For the time being, LGPL. That could change.
5587 DPyGetOpt). For the time being, LGPL. That could change.
5582
5588
5583 * Rewrote a much nicer README, updated INSTALL, cleaned up
5589 * Rewrote a much nicer README, updated INSTALL, cleaned up
5584 ipythonrc-* samples.
5590 ipythonrc-* samples.
5585
5591
5586 * Overall code/documentation cleanup. Basically ready for
5592 * Overall code/documentation cleanup. Basically ready for
5587 release. Only remaining thing: licence decision (LGPL?).
5593 release. Only remaining thing: licence decision (LGPL?).
5588
5594
5589 * Converted load_config to a class, ConfigLoader. Now recursion
5595 * Converted load_config to a class, ConfigLoader. Now recursion
5590 control is better organized. Doesn't include the same file twice.
5596 control is better organized. Doesn't include the same file twice.
5591
5597
5592 2001-11-29 Fernando Perez <fperez@colorado.edu>
5598 2001-11-29 Fernando Perez <fperez@colorado.edu>
5593
5599
5594 * Got input history working. Changed output history variables from
5600 * Got input history working. Changed output history variables from
5595 _p to _o so that _i is for input and _o for output. Just cleaner
5601 _p to _o so that _i is for input and _o for output. Just cleaner
5596 convention.
5602 convention.
5597
5603
5598 * Implemented parametric aliases. This pretty much allows the
5604 * Implemented parametric aliases. This pretty much allows the
5599 alias system to offer full-blown shell convenience, I think.
5605 alias system to offer full-blown shell convenience, I think.
5600
5606
5601 * Version 0.1.17 released, 0.1.18 opened.
5607 * Version 0.1.17 released, 0.1.18 opened.
5602
5608
5603 * dot_ipython/ipythonrc (alias): added documentation.
5609 * dot_ipython/ipythonrc (alias): added documentation.
5604 (xcolor): Fixed small bug (xcolors -> xcolor)
5610 (xcolor): Fixed small bug (xcolors -> xcolor)
5605
5611
5606 * Changed the alias system. Now alias is a magic command to define
5612 * Changed the alias system. Now alias is a magic command to define
5607 aliases just like the shell. Rationale: the builtin magics should
5613 aliases just like the shell. Rationale: the builtin magics should
5608 be there for things deeply connected to IPython's
5614 be there for things deeply connected to IPython's
5609 architecture. And this is a much lighter system for what I think
5615 architecture. And this is a much lighter system for what I think
5610 is the really important feature: allowing users to define quickly
5616 is the really important feature: allowing users to define quickly
5611 magics that will do shell things for them, so they can customize
5617 magics that will do shell things for them, so they can customize
5612 IPython easily to match their work habits. If someone is really
5618 IPython easily to match their work habits. If someone is really
5613 desperate to have another name for a builtin alias, they can
5619 desperate to have another name for a builtin alias, they can
5614 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5620 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5615 works.
5621 works.
5616
5622
5617 2001-11-28 Fernando Perez <fperez@colorado.edu>
5623 2001-11-28 Fernando Perez <fperez@colorado.edu>
5618
5624
5619 * Changed @file so that it opens the source file at the proper
5625 * Changed @file so that it opens the source file at the proper
5620 line. Since it uses less, if your EDITOR environment is
5626 line. Since it uses less, if your EDITOR environment is
5621 configured, typing v will immediately open your editor of choice
5627 configured, typing v will immediately open your editor of choice
5622 right at the line where the object is defined. Not as quick as
5628 right at the line where the object is defined. Not as quick as
5623 having a direct @edit command, but for all intents and purposes it
5629 having a direct @edit command, but for all intents and purposes it
5624 works. And I don't have to worry about writing @edit to deal with
5630 works. And I don't have to worry about writing @edit to deal with
5625 all the editors, less does that.
5631 all the editors, less does that.
5626
5632
5627 * Version 0.1.16 released, 0.1.17 opened.
5633 * Version 0.1.16 released, 0.1.17 opened.
5628
5634
5629 * Fixed some nasty bugs in the page/page_dumb combo that could
5635 * Fixed some nasty bugs in the page/page_dumb combo that could
5630 crash IPython.
5636 crash IPython.
5631
5637
5632 2001-11-27 Fernando Perez <fperez@colorado.edu>
5638 2001-11-27 Fernando Perez <fperez@colorado.edu>
5633
5639
5634 * Version 0.1.15 released, 0.1.16 opened.
5640 * Version 0.1.15 released, 0.1.16 opened.
5635
5641
5636 * Finally got ? and ?? to work for undefined things: now it's
5642 * Finally got ? and ?? to work for undefined things: now it's
5637 possible to type {}.get? and get information about the get method
5643 possible to type {}.get? and get information about the get method
5638 of dicts, or os.path? even if only os is defined (so technically
5644 of dicts, or os.path? even if only os is defined (so technically
5639 os.path isn't). Works at any level. For example, after import os,
5645 os.path isn't). Works at any level. For example, after import os,
5640 os?, os.path?, os.path.abspath? all work. This is great, took some
5646 os?, os.path?, os.path.abspath? all work. This is great, took some
5641 work in _ofind.
5647 work in _ofind.
5642
5648
5643 * Fixed more bugs with logging. The sanest way to do it was to add
5649 * Fixed more bugs with logging. The sanest way to do it was to add
5644 to @log a 'mode' parameter. Killed two in one shot (this mode
5650 to @log a 'mode' parameter. Killed two in one shot (this mode
5645 option was a request of Janko's). I think it's finally clean
5651 option was a request of Janko's). I think it's finally clean
5646 (famous last words).
5652 (famous last words).
5647
5653
5648 * Added a page_dumb() pager which does a decent job of paging on
5654 * Added a page_dumb() pager which does a decent job of paging on
5649 screen, if better things (like less) aren't available. One less
5655 screen, if better things (like less) aren't available. One less
5650 unix dependency (someday maybe somebody will port this to
5656 unix dependency (someday maybe somebody will port this to
5651 windows).
5657 windows).
5652
5658
5653 * Fixed problem in magic_log: would lock of logging out if log
5659 * Fixed problem in magic_log: would lock of logging out if log
5654 creation failed (because it would still think it had succeeded).
5660 creation failed (because it would still think it had succeeded).
5655
5661
5656 * Improved the page() function using curses to auto-detect screen
5662 * Improved the page() function using curses to auto-detect screen
5657 size. Now it can make a much better decision on whether to print
5663 size. Now it can make a much better decision on whether to print
5658 or page a string. Option screen_length was modified: a value 0
5664 or page a string. Option screen_length was modified: a value 0
5659 means auto-detect, and that's the default now.
5665 means auto-detect, and that's the default now.
5660
5666
5661 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5667 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5662 go out. I'll test it for a few days, then talk to Janko about
5668 go out. I'll test it for a few days, then talk to Janko about
5663 licences and announce it.
5669 licences and announce it.
5664
5670
5665 * Fixed the length of the auto-generated ---> prompt which appears
5671 * Fixed the length of the auto-generated ---> prompt which appears
5666 for auto-parens and auto-quotes. Getting this right isn't trivial,
5672 for auto-parens and auto-quotes. Getting this right isn't trivial,
5667 with all the color escapes, different prompt types and optional
5673 with all the color escapes, different prompt types and optional
5668 separators. But it seems to be working in all the combinations.
5674 separators. But it seems to be working in all the combinations.
5669
5675
5670 2001-11-26 Fernando Perez <fperez@colorado.edu>
5676 2001-11-26 Fernando Perez <fperez@colorado.edu>
5671
5677
5672 * Wrote a regexp filter to get option types from the option names
5678 * Wrote a regexp filter to get option types from the option names
5673 string. This eliminates the need to manually keep two duplicate
5679 string. This eliminates the need to manually keep two duplicate
5674 lists.
5680 lists.
5675
5681
5676 * Removed the unneeded check_option_names. Now options are handled
5682 * Removed the unneeded check_option_names. Now options are handled
5677 in a much saner manner and it's easy to visually check that things
5683 in a much saner manner and it's easy to visually check that things
5678 are ok.
5684 are ok.
5679
5685
5680 * Updated version numbers on all files I modified to carry a
5686 * Updated version numbers on all files I modified to carry a
5681 notice so Janko and Nathan have clear version markers.
5687 notice so Janko and Nathan have clear version markers.
5682
5688
5683 * Updated docstring for ultraTB with my changes. I should send
5689 * Updated docstring for ultraTB with my changes. I should send
5684 this to Nathan.
5690 this to Nathan.
5685
5691
5686 * Lots of small fixes. Ran everything through pychecker again.
5692 * Lots of small fixes. Ran everything through pychecker again.
5687
5693
5688 * Made loading of deep_reload an cmd line option. If it's not too
5694 * Made loading of deep_reload an cmd line option. If it's not too
5689 kosher, now people can just disable it. With -nodeep_reload it's
5695 kosher, now people can just disable it. With -nodeep_reload it's
5690 still available as dreload(), it just won't overwrite reload().
5696 still available as dreload(), it just won't overwrite reload().
5691
5697
5692 * Moved many options to the no| form (-opt and -noopt
5698 * Moved many options to the no| form (-opt and -noopt
5693 accepted). Cleaner.
5699 accepted). Cleaner.
5694
5700
5695 * Changed magic_log so that if called with no parameters, it uses
5701 * Changed magic_log so that if called with no parameters, it uses
5696 'rotate' mode. That way auto-generated logs aren't automatically
5702 'rotate' mode. That way auto-generated logs aren't automatically
5697 over-written. For normal logs, now a backup is made if it exists
5703 over-written. For normal logs, now a backup is made if it exists
5698 (only 1 level of backups). A new 'backup' mode was added to the
5704 (only 1 level of backups). A new 'backup' mode was added to the
5699 Logger class to support this. This was a request by Janko.
5705 Logger class to support this. This was a request by Janko.
5700
5706
5701 * Added @logoff/@logon to stop/restart an active log.
5707 * Added @logoff/@logon to stop/restart an active log.
5702
5708
5703 * Fixed a lot of bugs in log saving/replay. It was pretty
5709 * Fixed a lot of bugs in log saving/replay. It was pretty
5704 broken. Now special lines (!@,/) appear properly in the command
5710 broken. Now special lines (!@,/) appear properly in the command
5705 history after a log replay.
5711 history after a log replay.
5706
5712
5707 * Tried and failed to implement full session saving via pickle. My
5713 * Tried and failed to implement full session saving via pickle. My
5708 idea was to pickle __main__.__dict__, but modules can't be
5714 idea was to pickle __main__.__dict__, but modules can't be
5709 pickled. This would be a better alternative to replaying logs, but
5715 pickled. This would be a better alternative to replaying logs, but
5710 seems quite tricky to get to work. Changed -session to be called
5716 seems quite tricky to get to work. Changed -session to be called
5711 -logplay, which more accurately reflects what it does. And if we
5717 -logplay, which more accurately reflects what it does. And if we
5712 ever get real session saving working, -session is now available.
5718 ever get real session saving working, -session is now available.
5713
5719
5714 * Implemented color schemes for prompts also. As for tracebacks,
5720 * Implemented color schemes for prompts also. As for tracebacks,
5715 currently only NoColor and Linux are supported. But now the
5721 currently only NoColor and Linux are supported. But now the
5716 infrastructure is in place, based on a generic ColorScheme
5722 infrastructure is in place, based on a generic ColorScheme
5717 class. So writing and activating new schemes both for the prompts
5723 class. So writing and activating new schemes both for the prompts
5718 and the tracebacks should be straightforward.
5724 and the tracebacks should be straightforward.
5719
5725
5720 * Version 0.1.13 released, 0.1.14 opened.
5726 * Version 0.1.13 released, 0.1.14 opened.
5721
5727
5722 * Changed handling of options for output cache. Now counter is
5728 * Changed handling of options for output cache. Now counter is
5723 hardwired starting at 1 and one specifies the maximum number of
5729 hardwired starting at 1 and one specifies the maximum number of
5724 entries *in the outcache* (not the max prompt counter). This is
5730 entries *in the outcache* (not the max prompt counter). This is
5725 much better, since many statements won't increase the cache
5731 much better, since many statements won't increase the cache
5726 count. It also eliminated some confusing options, now there's only
5732 count. It also eliminated some confusing options, now there's only
5727 one: cache_size.
5733 one: cache_size.
5728
5734
5729 * Added 'alias' magic function and magic_alias option in the
5735 * Added 'alias' magic function and magic_alias option in the
5730 ipythonrc file. Now the user can easily define whatever names he
5736 ipythonrc file. Now the user can easily define whatever names he
5731 wants for the magic functions without having to play weird
5737 wants for the magic functions without having to play weird
5732 namespace games. This gives IPython a real shell-like feel.
5738 namespace games. This gives IPython a real shell-like feel.
5733
5739
5734 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5740 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5735 @ or not).
5741 @ or not).
5736
5742
5737 This was one of the last remaining 'visible' bugs (that I know
5743 This was one of the last remaining 'visible' bugs (that I know
5738 of). I think if I can clean up the session loading so it works
5744 of). I think if I can clean up the session loading so it works
5739 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5745 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5740 about licensing).
5746 about licensing).
5741
5747
5742 2001-11-25 Fernando Perez <fperez@colorado.edu>
5748 2001-11-25 Fernando Perez <fperez@colorado.edu>
5743
5749
5744 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5750 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5745 there's a cleaner distinction between what ? and ?? show.
5751 there's a cleaner distinction between what ? and ?? show.
5746
5752
5747 * Added screen_length option. Now the user can define his own
5753 * Added screen_length option. Now the user can define his own
5748 screen size for page() operations.
5754 screen size for page() operations.
5749
5755
5750 * Implemented magic shell-like functions with automatic code
5756 * Implemented magic shell-like functions with automatic code
5751 generation. Now adding another function is just a matter of adding
5757 generation. Now adding another function is just a matter of adding
5752 an entry to a dict, and the function is dynamically generated at
5758 an entry to a dict, and the function is dynamically generated at
5753 run-time. Python has some really cool features!
5759 run-time. Python has some really cool features!
5754
5760
5755 * Renamed many options to cleanup conventions a little. Now all
5761 * Renamed many options to cleanup conventions a little. Now all
5756 are lowercase, and only underscores where needed. Also in the code
5762 are lowercase, and only underscores where needed. Also in the code
5757 option name tables are clearer.
5763 option name tables are clearer.
5758
5764
5759 * Changed prompts a little. Now input is 'In [n]:' instead of
5765 * Changed prompts a little. Now input is 'In [n]:' instead of
5760 'In[n]:='. This allows it the numbers to be aligned with the
5766 'In[n]:='. This allows it the numbers to be aligned with the
5761 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5767 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5762 Python (it was a Mathematica thing). The '...' continuation prompt
5768 Python (it was a Mathematica thing). The '...' continuation prompt
5763 was also changed a little to align better.
5769 was also changed a little to align better.
5764
5770
5765 * Fixed bug when flushing output cache. Not all _p<n> variables
5771 * Fixed bug when flushing output cache. Not all _p<n> variables
5766 exist, so their deletion needs to be wrapped in a try:
5772 exist, so their deletion needs to be wrapped in a try:
5767
5773
5768 * Figured out how to properly use inspect.formatargspec() (it
5774 * Figured out how to properly use inspect.formatargspec() (it
5769 requires the args preceded by *). So I removed all the code from
5775 requires the args preceded by *). So I removed all the code from
5770 _get_pdef in Magic, which was just replicating that.
5776 _get_pdef in Magic, which was just replicating that.
5771
5777
5772 * Added test to prefilter to allow redefining magic function names
5778 * Added test to prefilter to allow redefining magic function names
5773 as variables. This is ok, since the @ form is always available,
5779 as variables. This is ok, since the @ form is always available,
5774 but whe should allow the user to define a variable called 'ls' if
5780 but whe should allow the user to define a variable called 'ls' if
5775 he needs it.
5781 he needs it.
5776
5782
5777 * Moved the ToDo information from README into a separate ToDo.
5783 * Moved the ToDo information from README into a separate ToDo.
5778
5784
5779 * General code cleanup and small bugfixes. I think it's close to a
5785 * General code cleanup and small bugfixes. I think it's close to a
5780 state where it can be released, obviously with a big 'beta'
5786 state where it can be released, obviously with a big 'beta'
5781 warning on it.
5787 warning on it.
5782
5788
5783 * Got the magic function split to work. Now all magics are defined
5789 * Got the magic function split to work. Now all magics are defined
5784 in a separate class. It just organizes things a bit, and now
5790 in a separate class. It just organizes things a bit, and now
5785 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5791 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5786 was too long).
5792 was too long).
5787
5793
5788 * Changed @clear to @reset to avoid potential confusions with
5794 * Changed @clear to @reset to avoid potential confusions with
5789 the shell command clear. Also renamed @cl to @clear, which does
5795 the shell command clear. Also renamed @cl to @clear, which does
5790 exactly what people expect it to from their shell experience.
5796 exactly what people expect it to from their shell experience.
5791
5797
5792 Added a check to the @reset command (since it's so
5798 Added a check to the @reset command (since it's so
5793 destructive, it's probably a good idea to ask for confirmation).
5799 destructive, it's probably a good idea to ask for confirmation).
5794 But now reset only works for full namespace resetting. Since the
5800 But now reset only works for full namespace resetting. Since the
5795 del keyword is already there for deleting a few specific
5801 del keyword is already there for deleting a few specific
5796 variables, I don't see the point of having a redundant magic
5802 variables, I don't see the point of having a redundant magic
5797 function for the same task.
5803 function for the same task.
5798
5804
5799 2001-11-24 Fernando Perez <fperez@colorado.edu>
5805 2001-11-24 Fernando Perez <fperez@colorado.edu>
5800
5806
5801 * Updated the builtin docs (esp. the ? ones).
5807 * Updated the builtin docs (esp. the ? ones).
5802
5808
5803 * Ran all the code through pychecker. Not terribly impressed with
5809 * Ran all the code through pychecker. Not terribly impressed with
5804 it: lots of spurious warnings and didn't really find anything of
5810 it: lots of spurious warnings and didn't really find anything of
5805 substance (just a few modules being imported and not used).
5811 substance (just a few modules being imported and not used).
5806
5812
5807 * Implemented the new ultraTB functionality into IPython. New
5813 * Implemented the new ultraTB functionality into IPython. New
5808 option: xcolors. This chooses color scheme. xmode now only selects
5814 option: xcolors. This chooses color scheme. xmode now only selects
5809 between Plain and Verbose. Better orthogonality.
5815 between Plain and Verbose. Better orthogonality.
5810
5816
5811 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5817 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5812 mode and color scheme for the exception handlers. Now it's
5818 mode and color scheme for the exception handlers. Now it's
5813 possible to have the verbose traceback with no coloring.
5819 possible to have the verbose traceback with no coloring.
5814
5820
5815 2001-11-23 Fernando Perez <fperez@colorado.edu>
5821 2001-11-23 Fernando Perez <fperez@colorado.edu>
5816
5822
5817 * Version 0.1.12 released, 0.1.13 opened.
5823 * Version 0.1.12 released, 0.1.13 opened.
5818
5824
5819 * Removed option to set auto-quote and auto-paren escapes by
5825 * Removed option to set auto-quote and auto-paren escapes by
5820 user. The chances of breaking valid syntax are just too high. If
5826 user. The chances of breaking valid syntax are just too high. If
5821 someone *really* wants, they can always dig into the code.
5827 someone *really* wants, they can always dig into the code.
5822
5828
5823 * Made prompt separators configurable.
5829 * Made prompt separators configurable.
5824
5830
5825 2001-11-22 Fernando Perez <fperez@colorado.edu>
5831 2001-11-22 Fernando Perez <fperez@colorado.edu>
5826
5832
5827 * Small bugfixes in many places.
5833 * Small bugfixes in many places.
5828
5834
5829 * Removed the MyCompleter class from ipplib. It seemed redundant
5835 * Removed the MyCompleter class from ipplib. It seemed redundant
5830 with the C-p,C-n history search functionality. Less code to
5836 with the C-p,C-n history search functionality. Less code to
5831 maintain.
5837 maintain.
5832
5838
5833 * Moved all the original ipython.py code into ipythonlib.py. Right
5839 * Moved all the original ipython.py code into ipythonlib.py. Right
5834 now it's just one big dump into a function called make_IPython, so
5840 now it's just one big dump into a function called make_IPython, so
5835 no real modularity has been gained. But at least it makes the
5841 no real modularity has been gained. But at least it makes the
5836 wrapper script tiny, and since ipythonlib is a module, it gets
5842 wrapper script tiny, and since ipythonlib is a module, it gets
5837 compiled and startup is much faster.
5843 compiled and startup is much faster.
5838
5844
5839 This is a reasobably 'deep' change, so we should test it for a
5845 This is a reasobably 'deep' change, so we should test it for a
5840 while without messing too much more with the code.
5846 while without messing too much more with the code.
5841
5847
5842 2001-11-21 Fernando Perez <fperez@colorado.edu>
5848 2001-11-21 Fernando Perez <fperez@colorado.edu>
5843
5849
5844 * Version 0.1.11 released, 0.1.12 opened for further work.
5850 * Version 0.1.11 released, 0.1.12 opened for further work.
5845
5851
5846 * Removed dependency on Itpl. It was only needed in one place. It
5852 * Removed dependency on Itpl. It was only needed in one place. It
5847 would be nice if this became part of python, though. It makes life
5853 would be nice if this became part of python, though. It makes life
5848 *a lot* easier in some cases.
5854 *a lot* easier in some cases.
5849
5855
5850 * Simplified the prefilter code a bit. Now all handlers are
5856 * Simplified the prefilter code a bit. Now all handlers are
5851 expected to explicitly return a value (at least a blank string).
5857 expected to explicitly return a value (at least a blank string).
5852
5858
5853 * Heavy edits in ipplib. Removed the help system altogether. Now
5859 * Heavy edits in ipplib. Removed the help system altogether. Now
5854 obj?/?? is used for inspecting objects, a magic @doc prints
5860 obj?/?? is used for inspecting objects, a magic @doc prints
5855 docstrings, and full-blown Python help is accessed via the 'help'
5861 docstrings, and full-blown Python help is accessed via the 'help'
5856 keyword. This cleans up a lot of code (less to maintain) and does
5862 keyword. This cleans up a lot of code (less to maintain) and does
5857 the job. Since 'help' is now a standard Python component, might as
5863 the job. Since 'help' is now a standard Python component, might as
5858 well use it and remove duplicate functionality.
5864 well use it and remove duplicate functionality.
5859
5865
5860 Also removed the option to use ipplib as a standalone program. By
5866 Also removed the option to use ipplib as a standalone program. By
5861 now it's too dependent on other parts of IPython to function alone.
5867 now it's too dependent on other parts of IPython to function alone.
5862
5868
5863 * Fixed bug in genutils.pager. It would crash if the pager was
5869 * Fixed bug in genutils.pager. It would crash if the pager was
5864 exited immediately after opening (broken pipe).
5870 exited immediately after opening (broken pipe).
5865
5871
5866 * Trimmed down the VerboseTB reporting a little. The header is
5872 * Trimmed down the VerboseTB reporting a little. The header is
5867 much shorter now and the repeated exception arguments at the end
5873 much shorter now and the repeated exception arguments at the end
5868 have been removed. For interactive use the old header seemed a bit
5874 have been removed. For interactive use the old header seemed a bit
5869 excessive.
5875 excessive.
5870
5876
5871 * Fixed small bug in output of @whos for variables with multi-word
5877 * Fixed small bug in output of @whos for variables with multi-word
5872 types (only first word was displayed).
5878 types (only first word was displayed).
5873
5879
5874 2001-11-17 Fernando Perez <fperez@colorado.edu>
5880 2001-11-17 Fernando Perez <fperez@colorado.edu>
5875
5881
5876 * Version 0.1.10 released, 0.1.11 opened for further work.
5882 * Version 0.1.10 released, 0.1.11 opened for further work.
5877
5883
5878 * Modified dirs and friends. dirs now *returns* the stack (not
5884 * Modified dirs and friends. dirs now *returns* the stack (not
5879 prints), so one can manipulate it as a variable. Convenient to
5885 prints), so one can manipulate it as a variable. Convenient to
5880 travel along many directories.
5886 travel along many directories.
5881
5887
5882 * Fixed bug in magic_pdef: would only work with functions with
5888 * Fixed bug in magic_pdef: would only work with functions with
5883 arguments with default values.
5889 arguments with default values.
5884
5890
5885 2001-11-14 Fernando Perez <fperez@colorado.edu>
5891 2001-11-14 Fernando Perez <fperez@colorado.edu>
5886
5892
5887 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5893 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5888 example with IPython. Various other minor fixes and cleanups.
5894 example with IPython. Various other minor fixes and cleanups.
5889
5895
5890 * Version 0.1.9 released, 0.1.10 opened for further work.
5896 * Version 0.1.9 released, 0.1.10 opened for further work.
5891
5897
5892 * Added sys.path to the list of directories searched in the
5898 * Added sys.path to the list of directories searched in the
5893 execfile= option. It used to be the current directory and the
5899 execfile= option. It used to be the current directory and the
5894 user's IPYTHONDIR only.
5900 user's IPYTHONDIR only.
5895
5901
5896 2001-11-13 Fernando Perez <fperez@colorado.edu>
5902 2001-11-13 Fernando Perez <fperez@colorado.edu>
5897
5903
5898 * Reinstated the raw_input/prefilter separation that Janko had
5904 * Reinstated the raw_input/prefilter separation that Janko had
5899 initially. This gives a more convenient setup for extending the
5905 initially. This gives a more convenient setup for extending the
5900 pre-processor from the outside: raw_input always gets a string,
5906 pre-processor from the outside: raw_input always gets a string,
5901 and prefilter has to process it. We can then redefine prefilter
5907 and prefilter has to process it. We can then redefine prefilter
5902 from the outside and implement extensions for special
5908 from the outside and implement extensions for special
5903 purposes.
5909 purposes.
5904
5910
5905 Today I got one for inputting PhysicalQuantity objects
5911 Today I got one for inputting PhysicalQuantity objects
5906 (from Scientific) without needing any function calls at
5912 (from Scientific) without needing any function calls at
5907 all. Extremely convenient, and it's all done as a user-level
5913 all. Extremely convenient, and it's all done as a user-level
5908 extension (no IPython code was touched). Now instead of:
5914 extension (no IPython code was touched). Now instead of:
5909 a = PhysicalQuantity(4.2,'m/s**2')
5915 a = PhysicalQuantity(4.2,'m/s**2')
5910 one can simply say
5916 one can simply say
5911 a = 4.2 m/s**2
5917 a = 4.2 m/s**2
5912 or even
5918 or even
5913 a = 4.2 m/s^2
5919 a = 4.2 m/s^2
5914
5920
5915 I use this, but it's also a proof of concept: IPython really is
5921 I use this, but it's also a proof of concept: IPython really is
5916 fully user-extensible, even at the level of the parsing of the
5922 fully user-extensible, even at the level of the parsing of the
5917 command line. It's not trivial, but it's perfectly doable.
5923 command line. It's not trivial, but it's perfectly doable.
5918
5924
5919 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5925 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5920 the problem of modules being loaded in the inverse order in which
5926 the problem of modules being loaded in the inverse order in which
5921 they were defined in
5927 they were defined in
5922
5928
5923 * Version 0.1.8 released, 0.1.9 opened for further work.
5929 * Version 0.1.8 released, 0.1.9 opened for further work.
5924
5930
5925 * Added magics pdef, source and file. They respectively show the
5931 * Added magics pdef, source and file. They respectively show the
5926 definition line ('prototype' in C), source code and full python
5932 definition line ('prototype' in C), source code and full python
5927 file for any callable object. The object inspector oinfo uses
5933 file for any callable object. The object inspector oinfo uses
5928 these to show the same information.
5934 these to show the same information.
5929
5935
5930 * Version 0.1.7 released, 0.1.8 opened for further work.
5936 * Version 0.1.7 released, 0.1.8 opened for further work.
5931
5937
5932 * Separated all the magic functions into a class called Magic. The
5938 * Separated all the magic functions into a class called Magic. The
5933 InteractiveShell class was becoming too big for Xemacs to handle
5939 InteractiveShell class was becoming too big for Xemacs to handle
5934 (de-indenting a line would lock it up for 10 seconds while it
5940 (de-indenting a line would lock it up for 10 seconds while it
5935 backtracked on the whole class!)
5941 backtracked on the whole class!)
5936
5942
5937 FIXME: didn't work. It can be done, but right now namespaces are
5943 FIXME: didn't work. It can be done, but right now namespaces are
5938 all messed up. Do it later (reverted it for now, so at least
5944 all messed up. Do it later (reverted it for now, so at least
5939 everything works as before).
5945 everything works as before).
5940
5946
5941 * Got the object introspection system (magic_oinfo) working! I
5947 * Got the object introspection system (magic_oinfo) working! I
5942 think this is pretty much ready for release to Janko, so he can
5948 think this is pretty much ready for release to Janko, so he can
5943 test it for a while and then announce it. Pretty much 100% of what
5949 test it for a while and then announce it. Pretty much 100% of what
5944 I wanted for the 'phase 1' release is ready. Happy, tired.
5950 I wanted for the 'phase 1' release is ready. Happy, tired.
5945
5951
5946 2001-11-12 Fernando Perez <fperez@colorado.edu>
5952 2001-11-12 Fernando Perez <fperez@colorado.edu>
5947
5953
5948 * Version 0.1.6 released, 0.1.7 opened for further work.
5954 * Version 0.1.6 released, 0.1.7 opened for further work.
5949
5955
5950 * Fixed bug in printing: it used to test for truth before
5956 * Fixed bug in printing: it used to test for truth before
5951 printing, so 0 wouldn't print. Now checks for None.
5957 printing, so 0 wouldn't print. Now checks for None.
5952
5958
5953 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5959 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5954 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5960 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5955 reaches by hand into the outputcache. Think of a better way to do
5961 reaches by hand into the outputcache. Think of a better way to do
5956 this later.
5962 this later.
5957
5963
5958 * Various small fixes thanks to Nathan's comments.
5964 * Various small fixes thanks to Nathan's comments.
5959
5965
5960 * Changed magic_pprint to magic_Pprint. This way it doesn't
5966 * Changed magic_pprint to magic_Pprint. This way it doesn't
5961 collide with pprint() and the name is consistent with the command
5967 collide with pprint() and the name is consistent with the command
5962 line option.
5968 line option.
5963
5969
5964 * Changed prompt counter behavior to be fully like
5970 * Changed prompt counter behavior to be fully like
5965 Mathematica's. That is, even input that doesn't return a result
5971 Mathematica's. That is, even input that doesn't return a result
5966 raises the prompt counter. The old behavior was kind of confusing
5972 raises the prompt counter. The old behavior was kind of confusing
5967 (getting the same prompt number several times if the operation
5973 (getting the same prompt number several times if the operation
5968 didn't return a result).
5974 didn't return a result).
5969
5975
5970 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5976 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5971
5977
5972 * Fixed -Classic mode (wasn't working anymore).
5978 * Fixed -Classic mode (wasn't working anymore).
5973
5979
5974 * Added colored prompts using Nathan's new code. Colors are
5980 * Added colored prompts using Nathan's new code. Colors are
5975 currently hardwired, they can be user-configurable. For
5981 currently hardwired, they can be user-configurable. For
5976 developers, they can be chosen in file ipythonlib.py, at the
5982 developers, they can be chosen in file ipythonlib.py, at the
5977 beginning of the CachedOutput class def.
5983 beginning of the CachedOutput class def.
5978
5984
5979 2001-11-11 Fernando Perez <fperez@colorado.edu>
5985 2001-11-11 Fernando Perez <fperez@colorado.edu>
5980
5986
5981 * Version 0.1.5 released, 0.1.6 opened for further work.
5987 * Version 0.1.5 released, 0.1.6 opened for further work.
5982
5988
5983 * Changed magic_env to *return* the environment as a dict (not to
5989 * Changed magic_env to *return* the environment as a dict (not to
5984 print it). This way it prints, but it can also be processed.
5990 print it). This way it prints, but it can also be processed.
5985
5991
5986 * Added Verbose exception reporting to interactive
5992 * Added Verbose exception reporting to interactive
5987 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5993 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5988 traceback. Had to make some changes to the ultraTB file. This is
5994 traceback. Had to make some changes to the ultraTB file. This is
5989 probably the last 'big' thing in my mental todo list. This ties
5995 probably the last 'big' thing in my mental todo list. This ties
5990 in with the next entry:
5996 in with the next entry:
5991
5997
5992 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5998 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5993 has to specify is Plain, Color or Verbose for all exception
5999 has to specify is Plain, Color or Verbose for all exception
5994 handling.
6000 handling.
5995
6001
5996 * Removed ShellServices option. All this can really be done via
6002 * Removed ShellServices option. All this can really be done via
5997 the magic system. It's easier to extend, cleaner and has automatic
6003 the magic system. It's easier to extend, cleaner and has automatic
5998 namespace protection and documentation.
6004 namespace protection and documentation.
5999
6005
6000 2001-11-09 Fernando Perez <fperez@colorado.edu>
6006 2001-11-09 Fernando Perez <fperez@colorado.edu>
6001
6007
6002 * Fixed bug in output cache flushing (missing parameter to
6008 * Fixed bug in output cache flushing (missing parameter to
6003 __init__). Other small bugs fixed (found using pychecker).
6009 __init__). Other small bugs fixed (found using pychecker).
6004
6010
6005 * Version 0.1.4 opened for bugfixing.
6011 * Version 0.1.4 opened for bugfixing.
6006
6012
6007 2001-11-07 Fernando Perez <fperez@colorado.edu>
6013 2001-11-07 Fernando Perez <fperez@colorado.edu>
6008
6014
6009 * Version 0.1.3 released, mainly because of the raw_input bug.
6015 * Version 0.1.3 released, mainly because of the raw_input bug.
6010
6016
6011 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6017 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6012 and when testing for whether things were callable, a call could
6018 and when testing for whether things were callable, a call could
6013 actually be made to certain functions. They would get called again
6019 actually be made to certain functions. They would get called again
6014 once 'really' executed, with a resulting double call. A disaster
6020 once 'really' executed, with a resulting double call. A disaster
6015 in many cases (list.reverse() would never work!).
6021 in many cases (list.reverse() would never work!).
6016
6022
6017 * Removed prefilter() function, moved its code to raw_input (which
6023 * Removed prefilter() function, moved its code to raw_input (which
6018 after all was just a near-empty caller for prefilter). This saves
6024 after all was just a near-empty caller for prefilter). This saves
6019 a function call on every prompt, and simplifies the class a tiny bit.
6025 a function call on every prompt, and simplifies the class a tiny bit.
6020
6026
6021 * Fix _ip to __ip name in magic example file.
6027 * Fix _ip to __ip name in magic example file.
6022
6028
6023 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6029 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6024 work with non-gnu versions of tar.
6030 work with non-gnu versions of tar.
6025
6031
6026 2001-11-06 Fernando Perez <fperez@colorado.edu>
6032 2001-11-06 Fernando Perez <fperez@colorado.edu>
6027
6033
6028 * Version 0.1.2. Just to keep track of the recent changes.
6034 * Version 0.1.2. Just to keep track of the recent changes.
6029
6035
6030 * Fixed nasty bug in output prompt routine. It used to check 'if
6036 * Fixed nasty bug in output prompt routine. It used to check 'if
6031 arg != None...'. Problem is, this fails if arg implements a
6037 arg != None...'. Problem is, this fails if arg implements a
6032 special comparison (__cmp__) which disallows comparing to
6038 special comparison (__cmp__) which disallows comparing to
6033 None. Found it when trying to use the PhysicalQuantity module from
6039 None. Found it when trying to use the PhysicalQuantity module from
6034 ScientificPython.
6040 ScientificPython.
6035
6041
6036 2001-11-05 Fernando Perez <fperez@colorado.edu>
6042 2001-11-05 Fernando Perez <fperez@colorado.edu>
6037
6043
6038 * Also added dirs. Now the pushd/popd/dirs family functions
6044 * Also added dirs. Now the pushd/popd/dirs family functions
6039 basically like the shell, with the added convenience of going home
6045 basically like the shell, with the added convenience of going home
6040 when called with no args.
6046 when called with no args.
6041
6047
6042 * pushd/popd slightly modified to mimic shell behavior more
6048 * pushd/popd slightly modified to mimic shell behavior more
6043 closely.
6049 closely.
6044
6050
6045 * Added env,pushd,popd from ShellServices as magic functions. I
6051 * Added env,pushd,popd from ShellServices as magic functions. I
6046 think the cleanest will be to port all desired functions from
6052 think the cleanest will be to port all desired functions from
6047 ShellServices as magics and remove ShellServices altogether. This
6053 ShellServices as magics and remove ShellServices altogether. This
6048 will provide a single, clean way of adding functionality
6054 will provide a single, clean way of adding functionality
6049 (shell-type or otherwise) to IP.
6055 (shell-type or otherwise) to IP.
6050
6056
6051 2001-11-04 Fernando Perez <fperez@colorado.edu>
6057 2001-11-04 Fernando Perez <fperez@colorado.edu>
6052
6058
6053 * Added .ipython/ directory to sys.path. This way users can keep
6059 * Added .ipython/ directory to sys.path. This way users can keep
6054 customizations there and access them via import.
6060 customizations there and access them via import.
6055
6061
6056 2001-11-03 Fernando Perez <fperez@colorado.edu>
6062 2001-11-03 Fernando Perez <fperez@colorado.edu>
6057
6063
6058 * Opened version 0.1.1 for new changes.
6064 * Opened version 0.1.1 for new changes.
6059
6065
6060 * Changed version number to 0.1.0: first 'public' release, sent to
6066 * Changed version number to 0.1.0: first 'public' release, sent to
6061 Nathan and Janko.
6067 Nathan and Janko.
6062
6068
6063 * Lots of small fixes and tweaks.
6069 * Lots of small fixes and tweaks.
6064
6070
6065 * Minor changes to whos format. Now strings are shown, snipped if
6071 * Minor changes to whos format. Now strings are shown, snipped if
6066 too long.
6072 too long.
6067
6073
6068 * Changed ShellServices to work on __main__ so they show up in @who
6074 * Changed ShellServices to work on __main__ so they show up in @who
6069
6075
6070 * Help also works with ? at the end of a line:
6076 * Help also works with ? at the end of a line:
6071 ?sin and sin?
6077 ?sin and sin?
6072 both produce the same effect. This is nice, as often I use the
6078 both produce the same effect. This is nice, as often I use the
6073 tab-complete to find the name of a method, but I used to then have
6079 tab-complete to find the name of a method, but I used to then have
6074 to go to the beginning of the line to put a ? if I wanted more
6080 to go to the beginning of the line to put a ? if I wanted more
6075 info. Now I can just add the ? and hit return. Convenient.
6081 info. Now I can just add the ? and hit return. Convenient.
6076
6082
6077 2001-11-02 Fernando Perez <fperez@colorado.edu>
6083 2001-11-02 Fernando Perez <fperez@colorado.edu>
6078
6084
6079 * Python version check (>=2.1) added.
6085 * Python version check (>=2.1) added.
6080
6086
6081 * Added LazyPython documentation. At this point the docs are quite
6087 * Added LazyPython documentation. At this point the docs are quite
6082 a mess. A cleanup is in order.
6088 a mess. A cleanup is in order.
6083
6089
6084 * Auto-installer created. For some bizarre reason, the zipfiles
6090 * Auto-installer created. For some bizarre reason, the zipfiles
6085 module isn't working on my system. So I made a tar version
6091 module isn't working on my system. So I made a tar version
6086 (hopefully the command line options in various systems won't kill
6092 (hopefully the command line options in various systems won't kill
6087 me).
6093 me).
6088
6094
6089 * Fixes to Struct in genutils. Now all dictionary-like methods are
6095 * Fixes to Struct in genutils. Now all dictionary-like methods are
6090 protected (reasonably).
6096 protected (reasonably).
6091
6097
6092 * Added pager function to genutils and changed ? to print usage
6098 * Added pager function to genutils and changed ? to print usage
6093 note through it (it was too long).
6099 note through it (it was too long).
6094
6100
6095 * Added the LazyPython functionality. Works great! I changed the
6101 * Added the LazyPython functionality. Works great! I changed the
6096 auto-quote escape to ';', it's on home row and next to '. But
6102 auto-quote escape to ';', it's on home row and next to '. But
6097 both auto-quote and auto-paren (still /) escapes are command-line
6103 both auto-quote and auto-paren (still /) escapes are command-line
6098 parameters.
6104 parameters.
6099
6105
6100
6106
6101 2001-11-01 Fernando Perez <fperez@colorado.edu>
6107 2001-11-01 Fernando Perez <fperez@colorado.edu>
6102
6108
6103 * Version changed to 0.0.7. Fairly large change: configuration now
6109 * Version changed to 0.0.7. Fairly large change: configuration now
6104 is all stored in a directory, by default .ipython. There, all
6110 is all stored in a directory, by default .ipython. There, all
6105 config files have normal looking names (not .names)
6111 config files have normal looking names (not .names)
6106
6112
6107 * Version 0.0.6 Released first to Lucas and Archie as a test
6113 * Version 0.0.6 Released first to Lucas and Archie as a test
6108 run. Since it's the first 'semi-public' release, change version to
6114 run. Since it's the first 'semi-public' release, change version to
6109 > 0.0.6 for any changes now.
6115 > 0.0.6 for any changes now.
6110
6116
6111 * Stuff I had put in the ipplib.py changelog:
6117 * Stuff I had put in the ipplib.py changelog:
6112
6118
6113 Changes to InteractiveShell:
6119 Changes to InteractiveShell:
6114
6120
6115 - Made the usage message a parameter.
6121 - Made the usage message a parameter.
6116
6122
6117 - Require the name of the shell variable to be given. It's a bit
6123 - Require the name of the shell variable to be given. It's a bit
6118 of a hack, but allows the name 'shell' not to be hardwired in the
6124 of a hack, but allows the name 'shell' not to be hardwired in the
6119 magic (@) handler, which is problematic b/c it requires
6125 magic (@) handler, which is problematic b/c it requires
6120 polluting the global namespace with 'shell'. This in turn is
6126 polluting the global namespace with 'shell'. This in turn is
6121 fragile: if a user redefines a variable called shell, things
6127 fragile: if a user redefines a variable called shell, things
6122 break.
6128 break.
6123
6129
6124 - magic @: all functions available through @ need to be defined
6130 - magic @: all functions available through @ need to be defined
6125 as magic_<name>, even though they can be called simply as
6131 as magic_<name>, even though they can be called simply as
6126 @<name>. This allows the special command @magic to gather
6132 @<name>. This allows the special command @magic to gather
6127 information automatically about all existing magic functions,
6133 information automatically about all existing magic functions,
6128 even if they are run-time user extensions, by parsing the shell
6134 even if they are run-time user extensions, by parsing the shell
6129 instance __dict__ looking for special magic_ names.
6135 instance __dict__ looking for special magic_ names.
6130
6136
6131 - mainloop: added *two* local namespace parameters. This allows
6137 - mainloop: added *two* local namespace parameters. This allows
6132 the class to differentiate between parameters which were there
6138 the class to differentiate between parameters which were there
6133 before and after command line initialization was processed. This
6139 before and after command line initialization was processed. This
6134 way, later @who can show things loaded at startup by the
6140 way, later @who can show things loaded at startup by the
6135 user. This trick was necessary to make session saving/reloading
6141 user. This trick was necessary to make session saving/reloading
6136 really work: ideally after saving/exiting/reloading a session,
6142 really work: ideally after saving/exiting/reloading a session,
6137 *everything* should look the same, including the output of @who. I
6143 *everything* should look the same, including the output of @who. I
6138 was only able to make this work with this double namespace
6144 was only able to make this work with this double namespace
6139 trick.
6145 trick.
6140
6146
6141 - added a header to the logfile which allows (almost) full
6147 - added a header to the logfile which allows (almost) full
6142 session restoring.
6148 session restoring.
6143
6149
6144 - prepend lines beginning with @ or !, with a and log
6150 - prepend lines beginning with @ or !, with a and log
6145 them. Why? !lines: may be useful to know what you did @lines:
6151 them. Why? !lines: may be useful to know what you did @lines:
6146 they may affect session state. So when restoring a session, at
6152 they may affect session state. So when restoring a session, at
6147 least inform the user of their presence. I couldn't quite get
6153 least inform the user of their presence. I couldn't quite get
6148 them to properly re-execute, but at least the user is warned.
6154 them to properly re-execute, but at least the user is warned.
6149
6155
6150 * Started ChangeLog.
6156 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now