##// END OF EJS Templates
check if readline is available before calling readline functions in ipy_defaults.py
jstenar -
r537:6e28a731
parent child
Show More
@@ -1,59 +1,60
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
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):