##// END OF EJS Templates
check if readline is available before calling readline functions in ipy_defaults.py
jstenar -
Show More
@@ -1,59 +1,60 b''
1 """ Set default options for IPython.
1 """ Set default options for IPython.
2
2
3 Just import this module to get reasonable defaults for everything.
3 Just import this module to get reasonable defaults for everything.
4
4
5 These configurations used to be performed in ipythonrc (or ipythonrc.ini).
5 These configurations used to be performed in ipythonrc (or ipythonrc.ini).
6 Therefore importing this in your config files makes ipython basically
6 Therefore importing this in your config files makes ipython basically
7 ignore your ipythonrc. This is *not* imported by default, you need to import
7 ignore your ipythonrc. This is *not* imported by default, you need to import
8 this manually in one of your config files.
8 this manually in one of your config files.
9
9
10 You can further override these defaults in e.g. your ipy_user_config.py,
10 You can further override these defaults in e.g. your ipy_user_config.py,
11 ipy_profile_PROFILENAME etc.
11 ipy_profile_PROFILENAME etc.
12
12
13 """
13 """
14
14
15 import IPython.rlineimpl as readline
15 import IPython.rlineimpl as readline
16 import IPython.ipapi
16 import IPython.ipapi
17 ip = IPython.ipapi.get()
17 ip = IPython.ipapi.get()
18
18
19 o = ip.options
19 o = ip.options
20
20
21 o.colors = "Linux"
21 o.colors = "Linux"
22 o.color_info=1
22 o.color_info=1
23 o.confirm_exit=1
23 o.confirm_exit=1
24 o.pprint=1
24 o.pprint=1
25 o.multi_line_specials=1
25 o.multi_line_specials=1
26 o.xmode="Context"
26 o.xmode="Context"
27
27
28
28
29 o.prompt_in1='In [\#]: '
29 o.prompt_in1='In [\#]: '
30 o.prompt_in2 =' .\D.: '
30 o.prompt_in2 =' .\D.: '
31 o.prompt_out = 'Out[\#]: '
31 o.prompt_out = 'Out[\#]: '
32 o.prompts_pad_left=1
32 o.prompts_pad_left=1
33
33
34 o.readline_remove_delims="-/~"
34 o.readline_remove_delims="-/~"
35 o.readline_merge_completions=1
35 o.readline_merge_completions=1
36
36
37 o.readline = 1
37 o.readline = 1
38
38
39 rlopts = """\
39 rlopts = """\
40 tab: complete
40 tab: complete
41 "\C-l": possible-completions
41 "\C-l": possible-completions
42 set show-all-if-ambiguous on
42 set show-all-if-ambiguous on
43 "\C-o": tab-insert
43 "\C-o": tab-insert
44 "\M-i": " "
44 "\M-i": " "
45 "\M-o": "\d\d\d\d"
45 "\M-o": "\d\d\d\d"
46 "\M-I": "\d\d\d\d"
46 "\M-I": "\d\d\d\d"
47 "\C-r": reverse-search-history
47 "\C-r": reverse-search-history
48 "\C-s": forward-search-history
48 "\C-s": forward-search-history
49 "\C-p": history-search-backward
49 "\C-p": history-search-backward
50 "\C-n": history-search-forward
50 "\C-n": history-search-forward
51 "\e[A": history-search-backward
51 "\e[A": history-search-backward
52 "\e[B": history-search-forward
52 "\e[B": history-search-forward
53 "\C-k": kill-line
53 "\C-k": kill-line
54 "\C-u": unix-line-discard"""
54 "\C-u": unix-line-discard"""
55
55
56 if readline.have_readline:
56 for cmd in rlopts.split('\n'):
57 for cmd in rlopts.split('\n'):
57 readline.parse_and_bind(cmd)
58 readline.parse_and_bind(cmd)
58
59
59
60
@@ -1,6274 +1,6279 b''
1 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
2
3 * IPython/Extensions/ipy_defaults.py: Check if readline is available
4 before calling functions from readline.
5
1 2007-03-02 Walter Doerwald <walter@livinglogic.de>
6 2007-03-02 Walter Doerwald <walter@livinglogic.de>
2
7
3 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
8 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
4 igrid is a wxPython-based display object for ipipe. If your system has
9 igrid is a wxPython-based display object for ipipe. If your system has
5 wx installed igrid will be the default display. Without wx ipipe falls
10 wx installed igrid will be the default display. Without wx ipipe falls
6 back to ibrowse (which needs curses). If no curses is installed ipipe
11 back to ibrowse (which needs curses). If no curses is installed ipipe
7 falls back to idump.
12 falls back to idump.
8
13
9 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
14 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
10
15
11 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
16 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
12 my changes from yesterday, they introduced bugs. Will reactivate
17 my changes from yesterday, they introduced bugs. Will reactivate
13 once I get a correct solution, which will be much easier thanks to
18 once I get a correct solution, which will be much easier thanks to
14 Dan Milstein's new prefilter test suite.
19 Dan Milstein's new prefilter test suite.
15
20
16 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
21 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
17
22
18 * IPython/iplib.py (split_user_input): fix input splitting so we
23 * IPython/iplib.py (split_user_input): fix input splitting so we
19 don't attempt attribute accesses on things that can't possibly be
24 don't attempt attribute accesses on things that can't possibly be
20 valid Python attributes. After a bug report by Alex Schmolck.
25 valid Python attributes. After a bug report by Alex Schmolck.
21 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
26 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
22 %magic with explicit % prefix.
27 %magic with explicit % prefix.
23
28
24 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
29 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
25
30
26 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
31 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
27 avoid a DeprecationWarning from GTK.
32 avoid a DeprecationWarning from GTK.
28
33
29 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
34 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
30
35
31 * IPython/genutils.py (clock): I modified clock() to return total
36 * IPython/genutils.py (clock): I modified clock() to return total
32 time, user+system. This is a more commonly needed metric. I also
37 time, user+system. This is a more commonly needed metric. I also
33 introduced the new clocku/clocks to get only user/system time if
38 introduced the new clocku/clocks to get only user/system time if
34 one wants those instead.
39 one wants those instead.
35
40
36 ***WARNING: API CHANGE*** clock() used to return only user time,
41 ***WARNING: API CHANGE*** clock() used to return only user time,
37 so if you want exactly the same results as before, use clocku
42 so if you want exactly the same results as before, use clocku
38 instead.
43 instead.
39
44
40 2007-02-22 Ville Vainio <vivainio@gmail.com>
45 2007-02-22 Ville Vainio <vivainio@gmail.com>
41
46
42 * IPython/Extensions/ipy_p4.py: Extension for improved
47 * IPython/Extensions/ipy_p4.py: Extension for improved
43 p4 (perforce version control system) experience.
48 p4 (perforce version control system) experience.
44 Adds %p4 magic with p4 command completion and
49 Adds %p4 magic with p4 command completion and
45 automatic -G argument (marshall output as python dict)
50 automatic -G argument (marshall output as python dict)
46
51
47 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
52 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
48
53
49 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
54 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
50 stop marks.
55 stop marks.
51 (ClearingMixin): a simple mixin to easily make a Demo class clear
56 (ClearingMixin): a simple mixin to easily make a Demo class clear
52 the screen in between blocks and have empty marquees. The
57 the screen in between blocks and have empty marquees. The
53 ClearDemo and ClearIPDemo classes that use it are included.
58 ClearDemo and ClearIPDemo classes that use it are included.
54
59
55 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
60 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
56
61
57 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
62 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
58 protect against exceptions at Python shutdown time. Patch
63 protect against exceptions at Python shutdown time. Patch
59 sumbmitted to upstream.
64 sumbmitted to upstream.
60
65
61 2007-02-14 Walter Doerwald <walter@livinglogic.de>
66 2007-02-14 Walter Doerwald <walter@livinglogic.de>
62
67
63 * IPython/Extensions/ibrowse.py: If entering the first object level
68 * IPython/Extensions/ibrowse.py: If entering the first object level
64 (i.e. the object for which the browser has been started) fails,
69 (i.e. the object for which the browser has been started) fails,
65 now the error is raised directly (aborting the browser) instead of
70 now the error is raised directly (aborting the browser) instead of
66 running into an empty levels list later.
71 running into an empty levels list later.
67
72
68 2007-02-03 Walter Doerwald <walter@livinglogic.de>
73 2007-02-03 Walter Doerwald <walter@livinglogic.de>
69
74
70 * IPython/Extensions/ipipe.py: Add an xrepr implementation
75 * IPython/Extensions/ipipe.py: Add an xrepr implementation
71 for the noitem object.
76 for the noitem object.
72
77
73 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
78 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
74
79
75 * IPython/completer.py (Completer.attr_matches): Fix small
80 * IPython/completer.py (Completer.attr_matches): Fix small
76 tab-completion bug with Enthought Traits objects with units.
81 tab-completion bug with Enthought Traits objects with units.
77 Thanks to a bug report by Tom Denniston
82 Thanks to a bug report by Tom Denniston
78 <tom.denniston-AT-alum.dartmouth.org>.
83 <tom.denniston-AT-alum.dartmouth.org>.
79
84
80 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
85 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
81
86
82 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
87 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
83 bug where only .ipy or .py would be completed. Once the first
88 bug where only .ipy or .py would be completed. Once the first
84 argument to %run has been given, all completions are valid because
89 argument to %run has been given, all completions are valid because
85 they are the arguments to the script, which may well be non-python
90 they are the arguments to the script, which may well be non-python
86 filenames.
91 filenames.
87
92
88 * IPython/irunner.py (InteractiveRunner.run_source): major updates
93 * IPython/irunner.py (InteractiveRunner.run_source): major updates
89 to irunner to allow it to correctly support real doctesting of
94 to irunner to allow it to correctly support real doctesting of
90 out-of-process ipython code.
95 out-of-process ipython code.
91
96
92 * IPython/Magic.py (magic_cd): Make the setting of the terminal
97 * IPython/Magic.py (magic_cd): Make the setting of the terminal
93 title an option (-noterm_title) because it completely breaks
98 title an option (-noterm_title) because it completely breaks
94 doctesting.
99 doctesting.
95
100
96 * IPython/demo.py: fix IPythonDemo class that was not actually working.
101 * IPython/demo.py: fix IPythonDemo class that was not actually working.
97
102
98 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
103 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
99
104
100 * IPython/irunner.py (main): fix small bug where extensions were
105 * IPython/irunner.py (main): fix small bug where extensions were
101 not being correctly recognized.
106 not being correctly recognized.
102
107
103 2007-01-23 Walter Doerwald <walter@livinglogic.de>
108 2007-01-23 Walter Doerwald <walter@livinglogic.de>
104
109
105 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
110 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
106 a string containing a single line yields the string itself as the
111 a string containing a single line yields the string itself as the
107 only item.
112 only item.
108
113
109 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
114 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
110 object if it's the same as the one on the last level (This avoids
115 object if it's the same as the one on the last level (This avoids
111 infinite recursion for one line strings).
116 infinite recursion for one line strings).
112
117
113 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
118 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
114
119
115 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
120 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
116 all output streams before printing tracebacks. This ensures that
121 all output streams before printing tracebacks. This ensures that
117 user output doesn't end up interleaved with traceback output.
122 user output doesn't end up interleaved with traceback output.
118
123
119 2007-01-10 Ville Vainio <vivainio@gmail.com>
124 2007-01-10 Ville Vainio <vivainio@gmail.com>
120
125
121 * Extensions/envpersist.py: Turbocharged %env that remembers
126 * Extensions/envpersist.py: Turbocharged %env that remembers
122 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
127 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
123 "%env VISUAL=jed".
128 "%env VISUAL=jed".
124
129
125 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
130 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
126
131
127 * IPython/iplib.py (showtraceback): ensure that we correctly call
132 * IPython/iplib.py (showtraceback): ensure that we correctly call
128 custom handlers in all cases (some with pdb were slipping through,
133 custom handlers in all cases (some with pdb were slipping through,
129 but I'm not exactly sure why).
134 but I'm not exactly sure why).
130
135
131 * IPython/Debugger.py (Tracer.__init__): added new class to
136 * IPython/Debugger.py (Tracer.__init__): added new class to
132 support set_trace-like usage of IPython's enhanced debugger.
137 support set_trace-like usage of IPython's enhanced debugger.
133
138
134 2006-12-24 Ville Vainio <vivainio@gmail.com>
139 2006-12-24 Ville Vainio <vivainio@gmail.com>
135
140
136 * ipmaker.py: more informative message when ipy_user_conf
141 * ipmaker.py: more informative message when ipy_user_conf
137 import fails (suggest running %upgrade).
142 import fails (suggest running %upgrade).
138
143
139 * tools/run_ipy_in_profiler.py: Utility to see where
144 * tools/run_ipy_in_profiler.py: Utility to see where
140 the time during IPython startup is spent.
145 the time during IPython startup is spent.
141
146
142 2006-12-20 Ville Vainio <vivainio@gmail.com>
147 2006-12-20 Ville Vainio <vivainio@gmail.com>
143
148
144 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
149 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
145
150
146 * ipapi.py: Add new ipapi method, expand_alias.
151 * ipapi.py: Add new ipapi method, expand_alias.
147
152
148 * Release.py: Bump up version to 0.7.4.svn
153 * Release.py: Bump up version to 0.7.4.svn
149
154
150 2006-12-17 Ville Vainio <vivainio@gmail.com>
155 2006-12-17 Ville Vainio <vivainio@gmail.com>
151
156
152 * Extensions/jobctrl.py: Fixed &cmd arg arg...
157 * Extensions/jobctrl.py: Fixed &cmd arg arg...
153 to work properly on posix too
158 to work properly on posix too
154
159
155 * Release.py: Update revnum (version is still just 0.7.3).
160 * Release.py: Update revnum (version is still just 0.7.3).
156
161
157 2006-12-15 Ville Vainio <vivainio@gmail.com>
162 2006-12-15 Ville Vainio <vivainio@gmail.com>
158
163
159 * scripts/ipython_win_post_install: create ipython.py in
164 * scripts/ipython_win_post_install: create ipython.py in
160 prefix + "/scripts".
165 prefix + "/scripts".
161
166
162 * Release.py: Update version to 0.7.3.
167 * Release.py: Update version to 0.7.3.
163
168
164 2006-12-14 Ville Vainio <vivainio@gmail.com>
169 2006-12-14 Ville Vainio <vivainio@gmail.com>
165
170
166 * scripts/ipython_win_post_install: Overwrite old shortcuts
171 * scripts/ipython_win_post_install: Overwrite old shortcuts
167 if they already exist
172 if they already exist
168
173
169 * Release.py: release 0.7.3rc2
174 * Release.py: release 0.7.3rc2
170
175
171 2006-12-13 Ville Vainio <vivainio@gmail.com>
176 2006-12-13 Ville Vainio <vivainio@gmail.com>
172
177
173 * Branch and update Release.py for 0.7.3rc1
178 * Branch and update Release.py for 0.7.3rc1
174
179
175 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
180 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
176
181
177 * IPython/Shell.py (IPShellWX): update for current WX naming
182 * IPython/Shell.py (IPShellWX): update for current WX naming
178 conventions, to avoid a deprecation warning with current WX
183 conventions, to avoid a deprecation warning with current WX
179 versions. Thanks to a report by Danny Shevitz.
184 versions. Thanks to a report by Danny Shevitz.
180
185
181 2006-12-12 Ville Vainio <vivainio@gmail.com>
186 2006-12-12 Ville Vainio <vivainio@gmail.com>
182
187
183 * ipmaker.py: apply david cournapeau's patch to make
188 * ipmaker.py: apply david cournapeau's patch to make
184 import_some work properly even when ipythonrc does
189 import_some work properly even when ipythonrc does
185 import_some on empty list (it was an old bug!).
190 import_some on empty list (it was an old bug!).
186
191
187 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
192 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
188 Add deprecation note to ipythonrc and a url to wiki
193 Add deprecation note to ipythonrc and a url to wiki
189 in ipy_user_conf.py
194 in ipy_user_conf.py
190
195
191
196
192 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
197 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
193 as if it was typed on IPython command prompt, i.e.
198 as if it was typed on IPython command prompt, i.e.
194 as IPython script.
199 as IPython script.
195
200
196 * example-magic.py, magic_grepl.py: remove outdated examples
201 * example-magic.py, magic_grepl.py: remove outdated examples
197
202
198 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
203 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
199
204
200 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
205 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
201 is called before any exception has occurred.
206 is called before any exception has occurred.
202
207
203 2006-12-08 Ville Vainio <vivainio@gmail.com>
208 2006-12-08 Ville Vainio <vivainio@gmail.com>
204
209
205 * Extensions/ipy_stock_completers.py: fix cd completer
210 * Extensions/ipy_stock_completers.py: fix cd completer
206 to translate /'s to \'s again.
211 to translate /'s to \'s again.
207
212
208 * completer.py: prevent traceback on file completions w/
213 * completer.py: prevent traceback on file completions w/
209 backslash.
214 backslash.
210
215
211 * Release.py: Update release number to 0.7.3b3 for release
216 * Release.py: Update release number to 0.7.3b3 for release
212
217
213 2006-12-07 Ville Vainio <vivainio@gmail.com>
218 2006-12-07 Ville Vainio <vivainio@gmail.com>
214
219
215 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
220 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
216 while executing external code. Provides more shell-like behaviour
221 while executing external code. Provides more shell-like behaviour
217 and overall better response to ctrl + C / ctrl + break.
222 and overall better response to ctrl + C / ctrl + break.
218
223
219 * tools/make_tarball.py: new script to create tarball straight from svn
224 * tools/make_tarball.py: new script to create tarball straight from svn
220 (setup.py sdist doesn't work on win32).
225 (setup.py sdist doesn't work on win32).
221
226
222 * Extensions/ipy_stock_completers.py: fix cd completer to give up
227 * Extensions/ipy_stock_completers.py: fix cd completer to give up
223 on dirnames with spaces and use the default completer instead.
228 on dirnames with spaces and use the default completer instead.
224
229
225 * Revision.py: Change version to 0.7.3b2 for release.
230 * Revision.py: Change version to 0.7.3b2 for release.
226
231
227 2006-12-05 Ville Vainio <vivainio@gmail.com>
232 2006-12-05 Ville Vainio <vivainio@gmail.com>
228
233
229 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
234 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
230 pydb patch 4 (rm debug printing, py 2.5 checking)
235 pydb patch 4 (rm debug printing, py 2.5 checking)
231
236
232 2006-11-30 Walter Doerwald <walter@livinglogic.de>
237 2006-11-30 Walter Doerwald <walter@livinglogic.de>
233 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
238 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
234 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
239 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
235 "refreshfind" (mapped to "R") does the same but tries to go back to the same
240 "refreshfind" (mapped to "R") does the same but tries to go back to the same
236 object the cursor was on before the refresh. The command "markrange" is
241 object the cursor was on before the refresh. The command "markrange" is
237 mapped to "%" now.
242 mapped to "%" now.
238 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
243 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
239
244
240 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
245 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
241
246
242 * IPython/Magic.py (magic_debug): new %debug magic to activate the
247 * IPython/Magic.py (magic_debug): new %debug magic to activate the
243 interactive debugger on the last traceback, without having to call
248 interactive debugger on the last traceback, without having to call
244 %pdb and rerun your code. Made minor changes in various modules,
249 %pdb and rerun your code. Made minor changes in various modules,
245 should automatically recognize pydb if available.
250 should automatically recognize pydb if available.
246
251
247 2006-11-28 Ville Vainio <vivainio@gmail.com>
252 2006-11-28 Ville Vainio <vivainio@gmail.com>
248
253
249 * completer.py: If the text start with !, show file completions
254 * completer.py: If the text start with !, show file completions
250 properly. This helps when trying to complete command name
255 properly. This helps when trying to complete command name
251 for shell escapes.
256 for shell escapes.
252
257
253 2006-11-27 Ville Vainio <vivainio@gmail.com>
258 2006-11-27 Ville Vainio <vivainio@gmail.com>
254
259
255 * ipy_stock_completers.py: bzr completer submitted by Stefan van
260 * ipy_stock_completers.py: bzr completer submitted by Stefan van
256 der Walt. Clean up svn and hg completers by using a common
261 der Walt. Clean up svn and hg completers by using a common
257 vcs_completer.
262 vcs_completer.
258
263
259 2006-11-26 Ville Vainio <vivainio@gmail.com>
264 2006-11-26 Ville Vainio <vivainio@gmail.com>
260
265
261 * Remove ipconfig and %config; you should use _ip.options structure
266 * Remove ipconfig and %config; you should use _ip.options structure
262 directly instead!
267 directly instead!
263
268
264 * genutils.py: add wrap_deprecated function for deprecating callables
269 * genutils.py: add wrap_deprecated function for deprecating callables
265
270
266 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
271 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
267 _ip.system instead. ipalias is redundant.
272 _ip.system instead. ipalias is redundant.
268
273
269 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
274 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
270 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
275 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
271 explicit.
276 explicit.
272
277
273 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
278 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
274 completer. Try it by entering 'hg ' and pressing tab.
279 completer. Try it by entering 'hg ' and pressing tab.
275
280
276 * macro.py: Give Macro a useful __repr__ method
281 * macro.py: Give Macro a useful __repr__ method
277
282
278 * Magic.py: %whos abbreviates the typename of Macro for brevity.
283 * Magic.py: %whos abbreviates the typename of Macro for brevity.
279
284
280 2006-11-24 Walter Doerwald <walter@livinglogic.de>
285 2006-11-24 Walter Doerwald <walter@livinglogic.de>
281 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
286 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
282 we don't get a duplicate ipipe module, where registration of the xrepr
287 we don't get a duplicate ipipe module, where registration of the xrepr
283 implementation for Text is useless.
288 implementation for Text is useless.
284
289
285 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
290 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
286
291
287 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
292 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
288
293
289 2006-11-24 Ville Vainio <vivainio@gmail.com>
294 2006-11-24 Ville Vainio <vivainio@gmail.com>
290
295
291 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
296 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
292 try to use "cProfile" instead of the slower pure python
297 try to use "cProfile" instead of the slower pure python
293 "profile"
298 "profile"
294
299
295 2006-11-23 Ville Vainio <vivainio@gmail.com>
300 2006-11-23 Ville Vainio <vivainio@gmail.com>
296
301
297 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
302 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
298 Qt+IPython+Designer link in documentation.
303 Qt+IPython+Designer link in documentation.
299
304
300 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
305 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
301 correct Pdb object to %pydb.
306 correct Pdb object to %pydb.
302
307
303
308
304 2006-11-22 Walter Doerwald <walter@livinglogic.de>
309 2006-11-22 Walter Doerwald <walter@livinglogic.de>
305 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
310 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
306 generic xrepr(), otherwise the list implementation would kick in.
311 generic xrepr(), otherwise the list implementation would kick in.
307
312
308 2006-11-21 Ville Vainio <vivainio@gmail.com>
313 2006-11-21 Ville Vainio <vivainio@gmail.com>
309
314
310 * upgrade_dir.py: Now actually overwrites a nonmodified user file
315 * upgrade_dir.py: Now actually overwrites a nonmodified user file
311 with one from UserConfig.
316 with one from UserConfig.
312
317
313 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
318 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
314 it was missing which broke the sh profile.
319 it was missing which broke the sh profile.
315
320
316 * completer.py: file completer now uses explicit '/' instead
321 * completer.py: file completer now uses explicit '/' instead
317 of os.path.join, expansion of 'foo' was broken on win32
322 of os.path.join, expansion of 'foo' was broken on win32
318 if there was one directory with name 'foobar'.
323 if there was one directory with name 'foobar'.
319
324
320 * A bunch of patches from Kirill Smelkov:
325 * A bunch of patches from Kirill Smelkov:
321
326
322 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
327 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
323
328
324 * [patch 7/9] Implement %page -r (page in raw mode) -
329 * [patch 7/9] Implement %page -r (page in raw mode) -
325
330
326 * [patch 5/9] ScientificPython webpage has moved
331 * [patch 5/9] ScientificPython webpage has moved
327
332
328 * [patch 4/9] The manual mentions %ds, should be %dhist
333 * [patch 4/9] The manual mentions %ds, should be %dhist
329
334
330 * [patch 3/9] Kill old bits from %prun doc.
335 * [patch 3/9] Kill old bits from %prun doc.
331
336
332 * [patch 1/9] Fix typos here and there.
337 * [patch 1/9] Fix typos here and there.
333
338
334 2006-11-08 Ville Vainio <vivainio@gmail.com>
339 2006-11-08 Ville Vainio <vivainio@gmail.com>
335
340
336 * completer.py (attr_matches): catch all exceptions raised
341 * completer.py (attr_matches): catch all exceptions raised
337 by eval of expr with dots.
342 by eval of expr with dots.
338
343
339 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
344 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
340
345
341 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
346 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
342 input if it starts with whitespace. This allows you to paste
347 input if it starts with whitespace. This allows you to paste
343 indented input from any editor without manually having to type in
348 indented input from any editor without manually having to type in
344 the 'if 1:', which is convenient when working interactively.
349 the 'if 1:', which is convenient when working interactively.
345 Slightly modifed version of a patch by Bo Peng
350 Slightly modifed version of a patch by Bo Peng
346 <bpeng-AT-rice.edu>.
351 <bpeng-AT-rice.edu>.
347
352
348 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
353 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
349
354
350 * IPython/irunner.py (main): modified irunner so it automatically
355 * IPython/irunner.py (main): modified irunner so it automatically
351 recognizes the right runner to use based on the extension (.py for
356 recognizes the right runner to use based on the extension (.py for
352 python, .ipy for ipython and .sage for sage).
357 python, .ipy for ipython and .sage for sage).
353
358
354 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
359 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
355 visible in ipapi as ip.config(), to programatically control the
360 visible in ipapi as ip.config(), to programatically control the
356 internal rc object. There's an accompanying %config magic for
361 internal rc object. There's an accompanying %config magic for
357 interactive use, which has been enhanced to match the
362 interactive use, which has been enhanced to match the
358 funtionality in ipconfig.
363 funtionality in ipconfig.
359
364
360 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
365 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
361 so it's not just a toggle, it now takes an argument. Add support
366 so it's not just a toggle, it now takes an argument. Add support
362 for a customizable header when making system calls, as the new
367 for a customizable header when making system calls, as the new
363 system_header variable in the ipythonrc file.
368 system_header variable in the ipythonrc file.
364
369
365 2006-11-03 Walter Doerwald <walter@livinglogic.de>
370 2006-11-03 Walter Doerwald <walter@livinglogic.de>
366
371
367 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
372 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
368 generic functions (using Philip J. Eby's simplegeneric package).
373 generic functions (using Philip J. Eby's simplegeneric package).
369 This makes it possible to customize the display of third-party classes
374 This makes it possible to customize the display of third-party classes
370 without having to monkeypatch them. xiter() no longer supports a mode
375 without having to monkeypatch them. xiter() no longer supports a mode
371 argument and the XMode class has been removed. The same functionality can
376 argument and the XMode class has been removed. The same functionality can
372 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
377 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
373 One consequence of the switch to generic functions is that xrepr() and
378 One consequence of the switch to generic functions is that xrepr() and
374 xattrs() implementation must define the default value for the mode
379 xattrs() implementation must define the default value for the mode
375 argument themselves and xattrs() implementations must return real
380 argument themselves and xattrs() implementations must return real
376 descriptors.
381 descriptors.
377
382
378 * IPython/external: This new subpackage will contain all third-party
383 * IPython/external: This new subpackage will contain all third-party
379 packages that are bundled with IPython. (The first one is simplegeneric).
384 packages that are bundled with IPython. (The first one is simplegeneric).
380
385
381 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
386 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
382 directory which as been dropped in r1703.
387 directory which as been dropped in r1703.
383
388
384 * IPython/Extensions/ipipe.py (iless): Fixed.
389 * IPython/Extensions/ipipe.py (iless): Fixed.
385
390
386 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
391 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
387
392
388 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
393 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
389
394
390 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
395 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
391 handling in variable expansion so that shells and magics recognize
396 handling in variable expansion so that shells and magics recognize
392 function local scopes correctly. Bug reported by Brian.
397 function local scopes correctly. Bug reported by Brian.
393
398
394 * scripts/ipython: remove the very first entry in sys.path which
399 * scripts/ipython: remove the very first entry in sys.path which
395 Python auto-inserts for scripts, so that sys.path under IPython is
400 Python auto-inserts for scripts, so that sys.path under IPython is
396 as similar as possible to that under plain Python.
401 as similar as possible to that under plain Python.
397
402
398 * IPython/completer.py (IPCompleter.file_matches): Fix
403 * IPython/completer.py (IPCompleter.file_matches): Fix
399 tab-completion so that quotes are not closed unless the completion
404 tab-completion so that quotes are not closed unless the completion
400 is unambiguous. After a request by Stefan. Minor cleanups in
405 is unambiguous. After a request by Stefan. Minor cleanups in
401 ipy_stock_completers.
406 ipy_stock_completers.
402
407
403 2006-11-02 Ville Vainio <vivainio@gmail.com>
408 2006-11-02 Ville Vainio <vivainio@gmail.com>
404
409
405 * ipy_stock_completers.py: Add %run and %cd completers.
410 * ipy_stock_completers.py: Add %run and %cd completers.
406
411
407 * completer.py: Try running custom completer for both
412 * completer.py: Try running custom completer for both
408 "foo" and "%foo" if the command is just "foo". Ignore case
413 "foo" and "%foo" if the command is just "foo". Ignore case
409 when filtering possible completions.
414 when filtering possible completions.
410
415
411 * UserConfig/ipy_user_conf.py: install stock completers as default
416 * UserConfig/ipy_user_conf.py: install stock completers as default
412
417
413 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
418 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
414 simplified readline history save / restore through a wrapper
419 simplified readline history save / restore through a wrapper
415 function
420 function
416
421
417
422
418 2006-10-31 Ville Vainio <vivainio@gmail.com>
423 2006-10-31 Ville Vainio <vivainio@gmail.com>
419
424
420 * strdispatch.py, completer.py, ipy_stock_completers.py:
425 * strdispatch.py, completer.py, ipy_stock_completers.py:
421 Allow str_key ("command") in completer hooks. Implement
426 Allow str_key ("command") in completer hooks. Implement
422 trivial completer for 'import' (stdlib modules only). Rename
427 trivial completer for 'import' (stdlib modules only). Rename
423 ipy_linux_package_managers.py to ipy_stock_completers.py.
428 ipy_linux_package_managers.py to ipy_stock_completers.py.
424 SVN completer.
429 SVN completer.
425
430
426 * Extensions/ledit.py: %magic line editor for easily and
431 * Extensions/ledit.py: %magic line editor for easily and
427 incrementally manipulating lists of strings. The magic command
432 incrementally manipulating lists of strings. The magic command
428 name is %led.
433 name is %led.
429
434
430 2006-10-30 Ville Vainio <vivainio@gmail.com>
435 2006-10-30 Ville Vainio <vivainio@gmail.com>
431
436
432 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
437 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
433 Bernsteins's patches for pydb integration.
438 Bernsteins's patches for pydb integration.
434 http://bashdb.sourceforge.net/pydb/
439 http://bashdb.sourceforge.net/pydb/
435
440
436 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
441 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
437 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
442 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
438 custom completer hook to allow the users to implement their own
443 custom completer hook to allow the users to implement their own
439 completers. See ipy_linux_package_managers.py for example. The
444 completers. See ipy_linux_package_managers.py for example. The
440 hook name is 'complete_command'.
445 hook name is 'complete_command'.
441
446
442 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
447 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
443
448
444 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
449 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
445 Numeric leftovers.
450 Numeric leftovers.
446
451
447 * ipython.el (py-execute-region): apply Stefan's patch to fix
452 * ipython.el (py-execute-region): apply Stefan's patch to fix
448 garbled results if the python shell hasn't been previously started.
453 garbled results if the python shell hasn't been previously started.
449
454
450 * IPython/genutils.py (arg_split): moved to genutils, since it's a
455 * IPython/genutils.py (arg_split): moved to genutils, since it's a
451 pretty generic function and useful for other things.
456 pretty generic function and useful for other things.
452
457
453 * IPython/OInspect.py (getsource): Add customizable source
458 * IPython/OInspect.py (getsource): Add customizable source
454 extractor. After a request/patch form W. Stein (SAGE).
459 extractor. After a request/patch form W. Stein (SAGE).
455
460
456 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
461 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
457 window size to a more reasonable value from what pexpect does,
462 window size to a more reasonable value from what pexpect does,
458 since their choice causes wrapping bugs with long input lines.
463 since their choice causes wrapping bugs with long input lines.
459
464
460 2006-10-28 Ville Vainio <vivainio@gmail.com>
465 2006-10-28 Ville Vainio <vivainio@gmail.com>
461
466
462 * Magic.py (%run): Save and restore the readline history from
467 * Magic.py (%run): Save and restore the readline history from
463 file around %run commands to prevent side effects from
468 file around %run commands to prevent side effects from
464 %runned programs that might use readline (e.g. pydb).
469 %runned programs that might use readline (e.g. pydb).
465
470
466 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
471 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
467 invoking the pydb enhanced debugger.
472 invoking the pydb enhanced debugger.
468
473
469 2006-10-23 Walter Doerwald <walter@livinglogic.de>
474 2006-10-23 Walter Doerwald <walter@livinglogic.de>
470
475
471 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
476 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
472 call the base class method and propagate the return value to
477 call the base class method and propagate the return value to
473 ifile. This is now done by path itself.
478 ifile. This is now done by path itself.
474
479
475 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
480 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
476
481
477 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
482 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
478 api: set_crash_handler(), to expose the ability to change the
483 api: set_crash_handler(), to expose the ability to change the
479 internal crash handler.
484 internal crash handler.
480
485
481 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
486 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
482 the various parameters of the crash handler so that apps using
487 the various parameters of the crash handler so that apps using
483 IPython as their engine can customize crash handling. Ipmlemented
488 IPython as their engine can customize crash handling. Ipmlemented
484 at the request of SAGE.
489 at the request of SAGE.
485
490
486 2006-10-14 Ville Vainio <vivainio@gmail.com>
491 2006-10-14 Ville Vainio <vivainio@gmail.com>
487
492
488 * Magic.py, ipython.el: applied first "safe" part of Rocky
493 * Magic.py, ipython.el: applied first "safe" part of Rocky
489 Bernstein's patch set for pydb integration.
494 Bernstein's patch set for pydb integration.
490
495
491 * Magic.py (%unalias, %alias): %store'd aliases can now be
496 * Magic.py (%unalias, %alias): %store'd aliases can now be
492 removed with '%unalias'. %alias w/o args now shows most
497 removed with '%unalias'. %alias w/o args now shows most
493 interesting (stored / manually defined) aliases last
498 interesting (stored / manually defined) aliases last
494 where they catch the eye w/o scrolling.
499 where they catch the eye w/o scrolling.
495
500
496 * Magic.py (%rehashx), ext_rehashdir.py: files with
501 * Magic.py (%rehashx), ext_rehashdir.py: files with
497 'py' extension are always considered executable, even
502 'py' extension are always considered executable, even
498 when not in PATHEXT environment variable.
503 when not in PATHEXT environment variable.
499
504
500 2006-10-12 Ville Vainio <vivainio@gmail.com>
505 2006-10-12 Ville Vainio <vivainio@gmail.com>
501
506
502 * jobctrl.py: Add new "jobctrl" extension for spawning background
507 * jobctrl.py: Add new "jobctrl" extension for spawning background
503 processes with "&find /". 'import jobctrl' to try it out. Requires
508 processes with "&find /". 'import jobctrl' to try it out. Requires
504 'subprocess' module, standard in python 2.4+.
509 'subprocess' module, standard in python 2.4+.
505
510
506 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
511 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
507 so if foo -> bar and bar -> baz, then foo -> baz.
512 so if foo -> bar and bar -> baz, then foo -> baz.
508
513
509 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
514 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
510
515
511 * IPython/Magic.py (Magic.parse_options): add a new posix option
516 * IPython/Magic.py (Magic.parse_options): add a new posix option
512 to allow parsing of input args in magics that doesn't strip quotes
517 to allow parsing of input args in magics that doesn't strip quotes
513 (if posix=False). This also closes %timeit bug reported by
518 (if posix=False). This also closes %timeit bug reported by
514 Stefan.
519 Stefan.
515
520
516 2006-10-03 Ville Vainio <vivainio@gmail.com>
521 2006-10-03 Ville Vainio <vivainio@gmail.com>
517
522
518 * iplib.py (raw_input, interact): Return ValueError catching for
523 * iplib.py (raw_input, interact): Return ValueError catching for
519 raw_input. Fixes infinite loop for sys.stdin.close() or
524 raw_input. Fixes infinite loop for sys.stdin.close() or
520 sys.stdout.close().
525 sys.stdout.close().
521
526
522 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
527 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
523
528
524 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
529 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
525 to help in handling doctests. irunner is now pretty useful for
530 to help in handling doctests. irunner is now pretty useful for
526 running standalone scripts and simulate a full interactive session
531 running standalone scripts and simulate a full interactive session
527 in a format that can be then pasted as a doctest.
532 in a format that can be then pasted as a doctest.
528
533
529 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
534 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
530 on top of the default (useless) ones. This also fixes the nasty
535 on top of the default (useless) ones. This also fixes the nasty
531 way in which 2.5's Quitter() exits (reverted [1785]).
536 way in which 2.5's Quitter() exits (reverted [1785]).
532
537
533 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
538 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
534 2.5.
539 2.5.
535
540
536 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
541 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
537 color scheme is updated as well when color scheme is changed
542 color scheme is updated as well when color scheme is changed
538 interactively.
543 interactively.
539
544
540 2006-09-27 Ville Vainio <vivainio@gmail.com>
545 2006-09-27 Ville Vainio <vivainio@gmail.com>
541
546
542 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
547 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
543 infinite loop and just exit. It's a hack, but will do for a while.
548 infinite loop and just exit. It's a hack, but will do for a while.
544
549
545 2006-08-25 Walter Doerwald <walter@livinglogic.de>
550 2006-08-25 Walter Doerwald <walter@livinglogic.de>
546
551
547 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
552 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
548 the constructor, this makes it possible to get a list of only directories
553 the constructor, this makes it possible to get a list of only directories
549 or only files.
554 or only files.
550
555
551 2006-08-12 Ville Vainio <vivainio@gmail.com>
556 2006-08-12 Ville Vainio <vivainio@gmail.com>
552
557
553 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
558 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
554 they broke unittest
559 they broke unittest
555
560
556 2006-08-11 Ville Vainio <vivainio@gmail.com>
561 2006-08-11 Ville Vainio <vivainio@gmail.com>
557
562
558 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
563 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
559 by resolving issue properly, i.e. by inheriting FakeModule
564 by resolving issue properly, i.e. by inheriting FakeModule
560 from types.ModuleType. Pickling ipython interactive data
565 from types.ModuleType. Pickling ipython interactive data
561 should still work as usual (testing appreciated).
566 should still work as usual (testing appreciated).
562
567
563 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
568 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
564
569
565 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
570 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
566 running under python 2.3 with code from 2.4 to fix a bug with
571 running under python 2.3 with code from 2.4 to fix a bug with
567 help(). Reported by the Debian maintainers, Norbert Tretkowski
572 help(). Reported by the Debian maintainers, Norbert Tretkowski
568 <norbert-AT-tretkowski.de> and Alexandre Fayolle
573 <norbert-AT-tretkowski.de> and Alexandre Fayolle
569 <afayolle-AT-debian.org>.
574 <afayolle-AT-debian.org>.
570
575
571 2006-08-04 Walter Doerwald <walter@livinglogic.de>
576 2006-08-04 Walter Doerwald <walter@livinglogic.de>
572
577
573 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
578 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
574 (which was displaying "quit" twice).
579 (which was displaying "quit" twice).
575
580
576 2006-07-28 Walter Doerwald <walter@livinglogic.de>
581 2006-07-28 Walter Doerwald <walter@livinglogic.de>
577
582
578 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
583 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
579 the mode argument).
584 the mode argument).
580
585
581 2006-07-27 Walter Doerwald <walter@livinglogic.de>
586 2006-07-27 Walter Doerwald <walter@livinglogic.de>
582
587
583 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
588 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
584 not running under IPython.
589 not running under IPython.
585
590
586 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
591 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
587 and make it iterable (iterating over the attribute itself). Add two new
592 and make it iterable (iterating over the attribute itself). Add two new
588 magic strings for __xattrs__(): If the string starts with "-", the attribute
593 magic strings for __xattrs__(): If the string starts with "-", the attribute
589 will not be displayed in ibrowse's detail view (but it can still be
594 will not be displayed in ibrowse's detail view (but it can still be
590 iterated over). This makes it possible to add attributes that are large
595 iterated over). This makes it possible to add attributes that are large
591 lists or generator methods to the detail view. Replace magic attribute names
596 lists or generator methods to the detail view. Replace magic attribute names
592 and _attrname() and _getattr() with "descriptors": For each type of magic
597 and _attrname() and _getattr() with "descriptors": For each type of magic
593 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
598 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
594 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
599 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
595 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
600 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
596 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
601 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
597 are still supported.
602 are still supported.
598
603
599 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
604 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
600 fails in ibrowse.fetch(), the exception object is added as the last item
605 fails in ibrowse.fetch(), the exception object is added as the last item
601 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
606 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
602 a generator throws an exception midway through execution.
607 a generator throws an exception midway through execution.
603
608
604 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
609 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
605 encoding into methods.
610 encoding into methods.
606
611
607 2006-07-26 Ville Vainio <vivainio@gmail.com>
612 2006-07-26 Ville Vainio <vivainio@gmail.com>
608
613
609 * iplib.py: history now stores multiline input as single
614 * iplib.py: history now stores multiline input as single
610 history entries. Patch by Jorgen Cederlof.
615 history entries. Patch by Jorgen Cederlof.
611
616
612 2006-07-18 Walter Doerwald <walter@livinglogic.de>
617 2006-07-18 Walter Doerwald <walter@livinglogic.de>
613
618
614 * IPython/Extensions/ibrowse.py: Make cursor visible over
619 * IPython/Extensions/ibrowse.py: Make cursor visible over
615 non existing attributes.
620 non existing attributes.
616
621
617 2006-07-14 Walter Doerwald <walter@livinglogic.de>
622 2006-07-14 Walter Doerwald <walter@livinglogic.de>
618
623
619 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
624 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
620 error output of the running command doesn't mess up the screen.
625 error output of the running command doesn't mess up the screen.
621
626
622 2006-07-13 Walter Doerwald <walter@livinglogic.de>
627 2006-07-13 Walter Doerwald <walter@livinglogic.de>
623
628
624 * IPython/Extensions/ipipe.py (isort): Make isort usable without
629 * IPython/Extensions/ipipe.py (isort): Make isort usable without
625 argument. This sorts the items themselves.
630 argument. This sorts the items themselves.
626
631
627 2006-07-12 Walter Doerwald <walter@livinglogic.de>
632 2006-07-12 Walter Doerwald <walter@livinglogic.de>
628
633
629 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
634 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
630 Compile expression strings into code objects. This should speed
635 Compile expression strings into code objects. This should speed
631 up ifilter and friends somewhat.
636 up ifilter and friends somewhat.
632
637
633 2006-07-08 Ville Vainio <vivainio@gmail.com>
638 2006-07-08 Ville Vainio <vivainio@gmail.com>
634
639
635 * Magic.py: %cpaste now strips > from the beginning of lines
640 * Magic.py: %cpaste now strips > from the beginning of lines
636 to ease pasting quoted code from emails. Contributed by
641 to ease pasting quoted code from emails. Contributed by
637 Stefan van der Walt.
642 Stefan van der Walt.
638
643
639 2006-06-29 Ville Vainio <vivainio@gmail.com>
644 2006-06-29 Ville Vainio <vivainio@gmail.com>
640
645
641 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
646 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
642 mode, patch contributed by Darren Dale. NEEDS TESTING!
647 mode, patch contributed by Darren Dale. NEEDS TESTING!
643
648
644 2006-06-28 Walter Doerwald <walter@livinglogic.de>
649 2006-06-28 Walter Doerwald <walter@livinglogic.de>
645
650
646 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
651 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
647 a blue background. Fix fetching new display rows when the browser
652 a blue background. Fix fetching new display rows when the browser
648 scrolls more than a screenful (e.g. by using the goto command).
653 scrolls more than a screenful (e.g. by using the goto command).
649
654
650 2006-06-27 Ville Vainio <vivainio@gmail.com>
655 2006-06-27 Ville Vainio <vivainio@gmail.com>
651
656
652 * Magic.py (_inspect, _ofind) Apply David Huard's
657 * Magic.py (_inspect, _ofind) Apply David Huard's
653 patch for displaying the correct docstring for 'property'
658 patch for displaying the correct docstring for 'property'
654 attributes.
659 attributes.
655
660
656 2006-06-23 Walter Doerwald <walter@livinglogic.de>
661 2006-06-23 Walter Doerwald <walter@livinglogic.de>
657
662
658 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
663 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
659 commands into the methods implementing them.
664 commands into the methods implementing them.
660
665
661 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
666 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
662
667
663 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
668 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
664 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
669 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
665 autoindent support was authored by Jin Liu.
670 autoindent support was authored by Jin Liu.
666
671
667 2006-06-22 Walter Doerwald <walter@livinglogic.de>
672 2006-06-22 Walter Doerwald <walter@livinglogic.de>
668
673
669 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
674 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
670 for keymaps with a custom class that simplifies handling.
675 for keymaps with a custom class that simplifies handling.
671
676
672 2006-06-19 Walter Doerwald <walter@livinglogic.de>
677 2006-06-19 Walter Doerwald <walter@livinglogic.de>
673
678
674 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
679 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
675 resizing. This requires Python 2.5 to work.
680 resizing. This requires Python 2.5 to work.
676
681
677 2006-06-16 Walter Doerwald <walter@livinglogic.de>
682 2006-06-16 Walter Doerwald <walter@livinglogic.de>
678
683
679 * IPython/Extensions/ibrowse.py: Add two new commands to
684 * IPython/Extensions/ibrowse.py: Add two new commands to
680 ibrowse: "hideattr" (mapped to "h") hides the attribute under
685 ibrowse: "hideattr" (mapped to "h") hides the attribute under
681 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
686 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
682 attributes again. Remapped the help command to "?". Display
687 attributes again. Remapped the help command to "?". Display
683 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
688 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
684 as keys for the "home" and "end" commands. Add three new commands
689 as keys for the "home" and "end" commands. Add three new commands
685 to the input mode for "find" and friends: "delend" (CTRL-K)
690 to the input mode for "find" and friends: "delend" (CTRL-K)
686 deletes to the end of line. "incsearchup" searches upwards in the
691 deletes to the end of line. "incsearchup" searches upwards in the
687 command history for an input that starts with the text before the cursor.
692 command history for an input that starts with the text before the cursor.
688 "incsearchdown" does the same downwards. Removed a bogus mapping of
693 "incsearchdown" does the same downwards. Removed a bogus mapping of
689 the x key to "delete".
694 the x key to "delete".
690
695
691 2006-06-15 Ville Vainio <vivainio@gmail.com>
696 2006-06-15 Ville Vainio <vivainio@gmail.com>
692
697
693 * iplib.py, hooks.py: Added new generate_prompt hook that can be
698 * iplib.py, hooks.py: Added new generate_prompt hook that can be
694 used to create prompts dynamically, instead of the "old" way of
699 used to create prompts dynamically, instead of the "old" way of
695 assigning "magic" strings to prompt_in1 and prompt_in2. The old
700 assigning "magic" strings to prompt_in1 and prompt_in2. The old
696 way still works (it's invoked by the default hook), of course.
701 way still works (it's invoked by the default hook), of course.
697
702
698 * Prompts.py: added generate_output_prompt hook for altering output
703 * Prompts.py: added generate_output_prompt hook for altering output
699 prompt
704 prompt
700
705
701 * Release.py: Changed version string to 0.7.3.svn.
706 * Release.py: Changed version string to 0.7.3.svn.
702
707
703 2006-06-15 Walter Doerwald <walter@livinglogic.de>
708 2006-06-15 Walter Doerwald <walter@livinglogic.de>
704
709
705 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
710 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
706 the call to fetch() always tries to fetch enough data for at least one
711 the call to fetch() always tries to fetch enough data for at least one
707 full screen. This makes it possible to simply call moveto(0,0,True) in
712 full screen. This makes it possible to simply call moveto(0,0,True) in
708 the constructor. Fix typos and removed the obsolete goto attribute.
713 the constructor. Fix typos and removed the obsolete goto attribute.
709
714
710 2006-06-12 Ville Vainio <vivainio@gmail.com>
715 2006-06-12 Ville Vainio <vivainio@gmail.com>
711
716
712 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
717 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
713 allowing $variable interpolation within multiline statements,
718 allowing $variable interpolation within multiline statements,
714 though so far only with "sh" profile for a testing period.
719 though so far only with "sh" profile for a testing period.
715 The patch also enables splitting long commands with \ but it
720 The patch also enables splitting long commands with \ but it
716 doesn't work properly yet.
721 doesn't work properly yet.
717
722
718 2006-06-12 Walter Doerwald <walter@livinglogic.de>
723 2006-06-12 Walter Doerwald <walter@livinglogic.de>
719
724
720 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
725 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
721 input history and the position of the cursor in the input history for
726 input history and the position of the cursor in the input history for
722 the find, findbackwards and goto command.
727 the find, findbackwards and goto command.
723
728
724 2006-06-10 Walter Doerwald <walter@livinglogic.de>
729 2006-06-10 Walter Doerwald <walter@livinglogic.de>
725
730
726 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
731 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
727 implements the basic functionality of browser commands that require
732 implements the basic functionality of browser commands that require
728 input. Reimplement the goto, find and findbackwards commands as
733 input. Reimplement the goto, find and findbackwards commands as
729 subclasses of _CommandInput. Add an input history and keymaps to those
734 subclasses of _CommandInput. Add an input history and keymaps to those
730 commands. Add "\r" as a keyboard shortcut for the enterdefault and
735 commands. Add "\r" as a keyboard shortcut for the enterdefault and
731 execute commands.
736 execute commands.
732
737
733 2006-06-07 Ville Vainio <vivainio@gmail.com>
738 2006-06-07 Ville Vainio <vivainio@gmail.com>
734
739
735 * iplib.py: ipython mybatch.ipy exits ipython immediately after
740 * iplib.py: ipython mybatch.ipy exits ipython immediately after
736 running the batch files instead of leaving the session open.
741 running the batch files instead of leaving the session open.
737
742
738 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
743 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
739
744
740 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
745 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
741 the original fix was incomplete. Patch submitted by W. Maier.
746 the original fix was incomplete. Patch submitted by W. Maier.
742
747
743 2006-06-07 Ville Vainio <vivainio@gmail.com>
748 2006-06-07 Ville Vainio <vivainio@gmail.com>
744
749
745 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
750 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
746 Confirmation prompts can be supressed by 'quiet' option.
751 Confirmation prompts can be supressed by 'quiet' option.
747 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
752 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
748
753
749 2006-06-06 *** Released version 0.7.2
754 2006-06-06 *** Released version 0.7.2
750
755
751 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
756 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
752
757
753 * IPython/Release.py (version): Made 0.7.2 final for release.
758 * IPython/Release.py (version): Made 0.7.2 final for release.
754 Repo tagged and release cut.
759 Repo tagged and release cut.
755
760
756 2006-06-05 Ville Vainio <vivainio@gmail.com>
761 2006-06-05 Ville Vainio <vivainio@gmail.com>
757
762
758 * Magic.py (magic_rehashx): Honor no_alias list earlier in
763 * Magic.py (magic_rehashx): Honor no_alias list earlier in
759 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
764 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
760
765
761 * upgrade_dir.py: try import 'path' module a bit harder
766 * upgrade_dir.py: try import 'path' module a bit harder
762 (for %upgrade)
767 (for %upgrade)
763
768
764 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
769 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
765
770
766 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
771 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
767 instead of looping 20 times.
772 instead of looping 20 times.
768
773
769 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
774 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
770 correctly at initialization time. Bug reported by Krishna Mohan
775 correctly at initialization time. Bug reported by Krishna Mohan
771 Gundu <gkmohan-AT-gmail.com> on the user list.
776 Gundu <gkmohan-AT-gmail.com> on the user list.
772
777
773 * IPython/Release.py (version): Mark 0.7.2 version to start
778 * IPython/Release.py (version): Mark 0.7.2 version to start
774 testing for release on 06/06.
779 testing for release on 06/06.
775
780
776 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
781 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
777
782
778 * scripts/irunner: thin script interface so users don't have to
783 * scripts/irunner: thin script interface so users don't have to
779 find the module and call it as an executable, since modules rarely
784 find the module and call it as an executable, since modules rarely
780 live in people's PATH.
785 live in people's PATH.
781
786
782 * IPython/irunner.py (InteractiveRunner.__init__): added
787 * IPython/irunner.py (InteractiveRunner.__init__): added
783 delaybeforesend attribute to control delays with newer versions of
788 delaybeforesend attribute to control delays with newer versions of
784 pexpect. Thanks to detailed help from pexpect's author, Noah
789 pexpect. Thanks to detailed help from pexpect's author, Noah
785 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
790 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
786 correctly (it works in NoColor mode).
791 correctly (it works in NoColor mode).
787
792
788 * IPython/iplib.py (handle_normal): fix nasty crash reported on
793 * IPython/iplib.py (handle_normal): fix nasty crash reported on
789 SAGE list, from improper log() calls.
794 SAGE list, from improper log() calls.
790
795
791 2006-05-31 Ville Vainio <vivainio@gmail.com>
796 2006-05-31 Ville Vainio <vivainio@gmail.com>
792
797
793 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
798 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
794 with args in parens to work correctly with dirs that have spaces.
799 with args in parens to work correctly with dirs that have spaces.
795
800
796 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
801 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
797
802
798 * IPython/Logger.py (Logger.logstart): add option to log raw input
803 * IPython/Logger.py (Logger.logstart): add option to log raw input
799 instead of the processed one. A -r flag was added to the
804 instead of the processed one. A -r flag was added to the
800 %logstart magic used for controlling logging.
805 %logstart magic used for controlling logging.
801
806
802 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
807 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
803
808
804 * IPython/iplib.py (InteractiveShell.__init__): add check for the
809 * IPython/iplib.py (InteractiveShell.__init__): add check for the
805 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
810 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
806 recognize the option. After a bug report by Will Maier. This
811 recognize the option. After a bug report by Will Maier. This
807 closes #64 (will do it after confirmation from W. Maier).
812 closes #64 (will do it after confirmation from W. Maier).
808
813
809 * IPython/irunner.py: New module to run scripts as if manually
814 * IPython/irunner.py: New module to run scripts as if manually
810 typed into an interactive environment, based on pexpect. After a
815 typed into an interactive environment, based on pexpect. After a
811 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
816 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
812 ipython-user list. Simple unittests in the tests/ directory.
817 ipython-user list. Simple unittests in the tests/ directory.
813
818
814 * tools/release: add Will Maier, OpenBSD port maintainer, to
819 * tools/release: add Will Maier, OpenBSD port maintainer, to
815 recepients list. We are now officially part of the OpenBSD ports:
820 recepients list. We are now officially part of the OpenBSD ports:
816 http://www.openbsd.org/ports.html ! Many thanks to Will for the
821 http://www.openbsd.org/ports.html ! Many thanks to Will for the
817 work.
822 work.
818
823
819 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
824 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
820
825
821 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
826 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
822 so that it doesn't break tkinter apps.
827 so that it doesn't break tkinter apps.
823
828
824 * IPython/iplib.py (_prefilter): fix bug where aliases would
829 * IPython/iplib.py (_prefilter): fix bug where aliases would
825 shadow variables when autocall was fully off. Reported by SAGE
830 shadow variables when autocall was fully off. Reported by SAGE
826 author William Stein.
831 author William Stein.
827
832
828 * IPython/OInspect.py (Inspector.__init__): add a flag to control
833 * IPython/OInspect.py (Inspector.__init__): add a flag to control
829 at what detail level strings are computed when foo? is requested.
834 at what detail level strings are computed when foo? is requested.
830 This allows users to ask for example that the string form of an
835 This allows users to ask for example that the string form of an
831 object is only computed when foo?? is called, or even never, by
836 object is only computed when foo?? is called, or even never, by
832 setting the object_info_string_level >= 2 in the configuration
837 setting the object_info_string_level >= 2 in the configuration
833 file. This new option has been added and documented. After a
838 file. This new option has been added and documented. After a
834 request by SAGE to be able to control the printing of very large
839 request by SAGE to be able to control the printing of very large
835 objects more easily.
840 objects more easily.
836
841
837 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
842 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
838
843
839 * IPython/ipmaker.py (make_IPython): remove the ipython call path
844 * IPython/ipmaker.py (make_IPython): remove the ipython call path
840 from sys.argv, to be 100% consistent with how Python itself works
845 from sys.argv, to be 100% consistent with how Python itself works
841 (as seen for example with python -i file.py). After a bug report
846 (as seen for example with python -i file.py). After a bug report
842 by Jeffrey Collins.
847 by Jeffrey Collins.
843
848
844 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
849 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
845 nasty bug which was preventing custom namespaces with -pylab,
850 nasty bug which was preventing custom namespaces with -pylab,
846 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
851 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
847 compatibility (long gone from mpl).
852 compatibility (long gone from mpl).
848
853
849 * IPython/ipapi.py (make_session): name change: create->make. We
854 * IPython/ipapi.py (make_session): name change: create->make. We
850 use make in other places (ipmaker,...), it's shorter and easier to
855 use make in other places (ipmaker,...), it's shorter and easier to
851 type and say, etc. I'm trying to clean things before 0.7.2 so
856 type and say, etc. I'm trying to clean things before 0.7.2 so
852 that I can keep things stable wrt to ipapi in the chainsaw branch.
857 that I can keep things stable wrt to ipapi in the chainsaw branch.
853
858
854 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
859 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
855 python-mode recognizes our debugger mode. Add support for
860 python-mode recognizes our debugger mode. Add support for
856 autoindent inside (X)emacs. After a patch sent in by Jin Liu
861 autoindent inside (X)emacs. After a patch sent in by Jin Liu
857 <m.liu.jin-AT-gmail.com> originally written by
862 <m.liu.jin-AT-gmail.com> originally written by
858 doxgen-AT-newsmth.net (with minor modifications for xemacs
863 doxgen-AT-newsmth.net (with minor modifications for xemacs
859 compatibility)
864 compatibility)
860
865
861 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
866 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
862 tracebacks when walking the stack so that the stack tracking system
867 tracebacks when walking the stack so that the stack tracking system
863 in emacs' python-mode can identify the frames correctly.
868 in emacs' python-mode can identify the frames correctly.
864
869
865 * IPython/ipmaker.py (make_IPython): make the internal (and
870 * IPython/ipmaker.py (make_IPython): make the internal (and
866 default config) autoedit_syntax value false by default. Too many
871 default config) autoedit_syntax value false by default. Too many
867 users have complained to me (both on and off-list) about problems
872 users have complained to me (both on and off-list) about problems
868 with this option being on by default, so I'm making it default to
873 with this option being on by default, so I'm making it default to
869 off. It can still be enabled by anyone via the usual mechanisms.
874 off. It can still be enabled by anyone via the usual mechanisms.
870
875
871 * IPython/completer.py (Completer.attr_matches): add support for
876 * IPython/completer.py (Completer.attr_matches): add support for
872 PyCrust-style _getAttributeNames magic method. Patch contributed
877 PyCrust-style _getAttributeNames magic method. Patch contributed
873 by <mscott-AT-goldenspud.com>. Closes #50.
878 by <mscott-AT-goldenspud.com>. Closes #50.
874
879
875 * IPython/iplib.py (InteractiveShell.__init__): remove the
880 * IPython/iplib.py (InteractiveShell.__init__): remove the
876 deletion of exit/quit from __builtin__, which can break
881 deletion of exit/quit from __builtin__, which can break
877 third-party tools like the Zope debugging console. The
882 third-party tools like the Zope debugging console. The
878 %exit/%quit magics remain. In general, it's probably a good idea
883 %exit/%quit magics remain. In general, it's probably a good idea
879 not to delete anything from __builtin__, since we never know what
884 not to delete anything from __builtin__, since we never know what
880 that will break. In any case, python now (for 2.5) will support
885 that will break. In any case, python now (for 2.5) will support
881 'real' exit/quit, so this issue is moot. Closes #55.
886 'real' exit/quit, so this issue is moot. Closes #55.
882
887
883 * IPython/genutils.py (with_obj): rename the 'with' function to
888 * IPython/genutils.py (with_obj): rename the 'with' function to
884 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
889 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
885 becomes a language keyword. Closes #53.
890 becomes a language keyword. Closes #53.
886
891
887 * IPython/FakeModule.py (FakeModule.__init__): add a proper
892 * IPython/FakeModule.py (FakeModule.__init__): add a proper
888 __file__ attribute to this so it fools more things into thinking
893 __file__ attribute to this so it fools more things into thinking
889 it is a real module. Closes #59.
894 it is a real module. Closes #59.
890
895
891 * IPython/Magic.py (magic_edit): add -n option to open the editor
896 * IPython/Magic.py (magic_edit): add -n option to open the editor
892 at a specific line number. After a patch by Stefan van der Walt.
897 at a specific line number. After a patch by Stefan van der Walt.
893
898
894 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
899 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
895
900
896 * IPython/iplib.py (edit_syntax_error): fix crash when for some
901 * IPython/iplib.py (edit_syntax_error): fix crash when for some
897 reason the file could not be opened. After automatic crash
902 reason the file could not be opened. After automatic crash
898 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
903 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
899 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
904 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
900 (_should_recompile): Don't fire editor if using %bg, since there
905 (_should_recompile): Don't fire editor if using %bg, since there
901 is no file in the first place. From the same report as above.
906 is no file in the first place. From the same report as above.
902 (raw_input): protect against faulty third-party prefilters. After
907 (raw_input): protect against faulty third-party prefilters. After
903 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
908 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
904 while running under SAGE.
909 while running under SAGE.
905
910
906 2006-05-23 Ville Vainio <vivainio@gmail.com>
911 2006-05-23 Ville Vainio <vivainio@gmail.com>
907
912
908 * ipapi.py: Stripped down ip.to_user_ns() to work only as
913 * ipapi.py: Stripped down ip.to_user_ns() to work only as
909 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
914 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
910 now returns None (again), unless dummy is specifically allowed by
915 now returns None (again), unless dummy is specifically allowed by
911 ipapi.get(allow_dummy=True).
916 ipapi.get(allow_dummy=True).
912
917
913 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
918 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
914
919
915 * IPython: remove all 2.2-compatibility objects and hacks from
920 * IPython: remove all 2.2-compatibility objects and hacks from
916 everywhere, since we only support 2.3 at this point. Docs
921 everywhere, since we only support 2.3 at this point. Docs
917 updated.
922 updated.
918
923
919 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
924 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
920 Anything requiring extra validation can be turned into a Python
925 Anything requiring extra validation can be turned into a Python
921 property in the future. I used a property for the db one b/c
926 property in the future. I used a property for the db one b/c
922 there was a nasty circularity problem with the initialization
927 there was a nasty circularity problem with the initialization
923 order, which right now I don't have time to clean up.
928 order, which right now I don't have time to clean up.
924
929
925 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
930 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
926 another locking bug reported by Jorgen. I'm not 100% sure though,
931 another locking bug reported by Jorgen. I'm not 100% sure though,
927 so more testing is needed...
932 so more testing is needed...
928
933
929 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
934 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
930
935
931 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
936 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
932 local variables from any routine in user code (typically executed
937 local variables from any routine in user code (typically executed
933 with %run) directly into the interactive namespace. Very useful
938 with %run) directly into the interactive namespace. Very useful
934 when doing complex debugging.
939 when doing complex debugging.
935 (IPythonNotRunning): Changed the default None object to a dummy
940 (IPythonNotRunning): Changed the default None object to a dummy
936 whose attributes can be queried as well as called without
941 whose attributes can be queried as well as called without
937 exploding, to ease writing code which works transparently both in
942 exploding, to ease writing code which works transparently both in
938 and out of ipython and uses some of this API.
943 and out of ipython and uses some of this API.
939
944
940 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
945 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
941
946
942 * IPython/hooks.py (result_display): Fix the fact that our display
947 * IPython/hooks.py (result_display): Fix the fact that our display
943 hook was using str() instead of repr(), as the default python
948 hook was using str() instead of repr(), as the default python
944 console does. This had gone unnoticed b/c it only happened if
949 console does. This had gone unnoticed b/c it only happened if
945 %Pprint was off, but the inconsistency was there.
950 %Pprint was off, but the inconsistency was there.
946
951
947 2006-05-15 Ville Vainio <vivainio@gmail.com>
952 2006-05-15 Ville Vainio <vivainio@gmail.com>
948
953
949 * Oinspect.py: Only show docstring for nonexisting/binary files
954 * Oinspect.py: Only show docstring for nonexisting/binary files
950 when doing object??, closing ticket #62
955 when doing object??, closing ticket #62
951
956
952 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
957 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
953
958
954 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
959 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
955 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
960 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
956 was being released in a routine which hadn't checked if it had
961 was being released in a routine which hadn't checked if it had
957 been the one to acquire it.
962 been the one to acquire it.
958
963
959 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
964 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
960
965
961 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
966 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
962
967
963 2006-04-11 Ville Vainio <vivainio@gmail.com>
968 2006-04-11 Ville Vainio <vivainio@gmail.com>
964
969
965 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
970 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
966 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
971 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
967 prefilters, allowing stuff like magics and aliases in the file.
972 prefilters, allowing stuff like magics and aliases in the file.
968
973
969 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
974 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
970 added. Supported now are "%clear in" and "%clear out" (clear input and
975 added. Supported now are "%clear in" and "%clear out" (clear input and
971 output history, respectively). Also fixed CachedOutput.flush to
976 output history, respectively). Also fixed CachedOutput.flush to
972 properly flush the output cache.
977 properly flush the output cache.
973
978
974 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
979 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
975 half-success (and fail explicitly).
980 half-success (and fail explicitly).
976
981
977 2006-03-28 Ville Vainio <vivainio@gmail.com>
982 2006-03-28 Ville Vainio <vivainio@gmail.com>
978
983
979 * iplib.py: Fix quoting of aliases so that only argless ones
984 * iplib.py: Fix quoting of aliases so that only argless ones
980 are quoted
985 are quoted
981
986
982 2006-03-28 Ville Vainio <vivainio@gmail.com>
987 2006-03-28 Ville Vainio <vivainio@gmail.com>
983
988
984 * iplib.py: Quote aliases with spaces in the name.
989 * iplib.py: Quote aliases with spaces in the name.
985 "c:\program files\blah\bin" is now legal alias target.
990 "c:\program files\blah\bin" is now legal alias target.
986
991
987 * ext_rehashdir.py: Space no longer allowed as arg
992 * ext_rehashdir.py: Space no longer allowed as arg
988 separator, since space is legal in path names.
993 separator, since space is legal in path names.
989
994
990 2006-03-16 Ville Vainio <vivainio@gmail.com>
995 2006-03-16 Ville Vainio <vivainio@gmail.com>
991
996
992 * upgrade_dir.py: Take path.py from Extensions, correcting
997 * upgrade_dir.py: Take path.py from Extensions, correcting
993 %upgrade magic
998 %upgrade magic
994
999
995 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1000 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
996
1001
997 * hooks.py: Only enclose editor binary in quotes if legal and
1002 * hooks.py: Only enclose editor binary in quotes if legal and
998 necessary (space in the name, and is an existing file). Fixes a bug
1003 necessary (space in the name, and is an existing file). Fixes a bug
999 reported by Zachary Pincus.
1004 reported by Zachary Pincus.
1000
1005
1001 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1006 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1002
1007
1003 * Manual: thanks to a tip on proper color handling for Emacs, by
1008 * Manual: thanks to a tip on proper color handling for Emacs, by
1004 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1009 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1005
1010
1006 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1011 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1007 by applying the provided patch. Thanks to Liu Jin
1012 by applying the provided patch. Thanks to Liu Jin
1008 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1013 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1009 XEmacs/Linux, I'm trusting the submitter that it actually helps
1014 XEmacs/Linux, I'm trusting the submitter that it actually helps
1010 under win32/GNU Emacs. Will revisit if any problems are reported.
1015 under win32/GNU Emacs. Will revisit if any problems are reported.
1011
1016
1012 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1017 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1013
1018
1014 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1019 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1015 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1020 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1016
1021
1017 2006-03-12 Ville Vainio <vivainio@gmail.com>
1022 2006-03-12 Ville Vainio <vivainio@gmail.com>
1018
1023
1019 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1024 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1020 Torsten Marek.
1025 Torsten Marek.
1021
1026
1022 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1027 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1023
1028
1024 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1029 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1025 line ranges works again.
1030 line ranges works again.
1026
1031
1027 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1032 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1028
1033
1029 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1034 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1030 and friends, after a discussion with Zach Pincus on ipython-user.
1035 and friends, after a discussion with Zach Pincus on ipython-user.
1031 I'm not 100% sure, but after thinking about it quite a bit, it may
1036 I'm not 100% sure, but after thinking about it quite a bit, it may
1032 be OK. Testing with the multithreaded shells didn't reveal any
1037 be OK. Testing with the multithreaded shells didn't reveal any
1033 problems, but let's keep an eye out.
1038 problems, but let's keep an eye out.
1034
1039
1035 In the process, I fixed a few things which were calling
1040 In the process, I fixed a few things which were calling
1036 self.InteractiveTB() directly (like safe_execfile), which is a
1041 self.InteractiveTB() directly (like safe_execfile), which is a
1037 mistake: ALL exception reporting should be done by calling
1042 mistake: ALL exception reporting should be done by calling
1038 self.showtraceback(), which handles state and tab-completion and
1043 self.showtraceback(), which handles state and tab-completion and
1039 more.
1044 more.
1040
1045
1041 2006-03-01 Ville Vainio <vivainio@gmail.com>
1046 2006-03-01 Ville Vainio <vivainio@gmail.com>
1042
1047
1043 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1048 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1044 To use, do "from ipipe import *".
1049 To use, do "from ipipe import *".
1045
1050
1046 2006-02-24 Ville Vainio <vivainio@gmail.com>
1051 2006-02-24 Ville Vainio <vivainio@gmail.com>
1047
1052
1048 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1053 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1049 "cleanly" and safely than the older upgrade mechanism.
1054 "cleanly" and safely than the older upgrade mechanism.
1050
1055
1051 2006-02-21 Ville Vainio <vivainio@gmail.com>
1056 2006-02-21 Ville Vainio <vivainio@gmail.com>
1052
1057
1053 * Magic.py: %save works again.
1058 * Magic.py: %save works again.
1054
1059
1055 2006-02-15 Ville Vainio <vivainio@gmail.com>
1060 2006-02-15 Ville Vainio <vivainio@gmail.com>
1056
1061
1057 * Magic.py: %Pprint works again
1062 * Magic.py: %Pprint works again
1058
1063
1059 * Extensions/ipy_sane_defaults.py: Provide everything provided
1064 * Extensions/ipy_sane_defaults.py: Provide everything provided
1060 in default ipythonrc, to make it possible to have a completely empty
1065 in default ipythonrc, to make it possible to have a completely empty
1061 ipythonrc (and thus completely rc-file free configuration)
1066 ipythonrc (and thus completely rc-file free configuration)
1062
1067
1063 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1068 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1064
1069
1065 * IPython/hooks.py (editor): quote the call to the editor command,
1070 * IPython/hooks.py (editor): quote the call to the editor command,
1066 to allow commands with spaces in them. Problem noted by watching
1071 to allow commands with spaces in them. Problem noted by watching
1067 Ian Oswald's video about textpad under win32 at
1072 Ian Oswald's video about textpad under win32 at
1068 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1073 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1069
1074
1070 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1075 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1071 describing magics (we haven't used @ for a loong time).
1076 describing magics (we haven't used @ for a loong time).
1072
1077
1073 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1078 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1074 contributed by marienz to close
1079 contributed by marienz to close
1075 http://www.scipy.net/roundup/ipython/issue53.
1080 http://www.scipy.net/roundup/ipython/issue53.
1076
1081
1077 2006-02-10 Ville Vainio <vivainio@gmail.com>
1082 2006-02-10 Ville Vainio <vivainio@gmail.com>
1078
1083
1079 * genutils.py: getoutput now works in win32 too
1084 * genutils.py: getoutput now works in win32 too
1080
1085
1081 * completer.py: alias and magic completion only invoked
1086 * completer.py: alias and magic completion only invoked
1082 at the first "item" in the line, to avoid "cd %store"
1087 at the first "item" in the line, to avoid "cd %store"
1083 nonsense.
1088 nonsense.
1084
1089
1085 2006-02-09 Ville Vainio <vivainio@gmail.com>
1090 2006-02-09 Ville Vainio <vivainio@gmail.com>
1086
1091
1087 * test/*: Added a unit testing framework (finally).
1092 * test/*: Added a unit testing framework (finally).
1088 '%run runtests.py' to run test_*.
1093 '%run runtests.py' to run test_*.
1089
1094
1090 * ipapi.py: Exposed runlines and set_custom_exc
1095 * ipapi.py: Exposed runlines and set_custom_exc
1091
1096
1092 2006-02-07 Ville Vainio <vivainio@gmail.com>
1097 2006-02-07 Ville Vainio <vivainio@gmail.com>
1093
1098
1094 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1099 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1095 instead use "f(1 2)" as before.
1100 instead use "f(1 2)" as before.
1096
1101
1097 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1102 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1098
1103
1099 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1104 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1100 facilities, for demos processed by the IPython input filter
1105 facilities, for demos processed by the IPython input filter
1101 (IPythonDemo), and for running a script one-line-at-a-time as a
1106 (IPythonDemo), and for running a script one-line-at-a-time as a
1102 demo, both for pure Python (LineDemo) and for IPython-processed
1107 demo, both for pure Python (LineDemo) and for IPython-processed
1103 input (IPythonLineDemo). After a request by Dave Kohel, from the
1108 input (IPythonLineDemo). After a request by Dave Kohel, from the
1104 SAGE team.
1109 SAGE team.
1105 (Demo.edit): added an edit() method to the demo objects, to edit
1110 (Demo.edit): added an edit() method to the demo objects, to edit
1106 the in-memory copy of the last executed block.
1111 the in-memory copy of the last executed block.
1107
1112
1108 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1113 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1109 processing to %edit, %macro and %save. These commands can now be
1114 processing to %edit, %macro and %save. These commands can now be
1110 invoked on the unprocessed input as it was typed by the user
1115 invoked on the unprocessed input as it was typed by the user
1111 (without any prefilters applied). After requests by the SAGE team
1116 (without any prefilters applied). After requests by the SAGE team
1112 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1117 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1113
1118
1114 2006-02-01 Ville Vainio <vivainio@gmail.com>
1119 2006-02-01 Ville Vainio <vivainio@gmail.com>
1115
1120
1116 * setup.py, eggsetup.py: easy_install ipython==dev works
1121 * setup.py, eggsetup.py: easy_install ipython==dev works
1117 correctly now (on Linux)
1122 correctly now (on Linux)
1118
1123
1119 * ipy_user_conf,ipmaker: user config changes, removed spurious
1124 * ipy_user_conf,ipmaker: user config changes, removed spurious
1120 warnings
1125 warnings
1121
1126
1122 * iplib: if rc.banner is string, use it as is.
1127 * iplib: if rc.banner is string, use it as is.
1123
1128
1124 * Magic: %pycat accepts a string argument and pages it's contents.
1129 * Magic: %pycat accepts a string argument and pages it's contents.
1125
1130
1126
1131
1127 2006-01-30 Ville Vainio <vivainio@gmail.com>
1132 2006-01-30 Ville Vainio <vivainio@gmail.com>
1128
1133
1129 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1134 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1130 Now %store and bookmarks work through PickleShare, meaning that
1135 Now %store and bookmarks work through PickleShare, meaning that
1131 concurrent access is possible and all ipython sessions see the
1136 concurrent access is possible and all ipython sessions see the
1132 same database situation all the time, instead of snapshot of
1137 same database situation all the time, instead of snapshot of
1133 the situation when the session was started. Hence, %bookmark
1138 the situation when the session was started. Hence, %bookmark
1134 results are immediately accessible from othes sessions. The database
1139 results are immediately accessible from othes sessions. The database
1135 is also available for use by user extensions. See:
1140 is also available for use by user extensions. See:
1136 http://www.python.org/pypi/pickleshare
1141 http://www.python.org/pypi/pickleshare
1137
1142
1138 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1143 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1139
1144
1140 * aliases can now be %store'd
1145 * aliases can now be %store'd
1141
1146
1142 * path.py moved to Extensions so that pickleshare does not need
1147 * path.py moved to Extensions so that pickleshare does not need
1143 IPython-specific import. Extensions added to pythonpath right
1148 IPython-specific import. Extensions added to pythonpath right
1144 at __init__.
1149 at __init__.
1145
1150
1146 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1151 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1147 called with _ip.system and the pre-transformed command string.
1152 called with _ip.system and the pre-transformed command string.
1148
1153
1149 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1154 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1150
1155
1151 * IPython/iplib.py (interact): Fix that we were not catching
1156 * IPython/iplib.py (interact): Fix that we were not catching
1152 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1157 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1153 logic here had to change, but it's fixed now.
1158 logic here had to change, but it's fixed now.
1154
1159
1155 2006-01-29 Ville Vainio <vivainio@gmail.com>
1160 2006-01-29 Ville Vainio <vivainio@gmail.com>
1156
1161
1157 * iplib.py: Try to import pyreadline on Windows.
1162 * iplib.py: Try to import pyreadline on Windows.
1158
1163
1159 2006-01-27 Ville Vainio <vivainio@gmail.com>
1164 2006-01-27 Ville Vainio <vivainio@gmail.com>
1160
1165
1161 * iplib.py: Expose ipapi as _ip in builtin namespace.
1166 * iplib.py: Expose ipapi as _ip in builtin namespace.
1162 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1167 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1163 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1168 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1164 syntax now produce _ip.* variant of the commands.
1169 syntax now produce _ip.* variant of the commands.
1165
1170
1166 * "_ip.options().autoedit_syntax = 2" automatically throws
1171 * "_ip.options().autoedit_syntax = 2" automatically throws
1167 user to editor for syntax error correction without prompting.
1172 user to editor for syntax error correction without prompting.
1168
1173
1169 2006-01-27 Ville Vainio <vivainio@gmail.com>
1174 2006-01-27 Ville Vainio <vivainio@gmail.com>
1170
1175
1171 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1176 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1172 'ipython' at argv[0]) executed through command line.
1177 'ipython' at argv[0]) executed through command line.
1173 NOTE: this DEPRECATES calling ipython with multiple scripts
1178 NOTE: this DEPRECATES calling ipython with multiple scripts
1174 ("ipython a.py b.py c.py")
1179 ("ipython a.py b.py c.py")
1175
1180
1176 * iplib.py, hooks.py: Added configurable input prefilter,
1181 * iplib.py, hooks.py: Added configurable input prefilter,
1177 named 'input_prefilter'. See ext_rescapture.py for example
1182 named 'input_prefilter'. See ext_rescapture.py for example
1178 usage.
1183 usage.
1179
1184
1180 * ext_rescapture.py, Magic.py: Better system command output capture
1185 * ext_rescapture.py, Magic.py: Better system command output capture
1181 through 'var = !ls' (deprecates user-visible %sc). Same notation
1186 through 'var = !ls' (deprecates user-visible %sc). Same notation
1182 applies for magics, 'var = %alias' assigns alias list to var.
1187 applies for magics, 'var = %alias' assigns alias list to var.
1183
1188
1184 * ipapi.py: added meta() for accessing extension-usable data store.
1189 * ipapi.py: added meta() for accessing extension-usable data store.
1185
1190
1186 * iplib.py: added InteractiveShell.getapi(). New magics should be
1191 * iplib.py: added InteractiveShell.getapi(). New magics should be
1187 written doing self.getapi() instead of using the shell directly.
1192 written doing self.getapi() instead of using the shell directly.
1188
1193
1189 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1194 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1190 %store foo >> ~/myfoo.txt to store variables to files (in clean
1195 %store foo >> ~/myfoo.txt to store variables to files (in clean
1191 textual form, not a restorable pickle).
1196 textual form, not a restorable pickle).
1192
1197
1193 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1198 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1194
1199
1195 * usage.py, Magic.py: added %quickref
1200 * usage.py, Magic.py: added %quickref
1196
1201
1197 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1202 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1198
1203
1199 * GetoptErrors when invoking magics etc. with wrong args
1204 * GetoptErrors when invoking magics etc. with wrong args
1200 are now more helpful:
1205 are now more helpful:
1201 GetoptError: option -l not recognized (allowed: "qb" )
1206 GetoptError: option -l not recognized (allowed: "qb" )
1202
1207
1203 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1208 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1204
1209
1205 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1210 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1206 computationally intensive blocks don't appear to stall the demo.
1211 computationally intensive blocks don't appear to stall the demo.
1207
1212
1208 2006-01-24 Ville Vainio <vivainio@gmail.com>
1213 2006-01-24 Ville Vainio <vivainio@gmail.com>
1209
1214
1210 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1215 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1211 value to manipulate resulting history entry.
1216 value to manipulate resulting history entry.
1212
1217
1213 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1218 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1214 to instance methods of IPApi class, to make extending an embedded
1219 to instance methods of IPApi class, to make extending an embedded
1215 IPython feasible. See ext_rehashdir.py for example usage.
1220 IPython feasible. See ext_rehashdir.py for example usage.
1216
1221
1217 * Merged 1071-1076 from branches/0.7.1
1222 * Merged 1071-1076 from branches/0.7.1
1218
1223
1219
1224
1220 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1225 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1221
1226
1222 * tools/release (daystamp): Fix build tools to use the new
1227 * tools/release (daystamp): Fix build tools to use the new
1223 eggsetup.py script to build lightweight eggs.
1228 eggsetup.py script to build lightweight eggs.
1224
1229
1225 * Applied changesets 1062 and 1064 before 0.7.1 release.
1230 * Applied changesets 1062 and 1064 before 0.7.1 release.
1226
1231
1227 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1232 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1228 see the raw input history (without conversions like %ls ->
1233 see the raw input history (without conversions like %ls ->
1229 ipmagic("ls")). After a request from W. Stein, SAGE
1234 ipmagic("ls")). After a request from W. Stein, SAGE
1230 (http://modular.ucsd.edu/sage) developer. This information is
1235 (http://modular.ucsd.edu/sage) developer. This information is
1231 stored in the input_hist_raw attribute of the IPython instance, so
1236 stored in the input_hist_raw attribute of the IPython instance, so
1232 developers can access it if needed (it's an InputList instance).
1237 developers can access it if needed (it's an InputList instance).
1233
1238
1234 * Versionstring = 0.7.2.svn
1239 * Versionstring = 0.7.2.svn
1235
1240
1236 * eggsetup.py: A separate script for constructing eggs, creates
1241 * eggsetup.py: A separate script for constructing eggs, creates
1237 proper launch scripts even on Windows (an .exe file in
1242 proper launch scripts even on Windows (an .exe file in
1238 \python24\scripts).
1243 \python24\scripts).
1239
1244
1240 * ipapi.py: launch_new_instance, launch entry point needed for the
1245 * ipapi.py: launch_new_instance, launch entry point needed for the
1241 egg.
1246 egg.
1242
1247
1243 2006-01-23 Ville Vainio <vivainio@gmail.com>
1248 2006-01-23 Ville Vainio <vivainio@gmail.com>
1244
1249
1245 * Added %cpaste magic for pasting python code
1250 * Added %cpaste magic for pasting python code
1246
1251
1247 2006-01-22 Ville Vainio <vivainio@gmail.com>
1252 2006-01-22 Ville Vainio <vivainio@gmail.com>
1248
1253
1249 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1254 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1250
1255
1251 * Versionstring = 0.7.2.svn
1256 * Versionstring = 0.7.2.svn
1252
1257
1253 * eggsetup.py: A separate script for constructing eggs, creates
1258 * eggsetup.py: A separate script for constructing eggs, creates
1254 proper launch scripts even on Windows (an .exe file in
1259 proper launch scripts even on Windows (an .exe file in
1255 \python24\scripts).
1260 \python24\scripts).
1256
1261
1257 * ipapi.py: launch_new_instance, launch entry point needed for the
1262 * ipapi.py: launch_new_instance, launch entry point needed for the
1258 egg.
1263 egg.
1259
1264
1260 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1265 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1261
1266
1262 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1267 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1263 %pfile foo would print the file for foo even if it was a binary.
1268 %pfile foo would print the file for foo even if it was a binary.
1264 Now, extensions '.so' and '.dll' are skipped.
1269 Now, extensions '.so' and '.dll' are skipped.
1265
1270
1266 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1271 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1267 bug, where macros would fail in all threaded modes. I'm not 100%
1272 bug, where macros would fail in all threaded modes. I'm not 100%
1268 sure, so I'm going to put out an rc instead of making a release
1273 sure, so I'm going to put out an rc instead of making a release
1269 today, and wait for feedback for at least a few days.
1274 today, and wait for feedback for at least a few days.
1270
1275
1271 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1276 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1272 it...) the handling of pasting external code with autoindent on.
1277 it...) the handling of pasting external code with autoindent on.
1273 To get out of a multiline input, the rule will appear for most
1278 To get out of a multiline input, the rule will appear for most
1274 users unchanged: two blank lines or change the indent level
1279 users unchanged: two blank lines or change the indent level
1275 proposed by IPython. But there is a twist now: you can
1280 proposed by IPython. But there is a twist now: you can
1276 add/subtract only *one or two spaces*. If you add/subtract three
1281 add/subtract only *one or two spaces*. If you add/subtract three
1277 or more (unless you completely delete the line), IPython will
1282 or more (unless you completely delete the line), IPython will
1278 accept that line, and you'll need to enter a second one of pure
1283 accept that line, and you'll need to enter a second one of pure
1279 whitespace. I know it sounds complicated, but I can't find a
1284 whitespace. I know it sounds complicated, but I can't find a
1280 different solution that covers all the cases, with the right
1285 different solution that covers all the cases, with the right
1281 heuristics. Hopefully in actual use, nobody will really notice
1286 heuristics. Hopefully in actual use, nobody will really notice
1282 all these strange rules and things will 'just work'.
1287 all these strange rules and things will 'just work'.
1283
1288
1284 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1289 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1285
1290
1286 * IPython/iplib.py (interact): catch exceptions which can be
1291 * IPython/iplib.py (interact): catch exceptions which can be
1287 triggered asynchronously by signal handlers. Thanks to an
1292 triggered asynchronously by signal handlers. Thanks to an
1288 automatic crash report, submitted by Colin Kingsley
1293 automatic crash report, submitted by Colin Kingsley
1289 <tercel-AT-gentoo.org>.
1294 <tercel-AT-gentoo.org>.
1290
1295
1291 2006-01-20 Ville Vainio <vivainio@gmail.com>
1296 2006-01-20 Ville Vainio <vivainio@gmail.com>
1292
1297
1293 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1298 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1294 (%rehashdir, very useful, try it out) of how to extend ipython
1299 (%rehashdir, very useful, try it out) of how to extend ipython
1295 with new magics. Also added Extensions dir to pythonpath to make
1300 with new magics. Also added Extensions dir to pythonpath to make
1296 importing extensions easy.
1301 importing extensions easy.
1297
1302
1298 * %store now complains when trying to store interactively declared
1303 * %store now complains when trying to store interactively declared
1299 classes / instances of those classes.
1304 classes / instances of those classes.
1300
1305
1301 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1306 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1302 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1307 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1303 if they exist, and ipy_user_conf.py with some defaults is created for
1308 if they exist, and ipy_user_conf.py with some defaults is created for
1304 the user.
1309 the user.
1305
1310
1306 * Startup rehashing done by the config file, not InterpreterExec.
1311 * Startup rehashing done by the config file, not InterpreterExec.
1307 This means system commands are available even without selecting the
1312 This means system commands are available even without selecting the
1308 pysh profile. It's the sensible default after all.
1313 pysh profile. It's the sensible default after all.
1309
1314
1310 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1315 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1311
1316
1312 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1317 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1313 multiline code with autoindent on working. But I am really not
1318 multiline code with autoindent on working. But I am really not
1314 sure, so this needs more testing. Will commit a debug-enabled
1319 sure, so this needs more testing. Will commit a debug-enabled
1315 version for now, while I test it some more, so that Ville and
1320 version for now, while I test it some more, so that Ville and
1316 others may also catch any problems. Also made
1321 others may also catch any problems. Also made
1317 self.indent_current_str() a method, to ensure that there's no
1322 self.indent_current_str() a method, to ensure that there's no
1318 chance of the indent space count and the corresponding string
1323 chance of the indent space count and the corresponding string
1319 falling out of sync. All code needing the string should just call
1324 falling out of sync. All code needing the string should just call
1320 the method.
1325 the method.
1321
1326
1322 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1327 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1323
1328
1324 * IPython/Magic.py (magic_edit): fix check for when users don't
1329 * IPython/Magic.py (magic_edit): fix check for when users don't
1325 save their output files, the try/except was in the wrong section.
1330 save their output files, the try/except was in the wrong section.
1326
1331
1327 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1332 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1328
1333
1329 * IPython/Magic.py (magic_run): fix __file__ global missing from
1334 * IPython/Magic.py (magic_run): fix __file__ global missing from
1330 script's namespace when executed via %run. After a report by
1335 script's namespace when executed via %run. After a report by
1331 Vivian.
1336 Vivian.
1332
1337
1333 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1338 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1334 when using python 2.4. The parent constructor changed in 2.4, and
1339 when using python 2.4. The parent constructor changed in 2.4, and
1335 we need to track it directly (we can't call it, as it messes up
1340 we need to track it directly (we can't call it, as it messes up
1336 readline and tab-completion inside our pdb would stop working).
1341 readline and tab-completion inside our pdb would stop working).
1337 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1342 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1338
1343
1339 2006-01-16 Ville Vainio <vivainio@gmail.com>
1344 2006-01-16 Ville Vainio <vivainio@gmail.com>
1340
1345
1341 * Ipython/magic.py: Reverted back to old %edit functionality
1346 * Ipython/magic.py: Reverted back to old %edit functionality
1342 that returns file contents on exit.
1347 that returns file contents on exit.
1343
1348
1344 * IPython/path.py: Added Jason Orendorff's "path" module to
1349 * IPython/path.py: Added Jason Orendorff's "path" module to
1345 IPython tree, http://www.jorendorff.com/articles/python/path/.
1350 IPython tree, http://www.jorendorff.com/articles/python/path/.
1346 You can get path objects conveniently through %sc, and !!, e.g.:
1351 You can get path objects conveniently through %sc, and !!, e.g.:
1347 sc files=ls
1352 sc files=ls
1348 for p in files.paths: # or files.p
1353 for p in files.paths: # or files.p
1349 print p,p.mtime
1354 print p,p.mtime
1350
1355
1351 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1356 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1352 now work again without considering the exclusion regexp -
1357 now work again without considering the exclusion regexp -
1353 hence, things like ',foo my/path' turn to 'foo("my/path")'
1358 hence, things like ',foo my/path' turn to 'foo("my/path")'
1354 instead of syntax error.
1359 instead of syntax error.
1355
1360
1356
1361
1357 2006-01-14 Ville Vainio <vivainio@gmail.com>
1362 2006-01-14 Ville Vainio <vivainio@gmail.com>
1358
1363
1359 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1364 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1360 ipapi decorators for python 2.4 users, options() provides access to rc
1365 ipapi decorators for python 2.4 users, options() provides access to rc
1361 data.
1366 data.
1362
1367
1363 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1368 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1364 as path separators (even on Linux ;-). Space character after
1369 as path separators (even on Linux ;-). Space character after
1365 backslash (as yielded by tab completer) is still space;
1370 backslash (as yielded by tab completer) is still space;
1366 "%cd long\ name" works as expected.
1371 "%cd long\ name" works as expected.
1367
1372
1368 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1373 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1369 as "chain of command", with priority. API stays the same,
1374 as "chain of command", with priority. API stays the same,
1370 TryNext exception raised by a hook function signals that
1375 TryNext exception raised by a hook function signals that
1371 current hook failed and next hook should try handling it, as
1376 current hook failed and next hook should try handling it, as
1372 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1377 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1373 requested configurable display hook, which is now implemented.
1378 requested configurable display hook, which is now implemented.
1374
1379
1375 2006-01-13 Ville Vainio <vivainio@gmail.com>
1380 2006-01-13 Ville Vainio <vivainio@gmail.com>
1376
1381
1377 * IPython/platutils*.py: platform specific utility functions,
1382 * IPython/platutils*.py: platform specific utility functions,
1378 so far only set_term_title is implemented (change terminal
1383 so far only set_term_title is implemented (change terminal
1379 label in windowing systems). %cd now changes the title to
1384 label in windowing systems). %cd now changes the title to
1380 current dir.
1385 current dir.
1381
1386
1382 * IPython/Release.py: Added myself to "authors" list,
1387 * IPython/Release.py: Added myself to "authors" list,
1383 had to create new files.
1388 had to create new files.
1384
1389
1385 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1390 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1386 shell escape; not a known bug but had potential to be one in the
1391 shell escape; not a known bug but had potential to be one in the
1387 future.
1392 future.
1388
1393
1389 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1394 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1390 extension API for IPython! See the module for usage example. Fix
1395 extension API for IPython! See the module for usage example. Fix
1391 OInspect for docstring-less magic functions.
1396 OInspect for docstring-less magic functions.
1392
1397
1393
1398
1394 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1399 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1395
1400
1396 * IPython/iplib.py (raw_input): temporarily deactivate all
1401 * IPython/iplib.py (raw_input): temporarily deactivate all
1397 attempts at allowing pasting of code with autoindent on. It
1402 attempts at allowing pasting of code with autoindent on. It
1398 introduced bugs (reported by Prabhu) and I can't seem to find a
1403 introduced bugs (reported by Prabhu) and I can't seem to find a
1399 robust combination which works in all cases. Will have to revisit
1404 robust combination which works in all cases. Will have to revisit
1400 later.
1405 later.
1401
1406
1402 * IPython/genutils.py: remove isspace() function. We've dropped
1407 * IPython/genutils.py: remove isspace() function. We've dropped
1403 2.2 compatibility, so it's OK to use the string method.
1408 2.2 compatibility, so it's OK to use the string method.
1404
1409
1405 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1410 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1406
1411
1407 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1412 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1408 matching what NOT to autocall on, to include all python binary
1413 matching what NOT to autocall on, to include all python binary
1409 operators (including things like 'and', 'or', 'is' and 'in').
1414 operators (including things like 'and', 'or', 'is' and 'in').
1410 Prompted by a bug report on 'foo & bar', but I realized we had
1415 Prompted by a bug report on 'foo & bar', but I realized we had
1411 many more potential bug cases with other operators. The regexp is
1416 many more potential bug cases with other operators. The regexp is
1412 self.re_exclude_auto, it's fairly commented.
1417 self.re_exclude_auto, it's fairly commented.
1413
1418
1414 2006-01-12 Ville Vainio <vivainio@gmail.com>
1419 2006-01-12 Ville Vainio <vivainio@gmail.com>
1415
1420
1416 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1421 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1417 Prettified and hardened string/backslash quoting with ipsystem(),
1422 Prettified and hardened string/backslash quoting with ipsystem(),
1418 ipalias() and ipmagic(). Now even \ characters are passed to
1423 ipalias() and ipmagic(). Now even \ characters are passed to
1419 %magics, !shell escapes and aliases exactly as they are in the
1424 %magics, !shell escapes and aliases exactly as they are in the
1420 ipython command line. Should improve backslash experience,
1425 ipython command line. Should improve backslash experience,
1421 particularly in Windows (path delimiter for some commands that
1426 particularly in Windows (path delimiter for some commands that
1422 won't understand '/'), but Unix benefits as well (regexps). %cd
1427 won't understand '/'), but Unix benefits as well (regexps). %cd
1423 magic still doesn't support backslash path delimiters, though. Also
1428 magic still doesn't support backslash path delimiters, though. Also
1424 deleted all pretense of supporting multiline command strings in
1429 deleted all pretense of supporting multiline command strings in
1425 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1430 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1426
1431
1427 * doc/build_doc_instructions.txt added. Documentation on how to
1432 * doc/build_doc_instructions.txt added. Documentation on how to
1428 use doc/update_manual.py, added yesterday. Both files contributed
1433 use doc/update_manual.py, added yesterday. Both files contributed
1429 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1434 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1430 doc/*.sh for deprecation at a later date.
1435 doc/*.sh for deprecation at a later date.
1431
1436
1432 * /ipython.py Added ipython.py to root directory for
1437 * /ipython.py Added ipython.py to root directory for
1433 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1438 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1434 ipython.py) and development convenience (no need to keep doing
1439 ipython.py) and development convenience (no need to keep doing
1435 "setup.py install" between changes).
1440 "setup.py install" between changes).
1436
1441
1437 * Made ! and !! shell escapes work (again) in multiline expressions:
1442 * Made ! and !! shell escapes work (again) in multiline expressions:
1438 if 1:
1443 if 1:
1439 !ls
1444 !ls
1440 !!ls
1445 !!ls
1441
1446
1442 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1447 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1443
1448
1444 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1449 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1445 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1450 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1446 module in case-insensitive installation. Was causing crashes
1451 module in case-insensitive installation. Was causing crashes
1447 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1452 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1448
1453
1449 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1454 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1450 <marienz-AT-gentoo.org>, closes
1455 <marienz-AT-gentoo.org>, closes
1451 http://www.scipy.net/roundup/ipython/issue51.
1456 http://www.scipy.net/roundup/ipython/issue51.
1452
1457
1453 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1458 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1454
1459
1455 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1460 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1456 problem of excessive CPU usage under *nix and keyboard lag under
1461 problem of excessive CPU usage under *nix and keyboard lag under
1457 win32.
1462 win32.
1458
1463
1459 2006-01-10 *** Released version 0.7.0
1464 2006-01-10 *** Released version 0.7.0
1460
1465
1461 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1466 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1462
1467
1463 * IPython/Release.py (revision): tag version number to 0.7.0,
1468 * IPython/Release.py (revision): tag version number to 0.7.0,
1464 ready for release.
1469 ready for release.
1465
1470
1466 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1471 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1467 it informs the user of the name of the temp. file used. This can
1472 it informs the user of the name of the temp. file used. This can
1468 help if you decide later to reuse that same file, so you know
1473 help if you decide later to reuse that same file, so you know
1469 where to copy the info from.
1474 where to copy the info from.
1470
1475
1471 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1476 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1472
1477
1473 * setup_bdist_egg.py: little script to build an egg. Added
1478 * setup_bdist_egg.py: little script to build an egg. Added
1474 support in the release tools as well.
1479 support in the release tools as well.
1475
1480
1476 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1481 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1477
1482
1478 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1483 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1479 version selection (new -wxversion command line and ipythonrc
1484 version selection (new -wxversion command line and ipythonrc
1480 parameter). Patch contributed by Arnd Baecker
1485 parameter). Patch contributed by Arnd Baecker
1481 <arnd.baecker-AT-web.de>.
1486 <arnd.baecker-AT-web.de>.
1482
1487
1483 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1488 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1484 embedded instances, for variables defined at the interactive
1489 embedded instances, for variables defined at the interactive
1485 prompt of the embedded ipython. Reported by Arnd.
1490 prompt of the embedded ipython. Reported by Arnd.
1486
1491
1487 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1492 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1488 it can be used as a (stateful) toggle, or with a direct parameter.
1493 it can be used as a (stateful) toggle, or with a direct parameter.
1489
1494
1490 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1495 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1491 could be triggered in certain cases and cause the traceback
1496 could be triggered in certain cases and cause the traceback
1492 printer not to work.
1497 printer not to work.
1493
1498
1494 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1499 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1495
1500
1496 * IPython/iplib.py (_should_recompile): Small fix, closes
1501 * IPython/iplib.py (_should_recompile): Small fix, closes
1497 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1502 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1498
1503
1499 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1504 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1500
1505
1501 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1506 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1502 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1507 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1503 Moad for help with tracking it down.
1508 Moad for help with tracking it down.
1504
1509
1505 * IPython/iplib.py (handle_auto): fix autocall handling for
1510 * IPython/iplib.py (handle_auto): fix autocall handling for
1506 objects which support BOTH __getitem__ and __call__ (so that f [x]
1511 objects which support BOTH __getitem__ and __call__ (so that f [x]
1507 is left alone, instead of becoming f([x]) automatically).
1512 is left alone, instead of becoming f([x]) automatically).
1508
1513
1509 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1514 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1510 Ville's patch.
1515 Ville's patch.
1511
1516
1512 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1517 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1513
1518
1514 * IPython/iplib.py (handle_auto): changed autocall semantics to
1519 * IPython/iplib.py (handle_auto): changed autocall semantics to
1515 include 'smart' mode, where the autocall transformation is NOT
1520 include 'smart' mode, where the autocall transformation is NOT
1516 applied if there are no arguments on the line. This allows you to
1521 applied if there are no arguments on the line. This allows you to
1517 just type 'foo' if foo is a callable to see its internal form,
1522 just type 'foo' if foo is a callable to see its internal form,
1518 instead of having it called with no arguments (typically a
1523 instead of having it called with no arguments (typically a
1519 mistake). The old 'full' autocall still exists: for that, you
1524 mistake). The old 'full' autocall still exists: for that, you
1520 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1525 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1521
1526
1522 * IPython/completer.py (Completer.attr_matches): add
1527 * IPython/completer.py (Completer.attr_matches): add
1523 tab-completion support for Enthoughts' traits. After a report by
1528 tab-completion support for Enthoughts' traits. After a report by
1524 Arnd and a patch by Prabhu.
1529 Arnd and a patch by Prabhu.
1525
1530
1526 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1531 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1527
1532
1528 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1533 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1529 Schmolck's patch to fix inspect.getinnerframes().
1534 Schmolck's patch to fix inspect.getinnerframes().
1530
1535
1531 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1536 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1532 for embedded instances, regarding handling of namespaces and items
1537 for embedded instances, regarding handling of namespaces and items
1533 added to the __builtin__ one. Multiple embedded instances and
1538 added to the __builtin__ one. Multiple embedded instances and
1534 recursive embeddings should work better now (though I'm not sure
1539 recursive embeddings should work better now (though I'm not sure
1535 I've got all the corner cases fixed, that code is a bit of a brain
1540 I've got all the corner cases fixed, that code is a bit of a brain
1536 twister).
1541 twister).
1537
1542
1538 * IPython/Magic.py (magic_edit): added support to edit in-memory
1543 * IPython/Magic.py (magic_edit): added support to edit in-memory
1539 macros (automatically creates the necessary temp files). %edit
1544 macros (automatically creates the necessary temp files). %edit
1540 also doesn't return the file contents anymore, it's just noise.
1545 also doesn't return the file contents anymore, it's just noise.
1541
1546
1542 * IPython/completer.py (Completer.attr_matches): revert change to
1547 * IPython/completer.py (Completer.attr_matches): revert change to
1543 complete only on attributes listed in __all__. I realized it
1548 complete only on attributes listed in __all__. I realized it
1544 cripples the tab-completion system as a tool for exploring the
1549 cripples the tab-completion system as a tool for exploring the
1545 internals of unknown libraries (it renders any non-__all__
1550 internals of unknown libraries (it renders any non-__all__
1546 attribute off-limits). I got bit by this when trying to see
1551 attribute off-limits). I got bit by this when trying to see
1547 something inside the dis module.
1552 something inside the dis module.
1548
1553
1549 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1554 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1550
1555
1551 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1556 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1552 namespace for users and extension writers to hold data in. This
1557 namespace for users and extension writers to hold data in. This
1553 follows the discussion in
1558 follows the discussion in
1554 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1559 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1555
1560
1556 * IPython/completer.py (IPCompleter.complete): small patch to help
1561 * IPython/completer.py (IPCompleter.complete): small patch to help
1557 tab-completion under Emacs, after a suggestion by John Barnard
1562 tab-completion under Emacs, after a suggestion by John Barnard
1558 <barnarj-AT-ccf.org>.
1563 <barnarj-AT-ccf.org>.
1559
1564
1560 * IPython/Magic.py (Magic.extract_input_slices): added support for
1565 * IPython/Magic.py (Magic.extract_input_slices): added support for
1561 the slice notation in magics to use N-M to represent numbers N...M
1566 the slice notation in magics to use N-M to represent numbers N...M
1562 (closed endpoints). This is used by %macro and %save.
1567 (closed endpoints). This is used by %macro and %save.
1563
1568
1564 * IPython/completer.py (Completer.attr_matches): for modules which
1569 * IPython/completer.py (Completer.attr_matches): for modules which
1565 define __all__, complete only on those. After a patch by Jeffrey
1570 define __all__, complete only on those. After a patch by Jeffrey
1566 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1571 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1567 speed up this routine.
1572 speed up this routine.
1568
1573
1569 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1574 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1570 don't know if this is the end of it, but the behavior now is
1575 don't know if this is the end of it, but the behavior now is
1571 certainly much more correct. Note that coupled with macros,
1576 certainly much more correct. Note that coupled with macros,
1572 slightly surprising (at first) behavior may occur: a macro will in
1577 slightly surprising (at first) behavior may occur: a macro will in
1573 general expand to multiple lines of input, so upon exiting, the
1578 general expand to multiple lines of input, so upon exiting, the
1574 in/out counters will both be bumped by the corresponding amount
1579 in/out counters will both be bumped by the corresponding amount
1575 (as if the macro's contents had been typed interactively). Typing
1580 (as if the macro's contents had been typed interactively). Typing
1576 %hist will reveal the intermediate (silently processed) lines.
1581 %hist will reveal the intermediate (silently processed) lines.
1577
1582
1578 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1583 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1579 pickle to fail (%run was overwriting __main__ and not restoring
1584 pickle to fail (%run was overwriting __main__ and not restoring
1580 it, but pickle relies on __main__ to operate).
1585 it, but pickle relies on __main__ to operate).
1581
1586
1582 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1587 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1583 using properties, but forgot to make the main InteractiveShell
1588 using properties, but forgot to make the main InteractiveShell
1584 class a new-style class. Properties fail silently, and
1589 class a new-style class. Properties fail silently, and
1585 mysteriously, with old-style class (getters work, but
1590 mysteriously, with old-style class (getters work, but
1586 setters don't do anything).
1591 setters don't do anything).
1587
1592
1588 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1593 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1589
1594
1590 * IPython/Magic.py (magic_history): fix history reporting bug (I
1595 * IPython/Magic.py (magic_history): fix history reporting bug (I
1591 know some nasties are still there, I just can't seem to find a
1596 know some nasties are still there, I just can't seem to find a
1592 reproducible test case to track them down; the input history is
1597 reproducible test case to track them down; the input history is
1593 falling out of sync...)
1598 falling out of sync...)
1594
1599
1595 * IPython/iplib.py (handle_shell_escape): fix bug where both
1600 * IPython/iplib.py (handle_shell_escape): fix bug where both
1596 aliases and system accesses where broken for indented code (such
1601 aliases and system accesses where broken for indented code (such
1597 as loops).
1602 as loops).
1598
1603
1599 * IPython/genutils.py (shell): fix small but critical bug for
1604 * IPython/genutils.py (shell): fix small but critical bug for
1600 win32 system access.
1605 win32 system access.
1601
1606
1602 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1607 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1603
1608
1604 * IPython/iplib.py (showtraceback): remove use of the
1609 * IPython/iplib.py (showtraceback): remove use of the
1605 sys.last_{type/value/traceback} structures, which are non
1610 sys.last_{type/value/traceback} structures, which are non
1606 thread-safe.
1611 thread-safe.
1607 (_prefilter): change control flow to ensure that we NEVER
1612 (_prefilter): change control flow to ensure that we NEVER
1608 introspect objects when autocall is off. This will guarantee that
1613 introspect objects when autocall is off. This will guarantee that
1609 having an input line of the form 'x.y', where access to attribute
1614 having an input line of the form 'x.y', where access to attribute
1610 'y' has side effects, doesn't trigger the side effect TWICE. It
1615 'y' has side effects, doesn't trigger the side effect TWICE. It
1611 is important to note that, with autocall on, these side effects
1616 is important to note that, with autocall on, these side effects
1612 can still happen.
1617 can still happen.
1613 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1618 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1614 trio. IPython offers these three kinds of special calls which are
1619 trio. IPython offers these three kinds of special calls which are
1615 not python code, and it's a good thing to have their call method
1620 not python code, and it's a good thing to have their call method
1616 be accessible as pure python functions (not just special syntax at
1621 be accessible as pure python functions (not just special syntax at
1617 the command line). It gives us a better internal implementation
1622 the command line). It gives us a better internal implementation
1618 structure, as well as exposing these for user scripting more
1623 structure, as well as exposing these for user scripting more
1619 cleanly.
1624 cleanly.
1620
1625
1621 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1626 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1622 file. Now that they'll be more likely to be used with the
1627 file. Now that they'll be more likely to be used with the
1623 persistance system (%store), I want to make sure their module path
1628 persistance system (%store), I want to make sure their module path
1624 doesn't change in the future, so that we don't break things for
1629 doesn't change in the future, so that we don't break things for
1625 users' persisted data.
1630 users' persisted data.
1626
1631
1627 * IPython/iplib.py (autoindent_update): move indentation
1632 * IPython/iplib.py (autoindent_update): move indentation
1628 management into the _text_ processing loop, not the keyboard
1633 management into the _text_ processing loop, not the keyboard
1629 interactive one. This is necessary to correctly process non-typed
1634 interactive one. This is necessary to correctly process non-typed
1630 multiline input (such as macros).
1635 multiline input (such as macros).
1631
1636
1632 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1637 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1633 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1638 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1634 which was producing problems in the resulting manual.
1639 which was producing problems in the resulting manual.
1635 (magic_whos): improve reporting of instances (show their class,
1640 (magic_whos): improve reporting of instances (show their class,
1636 instead of simply printing 'instance' which isn't terribly
1641 instead of simply printing 'instance' which isn't terribly
1637 informative).
1642 informative).
1638
1643
1639 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1644 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1640 (minor mods) to support network shares under win32.
1645 (minor mods) to support network shares under win32.
1641
1646
1642 * IPython/winconsole.py (get_console_size): add new winconsole
1647 * IPython/winconsole.py (get_console_size): add new winconsole
1643 module and fixes to page_dumb() to improve its behavior under
1648 module and fixes to page_dumb() to improve its behavior under
1644 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1649 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1645
1650
1646 * IPython/Magic.py (Macro): simplified Macro class to just
1651 * IPython/Magic.py (Macro): simplified Macro class to just
1647 subclass list. We've had only 2.2 compatibility for a very long
1652 subclass list. We've had only 2.2 compatibility for a very long
1648 time, yet I was still avoiding subclassing the builtin types. No
1653 time, yet I was still avoiding subclassing the builtin types. No
1649 more (I'm also starting to use properties, though I won't shift to
1654 more (I'm also starting to use properties, though I won't shift to
1650 2.3-specific features quite yet).
1655 2.3-specific features quite yet).
1651 (magic_store): added Ville's patch for lightweight variable
1656 (magic_store): added Ville's patch for lightweight variable
1652 persistence, after a request on the user list by Matt Wilkie
1657 persistence, after a request on the user list by Matt Wilkie
1653 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1658 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1654 details.
1659 details.
1655
1660
1656 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1661 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1657 changed the default logfile name from 'ipython.log' to
1662 changed the default logfile name from 'ipython.log' to
1658 'ipython_log.py'. These logs are real python files, and now that
1663 'ipython_log.py'. These logs are real python files, and now that
1659 we have much better multiline support, people are more likely to
1664 we have much better multiline support, people are more likely to
1660 want to use them as such. Might as well name them correctly.
1665 want to use them as such. Might as well name them correctly.
1661
1666
1662 * IPython/Magic.py: substantial cleanup. While we can't stop
1667 * IPython/Magic.py: substantial cleanup. While we can't stop
1663 using magics as mixins, due to the existing customizations 'out
1668 using magics as mixins, due to the existing customizations 'out
1664 there' which rely on the mixin naming conventions, at least I
1669 there' which rely on the mixin naming conventions, at least I
1665 cleaned out all cross-class name usage. So once we are OK with
1670 cleaned out all cross-class name usage. So once we are OK with
1666 breaking compatibility, the two systems can be separated.
1671 breaking compatibility, the two systems can be separated.
1667
1672
1668 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1673 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1669 anymore, and the class is a fair bit less hideous as well. New
1674 anymore, and the class is a fair bit less hideous as well. New
1670 features were also introduced: timestamping of input, and logging
1675 features were also introduced: timestamping of input, and logging
1671 of output results. These are user-visible with the -t and -o
1676 of output results. These are user-visible with the -t and -o
1672 options to %logstart. Closes
1677 options to %logstart. Closes
1673 http://www.scipy.net/roundup/ipython/issue11 and a request by
1678 http://www.scipy.net/roundup/ipython/issue11 and a request by
1674 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1679 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1675
1680
1676 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1681 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1677
1682
1678 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1683 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1679 better handle backslashes in paths. See the thread 'More Windows
1684 better handle backslashes in paths. See the thread 'More Windows
1680 questions part 2 - \/ characters revisited' on the iypthon user
1685 questions part 2 - \/ characters revisited' on the iypthon user
1681 list:
1686 list:
1682 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1687 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1683
1688
1684 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1689 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1685
1690
1686 (InteractiveShell.__init__): change threaded shells to not use the
1691 (InteractiveShell.__init__): change threaded shells to not use the
1687 ipython crash handler. This was causing more problems than not,
1692 ipython crash handler. This was causing more problems than not,
1688 as exceptions in the main thread (GUI code, typically) would
1693 as exceptions in the main thread (GUI code, typically) would
1689 always show up as a 'crash', when they really weren't.
1694 always show up as a 'crash', when they really weren't.
1690
1695
1691 The colors and exception mode commands (%colors/%xmode) have been
1696 The colors and exception mode commands (%colors/%xmode) have been
1692 synchronized to also take this into account, so users can get
1697 synchronized to also take this into account, so users can get
1693 verbose exceptions for their threaded code as well. I also added
1698 verbose exceptions for their threaded code as well. I also added
1694 support for activating pdb inside this exception handler as well,
1699 support for activating pdb inside this exception handler as well,
1695 so now GUI authors can use IPython's enhanced pdb at runtime.
1700 so now GUI authors can use IPython's enhanced pdb at runtime.
1696
1701
1697 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1702 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1698 true by default, and add it to the shipped ipythonrc file. Since
1703 true by default, and add it to the shipped ipythonrc file. Since
1699 this asks the user before proceeding, I think it's OK to make it
1704 this asks the user before proceeding, I think it's OK to make it
1700 true by default.
1705 true by default.
1701
1706
1702 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1707 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1703 of the previous special-casing of input in the eval loop. I think
1708 of the previous special-casing of input in the eval loop. I think
1704 this is cleaner, as they really are commands and shouldn't have
1709 this is cleaner, as they really are commands and shouldn't have
1705 a special role in the middle of the core code.
1710 a special role in the middle of the core code.
1706
1711
1707 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1712 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1708
1713
1709 * IPython/iplib.py (edit_syntax_error): added support for
1714 * IPython/iplib.py (edit_syntax_error): added support for
1710 automatically reopening the editor if the file had a syntax error
1715 automatically reopening the editor if the file had a syntax error
1711 in it. Thanks to scottt who provided the patch at:
1716 in it. Thanks to scottt who provided the patch at:
1712 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1717 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1713 version committed).
1718 version committed).
1714
1719
1715 * IPython/iplib.py (handle_normal): add suport for multi-line
1720 * IPython/iplib.py (handle_normal): add suport for multi-line
1716 input with emtpy lines. This fixes
1721 input with emtpy lines. This fixes
1717 http://www.scipy.net/roundup/ipython/issue43 and a similar
1722 http://www.scipy.net/roundup/ipython/issue43 and a similar
1718 discussion on the user list.
1723 discussion on the user list.
1719
1724
1720 WARNING: a behavior change is necessarily introduced to support
1725 WARNING: a behavior change is necessarily introduced to support
1721 blank lines: now a single blank line with whitespace does NOT
1726 blank lines: now a single blank line with whitespace does NOT
1722 break the input loop, which means that when autoindent is on, by
1727 break the input loop, which means that when autoindent is on, by
1723 default hitting return on the next (indented) line does NOT exit.
1728 default hitting return on the next (indented) line does NOT exit.
1724
1729
1725 Instead, to exit a multiline input you can either have:
1730 Instead, to exit a multiline input you can either have:
1726
1731
1727 - TWO whitespace lines (just hit return again), or
1732 - TWO whitespace lines (just hit return again), or
1728 - a single whitespace line of a different length than provided
1733 - a single whitespace line of a different length than provided
1729 by the autoindent (add or remove a space).
1734 by the autoindent (add or remove a space).
1730
1735
1731 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1736 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1732 module to better organize all readline-related functionality.
1737 module to better organize all readline-related functionality.
1733 I've deleted FlexCompleter and put all completion clases here.
1738 I've deleted FlexCompleter and put all completion clases here.
1734
1739
1735 * IPython/iplib.py (raw_input): improve indentation management.
1740 * IPython/iplib.py (raw_input): improve indentation management.
1736 It is now possible to paste indented code with autoindent on, and
1741 It is now possible to paste indented code with autoindent on, and
1737 the code is interpreted correctly (though it still looks bad on
1742 the code is interpreted correctly (though it still looks bad on
1738 screen, due to the line-oriented nature of ipython).
1743 screen, due to the line-oriented nature of ipython).
1739 (MagicCompleter.complete): change behavior so that a TAB key on an
1744 (MagicCompleter.complete): change behavior so that a TAB key on an
1740 otherwise empty line actually inserts a tab, instead of completing
1745 otherwise empty line actually inserts a tab, instead of completing
1741 on the entire global namespace. This makes it easier to use the
1746 on the entire global namespace. This makes it easier to use the
1742 TAB key for indentation. After a request by Hans Meine
1747 TAB key for indentation. After a request by Hans Meine
1743 <hans_meine-AT-gmx.net>
1748 <hans_meine-AT-gmx.net>
1744 (_prefilter): add support so that typing plain 'exit' or 'quit'
1749 (_prefilter): add support so that typing plain 'exit' or 'quit'
1745 does a sensible thing. Originally I tried to deviate as little as
1750 does a sensible thing. Originally I tried to deviate as little as
1746 possible from the default python behavior, but even that one may
1751 possible from the default python behavior, but even that one may
1747 change in this direction (thread on python-dev to that effect).
1752 change in this direction (thread on python-dev to that effect).
1748 Regardless, ipython should do the right thing even if CPython's
1753 Regardless, ipython should do the right thing even if CPython's
1749 '>>>' prompt doesn't.
1754 '>>>' prompt doesn't.
1750 (InteractiveShell): removed subclassing code.InteractiveConsole
1755 (InteractiveShell): removed subclassing code.InteractiveConsole
1751 class. By now we'd overridden just about all of its methods: I've
1756 class. By now we'd overridden just about all of its methods: I've
1752 copied the remaining two over, and now ipython is a standalone
1757 copied the remaining two over, and now ipython is a standalone
1753 class. This will provide a clearer picture for the chainsaw
1758 class. This will provide a clearer picture for the chainsaw
1754 branch refactoring.
1759 branch refactoring.
1755
1760
1756 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1761 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1757
1762
1758 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1763 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1759 failures for objects which break when dir() is called on them.
1764 failures for objects which break when dir() is called on them.
1760
1765
1761 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1766 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1762 distinct local and global namespaces in the completer API. This
1767 distinct local and global namespaces in the completer API. This
1763 change allows us to properly handle completion with distinct
1768 change allows us to properly handle completion with distinct
1764 scopes, including in embedded instances (this had never really
1769 scopes, including in embedded instances (this had never really
1765 worked correctly).
1770 worked correctly).
1766
1771
1767 Note: this introduces a change in the constructor for
1772 Note: this introduces a change in the constructor for
1768 MagicCompleter, as a new global_namespace parameter is now the
1773 MagicCompleter, as a new global_namespace parameter is now the
1769 second argument (the others were bumped one position).
1774 second argument (the others were bumped one position).
1770
1775
1771 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1776 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1772
1777
1773 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1778 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1774 embedded instances (which can be done now thanks to Vivian's
1779 embedded instances (which can be done now thanks to Vivian's
1775 frame-handling fixes for pdb).
1780 frame-handling fixes for pdb).
1776 (InteractiveShell.__init__): Fix namespace handling problem in
1781 (InteractiveShell.__init__): Fix namespace handling problem in
1777 embedded instances. We were overwriting __main__ unconditionally,
1782 embedded instances. We were overwriting __main__ unconditionally,
1778 and this should only be done for 'full' (non-embedded) IPython;
1783 and this should only be done for 'full' (non-embedded) IPython;
1779 embedded instances must respect the caller's __main__. Thanks to
1784 embedded instances must respect the caller's __main__. Thanks to
1780 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1785 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1781
1786
1782 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1787 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1783
1788
1784 * setup.py: added download_url to setup(). This registers the
1789 * setup.py: added download_url to setup(). This registers the
1785 download address at PyPI, which is not only useful to humans
1790 download address at PyPI, which is not only useful to humans
1786 browsing the site, but is also picked up by setuptools (the Eggs
1791 browsing the site, but is also picked up by setuptools (the Eggs
1787 machinery). Thanks to Ville and R. Kern for the info/discussion
1792 machinery). Thanks to Ville and R. Kern for the info/discussion
1788 on this.
1793 on this.
1789
1794
1790 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1795 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1791
1796
1792 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1797 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1793 This brings a lot of nice functionality to the pdb mode, which now
1798 This brings a lot of nice functionality to the pdb mode, which now
1794 has tab-completion, syntax highlighting, and better stack handling
1799 has tab-completion, syntax highlighting, and better stack handling
1795 than before. Many thanks to Vivian De Smedt
1800 than before. Many thanks to Vivian De Smedt
1796 <vivian-AT-vdesmedt.com> for the original patches.
1801 <vivian-AT-vdesmedt.com> for the original patches.
1797
1802
1798 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1803 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1799
1804
1800 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1805 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1801 sequence to consistently accept the banner argument. The
1806 sequence to consistently accept the banner argument. The
1802 inconsistency was tripping SAGE, thanks to Gary Zablackis
1807 inconsistency was tripping SAGE, thanks to Gary Zablackis
1803 <gzabl-AT-yahoo.com> for the report.
1808 <gzabl-AT-yahoo.com> for the report.
1804
1809
1805 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1810 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1806
1811
1807 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1812 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1808 Fix bug where a naked 'alias' call in the ipythonrc file would
1813 Fix bug where a naked 'alias' call in the ipythonrc file would
1809 cause a crash. Bug reported by Jorgen Stenarson.
1814 cause a crash. Bug reported by Jorgen Stenarson.
1810
1815
1811 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1816 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1812
1817
1813 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1818 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1814 startup time.
1819 startup time.
1815
1820
1816 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1821 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1817 instances had introduced a bug with globals in normal code. Now
1822 instances had introduced a bug with globals in normal code. Now
1818 it's working in all cases.
1823 it's working in all cases.
1819
1824
1820 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1825 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1821 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1826 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1822 has been introduced to set the default case sensitivity of the
1827 has been introduced to set the default case sensitivity of the
1823 searches. Users can still select either mode at runtime on a
1828 searches. Users can still select either mode at runtime on a
1824 per-search basis.
1829 per-search basis.
1825
1830
1826 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1831 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1827
1832
1828 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1833 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1829 attributes in wildcard searches for subclasses. Modified version
1834 attributes in wildcard searches for subclasses. Modified version
1830 of a patch by Jorgen.
1835 of a patch by Jorgen.
1831
1836
1832 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1837 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1833
1838
1834 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1839 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1835 embedded instances. I added a user_global_ns attribute to the
1840 embedded instances. I added a user_global_ns attribute to the
1836 InteractiveShell class to handle this.
1841 InteractiveShell class to handle this.
1837
1842
1838 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1843 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1839
1844
1840 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1845 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1841 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1846 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1842 (reported under win32, but may happen also in other platforms).
1847 (reported under win32, but may happen also in other platforms).
1843 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1848 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1844
1849
1845 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1850 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1846
1851
1847 * IPython/Magic.py (magic_psearch): new support for wildcard
1852 * IPython/Magic.py (magic_psearch): new support for wildcard
1848 patterns. Now, typing ?a*b will list all names which begin with a
1853 patterns. Now, typing ?a*b will list all names which begin with a
1849 and end in b, for example. The %psearch magic has full
1854 and end in b, for example. The %psearch magic has full
1850 docstrings. Many thanks to JΓΆrgen Stenarson
1855 docstrings. Many thanks to JΓΆrgen Stenarson
1851 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1856 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1852 implementing this functionality.
1857 implementing this functionality.
1853
1858
1854 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1859 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1855
1860
1856 * Manual: fixed long-standing annoyance of double-dashes (as in
1861 * Manual: fixed long-standing annoyance of double-dashes (as in
1857 --prefix=~, for example) being stripped in the HTML version. This
1862 --prefix=~, for example) being stripped in the HTML version. This
1858 is a latex2html bug, but a workaround was provided. Many thanks
1863 is a latex2html bug, but a workaround was provided. Many thanks
1859 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1864 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1860 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1865 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1861 rolling. This seemingly small issue had tripped a number of users
1866 rolling. This seemingly small issue had tripped a number of users
1862 when first installing, so I'm glad to see it gone.
1867 when first installing, so I'm glad to see it gone.
1863
1868
1864 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1869 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1865
1870
1866 * IPython/Extensions/numeric_formats.py: fix missing import,
1871 * IPython/Extensions/numeric_formats.py: fix missing import,
1867 reported by Stephen Walton.
1872 reported by Stephen Walton.
1868
1873
1869 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1874 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1870
1875
1871 * IPython/demo.py: finish demo module, fully documented now.
1876 * IPython/demo.py: finish demo module, fully documented now.
1872
1877
1873 * IPython/genutils.py (file_read): simple little utility to read a
1878 * IPython/genutils.py (file_read): simple little utility to read a
1874 file and ensure it's closed afterwards.
1879 file and ensure it's closed afterwards.
1875
1880
1876 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1881 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1877
1882
1878 * IPython/demo.py (Demo.__init__): added support for individually
1883 * IPython/demo.py (Demo.__init__): added support for individually
1879 tagging blocks for automatic execution.
1884 tagging blocks for automatic execution.
1880
1885
1881 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1886 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1882 syntax-highlighted python sources, requested by John.
1887 syntax-highlighted python sources, requested by John.
1883
1888
1884 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1889 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1885
1890
1886 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1891 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1887 finishing.
1892 finishing.
1888
1893
1889 * IPython/genutils.py (shlex_split): moved from Magic to here,
1894 * IPython/genutils.py (shlex_split): moved from Magic to here,
1890 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1895 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1891
1896
1892 * IPython/demo.py (Demo.__init__): added support for silent
1897 * IPython/demo.py (Demo.__init__): added support for silent
1893 blocks, improved marks as regexps, docstrings written.
1898 blocks, improved marks as regexps, docstrings written.
1894 (Demo.__init__): better docstring, added support for sys.argv.
1899 (Demo.__init__): better docstring, added support for sys.argv.
1895
1900
1896 * IPython/genutils.py (marquee): little utility used by the demo
1901 * IPython/genutils.py (marquee): little utility used by the demo
1897 code, handy in general.
1902 code, handy in general.
1898
1903
1899 * IPython/demo.py (Demo.__init__): new class for interactive
1904 * IPython/demo.py (Demo.__init__): new class for interactive
1900 demos. Not documented yet, I just wrote it in a hurry for
1905 demos. Not documented yet, I just wrote it in a hurry for
1901 scipy'05. Will docstring later.
1906 scipy'05. Will docstring later.
1902
1907
1903 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1908 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1904
1909
1905 * IPython/Shell.py (sigint_handler): Drastic simplification which
1910 * IPython/Shell.py (sigint_handler): Drastic simplification which
1906 also seems to make Ctrl-C work correctly across threads! This is
1911 also seems to make Ctrl-C work correctly across threads! This is
1907 so simple, that I can't beleive I'd missed it before. Needs more
1912 so simple, that I can't beleive I'd missed it before. Needs more
1908 testing, though.
1913 testing, though.
1909 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1914 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1910 like this before...
1915 like this before...
1911
1916
1912 * IPython/genutils.py (get_home_dir): add protection against
1917 * IPython/genutils.py (get_home_dir): add protection against
1913 non-dirs in win32 registry.
1918 non-dirs in win32 registry.
1914
1919
1915 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1920 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1916 bug where dict was mutated while iterating (pysh crash).
1921 bug where dict was mutated while iterating (pysh crash).
1917
1922
1918 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1923 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1919
1924
1920 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1925 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1921 spurious newlines added by this routine. After a report by
1926 spurious newlines added by this routine. After a report by
1922 F. Mantegazza.
1927 F. Mantegazza.
1923
1928
1924 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1929 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1925
1930
1926 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1931 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1927 calls. These were a leftover from the GTK 1.x days, and can cause
1932 calls. These were a leftover from the GTK 1.x days, and can cause
1928 problems in certain cases (after a report by John Hunter).
1933 problems in certain cases (after a report by John Hunter).
1929
1934
1930 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1935 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1931 os.getcwd() fails at init time. Thanks to patch from David Remahl
1936 os.getcwd() fails at init time. Thanks to patch from David Remahl
1932 <chmod007-AT-mac.com>.
1937 <chmod007-AT-mac.com>.
1933 (InteractiveShell.__init__): prevent certain special magics from
1938 (InteractiveShell.__init__): prevent certain special magics from
1934 being shadowed by aliases. Closes
1939 being shadowed by aliases. Closes
1935 http://www.scipy.net/roundup/ipython/issue41.
1940 http://www.scipy.net/roundup/ipython/issue41.
1936
1941
1937 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1942 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1938
1943
1939 * IPython/iplib.py (InteractiveShell.complete): Added new
1944 * IPython/iplib.py (InteractiveShell.complete): Added new
1940 top-level completion method to expose the completion mechanism
1945 top-level completion method to expose the completion mechanism
1941 beyond readline-based environments.
1946 beyond readline-based environments.
1942
1947
1943 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1948 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1944
1949
1945 * tools/ipsvnc (svnversion): fix svnversion capture.
1950 * tools/ipsvnc (svnversion): fix svnversion capture.
1946
1951
1947 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1952 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1948 attribute to self, which was missing. Before, it was set by a
1953 attribute to self, which was missing. Before, it was set by a
1949 routine which in certain cases wasn't being called, so the
1954 routine which in certain cases wasn't being called, so the
1950 instance could end up missing the attribute. This caused a crash.
1955 instance could end up missing the attribute. This caused a crash.
1951 Closes http://www.scipy.net/roundup/ipython/issue40.
1956 Closes http://www.scipy.net/roundup/ipython/issue40.
1952
1957
1953 2005-08-16 Fernando Perez <fperez@colorado.edu>
1958 2005-08-16 Fernando Perez <fperez@colorado.edu>
1954
1959
1955 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1960 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1956 contains non-string attribute. Closes
1961 contains non-string attribute. Closes
1957 http://www.scipy.net/roundup/ipython/issue38.
1962 http://www.scipy.net/roundup/ipython/issue38.
1958
1963
1959 2005-08-14 Fernando Perez <fperez@colorado.edu>
1964 2005-08-14 Fernando Perez <fperez@colorado.edu>
1960
1965
1961 * tools/ipsvnc: Minor improvements, to add changeset info.
1966 * tools/ipsvnc: Minor improvements, to add changeset info.
1962
1967
1963 2005-08-12 Fernando Perez <fperez@colorado.edu>
1968 2005-08-12 Fernando Perez <fperez@colorado.edu>
1964
1969
1965 * IPython/iplib.py (runsource): remove self.code_to_run_src
1970 * IPython/iplib.py (runsource): remove self.code_to_run_src
1966 attribute. I realized this is nothing more than
1971 attribute. I realized this is nothing more than
1967 '\n'.join(self.buffer), and having the same data in two different
1972 '\n'.join(self.buffer), and having the same data in two different
1968 places is just asking for synchronization bugs. This may impact
1973 places is just asking for synchronization bugs. This may impact
1969 people who have custom exception handlers, so I need to warn
1974 people who have custom exception handlers, so I need to warn
1970 ipython-dev about it (F. Mantegazza may use them).
1975 ipython-dev about it (F. Mantegazza may use them).
1971
1976
1972 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1977 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1973
1978
1974 * IPython/genutils.py: fix 2.2 compatibility (generators)
1979 * IPython/genutils.py: fix 2.2 compatibility (generators)
1975
1980
1976 2005-07-18 Fernando Perez <fperez@colorado.edu>
1981 2005-07-18 Fernando Perez <fperez@colorado.edu>
1977
1982
1978 * IPython/genutils.py (get_home_dir): fix to help users with
1983 * IPython/genutils.py (get_home_dir): fix to help users with
1979 invalid $HOME under win32.
1984 invalid $HOME under win32.
1980
1985
1981 2005-07-17 Fernando Perez <fperez@colorado.edu>
1986 2005-07-17 Fernando Perez <fperez@colorado.edu>
1982
1987
1983 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1988 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1984 some old hacks and clean up a bit other routines; code should be
1989 some old hacks and clean up a bit other routines; code should be
1985 simpler and a bit faster.
1990 simpler and a bit faster.
1986
1991
1987 * IPython/iplib.py (interact): removed some last-resort attempts
1992 * IPython/iplib.py (interact): removed some last-resort attempts
1988 to survive broken stdout/stderr. That code was only making it
1993 to survive broken stdout/stderr. That code was only making it
1989 harder to abstract out the i/o (necessary for gui integration),
1994 harder to abstract out the i/o (necessary for gui integration),
1990 and the crashes it could prevent were extremely rare in practice
1995 and the crashes it could prevent were extremely rare in practice
1991 (besides being fully user-induced in a pretty violent manner).
1996 (besides being fully user-induced in a pretty violent manner).
1992
1997
1993 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1998 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1994 Nothing major yet, but the code is simpler to read; this should
1999 Nothing major yet, but the code is simpler to read; this should
1995 make it easier to do more serious modifications in the future.
2000 make it easier to do more serious modifications in the future.
1996
2001
1997 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2002 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1998 which broke in .15 (thanks to a report by Ville).
2003 which broke in .15 (thanks to a report by Ville).
1999
2004
2000 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2005 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2001 be quite correct, I know next to nothing about unicode). This
2006 be quite correct, I know next to nothing about unicode). This
2002 will allow unicode strings to be used in prompts, amongst other
2007 will allow unicode strings to be used in prompts, amongst other
2003 cases. It also will prevent ipython from crashing when unicode
2008 cases. It also will prevent ipython from crashing when unicode
2004 shows up unexpectedly in many places. If ascii encoding fails, we
2009 shows up unexpectedly in many places. If ascii encoding fails, we
2005 assume utf_8. Currently the encoding is not a user-visible
2010 assume utf_8. Currently the encoding is not a user-visible
2006 setting, though it could be made so if there is demand for it.
2011 setting, though it could be made so if there is demand for it.
2007
2012
2008 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2013 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2009
2014
2010 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2015 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2011
2016
2012 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2017 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2013
2018
2014 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2019 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2015 code can work transparently for 2.2/2.3.
2020 code can work transparently for 2.2/2.3.
2016
2021
2017 2005-07-16 Fernando Perez <fperez@colorado.edu>
2022 2005-07-16 Fernando Perez <fperez@colorado.edu>
2018
2023
2019 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2024 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2020 out of the color scheme table used for coloring exception
2025 out of the color scheme table used for coloring exception
2021 tracebacks. This allows user code to add new schemes at runtime.
2026 tracebacks. This allows user code to add new schemes at runtime.
2022 This is a minimally modified version of the patch at
2027 This is a minimally modified version of the patch at
2023 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2028 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2024 for the contribution.
2029 for the contribution.
2025
2030
2026 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2031 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2027 slightly modified version of the patch in
2032 slightly modified version of the patch in
2028 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2033 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2029 to remove the previous try/except solution (which was costlier).
2034 to remove the previous try/except solution (which was costlier).
2030 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2035 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2031
2036
2032 2005-06-08 Fernando Perez <fperez@colorado.edu>
2037 2005-06-08 Fernando Perez <fperez@colorado.edu>
2033
2038
2034 * IPython/iplib.py (write/write_err): Add methods to abstract all
2039 * IPython/iplib.py (write/write_err): Add methods to abstract all
2035 I/O a bit more.
2040 I/O a bit more.
2036
2041
2037 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2042 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2038 warning, reported by Aric Hagberg, fix by JD Hunter.
2043 warning, reported by Aric Hagberg, fix by JD Hunter.
2039
2044
2040 2005-06-02 *** Released version 0.6.15
2045 2005-06-02 *** Released version 0.6.15
2041
2046
2042 2005-06-01 Fernando Perez <fperez@colorado.edu>
2047 2005-06-01 Fernando Perez <fperez@colorado.edu>
2043
2048
2044 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2049 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2045 tab-completion of filenames within open-quoted strings. Note that
2050 tab-completion of filenames within open-quoted strings. Note that
2046 this requires that in ~/.ipython/ipythonrc, users change the
2051 this requires that in ~/.ipython/ipythonrc, users change the
2047 readline delimiters configuration to read:
2052 readline delimiters configuration to read:
2048
2053
2049 readline_remove_delims -/~
2054 readline_remove_delims -/~
2050
2055
2051
2056
2052 2005-05-31 *** Released version 0.6.14
2057 2005-05-31 *** Released version 0.6.14
2053
2058
2054 2005-05-29 Fernando Perez <fperez@colorado.edu>
2059 2005-05-29 Fernando Perez <fperez@colorado.edu>
2055
2060
2056 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2061 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2057 with files not on the filesystem. Reported by Eliyahu Sandler
2062 with files not on the filesystem. Reported by Eliyahu Sandler
2058 <eli@gondolin.net>
2063 <eli@gondolin.net>
2059
2064
2060 2005-05-22 Fernando Perez <fperez@colorado.edu>
2065 2005-05-22 Fernando Perez <fperez@colorado.edu>
2061
2066
2062 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2067 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2063 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2068 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2064
2069
2065 2005-05-19 Fernando Perez <fperez@colorado.edu>
2070 2005-05-19 Fernando Perez <fperez@colorado.edu>
2066
2071
2067 * IPython/iplib.py (safe_execfile): close a file which could be
2072 * IPython/iplib.py (safe_execfile): close a file which could be
2068 left open (causing problems in win32, which locks open files).
2073 left open (causing problems in win32, which locks open files).
2069 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2074 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2070
2075
2071 2005-05-18 Fernando Perez <fperez@colorado.edu>
2076 2005-05-18 Fernando Perez <fperez@colorado.edu>
2072
2077
2073 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2078 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2074 keyword arguments correctly to safe_execfile().
2079 keyword arguments correctly to safe_execfile().
2075
2080
2076 2005-05-13 Fernando Perez <fperez@colorado.edu>
2081 2005-05-13 Fernando Perez <fperez@colorado.edu>
2077
2082
2078 * ipython.1: Added info about Qt to manpage, and threads warning
2083 * ipython.1: Added info about Qt to manpage, and threads warning
2079 to usage page (invoked with --help).
2084 to usage page (invoked with --help).
2080
2085
2081 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2086 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2082 new matcher (it goes at the end of the priority list) to do
2087 new matcher (it goes at the end of the priority list) to do
2083 tab-completion on named function arguments. Submitted by George
2088 tab-completion on named function arguments. Submitted by George
2084 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2089 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2085 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2090 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2086 for more details.
2091 for more details.
2087
2092
2088 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2093 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2089 SystemExit exceptions in the script being run. Thanks to a report
2094 SystemExit exceptions in the script being run. Thanks to a report
2090 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2095 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2091 producing very annoying behavior when running unit tests.
2096 producing very annoying behavior when running unit tests.
2092
2097
2093 2005-05-12 Fernando Perez <fperez@colorado.edu>
2098 2005-05-12 Fernando Perez <fperez@colorado.edu>
2094
2099
2095 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2100 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2096 which I'd broken (again) due to a changed regexp. In the process,
2101 which I'd broken (again) due to a changed regexp. In the process,
2097 added ';' as an escape to auto-quote the whole line without
2102 added ';' as an escape to auto-quote the whole line without
2098 splitting its arguments. Thanks to a report by Jerry McRae
2103 splitting its arguments. Thanks to a report by Jerry McRae
2099 <qrs0xyc02-AT-sneakemail.com>.
2104 <qrs0xyc02-AT-sneakemail.com>.
2100
2105
2101 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2106 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2102 possible crashes caused by a TokenError. Reported by Ed Schofield
2107 possible crashes caused by a TokenError. Reported by Ed Schofield
2103 <schofield-AT-ftw.at>.
2108 <schofield-AT-ftw.at>.
2104
2109
2105 2005-05-06 Fernando Perez <fperez@colorado.edu>
2110 2005-05-06 Fernando Perez <fperez@colorado.edu>
2106
2111
2107 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2112 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2108
2113
2109 2005-04-29 Fernando Perez <fperez@colorado.edu>
2114 2005-04-29 Fernando Perez <fperez@colorado.edu>
2110
2115
2111 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2116 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2112 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2117 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2113 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2118 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2114 which provides support for Qt interactive usage (similar to the
2119 which provides support for Qt interactive usage (similar to the
2115 existing one for WX and GTK). This had been often requested.
2120 existing one for WX and GTK). This had been often requested.
2116
2121
2117 2005-04-14 *** Released version 0.6.13
2122 2005-04-14 *** Released version 0.6.13
2118
2123
2119 2005-04-08 Fernando Perez <fperez@colorado.edu>
2124 2005-04-08 Fernando Perez <fperez@colorado.edu>
2120
2125
2121 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2126 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2122 from _ofind, which gets called on almost every input line. Now,
2127 from _ofind, which gets called on almost every input line. Now,
2123 we only try to get docstrings if they are actually going to be
2128 we only try to get docstrings if they are actually going to be
2124 used (the overhead of fetching unnecessary docstrings can be
2129 used (the overhead of fetching unnecessary docstrings can be
2125 noticeable for certain objects, such as Pyro proxies).
2130 noticeable for certain objects, such as Pyro proxies).
2126
2131
2127 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2132 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2128 for completers. For some reason I had been passing them the state
2133 for completers. For some reason I had been passing them the state
2129 variable, which completers never actually need, and was in
2134 variable, which completers never actually need, and was in
2130 conflict with the rlcompleter API. Custom completers ONLY need to
2135 conflict with the rlcompleter API. Custom completers ONLY need to
2131 take the text parameter.
2136 take the text parameter.
2132
2137
2133 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2138 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2134 work correctly in pysh. I've also moved all the logic which used
2139 work correctly in pysh. I've also moved all the logic which used
2135 to be in pysh.py here, which will prevent problems with future
2140 to be in pysh.py here, which will prevent problems with future
2136 upgrades. However, this time I must warn users to update their
2141 upgrades. However, this time I must warn users to update their
2137 pysh profile to include the line
2142 pysh profile to include the line
2138
2143
2139 import_all IPython.Extensions.InterpreterExec
2144 import_all IPython.Extensions.InterpreterExec
2140
2145
2141 because otherwise things won't work for them. They MUST also
2146 because otherwise things won't work for them. They MUST also
2142 delete pysh.py and the line
2147 delete pysh.py and the line
2143
2148
2144 execfile pysh.py
2149 execfile pysh.py
2145
2150
2146 from their ipythonrc-pysh.
2151 from their ipythonrc-pysh.
2147
2152
2148 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2153 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2149 robust in the face of objects whose dir() returns non-strings
2154 robust in the face of objects whose dir() returns non-strings
2150 (which it shouldn't, but some broken libs like ITK do). Thanks to
2155 (which it shouldn't, but some broken libs like ITK do). Thanks to
2151 a patch by John Hunter (implemented differently, though). Also
2156 a patch by John Hunter (implemented differently, though). Also
2152 minor improvements by using .extend instead of + on lists.
2157 minor improvements by using .extend instead of + on lists.
2153
2158
2154 * pysh.py:
2159 * pysh.py:
2155
2160
2156 2005-04-06 Fernando Perez <fperez@colorado.edu>
2161 2005-04-06 Fernando Perez <fperez@colorado.edu>
2157
2162
2158 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2163 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2159 by default, so that all users benefit from it. Those who don't
2164 by default, so that all users benefit from it. Those who don't
2160 want it can still turn it off.
2165 want it can still turn it off.
2161
2166
2162 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2167 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2163 config file, I'd forgotten about this, so users were getting it
2168 config file, I'd forgotten about this, so users were getting it
2164 off by default.
2169 off by default.
2165
2170
2166 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2171 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2167 consistency. Now magics can be called in multiline statements,
2172 consistency. Now magics can be called in multiline statements,
2168 and python variables can be expanded in magic calls via $var.
2173 and python variables can be expanded in magic calls via $var.
2169 This makes the magic system behave just like aliases or !system
2174 This makes the magic system behave just like aliases or !system
2170 calls.
2175 calls.
2171
2176
2172 2005-03-28 Fernando Perez <fperez@colorado.edu>
2177 2005-03-28 Fernando Perez <fperez@colorado.edu>
2173
2178
2174 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2179 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2175 expensive string additions for building command. Add support for
2180 expensive string additions for building command. Add support for
2176 trailing ';' when autocall is used.
2181 trailing ';' when autocall is used.
2177
2182
2178 2005-03-26 Fernando Perez <fperez@colorado.edu>
2183 2005-03-26 Fernando Perez <fperez@colorado.edu>
2179
2184
2180 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2185 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2181 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2186 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2182 ipython.el robust against prompts with any number of spaces
2187 ipython.el robust against prompts with any number of spaces
2183 (including 0) after the ':' character.
2188 (including 0) after the ':' character.
2184
2189
2185 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2190 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2186 continuation prompt, which misled users to think the line was
2191 continuation prompt, which misled users to think the line was
2187 already indented. Closes debian Bug#300847, reported to me by
2192 already indented. Closes debian Bug#300847, reported to me by
2188 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2193 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2189
2194
2190 2005-03-23 Fernando Perez <fperez@colorado.edu>
2195 2005-03-23 Fernando Perez <fperez@colorado.edu>
2191
2196
2192 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2197 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2193 properly aligned if they have embedded newlines.
2198 properly aligned if they have embedded newlines.
2194
2199
2195 * IPython/iplib.py (runlines): Add a public method to expose
2200 * IPython/iplib.py (runlines): Add a public method to expose
2196 IPython's code execution machinery, so that users can run strings
2201 IPython's code execution machinery, so that users can run strings
2197 as if they had been typed at the prompt interactively.
2202 as if they had been typed at the prompt interactively.
2198 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2203 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2199 methods which can call the system shell, but with python variable
2204 methods which can call the system shell, but with python variable
2200 expansion. The three such methods are: __IPYTHON__.system,
2205 expansion. The three such methods are: __IPYTHON__.system,
2201 .getoutput and .getoutputerror. These need to be documented in a
2206 .getoutput and .getoutputerror. These need to be documented in a
2202 'public API' section (to be written) of the manual.
2207 'public API' section (to be written) of the manual.
2203
2208
2204 2005-03-20 Fernando Perez <fperez@colorado.edu>
2209 2005-03-20 Fernando Perez <fperez@colorado.edu>
2205
2210
2206 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2211 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2207 for custom exception handling. This is quite powerful, and it
2212 for custom exception handling. This is quite powerful, and it
2208 allows for user-installable exception handlers which can trap
2213 allows for user-installable exception handlers which can trap
2209 custom exceptions at runtime and treat them separately from
2214 custom exceptions at runtime and treat them separately from
2210 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2215 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2211 Mantegazza <mantegazza-AT-ill.fr>.
2216 Mantegazza <mantegazza-AT-ill.fr>.
2212 (InteractiveShell.set_custom_completer): public API function to
2217 (InteractiveShell.set_custom_completer): public API function to
2213 add new completers at runtime.
2218 add new completers at runtime.
2214
2219
2215 2005-03-19 Fernando Perez <fperez@colorado.edu>
2220 2005-03-19 Fernando Perez <fperez@colorado.edu>
2216
2221
2217 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2222 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2218 allow objects which provide their docstrings via non-standard
2223 allow objects which provide their docstrings via non-standard
2219 mechanisms (like Pyro proxies) to still be inspected by ipython's
2224 mechanisms (like Pyro proxies) to still be inspected by ipython's
2220 ? system.
2225 ? system.
2221
2226
2222 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2227 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2223 automatic capture system. I tried quite hard to make it work
2228 automatic capture system. I tried quite hard to make it work
2224 reliably, and simply failed. I tried many combinations with the
2229 reliably, and simply failed. I tried many combinations with the
2225 subprocess module, but eventually nothing worked in all needed
2230 subprocess module, but eventually nothing worked in all needed
2226 cases (not blocking stdin for the child, duplicating stdout
2231 cases (not blocking stdin for the child, duplicating stdout
2227 without blocking, etc). The new %sc/%sx still do capture to these
2232 without blocking, etc). The new %sc/%sx still do capture to these
2228 magical list/string objects which make shell use much more
2233 magical list/string objects which make shell use much more
2229 conveninent, so not all is lost.
2234 conveninent, so not all is lost.
2230
2235
2231 XXX - FIX MANUAL for the change above!
2236 XXX - FIX MANUAL for the change above!
2232
2237
2233 (runsource): I copied code.py's runsource() into ipython to modify
2238 (runsource): I copied code.py's runsource() into ipython to modify
2234 it a bit. Now the code object and source to be executed are
2239 it a bit. Now the code object and source to be executed are
2235 stored in ipython. This makes this info accessible to third-party
2240 stored in ipython. This makes this info accessible to third-party
2236 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2241 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2237 Mantegazza <mantegazza-AT-ill.fr>.
2242 Mantegazza <mantegazza-AT-ill.fr>.
2238
2243
2239 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2244 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2240 history-search via readline (like C-p/C-n). I'd wanted this for a
2245 history-search via readline (like C-p/C-n). I'd wanted this for a
2241 long time, but only recently found out how to do it. For users
2246 long time, but only recently found out how to do it. For users
2242 who already have their ipythonrc files made and want this, just
2247 who already have their ipythonrc files made and want this, just
2243 add:
2248 add:
2244
2249
2245 readline_parse_and_bind "\e[A": history-search-backward
2250 readline_parse_and_bind "\e[A": history-search-backward
2246 readline_parse_and_bind "\e[B": history-search-forward
2251 readline_parse_and_bind "\e[B": history-search-forward
2247
2252
2248 2005-03-18 Fernando Perez <fperez@colorado.edu>
2253 2005-03-18 Fernando Perez <fperez@colorado.edu>
2249
2254
2250 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2255 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2251 LSString and SList classes which allow transparent conversions
2256 LSString and SList classes which allow transparent conversions
2252 between list mode and whitespace-separated string.
2257 between list mode and whitespace-separated string.
2253 (magic_r): Fix recursion problem in %r.
2258 (magic_r): Fix recursion problem in %r.
2254
2259
2255 * IPython/genutils.py (LSString): New class to be used for
2260 * IPython/genutils.py (LSString): New class to be used for
2256 automatic storage of the results of all alias/system calls in _o
2261 automatic storage of the results of all alias/system calls in _o
2257 and _e (stdout/err). These provide a .l/.list attribute which
2262 and _e (stdout/err). These provide a .l/.list attribute which
2258 does automatic splitting on newlines. This means that for most
2263 does automatic splitting on newlines. This means that for most
2259 uses, you'll never need to do capturing of output with %sc/%sx
2264 uses, you'll never need to do capturing of output with %sc/%sx
2260 anymore, since ipython keeps this always done for you. Note that
2265 anymore, since ipython keeps this always done for you. Note that
2261 only the LAST results are stored, the _o/e variables are
2266 only the LAST results are stored, the _o/e variables are
2262 overwritten on each call. If you need to save their contents
2267 overwritten on each call. If you need to save their contents
2263 further, simply bind them to any other name.
2268 further, simply bind them to any other name.
2264
2269
2265 2005-03-17 Fernando Perez <fperez@colorado.edu>
2270 2005-03-17 Fernando Perez <fperez@colorado.edu>
2266
2271
2267 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2272 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2268 prompt namespace handling.
2273 prompt namespace handling.
2269
2274
2270 2005-03-16 Fernando Perez <fperez@colorado.edu>
2275 2005-03-16 Fernando Perez <fperez@colorado.edu>
2271
2276
2272 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2277 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2273 classic prompts to be '>>> ' (final space was missing, and it
2278 classic prompts to be '>>> ' (final space was missing, and it
2274 trips the emacs python mode).
2279 trips the emacs python mode).
2275 (BasePrompt.__str__): Added safe support for dynamic prompt
2280 (BasePrompt.__str__): Added safe support for dynamic prompt
2276 strings. Now you can set your prompt string to be '$x', and the
2281 strings. Now you can set your prompt string to be '$x', and the
2277 value of x will be printed from your interactive namespace. The
2282 value of x will be printed from your interactive namespace. The
2278 interpolation syntax includes the full Itpl support, so
2283 interpolation syntax includes the full Itpl support, so
2279 ${foo()+x+bar()} is a valid prompt string now, and the function
2284 ${foo()+x+bar()} is a valid prompt string now, and the function
2280 calls will be made at runtime.
2285 calls will be made at runtime.
2281
2286
2282 2005-03-15 Fernando Perez <fperez@colorado.edu>
2287 2005-03-15 Fernando Perez <fperez@colorado.edu>
2283
2288
2284 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2289 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2285 avoid name clashes in pylab. %hist still works, it just forwards
2290 avoid name clashes in pylab. %hist still works, it just forwards
2286 the call to %history.
2291 the call to %history.
2287
2292
2288 2005-03-02 *** Released version 0.6.12
2293 2005-03-02 *** Released version 0.6.12
2289
2294
2290 2005-03-02 Fernando Perez <fperez@colorado.edu>
2295 2005-03-02 Fernando Perez <fperez@colorado.edu>
2291
2296
2292 * IPython/iplib.py (handle_magic): log magic calls properly as
2297 * IPython/iplib.py (handle_magic): log magic calls properly as
2293 ipmagic() function calls.
2298 ipmagic() function calls.
2294
2299
2295 * IPython/Magic.py (magic_time): Improved %time to support
2300 * IPython/Magic.py (magic_time): Improved %time to support
2296 statements and provide wall-clock as well as CPU time.
2301 statements and provide wall-clock as well as CPU time.
2297
2302
2298 2005-02-27 Fernando Perez <fperez@colorado.edu>
2303 2005-02-27 Fernando Perez <fperez@colorado.edu>
2299
2304
2300 * IPython/hooks.py: New hooks module, to expose user-modifiable
2305 * IPython/hooks.py: New hooks module, to expose user-modifiable
2301 IPython functionality in a clean manner. For now only the editor
2306 IPython functionality in a clean manner. For now only the editor
2302 hook is actually written, and other thigns which I intend to turn
2307 hook is actually written, and other thigns which I intend to turn
2303 into proper hooks aren't yet there. The display and prefilter
2308 into proper hooks aren't yet there. The display and prefilter
2304 stuff, for example, should be hooks. But at least now the
2309 stuff, for example, should be hooks. But at least now the
2305 framework is in place, and the rest can be moved here with more
2310 framework is in place, and the rest can be moved here with more
2306 time later. IPython had had a .hooks variable for a long time for
2311 time later. IPython had had a .hooks variable for a long time for
2307 this purpose, but I'd never actually used it for anything.
2312 this purpose, but I'd never actually used it for anything.
2308
2313
2309 2005-02-26 Fernando Perez <fperez@colorado.edu>
2314 2005-02-26 Fernando Perez <fperez@colorado.edu>
2310
2315
2311 * IPython/ipmaker.py (make_IPython): make the default ipython
2316 * IPython/ipmaker.py (make_IPython): make the default ipython
2312 directory be called _ipython under win32, to follow more the
2317 directory be called _ipython under win32, to follow more the
2313 naming peculiarities of that platform (where buggy software like
2318 naming peculiarities of that platform (where buggy software like
2314 Visual Sourcesafe breaks with .named directories). Reported by
2319 Visual Sourcesafe breaks with .named directories). Reported by
2315 Ville Vainio.
2320 Ville Vainio.
2316
2321
2317 2005-02-23 Fernando Perez <fperez@colorado.edu>
2322 2005-02-23 Fernando Perez <fperez@colorado.edu>
2318
2323
2319 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2324 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2320 auto_aliases for win32 which were causing problems. Users can
2325 auto_aliases for win32 which were causing problems. Users can
2321 define the ones they personally like.
2326 define the ones they personally like.
2322
2327
2323 2005-02-21 Fernando Perez <fperez@colorado.edu>
2328 2005-02-21 Fernando Perez <fperez@colorado.edu>
2324
2329
2325 * IPython/Magic.py (magic_time): new magic to time execution of
2330 * IPython/Magic.py (magic_time): new magic to time execution of
2326 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2331 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2327
2332
2328 2005-02-19 Fernando Perez <fperez@colorado.edu>
2333 2005-02-19 Fernando Perez <fperez@colorado.edu>
2329
2334
2330 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2335 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2331 into keys (for prompts, for example).
2336 into keys (for prompts, for example).
2332
2337
2333 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2338 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2334 prompts in case users want them. This introduces a small behavior
2339 prompts in case users want them. This introduces a small behavior
2335 change: ipython does not automatically add a space to all prompts
2340 change: ipython does not automatically add a space to all prompts
2336 anymore. To get the old prompts with a space, users should add it
2341 anymore. To get the old prompts with a space, users should add it
2337 manually to their ipythonrc file, so for example prompt_in1 should
2342 manually to their ipythonrc file, so for example prompt_in1 should
2338 now read 'In [\#]: ' instead of 'In [\#]:'.
2343 now read 'In [\#]: ' instead of 'In [\#]:'.
2339 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2344 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2340 file) to control left-padding of secondary prompts.
2345 file) to control left-padding of secondary prompts.
2341
2346
2342 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2347 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2343 the profiler can't be imported. Fix for Debian, which removed
2348 the profiler can't be imported. Fix for Debian, which removed
2344 profile.py because of License issues. I applied a slightly
2349 profile.py because of License issues. I applied a slightly
2345 modified version of the original Debian patch at
2350 modified version of the original Debian patch at
2346 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2351 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2347
2352
2348 2005-02-17 Fernando Perez <fperez@colorado.edu>
2353 2005-02-17 Fernando Perez <fperez@colorado.edu>
2349
2354
2350 * IPython/genutils.py (native_line_ends): Fix bug which would
2355 * IPython/genutils.py (native_line_ends): Fix bug which would
2351 cause improper line-ends under win32 b/c I was not opening files
2356 cause improper line-ends under win32 b/c I was not opening files
2352 in binary mode. Bug report and fix thanks to Ville.
2357 in binary mode. Bug report and fix thanks to Ville.
2353
2358
2354 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2359 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2355 trying to catch spurious foo[1] autocalls. My fix actually broke
2360 trying to catch spurious foo[1] autocalls. My fix actually broke
2356 ',/' autoquote/call with explicit escape (bad regexp).
2361 ',/' autoquote/call with explicit escape (bad regexp).
2357
2362
2358 2005-02-15 *** Released version 0.6.11
2363 2005-02-15 *** Released version 0.6.11
2359
2364
2360 2005-02-14 Fernando Perez <fperez@colorado.edu>
2365 2005-02-14 Fernando Perez <fperez@colorado.edu>
2361
2366
2362 * IPython/background_jobs.py: New background job management
2367 * IPython/background_jobs.py: New background job management
2363 subsystem. This is implemented via a new set of classes, and
2368 subsystem. This is implemented via a new set of classes, and
2364 IPython now provides a builtin 'jobs' object for background job
2369 IPython now provides a builtin 'jobs' object for background job
2365 execution. A convenience %bg magic serves as a lightweight
2370 execution. A convenience %bg magic serves as a lightweight
2366 frontend for starting the more common type of calls. This was
2371 frontend for starting the more common type of calls. This was
2367 inspired by discussions with B. Granger and the BackgroundCommand
2372 inspired by discussions with B. Granger and the BackgroundCommand
2368 class described in the book Python Scripting for Computational
2373 class described in the book Python Scripting for Computational
2369 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2374 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2370 (although ultimately no code from this text was used, as IPython's
2375 (although ultimately no code from this text was used, as IPython's
2371 system is a separate implementation).
2376 system is a separate implementation).
2372
2377
2373 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2378 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2374 to control the completion of single/double underscore names
2379 to control the completion of single/double underscore names
2375 separately. As documented in the example ipytonrc file, the
2380 separately. As documented in the example ipytonrc file, the
2376 readline_omit__names variable can now be set to 2, to omit even
2381 readline_omit__names variable can now be set to 2, to omit even
2377 single underscore names. Thanks to a patch by Brian Wong
2382 single underscore names. Thanks to a patch by Brian Wong
2378 <BrianWong-AT-AirgoNetworks.Com>.
2383 <BrianWong-AT-AirgoNetworks.Com>.
2379 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2384 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2380 be autocalled as foo([1]) if foo were callable. A problem for
2385 be autocalled as foo([1]) if foo were callable. A problem for
2381 things which are both callable and implement __getitem__.
2386 things which are both callable and implement __getitem__.
2382 (init_readline): Fix autoindentation for win32. Thanks to a patch
2387 (init_readline): Fix autoindentation for win32. Thanks to a patch
2383 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2388 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2384
2389
2385 2005-02-12 Fernando Perez <fperez@colorado.edu>
2390 2005-02-12 Fernando Perez <fperez@colorado.edu>
2386
2391
2387 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2392 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2388 which I had written long ago to sort out user error messages which
2393 which I had written long ago to sort out user error messages which
2389 may occur during startup. This seemed like a good idea initially,
2394 may occur during startup. This seemed like a good idea initially,
2390 but it has proven a disaster in retrospect. I don't want to
2395 but it has proven a disaster in retrospect. I don't want to
2391 change much code for now, so my fix is to set the internal 'debug'
2396 change much code for now, so my fix is to set the internal 'debug'
2392 flag to true everywhere, whose only job was precisely to control
2397 flag to true everywhere, whose only job was precisely to control
2393 this subsystem. This closes issue 28 (as well as avoiding all
2398 this subsystem. This closes issue 28 (as well as avoiding all
2394 sorts of strange hangups which occur from time to time).
2399 sorts of strange hangups which occur from time to time).
2395
2400
2396 2005-02-07 Fernando Perez <fperez@colorado.edu>
2401 2005-02-07 Fernando Perez <fperez@colorado.edu>
2397
2402
2398 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2403 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2399 previous call produced a syntax error.
2404 previous call produced a syntax error.
2400
2405
2401 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2406 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2402 classes without constructor.
2407 classes without constructor.
2403
2408
2404 2005-02-06 Fernando Perez <fperez@colorado.edu>
2409 2005-02-06 Fernando Perez <fperez@colorado.edu>
2405
2410
2406 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2411 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2407 completions with the results of each matcher, so we return results
2412 completions with the results of each matcher, so we return results
2408 to the user from all namespaces. This breaks with ipython
2413 to the user from all namespaces. This breaks with ipython
2409 tradition, but I think it's a nicer behavior. Now you get all
2414 tradition, but I think it's a nicer behavior. Now you get all
2410 possible completions listed, from all possible namespaces (python,
2415 possible completions listed, from all possible namespaces (python,
2411 filesystem, magics...) After a request by John Hunter
2416 filesystem, magics...) After a request by John Hunter
2412 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2417 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2413
2418
2414 2005-02-05 Fernando Perez <fperez@colorado.edu>
2419 2005-02-05 Fernando Perez <fperez@colorado.edu>
2415
2420
2416 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2421 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2417 the call had quote characters in it (the quotes were stripped).
2422 the call had quote characters in it (the quotes were stripped).
2418
2423
2419 2005-01-31 Fernando Perez <fperez@colorado.edu>
2424 2005-01-31 Fernando Perez <fperez@colorado.edu>
2420
2425
2421 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2426 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2422 Itpl.itpl() to make the code more robust against psyco
2427 Itpl.itpl() to make the code more robust against psyco
2423 optimizations.
2428 optimizations.
2424
2429
2425 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2430 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2426 of causing an exception. Quicker, cleaner.
2431 of causing an exception. Quicker, cleaner.
2427
2432
2428 2005-01-28 Fernando Perez <fperez@colorado.edu>
2433 2005-01-28 Fernando Perez <fperez@colorado.edu>
2429
2434
2430 * scripts/ipython_win_post_install.py (install): hardcode
2435 * scripts/ipython_win_post_install.py (install): hardcode
2431 sys.prefix+'python.exe' as the executable path. It turns out that
2436 sys.prefix+'python.exe' as the executable path. It turns out that
2432 during the post-installation run, sys.executable resolves to the
2437 during the post-installation run, sys.executable resolves to the
2433 name of the binary installer! I should report this as a distutils
2438 name of the binary installer! I should report this as a distutils
2434 bug, I think. I updated the .10 release with this tiny fix, to
2439 bug, I think. I updated the .10 release with this tiny fix, to
2435 avoid annoying the lists further.
2440 avoid annoying the lists further.
2436
2441
2437 2005-01-27 *** Released version 0.6.10
2442 2005-01-27 *** Released version 0.6.10
2438
2443
2439 2005-01-27 Fernando Perez <fperez@colorado.edu>
2444 2005-01-27 Fernando Perez <fperez@colorado.edu>
2440
2445
2441 * IPython/numutils.py (norm): Added 'inf' as optional name for
2446 * IPython/numutils.py (norm): Added 'inf' as optional name for
2442 L-infinity norm, included references to mathworld.com for vector
2447 L-infinity norm, included references to mathworld.com for vector
2443 norm definitions.
2448 norm definitions.
2444 (amin/amax): added amin/amax for array min/max. Similar to what
2449 (amin/amax): added amin/amax for array min/max. Similar to what
2445 pylab ships with after the recent reorganization of names.
2450 pylab ships with after the recent reorganization of names.
2446 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2451 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2447
2452
2448 * ipython.el: committed Alex's recent fixes and improvements.
2453 * ipython.el: committed Alex's recent fixes and improvements.
2449 Tested with python-mode from CVS, and it looks excellent. Since
2454 Tested with python-mode from CVS, and it looks excellent. Since
2450 python-mode hasn't released anything in a while, I'm temporarily
2455 python-mode hasn't released anything in a while, I'm temporarily
2451 putting a copy of today's CVS (v 4.70) of python-mode in:
2456 putting a copy of today's CVS (v 4.70) of python-mode in:
2452 http://ipython.scipy.org/tmp/python-mode.el
2457 http://ipython.scipy.org/tmp/python-mode.el
2453
2458
2454 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2459 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2455 sys.executable for the executable name, instead of assuming it's
2460 sys.executable for the executable name, instead of assuming it's
2456 called 'python.exe' (the post-installer would have produced broken
2461 called 'python.exe' (the post-installer would have produced broken
2457 setups on systems with a differently named python binary).
2462 setups on systems with a differently named python binary).
2458
2463
2459 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2464 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2460 references to os.linesep, to make the code more
2465 references to os.linesep, to make the code more
2461 platform-independent. This is also part of the win32 coloring
2466 platform-independent. This is also part of the win32 coloring
2462 fixes.
2467 fixes.
2463
2468
2464 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2469 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2465 lines, which actually cause coloring bugs because the length of
2470 lines, which actually cause coloring bugs because the length of
2466 the line is very difficult to correctly compute with embedded
2471 the line is very difficult to correctly compute with embedded
2467 escapes. This was the source of all the coloring problems under
2472 escapes. This was the source of all the coloring problems under
2468 Win32. I think that _finally_, Win32 users have a properly
2473 Win32. I think that _finally_, Win32 users have a properly
2469 working ipython in all respects. This would never have happened
2474 working ipython in all respects. This would never have happened
2470 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2475 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2471
2476
2472 2005-01-26 *** Released version 0.6.9
2477 2005-01-26 *** Released version 0.6.9
2473
2478
2474 2005-01-25 Fernando Perez <fperez@colorado.edu>
2479 2005-01-25 Fernando Perez <fperez@colorado.edu>
2475
2480
2476 * setup.py: finally, we have a true Windows installer, thanks to
2481 * setup.py: finally, we have a true Windows installer, thanks to
2477 the excellent work of Viktor Ransmayr
2482 the excellent work of Viktor Ransmayr
2478 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2483 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2479 Windows users. The setup routine is quite a bit cleaner thanks to
2484 Windows users. The setup routine is quite a bit cleaner thanks to
2480 this, and the post-install script uses the proper functions to
2485 this, and the post-install script uses the proper functions to
2481 allow a clean de-installation using the standard Windows Control
2486 allow a clean de-installation using the standard Windows Control
2482 Panel.
2487 Panel.
2483
2488
2484 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2489 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2485 environment variable under all OSes (including win32) if
2490 environment variable under all OSes (including win32) if
2486 available. This will give consistency to win32 users who have set
2491 available. This will give consistency to win32 users who have set
2487 this variable for any reason. If os.environ['HOME'] fails, the
2492 this variable for any reason. If os.environ['HOME'] fails, the
2488 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2493 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2489
2494
2490 2005-01-24 Fernando Perez <fperez@colorado.edu>
2495 2005-01-24 Fernando Perez <fperez@colorado.edu>
2491
2496
2492 * IPython/numutils.py (empty_like): add empty_like(), similar to
2497 * IPython/numutils.py (empty_like): add empty_like(), similar to
2493 zeros_like() but taking advantage of the new empty() Numeric routine.
2498 zeros_like() but taking advantage of the new empty() Numeric routine.
2494
2499
2495 2005-01-23 *** Released version 0.6.8
2500 2005-01-23 *** Released version 0.6.8
2496
2501
2497 2005-01-22 Fernando Perez <fperez@colorado.edu>
2502 2005-01-22 Fernando Perez <fperez@colorado.edu>
2498
2503
2499 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2504 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2500 automatic show() calls. After discussing things with JDH, it
2505 automatic show() calls. After discussing things with JDH, it
2501 turns out there are too many corner cases where this can go wrong.
2506 turns out there are too many corner cases where this can go wrong.
2502 It's best not to try to be 'too smart', and simply have ipython
2507 It's best not to try to be 'too smart', and simply have ipython
2503 reproduce as much as possible the default behavior of a normal
2508 reproduce as much as possible the default behavior of a normal
2504 python shell.
2509 python shell.
2505
2510
2506 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2511 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2507 line-splitting regexp and _prefilter() to avoid calling getattr()
2512 line-splitting regexp and _prefilter() to avoid calling getattr()
2508 on assignments. This closes
2513 on assignments. This closes
2509 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2514 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2510 readline uses getattr(), so a simple <TAB> keypress is still
2515 readline uses getattr(), so a simple <TAB> keypress is still
2511 enough to trigger getattr() calls on an object.
2516 enough to trigger getattr() calls on an object.
2512
2517
2513 2005-01-21 Fernando Perez <fperez@colorado.edu>
2518 2005-01-21 Fernando Perez <fperez@colorado.edu>
2514
2519
2515 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2520 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2516 docstring under pylab so it doesn't mask the original.
2521 docstring under pylab so it doesn't mask the original.
2517
2522
2518 2005-01-21 *** Released version 0.6.7
2523 2005-01-21 *** Released version 0.6.7
2519
2524
2520 2005-01-21 Fernando Perez <fperez@colorado.edu>
2525 2005-01-21 Fernando Perez <fperez@colorado.edu>
2521
2526
2522 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2527 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2523 signal handling for win32 users in multithreaded mode.
2528 signal handling for win32 users in multithreaded mode.
2524
2529
2525 2005-01-17 Fernando Perez <fperez@colorado.edu>
2530 2005-01-17 Fernando Perez <fperez@colorado.edu>
2526
2531
2527 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2532 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2528 instances with no __init__. After a crash report by Norbert Nemec
2533 instances with no __init__. After a crash report by Norbert Nemec
2529 <Norbert-AT-nemec-online.de>.
2534 <Norbert-AT-nemec-online.de>.
2530
2535
2531 2005-01-14 Fernando Perez <fperez@colorado.edu>
2536 2005-01-14 Fernando Perez <fperez@colorado.edu>
2532
2537
2533 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2538 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2534 names for verbose exceptions, when multiple dotted names and the
2539 names for verbose exceptions, when multiple dotted names and the
2535 'parent' object were present on the same line.
2540 'parent' object were present on the same line.
2536
2541
2537 2005-01-11 Fernando Perez <fperez@colorado.edu>
2542 2005-01-11 Fernando Perez <fperez@colorado.edu>
2538
2543
2539 * IPython/genutils.py (flag_calls): new utility to trap and flag
2544 * IPython/genutils.py (flag_calls): new utility to trap and flag
2540 calls in functions. I need it to clean up matplotlib support.
2545 calls in functions. I need it to clean up matplotlib support.
2541 Also removed some deprecated code in genutils.
2546 Also removed some deprecated code in genutils.
2542
2547
2543 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2548 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2544 that matplotlib scripts called with %run, which don't call show()
2549 that matplotlib scripts called with %run, which don't call show()
2545 themselves, still have their plotting windows open.
2550 themselves, still have their plotting windows open.
2546
2551
2547 2005-01-05 Fernando Perez <fperez@colorado.edu>
2552 2005-01-05 Fernando Perez <fperez@colorado.edu>
2548
2553
2549 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2554 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2550 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2555 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2551
2556
2552 2004-12-19 Fernando Perez <fperez@colorado.edu>
2557 2004-12-19 Fernando Perez <fperez@colorado.edu>
2553
2558
2554 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2559 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2555 parent_runcode, which was an eyesore. The same result can be
2560 parent_runcode, which was an eyesore. The same result can be
2556 obtained with Python's regular superclass mechanisms.
2561 obtained with Python's regular superclass mechanisms.
2557
2562
2558 2004-12-17 Fernando Perez <fperez@colorado.edu>
2563 2004-12-17 Fernando Perez <fperez@colorado.edu>
2559
2564
2560 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2565 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2561 reported by Prabhu.
2566 reported by Prabhu.
2562 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2567 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2563 sys.stderr) instead of explicitly calling sys.stderr. This helps
2568 sys.stderr) instead of explicitly calling sys.stderr. This helps
2564 maintain our I/O abstractions clean, for future GUI embeddings.
2569 maintain our I/O abstractions clean, for future GUI embeddings.
2565
2570
2566 * IPython/genutils.py (info): added new utility for sys.stderr
2571 * IPython/genutils.py (info): added new utility for sys.stderr
2567 unified info message handling (thin wrapper around warn()).
2572 unified info message handling (thin wrapper around warn()).
2568
2573
2569 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2574 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2570 composite (dotted) names on verbose exceptions.
2575 composite (dotted) names on verbose exceptions.
2571 (VerboseTB.nullrepr): harden against another kind of errors which
2576 (VerboseTB.nullrepr): harden against another kind of errors which
2572 Python's inspect module can trigger, and which were crashing
2577 Python's inspect module can trigger, and which were crashing
2573 IPython. Thanks to a report by Marco Lombardi
2578 IPython. Thanks to a report by Marco Lombardi
2574 <mlombard-AT-ma010192.hq.eso.org>.
2579 <mlombard-AT-ma010192.hq.eso.org>.
2575
2580
2576 2004-12-13 *** Released version 0.6.6
2581 2004-12-13 *** Released version 0.6.6
2577
2582
2578 2004-12-12 Fernando Perez <fperez@colorado.edu>
2583 2004-12-12 Fernando Perez <fperez@colorado.edu>
2579
2584
2580 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2585 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2581 generated by pygtk upon initialization if it was built without
2586 generated by pygtk upon initialization if it was built without
2582 threads (for matplotlib users). After a crash reported by
2587 threads (for matplotlib users). After a crash reported by
2583 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2588 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2584
2589
2585 * IPython/ipmaker.py (make_IPython): fix small bug in the
2590 * IPython/ipmaker.py (make_IPython): fix small bug in the
2586 import_some parameter for multiple imports.
2591 import_some parameter for multiple imports.
2587
2592
2588 * IPython/iplib.py (ipmagic): simplified the interface of
2593 * IPython/iplib.py (ipmagic): simplified the interface of
2589 ipmagic() to take a single string argument, just as it would be
2594 ipmagic() to take a single string argument, just as it would be
2590 typed at the IPython cmd line.
2595 typed at the IPython cmd line.
2591 (ipalias): Added new ipalias() with an interface identical to
2596 (ipalias): Added new ipalias() with an interface identical to
2592 ipmagic(). This completes exposing a pure python interface to the
2597 ipmagic(). This completes exposing a pure python interface to the
2593 alias and magic system, which can be used in loops or more complex
2598 alias and magic system, which can be used in loops or more complex
2594 code where IPython's automatic line mangling is not active.
2599 code where IPython's automatic line mangling is not active.
2595
2600
2596 * IPython/genutils.py (timing): changed interface of timing to
2601 * IPython/genutils.py (timing): changed interface of timing to
2597 simply run code once, which is the most common case. timings()
2602 simply run code once, which is the most common case. timings()
2598 remains unchanged, for the cases where you want multiple runs.
2603 remains unchanged, for the cases where you want multiple runs.
2599
2604
2600 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2605 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2601 bug where Python2.2 crashes with exec'ing code which does not end
2606 bug where Python2.2 crashes with exec'ing code which does not end
2602 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2607 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2603 before.
2608 before.
2604
2609
2605 2004-12-10 Fernando Perez <fperez@colorado.edu>
2610 2004-12-10 Fernando Perez <fperez@colorado.edu>
2606
2611
2607 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2612 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2608 -t to -T, to accomodate the new -t flag in %run (the %run and
2613 -t to -T, to accomodate the new -t flag in %run (the %run and
2609 %prun options are kind of intermixed, and it's not easy to change
2614 %prun options are kind of intermixed, and it's not easy to change
2610 this with the limitations of python's getopt).
2615 this with the limitations of python's getopt).
2611
2616
2612 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2617 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2613 the execution of scripts. It's not as fine-tuned as timeit.py,
2618 the execution of scripts. It's not as fine-tuned as timeit.py,
2614 but it works from inside ipython (and under 2.2, which lacks
2619 but it works from inside ipython (and under 2.2, which lacks
2615 timeit.py). Optionally a number of runs > 1 can be given for
2620 timeit.py). Optionally a number of runs > 1 can be given for
2616 timing very short-running code.
2621 timing very short-running code.
2617
2622
2618 * IPython/genutils.py (uniq_stable): new routine which returns a
2623 * IPython/genutils.py (uniq_stable): new routine which returns a
2619 list of unique elements in any iterable, but in stable order of
2624 list of unique elements in any iterable, but in stable order of
2620 appearance. I needed this for the ultraTB fixes, and it's a handy
2625 appearance. I needed this for the ultraTB fixes, and it's a handy
2621 utility.
2626 utility.
2622
2627
2623 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2628 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2624 dotted names in Verbose exceptions. This had been broken since
2629 dotted names in Verbose exceptions. This had been broken since
2625 the very start, now x.y will properly be printed in a Verbose
2630 the very start, now x.y will properly be printed in a Verbose
2626 traceback, instead of x being shown and y appearing always as an
2631 traceback, instead of x being shown and y appearing always as an
2627 'undefined global'. Getting this to work was a bit tricky,
2632 'undefined global'. Getting this to work was a bit tricky,
2628 because by default python tokenizers are stateless. Saved by
2633 because by default python tokenizers are stateless. Saved by
2629 python's ability to easily add a bit of state to an arbitrary
2634 python's ability to easily add a bit of state to an arbitrary
2630 function (without needing to build a full-blown callable object).
2635 function (without needing to build a full-blown callable object).
2631
2636
2632 Also big cleanup of this code, which had horrendous runtime
2637 Also big cleanup of this code, which had horrendous runtime
2633 lookups of zillions of attributes for colorization. Moved all
2638 lookups of zillions of attributes for colorization. Moved all
2634 this code into a few templates, which make it cleaner and quicker.
2639 this code into a few templates, which make it cleaner and quicker.
2635
2640
2636 Printout quality was also improved for Verbose exceptions: one
2641 Printout quality was also improved for Verbose exceptions: one
2637 variable per line, and memory addresses are printed (this can be
2642 variable per line, and memory addresses are printed (this can be
2638 quite handy in nasty debugging situations, which is what Verbose
2643 quite handy in nasty debugging situations, which is what Verbose
2639 is for).
2644 is for).
2640
2645
2641 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2646 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2642 the command line as scripts to be loaded by embedded instances.
2647 the command line as scripts to be loaded by embedded instances.
2643 Doing so has the potential for an infinite recursion if there are
2648 Doing so has the potential for an infinite recursion if there are
2644 exceptions thrown in the process. This fixes a strange crash
2649 exceptions thrown in the process. This fixes a strange crash
2645 reported by Philippe MULLER <muller-AT-irit.fr>.
2650 reported by Philippe MULLER <muller-AT-irit.fr>.
2646
2651
2647 2004-12-09 Fernando Perez <fperez@colorado.edu>
2652 2004-12-09 Fernando Perez <fperez@colorado.edu>
2648
2653
2649 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2654 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2650 to reflect new names in matplotlib, which now expose the
2655 to reflect new names in matplotlib, which now expose the
2651 matlab-compatible interface via a pylab module instead of the
2656 matlab-compatible interface via a pylab module instead of the
2652 'matlab' name. The new code is backwards compatible, so users of
2657 'matlab' name. The new code is backwards compatible, so users of
2653 all matplotlib versions are OK. Patch by J. Hunter.
2658 all matplotlib versions are OK. Patch by J. Hunter.
2654
2659
2655 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2660 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2656 of __init__ docstrings for instances (class docstrings are already
2661 of __init__ docstrings for instances (class docstrings are already
2657 automatically printed). Instances with customized docstrings
2662 automatically printed). Instances with customized docstrings
2658 (indep. of the class) are also recognized and all 3 separate
2663 (indep. of the class) are also recognized and all 3 separate
2659 docstrings are printed (instance, class, constructor). After some
2664 docstrings are printed (instance, class, constructor). After some
2660 comments/suggestions by J. Hunter.
2665 comments/suggestions by J. Hunter.
2661
2666
2662 2004-12-05 Fernando Perez <fperez@colorado.edu>
2667 2004-12-05 Fernando Perez <fperez@colorado.edu>
2663
2668
2664 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2669 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2665 warnings when tab-completion fails and triggers an exception.
2670 warnings when tab-completion fails and triggers an exception.
2666
2671
2667 2004-12-03 Fernando Perez <fperez@colorado.edu>
2672 2004-12-03 Fernando Perez <fperez@colorado.edu>
2668
2673
2669 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2674 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2670 be triggered when using 'run -p'. An incorrect option flag was
2675 be triggered when using 'run -p'. An incorrect option flag was
2671 being set ('d' instead of 'D').
2676 being set ('d' instead of 'D').
2672 (manpage): fix missing escaped \- sign.
2677 (manpage): fix missing escaped \- sign.
2673
2678
2674 2004-11-30 *** Released version 0.6.5
2679 2004-11-30 *** Released version 0.6.5
2675
2680
2676 2004-11-30 Fernando Perez <fperez@colorado.edu>
2681 2004-11-30 Fernando Perez <fperez@colorado.edu>
2677
2682
2678 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2683 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2679 setting with -d option.
2684 setting with -d option.
2680
2685
2681 * setup.py (docfiles): Fix problem where the doc glob I was using
2686 * setup.py (docfiles): Fix problem where the doc glob I was using
2682 was COMPLETELY BROKEN. It was giving the right files by pure
2687 was COMPLETELY BROKEN. It was giving the right files by pure
2683 accident, but failed once I tried to include ipython.el. Note:
2688 accident, but failed once I tried to include ipython.el. Note:
2684 glob() does NOT allow you to do exclusion on multiple endings!
2689 glob() does NOT allow you to do exclusion on multiple endings!
2685
2690
2686 2004-11-29 Fernando Perez <fperez@colorado.edu>
2691 2004-11-29 Fernando Perez <fperez@colorado.edu>
2687
2692
2688 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2693 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2689 the manpage as the source. Better formatting & consistency.
2694 the manpage as the source. Better formatting & consistency.
2690
2695
2691 * IPython/Magic.py (magic_run): Added new -d option, to run
2696 * IPython/Magic.py (magic_run): Added new -d option, to run
2692 scripts under the control of the python pdb debugger. Note that
2697 scripts under the control of the python pdb debugger. Note that
2693 this required changing the %prun option -d to -D, to avoid a clash
2698 this required changing the %prun option -d to -D, to avoid a clash
2694 (since %run must pass options to %prun, and getopt is too dumb to
2699 (since %run must pass options to %prun, and getopt is too dumb to
2695 handle options with string values with embedded spaces). Thanks
2700 handle options with string values with embedded spaces). Thanks
2696 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2701 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2697 (magic_who_ls): added type matching to %who and %whos, so that one
2702 (magic_who_ls): added type matching to %who and %whos, so that one
2698 can filter their output to only include variables of certain
2703 can filter their output to only include variables of certain
2699 types. Another suggestion by Matthew.
2704 types. Another suggestion by Matthew.
2700 (magic_whos): Added memory summaries in kb and Mb for arrays.
2705 (magic_whos): Added memory summaries in kb and Mb for arrays.
2701 (magic_who): Improve formatting (break lines every 9 vars).
2706 (magic_who): Improve formatting (break lines every 9 vars).
2702
2707
2703 2004-11-28 Fernando Perez <fperez@colorado.edu>
2708 2004-11-28 Fernando Perez <fperez@colorado.edu>
2704
2709
2705 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2710 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2706 cache when empty lines were present.
2711 cache when empty lines were present.
2707
2712
2708 2004-11-24 Fernando Perez <fperez@colorado.edu>
2713 2004-11-24 Fernando Perez <fperez@colorado.edu>
2709
2714
2710 * IPython/usage.py (__doc__): document the re-activated threading
2715 * IPython/usage.py (__doc__): document the re-activated threading
2711 options for WX and GTK.
2716 options for WX and GTK.
2712
2717
2713 2004-11-23 Fernando Perez <fperez@colorado.edu>
2718 2004-11-23 Fernando Perez <fperez@colorado.edu>
2714
2719
2715 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2720 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2716 the -wthread and -gthread options, along with a new -tk one to try
2721 the -wthread and -gthread options, along with a new -tk one to try
2717 and coordinate Tk threading with wx/gtk. The tk support is very
2722 and coordinate Tk threading with wx/gtk. The tk support is very
2718 platform dependent, since it seems to require Tcl and Tk to be
2723 platform dependent, since it seems to require Tcl and Tk to be
2719 built with threads (Fedora1/2 appears NOT to have it, but in
2724 built with threads (Fedora1/2 appears NOT to have it, but in
2720 Prabhu's Debian boxes it works OK). But even with some Tk
2725 Prabhu's Debian boxes it works OK). But even with some Tk
2721 limitations, this is a great improvement.
2726 limitations, this is a great improvement.
2722
2727
2723 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2728 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2724 info in user prompts. Patch by Prabhu.
2729 info in user prompts. Patch by Prabhu.
2725
2730
2726 2004-11-18 Fernando Perez <fperez@colorado.edu>
2731 2004-11-18 Fernando Perez <fperez@colorado.edu>
2727
2732
2728 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2733 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2729 EOFErrors and bail, to avoid infinite loops if a non-terminating
2734 EOFErrors and bail, to avoid infinite loops if a non-terminating
2730 file is fed into ipython. Patch submitted in issue 19 by user,
2735 file is fed into ipython. Patch submitted in issue 19 by user,
2731 many thanks.
2736 many thanks.
2732
2737
2733 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2738 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2734 autoquote/parens in continuation prompts, which can cause lots of
2739 autoquote/parens in continuation prompts, which can cause lots of
2735 problems. Closes roundup issue 20.
2740 problems. Closes roundup issue 20.
2736
2741
2737 2004-11-17 Fernando Perez <fperez@colorado.edu>
2742 2004-11-17 Fernando Perez <fperez@colorado.edu>
2738
2743
2739 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2744 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2740 reported as debian bug #280505. I'm not sure my local changelog
2745 reported as debian bug #280505. I'm not sure my local changelog
2741 entry has the proper debian format (Jack?).
2746 entry has the proper debian format (Jack?).
2742
2747
2743 2004-11-08 *** Released version 0.6.4
2748 2004-11-08 *** Released version 0.6.4
2744
2749
2745 2004-11-08 Fernando Perez <fperez@colorado.edu>
2750 2004-11-08 Fernando Perez <fperez@colorado.edu>
2746
2751
2747 * IPython/iplib.py (init_readline): Fix exit message for Windows
2752 * IPython/iplib.py (init_readline): Fix exit message for Windows
2748 when readline is active. Thanks to a report by Eric Jones
2753 when readline is active. Thanks to a report by Eric Jones
2749 <eric-AT-enthought.com>.
2754 <eric-AT-enthought.com>.
2750
2755
2751 2004-11-07 Fernando Perez <fperez@colorado.edu>
2756 2004-11-07 Fernando Perez <fperez@colorado.edu>
2752
2757
2753 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2758 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2754 sometimes seen by win2k/cygwin users.
2759 sometimes seen by win2k/cygwin users.
2755
2760
2756 2004-11-06 Fernando Perez <fperez@colorado.edu>
2761 2004-11-06 Fernando Perez <fperez@colorado.edu>
2757
2762
2758 * IPython/iplib.py (interact): Change the handling of %Exit from
2763 * IPython/iplib.py (interact): Change the handling of %Exit from
2759 trying to propagate a SystemExit to an internal ipython flag.
2764 trying to propagate a SystemExit to an internal ipython flag.
2760 This is less elegant than using Python's exception mechanism, but
2765 This is less elegant than using Python's exception mechanism, but
2761 I can't get that to work reliably with threads, so under -pylab
2766 I can't get that to work reliably with threads, so under -pylab
2762 %Exit was hanging IPython. Cross-thread exception handling is
2767 %Exit was hanging IPython. Cross-thread exception handling is
2763 really a bitch. Thaks to a bug report by Stephen Walton
2768 really a bitch. Thaks to a bug report by Stephen Walton
2764 <stephen.walton-AT-csun.edu>.
2769 <stephen.walton-AT-csun.edu>.
2765
2770
2766 2004-11-04 Fernando Perez <fperez@colorado.edu>
2771 2004-11-04 Fernando Perez <fperez@colorado.edu>
2767
2772
2768 * IPython/iplib.py (raw_input_original): store a pointer to the
2773 * IPython/iplib.py (raw_input_original): store a pointer to the
2769 true raw_input to harden against code which can modify it
2774 true raw_input to harden against code which can modify it
2770 (wx.py.PyShell does this and would otherwise crash ipython).
2775 (wx.py.PyShell does this and would otherwise crash ipython).
2771 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2776 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2772
2777
2773 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2778 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2774 Ctrl-C problem, which does not mess up the input line.
2779 Ctrl-C problem, which does not mess up the input line.
2775
2780
2776 2004-11-03 Fernando Perez <fperez@colorado.edu>
2781 2004-11-03 Fernando Perez <fperez@colorado.edu>
2777
2782
2778 * IPython/Release.py: Changed licensing to BSD, in all files.
2783 * IPython/Release.py: Changed licensing to BSD, in all files.
2779 (name): lowercase name for tarball/RPM release.
2784 (name): lowercase name for tarball/RPM release.
2780
2785
2781 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2786 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2782 use throughout ipython.
2787 use throughout ipython.
2783
2788
2784 * IPython/Magic.py (Magic._ofind): Switch to using the new
2789 * IPython/Magic.py (Magic._ofind): Switch to using the new
2785 OInspect.getdoc() function.
2790 OInspect.getdoc() function.
2786
2791
2787 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2792 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2788 of the line currently being canceled via Ctrl-C. It's extremely
2793 of the line currently being canceled via Ctrl-C. It's extremely
2789 ugly, but I don't know how to do it better (the problem is one of
2794 ugly, but I don't know how to do it better (the problem is one of
2790 handling cross-thread exceptions).
2795 handling cross-thread exceptions).
2791
2796
2792 2004-10-28 Fernando Perez <fperez@colorado.edu>
2797 2004-10-28 Fernando Perez <fperez@colorado.edu>
2793
2798
2794 * IPython/Shell.py (signal_handler): add signal handlers to trap
2799 * IPython/Shell.py (signal_handler): add signal handlers to trap
2795 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2800 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2796 report by Francesc Alted.
2801 report by Francesc Alted.
2797
2802
2798 2004-10-21 Fernando Perez <fperez@colorado.edu>
2803 2004-10-21 Fernando Perez <fperez@colorado.edu>
2799
2804
2800 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2805 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2801 to % for pysh syntax extensions.
2806 to % for pysh syntax extensions.
2802
2807
2803 2004-10-09 Fernando Perez <fperez@colorado.edu>
2808 2004-10-09 Fernando Perez <fperez@colorado.edu>
2804
2809
2805 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2810 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2806 arrays to print a more useful summary, without calling str(arr).
2811 arrays to print a more useful summary, without calling str(arr).
2807 This avoids the problem of extremely lengthy computations which
2812 This avoids the problem of extremely lengthy computations which
2808 occur if arr is large, and appear to the user as a system lockup
2813 occur if arr is large, and appear to the user as a system lockup
2809 with 100% cpu activity. After a suggestion by Kristian Sandberg
2814 with 100% cpu activity. After a suggestion by Kristian Sandberg
2810 <Kristian.Sandberg@colorado.edu>.
2815 <Kristian.Sandberg@colorado.edu>.
2811 (Magic.__init__): fix bug in global magic escapes not being
2816 (Magic.__init__): fix bug in global magic escapes not being
2812 correctly set.
2817 correctly set.
2813
2818
2814 2004-10-08 Fernando Perez <fperez@colorado.edu>
2819 2004-10-08 Fernando Perez <fperez@colorado.edu>
2815
2820
2816 * IPython/Magic.py (__license__): change to absolute imports of
2821 * IPython/Magic.py (__license__): change to absolute imports of
2817 ipython's own internal packages, to start adapting to the absolute
2822 ipython's own internal packages, to start adapting to the absolute
2818 import requirement of PEP-328.
2823 import requirement of PEP-328.
2819
2824
2820 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2825 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2821 files, and standardize author/license marks through the Release
2826 files, and standardize author/license marks through the Release
2822 module instead of having per/file stuff (except for files with
2827 module instead of having per/file stuff (except for files with
2823 particular licenses, like the MIT/PSF-licensed codes).
2828 particular licenses, like the MIT/PSF-licensed codes).
2824
2829
2825 * IPython/Debugger.py: remove dead code for python 2.1
2830 * IPython/Debugger.py: remove dead code for python 2.1
2826
2831
2827 2004-10-04 Fernando Perez <fperez@colorado.edu>
2832 2004-10-04 Fernando Perez <fperez@colorado.edu>
2828
2833
2829 * IPython/iplib.py (ipmagic): New function for accessing magics
2834 * IPython/iplib.py (ipmagic): New function for accessing magics
2830 via a normal python function call.
2835 via a normal python function call.
2831
2836
2832 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2837 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2833 from '@' to '%', to accomodate the new @decorator syntax of python
2838 from '@' to '%', to accomodate the new @decorator syntax of python
2834 2.4.
2839 2.4.
2835
2840
2836 2004-09-29 Fernando Perez <fperez@colorado.edu>
2841 2004-09-29 Fernando Perez <fperez@colorado.edu>
2837
2842
2838 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2843 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2839 matplotlib.use to prevent running scripts which try to switch
2844 matplotlib.use to prevent running scripts which try to switch
2840 interactive backends from within ipython. This will just crash
2845 interactive backends from within ipython. This will just crash
2841 the python interpreter, so we can't allow it (but a detailed error
2846 the python interpreter, so we can't allow it (but a detailed error
2842 is given to the user).
2847 is given to the user).
2843
2848
2844 2004-09-28 Fernando Perez <fperez@colorado.edu>
2849 2004-09-28 Fernando Perez <fperez@colorado.edu>
2845
2850
2846 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2851 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2847 matplotlib-related fixes so that using @run with non-matplotlib
2852 matplotlib-related fixes so that using @run with non-matplotlib
2848 scripts doesn't pop up spurious plot windows. This requires
2853 scripts doesn't pop up spurious plot windows. This requires
2849 matplotlib >= 0.63, where I had to make some changes as well.
2854 matplotlib >= 0.63, where I had to make some changes as well.
2850
2855
2851 * IPython/ipmaker.py (make_IPython): update version requirement to
2856 * IPython/ipmaker.py (make_IPython): update version requirement to
2852 python 2.2.
2857 python 2.2.
2853
2858
2854 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2859 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2855 banner arg for embedded customization.
2860 banner arg for embedded customization.
2856
2861
2857 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2862 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2858 explicit uses of __IP as the IPython's instance name. Now things
2863 explicit uses of __IP as the IPython's instance name. Now things
2859 are properly handled via the shell.name value. The actual code
2864 are properly handled via the shell.name value. The actual code
2860 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2865 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2861 is much better than before. I'll clean things completely when the
2866 is much better than before. I'll clean things completely when the
2862 magic stuff gets a real overhaul.
2867 magic stuff gets a real overhaul.
2863
2868
2864 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2869 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2865 minor changes to debian dir.
2870 minor changes to debian dir.
2866
2871
2867 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2872 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2868 pointer to the shell itself in the interactive namespace even when
2873 pointer to the shell itself in the interactive namespace even when
2869 a user-supplied dict is provided. This is needed for embedding
2874 a user-supplied dict is provided. This is needed for embedding
2870 purposes (found by tests with Michel Sanner).
2875 purposes (found by tests with Michel Sanner).
2871
2876
2872 2004-09-27 Fernando Perez <fperez@colorado.edu>
2877 2004-09-27 Fernando Perez <fperez@colorado.edu>
2873
2878
2874 * IPython/UserConfig/ipythonrc: remove []{} from
2879 * IPython/UserConfig/ipythonrc: remove []{} from
2875 readline_remove_delims, so that things like [modname.<TAB> do
2880 readline_remove_delims, so that things like [modname.<TAB> do
2876 proper completion. This disables [].TAB, but that's a less common
2881 proper completion. This disables [].TAB, but that's a less common
2877 case than module names in list comprehensions, for example.
2882 case than module names in list comprehensions, for example.
2878 Thanks to a report by Andrea Riciputi.
2883 Thanks to a report by Andrea Riciputi.
2879
2884
2880 2004-09-09 Fernando Perez <fperez@colorado.edu>
2885 2004-09-09 Fernando Perez <fperez@colorado.edu>
2881
2886
2882 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2887 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2883 blocking problems in win32 and osx. Fix by John.
2888 blocking problems in win32 and osx. Fix by John.
2884
2889
2885 2004-09-08 Fernando Perez <fperez@colorado.edu>
2890 2004-09-08 Fernando Perez <fperez@colorado.edu>
2886
2891
2887 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2892 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2888 for Win32 and OSX. Fix by John Hunter.
2893 for Win32 and OSX. Fix by John Hunter.
2889
2894
2890 2004-08-30 *** Released version 0.6.3
2895 2004-08-30 *** Released version 0.6.3
2891
2896
2892 2004-08-30 Fernando Perez <fperez@colorado.edu>
2897 2004-08-30 Fernando Perez <fperez@colorado.edu>
2893
2898
2894 * setup.py (isfile): Add manpages to list of dependent files to be
2899 * setup.py (isfile): Add manpages to list of dependent files to be
2895 updated.
2900 updated.
2896
2901
2897 2004-08-27 Fernando Perez <fperez@colorado.edu>
2902 2004-08-27 Fernando Perez <fperez@colorado.edu>
2898
2903
2899 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2904 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2900 for now. They don't really work with standalone WX/GTK code
2905 for now. They don't really work with standalone WX/GTK code
2901 (though matplotlib IS working fine with both of those backends).
2906 (though matplotlib IS working fine with both of those backends).
2902 This will neeed much more testing. I disabled most things with
2907 This will neeed much more testing. I disabled most things with
2903 comments, so turning it back on later should be pretty easy.
2908 comments, so turning it back on later should be pretty easy.
2904
2909
2905 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2910 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2906 autocalling of expressions like r'foo', by modifying the line
2911 autocalling of expressions like r'foo', by modifying the line
2907 split regexp. Closes
2912 split regexp. Closes
2908 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2913 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2909 Riley <ipythonbugs-AT-sabi.net>.
2914 Riley <ipythonbugs-AT-sabi.net>.
2910 (InteractiveShell.mainloop): honor --nobanner with banner
2915 (InteractiveShell.mainloop): honor --nobanner with banner
2911 extensions.
2916 extensions.
2912
2917
2913 * IPython/Shell.py: Significant refactoring of all classes, so
2918 * IPython/Shell.py: Significant refactoring of all classes, so
2914 that we can really support ALL matplotlib backends and threading
2919 that we can really support ALL matplotlib backends and threading
2915 models (John spotted a bug with Tk which required this). Now we
2920 models (John spotted a bug with Tk which required this). Now we
2916 should support single-threaded, WX-threads and GTK-threads, both
2921 should support single-threaded, WX-threads and GTK-threads, both
2917 for generic code and for matplotlib.
2922 for generic code and for matplotlib.
2918
2923
2919 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2924 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2920 -pylab, to simplify things for users. Will also remove the pylab
2925 -pylab, to simplify things for users. Will also remove the pylab
2921 profile, since now all of matplotlib configuration is directly
2926 profile, since now all of matplotlib configuration is directly
2922 handled here. This also reduces startup time.
2927 handled here. This also reduces startup time.
2923
2928
2924 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2929 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2925 shell wasn't being correctly called. Also in IPShellWX.
2930 shell wasn't being correctly called. Also in IPShellWX.
2926
2931
2927 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2932 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2928 fine-tune banner.
2933 fine-tune banner.
2929
2934
2930 * IPython/numutils.py (spike): Deprecate these spike functions,
2935 * IPython/numutils.py (spike): Deprecate these spike functions,
2931 delete (long deprecated) gnuplot_exec handler.
2936 delete (long deprecated) gnuplot_exec handler.
2932
2937
2933 2004-08-26 Fernando Perez <fperez@colorado.edu>
2938 2004-08-26 Fernando Perez <fperez@colorado.edu>
2934
2939
2935 * ipython.1: Update for threading options, plus some others which
2940 * ipython.1: Update for threading options, plus some others which
2936 were missing.
2941 were missing.
2937
2942
2938 * IPython/ipmaker.py (__call__): Added -wthread option for
2943 * IPython/ipmaker.py (__call__): Added -wthread option for
2939 wxpython thread handling. Make sure threading options are only
2944 wxpython thread handling. Make sure threading options are only
2940 valid at the command line.
2945 valid at the command line.
2941
2946
2942 * scripts/ipython: moved shell selection into a factory function
2947 * scripts/ipython: moved shell selection into a factory function
2943 in Shell.py, to keep the starter script to a minimum.
2948 in Shell.py, to keep the starter script to a minimum.
2944
2949
2945 2004-08-25 Fernando Perez <fperez@colorado.edu>
2950 2004-08-25 Fernando Perez <fperez@colorado.edu>
2946
2951
2947 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2952 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2948 John. Along with some recent changes he made to matplotlib, the
2953 John. Along with some recent changes he made to matplotlib, the
2949 next versions of both systems should work very well together.
2954 next versions of both systems should work very well together.
2950
2955
2951 2004-08-24 Fernando Perez <fperez@colorado.edu>
2956 2004-08-24 Fernando Perez <fperez@colorado.edu>
2952
2957
2953 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2958 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2954 tried to switch the profiling to using hotshot, but I'm getting
2959 tried to switch the profiling to using hotshot, but I'm getting
2955 strange errors from prof.runctx() there. I may be misreading the
2960 strange errors from prof.runctx() there. I may be misreading the
2956 docs, but it looks weird. For now the profiling code will
2961 docs, but it looks weird. For now the profiling code will
2957 continue to use the standard profiler.
2962 continue to use the standard profiler.
2958
2963
2959 2004-08-23 Fernando Perez <fperez@colorado.edu>
2964 2004-08-23 Fernando Perez <fperez@colorado.edu>
2960
2965
2961 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2966 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2962 threaded shell, by John Hunter. It's not quite ready yet, but
2967 threaded shell, by John Hunter. It's not quite ready yet, but
2963 close.
2968 close.
2964
2969
2965 2004-08-22 Fernando Perez <fperez@colorado.edu>
2970 2004-08-22 Fernando Perez <fperez@colorado.edu>
2966
2971
2967 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2972 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2968 in Magic and ultraTB.
2973 in Magic and ultraTB.
2969
2974
2970 * ipython.1: document threading options in manpage.
2975 * ipython.1: document threading options in manpage.
2971
2976
2972 * scripts/ipython: Changed name of -thread option to -gthread,
2977 * scripts/ipython: Changed name of -thread option to -gthread,
2973 since this is GTK specific. I want to leave the door open for a
2978 since this is GTK specific. I want to leave the door open for a
2974 -wthread option for WX, which will most likely be necessary. This
2979 -wthread option for WX, which will most likely be necessary. This
2975 change affects usage and ipmaker as well.
2980 change affects usage and ipmaker as well.
2976
2981
2977 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2982 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2978 handle the matplotlib shell issues. Code by John Hunter
2983 handle the matplotlib shell issues. Code by John Hunter
2979 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2984 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2980 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2985 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2981 broken (and disabled for end users) for now, but it puts the
2986 broken (and disabled for end users) for now, but it puts the
2982 infrastructure in place.
2987 infrastructure in place.
2983
2988
2984 2004-08-21 Fernando Perez <fperez@colorado.edu>
2989 2004-08-21 Fernando Perez <fperez@colorado.edu>
2985
2990
2986 * ipythonrc-pylab: Add matplotlib support.
2991 * ipythonrc-pylab: Add matplotlib support.
2987
2992
2988 * matplotlib_config.py: new files for matplotlib support, part of
2993 * matplotlib_config.py: new files for matplotlib support, part of
2989 the pylab profile.
2994 the pylab profile.
2990
2995
2991 * IPython/usage.py (__doc__): documented the threading options.
2996 * IPython/usage.py (__doc__): documented the threading options.
2992
2997
2993 2004-08-20 Fernando Perez <fperez@colorado.edu>
2998 2004-08-20 Fernando Perez <fperez@colorado.edu>
2994
2999
2995 * ipython: Modified the main calling routine to handle the -thread
3000 * ipython: Modified the main calling routine to handle the -thread
2996 and -mpthread options. This needs to be done as a top-level hack,
3001 and -mpthread options. This needs to be done as a top-level hack,
2997 because it determines which class to instantiate for IPython
3002 because it determines which class to instantiate for IPython
2998 itself.
3003 itself.
2999
3004
3000 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3005 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3001 classes to support multithreaded GTK operation without blocking,
3006 classes to support multithreaded GTK operation without blocking,
3002 and matplotlib with all backends. This is a lot of still very
3007 and matplotlib with all backends. This is a lot of still very
3003 experimental code, and threads are tricky. So it may still have a
3008 experimental code, and threads are tricky. So it may still have a
3004 few rough edges... This code owes a lot to
3009 few rough edges... This code owes a lot to
3005 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3010 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3006 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3011 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3007 to John Hunter for all the matplotlib work.
3012 to John Hunter for all the matplotlib work.
3008
3013
3009 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3014 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3010 options for gtk thread and matplotlib support.
3015 options for gtk thread and matplotlib support.
3011
3016
3012 2004-08-16 Fernando Perez <fperez@colorado.edu>
3017 2004-08-16 Fernando Perez <fperez@colorado.edu>
3013
3018
3014 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3019 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3015 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3020 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3016 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3021 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3017
3022
3018 2004-08-11 Fernando Perez <fperez@colorado.edu>
3023 2004-08-11 Fernando Perez <fperez@colorado.edu>
3019
3024
3020 * setup.py (isfile): Fix build so documentation gets updated for
3025 * setup.py (isfile): Fix build so documentation gets updated for
3021 rpms (it was only done for .tgz builds).
3026 rpms (it was only done for .tgz builds).
3022
3027
3023 2004-08-10 Fernando Perez <fperez@colorado.edu>
3028 2004-08-10 Fernando Perez <fperez@colorado.edu>
3024
3029
3025 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3030 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3026
3031
3027 * iplib.py : Silence syntax error exceptions in tab-completion.
3032 * iplib.py : Silence syntax error exceptions in tab-completion.
3028
3033
3029 2004-08-05 Fernando Perez <fperez@colorado.edu>
3034 2004-08-05 Fernando Perez <fperez@colorado.edu>
3030
3035
3031 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3036 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3032 'color off' mark for continuation prompts. This was causing long
3037 'color off' mark for continuation prompts. This was causing long
3033 continuation lines to mis-wrap.
3038 continuation lines to mis-wrap.
3034
3039
3035 2004-08-01 Fernando Perez <fperez@colorado.edu>
3040 2004-08-01 Fernando Perez <fperez@colorado.edu>
3036
3041
3037 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3042 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3038 for building ipython to be a parameter. All this is necessary
3043 for building ipython to be a parameter. All this is necessary
3039 right now to have a multithreaded version, but this insane
3044 right now to have a multithreaded version, but this insane
3040 non-design will be cleaned up soon. For now, it's a hack that
3045 non-design will be cleaned up soon. For now, it's a hack that
3041 works.
3046 works.
3042
3047
3043 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3048 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3044 args in various places. No bugs so far, but it's a dangerous
3049 args in various places. No bugs so far, but it's a dangerous
3045 practice.
3050 practice.
3046
3051
3047 2004-07-31 Fernando Perez <fperez@colorado.edu>
3052 2004-07-31 Fernando Perez <fperez@colorado.edu>
3048
3053
3049 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3054 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3050 fix completion of files with dots in their names under most
3055 fix completion of files with dots in their names under most
3051 profiles (pysh was OK because the completion order is different).
3056 profiles (pysh was OK because the completion order is different).
3052
3057
3053 2004-07-27 Fernando Perez <fperez@colorado.edu>
3058 2004-07-27 Fernando Perez <fperez@colorado.edu>
3054
3059
3055 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3060 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3056 keywords manually, b/c the one in keyword.py was removed in python
3061 keywords manually, b/c the one in keyword.py was removed in python
3057 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3062 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3058 This is NOT a bug under python 2.3 and earlier.
3063 This is NOT a bug under python 2.3 and earlier.
3059
3064
3060 2004-07-26 Fernando Perez <fperez@colorado.edu>
3065 2004-07-26 Fernando Perez <fperez@colorado.edu>
3061
3066
3062 * IPython/ultraTB.py (VerboseTB.text): Add another
3067 * IPython/ultraTB.py (VerboseTB.text): Add another
3063 linecache.checkcache() call to try to prevent inspect.py from
3068 linecache.checkcache() call to try to prevent inspect.py from
3064 crashing under python 2.3. I think this fixes
3069 crashing under python 2.3. I think this fixes
3065 http://www.scipy.net/roundup/ipython/issue17.
3070 http://www.scipy.net/roundup/ipython/issue17.
3066
3071
3067 2004-07-26 *** Released version 0.6.2
3072 2004-07-26 *** Released version 0.6.2
3068
3073
3069 2004-07-26 Fernando Perez <fperez@colorado.edu>
3074 2004-07-26 Fernando Perez <fperez@colorado.edu>
3070
3075
3071 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3076 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3072 fail for any number.
3077 fail for any number.
3073 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3078 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3074 empty bookmarks.
3079 empty bookmarks.
3075
3080
3076 2004-07-26 *** Released version 0.6.1
3081 2004-07-26 *** Released version 0.6.1
3077
3082
3078 2004-07-26 Fernando Perez <fperez@colorado.edu>
3083 2004-07-26 Fernando Perez <fperez@colorado.edu>
3079
3084
3080 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3085 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3081
3086
3082 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3087 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3083 escaping '()[]{}' in filenames.
3088 escaping '()[]{}' in filenames.
3084
3089
3085 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3090 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3086 Python 2.2 users who lack a proper shlex.split.
3091 Python 2.2 users who lack a proper shlex.split.
3087
3092
3088 2004-07-19 Fernando Perez <fperez@colorado.edu>
3093 2004-07-19 Fernando Perez <fperez@colorado.edu>
3089
3094
3090 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3095 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3091 for reading readline's init file. I follow the normal chain:
3096 for reading readline's init file. I follow the normal chain:
3092 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3097 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3093 report by Mike Heeter. This closes
3098 report by Mike Heeter. This closes
3094 http://www.scipy.net/roundup/ipython/issue16.
3099 http://www.scipy.net/roundup/ipython/issue16.
3095
3100
3096 2004-07-18 Fernando Perez <fperez@colorado.edu>
3101 2004-07-18 Fernando Perez <fperez@colorado.edu>
3097
3102
3098 * IPython/iplib.py (__init__): Add better handling of '\' under
3103 * IPython/iplib.py (__init__): Add better handling of '\' under
3099 Win32 for filenames. After a patch by Ville.
3104 Win32 for filenames. After a patch by Ville.
3100
3105
3101 2004-07-17 Fernando Perez <fperez@colorado.edu>
3106 2004-07-17 Fernando Perez <fperez@colorado.edu>
3102
3107
3103 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3108 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3104 autocalling would be triggered for 'foo is bar' if foo is
3109 autocalling would be triggered for 'foo is bar' if foo is
3105 callable. I also cleaned up the autocall detection code to use a
3110 callable. I also cleaned up the autocall detection code to use a
3106 regexp, which is faster. Bug reported by Alexander Schmolck.
3111 regexp, which is faster. Bug reported by Alexander Schmolck.
3107
3112
3108 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3113 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3109 '?' in them would confuse the help system. Reported by Alex
3114 '?' in them would confuse the help system. Reported by Alex
3110 Schmolck.
3115 Schmolck.
3111
3116
3112 2004-07-16 Fernando Perez <fperez@colorado.edu>
3117 2004-07-16 Fernando Perez <fperez@colorado.edu>
3113
3118
3114 * IPython/GnuplotInteractive.py (__all__): added plot2.
3119 * IPython/GnuplotInteractive.py (__all__): added plot2.
3115
3120
3116 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3121 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3117 plotting dictionaries, lists or tuples of 1d arrays.
3122 plotting dictionaries, lists or tuples of 1d arrays.
3118
3123
3119 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3124 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3120 optimizations.
3125 optimizations.
3121
3126
3122 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3127 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3123 the information which was there from Janko's original IPP code:
3128 the information which was there from Janko's original IPP code:
3124
3129
3125 03.05.99 20:53 porto.ifm.uni-kiel.de
3130 03.05.99 20:53 porto.ifm.uni-kiel.de
3126 --Started changelog.
3131 --Started changelog.
3127 --make clear do what it say it does
3132 --make clear do what it say it does
3128 --added pretty output of lines from inputcache
3133 --added pretty output of lines from inputcache
3129 --Made Logger a mixin class, simplifies handling of switches
3134 --Made Logger a mixin class, simplifies handling of switches
3130 --Added own completer class. .string<TAB> expands to last history
3135 --Added own completer class. .string<TAB> expands to last history
3131 line which starts with string. The new expansion is also present
3136 line which starts with string. The new expansion is also present
3132 with Ctrl-r from the readline library. But this shows, who this
3137 with Ctrl-r from the readline library. But this shows, who this
3133 can be done for other cases.
3138 can be done for other cases.
3134 --Added convention that all shell functions should accept a
3139 --Added convention that all shell functions should accept a
3135 parameter_string This opens the door for different behaviour for
3140 parameter_string This opens the door for different behaviour for
3136 each function. @cd is a good example of this.
3141 each function. @cd is a good example of this.
3137
3142
3138 04.05.99 12:12 porto.ifm.uni-kiel.de
3143 04.05.99 12:12 porto.ifm.uni-kiel.de
3139 --added logfile rotation
3144 --added logfile rotation
3140 --added new mainloop method which freezes first the namespace
3145 --added new mainloop method which freezes first the namespace
3141
3146
3142 07.05.99 21:24 porto.ifm.uni-kiel.de
3147 07.05.99 21:24 porto.ifm.uni-kiel.de
3143 --added the docreader classes. Now there is a help system.
3148 --added the docreader classes. Now there is a help system.
3144 -This is only a first try. Currently it's not easy to put new
3149 -This is only a first try. Currently it's not easy to put new
3145 stuff in the indices. But this is the way to go. Info would be
3150 stuff in the indices. But this is the way to go. Info would be
3146 better, but HTML is every where and not everybody has an info
3151 better, but HTML is every where and not everybody has an info
3147 system installed and it's not so easy to change html-docs to info.
3152 system installed and it's not so easy to change html-docs to info.
3148 --added global logfile option
3153 --added global logfile option
3149 --there is now a hook for object inspection method pinfo needs to
3154 --there is now a hook for object inspection method pinfo needs to
3150 be provided for this. Can be reached by two '??'.
3155 be provided for this. Can be reached by two '??'.
3151
3156
3152 08.05.99 20:51 porto.ifm.uni-kiel.de
3157 08.05.99 20:51 porto.ifm.uni-kiel.de
3153 --added a README
3158 --added a README
3154 --bug in rc file. Something has changed so functions in the rc
3159 --bug in rc file. Something has changed so functions in the rc
3155 file need to reference the shell and not self. Not clear if it's a
3160 file need to reference the shell and not self. Not clear if it's a
3156 bug or feature.
3161 bug or feature.
3157 --changed rc file for new behavior
3162 --changed rc file for new behavior
3158
3163
3159 2004-07-15 Fernando Perez <fperez@colorado.edu>
3164 2004-07-15 Fernando Perez <fperez@colorado.edu>
3160
3165
3161 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3166 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3162 cache was falling out of sync in bizarre manners when multi-line
3167 cache was falling out of sync in bizarre manners when multi-line
3163 input was present. Minor optimizations and cleanup.
3168 input was present. Minor optimizations and cleanup.
3164
3169
3165 (Logger): Remove old Changelog info for cleanup. This is the
3170 (Logger): Remove old Changelog info for cleanup. This is the
3166 information which was there from Janko's original code:
3171 information which was there from Janko's original code:
3167
3172
3168 Changes to Logger: - made the default log filename a parameter
3173 Changes to Logger: - made the default log filename a parameter
3169
3174
3170 - put a check for lines beginning with !@? in log(). Needed
3175 - put a check for lines beginning with !@? in log(). Needed
3171 (even if the handlers properly log their lines) for mid-session
3176 (even if the handlers properly log their lines) for mid-session
3172 logging activation to work properly. Without this, lines logged
3177 logging activation to work properly. Without this, lines logged
3173 in mid session, which get read from the cache, would end up
3178 in mid session, which get read from the cache, would end up
3174 'bare' (with !@? in the open) in the log. Now they are caught
3179 'bare' (with !@? in the open) in the log. Now they are caught
3175 and prepended with a #.
3180 and prepended with a #.
3176
3181
3177 * IPython/iplib.py (InteractiveShell.init_readline): added check
3182 * IPython/iplib.py (InteractiveShell.init_readline): added check
3178 in case MagicCompleter fails to be defined, so we don't crash.
3183 in case MagicCompleter fails to be defined, so we don't crash.
3179
3184
3180 2004-07-13 Fernando Perez <fperez@colorado.edu>
3185 2004-07-13 Fernando Perez <fperez@colorado.edu>
3181
3186
3182 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3187 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3183 of EPS if the requested filename ends in '.eps'.
3188 of EPS if the requested filename ends in '.eps'.
3184
3189
3185 2004-07-04 Fernando Perez <fperez@colorado.edu>
3190 2004-07-04 Fernando Perez <fperez@colorado.edu>
3186
3191
3187 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3192 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3188 escaping of quotes when calling the shell.
3193 escaping of quotes when calling the shell.
3189
3194
3190 2004-07-02 Fernando Perez <fperez@colorado.edu>
3195 2004-07-02 Fernando Perez <fperez@colorado.edu>
3191
3196
3192 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3197 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3193 gettext not working because we were clobbering '_'. Fixes
3198 gettext not working because we were clobbering '_'. Fixes
3194 http://www.scipy.net/roundup/ipython/issue6.
3199 http://www.scipy.net/roundup/ipython/issue6.
3195
3200
3196 2004-07-01 Fernando Perez <fperez@colorado.edu>
3201 2004-07-01 Fernando Perez <fperez@colorado.edu>
3197
3202
3198 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3203 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3199 into @cd. Patch by Ville.
3204 into @cd. Patch by Ville.
3200
3205
3201 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3206 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3202 new function to store things after ipmaker runs. Patch by Ville.
3207 new function to store things after ipmaker runs. Patch by Ville.
3203 Eventually this will go away once ipmaker is removed and the class
3208 Eventually this will go away once ipmaker is removed and the class
3204 gets cleaned up, but for now it's ok. Key functionality here is
3209 gets cleaned up, but for now it's ok. Key functionality here is
3205 the addition of the persistent storage mechanism, a dict for
3210 the addition of the persistent storage mechanism, a dict for
3206 keeping data across sessions (for now just bookmarks, but more can
3211 keeping data across sessions (for now just bookmarks, but more can
3207 be implemented later).
3212 be implemented later).
3208
3213
3209 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3214 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3210 persistent across sections. Patch by Ville, I modified it
3215 persistent across sections. Patch by Ville, I modified it
3211 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3216 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3212 added a '-l' option to list all bookmarks.
3217 added a '-l' option to list all bookmarks.
3213
3218
3214 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3219 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3215 center for cleanup. Registered with atexit.register(). I moved
3220 center for cleanup. Registered with atexit.register(). I moved
3216 here the old exit_cleanup(). After a patch by Ville.
3221 here the old exit_cleanup(). After a patch by Ville.
3217
3222
3218 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3223 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3219 characters in the hacked shlex_split for python 2.2.
3224 characters in the hacked shlex_split for python 2.2.
3220
3225
3221 * IPython/iplib.py (file_matches): more fixes to filenames with
3226 * IPython/iplib.py (file_matches): more fixes to filenames with
3222 whitespace in them. It's not perfect, but limitations in python's
3227 whitespace in them. It's not perfect, but limitations in python's
3223 readline make it impossible to go further.
3228 readline make it impossible to go further.
3224
3229
3225 2004-06-29 Fernando Perez <fperez@colorado.edu>
3230 2004-06-29 Fernando Perez <fperez@colorado.edu>
3226
3231
3227 * IPython/iplib.py (file_matches): escape whitespace correctly in
3232 * IPython/iplib.py (file_matches): escape whitespace correctly in
3228 filename completions. Bug reported by Ville.
3233 filename completions. Bug reported by Ville.
3229
3234
3230 2004-06-28 Fernando Perez <fperez@colorado.edu>
3235 2004-06-28 Fernando Perez <fperez@colorado.edu>
3231
3236
3232 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3237 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3233 the history file will be called 'history-PROFNAME' (or just
3238 the history file will be called 'history-PROFNAME' (or just
3234 'history' if no profile is loaded). I was getting annoyed at
3239 'history' if no profile is loaded). I was getting annoyed at
3235 getting my Numerical work history clobbered by pysh sessions.
3240 getting my Numerical work history clobbered by pysh sessions.
3236
3241
3237 * IPython/iplib.py (InteractiveShell.__init__): Internal
3242 * IPython/iplib.py (InteractiveShell.__init__): Internal
3238 getoutputerror() function so that we can honor the system_verbose
3243 getoutputerror() function so that we can honor the system_verbose
3239 flag for _all_ system calls. I also added escaping of #
3244 flag for _all_ system calls. I also added escaping of #
3240 characters here to avoid confusing Itpl.
3245 characters here to avoid confusing Itpl.
3241
3246
3242 * IPython/Magic.py (shlex_split): removed call to shell in
3247 * IPython/Magic.py (shlex_split): removed call to shell in
3243 parse_options and replaced it with shlex.split(). The annoying
3248 parse_options and replaced it with shlex.split(). The annoying
3244 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3249 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3245 to backport it from 2.3, with several frail hacks (the shlex
3250 to backport it from 2.3, with several frail hacks (the shlex
3246 module is rather limited in 2.2). Thanks to a suggestion by Ville
3251 module is rather limited in 2.2). Thanks to a suggestion by Ville
3247 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3252 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3248 problem.
3253 problem.
3249
3254
3250 (Magic.magic_system_verbose): new toggle to print the actual
3255 (Magic.magic_system_verbose): new toggle to print the actual
3251 system calls made by ipython. Mainly for debugging purposes.
3256 system calls made by ipython. Mainly for debugging purposes.
3252
3257
3253 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3258 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3254 doesn't support persistence. Reported (and fix suggested) by
3259 doesn't support persistence. Reported (and fix suggested) by
3255 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3260 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3256
3261
3257 2004-06-26 Fernando Perez <fperez@colorado.edu>
3262 2004-06-26 Fernando Perez <fperez@colorado.edu>
3258
3263
3259 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3264 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3260 continue prompts.
3265 continue prompts.
3261
3266
3262 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3267 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3263 function (basically a big docstring) and a few more things here to
3268 function (basically a big docstring) and a few more things here to
3264 speedup startup. pysh.py is now very lightweight. We want because
3269 speedup startup. pysh.py is now very lightweight. We want because
3265 it gets execfile'd, while InterpreterExec gets imported, so
3270 it gets execfile'd, while InterpreterExec gets imported, so
3266 byte-compilation saves time.
3271 byte-compilation saves time.
3267
3272
3268 2004-06-25 Fernando Perez <fperez@colorado.edu>
3273 2004-06-25 Fernando Perez <fperez@colorado.edu>
3269
3274
3270 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3275 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3271 -NUM', which was recently broken.
3276 -NUM', which was recently broken.
3272
3277
3273 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3278 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3274 in multi-line input (but not !!, which doesn't make sense there).
3279 in multi-line input (but not !!, which doesn't make sense there).
3275
3280
3276 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3281 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3277 It's just too useful, and people can turn it off in the less
3282 It's just too useful, and people can turn it off in the less
3278 common cases where it's a problem.
3283 common cases where it's a problem.
3279
3284
3280 2004-06-24 Fernando Perez <fperez@colorado.edu>
3285 2004-06-24 Fernando Perez <fperez@colorado.edu>
3281
3286
3282 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3287 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3283 special syntaxes (like alias calling) is now allied in multi-line
3288 special syntaxes (like alias calling) is now allied in multi-line
3284 input. This is still _very_ experimental, but it's necessary for
3289 input. This is still _very_ experimental, but it's necessary for
3285 efficient shell usage combining python looping syntax with system
3290 efficient shell usage combining python looping syntax with system
3286 calls. For now it's restricted to aliases, I don't think it
3291 calls. For now it's restricted to aliases, I don't think it
3287 really even makes sense to have this for magics.
3292 really even makes sense to have this for magics.
3288
3293
3289 2004-06-23 Fernando Perez <fperez@colorado.edu>
3294 2004-06-23 Fernando Perez <fperez@colorado.edu>
3290
3295
3291 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3296 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3292 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3297 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3293
3298
3294 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3299 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3295 extensions under Windows (after code sent by Gary Bishop). The
3300 extensions under Windows (after code sent by Gary Bishop). The
3296 extensions considered 'executable' are stored in IPython's rc
3301 extensions considered 'executable' are stored in IPython's rc
3297 structure as win_exec_ext.
3302 structure as win_exec_ext.
3298
3303
3299 * IPython/genutils.py (shell): new function, like system() but
3304 * IPython/genutils.py (shell): new function, like system() but
3300 without return value. Very useful for interactive shell work.
3305 without return value. Very useful for interactive shell work.
3301
3306
3302 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3307 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3303 delete aliases.
3308 delete aliases.
3304
3309
3305 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3310 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3306 sure that the alias table doesn't contain python keywords.
3311 sure that the alias table doesn't contain python keywords.
3307
3312
3308 2004-06-21 Fernando Perez <fperez@colorado.edu>
3313 2004-06-21 Fernando Perez <fperez@colorado.edu>
3309
3314
3310 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3315 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3311 non-existent items are found in $PATH. Reported by Thorsten.
3316 non-existent items are found in $PATH. Reported by Thorsten.
3312
3317
3313 2004-06-20 Fernando Perez <fperez@colorado.edu>
3318 2004-06-20 Fernando Perez <fperez@colorado.edu>
3314
3319
3315 * IPython/iplib.py (complete): modified the completer so that the
3320 * IPython/iplib.py (complete): modified the completer so that the
3316 order of priorities can be easily changed at runtime.
3321 order of priorities can be easily changed at runtime.
3317
3322
3318 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3323 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3319 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3324 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3320
3325
3321 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3326 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3322 expand Python variables prepended with $ in all system calls. The
3327 expand Python variables prepended with $ in all system calls. The
3323 same was done to InteractiveShell.handle_shell_escape. Now all
3328 same was done to InteractiveShell.handle_shell_escape. Now all
3324 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3329 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3325 expansion of python variables and expressions according to the
3330 expansion of python variables and expressions according to the
3326 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3331 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3327
3332
3328 Though PEP-215 has been rejected, a similar (but simpler) one
3333 Though PEP-215 has been rejected, a similar (but simpler) one
3329 seems like it will go into Python 2.4, PEP-292 -
3334 seems like it will go into Python 2.4, PEP-292 -
3330 http://www.python.org/peps/pep-0292.html.
3335 http://www.python.org/peps/pep-0292.html.
3331
3336
3332 I'll keep the full syntax of PEP-215, since IPython has since the
3337 I'll keep the full syntax of PEP-215, since IPython has since the
3333 start used Ka-Ping Yee's reference implementation discussed there
3338 start used Ka-Ping Yee's reference implementation discussed there
3334 (Itpl), and I actually like the powerful semantics it offers.
3339 (Itpl), and I actually like the powerful semantics it offers.
3335
3340
3336 In order to access normal shell variables, the $ has to be escaped
3341 In order to access normal shell variables, the $ has to be escaped
3337 via an extra $. For example:
3342 via an extra $. For example:
3338
3343
3339 In [7]: PATH='a python variable'
3344 In [7]: PATH='a python variable'
3340
3345
3341 In [8]: !echo $PATH
3346 In [8]: !echo $PATH
3342 a python variable
3347 a python variable
3343
3348
3344 In [9]: !echo $$PATH
3349 In [9]: !echo $$PATH
3345 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3350 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3346
3351
3347 (Magic.parse_options): escape $ so the shell doesn't evaluate
3352 (Magic.parse_options): escape $ so the shell doesn't evaluate
3348 things prematurely.
3353 things prematurely.
3349
3354
3350 * IPython/iplib.py (InteractiveShell.call_alias): added the
3355 * IPython/iplib.py (InteractiveShell.call_alias): added the
3351 ability for aliases to expand python variables via $.
3356 ability for aliases to expand python variables via $.
3352
3357
3353 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3358 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3354 system, now there's a @rehash/@rehashx pair of magics. These work
3359 system, now there's a @rehash/@rehashx pair of magics. These work
3355 like the csh rehash command, and can be invoked at any time. They
3360 like the csh rehash command, and can be invoked at any time. They
3356 build a table of aliases to everything in the user's $PATH
3361 build a table of aliases to everything in the user's $PATH
3357 (@rehash uses everything, @rehashx is slower but only adds
3362 (@rehash uses everything, @rehashx is slower but only adds
3358 executable files). With this, the pysh.py-based shell profile can
3363 executable files). With this, the pysh.py-based shell profile can
3359 now simply call rehash upon startup, and full access to all
3364 now simply call rehash upon startup, and full access to all
3360 programs in the user's path is obtained.
3365 programs in the user's path is obtained.
3361
3366
3362 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3367 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3363 functionality is now fully in place. I removed the old dynamic
3368 functionality is now fully in place. I removed the old dynamic
3364 code generation based approach, in favor of a much lighter one
3369 code generation based approach, in favor of a much lighter one
3365 based on a simple dict. The advantage is that this allows me to
3370 based on a simple dict. The advantage is that this allows me to
3366 now have thousands of aliases with negligible cost (unthinkable
3371 now have thousands of aliases with negligible cost (unthinkable
3367 with the old system).
3372 with the old system).
3368
3373
3369 2004-06-19 Fernando Perez <fperez@colorado.edu>
3374 2004-06-19 Fernando Perez <fperez@colorado.edu>
3370
3375
3371 * IPython/iplib.py (__init__): extended MagicCompleter class to
3376 * IPython/iplib.py (__init__): extended MagicCompleter class to
3372 also complete (last in priority) on user aliases.
3377 also complete (last in priority) on user aliases.
3373
3378
3374 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3379 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3375 call to eval.
3380 call to eval.
3376 (ItplNS.__init__): Added a new class which functions like Itpl,
3381 (ItplNS.__init__): Added a new class which functions like Itpl,
3377 but allows configuring the namespace for the evaluation to occur
3382 but allows configuring the namespace for the evaluation to occur
3378 in.
3383 in.
3379
3384
3380 2004-06-18 Fernando Perez <fperez@colorado.edu>
3385 2004-06-18 Fernando Perez <fperez@colorado.edu>
3381
3386
3382 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3387 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3383 better message when 'exit' or 'quit' are typed (a common newbie
3388 better message when 'exit' or 'quit' are typed (a common newbie
3384 confusion).
3389 confusion).
3385
3390
3386 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3391 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3387 check for Windows users.
3392 check for Windows users.
3388
3393
3389 * IPython/iplib.py (InteractiveShell.user_setup): removed
3394 * IPython/iplib.py (InteractiveShell.user_setup): removed
3390 disabling of colors for Windows. I'll test at runtime and issue a
3395 disabling of colors for Windows. I'll test at runtime and issue a
3391 warning if Gary's readline isn't found, as to nudge users to
3396 warning if Gary's readline isn't found, as to nudge users to
3392 download it.
3397 download it.
3393
3398
3394 2004-06-16 Fernando Perez <fperez@colorado.edu>
3399 2004-06-16 Fernando Perez <fperez@colorado.edu>
3395
3400
3396 * IPython/genutils.py (Stream.__init__): changed to print errors
3401 * IPython/genutils.py (Stream.__init__): changed to print errors
3397 to sys.stderr. I had a circular dependency here. Now it's
3402 to sys.stderr. I had a circular dependency here. Now it's
3398 possible to run ipython as IDLE's shell (consider this pre-alpha,
3403 possible to run ipython as IDLE's shell (consider this pre-alpha,
3399 since true stdout things end up in the starting terminal instead
3404 since true stdout things end up in the starting terminal instead
3400 of IDLE's out).
3405 of IDLE's out).
3401
3406
3402 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3407 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3403 users who haven't # updated their prompt_in2 definitions. Remove
3408 users who haven't # updated their prompt_in2 definitions. Remove
3404 eventually.
3409 eventually.
3405 (multiple_replace): added credit to original ASPN recipe.
3410 (multiple_replace): added credit to original ASPN recipe.
3406
3411
3407 2004-06-15 Fernando Perez <fperez@colorado.edu>
3412 2004-06-15 Fernando Perez <fperez@colorado.edu>
3408
3413
3409 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3414 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3410 list of auto-defined aliases.
3415 list of auto-defined aliases.
3411
3416
3412 2004-06-13 Fernando Perez <fperez@colorado.edu>
3417 2004-06-13 Fernando Perez <fperez@colorado.edu>
3413
3418
3414 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3419 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3415 install was really requested (so setup.py can be used for other
3420 install was really requested (so setup.py can be used for other
3416 things under Windows).
3421 things under Windows).
3417
3422
3418 2004-06-10 Fernando Perez <fperez@colorado.edu>
3423 2004-06-10 Fernando Perez <fperez@colorado.edu>
3419
3424
3420 * IPython/Logger.py (Logger.create_log): Manually remove any old
3425 * IPython/Logger.py (Logger.create_log): Manually remove any old
3421 backup, since os.remove may fail under Windows. Fixes bug
3426 backup, since os.remove may fail under Windows. Fixes bug
3422 reported by Thorsten.
3427 reported by Thorsten.
3423
3428
3424 2004-06-09 Fernando Perez <fperez@colorado.edu>
3429 2004-06-09 Fernando Perez <fperez@colorado.edu>
3425
3430
3426 * examples/example-embed.py: fixed all references to %n (replaced
3431 * examples/example-embed.py: fixed all references to %n (replaced
3427 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3432 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3428 for all examples and the manual as well.
3433 for all examples and the manual as well.
3429
3434
3430 2004-06-08 Fernando Perez <fperez@colorado.edu>
3435 2004-06-08 Fernando Perez <fperez@colorado.edu>
3431
3436
3432 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3437 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3433 alignment and color management. All 3 prompt subsystems now
3438 alignment and color management. All 3 prompt subsystems now
3434 inherit from BasePrompt.
3439 inherit from BasePrompt.
3435
3440
3436 * tools/release: updates for windows installer build and tag rpms
3441 * tools/release: updates for windows installer build and tag rpms
3437 with python version (since paths are fixed).
3442 with python version (since paths are fixed).
3438
3443
3439 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3444 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3440 which will become eventually obsolete. Also fixed the default
3445 which will become eventually obsolete. Also fixed the default
3441 prompt_in2 to use \D, so at least new users start with the correct
3446 prompt_in2 to use \D, so at least new users start with the correct
3442 defaults.
3447 defaults.
3443 WARNING: Users with existing ipythonrc files will need to apply
3448 WARNING: Users with existing ipythonrc files will need to apply
3444 this fix manually!
3449 this fix manually!
3445
3450
3446 * setup.py: make windows installer (.exe). This is finally the
3451 * setup.py: make windows installer (.exe). This is finally the
3447 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3452 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3448 which I hadn't included because it required Python 2.3 (or recent
3453 which I hadn't included because it required Python 2.3 (or recent
3449 distutils).
3454 distutils).
3450
3455
3451 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3456 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3452 usage of new '\D' escape.
3457 usage of new '\D' escape.
3453
3458
3454 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3459 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3455 lacks os.getuid())
3460 lacks os.getuid())
3456 (CachedOutput.set_colors): Added the ability to turn coloring
3461 (CachedOutput.set_colors): Added the ability to turn coloring
3457 on/off with @colors even for manually defined prompt colors. It
3462 on/off with @colors even for manually defined prompt colors. It
3458 uses a nasty global, but it works safely and via the generic color
3463 uses a nasty global, but it works safely and via the generic color
3459 handling mechanism.
3464 handling mechanism.
3460 (Prompt2.__init__): Introduced new escape '\D' for continuation
3465 (Prompt2.__init__): Introduced new escape '\D' for continuation
3461 prompts. It represents the counter ('\#') as dots.
3466 prompts. It represents the counter ('\#') as dots.
3462 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3467 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3463 need to update their ipythonrc files and replace '%n' with '\D' in
3468 need to update their ipythonrc files and replace '%n' with '\D' in
3464 their prompt_in2 settings everywhere. Sorry, but there's
3469 their prompt_in2 settings everywhere. Sorry, but there's
3465 otherwise no clean way to get all prompts to properly align. The
3470 otherwise no clean way to get all prompts to properly align. The
3466 ipythonrc shipped with IPython has been updated.
3471 ipythonrc shipped with IPython has been updated.
3467
3472
3468 2004-06-07 Fernando Perez <fperez@colorado.edu>
3473 2004-06-07 Fernando Perez <fperez@colorado.edu>
3469
3474
3470 * setup.py (isfile): Pass local_icons option to latex2html, so the
3475 * setup.py (isfile): Pass local_icons option to latex2html, so the
3471 resulting HTML file is self-contained. Thanks to
3476 resulting HTML file is self-contained. Thanks to
3472 dryice-AT-liu.com.cn for the tip.
3477 dryice-AT-liu.com.cn for the tip.
3473
3478
3474 * pysh.py: I created a new profile 'shell', which implements a
3479 * pysh.py: I created a new profile 'shell', which implements a
3475 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3480 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3476 system shell, nor will it become one anytime soon. It's mainly
3481 system shell, nor will it become one anytime soon. It's mainly
3477 meant to illustrate the use of the new flexible bash-like prompts.
3482 meant to illustrate the use of the new flexible bash-like prompts.
3478 I guess it could be used by hardy souls for true shell management,
3483 I guess it could be used by hardy souls for true shell management,
3479 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3484 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3480 profile. This uses the InterpreterExec extension provided by
3485 profile. This uses the InterpreterExec extension provided by
3481 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3486 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3482
3487
3483 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3488 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3484 auto-align itself with the length of the previous input prompt
3489 auto-align itself with the length of the previous input prompt
3485 (taking into account the invisible color escapes).
3490 (taking into account the invisible color escapes).
3486 (CachedOutput.__init__): Large restructuring of this class. Now
3491 (CachedOutput.__init__): Large restructuring of this class. Now
3487 all three prompts (primary1, primary2, output) are proper objects,
3492 all three prompts (primary1, primary2, output) are proper objects,
3488 managed by the 'parent' CachedOutput class. The code is still a
3493 managed by the 'parent' CachedOutput class. The code is still a
3489 bit hackish (all prompts share state via a pointer to the cache),
3494 bit hackish (all prompts share state via a pointer to the cache),
3490 but it's overall far cleaner than before.
3495 but it's overall far cleaner than before.
3491
3496
3492 * IPython/genutils.py (getoutputerror): modified to add verbose,
3497 * IPython/genutils.py (getoutputerror): modified to add verbose,
3493 debug and header options. This makes the interface of all getout*
3498 debug and header options. This makes the interface of all getout*
3494 functions uniform.
3499 functions uniform.
3495 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3500 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3496
3501
3497 * IPython/Magic.py (Magic.default_option): added a function to
3502 * IPython/Magic.py (Magic.default_option): added a function to
3498 allow registering default options for any magic command. This
3503 allow registering default options for any magic command. This
3499 makes it easy to have profiles which customize the magics globally
3504 makes it easy to have profiles which customize the magics globally
3500 for a certain use. The values set through this function are
3505 for a certain use. The values set through this function are
3501 picked up by the parse_options() method, which all magics should
3506 picked up by the parse_options() method, which all magics should
3502 use to parse their options.
3507 use to parse their options.
3503
3508
3504 * IPython/genutils.py (warn): modified the warnings framework to
3509 * IPython/genutils.py (warn): modified the warnings framework to
3505 use the Term I/O class. I'm trying to slowly unify all of
3510 use the Term I/O class. I'm trying to slowly unify all of
3506 IPython's I/O operations to pass through Term.
3511 IPython's I/O operations to pass through Term.
3507
3512
3508 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3513 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3509 the secondary prompt to correctly match the length of the primary
3514 the secondary prompt to correctly match the length of the primary
3510 one for any prompt. Now multi-line code will properly line up
3515 one for any prompt. Now multi-line code will properly line up
3511 even for path dependent prompts, such as the new ones available
3516 even for path dependent prompts, such as the new ones available
3512 via the prompt_specials.
3517 via the prompt_specials.
3513
3518
3514 2004-06-06 Fernando Perez <fperez@colorado.edu>
3519 2004-06-06 Fernando Perez <fperez@colorado.edu>
3515
3520
3516 * IPython/Prompts.py (prompt_specials): Added the ability to have
3521 * IPython/Prompts.py (prompt_specials): Added the ability to have
3517 bash-like special sequences in the prompts, which get
3522 bash-like special sequences in the prompts, which get
3518 automatically expanded. Things like hostname, current working
3523 automatically expanded. Things like hostname, current working
3519 directory and username are implemented already, but it's easy to
3524 directory and username are implemented already, but it's easy to
3520 add more in the future. Thanks to a patch by W.J. van der Laan
3525 add more in the future. Thanks to a patch by W.J. van der Laan
3521 <gnufnork-AT-hetdigitalegat.nl>
3526 <gnufnork-AT-hetdigitalegat.nl>
3522 (prompt_specials): Added color support for prompt strings, so
3527 (prompt_specials): Added color support for prompt strings, so
3523 users can define arbitrary color setups for their prompts.
3528 users can define arbitrary color setups for their prompts.
3524
3529
3525 2004-06-05 Fernando Perez <fperez@colorado.edu>
3530 2004-06-05 Fernando Perez <fperez@colorado.edu>
3526
3531
3527 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3532 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3528 code to load Gary Bishop's readline and configure it
3533 code to load Gary Bishop's readline and configure it
3529 automatically. Thanks to Gary for help on this.
3534 automatically. Thanks to Gary for help on this.
3530
3535
3531 2004-06-01 Fernando Perez <fperez@colorado.edu>
3536 2004-06-01 Fernando Perez <fperez@colorado.edu>
3532
3537
3533 * IPython/Logger.py (Logger.create_log): fix bug for logging
3538 * IPython/Logger.py (Logger.create_log): fix bug for logging
3534 with no filename (previous fix was incomplete).
3539 with no filename (previous fix was incomplete).
3535
3540
3536 2004-05-25 Fernando Perez <fperez@colorado.edu>
3541 2004-05-25 Fernando Perez <fperez@colorado.edu>
3537
3542
3538 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3543 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3539 parens would get passed to the shell.
3544 parens would get passed to the shell.
3540
3545
3541 2004-05-20 Fernando Perez <fperez@colorado.edu>
3546 2004-05-20 Fernando Perez <fperez@colorado.edu>
3542
3547
3543 * IPython/Magic.py (Magic.magic_prun): changed default profile
3548 * IPython/Magic.py (Magic.magic_prun): changed default profile
3544 sort order to 'time' (the more common profiling need).
3549 sort order to 'time' (the more common profiling need).
3545
3550
3546 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3551 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3547 so that source code shown is guaranteed in sync with the file on
3552 so that source code shown is guaranteed in sync with the file on
3548 disk (also changed in psource). Similar fix to the one for
3553 disk (also changed in psource). Similar fix to the one for
3549 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3554 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3550 <yann.ledu-AT-noos.fr>.
3555 <yann.ledu-AT-noos.fr>.
3551
3556
3552 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3557 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3553 with a single option would not be correctly parsed. Closes
3558 with a single option would not be correctly parsed. Closes
3554 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3559 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3555 introduced in 0.6.0 (on 2004-05-06).
3560 introduced in 0.6.0 (on 2004-05-06).
3556
3561
3557 2004-05-13 *** Released version 0.6.0
3562 2004-05-13 *** Released version 0.6.0
3558
3563
3559 2004-05-13 Fernando Perez <fperez@colorado.edu>
3564 2004-05-13 Fernando Perez <fperez@colorado.edu>
3560
3565
3561 * debian/: Added debian/ directory to CVS, so that debian support
3566 * debian/: Added debian/ directory to CVS, so that debian support
3562 is publicly accessible. The debian package is maintained by Jack
3567 is publicly accessible. The debian package is maintained by Jack
3563 Moffit <jack-AT-xiph.org>.
3568 Moffit <jack-AT-xiph.org>.
3564
3569
3565 * Documentation: included the notes about an ipython-based system
3570 * Documentation: included the notes about an ipython-based system
3566 shell (the hypothetical 'pysh') into the new_design.pdf document,
3571 shell (the hypothetical 'pysh') into the new_design.pdf document,
3567 so that these ideas get distributed to users along with the
3572 so that these ideas get distributed to users along with the
3568 official documentation.
3573 official documentation.
3569
3574
3570 2004-05-10 Fernando Perez <fperez@colorado.edu>
3575 2004-05-10 Fernando Perez <fperez@colorado.edu>
3571
3576
3572 * IPython/Logger.py (Logger.create_log): fix recently introduced
3577 * IPython/Logger.py (Logger.create_log): fix recently introduced
3573 bug (misindented line) where logstart would fail when not given an
3578 bug (misindented line) where logstart would fail when not given an
3574 explicit filename.
3579 explicit filename.
3575
3580
3576 2004-05-09 Fernando Perez <fperez@colorado.edu>
3581 2004-05-09 Fernando Perez <fperez@colorado.edu>
3577
3582
3578 * IPython/Magic.py (Magic.parse_options): skip system call when
3583 * IPython/Magic.py (Magic.parse_options): skip system call when
3579 there are no options to look for. Faster, cleaner for the common
3584 there are no options to look for. Faster, cleaner for the common
3580 case.
3585 case.
3581
3586
3582 * Documentation: many updates to the manual: describing Windows
3587 * Documentation: many updates to the manual: describing Windows
3583 support better, Gnuplot updates, credits, misc small stuff. Also
3588 support better, Gnuplot updates, credits, misc small stuff. Also
3584 updated the new_design doc a bit.
3589 updated the new_design doc a bit.
3585
3590
3586 2004-05-06 *** Released version 0.6.0.rc1
3591 2004-05-06 *** Released version 0.6.0.rc1
3587
3592
3588 2004-05-06 Fernando Perez <fperez@colorado.edu>
3593 2004-05-06 Fernando Perez <fperez@colorado.edu>
3589
3594
3590 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3595 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3591 operations to use the vastly more efficient list/''.join() method.
3596 operations to use the vastly more efficient list/''.join() method.
3592 (FormattedTB.text): Fix
3597 (FormattedTB.text): Fix
3593 http://www.scipy.net/roundup/ipython/issue12 - exception source
3598 http://www.scipy.net/roundup/ipython/issue12 - exception source
3594 extract not updated after reload. Thanks to Mike Salib
3599 extract not updated after reload. Thanks to Mike Salib
3595 <msalib-AT-mit.edu> for pinning the source of the problem.
3600 <msalib-AT-mit.edu> for pinning the source of the problem.
3596 Fortunately, the solution works inside ipython and doesn't require
3601 Fortunately, the solution works inside ipython and doesn't require
3597 any changes to python proper.
3602 any changes to python proper.
3598
3603
3599 * IPython/Magic.py (Magic.parse_options): Improved to process the
3604 * IPython/Magic.py (Magic.parse_options): Improved to process the
3600 argument list as a true shell would (by actually using the
3605 argument list as a true shell would (by actually using the
3601 underlying system shell). This way, all @magics automatically get
3606 underlying system shell). This way, all @magics automatically get
3602 shell expansion for variables. Thanks to a comment by Alex
3607 shell expansion for variables. Thanks to a comment by Alex
3603 Schmolck.
3608 Schmolck.
3604
3609
3605 2004-04-04 Fernando Perez <fperez@colorado.edu>
3610 2004-04-04 Fernando Perez <fperez@colorado.edu>
3606
3611
3607 * IPython/iplib.py (InteractiveShell.interact): Added a special
3612 * IPython/iplib.py (InteractiveShell.interact): Added a special
3608 trap for a debugger quit exception, which is basically impossible
3613 trap for a debugger quit exception, which is basically impossible
3609 to handle by normal mechanisms, given what pdb does to the stack.
3614 to handle by normal mechanisms, given what pdb does to the stack.
3610 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3615 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3611
3616
3612 2004-04-03 Fernando Perez <fperez@colorado.edu>
3617 2004-04-03 Fernando Perez <fperez@colorado.edu>
3613
3618
3614 * IPython/genutils.py (Term): Standardized the names of the Term
3619 * IPython/genutils.py (Term): Standardized the names of the Term
3615 class streams to cin/cout/cerr, following C++ naming conventions
3620 class streams to cin/cout/cerr, following C++ naming conventions
3616 (I can't use in/out/err because 'in' is not a valid attribute
3621 (I can't use in/out/err because 'in' is not a valid attribute
3617 name).
3622 name).
3618
3623
3619 * IPython/iplib.py (InteractiveShell.interact): don't increment
3624 * IPython/iplib.py (InteractiveShell.interact): don't increment
3620 the prompt if there's no user input. By Daniel 'Dang' Griffith
3625 the prompt if there's no user input. By Daniel 'Dang' Griffith
3621 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3626 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3622 Francois Pinard.
3627 Francois Pinard.
3623
3628
3624 2004-04-02 Fernando Perez <fperez@colorado.edu>
3629 2004-04-02 Fernando Perez <fperez@colorado.edu>
3625
3630
3626 * IPython/genutils.py (Stream.__init__): Modified to survive at
3631 * IPython/genutils.py (Stream.__init__): Modified to survive at
3627 least importing in contexts where stdin/out/err aren't true file
3632 least importing in contexts where stdin/out/err aren't true file
3628 objects, such as PyCrust (they lack fileno() and mode). However,
3633 objects, such as PyCrust (they lack fileno() and mode). However,
3629 the recovery facilities which rely on these things existing will
3634 the recovery facilities which rely on these things existing will
3630 not work.
3635 not work.
3631
3636
3632 2004-04-01 Fernando Perez <fperez@colorado.edu>
3637 2004-04-01 Fernando Perez <fperez@colorado.edu>
3633
3638
3634 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3639 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3635 use the new getoutputerror() function, so it properly
3640 use the new getoutputerror() function, so it properly
3636 distinguishes stdout/err.
3641 distinguishes stdout/err.
3637
3642
3638 * IPython/genutils.py (getoutputerror): added a function to
3643 * IPython/genutils.py (getoutputerror): added a function to
3639 capture separately the standard output and error of a command.
3644 capture separately the standard output and error of a command.
3640 After a comment from dang on the mailing lists. This code is
3645 After a comment from dang on the mailing lists. This code is
3641 basically a modified version of commands.getstatusoutput(), from
3646 basically a modified version of commands.getstatusoutput(), from
3642 the standard library.
3647 the standard library.
3643
3648
3644 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3649 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3645 '!!' as a special syntax (shorthand) to access @sx.
3650 '!!' as a special syntax (shorthand) to access @sx.
3646
3651
3647 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3652 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3648 command and return its output as a list split on '\n'.
3653 command and return its output as a list split on '\n'.
3649
3654
3650 2004-03-31 Fernando Perez <fperez@colorado.edu>
3655 2004-03-31 Fernando Perez <fperez@colorado.edu>
3651
3656
3652 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3657 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3653 method to dictionaries used as FakeModule instances if they lack
3658 method to dictionaries used as FakeModule instances if they lack
3654 it. At least pydoc in python2.3 breaks for runtime-defined
3659 it. At least pydoc in python2.3 breaks for runtime-defined
3655 functions without this hack. At some point I need to _really_
3660 functions without this hack. At some point I need to _really_
3656 understand what FakeModule is doing, because it's a gross hack.
3661 understand what FakeModule is doing, because it's a gross hack.
3657 But it solves Arnd's problem for now...
3662 But it solves Arnd's problem for now...
3658
3663
3659 2004-02-27 Fernando Perez <fperez@colorado.edu>
3664 2004-02-27 Fernando Perez <fperez@colorado.edu>
3660
3665
3661 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3666 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3662 mode would behave erratically. Also increased the number of
3667 mode would behave erratically. Also increased the number of
3663 possible logs in rotate mod to 999. Thanks to Rod Holland
3668 possible logs in rotate mod to 999. Thanks to Rod Holland
3664 <rhh@StructureLABS.com> for the report and fixes.
3669 <rhh@StructureLABS.com> for the report and fixes.
3665
3670
3666 2004-02-26 Fernando Perez <fperez@colorado.edu>
3671 2004-02-26 Fernando Perez <fperez@colorado.edu>
3667
3672
3668 * IPython/genutils.py (page): Check that the curses module really
3673 * IPython/genutils.py (page): Check that the curses module really
3669 has the initscr attribute before trying to use it. For some
3674 has the initscr attribute before trying to use it. For some
3670 reason, the Solaris curses module is missing this. I think this
3675 reason, the Solaris curses module is missing this. I think this
3671 should be considered a Solaris python bug, but I'm not sure.
3676 should be considered a Solaris python bug, but I'm not sure.
3672
3677
3673 2004-01-17 Fernando Perez <fperez@colorado.edu>
3678 2004-01-17 Fernando Perez <fperez@colorado.edu>
3674
3679
3675 * IPython/genutils.py (Stream.__init__): Changes to try to make
3680 * IPython/genutils.py (Stream.__init__): Changes to try to make
3676 ipython robust against stdin/out/err being closed by the user.
3681 ipython robust against stdin/out/err being closed by the user.
3677 This is 'user error' (and blocks a normal python session, at least
3682 This is 'user error' (and blocks a normal python session, at least
3678 the stdout case). However, Ipython should be able to survive such
3683 the stdout case). However, Ipython should be able to survive such
3679 instances of abuse as gracefully as possible. To simplify the
3684 instances of abuse as gracefully as possible. To simplify the
3680 coding and maintain compatibility with Gary Bishop's Term
3685 coding and maintain compatibility with Gary Bishop's Term
3681 contributions, I've made use of classmethods for this. I think
3686 contributions, I've made use of classmethods for this. I think
3682 this introduces a dependency on python 2.2.
3687 this introduces a dependency on python 2.2.
3683
3688
3684 2004-01-13 Fernando Perez <fperez@colorado.edu>
3689 2004-01-13 Fernando Perez <fperez@colorado.edu>
3685
3690
3686 * IPython/numutils.py (exp_safe): simplified the code a bit and
3691 * IPython/numutils.py (exp_safe): simplified the code a bit and
3687 removed the need for importing the kinds module altogether.
3692 removed the need for importing the kinds module altogether.
3688
3693
3689 2004-01-06 Fernando Perez <fperez@colorado.edu>
3694 2004-01-06 Fernando Perez <fperez@colorado.edu>
3690
3695
3691 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3696 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3692 a magic function instead, after some community feedback. No
3697 a magic function instead, after some community feedback. No
3693 special syntax will exist for it, but its name is deliberately
3698 special syntax will exist for it, but its name is deliberately
3694 very short.
3699 very short.
3695
3700
3696 2003-12-20 Fernando Perez <fperez@colorado.edu>
3701 2003-12-20 Fernando Perez <fperez@colorado.edu>
3697
3702
3698 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3703 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3699 new functionality, to automagically assign the result of a shell
3704 new functionality, to automagically assign the result of a shell
3700 command to a variable. I'll solicit some community feedback on
3705 command to a variable. I'll solicit some community feedback on
3701 this before making it permanent.
3706 this before making it permanent.
3702
3707
3703 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3708 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3704 requested about callables for which inspect couldn't obtain a
3709 requested about callables for which inspect couldn't obtain a
3705 proper argspec. Thanks to a crash report sent by Etienne
3710 proper argspec. Thanks to a crash report sent by Etienne
3706 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3711 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3707
3712
3708 2003-12-09 Fernando Perez <fperez@colorado.edu>
3713 2003-12-09 Fernando Perez <fperez@colorado.edu>
3709
3714
3710 * IPython/genutils.py (page): patch for the pager to work across
3715 * IPython/genutils.py (page): patch for the pager to work across
3711 various versions of Windows. By Gary Bishop.
3716 various versions of Windows. By Gary Bishop.
3712
3717
3713 2003-12-04 Fernando Perez <fperez@colorado.edu>
3718 2003-12-04 Fernando Perez <fperez@colorado.edu>
3714
3719
3715 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3720 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3716 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3721 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3717 While I tested this and it looks ok, there may still be corner
3722 While I tested this and it looks ok, there may still be corner
3718 cases I've missed.
3723 cases I've missed.
3719
3724
3720 2003-12-01 Fernando Perez <fperez@colorado.edu>
3725 2003-12-01 Fernando Perez <fperez@colorado.edu>
3721
3726
3722 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3727 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3723 where a line like 'p,q=1,2' would fail because the automagic
3728 where a line like 'p,q=1,2' would fail because the automagic
3724 system would be triggered for @p.
3729 system would be triggered for @p.
3725
3730
3726 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3731 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3727 cleanups, code unmodified.
3732 cleanups, code unmodified.
3728
3733
3729 * IPython/genutils.py (Term): added a class for IPython to handle
3734 * IPython/genutils.py (Term): added a class for IPython to handle
3730 output. In most cases it will just be a proxy for stdout/err, but
3735 output. In most cases it will just be a proxy for stdout/err, but
3731 having this allows modifications to be made for some platforms,
3736 having this allows modifications to be made for some platforms,
3732 such as handling color escapes under Windows. All of this code
3737 such as handling color escapes under Windows. All of this code
3733 was contributed by Gary Bishop, with minor modifications by me.
3738 was contributed by Gary Bishop, with minor modifications by me.
3734 The actual changes affect many files.
3739 The actual changes affect many files.
3735
3740
3736 2003-11-30 Fernando Perez <fperez@colorado.edu>
3741 2003-11-30 Fernando Perez <fperez@colorado.edu>
3737
3742
3738 * IPython/iplib.py (file_matches): new completion code, courtesy
3743 * IPython/iplib.py (file_matches): new completion code, courtesy
3739 of Jeff Collins. This enables filename completion again under
3744 of Jeff Collins. This enables filename completion again under
3740 python 2.3, which disabled it at the C level.
3745 python 2.3, which disabled it at the C level.
3741
3746
3742 2003-11-11 Fernando Perez <fperez@colorado.edu>
3747 2003-11-11 Fernando Perez <fperez@colorado.edu>
3743
3748
3744 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3749 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3745 for Numeric.array(map(...)), but often convenient.
3750 for Numeric.array(map(...)), but often convenient.
3746
3751
3747 2003-11-05 Fernando Perez <fperez@colorado.edu>
3752 2003-11-05 Fernando Perez <fperez@colorado.edu>
3748
3753
3749 * IPython/numutils.py (frange): Changed a call from int() to
3754 * IPython/numutils.py (frange): Changed a call from int() to
3750 int(round()) to prevent a problem reported with arange() in the
3755 int(round()) to prevent a problem reported with arange() in the
3751 numpy list.
3756 numpy list.
3752
3757
3753 2003-10-06 Fernando Perez <fperez@colorado.edu>
3758 2003-10-06 Fernando Perez <fperez@colorado.edu>
3754
3759
3755 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3760 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3756 prevent crashes if sys lacks an argv attribute (it happens with
3761 prevent crashes if sys lacks an argv attribute (it happens with
3757 embedded interpreters which build a bare-bones sys module).
3762 embedded interpreters which build a bare-bones sys module).
3758 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3763 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3759
3764
3760 2003-09-24 Fernando Perez <fperez@colorado.edu>
3765 2003-09-24 Fernando Perez <fperez@colorado.edu>
3761
3766
3762 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3767 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3763 to protect against poorly written user objects where __getattr__
3768 to protect against poorly written user objects where __getattr__
3764 raises exceptions other than AttributeError. Thanks to a bug
3769 raises exceptions other than AttributeError. Thanks to a bug
3765 report by Oliver Sander <osander-AT-gmx.de>.
3770 report by Oliver Sander <osander-AT-gmx.de>.
3766
3771
3767 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3772 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3768 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3773 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3769
3774
3770 2003-09-09 Fernando Perez <fperez@colorado.edu>
3775 2003-09-09 Fernando Perez <fperez@colorado.edu>
3771
3776
3772 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3777 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3773 unpacking a list whith a callable as first element would
3778 unpacking a list whith a callable as first element would
3774 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3779 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3775 Collins.
3780 Collins.
3776
3781
3777 2003-08-25 *** Released version 0.5.0
3782 2003-08-25 *** Released version 0.5.0
3778
3783
3779 2003-08-22 Fernando Perez <fperez@colorado.edu>
3784 2003-08-22 Fernando Perez <fperez@colorado.edu>
3780
3785
3781 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3786 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3782 improperly defined user exceptions. Thanks to feedback from Mark
3787 improperly defined user exceptions. Thanks to feedback from Mark
3783 Russell <mrussell-AT-verio.net>.
3788 Russell <mrussell-AT-verio.net>.
3784
3789
3785 2003-08-20 Fernando Perez <fperez@colorado.edu>
3790 2003-08-20 Fernando Perez <fperez@colorado.edu>
3786
3791
3787 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3792 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3788 printing so that it would print multi-line string forms starting
3793 printing so that it would print multi-line string forms starting
3789 with a new line. This way the formatting is better respected for
3794 with a new line. This way the formatting is better respected for
3790 objects which work hard to make nice string forms.
3795 objects which work hard to make nice string forms.
3791
3796
3792 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3797 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3793 autocall would overtake data access for objects with both
3798 autocall would overtake data access for objects with both
3794 __getitem__ and __call__.
3799 __getitem__ and __call__.
3795
3800
3796 2003-08-19 *** Released version 0.5.0-rc1
3801 2003-08-19 *** Released version 0.5.0-rc1
3797
3802
3798 2003-08-19 Fernando Perez <fperez@colorado.edu>
3803 2003-08-19 Fernando Perez <fperez@colorado.edu>
3799
3804
3800 * IPython/deep_reload.py (load_tail): single tiny change here
3805 * IPython/deep_reload.py (load_tail): single tiny change here
3801 seems to fix the long-standing bug of dreload() failing to work
3806 seems to fix the long-standing bug of dreload() failing to work
3802 for dotted names. But this module is pretty tricky, so I may have
3807 for dotted names. But this module is pretty tricky, so I may have
3803 missed some subtlety. Needs more testing!.
3808 missed some subtlety. Needs more testing!.
3804
3809
3805 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3810 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3806 exceptions which have badly implemented __str__ methods.
3811 exceptions which have badly implemented __str__ methods.
3807 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3812 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3808 which I've been getting reports about from Python 2.3 users. I
3813 which I've been getting reports about from Python 2.3 users. I
3809 wish I had a simple test case to reproduce the problem, so I could
3814 wish I had a simple test case to reproduce the problem, so I could
3810 either write a cleaner workaround or file a bug report if
3815 either write a cleaner workaround or file a bug report if
3811 necessary.
3816 necessary.
3812
3817
3813 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3818 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3814 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3819 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3815 a bug report by Tjabo Kloppenburg.
3820 a bug report by Tjabo Kloppenburg.
3816
3821
3817 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3822 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3818 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3823 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3819 seems rather unstable. Thanks to a bug report by Tjabo
3824 seems rather unstable. Thanks to a bug report by Tjabo
3820 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3825 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3821
3826
3822 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3827 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3823 this out soon because of the critical fixes in the inner loop for
3828 this out soon because of the critical fixes in the inner loop for
3824 generators.
3829 generators.
3825
3830
3826 * IPython/Magic.py (Magic.getargspec): removed. This (and
3831 * IPython/Magic.py (Magic.getargspec): removed. This (and
3827 _get_def) have been obsoleted by OInspect for a long time, I
3832 _get_def) have been obsoleted by OInspect for a long time, I
3828 hadn't noticed that they were dead code.
3833 hadn't noticed that they were dead code.
3829 (Magic._ofind): restored _ofind functionality for a few literals
3834 (Magic._ofind): restored _ofind functionality for a few literals
3830 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3835 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3831 for things like "hello".capitalize?, since that would require a
3836 for things like "hello".capitalize?, since that would require a
3832 potentially dangerous eval() again.
3837 potentially dangerous eval() again.
3833
3838
3834 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3839 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3835 logic a bit more to clean up the escapes handling and minimize the
3840 logic a bit more to clean up the escapes handling and minimize the
3836 use of _ofind to only necessary cases. The interactive 'feel' of
3841 use of _ofind to only necessary cases. The interactive 'feel' of
3837 IPython should have improved quite a bit with the changes in
3842 IPython should have improved quite a bit with the changes in
3838 _prefilter and _ofind (besides being far safer than before).
3843 _prefilter and _ofind (besides being far safer than before).
3839
3844
3840 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3845 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3841 obscure, never reported). Edit would fail to find the object to
3846 obscure, never reported). Edit would fail to find the object to
3842 edit under some circumstances.
3847 edit under some circumstances.
3843 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3848 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3844 which were causing double-calling of generators. Those eval calls
3849 which were causing double-calling of generators. Those eval calls
3845 were _very_ dangerous, since code with side effects could be
3850 were _very_ dangerous, since code with side effects could be
3846 triggered. As they say, 'eval is evil'... These were the
3851 triggered. As they say, 'eval is evil'... These were the
3847 nastiest evals in IPython. Besides, _ofind is now far simpler,
3852 nastiest evals in IPython. Besides, _ofind is now far simpler,
3848 and it should also be quite a bit faster. Its use of inspect is
3853 and it should also be quite a bit faster. Its use of inspect is
3849 also safer, so perhaps some of the inspect-related crashes I've
3854 also safer, so perhaps some of the inspect-related crashes I've
3850 seen lately with Python 2.3 might be taken care of. That will
3855 seen lately with Python 2.3 might be taken care of. That will
3851 need more testing.
3856 need more testing.
3852
3857
3853 2003-08-17 Fernando Perez <fperez@colorado.edu>
3858 2003-08-17 Fernando Perez <fperez@colorado.edu>
3854
3859
3855 * IPython/iplib.py (InteractiveShell._prefilter): significant
3860 * IPython/iplib.py (InteractiveShell._prefilter): significant
3856 simplifications to the logic for handling user escapes. Faster
3861 simplifications to the logic for handling user escapes. Faster
3857 and simpler code.
3862 and simpler code.
3858
3863
3859 2003-08-14 Fernando Perez <fperez@colorado.edu>
3864 2003-08-14 Fernando Perez <fperez@colorado.edu>
3860
3865
3861 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3866 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3862 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3867 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3863 but it should be quite a bit faster. And the recursive version
3868 but it should be quite a bit faster. And the recursive version
3864 generated O(log N) intermediate storage for all rank>1 arrays,
3869 generated O(log N) intermediate storage for all rank>1 arrays,
3865 even if they were contiguous.
3870 even if they were contiguous.
3866 (l1norm): Added this function.
3871 (l1norm): Added this function.
3867 (norm): Added this function for arbitrary norms (including
3872 (norm): Added this function for arbitrary norms (including
3868 l-infinity). l1 and l2 are still special cases for convenience
3873 l-infinity). l1 and l2 are still special cases for convenience
3869 and speed.
3874 and speed.
3870
3875
3871 2003-08-03 Fernando Perez <fperez@colorado.edu>
3876 2003-08-03 Fernando Perez <fperez@colorado.edu>
3872
3877
3873 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3878 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3874 exceptions, which now raise PendingDeprecationWarnings in Python
3879 exceptions, which now raise PendingDeprecationWarnings in Python
3875 2.3. There were some in Magic and some in Gnuplot2.
3880 2.3. There were some in Magic and some in Gnuplot2.
3876
3881
3877 2003-06-30 Fernando Perez <fperez@colorado.edu>
3882 2003-06-30 Fernando Perez <fperez@colorado.edu>
3878
3883
3879 * IPython/genutils.py (page): modified to call curses only for
3884 * IPython/genutils.py (page): modified to call curses only for
3880 terminals where TERM=='xterm'. After problems under many other
3885 terminals where TERM=='xterm'. After problems under many other
3881 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3886 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3882
3887
3883 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3888 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3884 would be triggered when readline was absent. This was just an old
3889 would be triggered when readline was absent. This was just an old
3885 debugging statement I'd forgotten to take out.
3890 debugging statement I'd forgotten to take out.
3886
3891
3887 2003-06-20 Fernando Perez <fperez@colorado.edu>
3892 2003-06-20 Fernando Perez <fperez@colorado.edu>
3888
3893
3889 * IPython/genutils.py (clock): modified to return only user time
3894 * IPython/genutils.py (clock): modified to return only user time
3890 (not counting system time), after a discussion on scipy. While
3895 (not counting system time), after a discussion on scipy. While
3891 system time may be a useful quantity occasionally, it may much
3896 system time may be a useful quantity occasionally, it may much
3892 more easily be skewed by occasional swapping or other similar
3897 more easily be skewed by occasional swapping or other similar
3893 activity.
3898 activity.
3894
3899
3895 2003-06-05 Fernando Perez <fperez@colorado.edu>
3900 2003-06-05 Fernando Perez <fperez@colorado.edu>
3896
3901
3897 * IPython/numutils.py (identity): new function, for building
3902 * IPython/numutils.py (identity): new function, for building
3898 arbitrary rank Kronecker deltas (mostly backwards compatible with
3903 arbitrary rank Kronecker deltas (mostly backwards compatible with
3899 Numeric.identity)
3904 Numeric.identity)
3900
3905
3901 2003-06-03 Fernando Perez <fperez@colorado.edu>
3906 2003-06-03 Fernando Perez <fperez@colorado.edu>
3902
3907
3903 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3908 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3904 arguments passed to magics with spaces, to allow trailing '\' to
3909 arguments passed to magics with spaces, to allow trailing '\' to
3905 work normally (mainly for Windows users).
3910 work normally (mainly for Windows users).
3906
3911
3907 2003-05-29 Fernando Perez <fperez@colorado.edu>
3912 2003-05-29 Fernando Perez <fperez@colorado.edu>
3908
3913
3909 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3914 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3910 instead of pydoc.help. This fixes a bizarre behavior where
3915 instead of pydoc.help. This fixes a bizarre behavior where
3911 printing '%s' % locals() would trigger the help system. Now
3916 printing '%s' % locals() would trigger the help system. Now
3912 ipython behaves like normal python does.
3917 ipython behaves like normal python does.
3913
3918
3914 Note that if one does 'from pydoc import help', the bizarre
3919 Note that if one does 'from pydoc import help', the bizarre
3915 behavior returns, but this will also happen in normal python, so
3920 behavior returns, but this will also happen in normal python, so
3916 it's not an ipython bug anymore (it has to do with how pydoc.help
3921 it's not an ipython bug anymore (it has to do with how pydoc.help
3917 is implemented).
3922 is implemented).
3918
3923
3919 2003-05-22 Fernando Perez <fperez@colorado.edu>
3924 2003-05-22 Fernando Perez <fperez@colorado.edu>
3920
3925
3921 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3926 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3922 return [] instead of None when nothing matches, also match to end
3927 return [] instead of None when nothing matches, also match to end
3923 of line. Patch by Gary Bishop.
3928 of line. Patch by Gary Bishop.
3924
3929
3925 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3930 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3926 protection as before, for files passed on the command line. This
3931 protection as before, for files passed on the command line. This
3927 prevents the CrashHandler from kicking in if user files call into
3932 prevents the CrashHandler from kicking in if user files call into
3928 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3933 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3929 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3934 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3930
3935
3931 2003-05-20 *** Released version 0.4.0
3936 2003-05-20 *** Released version 0.4.0
3932
3937
3933 2003-05-20 Fernando Perez <fperez@colorado.edu>
3938 2003-05-20 Fernando Perez <fperez@colorado.edu>
3934
3939
3935 * setup.py: added support for manpages. It's a bit hackish b/c of
3940 * setup.py: added support for manpages. It's a bit hackish b/c of
3936 a bug in the way the bdist_rpm distutils target handles gzipped
3941 a bug in the way the bdist_rpm distutils target handles gzipped
3937 manpages, but it works. After a patch by Jack.
3942 manpages, but it works. After a patch by Jack.
3938
3943
3939 2003-05-19 Fernando Perez <fperez@colorado.edu>
3944 2003-05-19 Fernando Perez <fperez@colorado.edu>
3940
3945
3941 * IPython/numutils.py: added a mockup of the kinds module, since
3946 * IPython/numutils.py: added a mockup of the kinds module, since
3942 it was recently removed from Numeric. This way, numutils will
3947 it was recently removed from Numeric. This way, numutils will
3943 work for all users even if they are missing kinds.
3948 work for all users even if they are missing kinds.
3944
3949
3945 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3950 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3946 failure, which can occur with SWIG-wrapped extensions. After a
3951 failure, which can occur with SWIG-wrapped extensions. After a
3947 crash report from Prabhu.
3952 crash report from Prabhu.
3948
3953
3949 2003-05-16 Fernando Perez <fperez@colorado.edu>
3954 2003-05-16 Fernando Perez <fperez@colorado.edu>
3950
3955
3951 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3956 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3952 protect ipython from user code which may call directly
3957 protect ipython from user code which may call directly
3953 sys.excepthook (this looks like an ipython crash to the user, even
3958 sys.excepthook (this looks like an ipython crash to the user, even
3954 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3959 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3955 This is especially important to help users of WxWindows, but may
3960 This is especially important to help users of WxWindows, but may
3956 also be useful in other cases.
3961 also be useful in other cases.
3957
3962
3958 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3963 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3959 an optional tb_offset to be specified, and to preserve exception
3964 an optional tb_offset to be specified, and to preserve exception
3960 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3965 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3961
3966
3962 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3967 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3963
3968
3964 2003-05-15 Fernando Perez <fperez@colorado.edu>
3969 2003-05-15 Fernando Perez <fperez@colorado.edu>
3965
3970
3966 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3971 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3967 installing for a new user under Windows.
3972 installing for a new user under Windows.
3968
3973
3969 2003-05-12 Fernando Perez <fperez@colorado.edu>
3974 2003-05-12 Fernando Perez <fperez@colorado.edu>
3970
3975
3971 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3976 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3972 handler for Emacs comint-based lines. Currently it doesn't do
3977 handler for Emacs comint-based lines. Currently it doesn't do
3973 much (but importantly, it doesn't update the history cache). In
3978 much (but importantly, it doesn't update the history cache). In
3974 the future it may be expanded if Alex needs more functionality
3979 the future it may be expanded if Alex needs more functionality
3975 there.
3980 there.
3976
3981
3977 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3982 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3978 info to crash reports.
3983 info to crash reports.
3979
3984
3980 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3985 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3981 just like Python's -c. Also fixed crash with invalid -color
3986 just like Python's -c. Also fixed crash with invalid -color
3982 option value at startup. Thanks to Will French
3987 option value at startup. Thanks to Will French
3983 <wfrench-AT-bestweb.net> for the bug report.
3988 <wfrench-AT-bestweb.net> for the bug report.
3984
3989
3985 2003-05-09 Fernando Perez <fperez@colorado.edu>
3990 2003-05-09 Fernando Perez <fperez@colorado.edu>
3986
3991
3987 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3992 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3988 to EvalDict (it's a mapping, after all) and simplified its code
3993 to EvalDict (it's a mapping, after all) and simplified its code
3989 quite a bit, after a nice discussion on c.l.py where Gustavo
3994 quite a bit, after a nice discussion on c.l.py where Gustavo
3990 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3995 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3991
3996
3992 2003-04-30 Fernando Perez <fperez@colorado.edu>
3997 2003-04-30 Fernando Perez <fperez@colorado.edu>
3993
3998
3994 * IPython/genutils.py (timings_out): modified it to reduce its
3999 * IPython/genutils.py (timings_out): modified it to reduce its
3995 overhead in the common reps==1 case.
4000 overhead in the common reps==1 case.
3996
4001
3997 2003-04-29 Fernando Perez <fperez@colorado.edu>
4002 2003-04-29 Fernando Perez <fperez@colorado.edu>
3998
4003
3999 * IPython/genutils.py (timings_out): Modified to use the resource
4004 * IPython/genutils.py (timings_out): Modified to use the resource
4000 module, which avoids the wraparound problems of time.clock().
4005 module, which avoids the wraparound problems of time.clock().
4001
4006
4002 2003-04-17 *** Released version 0.2.15pre4
4007 2003-04-17 *** Released version 0.2.15pre4
4003
4008
4004 2003-04-17 Fernando Perez <fperez@colorado.edu>
4009 2003-04-17 Fernando Perez <fperez@colorado.edu>
4005
4010
4006 * setup.py (scriptfiles): Split windows-specific stuff over to a
4011 * setup.py (scriptfiles): Split windows-specific stuff over to a
4007 separate file, in an attempt to have a Windows GUI installer.
4012 separate file, in an attempt to have a Windows GUI installer.
4008 That didn't work, but part of the groundwork is done.
4013 That didn't work, but part of the groundwork is done.
4009
4014
4010 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4015 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4011 indent/unindent with 4 spaces. Particularly useful in combination
4016 indent/unindent with 4 spaces. Particularly useful in combination
4012 with the new auto-indent option.
4017 with the new auto-indent option.
4013
4018
4014 2003-04-16 Fernando Perez <fperez@colorado.edu>
4019 2003-04-16 Fernando Perez <fperez@colorado.edu>
4015
4020
4016 * IPython/Magic.py: various replacements of self.rc for
4021 * IPython/Magic.py: various replacements of self.rc for
4017 self.shell.rc. A lot more remains to be done to fully disentangle
4022 self.shell.rc. A lot more remains to be done to fully disentangle
4018 this class from the main Shell class.
4023 this class from the main Shell class.
4019
4024
4020 * IPython/GnuplotRuntime.py: added checks for mouse support so
4025 * IPython/GnuplotRuntime.py: added checks for mouse support so
4021 that we don't try to enable it if the current gnuplot doesn't
4026 that we don't try to enable it if the current gnuplot doesn't
4022 really support it. Also added checks so that we don't try to
4027 really support it. Also added checks so that we don't try to
4023 enable persist under Windows (where Gnuplot doesn't recognize the
4028 enable persist under Windows (where Gnuplot doesn't recognize the
4024 option).
4029 option).
4025
4030
4026 * IPython/iplib.py (InteractiveShell.interact): Added optional
4031 * IPython/iplib.py (InteractiveShell.interact): Added optional
4027 auto-indenting code, after a patch by King C. Shu
4032 auto-indenting code, after a patch by King C. Shu
4028 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4033 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4029 get along well with pasting indented code. If I ever figure out
4034 get along well with pasting indented code. If I ever figure out
4030 how to make that part go well, it will become on by default.
4035 how to make that part go well, it will become on by default.
4031
4036
4032 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4037 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4033 crash ipython if there was an unmatched '%' in the user's prompt
4038 crash ipython if there was an unmatched '%' in the user's prompt
4034 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4039 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4035
4040
4036 * IPython/iplib.py (InteractiveShell.interact): removed the
4041 * IPython/iplib.py (InteractiveShell.interact): removed the
4037 ability to ask the user whether he wants to crash or not at the
4042 ability to ask the user whether he wants to crash or not at the
4038 'last line' exception handler. Calling functions at that point
4043 'last line' exception handler. Calling functions at that point
4039 changes the stack, and the error reports would have incorrect
4044 changes the stack, and the error reports would have incorrect
4040 tracebacks.
4045 tracebacks.
4041
4046
4042 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4047 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4043 pass through a peger a pretty-printed form of any object. After a
4048 pass through a peger a pretty-printed form of any object. After a
4044 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4049 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4045
4050
4046 2003-04-14 Fernando Perez <fperez@colorado.edu>
4051 2003-04-14 Fernando Perez <fperez@colorado.edu>
4047
4052
4048 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4053 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4049 all files in ~ would be modified at first install (instead of
4054 all files in ~ would be modified at first install (instead of
4050 ~/.ipython). This could be potentially disastrous, as the
4055 ~/.ipython). This could be potentially disastrous, as the
4051 modification (make line-endings native) could damage binary files.
4056 modification (make line-endings native) could damage binary files.
4052
4057
4053 2003-04-10 Fernando Perez <fperez@colorado.edu>
4058 2003-04-10 Fernando Perez <fperez@colorado.edu>
4054
4059
4055 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4060 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4056 handle only lines which are invalid python. This now means that
4061 handle only lines which are invalid python. This now means that
4057 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4062 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4058 for the bug report.
4063 for the bug report.
4059
4064
4060 2003-04-01 Fernando Perez <fperez@colorado.edu>
4065 2003-04-01 Fernando Perez <fperez@colorado.edu>
4061
4066
4062 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4067 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4063 where failing to set sys.last_traceback would crash pdb.pm().
4068 where failing to set sys.last_traceback would crash pdb.pm().
4064 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4069 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4065 report.
4070 report.
4066
4071
4067 2003-03-25 Fernando Perez <fperez@colorado.edu>
4072 2003-03-25 Fernando Perez <fperez@colorado.edu>
4068
4073
4069 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4074 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4070 before printing it (it had a lot of spurious blank lines at the
4075 before printing it (it had a lot of spurious blank lines at the
4071 end).
4076 end).
4072
4077
4073 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4078 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4074 output would be sent 21 times! Obviously people don't use this
4079 output would be sent 21 times! Obviously people don't use this
4075 too often, or I would have heard about it.
4080 too often, or I would have heard about it.
4076
4081
4077 2003-03-24 Fernando Perez <fperez@colorado.edu>
4082 2003-03-24 Fernando Perez <fperez@colorado.edu>
4078
4083
4079 * setup.py (scriptfiles): renamed the data_files parameter from
4084 * setup.py (scriptfiles): renamed the data_files parameter from
4080 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4085 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4081 for the patch.
4086 for the patch.
4082
4087
4083 2003-03-20 Fernando Perez <fperez@colorado.edu>
4088 2003-03-20 Fernando Perez <fperez@colorado.edu>
4084
4089
4085 * IPython/genutils.py (error): added error() and fatal()
4090 * IPython/genutils.py (error): added error() and fatal()
4086 functions.
4091 functions.
4087
4092
4088 2003-03-18 *** Released version 0.2.15pre3
4093 2003-03-18 *** Released version 0.2.15pre3
4089
4094
4090 2003-03-18 Fernando Perez <fperez@colorado.edu>
4095 2003-03-18 Fernando Perez <fperez@colorado.edu>
4091
4096
4092 * setupext/install_data_ext.py
4097 * setupext/install_data_ext.py
4093 (install_data_ext.initialize_options): Class contributed by Jack
4098 (install_data_ext.initialize_options): Class contributed by Jack
4094 Moffit for fixing the old distutils hack. He is sending this to
4099 Moffit for fixing the old distutils hack. He is sending this to
4095 the distutils folks so in the future we may not need it as a
4100 the distutils folks so in the future we may not need it as a
4096 private fix.
4101 private fix.
4097
4102
4098 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4103 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4099 changes for Debian packaging. See his patch for full details.
4104 changes for Debian packaging. See his patch for full details.
4100 The old distutils hack of making the ipythonrc* files carry a
4105 The old distutils hack of making the ipythonrc* files carry a
4101 bogus .py extension is gone, at last. Examples were moved to a
4106 bogus .py extension is gone, at last. Examples were moved to a
4102 separate subdir under doc/, and the separate executable scripts
4107 separate subdir under doc/, and the separate executable scripts
4103 now live in their own directory. Overall a great cleanup. The
4108 now live in their own directory. Overall a great cleanup. The
4104 manual was updated to use the new files, and setup.py has been
4109 manual was updated to use the new files, and setup.py has been
4105 fixed for this setup.
4110 fixed for this setup.
4106
4111
4107 * IPython/PyColorize.py (Parser.usage): made non-executable and
4112 * IPython/PyColorize.py (Parser.usage): made non-executable and
4108 created a pycolor wrapper around it to be included as a script.
4113 created a pycolor wrapper around it to be included as a script.
4109
4114
4110 2003-03-12 *** Released version 0.2.15pre2
4115 2003-03-12 *** Released version 0.2.15pre2
4111
4116
4112 2003-03-12 Fernando Perez <fperez@colorado.edu>
4117 2003-03-12 Fernando Perez <fperez@colorado.edu>
4113
4118
4114 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4119 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4115 long-standing problem with garbage characters in some terminals.
4120 long-standing problem with garbage characters in some terminals.
4116 The issue was really that the \001 and \002 escapes must _only_ be
4121 The issue was really that the \001 and \002 escapes must _only_ be
4117 passed to input prompts (which call readline), but _never_ to
4122 passed to input prompts (which call readline), but _never_ to
4118 normal text to be printed on screen. I changed ColorANSI to have
4123 normal text to be printed on screen. I changed ColorANSI to have
4119 two classes: TermColors and InputTermColors, each with the
4124 two classes: TermColors and InputTermColors, each with the
4120 appropriate escapes for input prompts or normal text. The code in
4125 appropriate escapes for input prompts or normal text. The code in
4121 Prompts.py got slightly more complicated, but this very old and
4126 Prompts.py got slightly more complicated, but this very old and
4122 annoying bug is finally fixed.
4127 annoying bug is finally fixed.
4123
4128
4124 All the credit for nailing down the real origin of this problem
4129 All the credit for nailing down the real origin of this problem
4125 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4130 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4126 *Many* thanks to him for spending quite a bit of effort on this.
4131 *Many* thanks to him for spending quite a bit of effort on this.
4127
4132
4128 2003-03-05 *** Released version 0.2.15pre1
4133 2003-03-05 *** Released version 0.2.15pre1
4129
4134
4130 2003-03-03 Fernando Perez <fperez@colorado.edu>
4135 2003-03-03 Fernando Perez <fperez@colorado.edu>
4131
4136
4132 * IPython/FakeModule.py: Moved the former _FakeModule to a
4137 * IPython/FakeModule.py: Moved the former _FakeModule to a
4133 separate file, because it's also needed by Magic (to fix a similar
4138 separate file, because it's also needed by Magic (to fix a similar
4134 pickle-related issue in @run).
4139 pickle-related issue in @run).
4135
4140
4136 2003-03-02 Fernando Perez <fperez@colorado.edu>
4141 2003-03-02 Fernando Perez <fperez@colorado.edu>
4137
4142
4138 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4143 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4139 the autocall option at runtime.
4144 the autocall option at runtime.
4140 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4145 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4141 across Magic.py to start separating Magic from InteractiveShell.
4146 across Magic.py to start separating Magic from InteractiveShell.
4142 (Magic._ofind): Fixed to return proper namespace for dotted
4147 (Magic._ofind): Fixed to return proper namespace for dotted
4143 names. Before, a dotted name would always return 'not currently
4148 names. Before, a dotted name would always return 'not currently
4144 defined', because it would find the 'parent'. s.x would be found,
4149 defined', because it would find the 'parent'. s.x would be found,
4145 but since 'x' isn't defined by itself, it would get confused.
4150 but since 'x' isn't defined by itself, it would get confused.
4146 (Magic.magic_run): Fixed pickling problems reported by Ralf
4151 (Magic.magic_run): Fixed pickling problems reported by Ralf
4147 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4152 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4148 that I'd used when Mike Heeter reported similar issues at the
4153 that I'd used when Mike Heeter reported similar issues at the
4149 top-level, but now for @run. It boils down to injecting the
4154 top-level, but now for @run. It boils down to injecting the
4150 namespace where code is being executed with something that looks
4155 namespace where code is being executed with something that looks
4151 enough like a module to fool pickle.dump(). Since a pickle stores
4156 enough like a module to fool pickle.dump(). Since a pickle stores
4152 a named reference to the importing module, we need this for
4157 a named reference to the importing module, we need this for
4153 pickles to save something sensible.
4158 pickles to save something sensible.
4154
4159
4155 * IPython/ipmaker.py (make_IPython): added an autocall option.
4160 * IPython/ipmaker.py (make_IPython): added an autocall option.
4156
4161
4157 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4162 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4158 the auto-eval code. Now autocalling is an option, and the code is
4163 the auto-eval code. Now autocalling is an option, and the code is
4159 also vastly safer. There is no more eval() involved at all.
4164 also vastly safer. There is no more eval() involved at all.
4160
4165
4161 2003-03-01 Fernando Perez <fperez@colorado.edu>
4166 2003-03-01 Fernando Perez <fperez@colorado.edu>
4162
4167
4163 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4168 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4164 dict with named keys instead of a tuple.
4169 dict with named keys instead of a tuple.
4165
4170
4166 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4171 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4167
4172
4168 * setup.py (make_shortcut): Fixed message about directories
4173 * setup.py (make_shortcut): Fixed message about directories
4169 created during Windows installation (the directories were ok, just
4174 created during Windows installation (the directories were ok, just
4170 the printed message was misleading). Thanks to Chris Liechti
4175 the printed message was misleading). Thanks to Chris Liechti
4171 <cliechti-AT-gmx.net> for the heads up.
4176 <cliechti-AT-gmx.net> for the heads up.
4172
4177
4173 2003-02-21 Fernando Perez <fperez@colorado.edu>
4178 2003-02-21 Fernando Perez <fperez@colorado.edu>
4174
4179
4175 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4180 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4176 of ValueError exception when checking for auto-execution. This
4181 of ValueError exception when checking for auto-execution. This
4177 one is raised by things like Numeric arrays arr.flat when the
4182 one is raised by things like Numeric arrays arr.flat when the
4178 array is non-contiguous.
4183 array is non-contiguous.
4179
4184
4180 2003-01-31 Fernando Perez <fperez@colorado.edu>
4185 2003-01-31 Fernando Perez <fperez@colorado.edu>
4181
4186
4182 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4187 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4183 not return any value at all (even though the command would get
4188 not return any value at all (even though the command would get
4184 executed).
4189 executed).
4185 (xsys): Flush stdout right after printing the command to ensure
4190 (xsys): Flush stdout right after printing the command to ensure
4186 proper ordering of commands and command output in the total
4191 proper ordering of commands and command output in the total
4187 output.
4192 output.
4188 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4193 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4189 system/getoutput as defaults. The old ones are kept for
4194 system/getoutput as defaults. The old ones are kept for
4190 compatibility reasons, so no code which uses this library needs
4195 compatibility reasons, so no code which uses this library needs
4191 changing.
4196 changing.
4192
4197
4193 2003-01-27 *** Released version 0.2.14
4198 2003-01-27 *** Released version 0.2.14
4194
4199
4195 2003-01-25 Fernando Perez <fperez@colorado.edu>
4200 2003-01-25 Fernando Perez <fperez@colorado.edu>
4196
4201
4197 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4202 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4198 functions defined in previous edit sessions could not be re-edited
4203 functions defined in previous edit sessions could not be re-edited
4199 (because the temp files were immediately removed). Now temp files
4204 (because the temp files were immediately removed). Now temp files
4200 are removed only at IPython's exit.
4205 are removed only at IPython's exit.
4201 (Magic.magic_run): Improved @run to perform shell-like expansions
4206 (Magic.magic_run): Improved @run to perform shell-like expansions
4202 on its arguments (~users and $VARS). With this, @run becomes more
4207 on its arguments (~users and $VARS). With this, @run becomes more
4203 like a normal command-line.
4208 like a normal command-line.
4204
4209
4205 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4210 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4206 bugs related to embedding and cleaned up that code. A fairly
4211 bugs related to embedding and cleaned up that code. A fairly
4207 important one was the impossibility to access the global namespace
4212 important one was the impossibility to access the global namespace
4208 through the embedded IPython (only local variables were visible).
4213 through the embedded IPython (only local variables were visible).
4209
4214
4210 2003-01-14 Fernando Perez <fperez@colorado.edu>
4215 2003-01-14 Fernando Perez <fperez@colorado.edu>
4211
4216
4212 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4217 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4213 auto-calling to be a bit more conservative. Now it doesn't get
4218 auto-calling to be a bit more conservative. Now it doesn't get
4214 triggered if any of '!=()<>' are in the rest of the input line, to
4219 triggered if any of '!=()<>' are in the rest of the input line, to
4215 allow comparing callables. Thanks to Alex for the heads up.
4220 allow comparing callables. Thanks to Alex for the heads up.
4216
4221
4217 2003-01-07 Fernando Perez <fperez@colorado.edu>
4222 2003-01-07 Fernando Perez <fperez@colorado.edu>
4218
4223
4219 * IPython/genutils.py (page): fixed estimation of the number of
4224 * IPython/genutils.py (page): fixed estimation of the number of
4220 lines in a string to be paged to simply count newlines. This
4225 lines in a string to be paged to simply count newlines. This
4221 prevents over-guessing due to embedded escape sequences. A better
4226 prevents over-guessing due to embedded escape sequences. A better
4222 long-term solution would involve stripping out the control chars
4227 long-term solution would involve stripping out the control chars
4223 for the count, but it's potentially so expensive I just don't
4228 for the count, but it's potentially so expensive I just don't
4224 think it's worth doing.
4229 think it's worth doing.
4225
4230
4226 2002-12-19 *** Released version 0.2.14pre50
4231 2002-12-19 *** Released version 0.2.14pre50
4227
4232
4228 2002-12-19 Fernando Perez <fperez@colorado.edu>
4233 2002-12-19 Fernando Perez <fperez@colorado.edu>
4229
4234
4230 * tools/release (version): Changed release scripts to inform
4235 * tools/release (version): Changed release scripts to inform
4231 Andrea and build a NEWS file with a list of recent changes.
4236 Andrea and build a NEWS file with a list of recent changes.
4232
4237
4233 * IPython/ColorANSI.py (__all__): changed terminal detection
4238 * IPython/ColorANSI.py (__all__): changed terminal detection
4234 code. Seems to work better for xterms without breaking
4239 code. Seems to work better for xterms without breaking
4235 konsole. Will need more testing to determine if WinXP and Mac OSX
4240 konsole. Will need more testing to determine if WinXP and Mac OSX
4236 also work ok.
4241 also work ok.
4237
4242
4238 2002-12-18 *** Released version 0.2.14pre49
4243 2002-12-18 *** Released version 0.2.14pre49
4239
4244
4240 2002-12-18 Fernando Perez <fperez@colorado.edu>
4245 2002-12-18 Fernando Perez <fperez@colorado.edu>
4241
4246
4242 * Docs: added new info about Mac OSX, from Andrea.
4247 * Docs: added new info about Mac OSX, from Andrea.
4243
4248
4244 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4249 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4245 allow direct plotting of python strings whose format is the same
4250 allow direct plotting of python strings whose format is the same
4246 of gnuplot data files.
4251 of gnuplot data files.
4247
4252
4248 2002-12-16 Fernando Perez <fperez@colorado.edu>
4253 2002-12-16 Fernando Perez <fperez@colorado.edu>
4249
4254
4250 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4255 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4251 value of exit question to be acknowledged.
4256 value of exit question to be acknowledged.
4252
4257
4253 2002-12-03 Fernando Perez <fperez@colorado.edu>
4258 2002-12-03 Fernando Perez <fperez@colorado.edu>
4254
4259
4255 * IPython/ipmaker.py: removed generators, which had been added
4260 * IPython/ipmaker.py: removed generators, which had been added
4256 by mistake in an earlier debugging run. This was causing trouble
4261 by mistake in an earlier debugging run. This was causing trouble
4257 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4262 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4258 for pointing this out.
4263 for pointing this out.
4259
4264
4260 2002-11-17 Fernando Perez <fperez@colorado.edu>
4265 2002-11-17 Fernando Perez <fperez@colorado.edu>
4261
4266
4262 * Manual: updated the Gnuplot section.
4267 * Manual: updated the Gnuplot section.
4263
4268
4264 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4269 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4265 a much better split of what goes in Runtime and what goes in
4270 a much better split of what goes in Runtime and what goes in
4266 Interactive.
4271 Interactive.
4267
4272
4268 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4273 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4269 being imported from iplib.
4274 being imported from iplib.
4270
4275
4271 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4276 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4272 for command-passing. Now the global Gnuplot instance is called
4277 for command-passing. Now the global Gnuplot instance is called
4273 'gp' instead of 'g', which was really a far too fragile and
4278 'gp' instead of 'g', which was really a far too fragile and
4274 common name.
4279 common name.
4275
4280
4276 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4281 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4277 bounding boxes generated by Gnuplot for square plots.
4282 bounding boxes generated by Gnuplot for square plots.
4278
4283
4279 * IPython/genutils.py (popkey): new function added. I should
4284 * IPython/genutils.py (popkey): new function added. I should
4280 suggest this on c.l.py as a dict method, it seems useful.
4285 suggest this on c.l.py as a dict method, it seems useful.
4281
4286
4282 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4287 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4283 to transparently handle PostScript generation. MUCH better than
4288 to transparently handle PostScript generation. MUCH better than
4284 the previous plot_eps/replot_eps (which I removed now). The code
4289 the previous plot_eps/replot_eps (which I removed now). The code
4285 is also fairly clean and well documented now (including
4290 is also fairly clean and well documented now (including
4286 docstrings).
4291 docstrings).
4287
4292
4288 2002-11-13 Fernando Perez <fperez@colorado.edu>
4293 2002-11-13 Fernando Perez <fperez@colorado.edu>
4289
4294
4290 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4295 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4291 (inconsistent with options).
4296 (inconsistent with options).
4292
4297
4293 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4298 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4294 manually disabled, I don't know why. Fixed it.
4299 manually disabled, I don't know why. Fixed it.
4295 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4300 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4296 eps output.
4301 eps output.
4297
4302
4298 2002-11-12 Fernando Perez <fperez@colorado.edu>
4303 2002-11-12 Fernando Perez <fperez@colorado.edu>
4299
4304
4300 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4305 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4301 don't propagate up to caller. Fixes crash reported by François
4306 don't propagate up to caller. Fixes crash reported by François
4302 Pinard.
4307 Pinard.
4303
4308
4304 2002-11-09 Fernando Perez <fperez@colorado.edu>
4309 2002-11-09 Fernando Perez <fperez@colorado.edu>
4305
4310
4306 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4311 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4307 history file for new users.
4312 history file for new users.
4308 (make_IPython): fixed bug where initial install would leave the
4313 (make_IPython): fixed bug where initial install would leave the
4309 user running in the .ipython dir.
4314 user running in the .ipython dir.
4310 (make_IPython): fixed bug where config dir .ipython would be
4315 (make_IPython): fixed bug where config dir .ipython would be
4311 created regardless of the given -ipythondir option. Thanks to Cory
4316 created regardless of the given -ipythondir option. Thanks to Cory
4312 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4317 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4313
4318
4314 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4319 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4315 type confirmations. Will need to use it in all of IPython's code
4320 type confirmations. Will need to use it in all of IPython's code
4316 consistently.
4321 consistently.
4317
4322
4318 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4323 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4319 context to print 31 lines instead of the default 5. This will make
4324 context to print 31 lines instead of the default 5. This will make
4320 the crash reports extremely detailed in case the problem is in
4325 the crash reports extremely detailed in case the problem is in
4321 libraries I don't have access to.
4326 libraries I don't have access to.
4322
4327
4323 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4328 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4324 line of defense' code to still crash, but giving users fair
4329 line of defense' code to still crash, but giving users fair
4325 warning. I don't want internal errors to go unreported: if there's
4330 warning. I don't want internal errors to go unreported: if there's
4326 an internal problem, IPython should crash and generate a full
4331 an internal problem, IPython should crash and generate a full
4327 report.
4332 report.
4328
4333
4329 2002-11-08 Fernando Perez <fperez@colorado.edu>
4334 2002-11-08 Fernando Perez <fperez@colorado.edu>
4330
4335
4331 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4336 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4332 otherwise uncaught exceptions which can appear if people set
4337 otherwise uncaught exceptions which can appear if people set
4333 sys.stdout to something badly broken. Thanks to a crash report
4338 sys.stdout to something badly broken. Thanks to a crash report
4334 from henni-AT-mail.brainbot.com.
4339 from henni-AT-mail.brainbot.com.
4335
4340
4336 2002-11-04 Fernando Perez <fperez@colorado.edu>
4341 2002-11-04 Fernando Perez <fperez@colorado.edu>
4337
4342
4338 * IPython/iplib.py (InteractiveShell.interact): added
4343 * IPython/iplib.py (InteractiveShell.interact): added
4339 __IPYTHON__active to the builtins. It's a flag which goes on when
4344 __IPYTHON__active to the builtins. It's a flag which goes on when
4340 the interaction starts and goes off again when it stops. This
4345 the interaction starts and goes off again when it stops. This
4341 allows embedding code to detect being inside IPython. Before this
4346 allows embedding code to detect being inside IPython. Before this
4342 was done via __IPYTHON__, but that only shows that an IPython
4347 was done via __IPYTHON__, but that only shows that an IPython
4343 instance has been created.
4348 instance has been created.
4344
4349
4345 * IPython/Magic.py (Magic.magic_env): I realized that in a
4350 * IPython/Magic.py (Magic.magic_env): I realized that in a
4346 UserDict, instance.data holds the data as a normal dict. So I
4351 UserDict, instance.data holds the data as a normal dict. So I
4347 modified @env to return os.environ.data instead of rebuilding a
4352 modified @env to return os.environ.data instead of rebuilding a
4348 dict by hand.
4353 dict by hand.
4349
4354
4350 2002-11-02 Fernando Perez <fperez@colorado.edu>
4355 2002-11-02 Fernando Perez <fperez@colorado.edu>
4351
4356
4352 * IPython/genutils.py (warn): changed so that level 1 prints no
4357 * IPython/genutils.py (warn): changed so that level 1 prints no
4353 header. Level 2 is now the default (with 'WARNING' header, as
4358 header. Level 2 is now the default (with 'WARNING' header, as
4354 before). I think I tracked all places where changes were needed in
4359 before). I think I tracked all places where changes were needed in
4355 IPython, but outside code using the old level numbering may have
4360 IPython, but outside code using the old level numbering may have
4356 broken.
4361 broken.
4357
4362
4358 * IPython/iplib.py (InteractiveShell.runcode): added this to
4363 * IPython/iplib.py (InteractiveShell.runcode): added this to
4359 handle the tracebacks in SystemExit traps correctly. The previous
4364 handle the tracebacks in SystemExit traps correctly. The previous
4360 code (through interact) was printing more of the stack than
4365 code (through interact) was printing more of the stack than
4361 necessary, showing IPython internal code to the user.
4366 necessary, showing IPython internal code to the user.
4362
4367
4363 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4368 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4364 default. Now that the default at the confirmation prompt is yes,
4369 default. Now that the default at the confirmation prompt is yes,
4365 it's not so intrusive. François' argument that ipython sessions
4370 it's not so intrusive. François' argument that ipython sessions
4366 tend to be complex enough not to lose them from an accidental C-d,
4371 tend to be complex enough not to lose them from an accidental C-d,
4367 is a valid one.
4372 is a valid one.
4368
4373
4369 * IPython/iplib.py (InteractiveShell.interact): added a
4374 * IPython/iplib.py (InteractiveShell.interact): added a
4370 showtraceback() call to the SystemExit trap, and modified the exit
4375 showtraceback() call to the SystemExit trap, and modified the exit
4371 confirmation to have yes as the default.
4376 confirmation to have yes as the default.
4372
4377
4373 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4378 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4374 this file. It's been gone from the code for a long time, this was
4379 this file. It's been gone from the code for a long time, this was
4375 simply leftover junk.
4380 simply leftover junk.
4376
4381
4377 2002-11-01 Fernando Perez <fperez@colorado.edu>
4382 2002-11-01 Fernando Perez <fperez@colorado.edu>
4378
4383
4379 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4384 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4380 added. If set, IPython now traps EOF and asks for
4385 added. If set, IPython now traps EOF and asks for
4381 confirmation. After a request by François Pinard.
4386 confirmation. After a request by François Pinard.
4382
4387
4383 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4388 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4384 of @abort, and with a new (better) mechanism for handling the
4389 of @abort, and with a new (better) mechanism for handling the
4385 exceptions.
4390 exceptions.
4386
4391
4387 2002-10-27 Fernando Perez <fperez@colorado.edu>
4392 2002-10-27 Fernando Perez <fperez@colorado.edu>
4388
4393
4389 * IPython/usage.py (__doc__): updated the --help information and
4394 * IPython/usage.py (__doc__): updated the --help information and
4390 the ipythonrc file to indicate that -log generates
4395 the ipythonrc file to indicate that -log generates
4391 ./ipython.log. Also fixed the corresponding info in @logstart.
4396 ./ipython.log. Also fixed the corresponding info in @logstart.
4392 This and several other fixes in the manuals thanks to reports by
4397 This and several other fixes in the manuals thanks to reports by
4393 François Pinard <pinard-AT-iro.umontreal.ca>.
4398 François Pinard <pinard-AT-iro.umontreal.ca>.
4394
4399
4395 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4400 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4396 refer to @logstart (instead of @log, which doesn't exist).
4401 refer to @logstart (instead of @log, which doesn't exist).
4397
4402
4398 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4403 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4399 AttributeError crash. Thanks to Christopher Armstrong
4404 AttributeError crash. Thanks to Christopher Armstrong
4400 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4405 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4401 introduced recently (in 0.2.14pre37) with the fix to the eval
4406 introduced recently (in 0.2.14pre37) with the fix to the eval
4402 problem mentioned below.
4407 problem mentioned below.
4403
4408
4404 2002-10-17 Fernando Perez <fperez@colorado.edu>
4409 2002-10-17 Fernando Perez <fperez@colorado.edu>
4405
4410
4406 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4411 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4407 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4412 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4408
4413
4409 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4414 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4410 this function to fix a problem reported by Alex Schmolck. He saw
4415 this function to fix a problem reported by Alex Schmolck. He saw
4411 it with list comprehensions and generators, which were getting
4416 it with list comprehensions and generators, which were getting
4412 called twice. The real problem was an 'eval' call in testing for
4417 called twice. The real problem was an 'eval' call in testing for
4413 automagic which was evaluating the input line silently.
4418 automagic which was evaluating the input line silently.
4414
4419
4415 This is a potentially very nasty bug, if the input has side
4420 This is a potentially very nasty bug, if the input has side
4416 effects which must not be repeated. The code is much cleaner now,
4421 effects which must not be repeated. The code is much cleaner now,
4417 without any blanket 'except' left and with a regexp test for
4422 without any blanket 'except' left and with a regexp test for
4418 actual function names.
4423 actual function names.
4419
4424
4420 But an eval remains, which I'm not fully comfortable with. I just
4425 But an eval remains, which I'm not fully comfortable with. I just
4421 don't know how to find out if an expression could be a callable in
4426 don't know how to find out if an expression could be a callable in
4422 the user's namespace without doing an eval on the string. However
4427 the user's namespace without doing an eval on the string. However
4423 that string is now much more strictly checked so that no code
4428 that string is now much more strictly checked so that no code
4424 slips by, so the eval should only happen for things that can
4429 slips by, so the eval should only happen for things that can
4425 really be only function/method names.
4430 really be only function/method names.
4426
4431
4427 2002-10-15 Fernando Perez <fperez@colorado.edu>
4432 2002-10-15 Fernando Perez <fperez@colorado.edu>
4428
4433
4429 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4434 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4430 OSX information to main manual, removed README_Mac_OSX file from
4435 OSX information to main manual, removed README_Mac_OSX file from
4431 distribution. Also updated credits for recent additions.
4436 distribution. Also updated credits for recent additions.
4432
4437
4433 2002-10-10 Fernando Perez <fperez@colorado.edu>
4438 2002-10-10 Fernando Perez <fperez@colorado.edu>
4434
4439
4435 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4440 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4436 terminal-related issues. Many thanks to Andrea Riciputi
4441 terminal-related issues. Many thanks to Andrea Riciputi
4437 <andrea.riciputi-AT-libero.it> for writing it.
4442 <andrea.riciputi-AT-libero.it> for writing it.
4438
4443
4439 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4444 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4440 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4445 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4441
4446
4442 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4447 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4443 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4448 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4444 <syver-en-AT-online.no> who both submitted patches for this problem.
4449 <syver-en-AT-online.no> who both submitted patches for this problem.
4445
4450
4446 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4451 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4447 global embedding to make sure that things don't overwrite user
4452 global embedding to make sure that things don't overwrite user
4448 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4453 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4449
4454
4450 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4455 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4451 compatibility. Thanks to Hayden Callow
4456 compatibility. Thanks to Hayden Callow
4452 <h.callow-AT-elec.canterbury.ac.nz>
4457 <h.callow-AT-elec.canterbury.ac.nz>
4453
4458
4454 2002-10-04 Fernando Perez <fperez@colorado.edu>
4459 2002-10-04 Fernando Perez <fperez@colorado.edu>
4455
4460
4456 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4461 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4457 Gnuplot.File objects.
4462 Gnuplot.File objects.
4458
4463
4459 2002-07-23 Fernando Perez <fperez@colorado.edu>
4464 2002-07-23 Fernando Perez <fperez@colorado.edu>
4460
4465
4461 * IPython/genutils.py (timing): Added timings() and timing() for
4466 * IPython/genutils.py (timing): Added timings() and timing() for
4462 quick access to the most commonly needed data, the execution
4467 quick access to the most commonly needed data, the execution
4463 times. Old timing() renamed to timings_out().
4468 times. Old timing() renamed to timings_out().
4464
4469
4465 2002-07-18 Fernando Perez <fperez@colorado.edu>
4470 2002-07-18 Fernando Perez <fperez@colorado.edu>
4466
4471
4467 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4472 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4468 bug with nested instances disrupting the parent's tab completion.
4473 bug with nested instances disrupting the parent's tab completion.
4469
4474
4470 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4475 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4471 all_completions code to begin the emacs integration.
4476 all_completions code to begin the emacs integration.
4472
4477
4473 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4478 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4474 argument to allow titling individual arrays when plotting.
4479 argument to allow titling individual arrays when plotting.
4475
4480
4476 2002-07-15 Fernando Perez <fperez@colorado.edu>
4481 2002-07-15 Fernando Perez <fperez@colorado.edu>
4477
4482
4478 * setup.py (make_shortcut): changed to retrieve the value of
4483 * setup.py (make_shortcut): changed to retrieve the value of
4479 'Program Files' directory from the registry (this value changes in
4484 'Program Files' directory from the registry (this value changes in
4480 non-english versions of Windows). Thanks to Thomas Fanslau
4485 non-english versions of Windows). Thanks to Thomas Fanslau
4481 <tfanslau-AT-gmx.de> for the report.
4486 <tfanslau-AT-gmx.de> for the report.
4482
4487
4483 2002-07-10 Fernando Perez <fperez@colorado.edu>
4488 2002-07-10 Fernando Perez <fperez@colorado.edu>
4484
4489
4485 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4490 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4486 a bug in pdb, which crashes if a line with only whitespace is
4491 a bug in pdb, which crashes if a line with only whitespace is
4487 entered. Bug report submitted to sourceforge.
4492 entered. Bug report submitted to sourceforge.
4488
4493
4489 2002-07-09 Fernando Perez <fperez@colorado.edu>
4494 2002-07-09 Fernando Perez <fperez@colorado.edu>
4490
4495
4491 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4496 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4492 reporting exceptions (it's a bug in inspect.py, I just set a
4497 reporting exceptions (it's a bug in inspect.py, I just set a
4493 workaround).
4498 workaround).
4494
4499
4495 2002-07-08 Fernando Perez <fperez@colorado.edu>
4500 2002-07-08 Fernando Perez <fperez@colorado.edu>
4496
4501
4497 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4502 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4498 __IPYTHON__ in __builtins__ to show up in user_ns.
4503 __IPYTHON__ in __builtins__ to show up in user_ns.
4499
4504
4500 2002-07-03 Fernando Perez <fperez@colorado.edu>
4505 2002-07-03 Fernando Perez <fperez@colorado.edu>
4501
4506
4502 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4507 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4503 name from @gp_set_instance to @gp_set_default.
4508 name from @gp_set_instance to @gp_set_default.
4504
4509
4505 * IPython/ipmaker.py (make_IPython): default editor value set to
4510 * IPython/ipmaker.py (make_IPython): default editor value set to
4506 '0' (a string), to match the rc file. Otherwise will crash when
4511 '0' (a string), to match the rc file. Otherwise will crash when
4507 .strip() is called on it.
4512 .strip() is called on it.
4508
4513
4509
4514
4510 2002-06-28 Fernando Perez <fperez@colorado.edu>
4515 2002-06-28 Fernando Perez <fperez@colorado.edu>
4511
4516
4512 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4517 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4513 of files in current directory when a file is executed via
4518 of files in current directory when a file is executed via
4514 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4519 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4515
4520
4516 * setup.py (manfiles): fix for rpm builds, submitted by RA
4521 * setup.py (manfiles): fix for rpm builds, submitted by RA
4517 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4522 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4518
4523
4519 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4524 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4520 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4525 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4521 string!). A. Schmolck caught this one.
4526 string!). A. Schmolck caught this one.
4522
4527
4523 2002-06-27 Fernando Perez <fperez@colorado.edu>
4528 2002-06-27 Fernando Perez <fperez@colorado.edu>
4524
4529
4525 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4530 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4526 defined files at the cmd line. __name__ wasn't being set to
4531 defined files at the cmd line. __name__ wasn't being set to
4527 __main__.
4532 __main__.
4528
4533
4529 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4534 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4530 regular lists and tuples besides Numeric arrays.
4535 regular lists and tuples besides Numeric arrays.
4531
4536
4532 * IPython/Prompts.py (CachedOutput.__call__): Added output
4537 * IPython/Prompts.py (CachedOutput.__call__): Added output
4533 supression for input ending with ';'. Similar to Mathematica and
4538 supression for input ending with ';'. Similar to Mathematica and
4534 Matlab. The _* vars and Out[] list are still updated, just like
4539 Matlab. The _* vars and Out[] list are still updated, just like
4535 Mathematica behaves.
4540 Mathematica behaves.
4536
4541
4537 2002-06-25 Fernando Perez <fperez@colorado.edu>
4542 2002-06-25 Fernando Perez <fperez@colorado.edu>
4538
4543
4539 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4544 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4540 .ini extensions for profiels under Windows.
4545 .ini extensions for profiels under Windows.
4541
4546
4542 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4547 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4543 string form. Fix contributed by Alexander Schmolck
4548 string form. Fix contributed by Alexander Schmolck
4544 <a.schmolck-AT-gmx.net>
4549 <a.schmolck-AT-gmx.net>
4545
4550
4546 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4551 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4547 pre-configured Gnuplot instance.
4552 pre-configured Gnuplot instance.
4548
4553
4549 2002-06-21 Fernando Perez <fperez@colorado.edu>
4554 2002-06-21 Fernando Perez <fperez@colorado.edu>
4550
4555
4551 * IPython/numutils.py (exp_safe): new function, works around the
4556 * IPython/numutils.py (exp_safe): new function, works around the
4552 underflow problems in Numeric.
4557 underflow problems in Numeric.
4553 (log2): New fn. Safe log in base 2: returns exact integer answer
4558 (log2): New fn. Safe log in base 2: returns exact integer answer
4554 for exact integer powers of 2.
4559 for exact integer powers of 2.
4555
4560
4556 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4561 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4557 properly.
4562 properly.
4558
4563
4559 2002-06-20 Fernando Perez <fperez@colorado.edu>
4564 2002-06-20 Fernando Perez <fperez@colorado.edu>
4560
4565
4561 * IPython/genutils.py (timing): new function like
4566 * IPython/genutils.py (timing): new function like
4562 Mathematica's. Similar to time_test, but returns more info.
4567 Mathematica's. Similar to time_test, but returns more info.
4563
4568
4564 2002-06-18 Fernando Perez <fperez@colorado.edu>
4569 2002-06-18 Fernando Perez <fperez@colorado.edu>
4565
4570
4566 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4571 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4567 according to Mike Heeter's suggestions.
4572 according to Mike Heeter's suggestions.
4568
4573
4569 2002-06-16 Fernando Perez <fperez@colorado.edu>
4574 2002-06-16 Fernando Perez <fperez@colorado.edu>
4570
4575
4571 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4576 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4572 system. GnuplotMagic is gone as a user-directory option. New files
4577 system. GnuplotMagic is gone as a user-directory option. New files
4573 make it easier to use all the gnuplot stuff both from external
4578 make it easier to use all the gnuplot stuff both from external
4574 programs as well as from IPython. Had to rewrite part of
4579 programs as well as from IPython. Had to rewrite part of
4575 hardcopy() b/c of a strange bug: often the ps files simply don't
4580 hardcopy() b/c of a strange bug: often the ps files simply don't
4576 get created, and require a repeat of the command (often several
4581 get created, and require a repeat of the command (often several
4577 times).
4582 times).
4578
4583
4579 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4584 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4580 resolve output channel at call time, so that if sys.stderr has
4585 resolve output channel at call time, so that if sys.stderr has
4581 been redirected by user this gets honored.
4586 been redirected by user this gets honored.
4582
4587
4583 2002-06-13 Fernando Perez <fperez@colorado.edu>
4588 2002-06-13 Fernando Perez <fperez@colorado.edu>
4584
4589
4585 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4590 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4586 IPShell. Kept a copy with the old names to avoid breaking people's
4591 IPShell. Kept a copy with the old names to avoid breaking people's
4587 embedded code.
4592 embedded code.
4588
4593
4589 * IPython/ipython: simplified it to the bare minimum after
4594 * IPython/ipython: simplified it to the bare minimum after
4590 Holger's suggestions. Added info about how to use it in
4595 Holger's suggestions. Added info about how to use it in
4591 PYTHONSTARTUP.
4596 PYTHONSTARTUP.
4592
4597
4593 * IPython/Shell.py (IPythonShell): changed the options passing
4598 * IPython/Shell.py (IPythonShell): changed the options passing
4594 from a string with funky %s replacements to a straight list. Maybe
4599 from a string with funky %s replacements to a straight list. Maybe
4595 a bit more typing, but it follows sys.argv conventions, so there's
4600 a bit more typing, but it follows sys.argv conventions, so there's
4596 less special-casing to remember.
4601 less special-casing to remember.
4597
4602
4598 2002-06-12 Fernando Perez <fperez@colorado.edu>
4603 2002-06-12 Fernando Perez <fperez@colorado.edu>
4599
4604
4600 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4605 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4601 command. Thanks to a suggestion by Mike Heeter.
4606 command. Thanks to a suggestion by Mike Heeter.
4602 (Magic.magic_pfile): added behavior to look at filenames if given
4607 (Magic.magic_pfile): added behavior to look at filenames if given
4603 arg is not a defined object.
4608 arg is not a defined object.
4604 (Magic.magic_save): New @save function to save code snippets. Also
4609 (Magic.magic_save): New @save function to save code snippets. Also
4605 a Mike Heeter idea.
4610 a Mike Heeter idea.
4606
4611
4607 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4612 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4608 plot() and replot(). Much more convenient now, especially for
4613 plot() and replot(). Much more convenient now, especially for
4609 interactive use.
4614 interactive use.
4610
4615
4611 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4616 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4612 filenames.
4617 filenames.
4613
4618
4614 2002-06-02 Fernando Perez <fperez@colorado.edu>
4619 2002-06-02 Fernando Perez <fperez@colorado.edu>
4615
4620
4616 * IPython/Struct.py (Struct.__init__): modified to admit
4621 * IPython/Struct.py (Struct.__init__): modified to admit
4617 initialization via another struct.
4622 initialization via another struct.
4618
4623
4619 * IPython/genutils.py (SystemExec.__init__): New stateful
4624 * IPython/genutils.py (SystemExec.__init__): New stateful
4620 interface to xsys and bq. Useful for writing system scripts.
4625 interface to xsys and bq. Useful for writing system scripts.
4621
4626
4622 2002-05-30 Fernando Perez <fperez@colorado.edu>
4627 2002-05-30 Fernando Perez <fperez@colorado.edu>
4623
4628
4624 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4629 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4625 documents. This will make the user download smaller (it's getting
4630 documents. This will make the user download smaller (it's getting
4626 too big).
4631 too big).
4627
4632
4628 2002-05-29 Fernando Perez <fperez@colorado.edu>
4633 2002-05-29 Fernando Perez <fperez@colorado.edu>
4629
4634
4630 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4635 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4631 fix problems with shelve and pickle. Seems to work, but I don't
4636 fix problems with shelve and pickle. Seems to work, but I don't
4632 know if corner cases break it. Thanks to Mike Heeter
4637 know if corner cases break it. Thanks to Mike Heeter
4633 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4638 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4634
4639
4635 2002-05-24 Fernando Perez <fperez@colorado.edu>
4640 2002-05-24 Fernando Perez <fperez@colorado.edu>
4636
4641
4637 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4642 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4638 macros having broken.
4643 macros having broken.
4639
4644
4640 2002-05-21 Fernando Perez <fperez@colorado.edu>
4645 2002-05-21 Fernando Perez <fperez@colorado.edu>
4641
4646
4642 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4647 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4643 introduced logging bug: all history before logging started was
4648 introduced logging bug: all history before logging started was
4644 being written one character per line! This came from the redesign
4649 being written one character per line! This came from the redesign
4645 of the input history as a special list which slices to strings,
4650 of the input history as a special list which slices to strings,
4646 not to lists.
4651 not to lists.
4647
4652
4648 2002-05-20 Fernando Perez <fperez@colorado.edu>
4653 2002-05-20 Fernando Perez <fperez@colorado.edu>
4649
4654
4650 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4655 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4651 be an attribute of all classes in this module. The design of these
4656 be an attribute of all classes in this module. The design of these
4652 classes needs some serious overhauling.
4657 classes needs some serious overhauling.
4653
4658
4654 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4659 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4655 which was ignoring '_' in option names.
4660 which was ignoring '_' in option names.
4656
4661
4657 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4662 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4658 'Verbose_novars' to 'Context' and made it the new default. It's a
4663 'Verbose_novars' to 'Context' and made it the new default. It's a
4659 bit more readable and also safer than verbose.
4664 bit more readable and also safer than verbose.
4660
4665
4661 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4666 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4662 triple-quoted strings.
4667 triple-quoted strings.
4663
4668
4664 * IPython/OInspect.py (__all__): new module exposing the object
4669 * IPython/OInspect.py (__all__): new module exposing the object
4665 introspection facilities. Now the corresponding magics are dummy
4670 introspection facilities. Now the corresponding magics are dummy
4666 wrappers around this. Having this module will make it much easier
4671 wrappers around this. Having this module will make it much easier
4667 to put these functions into our modified pdb.
4672 to put these functions into our modified pdb.
4668 This new object inspector system uses the new colorizing module,
4673 This new object inspector system uses the new colorizing module,
4669 so source code and other things are nicely syntax highlighted.
4674 so source code and other things are nicely syntax highlighted.
4670
4675
4671 2002-05-18 Fernando Perez <fperez@colorado.edu>
4676 2002-05-18 Fernando Perez <fperez@colorado.edu>
4672
4677
4673 * IPython/ColorANSI.py: Split the coloring tools into a separate
4678 * IPython/ColorANSI.py: Split the coloring tools into a separate
4674 module so I can use them in other code easier (they were part of
4679 module so I can use them in other code easier (they were part of
4675 ultraTB).
4680 ultraTB).
4676
4681
4677 2002-05-17 Fernando Perez <fperez@colorado.edu>
4682 2002-05-17 Fernando Perez <fperez@colorado.edu>
4678
4683
4679 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4684 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4680 fixed it to set the global 'g' also to the called instance, as
4685 fixed it to set the global 'g' also to the called instance, as
4681 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4686 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4682 user's 'g' variables).
4687 user's 'g' variables).
4683
4688
4684 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4689 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4685 global variables (aliases to _ih,_oh) so that users which expect
4690 global variables (aliases to _ih,_oh) so that users which expect
4686 In[5] or Out[7] to work aren't unpleasantly surprised.
4691 In[5] or Out[7] to work aren't unpleasantly surprised.
4687 (InputList.__getslice__): new class to allow executing slices of
4692 (InputList.__getslice__): new class to allow executing slices of
4688 input history directly. Very simple class, complements the use of
4693 input history directly. Very simple class, complements the use of
4689 macros.
4694 macros.
4690
4695
4691 2002-05-16 Fernando Perez <fperez@colorado.edu>
4696 2002-05-16 Fernando Perez <fperez@colorado.edu>
4692
4697
4693 * setup.py (docdirbase): make doc directory be just doc/IPython
4698 * setup.py (docdirbase): make doc directory be just doc/IPython
4694 without version numbers, it will reduce clutter for users.
4699 without version numbers, it will reduce clutter for users.
4695
4700
4696 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4701 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4697 execfile call to prevent possible memory leak. See for details:
4702 execfile call to prevent possible memory leak. See for details:
4698 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4703 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4699
4704
4700 2002-05-15 Fernando Perez <fperez@colorado.edu>
4705 2002-05-15 Fernando Perez <fperez@colorado.edu>
4701
4706
4702 * IPython/Magic.py (Magic.magic_psource): made the object
4707 * IPython/Magic.py (Magic.magic_psource): made the object
4703 introspection names be more standard: pdoc, pdef, pfile and
4708 introspection names be more standard: pdoc, pdef, pfile and
4704 psource. They all print/page their output, and it makes
4709 psource. They all print/page their output, and it makes
4705 remembering them easier. Kept old names for compatibility as
4710 remembering them easier. Kept old names for compatibility as
4706 aliases.
4711 aliases.
4707
4712
4708 2002-05-14 Fernando Perez <fperez@colorado.edu>
4713 2002-05-14 Fernando Perez <fperez@colorado.edu>
4709
4714
4710 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4715 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4711 what the mouse problem was. The trick is to use gnuplot with temp
4716 what the mouse problem was. The trick is to use gnuplot with temp
4712 files and NOT with pipes (for data communication), because having
4717 files and NOT with pipes (for data communication), because having
4713 both pipes and the mouse on is bad news.
4718 both pipes and the mouse on is bad news.
4714
4719
4715 2002-05-13 Fernando Perez <fperez@colorado.edu>
4720 2002-05-13 Fernando Perez <fperez@colorado.edu>
4716
4721
4717 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4722 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4718 bug. Information would be reported about builtins even when
4723 bug. Information would be reported about builtins even when
4719 user-defined functions overrode them.
4724 user-defined functions overrode them.
4720
4725
4721 2002-05-11 Fernando Perez <fperez@colorado.edu>
4726 2002-05-11 Fernando Perez <fperez@colorado.edu>
4722
4727
4723 * IPython/__init__.py (__all__): removed FlexCompleter from
4728 * IPython/__init__.py (__all__): removed FlexCompleter from
4724 __all__ so that things don't fail in platforms without readline.
4729 __all__ so that things don't fail in platforms without readline.
4725
4730
4726 2002-05-10 Fernando Perez <fperez@colorado.edu>
4731 2002-05-10 Fernando Perez <fperez@colorado.edu>
4727
4732
4728 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4733 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4729 it requires Numeric, effectively making Numeric a dependency for
4734 it requires Numeric, effectively making Numeric a dependency for
4730 IPython.
4735 IPython.
4731
4736
4732 * Released 0.2.13
4737 * Released 0.2.13
4733
4738
4734 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4739 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4735 profiler interface. Now all the major options from the profiler
4740 profiler interface. Now all the major options from the profiler
4736 module are directly supported in IPython, both for single
4741 module are directly supported in IPython, both for single
4737 expressions (@prun) and for full programs (@run -p).
4742 expressions (@prun) and for full programs (@run -p).
4738
4743
4739 2002-05-09 Fernando Perez <fperez@colorado.edu>
4744 2002-05-09 Fernando Perez <fperez@colorado.edu>
4740
4745
4741 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4746 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4742 magic properly formatted for screen.
4747 magic properly formatted for screen.
4743
4748
4744 * setup.py (make_shortcut): Changed things to put pdf version in
4749 * setup.py (make_shortcut): Changed things to put pdf version in
4745 doc/ instead of doc/manual (had to change lyxport a bit).
4750 doc/ instead of doc/manual (had to change lyxport a bit).
4746
4751
4747 * IPython/Magic.py (Profile.string_stats): made profile runs go
4752 * IPython/Magic.py (Profile.string_stats): made profile runs go
4748 through pager (they are long and a pager allows searching, saving,
4753 through pager (they are long and a pager allows searching, saving,
4749 etc.)
4754 etc.)
4750
4755
4751 2002-05-08 Fernando Perez <fperez@colorado.edu>
4756 2002-05-08 Fernando Perez <fperez@colorado.edu>
4752
4757
4753 * Released 0.2.12
4758 * Released 0.2.12
4754
4759
4755 2002-05-06 Fernando Perez <fperez@colorado.edu>
4760 2002-05-06 Fernando Perez <fperez@colorado.edu>
4756
4761
4757 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4762 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4758 introduced); 'hist n1 n2' was broken.
4763 introduced); 'hist n1 n2' was broken.
4759 (Magic.magic_pdb): added optional on/off arguments to @pdb
4764 (Magic.magic_pdb): added optional on/off arguments to @pdb
4760 (Magic.magic_run): added option -i to @run, which executes code in
4765 (Magic.magic_run): added option -i to @run, which executes code in
4761 the IPython namespace instead of a clean one. Also added @irun as
4766 the IPython namespace instead of a clean one. Also added @irun as
4762 an alias to @run -i.
4767 an alias to @run -i.
4763
4768
4764 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4769 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4765 fixed (it didn't really do anything, the namespaces were wrong).
4770 fixed (it didn't really do anything, the namespaces were wrong).
4766
4771
4767 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4772 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4768
4773
4769 * IPython/__init__.py (__all__): Fixed package namespace, now
4774 * IPython/__init__.py (__all__): Fixed package namespace, now
4770 'import IPython' does give access to IPython.<all> as
4775 'import IPython' does give access to IPython.<all> as
4771 expected. Also renamed __release__ to Release.
4776 expected. Also renamed __release__ to Release.
4772
4777
4773 * IPython/Debugger.py (__license__): created new Pdb class which
4778 * IPython/Debugger.py (__license__): created new Pdb class which
4774 functions like a drop-in for the normal pdb.Pdb but does NOT
4779 functions like a drop-in for the normal pdb.Pdb but does NOT
4775 import readline by default. This way it doesn't muck up IPython's
4780 import readline by default. This way it doesn't muck up IPython's
4776 readline handling, and now tab-completion finally works in the
4781 readline handling, and now tab-completion finally works in the
4777 debugger -- sort of. It completes things globally visible, but the
4782 debugger -- sort of. It completes things globally visible, but the
4778 completer doesn't track the stack as pdb walks it. That's a bit
4783 completer doesn't track the stack as pdb walks it. That's a bit
4779 tricky, and I'll have to implement it later.
4784 tricky, and I'll have to implement it later.
4780
4785
4781 2002-05-05 Fernando Perez <fperez@colorado.edu>
4786 2002-05-05 Fernando Perez <fperez@colorado.edu>
4782
4787
4783 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4788 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4784 magic docstrings when printed via ? (explicit \'s were being
4789 magic docstrings when printed via ? (explicit \'s were being
4785 printed).
4790 printed).
4786
4791
4787 * IPython/ipmaker.py (make_IPython): fixed namespace
4792 * IPython/ipmaker.py (make_IPython): fixed namespace
4788 identification bug. Now variables loaded via logs or command-line
4793 identification bug. Now variables loaded via logs or command-line
4789 files are recognized in the interactive namespace by @who.
4794 files are recognized in the interactive namespace by @who.
4790
4795
4791 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4796 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4792 log replay system stemming from the string form of Structs.
4797 log replay system stemming from the string form of Structs.
4793
4798
4794 * IPython/Magic.py (Macro.__init__): improved macros to properly
4799 * IPython/Magic.py (Macro.__init__): improved macros to properly
4795 handle magic commands in them.
4800 handle magic commands in them.
4796 (Magic.magic_logstart): usernames are now expanded so 'logstart
4801 (Magic.magic_logstart): usernames are now expanded so 'logstart
4797 ~/mylog' now works.
4802 ~/mylog' now works.
4798
4803
4799 * IPython/iplib.py (complete): fixed bug where paths starting with
4804 * IPython/iplib.py (complete): fixed bug where paths starting with
4800 '/' would be completed as magic names.
4805 '/' would be completed as magic names.
4801
4806
4802 2002-05-04 Fernando Perez <fperez@colorado.edu>
4807 2002-05-04 Fernando Perez <fperez@colorado.edu>
4803
4808
4804 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4809 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4805 allow running full programs under the profiler's control.
4810 allow running full programs under the profiler's control.
4806
4811
4807 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4812 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4808 mode to report exceptions verbosely but without formatting
4813 mode to report exceptions verbosely but without formatting
4809 variables. This addresses the issue of ipython 'freezing' (it's
4814 variables. This addresses the issue of ipython 'freezing' (it's
4810 not frozen, but caught in an expensive formatting loop) when huge
4815 not frozen, but caught in an expensive formatting loop) when huge
4811 variables are in the context of an exception.
4816 variables are in the context of an exception.
4812 (VerboseTB.text): Added '--->' markers at line where exception was
4817 (VerboseTB.text): Added '--->' markers at line where exception was
4813 triggered. Much clearer to read, especially in NoColor modes.
4818 triggered. Much clearer to read, especially in NoColor modes.
4814
4819
4815 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4820 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4816 implemented in reverse when changing to the new parse_options().
4821 implemented in reverse when changing to the new parse_options().
4817
4822
4818 2002-05-03 Fernando Perez <fperez@colorado.edu>
4823 2002-05-03 Fernando Perez <fperez@colorado.edu>
4819
4824
4820 * IPython/Magic.py (Magic.parse_options): new function so that
4825 * IPython/Magic.py (Magic.parse_options): new function so that
4821 magics can parse options easier.
4826 magics can parse options easier.
4822 (Magic.magic_prun): new function similar to profile.run(),
4827 (Magic.magic_prun): new function similar to profile.run(),
4823 suggested by Chris Hart.
4828 suggested by Chris Hart.
4824 (Magic.magic_cd): fixed behavior so that it only changes if
4829 (Magic.magic_cd): fixed behavior so that it only changes if
4825 directory actually is in history.
4830 directory actually is in history.
4826
4831
4827 * IPython/usage.py (__doc__): added information about potential
4832 * IPython/usage.py (__doc__): added information about potential
4828 slowness of Verbose exception mode when there are huge data
4833 slowness of Verbose exception mode when there are huge data
4829 structures to be formatted (thanks to Archie Paulson).
4834 structures to be formatted (thanks to Archie Paulson).
4830
4835
4831 * IPython/ipmaker.py (make_IPython): Changed default logging
4836 * IPython/ipmaker.py (make_IPython): Changed default logging
4832 (when simply called with -log) to use curr_dir/ipython.log in
4837 (when simply called with -log) to use curr_dir/ipython.log in
4833 rotate mode. Fixed crash which was occuring with -log before
4838 rotate mode. Fixed crash which was occuring with -log before
4834 (thanks to Jim Boyle).
4839 (thanks to Jim Boyle).
4835
4840
4836 2002-05-01 Fernando Perez <fperez@colorado.edu>
4841 2002-05-01 Fernando Perez <fperez@colorado.edu>
4837
4842
4838 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4843 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4839 was nasty -- though somewhat of a corner case).
4844 was nasty -- though somewhat of a corner case).
4840
4845
4841 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4846 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4842 text (was a bug).
4847 text (was a bug).
4843
4848
4844 2002-04-30 Fernando Perez <fperez@colorado.edu>
4849 2002-04-30 Fernando Perez <fperez@colorado.edu>
4845
4850
4846 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4851 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4847 a print after ^D or ^C from the user so that the In[] prompt
4852 a print after ^D or ^C from the user so that the In[] prompt
4848 doesn't over-run the gnuplot one.
4853 doesn't over-run the gnuplot one.
4849
4854
4850 2002-04-29 Fernando Perez <fperez@colorado.edu>
4855 2002-04-29 Fernando Perez <fperez@colorado.edu>
4851
4856
4852 * Released 0.2.10
4857 * Released 0.2.10
4853
4858
4854 * IPython/__release__.py (version): get date dynamically.
4859 * IPython/__release__.py (version): get date dynamically.
4855
4860
4856 * Misc. documentation updates thanks to Arnd's comments. Also ran
4861 * Misc. documentation updates thanks to Arnd's comments. Also ran
4857 a full spellcheck on the manual (hadn't been done in a while).
4862 a full spellcheck on the manual (hadn't been done in a while).
4858
4863
4859 2002-04-27 Fernando Perez <fperez@colorado.edu>
4864 2002-04-27 Fernando Perez <fperez@colorado.edu>
4860
4865
4861 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4866 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4862 starting a log in mid-session would reset the input history list.
4867 starting a log in mid-session would reset the input history list.
4863
4868
4864 2002-04-26 Fernando Perez <fperez@colorado.edu>
4869 2002-04-26 Fernando Perez <fperez@colorado.edu>
4865
4870
4866 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4871 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4867 all files were being included in an update. Now anything in
4872 all files were being included in an update. Now anything in
4868 UserConfig that matches [A-Za-z]*.py will go (this excludes
4873 UserConfig that matches [A-Za-z]*.py will go (this excludes
4869 __init__.py)
4874 __init__.py)
4870
4875
4871 2002-04-25 Fernando Perez <fperez@colorado.edu>
4876 2002-04-25 Fernando Perez <fperez@colorado.edu>
4872
4877
4873 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4878 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4874 to __builtins__ so that any form of embedded or imported code can
4879 to __builtins__ so that any form of embedded or imported code can
4875 test for being inside IPython.
4880 test for being inside IPython.
4876
4881
4877 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4882 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4878 changed to GnuplotMagic because it's now an importable module,
4883 changed to GnuplotMagic because it's now an importable module,
4879 this makes the name follow that of the standard Gnuplot module.
4884 this makes the name follow that of the standard Gnuplot module.
4880 GnuplotMagic can now be loaded at any time in mid-session.
4885 GnuplotMagic can now be loaded at any time in mid-session.
4881
4886
4882 2002-04-24 Fernando Perez <fperez@colorado.edu>
4887 2002-04-24 Fernando Perez <fperez@colorado.edu>
4883
4888
4884 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4889 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4885 the globals (IPython has its own namespace) and the
4890 the globals (IPython has its own namespace) and the
4886 PhysicalQuantity stuff is much better anyway.
4891 PhysicalQuantity stuff is much better anyway.
4887
4892
4888 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4893 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4889 embedding example to standard user directory for
4894 embedding example to standard user directory for
4890 distribution. Also put it in the manual.
4895 distribution. Also put it in the manual.
4891
4896
4892 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4897 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4893 instance as first argument (so it doesn't rely on some obscure
4898 instance as first argument (so it doesn't rely on some obscure
4894 hidden global).
4899 hidden global).
4895
4900
4896 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4901 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4897 delimiters. While it prevents ().TAB from working, it allows
4902 delimiters. While it prevents ().TAB from working, it allows
4898 completions in open (... expressions. This is by far a more common
4903 completions in open (... expressions. This is by far a more common
4899 case.
4904 case.
4900
4905
4901 2002-04-23 Fernando Perez <fperez@colorado.edu>
4906 2002-04-23 Fernando Perez <fperez@colorado.edu>
4902
4907
4903 * IPython/Extensions/InterpreterPasteInput.py: new
4908 * IPython/Extensions/InterpreterPasteInput.py: new
4904 syntax-processing module for pasting lines with >>> or ... at the
4909 syntax-processing module for pasting lines with >>> or ... at the
4905 start.
4910 start.
4906
4911
4907 * IPython/Extensions/PhysicalQ_Interactive.py
4912 * IPython/Extensions/PhysicalQ_Interactive.py
4908 (PhysicalQuantityInteractive.__int__): fixed to work with either
4913 (PhysicalQuantityInteractive.__int__): fixed to work with either
4909 Numeric or math.
4914 Numeric or math.
4910
4915
4911 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4916 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4912 provided profiles. Now we have:
4917 provided profiles. Now we have:
4913 -math -> math module as * and cmath with its own namespace.
4918 -math -> math module as * and cmath with its own namespace.
4914 -numeric -> Numeric as *, plus gnuplot & grace
4919 -numeric -> Numeric as *, plus gnuplot & grace
4915 -physics -> same as before
4920 -physics -> same as before
4916
4921
4917 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4922 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4918 user-defined magics wouldn't be found by @magic if they were
4923 user-defined magics wouldn't be found by @magic if they were
4919 defined as class methods. Also cleaned up the namespace search
4924 defined as class methods. Also cleaned up the namespace search
4920 logic and the string building (to use %s instead of many repeated
4925 logic and the string building (to use %s instead of many repeated
4921 string adds).
4926 string adds).
4922
4927
4923 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4928 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4924 of user-defined magics to operate with class methods (cleaner, in
4929 of user-defined magics to operate with class methods (cleaner, in
4925 line with the gnuplot code).
4930 line with the gnuplot code).
4926
4931
4927 2002-04-22 Fernando Perez <fperez@colorado.edu>
4932 2002-04-22 Fernando Perez <fperez@colorado.edu>
4928
4933
4929 * setup.py: updated dependency list so that manual is updated when
4934 * setup.py: updated dependency list so that manual is updated when
4930 all included files change.
4935 all included files change.
4931
4936
4932 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4937 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4933 the delimiter removal option (the fix is ugly right now).
4938 the delimiter removal option (the fix is ugly right now).
4934
4939
4935 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4940 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4936 all of the math profile (quicker loading, no conflict between
4941 all of the math profile (quicker loading, no conflict between
4937 g-9.8 and g-gnuplot).
4942 g-9.8 and g-gnuplot).
4938
4943
4939 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4944 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4940 name of post-mortem files to IPython_crash_report.txt.
4945 name of post-mortem files to IPython_crash_report.txt.
4941
4946
4942 * Cleanup/update of the docs. Added all the new readline info and
4947 * Cleanup/update of the docs. Added all the new readline info and
4943 formatted all lists as 'real lists'.
4948 formatted all lists as 'real lists'.
4944
4949
4945 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4950 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4946 tab-completion options, since the full readline parse_and_bind is
4951 tab-completion options, since the full readline parse_and_bind is
4947 now accessible.
4952 now accessible.
4948
4953
4949 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4954 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4950 handling of readline options. Now users can specify any string to
4955 handling of readline options. Now users can specify any string to
4951 be passed to parse_and_bind(), as well as the delimiters to be
4956 be passed to parse_and_bind(), as well as the delimiters to be
4952 removed.
4957 removed.
4953 (InteractiveShell.__init__): Added __name__ to the global
4958 (InteractiveShell.__init__): Added __name__ to the global
4954 namespace so that things like Itpl which rely on its existence
4959 namespace so that things like Itpl which rely on its existence
4955 don't crash.
4960 don't crash.
4956 (InteractiveShell._prefilter): Defined the default with a _ so
4961 (InteractiveShell._prefilter): Defined the default with a _ so
4957 that prefilter() is easier to override, while the default one
4962 that prefilter() is easier to override, while the default one
4958 remains available.
4963 remains available.
4959
4964
4960 2002-04-18 Fernando Perez <fperez@colorado.edu>
4965 2002-04-18 Fernando Perez <fperez@colorado.edu>
4961
4966
4962 * Added information about pdb in the docs.
4967 * Added information about pdb in the docs.
4963
4968
4964 2002-04-17 Fernando Perez <fperez@colorado.edu>
4969 2002-04-17 Fernando Perez <fperez@colorado.edu>
4965
4970
4966 * IPython/ipmaker.py (make_IPython): added rc_override option to
4971 * IPython/ipmaker.py (make_IPython): added rc_override option to
4967 allow passing config options at creation time which may override
4972 allow passing config options at creation time which may override
4968 anything set in the config files or command line. This is
4973 anything set in the config files or command line. This is
4969 particularly useful for configuring embedded instances.
4974 particularly useful for configuring embedded instances.
4970
4975
4971 2002-04-15 Fernando Perez <fperez@colorado.edu>
4976 2002-04-15 Fernando Perez <fperez@colorado.edu>
4972
4977
4973 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4978 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4974 crash embedded instances because of the input cache falling out of
4979 crash embedded instances because of the input cache falling out of
4975 sync with the output counter.
4980 sync with the output counter.
4976
4981
4977 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4982 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4978 mode which calls pdb after an uncaught exception in IPython itself.
4983 mode which calls pdb after an uncaught exception in IPython itself.
4979
4984
4980 2002-04-14 Fernando Perez <fperez@colorado.edu>
4985 2002-04-14 Fernando Perez <fperez@colorado.edu>
4981
4986
4982 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4987 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4983 readline, fix it back after each call.
4988 readline, fix it back after each call.
4984
4989
4985 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4990 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4986 method to force all access via __call__(), which guarantees that
4991 method to force all access via __call__(), which guarantees that
4987 traceback references are properly deleted.
4992 traceback references are properly deleted.
4988
4993
4989 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4994 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4990 improve printing when pprint is in use.
4995 improve printing when pprint is in use.
4991
4996
4992 2002-04-13 Fernando Perez <fperez@colorado.edu>
4997 2002-04-13 Fernando Perez <fperez@colorado.edu>
4993
4998
4994 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4999 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4995 exceptions aren't caught anymore. If the user triggers one, he
5000 exceptions aren't caught anymore. If the user triggers one, he
4996 should know why he's doing it and it should go all the way up,
5001 should know why he's doing it and it should go all the way up,
4997 just like any other exception. So now @abort will fully kill the
5002 just like any other exception. So now @abort will fully kill the
4998 embedded interpreter and the embedding code (unless that happens
5003 embedded interpreter and the embedding code (unless that happens
4999 to catch SystemExit).
5004 to catch SystemExit).
5000
5005
5001 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5006 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5002 and a debugger() method to invoke the interactive pdb debugger
5007 and a debugger() method to invoke the interactive pdb debugger
5003 after printing exception information. Also added the corresponding
5008 after printing exception information. Also added the corresponding
5004 -pdb option and @pdb magic to control this feature, and updated
5009 -pdb option and @pdb magic to control this feature, and updated
5005 the docs. After a suggestion from Christopher Hart
5010 the docs. After a suggestion from Christopher Hart
5006 (hart-AT-caltech.edu).
5011 (hart-AT-caltech.edu).
5007
5012
5008 2002-04-12 Fernando Perez <fperez@colorado.edu>
5013 2002-04-12 Fernando Perez <fperez@colorado.edu>
5009
5014
5010 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5015 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5011 the exception handlers defined by the user (not the CrashHandler)
5016 the exception handlers defined by the user (not the CrashHandler)
5012 so that user exceptions don't trigger an ipython bug report.
5017 so that user exceptions don't trigger an ipython bug report.
5013
5018
5014 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5019 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5015 configurable (it should have always been so).
5020 configurable (it should have always been so).
5016
5021
5017 2002-03-26 Fernando Perez <fperez@colorado.edu>
5022 2002-03-26 Fernando Perez <fperez@colorado.edu>
5018
5023
5019 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5024 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5020 and there to fix embedding namespace issues. This should all be
5025 and there to fix embedding namespace issues. This should all be
5021 done in a more elegant way.
5026 done in a more elegant way.
5022
5027
5023 2002-03-25 Fernando Perez <fperez@colorado.edu>
5028 2002-03-25 Fernando Perez <fperez@colorado.edu>
5024
5029
5025 * IPython/genutils.py (get_home_dir): Try to make it work under
5030 * IPython/genutils.py (get_home_dir): Try to make it work under
5026 win9x also.
5031 win9x also.
5027
5032
5028 2002-03-20 Fernando Perez <fperez@colorado.edu>
5033 2002-03-20 Fernando Perez <fperez@colorado.edu>
5029
5034
5030 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5035 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5031 sys.displayhook untouched upon __init__.
5036 sys.displayhook untouched upon __init__.
5032
5037
5033 2002-03-19 Fernando Perez <fperez@colorado.edu>
5038 2002-03-19 Fernando Perez <fperez@colorado.edu>
5034
5039
5035 * Released 0.2.9 (for embedding bug, basically).
5040 * Released 0.2.9 (for embedding bug, basically).
5036
5041
5037 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5042 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5038 exceptions so that enclosing shell's state can be restored.
5043 exceptions so that enclosing shell's state can be restored.
5039
5044
5040 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5045 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5041 naming conventions in the .ipython/ dir.
5046 naming conventions in the .ipython/ dir.
5042
5047
5043 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5048 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5044 from delimiters list so filenames with - in them get expanded.
5049 from delimiters list so filenames with - in them get expanded.
5045
5050
5046 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5051 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5047 sys.displayhook not being properly restored after an embedded call.
5052 sys.displayhook not being properly restored after an embedded call.
5048
5053
5049 2002-03-18 Fernando Perez <fperez@colorado.edu>
5054 2002-03-18 Fernando Perez <fperez@colorado.edu>
5050
5055
5051 * Released 0.2.8
5056 * Released 0.2.8
5052
5057
5053 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5058 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5054 some files weren't being included in a -upgrade.
5059 some files weren't being included in a -upgrade.
5055 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5060 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5056 on' so that the first tab completes.
5061 on' so that the first tab completes.
5057 (InteractiveShell.handle_magic): fixed bug with spaces around
5062 (InteractiveShell.handle_magic): fixed bug with spaces around
5058 quotes breaking many magic commands.
5063 quotes breaking many magic commands.
5059
5064
5060 * setup.py: added note about ignoring the syntax error messages at
5065 * setup.py: added note about ignoring the syntax error messages at
5061 installation.
5066 installation.
5062
5067
5063 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5068 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5064 streamlining the gnuplot interface, now there's only one magic @gp.
5069 streamlining the gnuplot interface, now there's only one magic @gp.
5065
5070
5066 2002-03-17 Fernando Perez <fperez@colorado.edu>
5071 2002-03-17 Fernando Perez <fperez@colorado.edu>
5067
5072
5068 * IPython/UserConfig/magic_gnuplot.py: new name for the
5073 * IPython/UserConfig/magic_gnuplot.py: new name for the
5069 example-magic_pm.py file. Much enhanced system, now with a shell
5074 example-magic_pm.py file. Much enhanced system, now with a shell
5070 for communicating directly with gnuplot, one command at a time.
5075 for communicating directly with gnuplot, one command at a time.
5071
5076
5072 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5077 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5073 setting __name__=='__main__'.
5078 setting __name__=='__main__'.
5074
5079
5075 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5080 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5076 mini-shell for accessing gnuplot from inside ipython. Should
5081 mini-shell for accessing gnuplot from inside ipython. Should
5077 extend it later for grace access too. Inspired by Arnd's
5082 extend it later for grace access too. Inspired by Arnd's
5078 suggestion.
5083 suggestion.
5079
5084
5080 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5085 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5081 calling magic functions with () in their arguments. Thanks to Arnd
5086 calling magic functions with () in their arguments. Thanks to Arnd
5082 Baecker for pointing this to me.
5087 Baecker for pointing this to me.
5083
5088
5084 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5089 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5085 infinitely for integer or complex arrays (only worked with floats).
5090 infinitely for integer or complex arrays (only worked with floats).
5086
5091
5087 2002-03-16 Fernando Perez <fperez@colorado.edu>
5092 2002-03-16 Fernando Perez <fperez@colorado.edu>
5088
5093
5089 * setup.py: Merged setup and setup_windows into a single script
5094 * setup.py: Merged setup and setup_windows into a single script
5090 which properly handles things for windows users.
5095 which properly handles things for windows users.
5091
5096
5092 2002-03-15 Fernando Perez <fperez@colorado.edu>
5097 2002-03-15 Fernando Perez <fperez@colorado.edu>
5093
5098
5094 * Big change to the manual: now the magics are all automatically
5099 * Big change to the manual: now the magics are all automatically
5095 documented. This information is generated from their docstrings
5100 documented. This information is generated from their docstrings
5096 and put in a latex file included by the manual lyx file. This way
5101 and put in a latex file included by the manual lyx file. This way
5097 we get always up to date information for the magics. The manual
5102 we get always up to date information for the magics. The manual
5098 now also has proper version information, also auto-synced.
5103 now also has proper version information, also auto-synced.
5099
5104
5100 For this to work, an undocumented --magic_docstrings option was added.
5105 For this to work, an undocumented --magic_docstrings option was added.
5101
5106
5102 2002-03-13 Fernando Perez <fperez@colorado.edu>
5107 2002-03-13 Fernando Perez <fperez@colorado.edu>
5103
5108
5104 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5109 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5105 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5110 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5106
5111
5107 2002-03-12 Fernando Perez <fperez@colorado.edu>
5112 2002-03-12 Fernando Perez <fperez@colorado.edu>
5108
5113
5109 * IPython/ultraTB.py (TermColors): changed color escapes again to
5114 * IPython/ultraTB.py (TermColors): changed color escapes again to
5110 fix the (old, reintroduced) line-wrapping bug. Basically, if
5115 fix the (old, reintroduced) line-wrapping bug. Basically, if
5111 \001..\002 aren't given in the color escapes, lines get wrapped
5116 \001..\002 aren't given in the color escapes, lines get wrapped
5112 weirdly. But giving those screws up old xterms and emacs terms. So
5117 weirdly. But giving those screws up old xterms and emacs terms. So
5113 I added some logic for emacs terms to be ok, but I can't identify old
5118 I added some logic for emacs terms to be ok, but I can't identify old
5114 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5119 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5115
5120
5116 2002-03-10 Fernando Perez <fperez@colorado.edu>
5121 2002-03-10 Fernando Perez <fperez@colorado.edu>
5117
5122
5118 * IPython/usage.py (__doc__): Various documentation cleanups and
5123 * IPython/usage.py (__doc__): Various documentation cleanups and
5119 updates, both in usage docstrings and in the manual.
5124 updates, both in usage docstrings and in the manual.
5120
5125
5121 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5126 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5122 handling of caching. Set minimum acceptabe value for having a
5127 handling of caching. Set minimum acceptabe value for having a
5123 cache at 20 values.
5128 cache at 20 values.
5124
5129
5125 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5130 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5126 install_first_time function to a method, renamed it and added an
5131 install_first_time function to a method, renamed it and added an
5127 'upgrade' mode. Now people can update their config directory with
5132 'upgrade' mode. Now people can update their config directory with
5128 a simple command line switch (-upgrade, also new).
5133 a simple command line switch (-upgrade, also new).
5129
5134
5130 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5135 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5131 @file (convenient for automagic users under Python >= 2.2).
5136 @file (convenient for automagic users under Python >= 2.2).
5132 Removed @files (it seemed more like a plural than an abbrev. of
5137 Removed @files (it seemed more like a plural than an abbrev. of
5133 'file show').
5138 'file show').
5134
5139
5135 * IPython/iplib.py (install_first_time): Fixed crash if there were
5140 * IPython/iplib.py (install_first_time): Fixed crash if there were
5136 backup files ('~') in .ipython/ install directory.
5141 backup files ('~') in .ipython/ install directory.
5137
5142
5138 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5143 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5139 system. Things look fine, but these changes are fairly
5144 system. Things look fine, but these changes are fairly
5140 intrusive. Test them for a few days.
5145 intrusive. Test them for a few days.
5141
5146
5142 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5147 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5143 the prompts system. Now all in/out prompt strings are user
5148 the prompts system. Now all in/out prompt strings are user
5144 controllable. This is particularly useful for embedding, as one
5149 controllable. This is particularly useful for embedding, as one
5145 can tag embedded instances with particular prompts.
5150 can tag embedded instances with particular prompts.
5146
5151
5147 Also removed global use of sys.ps1/2, which now allows nested
5152 Also removed global use of sys.ps1/2, which now allows nested
5148 embeddings without any problems. Added command-line options for
5153 embeddings without any problems. Added command-line options for
5149 the prompt strings.
5154 the prompt strings.
5150
5155
5151 2002-03-08 Fernando Perez <fperez@colorado.edu>
5156 2002-03-08 Fernando Perez <fperez@colorado.edu>
5152
5157
5153 * IPython/UserConfig/example-embed-short.py (ipshell): added
5158 * IPython/UserConfig/example-embed-short.py (ipshell): added
5154 example file with the bare minimum code for embedding.
5159 example file with the bare minimum code for embedding.
5155
5160
5156 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5161 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5157 functionality for the embeddable shell to be activated/deactivated
5162 functionality for the embeddable shell to be activated/deactivated
5158 either globally or at each call.
5163 either globally or at each call.
5159
5164
5160 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5165 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5161 rewriting the prompt with '--->' for auto-inputs with proper
5166 rewriting the prompt with '--->' for auto-inputs with proper
5162 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5167 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5163 this is handled by the prompts class itself, as it should.
5168 this is handled by the prompts class itself, as it should.
5164
5169
5165 2002-03-05 Fernando Perez <fperez@colorado.edu>
5170 2002-03-05 Fernando Perez <fperez@colorado.edu>
5166
5171
5167 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5172 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5168 @logstart to avoid name clashes with the math log function.
5173 @logstart to avoid name clashes with the math log function.
5169
5174
5170 * Big updates to X/Emacs section of the manual.
5175 * Big updates to X/Emacs section of the manual.
5171
5176
5172 * Removed ipython_emacs. Milan explained to me how to pass
5177 * Removed ipython_emacs. Milan explained to me how to pass
5173 arguments to ipython through Emacs. Some day I'm going to end up
5178 arguments to ipython through Emacs. Some day I'm going to end up
5174 learning some lisp...
5179 learning some lisp...
5175
5180
5176 2002-03-04 Fernando Perez <fperez@colorado.edu>
5181 2002-03-04 Fernando Perez <fperez@colorado.edu>
5177
5182
5178 * IPython/ipython_emacs: Created script to be used as the
5183 * IPython/ipython_emacs: Created script to be used as the
5179 py-python-command Emacs variable so we can pass IPython
5184 py-python-command Emacs variable so we can pass IPython
5180 parameters. I can't figure out how to tell Emacs directly to pass
5185 parameters. I can't figure out how to tell Emacs directly to pass
5181 parameters to IPython, so a dummy shell script will do it.
5186 parameters to IPython, so a dummy shell script will do it.
5182
5187
5183 Other enhancements made for things to work better under Emacs'
5188 Other enhancements made for things to work better under Emacs'
5184 various types of terminals. Many thanks to Milan Zamazal
5189 various types of terminals. Many thanks to Milan Zamazal
5185 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5190 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5186
5191
5187 2002-03-01 Fernando Perez <fperez@colorado.edu>
5192 2002-03-01 Fernando Perez <fperez@colorado.edu>
5188
5193
5189 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5194 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5190 that loading of readline is now optional. This gives better
5195 that loading of readline is now optional. This gives better
5191 control to emacs users.
5196 control to emacs users.
5192
5197
5193 * IPython/ultraTB.py (__date__): Modified color escape sequences
5198 * IPython/ultraTB.py (__date__): Modified color escape sequences
5194 and now things work fine under xterm and in Emacs' term buffers
5199 and now things work fine under xterm and in Emacs' term buffers
5195 (though not shell ones). Well, in emacs you get colors, but all
5200 (though not shell ones). Well, in emacs you get colors, but all
5196 seem to be 'light' colors (no difference between dark and light
5201 seem to be 'light' colors (no difference between dark and light
5197 ones). But the garbage chars are gone, and also in xterms. It
5202 ones). But the garbage chars are gone, and also in xterms. It
5198 seems that now I'm using 'cleaner' ansi sequences.
5203 seems that now I'm using 'cleaner' ansi sequences.
5199
5204
5200 2002-02-21 Fernando Perez <fperez@colorado.edu>
5205 2002-02-21 Fernando Perez <fperez@colorado.edu>
5201
5206
5202 * Released 0.2.7 (mainly to publish the scoping fix).
5207 * Released 0.2.7 (mainly to publish the scoping fix).
5203
5208
5204 * IPython/Logger.py (Logger.logstate): added. A corresponding
5209 * IPython/Logger.py (Logger.logstate): added. A corresponding
5205 @logstate magic was created.
5210 @logstate magic was created.
5206
5211
5207 * IPython/Magic.py: fixed nested scoping problem under Python
5212 * IPython/Magic.py: fixed nested scoping problem under Python
5208 2.1.x (automagic wasn't working).
5213 2.1.x (automagic wasn't working).
5209
5214
5210 2002-02-20 Fernando Perez <fperez@colorado.edu>
5215 2002-02-20 Fernando Perez <fperez@colorado.edu>
5211
5216
5212 * Released 0.2.6.
5217 * Released 0.2.6.
5213
5218
5214 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5219 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5215 option so that logs can come out without any headers at all.
5220 option so that logs can come out without any headers at all.
5216
5221
5217 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5222 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5218 SciPy.
5223 SciPy.
5219
5224
5220 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5225 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5221 that embedded IPython calls don't require vars() to be explicitly
5226 that embedded IPython calls don't require vars() to be explicitly
5222 passed. Now they are extracted from the caller's frame (code
5227 passed. Now they are extracted from the caller's frame (code
5223 snatched from Eric Jones' weave). Added better documentation to
5228 snatched from Eric Jones' weave). Added better documentation to
5224 the section on embedding and the example file.
5229 the section on embedding and the example file.
5225
5230
5226 * IPython/genutils.py (page): Changed so that under emacs, it just
5231 * IPython/genutils.py (page): Changed so that under emacs, it just
5227 prints the string. You can then page up and down in the emacs
5232 prints the string. You can then page up and down in the emacs
5228 buffer itself. This is how the builtin help() works.
5233 buffer itself. This is how the builtin help() works.
5229
5234
5230 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5235 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5231 macro scoping: macros need to be executed in the user's namespace
5236 macro scoping: macros need to be executed in the user's namespace
5232 to work as if they had been typed by the user.
5237 to work as if they had been typed by the user.
5233
5238
5234 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5239 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5235 execute automatically (no need to type 'exec...'). They then
5240 execute automatically (no need to type 'exec...'). They then
5236 behave like 'true macros'. The printing system was also modified
5241 behave like 'true macros'. The printing system was also modified
5237 for this to work.
5242 for this to work.
5238
5243
5239 2002-02-19 Fernando Perez <fperez@colorado.edu>
5244 2002-02-19 Fernando Perez <fperez@colorado.edu>
5240
5245
5241 * IPython/genutils.py (page_file): new function for paging files
5246 * IPython/genutils.py (page_file): new function for paging files
5242 in an OS-independent way. Also necessary for file viewing to work
5247 in an OS-independent way. Also necessary for file viewing to work
5243 well inside Emacs buffers.
5248 well inside Emacs buffers.
5244 (page): Added checks for being in an emacs buffer.
5249 (page): Added checks for being in an emacs buffer.
5245 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5250 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5246 same bug in iplib.
5251 same bug in iplib.
5247
5252
5248 2002-02-18 Fernando Perez <fperez@colorado.edu>
5253 2002-02-18 Fernando Perez <fperez@colorado.edu>
5249
5254
5250 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5255 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5251 of readline so that IPython can work inside an Emacs buffer.
5256 of readline so that IPython can work inside an Emacs buffer.
5252
5257
5253 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5258 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5254 method signatures (they weren't really bugs, but it looks cleaner
5259 method signatures (they weren't really bugs, but it looks cleaner
5255 and keeps PyChecker happy).
5260 and keeps PyChecker happy).
5256
5261
5257 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5262 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5258 for implementing various user-defined hooks. Currently only
5263 for implementing various user-defined hooks. Currently only
5259 display is done.
5264 display is done.
5260
5265
5261 * IPython/Prompts.py (CachedOutput._display): changed display
5266 * IPython/Prompts.py (CachedOutput._display): changed display
5262 functions so that they can be dynamically changed by users easily.
5267 functions so that they can be dynamically changed by users easily.
5263
5268
5264 * IPython/Extensions/numeric_formats.py (num_display): added an
5269 * IPython/Extensions/numeric_formats.py (num_display): added an
5265 extension for printing NumPy arrays in flexible manners. It
5270 extension for printing NumPy arrays in flexible manners. It
5266 doesn't do anything yet, but all the structure is in
5271 doesn't do anything yet, but all the structure is in
5267 place. Ultimately the plan is to implement output format control
5272 place. Ultimately the plan is to implement output format control
5268 like in Octave.
5273 like in Octave.
5269
5274
5270 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5275 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5271 methods are found at run-time by all the automatic machinery.
5276 methods are found at run-time by all the automatic machinery.
5272
5277
5273 2002-02-17 Fernando Perez <fperez@colorado.edu>
5278 2002-02-17 Fernando Perez <fperez@colorado.edu>
5274
5279
5275 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5280 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5276 whole file a little.
5281 whole file a little.
5277
5282
5278 * ToDo: closed this document. Now there's a new_design.lyx
5283 * ToDo: closed this document. Now there's a new_design.lyx
5279 document for all new ideas. Added making a pdf of it for the
5284 document for all new ideas. Added making a pdf of it for the
5280 end-user distro.
5285 end-user distro.
5281
5286
5282 * IPython/Logger.py (Logger.switch_log): Created this to replace
5287 * IPython/Logger.py (Logger.switch_log): Created this to replace
5283 logon() and logoff(). It also fixes a nasty crash reported by
5288 logon() and logoff(). It also fixes a nasty crash reported by
5284 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5289 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5285
5290
5286 * IPython/iplib.py (complete): got auto-completion to work with
5291 * IPython/iplib.py (complete): got auto-completion to work with
5287 automagic (I had wanted this for a long time).
5292 automagic (I had wanted this for a long time).
5288
5293
5289 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5294 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5290 to @file, since file() is now a builtin and clashes with automagic
5295 to @file, since file() is now a builtin and clashes with automagic
5291 for @file.
5296 for @file.
5292
5297
5293 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5298 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5294 of this was previously in iplib, which had grown to more than 2000
5299 of this was previously in iplib, which had grown to more than 2000
5295 lines, way too long. No new functionality, but it makes managing
5300 lines, way too long. No new functionality, but it makes managing
5296 the code a bit easier.
5301 the code a bit easier.
5297
5302
5298 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5303 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5299 information to crash reports.
5304 information to crash reports.
5300
5305
5301 2002-02-12 Fernando Perez <fperez@colorado.edu>
5306 2002-02-12 Fernando Perez <fperez@colorado.edu>
5302
5307
5303 * Released 0.2.5.
5308 * Released 0.2.5.
5304
5309
5305 2002-02-11 Fernando Perez <fperez@colorado.edu>
5310 2002-02-11 Fernando Perez <fperez@colorado.edu>
5306
5311
5307 * Wrote a relatively complete Windows installer. It puts
5312 * Wrote a relatively complete Windows installer. It puts
5308 everything in place, creates Start Menu entries and fixes the
5313 everything in place, creates Start Menu entries and fixes the
5309 color issues. Nothing fancy, but it works.
5314 color issues. Nothing fancy, but it works.
5310
5315
5311 2002-02-10 Fernando Perez <fperez@colorado.edu>
5316 2002-02-10 Fernando Perez <fperez@colorado.edu>
5312
5317
5313 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5318 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5314 os.path.expanduser() call so that we can type @run ~/myfile.py and
5319 os.path.expanduser() call so that we can type @run ~/myfile.py and
5315 have thigs work as expected.
5320 have thigs work as expected.
5316
5321
5317 * IPython/genutils.py (page): fixed exception handling so things
5322 * IPython/genutils.py (page): fixed exception handling so things
5318 work both in Unix and Windows correctly. Quitting a pager triggers
5323 work both in Unix and Windows correctly. Quitting a pager triggers
5319 an IOError/broken pipe in Unix, and in windows not finding a pager
5324 an IOError/broken pipe in Unix, and in windows not finding a pager
5320 is also an IOError, so I had to actually look at the return value
5325 is also an IOError, so I had to actually look at the return value
5321 of the exception, not just the exception itself. Should be ok now.
5326 of the exception, not just the exception itself. Should be ok now.
5322
5327
5323 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5328 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5324 modified to allow case-insensitive color scheme changes.
5329 modified to allow case-insensitive color scheme changes.
5325
5330
5326 2002-02-09 Fernando Perez <fperez@colorado.edu>
5331 2002-02-09 Fernando Perez <fperez@colorado.edu>
5327
5332
5328 * IPython/genutils.py (native_line_ends): new function to leave
5333 * IPython/genutils.py (native_line_ends): new function to leave
5329 user config files with os-native line-endings.
5334 user config files with os-native line-endings.
5330
5335
5331 * README and manual updates.
5336 * README and manual updates.
5332
5337
5333 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5338 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5334 instead of StringType to catch Unicode strings.
5339 instead of StringType to catch Unicode strings.
5335
5340
5336 * IPython/genutils.py (filefind): fixed bug for paths with
5341 * IPython/genutils.py (filefind): fixed bug for paths with
5337 embedded spaces (very common in Windows).
5342 embedded spaces (very common in Windows).
5338
5343
5339 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5344 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5340 files under Windows, so that they get automatically associated
5345 files under Windows, so that they get automatically associated
5341 with a text editor. Windows makes it a pain to handle
5346 with a text editor. Windows makes it a pain to handle
5342 extension-less files.
5347 extension-less files.
5343
5348
5344 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5349 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5345 warning about readline only occur for Posix. In Windows there's no
5350 warning about readline only occur for Posix. In Windows there's no
5346 way to get readline, so why bother with the warning.
5351 way to get readline, so why bother with the warning.
5347
5352
5348 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5353 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5349 for __str__ instead of dir(self), since dir() changed in 2.2.
5354 for __str__ instead of dir(self), since dir() changed in 2.2.
5350
5355
5351 * Ported to Windows! Tested on XP, I suspect it should work fine
5356 * Ported to Windows! Tested on XP, I suspect it should work fine
5352 on NT/2000, but I don't think it will work on 98 et al. That
5357 on NT/2000, but I don't think it will work on 98 et al. That
5353 series of Windows is such a piece of junk anyway that I won't try
5358 series of Windows is such a piece of junk anyway that I won't try
5354 porting it there. The XP port was straightforward, showed a few
5359 porting it there. The XP port was straightforward, showed a few
5355 bugs here and there (fixed all), in particular some string
5360 bugs here and there (fixed all), in particular some string
5356 handling stuff which required considering Unicode strings (which
5361 handling stuff which required considering Unicode strings (which
5357 Windows uses). This is good, but hasn't been too tested :) No
5362 Windows uses). This is good, but hasn't been too tested :) No
5358 fancy installer yet, I'll put a note in the manual so people at
5363 fancy installer yet, I'll put a note in the manual so people at
5359 least make manually a shortcut.
5364 least make manually a shortcut.
5360
5365
5361 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5366 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5362 into a single one, "colors". This now controls both prompt and
5367 into a single one, "colors". This now controls both prompt and
5363 exception color schemes, and can be changed both at startup
5368 exception color schemes, and can be changed both at startup
5364 (either via command-line switches or via ipythonrc files) and at
5369 (either via command-line switches or via ipythonrc files) and at
5365 runtime, with @colors.
5370 runtime, with @colors.
5366 (Magic.magic_run): renamed @prun to @run and removed the old
5371 (Magic.magic_run): renamed @prun to @run and removed the old
5367 @run. The two were too similar to warrant keeping both.
5372 @run. The two were too similar to warrant keeping both.
5368
5373
5369 2002-02-03 Fernando Perez <fperez@colorado.edu>
5374 2002-02-03 Fernando Perez <fperez@colorado.edu>
5370
5375
5371 * IPython/iplib.py (install_first_time): Added comment on how to
5376 * IPython/iplib.py (install_first_time): Added comment on how to
5372 configure the color options for first-time users. Put a <return>
5377 configure the color options for first-time users. Put a <return>
5373 request at the end so that small-terminal users get a chance to
5378 request at the end so that small-terminal users get a chance to
5374 read the startup info.
5379 read the startup info.
5375
5380
5376 2002-01-23 Fernando Perez <fperez@colorado.edu>
5381 2002-01-23 Fernando Perez <fperez@colorado.edu>
5377
5382
5378 * IPython/iplib.py (CachedOutput.update): Changed output memory
5383 * IPython/iplib.py (CachedOutput.update): Changed output memory
5379 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5384 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5380 input history we still use _i. Did this b/c these variable are
5385 input history we still use _i. Did this b/c these variable are
5381 very commonly used in interactive work, so the less we need to
5386 very commonly used in interactive work, so the less we need to
5382 type the better off we are.
5387 type the better off we are.
5383 (Magic.magic_prun): updated @prun to better handle the namespaces
5388 (Magic.magic_prun): updated @prun to better handle the namespaces
5384 the file will run in, including a fix for __name__ not being set
5389 the file will run in, including a fix for __name__ not being set
5385 before.
5390 before.
5386
5391
5387 2002-01-20 Fernando Perez <fperez@colorado.edu>
5392 2002-01-20 Fernando Perez <fperez@colorado.edu>
5388
5393
5389 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5394 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5390 extra garbage for Python 2.2. Need to look more carefully into
5395 extra garbage for Python 2.2. Need to look more carefully into
5391 this later.
5396 this later.
5392
5397
5393 2002-01-19 Fernando Perez <fperez@colorado.edu>
5398 2002-01-19 Fernando Perez <fperez@colorado.edu>
5394
5399
5395 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5400 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5396 display SyntaxError exceptions properly formatted when they occur
5401 display SyntaxError exceptions properly formatted when they occur
5397 (they can be triggered by imported code).
5402 (they can be triggered by imported code).
5398
5403
5399 2002-01-18 Fernando Perez <fperez@colorado.edu>
5404 2002-01-18 Fernando Perez <fperez@colorado.edu>
5400
5405
5401 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5406 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5402 SyntaxError exceptions are reported nicely formatted, instead of
5407 SyntaxError exceptions are reported nicely formatted, instead of
5403 spitting out only offset information as before.
5408 spitting out only offset information as before.
5404 (Magic.magic_prun): Added the @prun function for executing
5409 (Magic.magic_prun): Added the @prun function for executing
5405 programs with command line args inside IPython.
5410 programs with command line args inside IPython.
5406
5411
5407 2002-01-16 Fernando Perez <fperez@colorado.edu>
5412 2002-01-16 Fernando Perez <fperez@colorado.edu>
5408
5413
5409 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5414 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5410 to *not* include the last item given in a range. This brings their
5415 to *not* include the last item given in a range. This brings their
5411 behavior in line with Python's slicing:
5416 behavior in line with Python's slicing:
5412 a[n1:n2] -> a[n1]...a[n2-1]
5417 a[n1:n2] -> a[n1]...a[n2-1]
5413 It may be a bit less convenient, but I prefer to stick to Python's
5418 It may be a bit less convenient, but I prefer to stick to Python's
5414 conventions *everywhere*, so users never have to wonder.
5419 conventions *everywhere*, so users never have to wonder.
5415 (Magic.magic_macro): Added @macro function to ease the creation of
5420 (Magic.magic_macro): Added @macro function to ease the creation of
5416 macros.
5421 macros.
5417
5422
5418 2002-01-05 Fernando Perez <fperez@colorado.edu>
5423 2002-01-05 Fernando Perez <fperez@colorado.edu>
5419
5424
5420 * Released 0.2.4.
5425 * Released 0.2.4.
5421
5426
5422 * IPython/iplib.py (Magic.magic_pdef):
5427 * IPython/iplib.py (Magic.magic_pdef):
5423 (InteractiveShell.safe_execfile): report magic lines and error
5428 (InteractiveShell.safe_execfile): report magic lines and error
5424 lines without line numbers so one can easily copy/paste them for
5429 lines without line numbers so one can easily copy/paste them for
5425 re-execution.
5430 re-execution.
5426
5431
5427 * Updated manual with recent changes.
5432 * Updated manual with recent changes.
5428
5433
5429 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5434 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5430 docstring printing when class? is called. Very handy for knowing
5435 docstring printing when class? is called. Very handy for knowing
5431 how to create class instances (as long as __init__ is well
5436 how to create class instances (as long as __init__ is well
5432 documented, of course :)
5437 documented, of course :)
5433 (Magic.magic_doc): print both class and constructor docstrings.
5438 (Magic.magic_doc): print both class and constructor docstrings.
5434 (Magic.magic_pdef): give constructor info if passed a class and
5439 (Magic.magic_pdef): give constructor info if passed a class and
5435 __call__ info for callable object instances.
5440 __call__ info for callable object instances.
5436
5441
5437 2002-01-04 Fernando Perez <fperez@colorado.edu>
5442 2002-01-04 Fernando Perez <fperez@colorado.edu>
5438
5443
5439 * Made deep_reload() off by default. It doesn't always work
5444 * Made deep_reload() off by default. It doesn't always work
5440 exactly as intended, so it's probably safer to have it off. It's
5445 exactly as intended, so it's probably safer to have it off. It's
5441 still available as dreload() anyway, so nothing is lost.
5446 still available as dreload() anyway, so nothing is lost.
5442
5447
5443 2002-01-02 Fernando Perez <fperez@colorado.edu>
5448 2002-01-02 Fernando Perez <fperez@colorado.edu>
5444
5449
5445 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5450 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5446 so I wanted an updated release).
5451 so I wanted an updated release).
5447
5452
5448 2001-12-27 Fernando Perez <fperez@colorado.edu>
5453 2001-12-27 Fernando Perez <fperez@colorado.edu>
5449
5454
5450 * IPython/iplib.py (InteractiveShell.interact): Added the original
5455 * IPython/iplib.py (InteractiveShell.interact): Added the original
5451 code from 'code.py' for this module in order to change the
5456 code from 'code.py' for this module in order to change the
5452 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5457 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5453 the history cache would break when the user hit Ctrl-C, and
5458 the history cache would break when the user hit Ctrl-C, and
5454 interact() offers no way to add any hooks to it.
5459 interact() offers no way to add any hooks to it.
5455
5460
5456 2001-12-23 Fernando Perez <fperez@colorado.edu>
5461 2001-12-23 Fernando Perez <fperez@colorado.edu>
5457
5462
5458 * setup.py: added check for 'MANIFEST' before trying to remove
5463 * setup.py: added check for 'MANIFEST' before trying to remove
5459 it. Thanks to Sean Reifschneider.
5464 it. Thanks to Sean Reifschneider.
5460
5465
5461 2001-12-22 Fernando Perez <fperez@colorado.edu>
5466 2001-12-22 Fernando Perez <fperez@colorado.edu>
5462
5467
5463 * Released 0.2.2.
5468 * Released 0.2.2.
5464
5469
5465 * Finished (reasonably) writing the manual. Later will add the
5470 * Finished (reasonably) writing the manual. Later will add the
5466 python-standard navigation stylesheets, but for the time being
5471 python-standard navigation stylesheets, but for the time being
5467 it's fairly complete. Distribution will include html and pdf
5472 it's fairly complete. Distribution will include html and pdf
5468 versions.
5473 versions.
5469
5474
5470 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5475 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5471 (MayaVi author).
5476 (MayaVi author).
5472
5477
5473 2001-12-21 Fernando Perez <fperez@colorado.edu>
5478 2001-12-21 Fernando Perez <fperez@colorado.edu>
5474
5479
5475 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5480 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5476 good public release, I think (with the manual and the distutils
5481 good public release, I think (with the manual and the distutils
5477 installer). The manual can use some work, but that can go
5482 installer). The manual can use some work, but that can go
5478 slowly. Otherwise I think it's quite nice for end users. Next
5483 slowly. Otherwise I think it's quite nice for end users. Next
5479 summer, rewrite the guts of it...
5484 summer, rewrite the guts of it...
5480
5485
5481 * Changed format of ipythonrc files to use whitespace as the
5486 * Changed format of ipythonrc files to use whitespace as the
5482 separator instead of an explicit '='. Cleaner.
5487 separator instead of an explicit '='. Cleaner.
5483
5488
5484 2001-12-20 Fernando Perez <fperez@colorado.edu>
5489 2001-12-20 Fernando Perez <fperez@colorado.edu>
5485
5490
5486 * Started a manual in LyX. For now it's just a quick merge of the
5491 * Started a manual in LyX. For now it's just a quick merge of the
5487 various internal docstrings and READMEs. Later it may grow into a
5492 various internal docstrings and READMEs. Later it may grow into a
5488 nice, full-blown manual.
5493 nice, full-blown manual.
5489
5494
5490 * Set up a distutils based installer. Installation should now be
5495 * Set up a distutils based installer. Installation should now be
5491 trivially simple for end-users.
5496 trivially simple for end-users.
5492
5497
5493 2001-12-11 Fernando Perez <fperez@colorado.edu>
5498 2001-12-11 Fernando Perez <fperez@colorado.edu>
5494
5499
5495 * Released 0.2.0. First public release, announced it at
5500 * Released 0.2.0. First public release, announced it at
5496 comp.lang.python. From now on, just bugfixes...
5501 comp.lang.python. From now on, just bugfixes...
5497
5502
5498 * Went through all the files, set copyright/license notices and
5503 * Went through all the files, set copyright/license notices and
5499 cleaned up things. Ready for release.
5504 cleaned up things. Ready for release.
5500
5505
5501 2001-12-10 Fernando Perez <fperez@colorado.edu>
5506 2001-12-10 Fernando Perez <fperez@colorado.edu>
5502
5507
5503 * Changed the first-time installer not to use tarfiles. It's more
5508 * Changed the first-time installer not to use tarfiles. It's more
5504 robust now and less unix-dependent. Also makes it easier for
5509 robust now and less unix-dependent. Also makes it easier for
5505 people to later upgrade versions.
5510 people to later upgrade versions.
5506
5511
5507 * Changed @exit to @abort to reflect the fact that it's pretty
5512 * Changed @exit to @abort to reflect the fact that it's pretty
5508 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5513 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5509 becomes significant only when IPyhton is embedded: in that case,
5514 becomes significant only when IPyhton is embedded: in that case,
5510 C-D closes IPython only, but @abort kills the enclosing program
5515 C-D closes IPython only, but @abort kills the enclosing program
5511 too (unless it had called IPython inside a try catching
5516 too (unless it had called IPython inside a try catching
5512 SystemExit).
5517 SystemExit).
5513
5518
5514 * Created Shell module which exposes the actuall IPython Shell
5519 * Created Shell module which exposes the actuall IPython Shell
5515 classes, currently the normal and the embeddable one. This at
5520 classes, currently the normal and the embeddable one. This at
5516 least offers a stable interface we won't need to change when
5521 least offers a stable interface we won't need to change when
5517 (later) the internals are rewritten. That rewrite will be confined
5522 (later) the internals are rewritten. That rewrite will be confined
5518 to iplib and ipmaker, but the Shell interface should remain as is.
5523 to iplib and ipmaker, but the Shell interface should remain as is.
5519
5524
5520 * Added embed module which offers an embeddable IPShell object,
5525 * Added embed module which offers an embeddable IPShell object,
5521 useful to fire up IPython *inside* a running program. Great for
5526 useful to fire up IPython *inside* a running program. Great for
5522 debugging or dynamical data analysis.
5527 debugging or dynamical data analysis.
5523
5528
5524 2001-12-08 Fernando Perez <fperez@colorado.edu>
5529 2001-12-08 Fernando Perez <fperez@colorado.edu>
5525
5530
5526 * Fixed small bug preventing seeing info from methods of defined
5531 * Fixed small bug preventing seeing info from methods of defined
5527 objects (incorrect namespace in _ofind()).
5532 objects (incorrect namespace in _ofind()).
5528
5533
5529 * Documentation cleanup. Moved the main usage docstrings to a
5534 * Documentation cleanup. Moved the main usage docstrings to a
5530 separate file, usage.py (cleaner to maintain, and hopefully in the
5535 separate file, usage.py (cleaner to maintain, and hopefully in the
5531 future some perlpod-like way of producing interactive, man and
5536 future some perlpod-like way of producing interactive, man and
5532 html docs out of it will be found).
5537 html docs out of it will be found).
5533
5538
5534 * Added @profile to see your profile at any time.
5539 * Added @profile to see your profile at any time.
5535
5540
5536 * Added @p as an alias for 'print'. It's especially convenient if
5541 * Added @p as an alias for 'print'. It's especially convenient if
5537 using automagic ('p x' prints x).
5542 using automagic ('p x' prints x).
5538
5543
5539 * Small cleanups and fixes after a pychecker run.
5544 * Small cleanups and fixes after a pychecker run.
5540
5545
5541 * Changed the @cd command to handle @cd - and @cd -<n> for
5546 * Changed the @cd command to handle @cd - and @cd -<n> for
5542 visiting any directory in _dh.
5547 visiting any directory in _dh.
5543
5548
5544 * Introduced _dh, a history of visited directories. @dhist prints
5549 * Introduced _dh, a history of visited directories. @dhist prints
5545 it out with numbers.
5550 it out with numbers.
5546
5551
5547 2001-12-07 Fernando Perez <fperez@colorado.edu>
5552 2001-12-07 Fernando Perez <fperez@colorado.edu>
5548
5553
5549 * Released 0.1.22
5554 * Released 0.1.22
5550
5555
5551 * Made initialization a bit more robust against invalid color
5556 * Made initialization a bit more robust against invalid color
5552 options in user input (exit, not traceback-crash).
5557 options in user input (exit, not traceback-crash).
5553
5558
5554 * Changed the bug crash reporter to write the report only in the
5559 * Changed the bug crash reporter to write the report only in the
5555 user's .ipython directory. That way IPython won't litter people's
5560 user's .ipython directory. That way IPython won't litter people's
5556 hard disks with crash files all over the place. Also print on
5561 hard disks with crash files all over the place. Also print on
5557 screen the necessary mail command.
5562 screen the necessary mail command.
5558
5563
5559 * With the new ultraTB, implemented LightBG color scheme for light
5564 * With the new ultraTB, implemented LightBG color scheme for light
5560 background terminals. A lot of people like white backgrounds, so I
5565 background terminals. A lot of people like white backgrounds, so I
5561 guess we should at least give them something readable.
5566 guess we should at least give them something readable.
5562
5567
5563 2001-12-06 Fernando Perez <fperez@colorado.edu>
5568 2001-12-06 Fernando Perez <fperez@colorado.edu>
5564
5569
5565 * Modified the structure of ultraTB. Now there's a proper class
5570 * Modified the structure of ultraTB. Now there's a proper class
5566 for tables of color schemes which allow adding schemes easily and
5571 for tables of color schemes which allow adding schemes easily and
5567 switching the active scheme without creating a new instance every
5572 switching the active scheme without creating a new instance every
5568 time (which was ridiculous). The syntax for creating new schemes
5573 time (which was ridiculous). The syntax for creating new schemes
5569 is also cleaner. I think ultraTB is finally done, with a clean
5574 is also cleaner. I think ultraTB is finally done, with a clean
5570 class structure. Names are also much cleaner (now there's proper
5575 class structure. Names are also much cleaner (now there's proper
5571 color tables, no need for every variable to also have 'color' in
5576 color tables, no need for every variable to also have 'color' in
5572 its name).
5577 its name).
5573
5578
5574 * Broke down genutils into separate files. Now genutils only
5579 * Broke down genutils into separate files. Now genutils only
5575 contains utility functions, and classes have been moved to their
5580 contains utility functions, and classes have been moved to their
5576 own files (they had enough independent functionality to warrant
5581 own files (they had enough independent functionality to warrant
5577 it): ConfigLoader, OutputTrap, Struct.
5582 it): ConfigLoader, OutputTrap, Struct.
5578
5583
5579 2001-12-05 Fernando Perez <fperez@colorado.edu>
5584 2001-12-05 Fernando Perez <fperez@colorado.edu>
5580
5585
5581 * IPython turns 21! Released version 0.1.21, as a candidate for
5586 * IPython turns 21! Released version 0.1.21, as a candidate for
5582 public consumption. If all goes well, release in a few days.
5587 public consumption. If all goes well, release in a few days.
5583
5588
5584 * Fixed path bug (files in Extensions/ directory wouldn't be found
5589 * Fixed path bug (files in Extensions/ directory wouldn't be found
5585 unless IPython/ was explicitly in sys.path).
5590 unless IPython/ was explicitly in sys.path).
5586
5591
5587 * Extended the FlexCompleter class as MagicCompleter to allow
5592 * Extended the FlexCompleter class as MagicCompleter to allow
5588 completion of @-starting lines.
5593 completion of @-starting lines.
5589
5594
5590 * Created __release__.py file as a central repository for release
5595 * Created __release__.py file as a central repository for release
5591 info that other files can read from.
5596 info that other files can read from.
5592
5597
5593 * Fixed small bug in logging: when logging was turned on in
5598 * Fixed small bug in logging: when logging was turned on in
5594 mid-session, old lines with special meanings (!@?) were being
5599 mid-session, old lines with special meanings (!@?) were being
5595 logged without the prepended comment, which is necessary since
5600 logged without the prepended comment, which is necessary since
5596 they are not truly valid python syntax. This should make session
5601 they are not truly valid python syntax. This should make session
5597 restores produce less errors.
5602 restores produce less errors.
5598
5603
5599 * The namespace cleanup forced me to make a FlexCompleter class
5604 * The namespace cleanup forced me to make a FlexCompleter class
5600 which is nothing but a ripoff of rlcompleter, but with selectable
5605 which is nothing but a ripoff of rlcompleter, but with selectable
5601 namespace (rlcompleter only works in __main__.__dict__). I'll try
5606 namespace (rlcompleter only works in __main__.__dict__). I'll try
5602 to submit a note to the authors to see if this change can be
5607 to submit a note to the authors to see if this change can be
5603 incorporated in future rlcompleter releases (Dec.6: done)
5608 incorporated in future rlcompleter releases (Dec.6: done)
5604
5609
5605 * More fixes to namespace handling. It was a mess! Now all
5610 * More fixes to namespace handling. It was a mess! Now all
5606 explicit references to __main__.__dict__ are gone (except when
5611 explicit references to __main__.__dict__ are gone (except when
5607 really needed) and everything is handled through the namespace
5612 really needed) and everything is handled through the namespace
5608 dicts in the IPython instance. We seem to be getting somewhere
5613 dicts in the IPython instance. We seem to be getting somewhere
5609 with this, finally...
5614 with this, finally...
5610
5615
5611 * Small documentation updates.
5616 * Small documentation updates.
5612
5617
5613 * Created the Extensions directory under IPython (with an
5618 * Created the Extensions directory under IPython (with an
5614 __init__.py). Put the PhysicalQ stuff there. This directory should
5619 __init__.py). Put the PhysicalQ stuff there. This directory should
5615 be used for all special-purpose extensions.
5620 be used for all special-purpose extensions.
5616
5621
5617 * File renaming:
5622 * File renaming:
5618 ipythonlib --> ipmaker
5623 ipythonlib --> ipmaker
5619 ipplib --> iplib
5624 ipplib --> iplib
5620 This makes a bit more sense in terms of what these files actually do.
5625 This makes a bit more sense in terms of what these files actually do.
5621
5626
5622 * Moved all the classes and functions in ipythonlib to ipplib, so
5627 * Moved all the classes and functions in ipythonlib to ipplib, so
5623 now ipythonlib only has make_IPython(). This will ease up its
5628 now ipythonlib only has make_IPython(). This will ease up its
5624 splitting in smaller functional chunks later.
5629 splitting in smaller functional chunks later.
5625
5630
5626 * Cleaned up (done, I think) output of @whos. Better column
5631 * Cleaned up (done, I think) output of @whos. Better column
5627 formatting, and now shows str(var) for as much as it can, which is
5632 formatting, and now shows str(var) for as much as it can, which is
5628 typically what one gets with a 'print var'.
5633 typically what one gets with a 'print var'.
5629
5634
5630 2001-12-04 Fernando Perez <fperez@colorado.edu>
5635 2001-12-04 Fernando Perez <fperez@colorado.edu>
5631
5636
5632 * Fixed namespace problems. Now builtin/IPyhton/user names get
5637 * Fixed namespace problems. Now builtin/IPyhton/user names get
5633 properly reported in their namespace. Internal namespace handling
5638 properly reported in their namespace. Internal namespace handling
5634 is finally getting decent (not perfect yet, but much better than
5639 is finally getting decent (not perfect yet, but much better than
5635 the ad-hoc mess we had).
5640 the ad-hoc mess we had).
5636
5641
5637 * Removed -exit option. If people just want to run a python
5642 * Removed -exit option. If people just want to run a python
5638 script, that's what the normal interpreter is for. Less
5643 script, that's what the normal interpreter is for. Less
5639 unnecessary options, less chances for bugs.
5644 unnecessary options, less chances for bugs.
5640
5645
5641 * Added a crash handler which generates a complete post-mortem if
5646 * Added a crash handler which generates a complete post-mortem if
5642 IPython crashes. This will help a lot in tracking bugs down the
5647 IPython crashes. This will help a lot in tracking bugs down the
5643 road.
5648 road.
5644
5649
5645 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5650 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5646 which were boud to functions being reassigned would bypass the
5651 which were boud to functions being reassigned would bypass the
5647 logger, breaking the sync of _il with the prompt counter. This
5652 logger, breaking the sync of _il with the prompt counter. This
5648 would then crash IPython later when a new line was logged.
5653 would then crash IPython later when a new line was logged.
5649
5654
5650 2001-12-02 Fernando Perez <fperez@colorado.edu>
5655 2001-12-02 Fernando Perez <fperez@colorado.edu>
5651
5656
5652 * Made IPython a package. This means people don't have to clutter
5657 * Made IPython a package. This means people don't have to clutter
5653 their sys.path with yet another directory. Changed the INSTALL
5658 their sys.path with yet another directory. Changed the INSTALL
5654 file accordingly.
5659 file accordingly.
5655
5660
5656 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5661 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5657 sorts its output (so @who shows it sorted) and @whos formats the
5662 sorts its output (so @who shows it sorted) and @whos formats the
5658 table according to the width of the first column. Nicer, easier to
5663 table according to the width of the first column. Nicer, easier to
5659 read. Todo: write a generic table_format() which takes a list of
5664 read. Todo: write a generic table_format() which takes a list of
5660 lists and prints it nicely formatted, with optional row/column
5665 lists and prints it nicely formatted, with optional row/column
5661 separators and proper padding and justification.
5666 separators and proper padding and justification.
5662
5667
5663 * Released 0.1.20
5668 * Released 0.1.20
5664
5669
5665 * Fixed bug in @log which would reverse the inputcache list (a
5670 * Fixed bug in @log which would reverse the inputcache list (a
5666 copy operation was missing).
5671 copy operation was missing).
5667
5672
5668 * Code cleanup. @config was changed to use page(). Better, since
5673 * Code cleanup. @config was changed to use page(). Better, since
5669 its output is always quite long.
5674 its output is always quite long.
5670
5675
5671 * Itpl is back as a dependency. I was having too many problems
5676 * Itpl is back as a dependency. I was having too many problems
5672 getting the parametric aliases to work reliably, and it's just
5677 getting the parametric aliases to work reliably, and it's just
5673 easier to code weird string operations with it than playing %()s
5678 easier to code weird string operations with it than playing %()s
5674 games. It's only ~6k, so I don't think it's too big a deal.
5679 games. It's only ~6k, so I don't think it's too big a deal.
5675
5680
5676 * Found (and fixed) a very nasty bug with history. !lines weren't
5681 * Found (and fixed) a very nasty bug with history. !lines weren't
5677 getting cached, and the out of sync caches would crash
5682 getting cached, and the out of sync caches would crash
5678 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5683 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5679 division of labor a bit better. Bug fixed, cleaner structure.
5684 division of labor a bit better. Bug fixed, cleaner structure.
5680
5685
5681 2001-12-01 Fernando Perez <fperez@colorado.edu>
5686 2001-12-01 Fernando Perez <fperez@colorado.edu>
5682
5687
5683 * Released 0.1.19
5688 * Released 0.1.19
5684
5689
5685 * Added option -n to @hist to prevent line number printing. Much
5690 * Added option -n to @hist to prevent line number printing. Much
5686 easier to copy/paste code this way.
5691 easier to copy/paste code this way.
5687
5692
5688 * Created global _il to hold the input list. Allows easy
5693 * Created global _il to hold the input list. Allows easy
5689 re-execution of blocks of code by slicing it (inspired by Janko's
5694 re-execution of blocks of code by slicing it (inspired by Janko's
5690 comment on 'macros').
5695 comment on 'macros').
5691
5696
5692 * Small fixes and doc updates.
5697 * Small fixes and doc updates.
5693
5698
5694 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5699 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5695 much too fragile with automagic. Handles properly multi-line
5700 much too fragile with automagic. Handles properly multi-line
5696 statements and takes parameters.
5701 statements and takes parameters.
5697
5702
5698 2001-11-30 Fernando Perez <fperez@colorado.edu>
5703 2001-11-30 Fernando Perez <fperez@colorado.edu>
5699
5704
5700 * Version 0.1.18 released.
5705 * Version 0.1.18 released.
5701
5706
5702 * Fixed nasty namespace bug in initial module imports.
5707 * Fixed nasty namespace bug in initial module imports.
5703
5708
5704 * Added copyright/license notes to all code files (except
5709 * Added copyright/license notes to all code files (except
5705 DPyGetOpt). For the time being, LGPL. That could change.
5710 DPyGetOpt). For the time being, LGPL. That could change.
5706
5711
5707 * Rewrote a much nicer README, updated INSTALL, cleaned up
5712 * Rewrote a much nicer README, updated INSTALL, cleaned up
5708 ipythonrc-* samples.
5713 ipythonrc-* samples.
5709
5714
5710 * Overall code/documentation cleanup. Basically ready for
5715 * Overall code/documentation cleanup. Basically ready for
5711 release. Only remaining thing: licence decision (LGPL?).
5716 release. Only remaining thing: licence decision (LGPL?).
5712
5717
5713 * Converted load_config to a class, ConfigLoader. Now recursion
5718 * Converted load_config to a class, ConfigLoader. Now recursion
5714 control is better organized. Doesn't include the same file twice.
5719 control is better organized. Doesn't include the same file twice.
5715
5720
5716 2001-11-29 Fernando Perez <fperez@colorado.edu>
5721 2001-11-29 Fernando Perez <fperez@colorado.edu>
5717
5722
5718 * Got input history working. Changed output history variables from
5723 * Got input history working. Changed output history variables from
5719 _p to _o so that _i is for input and _o for output. Just cleaner
5724 _p to _o so that _i is for input and _o for output. Just cleaner
5720 convention.
5725 convention.
5721
5726
5722 * Implemented parametric aliases. This pretty much allows the
5727 * Implemented parametric aliases. This pretty much allows the
5723 alias system to offer full-blown shell convenience, I think.
5728 alias system to offer full-blown shell convenience, I think.
5724
5729
5725 * Version 0.1.17 released, 0.1.18 opened.
5730 * Version 0.1.17 released, 0.1.18 opened.
5726
5731
5727 * dot_ipython/ipythonrc (alias): added documentation.
5732 * dot_ipython/ipythonrc (alias): added documentation.
5728 (xcolor): Fixed small bug (xcolors -> xcolor)
5733 (xcolor): Fixed small bug (xcolors -> xcolor)
5729
5734
5730 * Changed the alias system. Now alias is a magic command to define
5735 * Changed the alias system. Now alias is a magic command to define
5731 aliases just like the shell. Rationale: the builtin magics should
5736 aliases just like the shell. Rationale: the builtin magics should
5732 be there for things deeply connected to IPython's
5737 be there for things deeply connected to IPython's
5733 architecture. And this is a much lighter system for what I think
5738 architecture. And this is a much lighter system for what I think
5734 is the really important feature: allowing users to define quickly
5739 is the really important feature: allowing users to define quickly
5735 magics that will do shell things for them, so they can customize
5740 magics that will do shell things for them, so they can customize
5736 IPython easily to match their work habits. If someone is really
5741 IPython easily to match their work habits. If someone is really
5737 desperate to have another name for a builtin alias, they can
5742 desperate to have another name for a builtin alias, they can
5738 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5743 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5739 works.
5744 works.
5740
5745
5741 2001-11-28 Fernando Perez <fperez@colorado.edu>
5746 2001-11-28 Fernando Perez <fperez@colorado.edu>
5742
5747
5743 * Changed @file so that it opens the source file at the proper
5748 * Changed @file so that it opens the source file at the proper
5744 line. Since it uses less, if your EDITOR environment is
5749 line. Since it uses less, if your EDITOR environment is
5745 configured, typing v will immediately open your editor of choice
5750 configured, typing v will immediately open your editor of choice
5746 right at the line where the object is defined. Not as quick as
5751 right at the line where the object is defined. Not as quick as
5747 having a direct @edit command, but for all intents and purposes it
5752 having a direct @edit command, but for all intents and purposes it
5748 works. And I don't have to worry about writing @edit to deal with
5753 works. And I don't have to worry about writing @edit to deal with
5749 all the editors, less does that.
5754 all the editors, less does that.
5750
5755
5751 * Version 0.1.16 released, 0.1.17 opened.
5756 * Version 0.1.16 released, 0.1.17 opened.
5752
5757
5753 * Fixed some nasty bugs in the page/page_dumb combo that could
5758 * Fixed some nasty bugs in the page/page_dumb combo that could
5754 crash IPython.
5759 crash IPython.
5755
5760
5756 2001-11-27 Fernando Perez <fperez@colorado.edu>
5761 2001-11-27 Fernando Perez <fperez@colorado.edu>
5757
5762
5758 * Version 0.1.15 released, 0.1.16 opened.
5763 * Version 0.1.15 released, 0.1.16 opened.
5759
5764
5760 * Finally got ? and ?? to work for undefined things: now it's
5765 * Finally got ? and ?? to work for undefined things: now it's
5761 possible to type {}.get? and get information about the get method
5766 possible to type {}.get? and get information about the get method
5762 of dicts, or os.path? even if only os is defined (so technically
5767 of dicts, or os.path? even if only os is defined (so technically
5763 os.path isn't). Works at any level. For example, after import os,
5768 os.path isn't). Works at any level. For example, after import os,
5764 os?, os.path?, os.path.abspath? all work. This is great, took some
5769 os?, os.path?, os.path.abspath? all work. This is great, took some
5765 work in _ofind.
5770 work in _ofind.
5766
5771
5767 * Fixed more bugs with logging. The sanest way to do it was to add
5772 * Fixed more bugs with logging. The sanest way to do it was to add
5768 to @log a 'mode' parameter. Killed two in one shot (this mode
5773 to @log a 'mode' parameter. Killed two in one shot (this mode
5769 option was a request of Janko's). I think it's finally clean
5774 option was a request of Janko's). I think it's finally clean
5770 (famous last words).
5775 (famous last words).
5771
5776
5772 * Added a page_dumb() pager which does a decent job of paging on
5777 * Added a page_dumb() pager which does a decent job of paging on
5773 screen, if better things (like less) aren't available. One less
5778 screen, if better things (like less) aren't available. One less
5774 unix dependency (someday maybe somebody will port this to
5779 unix dependency (someday maybe somebody will port this to
5775 windows).
5780 windows).
5776
5781
5777 * Fixed problem in magic_log: would lock of logging out if log
5782 * Fixed problem in magic_log: would lock of logging out if log
5778 creation failed (because it would still think it had succeeded).
5783 creation failed (because it would still think it had succeeded).
5779
5784
5780 * Improved the page() function using curses to auto-detect screen
5785 * Improved the page() function using curses to auto-detect screen
5781 size. Now it can make a much better decision on whether to print
5786 size. Now it can make a much better decision on whether to print
5782 or page a string. Option screen_length was modified: a value 0
5787 or page a string. Option screen_length was modified: a value 0
5783 means auto-detect, and that's the default now.
5788 means auto-detect, and that's the default now.
5784
5789
5785 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5790 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5786 go out. I'll test it for a few days, then talk to Janko about
5791 go out. I'll test it for a few days, then talk to Janko about
5787 licences and announce it.
5792 licences and announce it.
5788
5793
5789 * Fixed the length of the auto-generated ---> prompt which appears
5794 * Fixed the length of the auto-generated ---> prompt which appears
5790 for auto-parens and auto-quotes. Getting this right isn't trivial,
5795 for auto-parens and auto-quotes. Getting this right isn't trivial,
5791 with all the color escapes, different prompt types and optional
5796 with all the color escapes, different prompt types and optional
5792 separators. But it seems to be working in all the combinations.
5797 separators. But it seems to be working in all the combinations.
5793
5798
5794 2001-11-26 Fernando Perez <fperez@colorado.edu>
5799 2001-11-26 Fernando Perez <fperez@colorado.edu>
5795
5800
5796 * Wrote a regexp filter to get option types from the option names
5801 * Wrote a regexp filter to get option types from the option names
5797 string. This eliminates the need to manually keep two duplicate
5802 string. This eliminates the need to manually keep two duplicate
5798 lists.
5803 lists.
5799
5804
5800 * Removed the unneeded check_option_names. Now options are handled
5805 * Removed the unneeded check_option_names. Now options are handled
5801 in a much saner manner and it's easy to visually check that things
5806 in a much saner manner and it's easy to visually check that things
5802 are ok.
5807 are ok.
5803
5808
5804 * Updated version numbers on all files I modified to carry a
5809 * Updated version numbers on all files I modified to carry a
5805 notice so Janko and Nathan have clear version markers.
5810 notice so Janko and Nathan have clear version markers.
5806
5811
5807 * Updated docstring for ultraTB with my changes. I should send
5812 * Updated docstring for ultraTB with my changes. I should send
5808 this to Nathan.
5813 this to Nathan.
5809
5814
5810 * Lots of small fixes. Ran everything through pychecker again.
5815 * Lots of small fixes. Ran everything through pychecker again.
5811
5816
5812 * Made loading of deep_reload an cmd line option. If it's not too
5817 * Made loading of deep_reload an cmd line option. If it's not too
5813 kosher, now people can just disable it. With -nodeep_reload it's
5818 kosher, now people can just disable it. With -nodeep_reload it's
5814 still available as dreload(), it just won't overwrite reload().
5819 still available as dreload(), it just won't overwrite reload().
5815
5820
5816 * Moved many options to the no| form (-opt and -noopt
5821 * Moved many options to the no| form (-opt and -noopt
5817 accepted). Cleaner.
5822 accepted). Cleaner.
5818
5823
5819 * Changed magic_log so that if called with no parameters, it uses
5824 * Changed magic_log so that if called with no parameters, it uses
5820 'rotate' mode. That way auto-generated logs aren't automatically
5825 'rotate' mode. That way auto-generated logs aren't automatically
5821 over-written. For normal logs, now a backup is made if it exists
5826 over-written. For normal logs, now a backup is made if it exists
5822 (only 1 level of backups). A new 'backup' mode was added to the
5827 (only 1 level of backups). A new 'backup' mode was added to the
5823 Logger class to support this. This was a request by Janko.
5828 Logger class to support this. This was a request by Janko.
5824
5829
5825 * Added @logoff/@logon to stop/restart an active log.
5830 * Added @logoff/@logon to stop/restart an active log.
5826
5831
5827 * Fixed a lot of bugs in log saving/replay. It was pretty
5832 * Fixed a lot of bugs in log saving/replay. It was pretty
5828 broken. Now special lines (!@,/) appear properly in the command
5833 broken. Now special lines (!@,/) appear properly in the command
5829 history after a log replay.
5834 history after a log replay.
5830
5835
5831 * Tried and failed to implement full session saving via pickle. My
5836 * Tried and failed to implement full session saving via pickle. My
5832 idea was to pickle __main__.__dict__, but modules can't be
5837 idea was to pickle __main__.__dict__, but modules can't be
5833 pickled. This would be a better alternative to replaying logs, but
5838 pickled. This would be a better alternative to replaying logs, but
5834 seems quite tricky to get to work. Changed -session to be called
5839 seems quite tricky to get to work. Changed -session to be called
5835 -logplay, which more accurately reflects what it does. And if we
5840 -logplay, which more accurately reflects what it does. And if we
5836 ever get real session saving working, -session is now available.
5841 ever get real session saving working, -session is now available.
5837
5842
5838 * Implemented color schemes for prompts also. As for tracebacks,
5843 * Implemented color schemes for prompts also. As for tracebacks,
5839 currently only NoColor and Linux are supported. But now the
5844 currently only NoColor and Linux are supported. But now the
5840 infrastructure is in place, based on a generic ColorScheme
5845 infrastructure is in place, based on a generic ColorScheme
5841 class. So writing and activating new schemes both for the prompts
5846 class. So writing and activating new schemes both for the prompts
5842 and the tracebacks should be straightforward.
5847 and the tracebacks should be straightforward.
5843
5848
5844 * Version 0.1.13 released, 0.1.14 opened.
5849 * Version 0.1.13 released, 0.1.14 opened.
5845
5850
5846 * Changed handling of options for output cache. Now counter is
5851 * Changed handling of options for output cache. Now counter is
5847 hardwired starting at 1 and one specifies the maximum number of
5852 hardwired starting at 1 and one specifies the maximum number of
5848 entries *in the outcache* (not the max prompt counter). This is
5853 entries *in the outcache* (not the max prompt counter). This is
5849 much better, since many statements won't increase the cache
5854 much better, since many statements won't increase the cache
5850 count. It also eliminated some confusing options, now there's only
5855 count. It also eliminated some confusing options, now there's only
5851 one: cache_size.
5856 one: cache_size.
5852
5857
5853 * Added 'alias' magic function and magic_alias option in the
5858 * Added 'alias' magic function and magic_alias option in the
5854 ipythonrc file. Now the user can easily define whatever names he
5859 ipythonrc file. Now the user can easily define whatever names he
5855 wants for the magic functions without having to play weird
5860 wants for the magic functions without having to play weird
5856 namespace games. This gives IPython a real shell-like feel.
5861 namespace games. This gives IPython a real shell-like feel.
5857
5862
5858 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5863 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5859 @ or not).
5864 @ or not).
5860
5865
5861 This was one of the last remaining 'visible' bugs (that I know
5866 This was one of the last remaining 'visible' bugs (that I know
5862 of). I think if I can clean up the session loading so it works
5867 of). I think if I can clean up the session loading so it works
5863 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5868 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5864 about licensing).
5869 about licensing).
5865
5870
5866 2001-11-25 Fernando Perez <fperez@colorado.edu>
5871 2001-11-25 Fernando Perez <fperez@colorado.edu>
5867
5872
5868 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5873 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5869 there's a cleaner distinction between what ? and ?? show.
5874 there's a cleaner distinction between what ? and ?? show.
5870
5875
5871 * Added screen_length option. Now the user can define his own
5876 * Added screen_length option. Now the user can define his own
5872 screen size for page() operations.
5877 screen size for page() operations.
5873
5878
5874 * Implemented magic shell-like functions with automatic code
5879 * Implemented magic shell-like functions with automatic code
5875 generation. Now adding another function is just a matter of adding
5880 generation. Now adding another function is just a matter of adding
5876 an entry to a dict, and the function is dynamically generated at
5881 an entry to a dict, and the function is dynamically generated at
5877 run-time. Python has some really cool features!
5882 run-time. Python has some really cool features!
5878
5883
5879 * Renamed many options to cleanup conventions a little. Now all
5884 * Renamed many options to cleanup conventions a little. Now all
5880 are lowercase, and only underscores where needed. Also in the code
5885 are lowercase, and only underscores where needed. Also in the code
5881 option name tables are clearer.
5886 option name tables are clearer.
5882
5887
5883 * Changed prompts a little. Now input is 'In [n]:' instead of
5888 * Changed prompts a little. Now input is 'In [n]:' instead of
5884 'In[n]:='. This allows it the numbers to be aligned with the
5889 'In[n]:='. This allows it the numbers to be aligned with the
5885 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5890 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5886 Python (it was a Mathematica thing). The '...' continuation prompt
5891 Python (it was a Mathematica thing). The '...' continuation prompt
5887 was also changed a little to align better.
5892 was also changed a little to align better.
5888
5893
5889 * Fixed bug when flushing output cache. Not all _p<n> variables
5894 * Fixed bug when flushing output cache. Not all _p<n> variables
5890 exist, so their deletion needs to be wrapped in a try:
5895 exist, so their deletion needs to be wrapped in a try:
5891
5896
5892 * Figured out how to properly use inspect.formatargspec() (it
5897 * Figured out how to properly use inspect.formatargspec() (it
5893 requires the args preceded by *). So I removed all the code from
5898 requires the args preceded by *). So I removed all the code from
5894 _get_pdef in Magic, which was just replicating that.
5899 _get_pdef in Magic, which was just replicating that.
5895
5900
5896 * Added test to prefilter to allow redefining magic function names
5901 * Added test to prefilter to allow redefining magic function names
5897 as variables. This is ok, since the @ form is always available,
5902 as variables. This is ok, since the @ form is always available,
5898 but whe should allow the user to define a variable called 'ls' if
5903 but whe should allow the user to define a variable called 'ls' if
5899 he needs it.
5904 he needs it.
5900
5905
5901 * Moved the ToDo information from README into a separate ToDo.
5906 * Moved the ToDo information from README into a separate ToDo.
5902
5907
5903 * General code cleanup and small bugfixes. I think it's close to a
5908 * General code cleanup and small bugfixes. I think it's close to a
5904 state where it can be released, obviously with a big 'beta'
5909 state where it can be released, obviously with a big 'beta'
5905 warning on it.
5910 warning on it.
5906
5911
5907 * Got the magic function split to work. Now all magics are defined
5912 * Got the magic function split to work. Now all magics are defined
5908 in a separate class. It just organizes things a bit, and now
5913 in a separate class. It just organizes things a bit, and now
5909 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5914 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5910 was too long).
5915 was too long).
5911
5916
5912 * Changed @clear to @reset to avoid potential confusions with
5917 * Changed @clear to @reset to avoid potential confusions with
5913 the shell command clear. Also renamed @cl to @clear, which does
5918 the shell command clear. Also renamed @cl to @clear, which does
5914 exactly what people expect it to from their shell experience.
5919 exactly what people expect it to from their shell experience.
5915
5920
5916 Added a check to the @reset command (since it's so
5921 Added a check to the @reset command (since it's so
5917 destructive, it's probably a good idea to ask for confirmation).
5922 destructive, it's probably a good idea to ask for confirmation).
5918 But now reset only works for full namespace resetting. Since the
5923 But now reset only works for full namespace resetting. Since the
5919 del keyword is already there for deleting a few specific
5924 del keyword is already there for deleting a few specific
5920 variables, I don't see the point of having a redundant magic
5925 variables, I don't see the point of having a redundant magic
5921 function for the same task.
5926 function for the same task.
5922
5927
5923 2001-11-24 Fernando Perez <fperez@colorado.edu>
5928 2001-11-24 Fernando Perez <fperez@colorado.edu>
5924
5929
5925 * Updated the builtin docs (esp. the ? ones).
5930 * Updated the builtin docs (esp. the ? ones).
5926
5931
5927 * Ran all the code through pychecker. Not terribly impressed with
5932 * Ran all the code through pychecker. Not terribly impressed with
5928 it: lots of spurious warnings and didn't really find anything of
5933 it: lots of spurious warnings and didn't really find anything of
5929 substance (just a few modules being imported and not used).
5934 substance (just a few modules being imported and not used).
5930
5935
5931 * Implemented the new ultraTB functionality into IPython. New
5936 * Implemented the new ultraTB functionality into IPython. New
5932 option: xcolors. This chooses color scheme. xmode now only selects
5937 option: xcolors. This chooses color scheme. xmode now only selects
5933 between Plain and Verbose. Better orthogonality.
5938 between Plain and Verbose. Better orthogonality.
5934
5939
5935 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5940 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5936 mode and color scheme for the exception handlers. Now it's
5941 mode and color scheme for the exception handlers. Now it's
5937 possible to have the verbose traceback with no coloring.
5942 possible to have the verbose traceback with no coloring.
5938
5943
5939 2001-11-23 Fernando Perez <fperez@colorado.edu>
5944 2001-11-23 Fernando Perez <fperez@colorado.edu>
5940
5945
5941 * Version 0.1.12 released, 0.1.13 opened.
5946 * Version 0.1.12 released, 0.1.13 opened.
5942
5947
5943 * Removed option to set auto-quote and auto-paren escapes by
5948 * Removed option to set auto-quote and auto-paren escapes by
5944 user. The chances of breaking valid syntax are just too high. If
5949 user. The chances of breaking valid syntax are just too high. If
5945 someone *really* wants, they can always dig into the code.
5950 someone *really* wants, they can always dig into the code.
5946
5951
5947 * Made prompt separators configurable.
5952 * Made prompt separators configurable.
5948
5953
5949 2001-11-22 Fernando Perez <fperez@colorado.edu>
5954 2001-11-22 Fernando Perez <fperez@colorado.edu>
5950
5955
5951 * Small bugfixes in many places.
5956 * Small bugfixes in many places.
5952
5957
5953 * Removed the MyCompleter class from ipplib. It seemed redundant
5958 * Removed the MyCompleter class from ipplib. It seemed redundant
5954 with the C-p,C-n history search functionality. Less code to
5959 with the C-p,C-n history search functionality. Less code to
5955 maintain.
5960 maintain.
5956
5961
5957 * Moved all the original ipython.py code into ipythonlib.py. Right
5962 * Moved all the original ipython.py code into ipythonlib.py. Right
5958 now it's just one big dump into a function called make_IPython, so
5963 now it's just one big dump into a function called make_IPython, so
5959 no real modularity has been gained. But at least it makes the
5964 no real modularity has been gained. But at least it makes the
5960 wrapper script tiny, and since ipythonlib is a module, it gets
5965 wrapper script tiny, and since ipythonlib is a module, it gets
5961 compiled and startup is much faster.
5966 compiled and startup is much faster.
5962
5967
5963 This is a reasobably 'deep' change, so we should test it for a
5968 This is a reasobably 'deep' change, so we should test it for a
5964 while without messing too much more with the code.
5969 while without messing too much more with the code.
5965
5970
5966 2001-11-21 Fernando Perez <fperez@colorado.edu>
5971 2001-11-21 Fernando Perez <fperez@colorado.edu>
5967
5972
5968 * Version 0.1.11 released, 0.1.12 opened for further work.
5973 * Version 0.1.11 released, 0.1.12 opened for further work.
5969
5974
5970 * Removed dependency on Itpl. It was only needed in one place. It
5975 * Removed dependency on Itpl. It was only needed in one place. It
5971 would be nice if this became part of python, though. It makes life
5976 would be nice if this became part of python, though. It makes life
5972 *a lot* easier in some cases.
5977 *a lot* easier in some cases.
5973
5978
5974 * Simplified the prefilter code a bit. Now all handlers are
5979 * Simplified the prefilter code a bit. Now all handlers are
5975 expected to explicitly return a value (at least a blank string).
5980 expected to explicitly return a value (at least a blank string).
5976
5981
5977 * Heavy edits in ipplib. Removed the help system altogether. Now
5982 * Heavy edits in ipplib. Removed the help system altogether. Now
5978 obj?/?? is used for inspecting objects, a magic @doc prints
5983 obj?/?? is used for inspecting objects, a magic @doc prints
5979 docstrings, and full-blown Python help is accessed via the 'help'
5984 docstrings, and full-blown Python help is accessed via the 'help'
5980 keyword. This cleans up a lot of code (less to maintain) and does
5985 keyword. This cleans up a lot of code (less to maintain) and does
5981 the job. Since 'help' is now a standard Python component, might as
5986 the job. Since 'help' is now a standard Python component, might as
5982 well use it and remove duplicate functionality.
5987 well use it and remove duplicate functionality.
5983
5988
5984 Also removed the option to use ipplib as a standalone program. By
5989 Also removed the option to use ipplib as a standalone program. By
5985 now it's too dependent on other parts of IPython to function alone.
5990 now it's too dependent on other parts of IPython to function alone.
5986
5991
5987 * Fixed bug in genutils.pager. It would crash if the pager was
5992 * Fixed bug in genutils.pager. It would crash if the pager was
5988 exited immediately after opening (broken pipe).
5993 exited immediately after opening (broken pipe).
5989
5994
5990 * Trimmed down the VerboseTB reporting a little. The header is
5995 * Trimmed down the VerboseTB reporting a little. The header is
5991 much shorter now and the repeated exception arguments at the end
5996 much shorter now and the repeated exception arguments at the end
5992 have been removed. For interactive use the old header seemed a bit
5997 have been removed. For interactive use the old header seemed a bit
5993 excessive.
5998 excessive.
5994
5999
5995 * Fixed small bug in output of @whos for variables with multi-word
6000 * Fixed small bug in output of @whos for variables with multi-word
5996 types (only first word was displayed).
6001 types (only first word was displayed).
5997
6002
5998 2001-11-17 Fernando Perez <fperez@colorado.edu>
6003 2001-11-17 Fernando Perez <fperez@colorado.edu>
5999
6004
6000 * Version 0.1.10 released, 0.1.11 opened for further work.
6005 * Version 0.1.10 released, 0.1.11 opened for further work.
6001
6006
6002 * Modified dirs and friends. dirs now *returns* the stack (not
6007 * Modified dirs and friends. dirs now *returns* the stack (not
6003 prints), so one can manipulate it as a variable. Convenient to
6008 prints), so one can manipulate it as a variable. Convenient to
6004 travel along many directories.
6009 travel along many directories.
6005
6010
6006 * Fixed bug in magic_pdef: would only work with functions with
6011 * Fixed bug in magic_pdef: would only work with functions with
6007 arguments with default values.
6012 arguments with default values.
6008
6013
6009 2001-11-14 Fernando Perez <fperez@colorado.edu>
6014 2001-11-14 Fernando Perez <fperez@colorado.edu>
6010
6015
6011 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6016 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6012 example with IPython. Various other minor fixes and cleanups.
6017 example with IPython. Various other minor fixes and cleanups.
6013
6018
6014 * Version 0.1.9 released, 0.1.10 opened for further work.
6019 * Version 0.1.9 released, 0.1.10 opened for further work.
6015
6020
6016 * Added sys.path to the list of directories searched in the
6021 * Added sys.path to the list of directories searched in the
6017 execfile= option. It used to be the current directory and the
6022 execfile= option. It used to be the current directory and the
6018 user's IPYTHONDIR only.
6023 user's IPYTHONDIR only.
6019
6024
6020 2001-11-13 Fernando Perez <fperez@colorado.edu>
6025 2001-11-13 Fernando Perez <fperez@colorado.edu>
6021
6026
6022 * Reinstated the raw_input/prefilter separation that Janko had
6027 * Reinstated the raw_input/prefilter separation that Janko had
6023 initially. This gives a more convenient setup for extending the
6028 initially. This gives a more convenient setup for extending the
6024 pre-processor from the outside: raw_input always gets a string,
6029 pre-processor from the outside: raw_input always gets a string,
6025 and prefilter has to process it. We can then redefine prefilter
6030 and prefilter has to process it. We can then redefine prefilter
6026 from the outside and implement extensions for special
6031 from the outside and implement extensions for special
6027 purposes.
6032 purposes.
6028
6033
6029 Today I got one for inputting PhysicalQuantity objects
6034 Today I got one for inputting PhysicalQuantity objects
6030 (from Scientific) without needing any function calls at
6035 (from Scientific) without needing any function calls at
6031 all. Extremely convenient, and it's all done as a user-level
6036 all. Extremely convenient, and it's all done as a user-level
6032 extension (no IPython code was touched). Now instead of:
6037 extension (no IPython code was touched). Now instead of:
6033 a = PhysicalQuantity(4.2,'m/s**2')
6038 a = PhysicalQuantity(4.2,'m/s**2')
6034 one can simply say
6039 one can simply say
6035 a = 4.2 m/s**2
6040 a = 4.2 m/s**2
6036 or even
6041 or even
6037 a = 4.2 m/s^2
6042 a = 4.2 m/s^2
6038
6043
6039 I use this, but it's also a proof of concept: IPython really is
6044 I use this, but it's also a proof of concept: IPython really is
6040 fully user-extensible, even at the level of the parsing of the
6045 fully user-extensible, even at the level of the parsing of the
6041 command line. It's not trivial, but it's perfectly doable.
6046 command line. It's not trivial, but it's perfectly doable.
6042
6047
6043 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6048 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6044 the problem of modules being loaded in the inverse order in which
6049 the problem of modules being loaded in the inverse order in which
6045 they were defined in
6050 they were defined in
6046
6051
6047 * Version 0.1.8 released, 0.1.9 opened for further work.
6052 * Version 0.1.8 released, 0.1.9 opened for further work.
6048
6053
6049 * Added magics pdef, source and file. They respectively show the
6054 * Added magics pdef, source and file. They respectively show the
6050 definition line ('prototype' in C), source code and full python
6055 definition line ('prototype' in C), source code and full python
6051 file for any callable object. The object inspector oinfo uses
6056 file for any callable object. The object inspector oinfo uses
6052 these to show the same information.
6057 these to show the same information.
6053
6058
6054 * Version 0.1.7 released, 0.1.8 opened for further work.
6059 * Version 0.1.7 released, 0.1.8 opened for further work.
6055
6060
6056 * Separated all the magic functions into a class called Magic. The
6061 * Separated all the magic functions into a class called Magic. The
6057 InteractiveShell class was becoming too big for Xemacs to handle
6062 InteractiveShell class was becoming too big for Xemacs to handle
6058 (de-indenting a line would lock it up for 10 seconds while it
6063 (de-indenting a line would lock it up for 10 seconds while it
6059 backtracked on the whole class!)
6064 backtracked on the whole class!)
6060
6065
6061 FIXME: didn't work. It can be done, but right now namespaces are
6066 FIXME: didn't work. It can be done, but right now namespaces are
6062 all messed up. Do it later (reverted it for now, so at least
6067 all messed up. Do it later (reverted it for now, so at least
6063 everything works as before).
6068 everything works as before).
6064
6069
6065 * Got the object introspection system (magic_oinfo) working! I
6070 * Got the object introspection system (magic_oinfo) working! I
6066 think this is pretty much ready for release to Janko, so he can
6071 think this is pretty much ready for release to Janko, so he can
6067 test it for a while and then announce it. Pretty much 100% of what
6072 test it for a while and then announce it. Pretty much 100% of what
6068 I wanted for the 'phase 1' release is ready. Happy, tired.
6073 I wanted for the 'phase 1' release is ready. Happy, tired.
6069
6074
6070 2001-11-12 Fernando Perez <fperez@colorado.edu>
6075 2001-11-12 Fernando Perez <fperez@colorado.edu>
6071
6076
6072 * Version 0.1.6 released, 0.1.7 opened for further work.
6077 * Version 0.1.6 released, 0.1.7 opened for further work.
6073
6078
6074 * Fixed bug in printing: it used to test for truth before
6079 * Fixed bug in printing: it used to test for truth before
6075 printing, so 0 wouldn't print. Now checks for None.
6080 printing, so 0 wouldn't print. Now checks for None.
6076
6081
6077 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6082 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6078 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6083 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6079 reaches by hand into the outputcache. Think of a better way to do
6084 reaches by hand into the outputcache. Think of a better way to do
6080 this later.
6085 this later.
6081
6086
6082 * Various small fixes thanks to Nathan's comments.
6087 * Various small fixes thanks to Nathan's comments.
6083
6088
6084 * Changed magic_pprint to magic_Pprint. This way it doesn't
6089 * Changed magic_pprint to magic_Pprint. This way it doesn't
6085 collide with pprint() and the name is consistent with the command
6090 collide with pprint() and the name is consistent with the command
6086 line option.
6091 line option.
6087
6092
6088 * Changed prompt counter behavior to be fully like
6093 * Changed prompt counter behavior to be fully like
6089 Mathematica's. That is, even input that doesn't return a result
6094 Mathematica's. That is, even input that doesn't return a result
6090 raises the prompt counter. The old behavior was kind of confusing
6095 raises the prompt counter. The old behavior was kind of confusing
6091 (getting the same prompt number several times if the operation
6096 (getting the same prompt number several times if the operation
6092 didn't return a result).
6097 didn't return a result).
6093
6098
6094 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6099 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6095
6100
6096 * Fixed -Classic mode (wasn't working anymore).
6101 * Fixed -Classic mode (wasn't working anymore).
6097
6102
6098 * Added colored prompts using Nathan's new code. Colors are
6103 * Added colored prompts using Nathan's new code. Colors are
6099 currently hardwired, they can be user-configurable. For
6104 currently hardwired, they can be user-configurable. For
6100 developers, they can be chosen in file ipythonlib.py, at the
6105 developers, they can be chosen in file ipythonlib.py, at the
6101 beginning of the CachedOutput class def.
6106 beginning of the CachedOutput class def.
6102
6107
6103 2001-11-11 Fernando Perez <fperez@colorado.edu>
6108 2001-11-11 Fernando Perez <fperez@colorado.edu>
6104
6109
6105 * Version 0.1.5 released, 0.1.6 opened for further work.
6110 * Version 0.1.5 released, 0.1.6 opened for further work.
6106
6111
6107 * Changed magic_env to *return* the environment as a dict (not to
6112 * Changed magic_env to *return* the environment as a dict (not to
6108 print it). This way it prints, but it can also be processed.
6113 print it). This way it prints, but it can also be processed.
6109
6114
6110 * Added Verbose exception reporting to interactive
6115 * Added Verbose exception reporting to interactive
6111 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6116 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6112 traceback. Had to make some changes to the ultraTB file. This is
6117 traceback. Had to make some changes to the ultraTB file. This is
6113 probably the last 'big' thing in my mental todo list. This ties
6118 probably the last 'big' thing in my mental todo list. This ties
6114 in with the next entry:
6119 in with the next entry:
6115
6120
6116 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6121 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6117 has to specify is Plain, Color or Verbose for all exception
6122 has to specify is Plain, Color or Verbose for all exception
6118 handling.
6123 handling.
6119
6124
6120 * Removed ShellServices option. All this can really be done via
6125 * Removed ShellServices option. All this can really be done via
6121 the magic system. It's easier to extend, cleaner and has automatic
6126 the magic system. It's easier to extend, cleaner and has automatic
6122 namespace protection and documentation.
6127 namespace protection and documentation.
6123
6128
6124 2001-11-09 Fernando Perez <fperez@colorado.edu>
6129 2001-11-09 Fernando Perez <fperez@colorado.edu>
6125
6130
6126 * Fixed bug in output cache flushing (missing parameter to
6131 * Fixed bug in output cache flushing (missing parameter to
6127 __init__). Other small bugs fixed (found using pychecker).
6132 __init__). Other small bugs fixed (found using pychecker).
6128
6133
6129 * Version 0.1.4 opened for bugfixing.
6134 * Version 0.1.4 opened for bugfixing.
6130
6135
6131 2001-11-07 Fernando Perez <fperez@colorado.edu>
6136 2001-11-07 Fernando Perez <fperez@colorado.edu>
6132
6137
6133 * Version 0.1.3 released, mainly because of the raw_input bug.
6138 * Version 0.1.3 released, mainly because of the raw_input bug.
6134
6139
6135 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6140 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6136 and when testing for whether things were callable, a call could
6141 and when testing for whether things were callable, a call could
6137 actually be made to certain functions. They would get called again
6142 actually be made to certain functions. They would get called again
6138 once 'really' executed, with a resulting double call. A disaster
6143 once 'really' executed, with a resulting double call. A disaster
6139 in many cases (list.reverse() would never work!).
6144 in many cases (list.reverse() would never work!).
6140
6145
6141 * Removed prefilter() function, moved its code to raw_input (which
6146 * Removed prefilter() function, moved its code to raw_input (which
6142 after all was just a near-empty caller for prefilter). This saves
6147 after all was just a near-empty caller for prefilter). This saves
6143 a function call on every prompt, and simplifies the class a tiny bit.
6148 a function call on every prompt, and simplifies the class a tiny bit.
6144
6149
6145 * Fix _ip to __ip name in magic example file.
6150 * Fix _ip to __ip name in magic example file.
6146
6151
6147 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6152 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6148 work with non-gnu versions of tar.
6153 work with non-gnu versions of tar.
6149
6154
6150 2001-11-06 Fernando Perez <fperez@colorado.edu>
6155 2001-11-06 Fernando Perez <fperez@colorado.edu>
6151
6156
6152 * Version 0.1.2. Just to keep track of the recent changes.
6157 * Version 0.1.2. Just to keep track of the recent changes.
6153
6158
6154 * Fixed nasty bug in output prompt routine. It used to check 'if
6159 * Fixed nasty bug in output prompt routine. It used to check 'if
6155 arg != None...'. Problem is, this fails if arg implements a
6160 arg != None...'. Problem is, this fails if arg implements a
6156 special comparison (__cmp__) which disallows comparing to
6161 special comparison (__cmp__) which disallows comparing to
6157 None. Found it when trying to use the PhysicalQuantity module from
6162 None. Found it when trying to use the PhysicalQuantity module from
6158 ScientificPython.
6163 ScientificPython.
6159
6164
6160 2001-11-05 Fernando Perez <fperez@colorado.edu>
6165 2001-11-05 Fernando Perez <fperez@colorado.edu>
6161
6166
6162 * Also added dirs. Now the pushd/popd/dirs family functions
6167 * Also added dirs. Now the pushd/popd/dirs family functions
6163 basically like the shell, with the added convenience of going home
6168 basically like the shell, with the added convenience of going home
6164 when called with no args.
6169 when called with no args.
6165
6170
6166 * pushd/popd slightly modified to mimic shell behavior more
6171 * pushd/popd slightly modified to mimic shell behavior more
6167 closely.
6172 closely.
6168
6173
6169 * Added env,pushd,popd from ShellServices as magic functions. I
6174 * Added env,pushd,popd from ShellServices as magic functions. I
6170 think the cleanest will be to port all desired functions from
6175 think the cleanest will be to port all desired functions from
6171 ShellServices as magics and remove ShellServices altogether. This
6176 ShellServices as magics and remove ShellServices altogether. This
6172 will provide a single, clean way of adding functionality
6177 will provide a single, clean way of adding functionality
6173 (shell-type or otherwise) to IP.
6178 (shell-type or otherwise) to IP.
6174
6179
6175 2001-11-04 Fernando Perez <fperez@colorado.edu>
6180 2001-11-04 Fernando Perez <fperez@colorado.edu>
6176
6181
6177 * Added .ipython/ directory to sys.path. This way users can keep
6182 * Added .ipython/ directory to sys.path. This way users can keep
6178 customizations there and access them via import.
6183 customizations there and access them via import.
6179
6184
6180 2001-11-03 Fernando Perez <fperez@colorado.edu>
6185 2001-11-03 Fernando Perez <fperez@colorado.edu>
6181
6186
6182 * Opened version 0.1.1 for new changes.
6187 * Opened version 0.1.1 for new changes.
6183
6188
6184 * Changed version number to 0.1.0: first 'public' release, sent to
6189 * Changed version number to 0.1.0: first 'public' release, sent to
6185 Nathan and Janko.
6190 Nathan and Janko.
6186
6191
6187 * Lots of small fixes and tweaks.
6192 * Lots of small fixes and tweaks.
6188
6193
6189 * Minor changes to whos format. Now strings are shown, snipped if
6194 * Minor changes to whos format. Now strings are shown, snipped if
6190 too long.
6195 too long.
6191
6196
6192 * Changed ShellServices to work on __main__ so they show up in @who
6197 * Changed ShellServices to work on __main__ so they show up in @who
6193
6198
6194 * Help also works with ? at the end of a line:
6199 * Help also works with ? at the end of a line:
6195 ?sin and sin?
6200 ?sin and sin?
6196 both produce the same effect. This is nice, as often I use the
6201 both produce the same effect. This is nice, as often I use the
6197 tab-complete to find the name of a method, but I used to then have
6202 tab-complete to find the name of a method, but I used to then have
6198 to go to the beginning of the line to put a ? if I wanted more
6203 to go to the beginning of the line to put a ? if I wanted more
6199 info. Now I can just add the ? and hit return. Convenient.
6204 info. Now I can just add the ? and hit return. Convenient.
6200
6205
6201 2001-11-02 Fernando Perez <fperez@colorado.edu>
6206 2001-11-02 Fernando Perez <fperez@colorado.edu>
6202
6207
6203 * Python version check (>=2.1) added.
6208 * Python version check (>=2.1) added.
6204
6209
6205 * Added LazyPython documentation. At this point the docs are quite
6210 * Added LazyPython documentation. At this point the docs are quite
6206 a mess. A cleanup is in order.
6211 a mess. A cleanup is in order.
6207
6212
6208 * Auto-installer created. For some bizarre reason, the zipfiles
6213 * Auto-installer created. For some bizarre reason, the zipfiles
6209 module isn't working on my system. So I made a tar version
6214 module isn't working on my system. So I made a tar version
6210 (hopefully the command line options in various systems won't kill
6215 (hopefully the command line options in various systems won't kill
6211 me).
6216 me).
6212
6217
6213 * Fixes to Struct in genutils. Now all dictionary-like methods are
6218 * Fixes to Struct in genutils. Now all dictionary-like methods are
6214 protected (reasonably).
6219 protected (reasonably).
6215
6220
6216 * Added pager function to genutils and changed ? to print usage
6221 * Added pager function to genutils and changed ? to print usage
6217 note through it (it was too long).
6222 note through it (it was too long).
6218
6223
6219 * Added the LazyPython functionality. Works great! I changed the
6224 * Added the LazyPython functionality. Works great! I changed the
6220 auto-quote escape to ';', it's on home row and next to '. But
6225 auto-quote escape to ';', it's on home row and next to '. But
6221 both auto-quote and auto-paren (still /) escapes are command-line
6226 both auto-quote and auto-paren (still /) escapes are command-line
6222 parameters.
6227 parameters.
6223
6228
6224
6229
6225 2001-11-01 Fernando Perez <fperez@colorado.edu>
6230 2001-11-01 Fernando Perez <fperez@colorado.edu>
6226
6231
6227 * Version changed to 0.0.7. Fairly large change: configuration now
6232 * Version changed to 0.0.7. Fairly large change: configuration now
6228 is all stored in a directory, by default .ipython. There, all
6233 is all stored in a directory, by default .ipython. There, all
6229 config files have normal looking names (not .names)
6234 config files have normal looking names (not .names)
6230
6235
6231 * Version 0.0.6 Released first to Lucas and Archie as a test
6236 * Version 0.0.6 Released first to Lucas and Archie as a test
6232 run. Since it's the first 'semi-public' release, change version to
6237 run. Since it's the first 'semi-public' release, change version to
6233 > 0.0.6 for any changes now.
6238 > 0.0.6 for any changes now.
6234
6239
6235 * Stuff I had put in the ipplib.py changelog:
6240 * Stuff I had put in the ipplib.py changelog:
6236
6241
6237 Changes to InteractiveShell:
6242 Changes to InteractiveShell:
6238
6243
6239 - Made the usage message a parameter.
6244 - Made the usage message a parameter.
6240
6245
6241 - Require the name of the shell variable to be given. It's a bit
6246 - Require the name of the shell variable to be given. It's a bit
6242 of a hack, but allows the name 'shell' not to be hardwired in the
6247 of a hack, but allows the name 'shell' not to be hardwired in the
6243 magic (@) handler, which is problematic b/c it requires
6248 magic (@) handler, which is problematic b/c it requires
6244 polluting the global namespace with 'shell'. This in turn is
6249 polluting the global namespace with 'shell'. This in turn is
6245 fragile: if a user redefines a variable called shell, things
6250 fragile: if a user redefines a variable called shell, things
6246 break.
6251 break.
6247
6252
6248 - magic @: all functions available through @ need to be defined
6253 - magic @: all functions available through @ need to be defined
6249 as magic_<name>, even though they can be called simply as
6254 as magic_<name>, even though they can be called simply as
6250 @<name>. This allows the special command @magic to gather
6255 @<name>. This allows the special command @magic to gather
6251 information automatically about all existing magic functions,
6256 information automatically about all existing magic functions,
6252 even if they are run-time user extensions, by parsing the shell
6257 even if they are run-time user extensions, by parsing the shell
6253 instance __dict__ looking for special magic_ names.
6258 instance __dict__ looking for special magic_ names.
6254
6259
6255 - mainloop: added *two* local namespace parameters. This allows
6260 - mainloop: added *two* local namespace parameters. This allows
6256 the class to differentiate between parameters which were there
6261 the class to differentiate between parameters which were there
6257 before and after command line initialization was processed. This
6262 before and after command line initialization was processed. This
6258 way, later @who can show things loaded at startup by the
6263 way, later @who can show things loaded at startup by the
6259 user. This trick was necessary to make session saving/reloading
6264 user. This trick was necessary to make session saving/reloading
6260 really work: ideally after saving/exiting/reloading a session,
6265 really work: ideally after saving/exiting/reloading a session,
6261 *everything* should look the same, including the output of @who. I
6266 *everything* should look the same, including the output of @who. I
6262 was only able to make this work with this double namespace
6267 was only able to make this work with this double namespace
6263 trick.
6268 trick.
6264
6269
6265 - added a header to the logfile which allows (almost) full
6270 - added a header to the logfile which allows (almost) full
6266 session restoring.
6271 session restoring.
6267
6272
6268 - prepend lines beginning with @ or !, with a and log
6273 - prepend lines beginning with @ or !, with a and log
6269 them. Why? !lines: may be useful to know what you did @lines:
6274 them. Why? !lines: may be useful to know what you did @lines:
6270 they may affect session state. So when restoring a session, at
6275 they may affect session state. So when restoring a session, at
6271 least inform the user of their presence. I couldn't quite get
6276 least inform the user of their presence. I couldn't quite get
6272 them to properly re-execute, but at least the user is warned.
6277 them to properly re-execute, but at least the user is warned.
6273
6278
6274 * Started ChangeLog.
6279 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now