##// END OF EJS Templates
use ipy_profile_scipy.py instead of ipythonrc-scipy
vivainio -
Show More
1 NO CONTENT: file renamed from IPython/UserConfig/ipy_profile_sci.py to IPython/UserConfig/ipy_profile_scipy.py
NO CONTENT: file renamed from IPython/UserConfig/ipy_profile_sci.py to IPython/UserConfig/ipy_profile_scipy.py
@@ -1,6700 +1,6703 b''
1 2007-05-23 Ville Vainio <vivainio@gmail.com>
1 2007-05-23 Ville Vainio <vivainio@gmail.com>
2
2
3 * macro.py: %store uses __getstate__ properly
3 * macro.py: %store uses __getstate__ properly
4
4
5 * exesetup.py: added new setup script for creating
5 * exesetup.py: added new setup script for creating
6 standalone IPython executables with py2exe (i.e.
6 standalone IPython executables with py2exe (i.e.
7 no python installation required).
7 no python installation required).
8
8
9 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
10 its place.
11
9 2007-05-21 Ville Vainio <vivainio@gmail.com>
12 2007-05-21 Ville Vainio <vivainio@gmail.com>
10
13
11 * platutil_win32.py (set_term_title): handle
14 * platutil_win32.py (set_term_title): handle
12 failure of 'title' system call properly.
15 failure of 'title' system call properly.
13
16
14 2007-05-17 Walter Doerwald <walter@livinglogic.de>
17 2007-05-17 Walter Doerwald <walter@livinglogic.de>
15
18
16 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
19 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
17 (Bug detected by Paul Mueller).
20 (Bug detected by Paul Mueller).
18
21
19 2007-05-16 Ville Vainio <vivainio@gmail.com>
22 2007-05-16 Ville Vainio <vivainio@gmail.com>
20
23
21 * ipy_profile_sci.py, ipython_win_post_install.py: Create
24 * ipy_profile_sci.py, ipython_win_post_install.py: Create
22 new "sci" profile, effectively a modern version of the old
25 new "sci" profile, effectively a modern version of the old
23 "scipy" profile (which is now slated for deprecation).
26 "scipy" profile (which is now slated for deprecation).
24
27
25 2007-05-15 Ville Vainio <vivainio@gmail.com>
28 2007-05-15 Ville Vainio <vivainio@gmail.com>
26
29
27 * pycolorize.py, pycolor.1: Paul Mueller's patches that
30 * pycolorize.py, pycolor.1: Paul Mueller's patches that
28 make pycolorize read input from stdin when run without arguments.
31 make pycolorize read input from stdin when run without arguments.
29
32
30 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
33 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
31
34
32 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
35 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
33 it in sh profile (instead of ipy_system_conf.py).
36 it in sh profile (instead of ipy_system_conf.py).
34
37
35 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
38 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
36 aliases are now lower case on windows (MyCommand.exe => mycommand).
39 aliases are now lower case on windows (MyCommand.exe => mycommand).
37
40
38 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
41 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
39 Macros are now callable objects that inherit from ipapi.IPyAutocall,
42 Macros are now callable objects that inherit from ipapi.IPyAutocall,
40 i.e. get autocalled regardless of system autocall setting.
43 i.e. get autocalled regardless of system autocall setting.
41
44
42 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
45 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
43
46
44 * IPython/rlineimpl.py: check for clear_history in readline and
47 * IPython/rlineimpl.py: check for clear_history in readline and
45 make it a dummy no-op if not available. This function isn't
48 make it a dummy no-op if not available. This function isn't
46 guaranteed to be in the API and appeared in Python 2.4, so we need
49 guaranteed to be in the API and appeared in Python 2.4, so we need
47 to check it ourselves. Also, clean up this file quite a bit.
50 to check it ourselves. Also, clean up this file quite a bit.
48
51
49 * ipython.1: update man page and full manual with information
52 * ipython.1: update man page and full manual with information
50 about threads (remove outdated warning). Closes #151.
53 about threads (remove outdated warning). Closes #151.
51
54
52 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
55 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
53
56
54 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
57 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
55 in trunk (note that this made it into the 0.8.1 release already,
58 in trunk (note that this made it into the 0.8.1 release already,
56 but the changelogs didn't get coordinated). Many thanks to Gael
59 but the changelogs didn't get coordinated). Many thanks to Gael
57 Varoquaux <gael.varoquaux-AT-normalesup.org>
60 Varoquaux <gael.varoquaux-AT-normalesup.org>
58
61
59 2007-05-09 *** Released version 0.8.1
62 2007-05-09 *** Released version 0.8.1
60
63
61 2007-05-10 Walter Doerwald <walter@livinglogic.de>
64 2007-05-10 Walter Doerwald <walter@livinglogic.de>
62
65
63 * IPython/Extensions/igrid.py: Incorporate html help into
66 * IPython/Extensions/igrid.py: Incorporate html help into
64 the module, so we don't have to search for the file.
67 the module, so we don't have to search for the file.
65
68
66 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
69 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
67
70
68 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
71 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
69
72
70 2007-04-30 Ville Vainio <vivainio@gmail.com>
73 2007-04-30 Ville Vainio <vivainio@gmail.com>
71
74
72 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
75 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
73 user has illegal (non-ascii) home directory name
76 user has illegal (non-ascii) home directory name
74
77
75 2007-04-27 Ville Vainio <vivainio@gmail.com>
78 2007-04-27 Ville Vainio <vivainio@gmail.com>
76
79
77 * platutils_win32.py: implement set_term_title for windows
80 * platutils_win32.py: implement set_term_title for windows
78
81
79 * Update version number
82 * Update version number
80
83
81 * ipy_profile_sh.py: more informative prompt (2 dir levels)
84 * ipy_profile_sh.py: more informative prompt (2 dir levels)
82
85
83 2007-04-26 Walter Doerwald <walter@livinglogic.de>
86 2007-04-26 Walter Doerwald <walter@livinglogic.de>
84
87
85 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
88 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
86 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
89 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
87 bug discovered by Ville).
90 bug discovered by Ville).
88
91
89 2007-04-26 Ville Vainio <vivainio@gmail.com>
92 2007-04-26 Ville Vainio <vivainio@gmail.com>
90
93
91 * Extensions/ipy_completers.py: Olivier's module completer now
94 * Extensions/ipy_completers.py: Olivier's module completer now
92 saves the list of root modules if it takes > 4 secs on the first run.
95 saves the list of root modules if it takes > 4 secs on the first run.
93
96
94 * Magic.py (%rehashx): %rehashx now clears the completer cache
97 * Magic.py (%rehashx): %rehashx now clears the completer cache
95
98
96
99
97 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
100 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
98
101
99 * ipython.el: fix incorrect color scheme, reported by Stefan.
102 * ipython.el: fix incorrect color scheme, reported by Stefan.
100 Closes #149.
103 Closes #149.
101
104
102 * IPython/PyColorize.py (Parser.format2): fix state-handling
105 * IPython/PyColorize.py (Parser.format2): fix state-handling
103 logic. I still don't like how that code handles state, but at
106 logic. I still don't like how that code handles state, but at
104 least now it should be correct, if inelegant. Closes #146.
107 least now it should be correct, if inelegant. Closes #146.
105
108
106 2007-04-25 Ville Vainio <vivainio@gmail.com>
109 2007-04-25 Ville Vainio <vivainio@gmail.com>
107
110
108 * Extensions/ipy_which.py: added extension for %which magic, works
111 * Extensions/ipy_which.py: added extension for %which magic, works
109 a lot like unix 'which' but also finds and expands aliases, and
112 a lot like unix 'which' but also finds and expands aliases, and
110 allows wildcards.
113 allows wildcards.
111
114
112 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
115 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
113 as opposed to returning nothing.
116 as opposed to returning nothing.
114
117
115 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
118 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
116 ipy_stock_completers on default profile, do import on sh profile.
119 ipy_stock_completers on default profile, do import on sh profile.
117
120
118 2007-04-22 J�rgen Stenarson <jorgen.stenarson@bostream.nu>
121 2007-04-22 J�rgen Stenarson <jorgen.stenarson@bostream.nu>
119
122
120 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
123 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
121 like ipython.py foo.py which raised a IndexError.
124 like ipython.py foo.py which raised a IndexError.
122
125
123 2007-04-21 Ville Vainio <vivainio@gmail.com>
126 2007-04-21 Ville Vainio <vivainio@gmail.com>
124
127
125 * Extensions/ipy_extutil.py: added extension to manage other ipython
128 * Extensions/ipy_extutil.py: added extension to manage other ipython
126 extensions. Now only supports 'ls' == list extensions.
129 extensions. Now only supports 'ls' == list extensions.
127
130
128 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
131 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
129
132
130 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
133 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
131 would prevent use of the exception system outside of a running
134 would prevent use of the exception system outside of a running
132 IPython instance.
135 IPython instance.
133
136
134 2007-04-20 Ville Vainio <vivainio@gmail.com>
137 2007-04-20 Ville Vainio <vivainio@gmail.com>
135
138
136 * Extensions/ipy_render.py: added extension for easy
139 * Extensions/ipy_render.py: added extension for easy
137 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
140 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
138 'Iptl' template notation,
141 'Iptl' template notation,
139
142
140 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
143 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
141 safer & faster 'import' completer.
144 safer & faster 'import' completer.
142
145
143 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
146 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
144 and _ip.defalias(name, command).
147 and _ip.defalias(name, command).
145
148
146 * Extensions/ipy_exportdb.py: New extension for exporting all the
149 * Extensions/ipy_exportdb.py: New extension for exporting all the
147 %store'd data in a portable format (normal ipapi calls like
150 %store'd data in a portable format (normal ipapi calls like
148 defmacro() etc.)
151 defmacro() etc.)
149
152
150 2007-04-19 Ville Vainio <vivainio@gmail.com>
153 2007-04-19 Ville Vainio <vivainio@gmail.com>
151
154
152 * upgrade_dir.py: skip junk files like *.pyc
155 * upgrade_dir.py: skip junk files like *.pyc
153
156
154 * Release.py: version number to 0.8.1
157 * Release.py: version number to 0.8.1
155
158
156 2007-04-18 Ville Vainio <vivainio@gmail.com>
159 2007-04-18 Ville Vainio <vivainio@gmail.com>
157
160
158 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
161 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
159 and later on win32.
162 and later on win32.
160
163
161 2007-04-16 Ville Vainio <vivainio@gmail.com>
164 2007-04-16 Ville Vainio <vivainio@gmail.com>
162
165
163 * iplib.py (showtraceback): Do not crash when running w/o readline.
166 * iplib.py (showtraceback): Do not crash when running w/o readline.
164
167
165 2007-04-12 Walter Doerwald <walter@livinglogic.de>
168 2007-04-12 Walter Doerwald <walter@livinglogic.de>
166
169
167 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
170 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
168 sorted (case sensitive with files and dirs mixed).
171 sorted (case sensitive with files and dirs mixed).
169
172
170 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
173 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
171
174
172 * IPython/Release.py (version): Open trunk for 0.8.1 development.
175 * IPython/Release.py (version): Open trunk for 0.8.1 development.
173
176
174 2007-04-10 *** Released version 0.8.0
177 2007-04-10 *** Released version 0.8.0
175
178
176 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
179 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
177
180
178 * Tag 0.8.0 for release.
181 * Tag 0.8.0 for release.
179
182
180 * IPython/iplib.py (reloadhist): add API function to cleanly
183 * IPython/iplib.py (reloadhist): add API function to cleanly
181 reload the readline history, which was growing inappropriately on
184 reload the readline history, which was growing inappropriately on
182 every %run call.
185 every %run call.
183
186
184 * win32_manual_post_install.py (run): apply last part of Nicolas
187 * win32_manual_post_install.py (run): apply last part of Nicolas
185 Pernetty's patch (I'd accidentally applied it in a different
188 Pernetty's patch (I'd accidentally applied it in a different
186 directory and this particular file didn't get patched).
189 directory and this particular file didn't get patched).
187
190
188 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
191 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
189
192
190 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
193 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
191 find the main thread id and use the proper API call. Thanks to
194 find the main thread id and use the proper API call. Thanks to
192 Stefan for the fix.
195 Stefan for the fix.
193
196
194 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
197 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
195 unit tests to reflect fixed ticket #52, and add more tests sent by
198 unit tests to reflect fixed ticket #52, and add more tests sent by
196 him.
199 him.
197
200
198 * IPython/iplib.py (raw_input): restore the readline completer
201 * IPython/iplib.py (raw_input): restore the readline completer
199 state on every input, in case third-party code messed it up.
202 state on every input, in case third-party code messed it up.
200 (_prefilter): revert recent addition of early-escape checks which
203 (_prefilter): revert recent addition of early-escape checks which
201 prevent many valid alias calls from working.
204 prevent many valid alias calls from working.
202
205
203 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
206 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
204 flag for sigint handler so we don't run a full signal() call on
207 flag for sigint handler so we don't run a full signal() call on
205 each runcode access.
208 each runcode access.
206
209
207 * IPython/Magic.py (magic_whos): small improvement to diagnostic
210 * IPython/Magic.py (magic_whos): small improvement to diagnostic
208 message.
211 message.
209
212
210 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
213 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
211
214
212 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
215 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
213 asynchronous exceptions working, i.e., Ctrl-C can actually
216 asynchronous exceptions working, i.e., Ctrl-C can actually
214 interrupt long-running code in the multithreaded shells.
217 interrupt long-running code in the multithreaded shells.
215
218
216 This is using Tomer Filiba's great ctypes-based trick:
219 This is using Tomer Filiba's great ctypes-based trick:
217 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
220 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
218 this in the past, but hadn't been able to make it work before. So
221 this in the past, but hadn't been able to make it work before. So
219 far it looks like it's actually running, but this needs more
222 far it looks like it's actually running, but this needs more
220 testing. If it really works, I'll be *very* happy, and we'll owe
223 testing. If it really works, I'll be *very* happy, and we'll owe
221 a huge thank you to Tomer. My current implementation is ugly,
224 a huge thank you to Tomer. My current implementation is ugly,
222 hackish and uses nasty globals, but I don't want to try and clean
225 hackish and uses nasty globals, but I don't want to try and clean
223 anything up until we know if it actually works.
226 anything up until we know if it actually works.
224
227
225 NOTE: this feature needs ctypes to work. ctypes is included in
228 NOTE: this feature needs ctypes to work. ctypes is included in
226 Python2.5, but 2.4 users will need to manually install it. This
229 Python2.5, but 2.4 users will need to manually install it. This
227 feature makes multi-threaded shells so much more usable that it's
230 feature makes multi-threaded shells so much more usable that it's
228 a minor price to pay (ctypes is very easy to install, already a
231 a minor price to pay (ctypes is very easy to install, already a
229 requirement for win32 and available in major linux distros).
232 requirement for win32 and available in major linux distros).
230
233
231 2007-04-04 Ville Vainio <vivainio@gmail.com>
234 2007-04-04 Ville Vainio <vivainio@gmail.com>
232
235
233 * Extensions/ipy_completers.py, ipy_stock_completers.py:
236 * Extensions/ipy_completers.py, ipy_stock_completers.py:
234 Moved implementations of 'bundled' completers to ipy_completers.py,
237 Moved implementations of 'bundled' completers to ipy_completers.py,
235 they are only enabled in ipy_stock_completers.py.
238 they are only enabled in ipy_stock_completers.py.
236
239
237 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
240 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
238
241
239 * IPython/PyColorize.py (Parser.format2): Fix identation of
242 * IPython/PyColorize.py (Parser.format2): Fix identation of
240 colorzied output and return early if color scheme is NoColor, to
243 colorzied output and return early if color scheme is NoColor, to
241 avoid unnecessary and expensive tokenization. Closes #131.
244 avoid unnecessary and expensive tokenization. Closes #131.
242
245
243 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
246 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
244
247
245 * IPython/Debugger.py: disable the use of pydb version 1.17. It
248 * IPython/Debugger.py: disable the use of pydb version 1.17. It
246 has a critical bug (a missing import that makes post-mortem not
249 has a critical bug (a missing import that makes post-mortem not
247 work at all). Unfortunately as of this time, this is the version
250 work at all). Unfortunately as of this time, this is the version
248 shipped with Ubuntu Edgy, so quite a few people have this one. I
251 shipped with Ubuntu Edgy, so quite a few people have this one. I
249 hope Edgy will update to a more recent package.
252 hope Edgy will update to a more recent package.
250
253
251 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
254 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
252
255
253 * IPython/iplib.py (_prefilter): close #52, second part of a patch
256 * IPython/iplib.py (_prefilter): close #52, second part of a patch
254 set by Stefan (only the first part had been applied before).
257 set by Stefan (only the first part had been applied before).
255
258
256 * IPython/Extensions/ipy_stock_completers.py (module_completer):
259 * IPython/Extensions/ipy_stock_completers.py (module_completer):
257 remove usage of the dangerous pkgutil.walk_packages(). See
260 remove usage of the dangerous pkgutil.walk_packages(). See
258 details in comments left in the code.
261 details in comments left in the code.
259
262
260 * IPython/Magic.py (magic_whos): add support for numpy arrays
263 * IPython/Magic.py (magic_whos): add support for numpy arrays
261 similar to what we had for Numeric.
264 similar to what we had for Numeric.
262
265
263 * IPython/completer.py (IPCompleter.complete): extend the
266 * IPython/completer.py (IPCompleter.complete): extend the
264 complete() call API to support completions by other mechanisms
267 complete() call API to support completions by other mechanisms
265 than readline. Closes #109.
268 than readline. Closes #109.
266
269
267 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
270 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
268 protect against a bug in Python's execfile(). Closes #123.
271 protect against a bug in Python's execfile(). Closes #123.
269
272
270 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
273 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
271
274
272 * IPython/iplib.py (split_user_input): ensure that when splitting
275 * IPython/iplib.py (split_user_input): ensure that when splitting
273 user input, the part that can be treated as a python name is pure
276 user input, the part that can be treated as a python name is pure
274 ascii (Python identifiers MUST be pure ascii). Part of the
277 ascii (Python identifiers MUST be pure ascii). Part of the
275 ongoing Unicode support work.
278 ongoing Unicode support work.
276
279
277 * IPython/Prompts.py (prompt_specials_color): Add \N for the
280 * IPython/Prompts.py (prompt_specials_color): Add \N for the
278 actual prompt number, without any coloring. This allows users to
281 actual prompt number, without any coloring. This allows users to
279 produce numbered prompts with their own colors. Added after a
282 produce numbered prompts with their own colors. Added after a
280 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
283 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
281
284
282 2007-03-31 Walter Doerwald <walter@livinglogic.de>
285 2007-03-31 Walter Doerwald <walter@livinglogic.de>
283
286
284 * IPython/Extensions/igrid.py: Map the return key
287 * IPython/Extensions/igrid.py: Map the return key
285 to enter() and shift-return to enterattr().
288 to enter() and shift-return to enterattr().
286
289
287 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
290 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
288
291
289 * IPython/Magic.py (magic_psearch): add unicode support by
292 * IPython/Magic.py (magic_psearch): add unicode support by
290 encoding to ascii the input, since this routine also only deals
293 encoding to ascii the input, since this routine also only deals
291 with valid Python names. Fixes a bug reported by Stefan.
294 with valid Python names. Fixes a bug reported by Stefan.
292
295
293 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
296 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
294
297
295 * IPython/Magic.py (_inspect): convert unicode input into ascii
298 * IPython/Magic.py (_inspect): convert unicode input into ascii
296 before trying to evaluate it as a Python identifier. This fixes a
299 before trying to evaluate it as a Python identifier. This fixes a
297 problem that the new unicode support had introduced when analyzing
300 problem that the new unicode support had introduced when analyzing
298 long definition lines for functions.
301 long definition lines for functions.
299
302
300 2007-03-24 Walter Doerwald <walter@livinglogic.de>
303 2007-03-24 Walter Doerwald <walter@livinglogic.de>
301
304
302 * IPython/Extensions/igrid.py: Fix picking. Using
305 * IPython/Extensions/igrid.py: Fix picking. Using
303 igrid with wxPython 2.6 and -wthread should work now.
306 igrid with wxPython 2.6 and -wthread should work now.
304 igrid.display() simply tries to create a frame without
307 igrid.display() simply tries to create a frame without
305 an application. Only if this fails an application is created.
308 an application. Only if this fails an application is created.
306
309
307 2007-03-23 Walter Doerwald <walter@livinglogic.de>
310 2007-03-23 Walter Doerwald <walter@livinglogic.de>
308
311
309 * IPython/Extensions/path.py: Updated to version 2.2.
312 * IPython/Extensions/path.py: Updated to version 2.2.
310
313
311 2007-03-23 Ville Vainio <vivainio@gmail.com>
314 2007-03-23 Ville Vainio <vivainio@gmail.com>
312
315
313 * iplib.py: recursive alias expansion now works better, so that
316 * iplib.py: recursive alias expansion now works better, so that
314 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
317 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
315 doesn't trip up the process, if 'd' has been aliased to 'ls'.
318 doesn't trip up the process, if 'd' has been aliased to 'ls'.
316
319
317 * Extensions/ipy_gnuglobal.py added, provides %global magic
320 * Extensions/ipy_gnuglobal.py added, provides %global magic
318 for users of http://www.gnu.org/software/global
321 for users of http://www.gnu.org/software/global
319
322
320 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
323 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
321 Closes #52. Patch by Stefan van der Walt.
324 Closes #52. Patch by Stefan van der Walt.
322
325
323 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
326 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
324
327
325 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
328 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
326 respect the __file__ attribute when using %run. Thanks to a bug
329 respect the __file__ attribute when using %run. Thanks to a bug
327 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
330 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
328
331
329 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
332 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
330
333
331 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
334 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
332 input. Patch sent by Stefan.
335 input. Patch sent by Stefan.
333
336
334 2007-03-20 J�rgen Stenarson <jorgen.stenarson@bostream.nu>
337 2007-03-20 J�rgen Stenarson <jorgen.stenarson@bostream.nu>
335 * IPython/Extensions/ipy_stock_completer.py
338 * IPython/Extensions/ipy_stock_completer.py
336 shlex_split, fix bug in shlex_split. len function
339 shlex_split, fix bug in shlex_split. len function
337 call was missing an if statement. Caused shlex_split to
340 call was missing an if statement. Caused shlex_split to
338 sometimes return "" as last element.
341 sometimes return "" as last element.
339
342
340 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
343 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
341
344
342 * IPython/completer.py
345 * IPython/completer.py
343 (IPCompleter.file_matches.single_dir_expand): fix a problem
346 (IPCompleter.file_matches.single_dir_expand): fix a problem
344 reported by Stefan, where directories containign a single subdir
347 reported by Stefan, where directories containign a single subdir
345 would be completed too early.
348 would be completed too early.
346
349
347 * IPython/Shell.py (_load_pylab): Make the execution of 'from
350 * IPython/Shell.py (_load_pylab): Make the execution of 'from
348 pylab import *' when -pylab is given be optional. A new flag,
351 pylab import *' when -pylab is given be optional. A new flag,
349 pylab_import_all controls this behavior, the default is True for
352 pylab_import_all controls this behavior, the default is True for
350 backwards compatibility.
353 backwards compatibility.
351
354
352 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
355 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
353 modified) R. Bernstein's patch for fully syntax highlighted
356 modified) R. Bernstein's patch for fully syntax highlighted
354 tracebacks. The functionality is also available under ultraTB for
357 tracebacks. The functionality is also available under ultraTB for
355 non-ipython users (someone using ultraTB but outside an ipython
358 non-ipython users (someone using ultraTB but outside an ipython
356 session). They can select the color scheme by setting the
359 session). They can select the color scheme by setting the
357 module-level global DEFAULT_SCHEME. The highlight functionality
360 module-level global DEFAULT_SCHEME. The highlight functionality
358 also works when debugging.
361 also works when debugging.
359
362
360 * IPython/genutils.py (IOStream.close): small patch by
363 * IPython/genutils.py (IOStream.close): small patch by
361 R. Bernstein for improved pydb support.
364 R. Bernstein for improved pydb support.
362
365
363 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
366 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
364 DaveS <davls@telus.net> to improve support of debugging under
367 DaveS <davls@telus.net> to improve support of debugging under
365 NTEmacs, including improved pydb behavior.
368 NTEmacs, including improved pydb behavior.
366
369
367 * IPython/Magic.py (magic_prun): Fix saving of profile info for
370 * IPython/Magic.py (magic_prun): Fix saving of profile info for
368 Python 2.5, where the stats object API changed a little. Thanks
371 Python 2.5, where the stats object API changed a little. Thanks
369 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
372 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
370
373
371 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
374 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
372 Pernetty's patch to improve support for (X)Emacs under Win32.
375 Pernetty's patch to improve support for (X)Emacs under Win32.
373
376
374 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
377 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
375
378
376 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
379 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
377 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
380 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
378 a report by Nik Tautenhahn.
381 a report by Nik Tautenhahn.
379
382
380 2007-03-16 Walter Doerwald <walter@livinglogic.de>
383 2007-03-16 Walter Doerwald <walter@livinglogic.de>
381
384
382 * setup.py: Add the igrid help files to the list of data files
385 * setup.py: Add the igrid help files to the list of data files
383 to be installed alongside igrid.
386 to be installed alongside igrid.
384 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
387 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
385 Show the input object of the igrid browser as the window tile.
388 Show the input object of the igrid browser as the window tile.
386 Show the object the cursor is on in the statusbar.
389 Show the object the cursor is on in the statusbar.
387
390
388 2007-03-15 Ville Vainio <vivainio@gmail.com>
391 2007-03-15 Ville Vainio <vivainio@gmail.com>
389
392
390 * Extensions/ipy_stock_completers.py: Fixed exception
393 * Extensions/ipy_stock_completers.py: Fixed exception
391 on mismatching quotes in %run completer. Patch by
394 on mismatching quotes in %run completer. Patch by
392 J�rgen Stenarson. Closes #127.
395 J�rgen Stenarson. Closes #127.
393
396
394 2007-03-14 Ville Vainio <vivainio@gmail.com>
397 2007-03-14 Ville Vainio <vivainio@gmail.com>
395
398
396 * Extensions/ext_rehashdir.py: Do not do auto_alias
399 * Extensions/ext_rehashdir.py: Do not do auto_alias
397 in %rehashdir, it clobbers %store'd aliases.
400 in %rehashdir, it clobbers %store'd aliases.
398
401
399 * UserConfig/ipy_profile_sh.py: envpersist.py extension
402 * UserConfig/ipy_profile_sh.py: envpersist.py extension
400 (beefed up %env) imported for sh profile.
403 (beefed up %env) imported for sh profile.
401
404
402 2007-03-10 Walter Doerwald <walter@livinglogic.de>
405 2007-03-10 Walter Doerwald <walter@livinglogic.de>
403
406
404 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
407 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
405 as the default browser.
408 as the default browser.
406 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
409 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
407 As igrid displays all attributes it ever encounters, fetch() (which has
410 As igrid displays all attributes it ever encounters, fetch() (which has
408 been renamed to _fetch()) doesn't have to recalculate the display attributes
411 been renamed to _fetch()) doesn't have to recalculate the display attributes
409 every time a new item is fetched. This should speed up scrolling.
412 every time a new item is fetched. This should speed up scrolling.
410
413
411 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
414 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
412
415
413 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
416 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
414 Schmolck's recently reported tab-completion bug (my previous one
417 Schmolck's recently reported tab-completion bug (my previous one
415 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
418 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
416
419
417 2007-03-09 Walter Doerwald <walter@livinglogic.de>
420 2007-03-09 Walter Doerwald <walter@livinglogic.de>
418
421
419 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
422 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
420 Close help window if exiting igrid.
423 Close help window if exiting igrid.
421
424
422 2007-03-02 J�rgen Stenarson <jorgen.stenarson@bostream.nu>
425 2007-03-02 J�rgen Stenarson <jorgen.stenarson@bostream.nu>
423
426
424 * IPython/Extensions/ipy_defaults.py: Check if readline is available
427 * IPython/Extensions/ipy_defaults.py: Check if readline is available
425 before calling functions from readline.
428 before calling functions from readline.
426
429
427 2007-03-02 Walter Doerwald <walter@livinglogic.de>
430 2007-03-02 Walter Doerwald <walter@livinglogic.de>
428
431
429 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
432 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
430 igrid is a wxPython-based display object for ipipe. If your system has
433 igrid is a wxPython-based display object for ipipe. If your system has
431 wx installed igrid will be the default display. Without wx ipipe falls
434 wx installed igrid will be the default display. Without wx ipipe falls
432 back to ibrowse (which needs curses). If no curses is installed ipipe
435 back to ibrowse (which needs curses). If no curses is installed ipipe
433 falls back to idump.
436 falls back to idump.
434
437
435 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
438 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
436
439
437 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
440 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
438 my changes from yesterday, they introduced bugs. Will reactivate
441 my changes from yesterday, they introduced bugs. Will reactivate
439 once I get a correct solution, which will be much easier thanks to
442 once I get a correct solution, which will be much easier thanks to
440 Dan Milstein's new prefilter test suite.
443 Dan Milstein's new prefilter test suite.
441
444
442 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
445 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
443
446
444 * IPython/iplib.py (split_user_input): fix input splitting so we
447 * IPython/iplib.py (split_user_input): fix input splitting so we
445 don't attempt attribute accesses on things that can't possibly be
448 don't attempt attribute accesses on things that can't possibly be
446 valid Python attributes. After a bug report by Alex Schmolck.
449 valid Python attributes. After a bug report by Alex Schmolck.
447 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
450 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
448 %magic with explicit % prefix.
451 %magic with explicit % prefix.
449
452
450 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
453 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
451
454
452 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
455 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
453 avoid a DeprecationWarning from GTK.
456 avoid a DeprecationWarning from GTK.
454
457
455 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
458 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
456
459
457 * IPython/genutils.py (clock): I modified clock() to return total
460 * IPython/genutils.py (clock): I modified clock() to return total
458 time, user+system. This is a more commonly needed metric. I also
461 time, user+system. This is a more commonly needed metric. I also
459 introduced the new clocku/clocks to get only user/system time if
462 introduced the new clocku/clocks to get only user/system time if
460 one wants those instead.
463 one wants those instead.
461
464
462 ***WARNING: API CHANGE*** clock() used to return only user time,
465 ***WARNING: API CHANGE*** clock() used to return only user time,
463 so if you want exactly the same results as before, use clocku
466 so if you want exactly the same results as before, use clocku
464 instead.
467 instead.
465
468
466 2007-02-22 Ville Vainio <vivainio@gmail.com>
469 2007-02-22 Ville Vainio <vivainio@gmail.com>
467
470
468 * IPython/Extensions/ipy_p4.py: Extension for improved
471 * IPython/Extensions/ipy_p4.py: Extension for improved
469 p4 (perforce version control system) experience.
472 p4 (perforce version control system) experience.
470 Adds %p4 magic with p4 command completion and
473 Adds %p4 magic with p4 command completion and
471 automatic -G argument (marshall output as python dict)
474 automatic -G argument (marshall output as python dict)
472
475
473 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
476 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
474
477
475 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
478 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
476 stop marks.
479 stop marks.
477 (ClearingMixin): a simple mixin to easily make a Demo class clear
480 (ClearingMixin): a simple mixin to easily make a Demo class clear
478 the screen in between blocks and have empty marquees. The
481 the screen in between blocks and have empty marquees. The
479 ClearDemo and ClearIPDemo classes that use it are included.
482 ClearDemo and ClearIPDemo classes that use it are included.
480
483
481 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
484 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
482
485
483 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
486 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
484 protect against exceptions at Python shutdown time. Patch
487 protect against exceptions at Python shutdown time. Patch
485 sumbmitted to upstream.
488 sumbmitted to upstream.
486
489
487 2007-02-14 Walter Doerwald <walter@livinglogic.de>
490 2007-02-14 Walter Doerwald <walter@livinglogic.de>
488
491
489 * IPython/Extensions/ibrowse.py: If entering the first object level
492 * IPython/Extensions/ibrowse.py: If entering the first object level
490 (i.e. the object for which the browser has been started) fails,
493 (i.e. the object for which the browser has been started) fails,
491 now the error is raised directly (aborting the browser) instead of
494 now the error is raised directly (aborting the browser) instead of
492 running into an empty levels list later.
495 running into an empty levels list later.
493
496
494 2007-02-03 Walter Doerwald <walter@livinglogic.de>
497 2007-02-03 Walter Doerwald <walter@livinglogic.de>
495
498
496 * IPython/Extensions/ipipe.py: Add an xrepr implementation
499 * IPython/Extensions/ipipe.py: Add an xrepr implementation
497 for the noitem object.
500 for the noitem object.
498
501
499 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
502 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
500
503
501 * IPython/completer.py (Completer.attr_matches): Fix small
504 * IPython/completer.py (Completer.attr_matches): Fix small
502 tab-completion bug with Enthought Traits objects with units.
505 tab-completion bug with Enthought Traits objects with units.
503 Thanks to a bug report by Tom Denniston
506 Thanks to a bug report by Tom Denniston
504 <tom.denniston-AT-alum.dartmouth.org>.
507 <tom.denniston-AT-alum.dartmouth.org>.
505
508
506 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
509 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
507
510
508 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
511 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
509 bug where only .ipy or .py would be completed. Once the first
512 bug where only .ipy or .py would be completed. Once the first
510 argument to %run has been given, all completions are valid because
513 argument to %run has been given, all completions are valid because
511 they are the arguments to the script, which may well be non-python
514 they are the arguments to the script, which may well be non-python
512 filenames.
515 filenames.
513
516
514 * IPython/irunner.py (InteractiveRunner.run_source): major updates
517 * IPython/irunner.py (InteractiveRunner.run_source): major updates
515 to irunner to allow it to correctly support real doctesting of
518 to irunner to allow it to correctly support real doctesting of
516 out-of-process ipython code.
519 out-of-process ipython code.
517
520
518 * IPython/Magic.py (magic_cd): Make the setting of the terminal
521 * IPython/Magic.py (magic_cd): Make the setting of the terminal
519 title an option (-noterm_title) because it completely breaks
522 title an option (-noterm_title) because it completely breaks
520 doctesting.
523 doctesting.
521
524
522 * IPython/demo.py: fix IPythonDemo class that was not actually working.
525 * IPython/demo.py: fix IPythonDemo class that was not actually working.
523
526
524 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
527 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
525
528
526 * IPython/irunner.py (main): fix small bug where extensions were
529 * IPython/irunner.py (main): fix small bug where extensions were
527 not being correctly recognized.
530 not being correctly recognized.
528
531
529 2007-01-23 Walter Doerwald <walter@livinglogic.de>
532 2007-01-23 Walter Doerwald <walter@livinglogic.de>
530
533
531 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
534 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
532 a string containing a single line yields the string itself as the
535 a string containing a single line yields the string itself as the
533 only item.
536 only item.
534
537
535 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
538 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
536 object if it's the same as the one on the last level (This avoids
539 object if it's the same as the one on the last level (This avoids
537 infinite recursion for one line strings).
540 infinite recursion for one line strings).
538
541
539 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
542 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
540
543
541 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
544 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
542 all output streams before printing tracebacks. This ensures that
545 all output streams before printing tracebacks. This ensures that
543 user output doesn't end up interleaved with traceback output.
546 user output doesn't end up interleaved with traceback output.
544
547
545 2007-01-10 Ville Vainio <vivainio@gmail.com>
548 2007-01-10 Ville Vainio <vivainio@gmail.com>
546
549
547 * Extensions/envpersist.py: Turbocharged %env that remembers
550 * Extensions/envpersist.py: Turbocharged %env that remembers
548 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
551 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
549 "%env VISUAL=jed".
552 "%env VISUAL=jed".
550
553
551 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
554 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
552
555
553 * IPython/iplib.py (showtraceback): ensure that we correctly call
556 * IPython/iplib.py (showtraceback): ensure that we correctly call
554 custom handlers in all cases (some with pdb were slipping through,
557 custom handlers in all cases (some with pdb were slipping through,
555 but I'm not exactly sure why).
558 but I'm not exactly sure why).
556
559
557 * IPython/Debugger.py (Tracer.__init__): added new class to
560 * IPython/Debugger.py (Tracer.__init__): added new class to
558 support set_trace-like usage of IPython's enhanced debugger.
561 support set_trace-like usage of IPython's enhanced debugger.
559
562
560 2006-12-24 Ville Vainio <vivainio@gmail.com>
563 2006-12-24 Ville Vainio <vivainio@gmail.com>
561
564
562 * ipmaker.py: more informative message when ipy_user_conf
565 * ipmaker.py: more informative message when ipy_user_conf
563 import fails (suggest running %upgrade).
566 import fails (suggest running %upgrade).
564
567
565 * tools/run_ipy_in_profiler.py: Utility to see where
568 * tools/run_ipy_in_profiler.py: Utility to see where
566 the time during IPython startup is spent.
569 the time during IPython startup is spent.
567
570
568 2006-12-20 Ville Vainio <vivainio@gmail.com>
571 2006-12-20 Ville Vainio <vivainio@gmail.com>
569
572
570 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
573 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
571
574
572 * ipapi.py: Add new ipapi method, expand_alias.
575 * ipapi.py: Add new ipapi method, expand_alias.
573
576
574 * Release.py: Bump up version to 0.7.4.svn
577 * Release.py: Bump up version to 0.7.4.svn
575
578
576 2006-12-17 Ville Vainio <vivainio@gmail.com>
579 2006-12-17 Ville Vainio <vivainio@gmail.com>
577
580
578 * Extensions/jobctrl.py: Fixed &cmd arg arg...
581 * Extensions/jobctrl.py: Fixed &cmd arg arg...
579 to work properly on posix too
582 to work properly on posix too
580
583
581 * Release.py: Update revnum (version is still just 0.7.3).
584 * Release.py: Update revnum (version is still just 0.7.3).
582
585
583 2006-12-15 Ville Vainio <vivainio@gmail.com>
586 2006-12-15 Ville Vainio <vivainio@gmail.com>
584
587
585 * scripts/ipython_win_post_install: create ipython.py in
588 * scripts/ipython_win_post_install: create ipython.py in
586 prefix + "/scripts".
589 prefix + "/scripts".
587
590
588 * Release.py: Update version to 0.7.3.
591 * Release.py: Update version to 0.7.3.
589
592
590 2006-12-14 Ville Vainio <vivainio@gmail.com>
593 2006-12-14 Ville Vainio <vivainio@gmail.com>
591
594
592 * scripts/ipython_win_post_install: Overwrite old shortcuts
595 * scripts/ipython_win_post_install: Overwrite old shortcuts
593 if they already exist
596 if they already exist
594
597
595 * Release.py: release 0.7.3rc2
598 * Release.py: release 0.7.3rc2
596
599
597 2006-12-13 Ville Vainio <vivainio@gmail.com>
600 2006-12-13 Ville Vainio <vivainio@gmail.com>
598
601
599 * Branch and update Release.py for 0.7.3rc1
602 * Branch and update Release.py for 0.7.3rc1
600
603
601 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
604 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
602
605
603 * IPython/Shell.py (IPShellWX): update for current WX naming
606 * IPython/Shell.py (IPShellWX): update for current WX naming
604 conventions, to avoid a deprecation warning with current WX
607 conventions, to avoid a deprecation warning with current WX
605 versions. Thanks to a report by Danny Shevitz.
608 versions. Thanks to a report by Danny Shevitz.
606
609
607 2006-12-12 Ville Vainio <vivainio@gmail.com>
610 2006-12-12 Ville Vainio <vivainio@gmail.com>
608
611
609 * ipmaker.py: apply david cournapeau's patch to make
612 * ipmaker.py: apply david cournapeau's patch to make
610 import_some work properly even when ipythonrc does
613 import_some work properly even when ipythonrc does
611 import_some on empty list (it was an old bug!).
614 import_some on empty list (it was an old bug!).
612
615
613 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
616 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
614 Add deprecation note to ipythonrc and a url to wiki
617 Add deprecation note to ipythonrc and a url to wiki
615 in ipy_user_conf.py
618 in ipy_user_conf.py
616
619
617
620
618 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
621 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
619 as if it was typed on IPython command prompt, i.e.
622 as if it was typed on IPython command prompt, i.e.
620 as IPython script.
623 as IPython script.
621
624
622 * example-magic.py, magic_grepl.py: remove outdated examples
625 * example-magic.py, magic_grepl.py: remove outdated examples
623
626
624 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
627 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
625
628
626 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
629 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
627 is called before any exception has occurred.
630 is called before any exception has occurred.
628
631
629 2006-12-08 Ville Vainio <vivainio@gmail.com>
632 2006-12-08 Ville Vainio <vivainio@gmail.com>
630
633
631 * Extensions/ipy_stock_completers.py: fix cd completer
634 * Extensions/ipy_stock_completers.py: fix cd completer
632 to translate /'s to \'s again.
635 to translate /'s to \'s again.
633
636
634 * completer.py: prevent traceback on file completions w/
637 * completer.py: prevent traceback on file completions w/
635 backslash.
638 backslash.
636
639
637 * Release.py: Update release number to 0.7.3b3 for release
640 * Release.py: Update release number to 0.7.3b3 for release
638
641
639 2006-12-07 Ville Vainio <vivainio@gmail.com>
642 2006-12-07 Ville Vainio <vivainio@gmail.com>
640
643
641 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
644 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
642 while executing external code. Provides more shell-like behaviour
645 while executing external code. Provides more shell-like behaviour
643 and overall better response to ctrl + C / ctrl + break.
646 and overall better response to ctrl + C / ctrl + break.
644
647
645 * tools/make_tarball.py: new script to create tarball straight from svn
648 * tools/make_tarball.py: new script to create tarball straight from svn
646 (setup.py sdist doesn't work on win32).
649 (setup.py sdist doesn't work on win32).
647
650
648 * Extensions/ipy_stock_completers.py: fix cd completer to give up
651 * Extensions/ipy_stock_completers.py: fix cd completer to give up
649 on dirnames with spaces and use the default completer instead.
652 on dirnames with spaces and use the default completer instead.
650
653
651 * Revision.py: Change version to 0.7.3b2 for release.
654 * Revision.py: Change version to 0.7.3b2 for release.
652
655
653 2006-12-05 Ville Vainio <vivainio@gmail.com>
656 2006-12-05 Ville Vainio <vivainio@gmail.com>
654
657
655 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
658 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
656 pydb patch 4 (rm debug printing, py 2.5 checking)
659 pydb patch 4 (rm debug printing, py 2.5 checking)
657
660
658 2006-11-30 Walter Doerwald <walter@livinglogic.de>
661 2006-11-30 Walter Doerwald <walter@livinglogic.de>
659 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
662 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
660 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
663 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
661 "refreshfind" (mapped to "R") does the same but tries to go back to the same
664 "refreshfind" (mapped to "R") does the same but tries to go back to the same
662 object the cursor was on before the refresh. The command "markrange" is
665 object the cursor was on before the refresh. The command "markrange" is
663 mapped to "%" now.
666 mapped to "%" now.
664 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
667 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
665
668
666 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
669 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
667
670
668 * IPython/Magic.py (magic_debug): new %debug magic to activate the
671 * IPython/Magic.py (magic_debug): new %debug magic to activate the
669 interactive debugger on the last traceback, without having to call
672 interactive debugger on the last traceback, without having to call
670 %pdb and rerun your code. Made minor changes in various modules,
673 %pdb and rerun your code. Made minor changes in various modules,
671 should automatically recognize pydb if available.
674 should automatically recognize pydb if available.
672
675
673 2006-11-28 Ville Vainio <vivainio@gmail.com>
676 2006-11-28 Ville Vainio <vivainio@gmail.com>
674
677
675 * completer.py: If the text start with !, show file completions
678 * completer.py: If the text start with !, show file completions
676 properly. This helps when trying to complete command name
679 properly. This helps when trying to complete command name
677 for shell escapes.
680 for shell escapes.
678
681
679 2006-11-27 Ville Vainio <vivainio@gmail.com>
682 2006-11-27 Ville Vainio <vivainio@gmail.com>
680
683
681 * ipy_stock_completers.py: bzr completer submitted by Stefan van
684 * ipy_stock_completers.py: bzr completer submitted by Stefan van
682 der Walt. Clean up svn and hg completers by using a common
685 der Walt. Clean up svn and hg completers by using a common
683 vcs_completer.
686 vcs_completer.
684
687
685 2006-11-26 Ville Vainio <vivainio@gmail.com>
688 2006-11-26 Ville Vainio <vivainio@gmail.com>
686
689
687 * Remove ipconfig and %config; you should use _ip.options structure
690 * Remove ipconfig and %config; you should use _ip.options structure
688 directly instead!
691 directly instead!
689
692
690 * genutils.py: add wrap_deprecated function for deprecating callables
693 * genutils.py: add wrap_deprecated function for deprecating callables
691
694
692 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
695 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
693 _ip.system instead. ipalias is redundant.
696 _ip.system instead. ipalias is redundant.
694
697
695 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
698 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
696 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
699 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
697 explicit.
700 explicit.
698
701
699 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
702 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
700 completer. Try it by entering 'hg ' and pressing tab.
703 completer. Try it by entering 'hg ' and pressing tab.
701
704
702 * macro.py: Give Macro a useful __repr__ method
705 * macro.py: Give Macro a useful __repr__ method
703
706
704 * Magic.py: %whos abbreviates the typename of Macro for brevity.
707 * Magic.py: %whos abbreviates the typename of Macro for brevity.
705
708
706 2006-11-24 Walter Doerwald <walter@livinglogic.de>
709 2006-11-24 Walter Doerwald <walter@livinglogic.de>
707 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
710 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
708 we don't get a duplicate ipipe module, where registration of the xrepr
711 we don't get a duplicate ipipe module, where registration of the xrepr
709 implementation for Text is useless.
712 implementation for Text is useless.
710
713
711 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
714 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
712
715
713 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
716 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
714
717
715 2006-11-24 Ville Vainio <vivainio@gmail.com>
718 2006-11-24 Ville Vainio <vivainio@gmail.com>
716
719
717 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
720 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
718 try to use "cProfile" instead of the slower pure python
721 try to use "cProfile" instead of the slower pure python
719 "profile"
722 "profile"
720
723
721 2006-11-23 Ville Vainio <vivainio@gmail.com>
724 2006-11-23 Ville Vainio <vivainio@gmail.com>
722
725
723 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
726 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
724 Qt+IPython+Designer link in documentation.
727 Qt+IPython+Designer link in documentation.
725
728
726 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
729 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
727 correct Pdb object to %pydb.
730 correct Pdb object to %pydb.
728
731
729
732
730 2006-11-22 Walter Doerwald <walter@livinglogic.de>
733 2006-11-22 Walter Doerwald <walter@livinglogic.de>
731 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
734 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
732 generic xrepr(), otherwise the list implementation would kick in.
735 generic xrepr(), otherwise the list implementation would kick in.
733
736
734 2006-11-21 Ville Vainio <vivainio@gmail.com>
737 2006-11-21 Ville Vainio <vivainio@gmail.com>
735
738
736 * upgrade_dir.py: Now actually overwrites a nonmodified user file
739 * upgrade_dir.py: Now actually overwrites a nonmodified user file
737 with one from UserConfig.
740 with one from UserConfig.
738
741
739 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
742 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
740 it was missing which broke the sh profile.
743 it was missing which broke the sh profile.
741
744
742 * completer.py: file completer now uses explicit '/' instead
745 * completer.py: file completer now uses explicit '/' instead
743 of os.path.join, expansion of 'foo' was broken on win32
746 of os.path.join, expansion of 'foo' was broken on win32
744 if there was one directory with name 'foobar'.
747 if there was one directory with name 'foobar'.
745
748
746 * A bunch of patches from Kirill Smelkov:
749 * A bunch of patches from Kirill Smelkov:
747
750
748 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
751 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
749
752
750 * [patch 7/9] Implement %page -r (page in raw mode) -
753 * [patch 7/9] Implement %page -r (page in raw mode) -
751
754
752 * [patch 5/9] ScientificPython webpage has moved
755 * [patch 5/9] ScientificPython webpage has moved
753
756
754 * [patch 4/9] The manual mentions %ds, should be %dhist
757 * [patch 4/9] The manual mentions %ds, should be %dhist
755
758
756 * [patch 3/9] Kill old bits from %prun doc.
759 * [patch 3/9] Kill old bits from %prun doc.
757
760
758 * [patch 1/9] Fix typos here and there.
761 * [patch 1/9] Fix typos here and there.
759
762
760 2006-11-08 Ville Vainio <vivainio@gmail.com>
763 2006-11-08 Ville Vainio <vivainio@gmail.com>
761
764
762 * completer.py (attr_matches): catch all exceptions raised
765 * completer.py (attr_matches): catch all exceptions raised
763 by eval of expr with dots.
766 by eval of expr with dots.
764
767
765 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
768 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
766
769
767 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
770 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
768 input if it starts with whitespace. This allows you to paste
771 input if it starts with whitespace. This allows you to paste
769 indented input from any editor without manually having to type in
772 indented input from any editor without manually having to type in
770 the 'if 1:', which is convenient when working interactively.
773 the 'if 1:', which is convenient when working interactively.
771 Slightly modifed version of a patch by Bo Peng
774 Slightly modifed version of a patch by Bo Peng
772 <bpeng-AT-rice.edu>.
775 <bpeng-AT-rice.edu>.
773
776
774 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
777 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
775
778
776 * IPython/irunner.py (main): modified irunner so it automatically
779 * IPython/irunner.py (main): modified irunner so it automatically
777 recognizes the right runner to use based on the extension (.py for
780 recognizes the right runner to use based on the extension (.py for
778 python, .ipy for ipython and .sage for sage).
781 python, .ipy for ipython and .sage for sage).
779
782
780 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
783 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
781 visible in ipapi as ip.config(), to programatically control the
784 visible in ipapi as ip.config(), to programatically control the
782 internal rc object. There's an accompanying %config magic for
785 internal rc object. There's an accompanying %config magic for
783 interactive use, which has been enhanced to match the
786 interactive use, which has been enhanced to match the
784 funtionality in ipconfig.
787 funtionality in ipconfig.
785
788
786 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
789 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
787 so it's not just a toggle, it now takes an argument. Add support
790 so it's not just a toggle, it now takes an argument. Add support
788 for a customizable header when making system calls, as the new
791 for a customizable header when making system calls, as the new
789 system_header variable in the ipythonrc file.
792 system_header variable in the ipythonrc file.
790
793
791 2006-11-03 Walter Doerwald <walter@livinglogic.de>
794 2006-11-03 Walter Doerwald <walter@livinglogic.de>
792
795
793 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
796 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
794 generic functions (using Philip J. Eby's simplegeneric package).
797 generic functions (using Philip J. Eby's simplegeneric package).
795 This makes it possible to customize the display of third-party classes
798 This makes it possible to customize the display of third-party classes
796 without having to monkeypatch them. xiter() no longer supports a mode
799 without having to monkeypatch them. xiter() no longer supports a mode
797 argument and the XMode class has been removed. The same functionality can
800 argument and the XMode class has been removed. The same functionality can
798 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
801 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
799 One consequence of the switch to generic functions is that xrepr() and
802 One consequence of the switch to generic functions is that xrepr() and
800 xattrs() implementation must define the default value for the mode
803 xattrs() implementation must define the default value for the mode
801 argument themselves and xattrs() implementations must return real
804 argument themselves and xattrs() implementations must return real
802 descriptors.
805 descriptors.
803
806
804 * IPython/external: This new subpackage will contain all third-party
807 * IPython/external: This new subpackage will contain all third-party
805 packages that are bundled with IPython. (The first one is simplegeneric).
808 packages that are bundled with IPython. (The first one is simplegeneric).
806
809
807 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
810 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
808 directory which as been dropped in r1703.
811 directory which as been dropped in r1703.
809
812
810 * IPython/Extensions/ipipe.py (iless): Fixed.
813 * IPython/Extensions/ipipe.py (iless): Fixed.
811
814
812 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
815 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
813
816
814 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
817 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
815
818
816 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
819 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
817 handling in variable expansion so that shells and magics recognize
820 handling in variable expansion so that shells and magics recognize
818 function local scopes correctly. Bug reported by Brian.
821 function local scopes correctly. Bug reported by Brian.
819
822
820 * scripts/ipython: remove the very first entry in sys.path which
823 * scripts/ipython: remove the very first entry in sys.path which
821 Python auto-inserts for scripts, so that sys.path under IPython is
824 Python auto-inserts for scripts, so that sys.path under IPython is
822 as similar as possible to that under plain Python.
825 as similar as possible to that under plain Python.
823
826
824 * IPython/completer.py (IPCompleter.file_matches): Fix
827 * IPython/completer.py (IPCompleter.file_matches): Fix
825 tab-completion so that quotes are not closed unless the completion
828 tab-completion so that quotes are not closed unless the completion
826 is unambiguous. After a request by Stefan. Minor cleanups in
829 is unambiguous. After a request by Stefan. Minor cleanups in
827 ipy_stock_completers.
830 ipy_stock_completers.
828
831
829 2006-11-02 Ville Vainio <vivainio@gmail.com>
832 2006-11-02 Ville Vainio <vivainio@gmail.com>
830
833
831 * ipy_stock_completers.py: Add %run and %cd completers.
834 * ipy_stock_completers.py: Add %run and %cd completers.
832
835
833 * completer.py: Try running custom completer for both
836 * completer.py: Try running custom completer for both
834 "foo" and "%foo" if the command is just "foo". Ignore case
837 "foo" and "%foo" if the command is just "foo". Ignore case
835 when filtering possible completions.
838 when filtering possible completions.
836
839
837 * UserConfig/ipy_user_conf.py: install stock completers as default
840 * UserConfig/ipy_user_conf.py: install stock completers as default
838
841
839 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
842 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
840 simplified readline history save / restore through a wrapper
843 simplified readline history save / restore through a wrapper
841 function
844 function
842
845
843
846
844 2006-10-31 Ville Vainio <vivainio@gmail.com>
847 2006-10-31 Ville Vainio <vivainio@gmail.com>
845
848
846 * strdispatch.py, completer.py, ipy_stock_completers.py:
849 * strdispatch.py, completer.py, ipy_stock_completers.py:
847 Allow str_key ("command") in completer hooks. Implement
850 Allow str_key ("command") in completer hooks. Implement
848 trivial completer for 'import' (stdlib modules only). Rename
851 trivial completer for 'import' (stdlib modules only). Rename
849 ipy_linux_package_managers.py to ipy_stock_completers.py.
852 ipy_linux_package_managers.py to ipy_stock_completers.py.
850 SVN completer.
853 SVN completer.
851
854
852 * Extensions/ledit.py: %magic line editor for easily and
855 * Extensions/ledit.py: %magic line editor for easily and
853 incrementally manipulating lists of strings. The magic command
856 incrementally manipulating lists of strings. The magic command
854 name is %led.
857 name is %led.
855
858
856 2006-10-30 Ville Vainio <vivainio@gmail.com>
859 2006-10-30 Ville Vainio <vivainio@gmail.com>
857
860
858 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
861 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
859 Bernsteins's patches for pydb integration.
862 Bernsteins's patches for pydb integration.
860 http://bashdb.sourceforge.net/pydb/
863 http://bashdb.sourceforge.net/pydb/
861
864
862 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
865 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
863 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
866 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
864 custom completer hook to allow the users to implement their own
867 custom completer hook to allow the users to implement their own
865 completers. See ipy_linux_package_managers.py for example. The
868 completers. See ipy_linux_package_managers.py for example. The
866 hook name is 'complete_command'.
869 hook name is 'complete_command'.
867
870
868 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
871 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
869
872
870 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
873 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
871 Numeric leftovers.
874 Numeric leftovers.
872
875
873 * ipython.el (py-execute-region): apply Stefan's patch to fix
876 * ipython.el (py-execute-region): apply Stefan's patch to fix
874 garbled results if the python shell hasn't been previously started.
877 garbled results if the python shell hasn't been previously started.
875
878
876 * IPython/genutils.py (arg_split): moved to genutils, since it's a
879 * IPython/genutils.py (arg_split): moved to genutils, since it's a
877 pretty generic function and useful for other things.
880 pretty generic function and useful for other things.
878
881
879 * IPython/OInspect.py (getsource): Add customizable source
882 * IPython/OInspect.py (getsource): Add customizable source
880 extractor. After a request/patch form W. Stein (SAGE).
883 extractor. After a request/patch form W. Stein (SAGE).
881
884
882 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
885 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
883 window size to a more reasonable value from what pexpect does,
886 window size to a more reasonable value from what pexpect does,
884 since their choice causes wrapping bugs with long input lines.
887 since their choice causes wrapping bugs with long input lines.
885
888
886 2006-10-28 Ville Vainio <vivainio@gmail.com>
889 2006-10-28 Ville Vainio <vivainio@gmail.com>
887
890
888 * Magic.py (%run): Save and restore the readline history from
891 * Magic.py (%run): Save and restore the readline history from
889 file around %run commands to prevent side effects from
892 file around %run commands to prevent side effects from
890 %runned programs that might use readline (e.g. pydb).
893 %runned programs that might use readline (e.g. pydb).
891
894
892 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
895 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
893 invoking the pydb enhanced debugger.
896 invoking the pydb enhanced debugger.
894
897
895 2006-10-23 Walter Doerwald <walter@livinglogic.de>
898 2006-10-23 Walter Doerwald <walter@livinglogic.de>
896
899
897 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
900 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
898 call the base class method and propagate the return value to
901 call the base class method and propagate the return value to
899 ifile. This is now done by path itself.
902 ifile. This is now done by path itself.
900
903
901 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
904 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
902
905
903 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
906 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
904 api: set_crash_handler(), to expose the ability to change the
907 api: set_crash_handler(), to expose the ability to change the
905 internal crash handler.
908 internal crash handler.
906
909
907 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
910 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
908 the various parameters of the crash handler so that apps using
911 the various parameters of the crash handler so that apps using
909 IPython as their engine can customize crash handling. Ipmlemented
912 IPython as their engine can customize crash handling. Ipmlemented
910 at the request of SAGE.
913 at the request of SAGE.
911
914
912 2006-10-14 Ville Vainio <vivainio@gmail.com>
915 2006-10-14 Ville Vainio <vivainio@gmail.com>
913
916
914 * Magic.py, ipython.el: applied first "safe" part of Rocky
917 * Magic.py, ipython.el: applied first "safe" part of Rocky
915 Bernstein's patch set for pydb integration.
918 Bernstein's patch set for pydb integration.
916
919
917 * Magic.py (%unalias, %alias): %store'd aliases can now be
920 * Magic.py (%unalias, %alias): %store'd aliases can now be
918 removed with '%unalias'. %alias w/o args now shows most
921 removed with '%unalias'. %alias w/o args now shows most
919 interesting (stored / manually defined) aliases last
922 interesting (stored / manually defined) aliases last
920 where they catch the eye w/o scrolling.
923 where they catch the eye w/o scrolling.
921
924
922 * Magic.py (%rehashx), ext_rehashdir.py: files with
925 * Magic.py (%rehashx), ext_rehashdir.py: files with
923 'py' extension are always considered executable, even
926 'py' extension are always considered executable, even
924 when not in PATHEXT environment variable.
927 when not in PATHEXT environment variable.
925
928
926 2006-10-12 Ville Vainio <vivainio@gmail.com>
929 2006-10-12 Ville Vainio <vivainio@gmail.com>
927
930
928 * jobctrl.py: Add new "jobctrl" extension for spawning background
931 * jobctrl.py: Add new "jobctrl" extension for spawning background
929 processes with "&find /". 'import jobctrl' to try it out. Requires
932 processes with "&find /". 'import jobctrl' to try it out. Requires
930 'subprocess' module, standard in python 2.4+.
933 'subprocess' module, standard in python 2.4+.
931
934
932 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
935 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
933 so if foo -> bar and bar -> baz, then foo -> baz.
936 so if foo -> bar and bar -> baz, then foo -> baz.
934
937
935 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
938 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
936
939
937 * IPython/Magic.py (Magic.parse_options): add a new posix option
940 * IPython/Magic.py (Magic.parse_options): add a new posix option
938 to allow parsing of input args in magics that doesn't strip quotes
941 to allow parsing of input args in magics that doesn't strip quotes
939 (if posix=False). This also closes %timeit bug reported by
942 (if posix=False). This also closes %timeit bug reported by
940 Stefan.
943 Stefan.
941
944
942 2006-10-03 Ville Vainio <vivainio@gmail.com>
945 2006-10-03 Ville Vainio <vivainio@gmail.com>
943
946
944 * iplib.py (raw_input, interact): Return ValueError catching for
947 * iplib.py (raw_input, interact): Return ValueError catching for
945 raw_input. Fixes infinite loop for sys.stdin.close() or
948 raw_input. Fixes infinite loop for sys.stdin.close() or
946 sys.stdout.close().
949 sys.stdout.close().
947
950
948 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
951 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
949
952
950 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
953 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
951 to help in handling doctests. irunner is now pretty useful for
954 to help in handling doctests. irunner is now pretty useful for
952 running standalone scripts and simulate a full interactive session
955 running standalone scripts and simulate a full interactive session
953 in a format that can be then pasted as a doctest.
956 in a format that can be then pasted as a doctest.
954
957
955 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
958 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
956 on top of the default (useless) ones. This also fixes the nasty
959 on top of the default (useless) ones. This also fixes the nasty
957 way in which 2.5's Quitter() exits (reverted [1785]).
960 way in which 2.5's Quitter() exits (reverted [1785]).
958
961
959 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
962 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
960 2.5.
963 2.5.
961
964
962 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
965 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
963 color scheme is updated as well when color scheme is changed
966 color scheme is updated as well when color scheme is changed
964 interactively.
967 interactively.
965
968
966 2006-09-27 Ville Vainio <vivainio@gmail.com>
969 2006-09-27 Ville Vainio <vivainio@gmail.com>
967
970
968 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
971 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
969 infinite loop and just exit. It's a hack, but will do for a while.
972 infinite loop and just exit. It's a hack, but will do for a while.
970
973
971 2006-08-25 Walter Doerwald <walter@livinglogic.de>
974 2006-08-25 Walter Doerwald <walter@livinglogic.de>
972
975
973 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
976 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
974 the constructor, this makes it possible to get a list of only directories
977 the constructor, this makes it possible to get a list of only directories
975 or only files.
978 or only files.
976
979
977 2006-08-12 Ville Vainio <vivainio@gmail.com>
980 2006-08-12 Ville Vainio <vivainio@gmail.com>
978
981
979 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
982 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
980 they broke unittest
983 they broke unittest
981
984
982 2006-08-11 Ville Vainio <vivainio@gmail.com>
985 2006-08-11 Ville Vainio <vivainio@gmail.com>
983
986
984 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
987 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
985 by resolving issue properly, i.e. by inheriting FakeModule
988 by resolving issue properly, i.e. by inheriting FakeModule
986 from types.ModuleType. Pickling ipython interactive data
989 from types.ModuleType. Pickling ipython interactive data
987 should still work as usual (testing appreciated).
990 should still work as usual (testing appreciated).
988
991
989 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
992 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
990
993
991 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
994 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
992 running under python 2.3 with code from 2.4 to fix a bug with
995 running under python 2.3 with code from 2.4 to fix a bug with
993 help(). Reported by the Debian maintainers, Norbert Tretkowski
996 help(). Reported by the Debian maintainers, Norbert Tretkowski
994 <norbert-AT-tretkowski.de> and Alexandre Fayolle
997 <norbert-AT-tretkowski.de> and Alexandre Fayolle
995 <afayolle-AT-debian.org>.
998 <afayolle-AT-debian.org>.
996
999
997 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1000 2006-08-04 Walter Doerwald <walter@livinglogic.de>
998
1001
999 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1002 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1000 (which was displaying "quit" twice).
1003 (which was displaying "quit" twice).
1001
1004
1002 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1005 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1003
1006
1004 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1007 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1005 the mode argument).
1008 the mode argument).
1006
1009
1007 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1010 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1008
1011
1009 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1012 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1010 not running under IPython.
1013 not running under IPython.
1011
1014
1012 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1015 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1013 and make it iterable (iterating over the attribute itself). Add two new
1016 and make it iterable (iterating over the attribute itself). Add two new
1014 magic strings for __xattrs__(): If the string starts with "-", the attribute
1017 magic strings for __xattrs__(): If the string starts with "-", the attribute
1015 will not be displayed in ibrowse's detail view (but it can still be
1018 will not be displayed in ibrowse's detail view (but it can still be
1016 iterated over). This makes it possible to add attributes that are large
1019 iterated over). This makes it possible to add attributes that are large
1017 lists or generator methods to the detail view. Replace magic attribute names
1020 lists or generator methods to the detail view. Replace magic attribute names
1018 and _attrname() and _getattr() with "descriptors": For each type of magic
1021 and _attrname() and _getattr() with "descriptors": For each type of magic
1019 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1022 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1020 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1023 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1021 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1024 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1022 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1025 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1023 are still supported.
1026 are still supported.
1024
1027
1025 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1028 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1026 fails in ibrowse.fetch(), the exception object is added as the last item
1029 fails in ibrowse.fetch(), the exception object is added as the last item
1027 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1030 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1028 a generator throws an exception midway through execution.
1031 a generator throws an exception midway through execution.
1029
1032
1030 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1033 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1031 encoding into methods.
1034 encoding into methods.
1032
1035
1033 2006-07-26 Ville Vainio <vivainio@gmail.com>
1036 2006-07-26 Ville Vainio <vivainio@gmail.com>
1034
1037
1035 * iplib.py: history now stores multiline input as single
1038 * iplib.py: history now stores multiline input as single
1036 history entries. Patch by Jorgen Cederlof.
1039 history entries. Patch by Jorgen Cederlof.
1037
1040
1038 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1041 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1039
1042
1040 * IPython/Extensions/ibrowse.py: Make cursor visible over
1043 * IPython/Extensions/ibrowse.py: Make cursor visible over
1041 non existing attributes.
1044 non existing attributes.
1042
1045
1043 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1046 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1044
1047
1045 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1048 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1046 error output of the running command doesn't mess up the screen.
1049 error output of the running command doesn't mess up the screen.
1047
1050
1048 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1051 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1049
1052
1050 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1053 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1051 argument. This sorts the items themselves.
1054 argument. This sorts the items themselves.
1052
1055
1053 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1056 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1054
1057
1055 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1058 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1056 Compile expression strings into code objects. This should speed
1059 Compile expression strings into code objects. This should speed
1057 up ifilter and friends somewhat.
1060 up ifilter and friends somewhat.
1058
1061
1059 2006-07-08 Ville Vainio <vivainio@gmail.com>
1062 2006-07-08 Ville Vainio <vivainio@gmail.com>
1060
1063
1061 * Magic.py: %cpaste now strips > from the beginning of lines
1064 * Magic.py: %cpaste now strips > from the beginning of lines
1062 to ease pasting quoted code from emails. Contributed by
1065 to ease pasting quoted code from emails. Contributed by
1063 Stefan van der Walt.
1066 Stefan van der Walt.
1064
1067
1065 2006-06-29 Ville Vainio <vivainio@gmail.com>
1068 2006-06-29 Ville Vainio <vivainio@gmail.com>
1066
1069
1067 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1070 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1068 mode, patch contributed by Darren Dale. NEEDS TESTING!
1071 mode, patch contributed by Darren Dale. NEEDS TESTING!
1069
1072
1070 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1073 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1071
1074
1072 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1075 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1073 a blue background. Fix fetching new display rows when the browser
1076 a blue background. Fix fetching new display rows when the browser
1074 scrolls more than a screenful (e.g. by using the goto command).
1077 scrolls more than a screenful (e.g. by using the goto command).
1075
1078
1076 2006-06-27 Ville Vainio <vivainio@gmail.com>
1079 2006-06-27 Ville Vainio <vivainio@gmail.com>
1077
1080
1078 * Magic.py (_inspect, _ofind) Apply David Huard's
1081 * Magic.py (_inspect, _ofind) Apply David Huard's
1079 patch for displaying the correct docstring for 'property'
1082 patch for displaying the correct docstring for 'property'
1080 attributes.
1083 attributes.
1081
1084
1082 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1085 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1083
1086
1084 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1087 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1085 commands into the methods implementing them.
1088 commands into the methods implementing them.
1086
1089
1087 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1090 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1088
1091
1089 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1092 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1090 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1093 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1091 autoindent support was authored by Jin Liu.
1094 autoindent support was authored by Jin Liu.
1092
1095
1093 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1096 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1094
1097
1095 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1098 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1096 for keymaps with a custom class that simplifies handling.
1099 for keymaps with a custom class that simplifies handling.
1097
1100
1098 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1101 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1099
1102
1100 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1103 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1101 resizing. This requires Python 2.5 to work.
1104 resizing. This requires Python 2.5 to work.
1102
1105
1103 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1106 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1104
1107
1105 * IPython/Extensions/ibrowse.py: Add two new commands to
1108 * IPython/Extensions/ibrowse.py: Add two new commands to
1106 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1109 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1107 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1110 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1108 attributes again. Remapped the help command to "?". Display
1111 attributes again. Remapped the help command to "?". Display
1109 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1112 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1110 as keys for the "home" and "end" commands. Add three new commands
1113 as keys for the "home" and "end" commands. Add three new commands
1111 to the input mode for "find" and friends: "delend" (CTRL-K)
1114 to the input mode for "find" and friends: "delend" (CTRL-K)
1112 deletes to the end of line. "incsearchup" searches upwards in the
1115 deletes to the end of line. "incsearchup" searches upwards in the
1113 command history for an input that starts with the text before the cursor.
1116 command history for an input that starts with the text before the cursor.
1114 "incsearchdown" does the same downwards. Removed a bogus mapping of
1117 "incsearchdown" does the same downwards. Removed a bogus mapping of
1115 the x key to "delete".
1118 the x key to "delete".
1116
1119
1117 2006-06-15 Ville Vainio <vivainio@gmail.com>
1120 2006-06-15 Ville Vainio <vivainio@gmail.com>
1118
1121
1119 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1122 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1120 used to create prompts dynamically, instead of the "old" way of
1123 used to create prompts dynamically, instead of the "old" way of
1121 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1124 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1122 way still works (it's invoked by the default hook), of course.
1125 way still works (it's invoked by the default hook), of course.
1123
1126
1124 * Prompts.py: added generate_output_prompt hook for altering output
1127 * Prompts.py: added generate_output_prompt hook for altering output
1125 prompt
1128 prompt
1126
1129
1127 * Release.py: Changed version string to 0.7.3.svn.
1130 * Release.py: Changed version string to 0.7.3.svn.
1128
1131
1129 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1132 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1130
1133
1131 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1134 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1132 the call to fetch() always tries to fetch enough data for at least one
1135 the call to fetch() always tries to fetch enough data for at least one
1133 full screen. This makes it possible to simply call moveto(0,0,True) in
1136 full screen. This makes it possible to simply call moveto(0,0,True) in
1134 the constructor. Fix typos and removed the obsolete goto attribute.
1137 the constructor. Fix typos and removed the obsolete goto attribute.
1135
1138
1136 2006-06-12 Ville Vainio <vivainio@gmail.com>
1139 2006-06-12 Ville Vainio <vivainio@gmail.com>
1137
1140
1138 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1141 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1139 allowing $variable interpolation within multiline statements,
1142 allowing $variable interpolation within multiline statements,
1140 though so far only with "sh" profile for a testing period.
1143 though so far only with "sh" profile for a testing period.
1141 The patch also enables splitting long commands with \ but it
1144 The patch also enables splitting long commands with \ but it
1142 doesn't work properly yet.
1145 doesn't work properly yet.
1143
1146
1144 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1147 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1145
1148
1146 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1149 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1147 input history and the position of the cursor in the input history for
1150 input history and the position of the cursor in the input history for
1148 the find, findbackwards and goto command.
1151 the find, findbackwards and goto command.
1149
1152
1150 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1153 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1151
1154
1152 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1155 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1153 implements the basic functionality of browser commands that require
1156 implements the basic functionality of browser commands that require
1154 input. Reimplement the goto, find and findbackwards commands as
1157 input. Reimplement the goto, find and findbackwards commands as
1155 subclasses of _CommandInput. Add an input history and keymaps to those
1158 subclasses of _CommandInput. Add an input history and keymaps to those
1156 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1159 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1157 execute commands.
1160 execute commands.
1158
1161
1159 2006-06-07 Ville Vainio <vivainio@gmail.com>
1162 2006-06-07 Ville Vainio <vivainio@gmail.com>
1160
1163
1161 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1164 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1162 running the batch files instead of leaving the session open.
1165 running the batch files instead of leaving the session open.
1163
1166
1164 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1167 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1165
1168
1166 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1169 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1167 the original fix was incomplete. Patch submitted by W. Maier.
1170 the original fix was incomplete. Patch submitted by W. Maier.
1168
1171
1169 2006-06-07 Ville Vainio <vivainio@gmail.com>
1172 2006-06-07 Ville Vainio <vivainio@gmail.com>
1170
1173
1171 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1174 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1172 Confirmation prompts can be supressed by 'quiet' option.
1175 Confirmation prompts can be supressed by 'quiet' option.
1173 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1176 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1174
1177
1175 2006-06-06 *** Released version 0.7.2
1178 2006-06-06 *** Released version 0.7.2
1176
1179
1177 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1180 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1178
1181
1179 * IPython/Release.py (version): Made 0.7.2 final for release.
1182 * IPython/Release.py (version): Made 0.7.2 final for release.
1180 Repo tagged and release cut.
1183 Repo tagged and release cut.
1181
1184
1182 2006-06-05 Ville Vainio <vivainio@gmail.com>
1185 2006-06-05 Ville Vainio <vivainio@gmail.com>
1183
1186
1184 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1187 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1185 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1188 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1186
1189
1187 * upgrade_dir.py: try import 'path' module a bit harder
1190 * upgrade_dir.py: try import 'path' module a bit harder
1188 (for %upgrade)
1191 (for %upgrade)
1189
1192
1190 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1193 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1191
1194
1192 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1195 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1193 instead of looping 20 times.
1196 instead of looping 20 times.
1194
1197
1195 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1198 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1196 correctly at initialization time. Bug reported by Krishna Mohan
1199 correctly at initialization time. Bug reported by Krishna Mohan
1197 Gundu <gkmohan-AT-gmail.com> on the user list.
1200 Gundu <gkmohan-AT-gmail.com> on the user list.
1198
1201
1199 * IPython/Release.py (version): Mark 0.7.2 version to start
1202 * IPython/Release.py (version): Mark 0.7.2 version to start
1200 testing for release on 06/06.
1203 testing for release on 06/06.
1201
1204
1202 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1205 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1203
1206
1204 * scripts/irunner: thin script interface so users don't have to
1207 * scripts/irunner: thin script interface so users don't have to
1205 find the module and call it as an executable, since modules rarely
1208 find the module and call it as an executable, since modules rarely
1206 live in people's PATH.
1209 live in people's PATH.
1207
1210
1208 * IPython/irunner.py (InteractiveRunner.__init__): added
1211 * IPython/irunner.py (InteractiveRunner.__init__): added
1209 delaybeforesend attribute to control delays with newer versions of
1212 delaybeforesend attribute to control delays with newer versions of
1210 pexpect. Thanks to detailed help from pexpect's author, Noah
1213 pexpect. Thanks to detailed help from pexpect's author, Noah
1211 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1214 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1212 correctly (it works in NoColor mode).
1215 correctly (it works in NoColor mode).
1213
1216
1214 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1217 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1215 SAGE list, from improper log() calls.
1218 SAGE list, from improper log() calls.
1216
1219
1217 2006-05-31 Ville Vainio <vivainio@gmail.com>
1220 2006-05-31 Ville Vainio <vivainio@gmail.com>
1218
1221
1219 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1222 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1220 with args in parens to work correctly with dirs that have spaces.
1223 with args in parens to work correctly with dirs that have spaces.
1221
1224
1222 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1225 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1223
1226
1224 * IPython/Logger.py (Logger.logstart): add option to log raw input
1227 * IPython/Logger.py (Logger.logstart): add option to log raw input
1225 instead of the processed one. A -r flag was added to the
1228 instead of the processed one. A -r flag was added to the
1226 %logstart magic used for controlling logging.
1229 %logstart magic used for controlling logging.
1227
1230
1228 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1231 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1229
1232
1230 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1233 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1231 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1234 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1232 recognize the option. After a bug report by Will Maier. This
1235 recognize the option. After a bug report by Will Maier. This
1233 closes #64 (will do it after confirmation from W. Maier).
1236 closes #64 (will do it after confirmation from W. Maier).
1234
1237
1235 * IPython/irunner.py: New module to run scripts as if manually
1238 * IPython/irunner.py: New module to run scripts as if manually
1236 typed into an interactive environment, based on pexpect. After a
1239 typed into an interactive environment, based on pexpect. After a
1237 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1240 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1238 ipython-user list. Simple unittests in the tests/ directory.
1241 ipython-user list. Simple unittests in the tests/ directory.
1239
1242
1240 * tools/release: add Will Maier, OpenBSD port maintainer, to
1243 * tools/release: add Will Maier, OpenBSD port maintainer, to
1241 recepients list. We are now officially part of the OpenBSD ports:
1244 recepients list. We are now officially part of the OpenBSD ports:
1242 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1245 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1243 work.
1246 work.
1244
1247
1245 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1248 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1246
1249
1247 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1250 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1248 so that it doesn't break tkinter apps.
1251 so that it doesn't break tkinter apps.
1249
1252
1250 * IPython/iplib.py (_prefilter): fix bug where aliases would
1253 * IPython/iplib.py (_prefilter): fix bug where aliases would
1251 shadow variables when autocall was fully off. Reported by SAGE
1254 shadow variables when autocall was fully off. Reported by SAGE
1252 author William Stein.
1255 author William Stein.
1253
1256
1254 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1257 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1255 at what detail level strings are computed when foo? is requested.
1258 at what detail level strings are computed when foo? is requested.
1256 This allows users to ask for example that the string form of an
1259 This allows users to ask for example that the string form of an
1257 object is only computed when foo?? is called, or even never, by
1260 object is only computed when foo?? is called, or even never, by
1258 setting the object_info_string_level >= 2 in the configuration
1261 setting the object_info_string_level >= 2 in the configuration
1259 file. This new option has been added and documented. After a
1262 file. This new option has been added and documented. After a
1260 request by SAGE to be able to control the printing of very large
1263 request by SAGE to be able to control the printing of very large
1261 objects more easily.
1264 objects more easily.
1262
1265
1263 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1266 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1264
1267
1265 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1268 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1266 from sys.argv, to be 100% consistent with how Python itself works
1269 from sys.argv, to be 100% consistent with how Python itself works
1267 (as seen for example with python -i file.py). After a bug report
1270 (as seen for example with python -i file.py). After a bug report
1268 by Jeffrey Collins.
1271 by Jeffrey Collins.
1269
1272
1270 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1273 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1271 nasty bug which was preventing custom namespaces with -pylab,
1274 nasty bug which was preventing custom namespaces with -pylab,
1272 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1275 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1273 compatibility (long gone from mpl).
1276 compatibility (long gone from mpl).
1274
1277
1275 * IPython/ipapi.py (make_session): name change: create->make. We
1278 * IPython/ipapi.py (make_session): name change: create->make. We
1276 use make in other places (ipmaker,...), it's shorter and easier to
1279 use make in other places (ipmaker,...), it's shorter and easier to
1277 type and say, etc. I'm trying to clean things before 0.7.2 so
1280 type and say, etc. I'm trying to clean things before 0.7.2 so
1278 that I can keep things stable wrt to ipapi in the chainsaw branch.
1281 that I can keep things stable wrt to ipapi in the chainsaw branch.
1279
1282
1280 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1283 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1281 python-mode recognizes our debugger mode. Add support for
1284 python-mode recognizes our debugger mode. Add support for
1282 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1285 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1283 <m.liu.jin-AT-gmail.com> originally written by
1286 <m.liu.jin-AT-gmail.com> originally written by
1284 doxgen-AT-newsmth.net (with minor modifications for xemacs
1287 doxgen-AT-newsmth.net (with minor modifications for xemacs
1285 compatibility)
1288 compatibility)
1286
1289
1287 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1290 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1288 tracebacks when walking the stack so that the stack tracking system
1291 tracebacks when walking the stack so that the stack tracking system
1289 in emacs' python-mode can identify the frames correctly.
1292 in emacs' python-mode can identify the frames correctly.
1290
1293
1291 * IPython/ipmaker.py (make_IPython): make the internal (and
1294 * IPython/ipmaker.py (make_IPython): make the internal (and
1292 default config) autoedit_syntax value false by default. Too many
1295 default config) autoedit_syntax value false by default. Too many
1293 users have complained to me (both on and off-list) about problems
1296 users have complained to me (both on and off-list) about problems
1294 with this option being on by default, so I'm making it default to
1297 with this option being on by default, so I'm making it default to
1295 off. It can still be enabled by anyone via the usual mechanisms.
1298 off. It can still be enabled by anyone via the usual mechanisms.
1296
1299
1297 * IPython/completer.py (Completer.attr_matches): add support for
1300 * IPython/completer.py (Completer.attr_matches): add support for
1298 PyCrust-style _getAttributeNames magic method. Patch contributed
1301 PyCrust-style _getAttributeNames magic method. Patch contributed
1299 by <mscott-AT-goldenspud.com>. Closes #50.
1302 by <mscott-AT-goldenspud.com>. Closes #50.
1300
1303
1301 * IPython/iplib.py (InteractiveShell.__init__): remove the
1304 * IPython/iplib.py (InteractiveShell.__init__): remove the
1302 deletion of exit/quit from __builtin__, which can break
1305 deletion of exit/quit from __builtin__, which can break
1303 third-party tools like the Zope debugging console. The
1306 third-party tools like the Zope debugging console. The
1304 %exit/%quit magics remain. In general, it's probably a good idea
1307 %exit/%quit magics remain. In general, it's probably a good idea
1305 not to delete anything from __builtin__, since we never know what
1308 not to delete anything from __builtin__, since we never know what
1306 that will break. In any case, python now (for 2.5) will support
1309 that will break. In any case, python now (for 2.5) will support
1307 'real' exit/quit, so this issue is moot. Closes #55.
1310 'real' exit/quit, so this issue is moot. Closes #55.
1308
1311
1309 * IPython/genutils.py (with_obj): rename the 'with' function to
1312 * IPython/genutils.py (with_obj): rename the 'with' function to
1310 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1313 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1311 becomes a language keyword. Closes #53.
1314 becomes a language keyword. Closes #53.
1312
1315
1313 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1316 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1314 __file__ attribute to this so it fools more things into thinking
1317 __file__ attribute to this so it fools more things into thinking
1315 it is a real module. Closes #59.
1318 it is a real module. Closes #59.
1316
1319
1317 * IPython/Magic.py (magic_edit): add -n option to open the editor
1320 * IPython/Magic.py (magic_edit): add -n option to open the editor
1318 at a specific line number. After a patch by Stefan van der Walt.
1321 at a specific line number. After a patch by Stefan van der Walt.
1319
1322
1320 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1323 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1321
1324
1322 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1325 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1323 reason the file could not be opened. After automatic crash
1326 reason the file could not be opened. After automatic crash
1324 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1327 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1325 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1328 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1326 (_should_recompile): Don't fire editor if using %bg, since there
1329 (_should_recompile): Don't fire editor if using %bg, since there
1327 is no file in the first place. From the same report as above.
1330 is no file in the first place. From the same report as above.
1328 (raw_input): protect against faulty third-party prefilters. After
1331 (raw_input): protect against faulty third-party prefilters. After
1329 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1332 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1330 while running under SAGE.
1333 while running under SAGE.
1331
1334
1332 2006-05-23 Ville Vainio <vivainio@gmail.com>
1335 2006-05-23 Ville Vainio <vivainio@gmail.com>
1333
1336
1334 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1337 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1335 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1338 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1336 now returns None (again), unless dummy is specifically allowed by
1339 now returns None (again), unless dummy is specifically allowed by
1337 ipapi.get(allow_dummy=True).
1340 ipapi.get(allow_dummy=True).
1338
1341
1339 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1342 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1340
1343
1341 * IPython: remove all 2.2-compatibility objects and hacks from
1344 * IPython: remove all 2.2-compatibility objects and hacks from
1342 everywhere, since we only support 2.3 at this point. Docs
1345 everywhere, since we only support 2.3 at this point. Docs
1343 updated.
1346 updated.
1344
1347
1345 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1348 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1346 Anything requiring extra validation can be turned into a Python
1349 Anything requiring extra validation can be turned into a Python
1347 property in the future. I used a property for the db one b/c
1350 property in the future. I used a property for the db one b/c
1348 there was a nasty circularity problem with the initialization
1351 there was a nasty circularity problem with the initialization
1349 order, which right now I don't have time to clean up.
1352 order, which right now I don't have time to clean up.
1350
1353
1351 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1354 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1352 another locking bug reported by Jorgen. I'm not 100% sure though,
1355 another locking bug reported by Jorgen. I'm not 100% sure though,
1353 so more testing is needed...
1356 so more testing is needed...
1354
1357
1355 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1358 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1356
1359
1357 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1360 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1358 local variables from any routine in user code (typically executed
1361 local variables from any routine in user code (typically executed
1359 with %run) directly into the interactive namespace. Very useful
1362 with %run) directly into the interactive namespace. Very useful
1360 when doing complex debugging.
1363 when doing complex debugging.
1361 (IPythonNotRunning): Changed the default None object to a dummy
1364 (IPythonNotRunning): Changed the default None object to a dummy
1362 whose attributes can be queried as well as called without
1365 whose attributes can be queried as well as called without
1363 exploding, to ease writing code which works transparently both in
1366 exploding, to ease writing code which works transparently both in
1364 and out of ipython and uses some of this API.
1367 and out of ipython and uses some of this API.
1365
1368
1366 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1369 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1367
1370
1368 * IPython/hooks.py (result_display): Fix the fact that our display
1371 * IPython/hooks.py (result_display): Fix the fact that our display
1369 hook was using str() instead of repr(), as the default python
1372 hook was using str() instead of repr(), as the default python
1370 console does. This had gone unnoticed b/c it only happened if
1373 console does. This had gone unnoticed b/c it only happened if
1371 %Pprint was off, but the inconsistency was there.
1374 %Pprint was off, but the inconsistency was there.
1372
1375
1373 2006-05-15 Ville Vainio <vivainio@gmail.com>
1376 2006-05-15 Ville Vainio <vivainio@gmail.com>
1374
1377
1375 * Oinspect.py: Only show docstring for nonexisting/binary files
1378 * Oinspect.py: Only show docstring for nonexisting/binary files
1376 when doing object??, closing ticket #62
1379 when doing object??, closing ticket #62
1377
1380
1378 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1381 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1379
1382
1380 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1383 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1381 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1384 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1382 was being released in a routine which hadn't checked if it had
1385 was being released in a routine which hadn't checked if it had
1383 been the one to acquire it.
1386 been the one to acquire it.
1384
1387
1385 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1388 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1386
1389
1387 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1390 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1388
1391
1389 2006-04-11 Ville Vainio <vivainio@gmail.com>
1392 2006-04-11 Ville Vainio <vivainio@gmail.com>
1390
1393
1391 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1394 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1392 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1395 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1393 prefilters, allowing stuff like magics and aliases in the file.
1396 prefilters, allowing stuff like magics and aliases in the file.
1394
1397
1395 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1398 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1396 added. Supported now are "%clear in" and "%clear out" (clear input and
1399 added. Supported now are "%clear in" and "%clear out" (clear input and
1397 output history, respectively). Also fixed CachedOutput.flush to
1400 output history, respectively). Also fixed CachedOutput.flush to
1398 properly flush the output cache.
1401 properly flush the output cache.
1399
1402
1400 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1403 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1401 half-success (and fail explicitly).
1404 half-success (and fail explicitly).
1402
1405
1403 2006-03-28 Ville Vainio <vivainio@gmail.com>
1406 2006-03-28 Ville Vainio <vivainio@gmail.com>
1404
1407
1405 * iplib.py: Fix quoting of aliases so that only argless ones
1408 * iplib.py: Fix quoting of aliases so that only argless ones
1406 are quoted
1409 are quoted
1407
1410
1408 2006-03-28 Ville Vainio <vivainio@gmail.com>
1411 2006-03-28 Ville Vainio <vivainio@gmail.com>
1409
1412
1410 * iplib.py: Quote aliases with spaces in the name.
1413 * iplib.py: Quote aliases with spaces in the name.
1411 "c:\program files\blah\bin" is now legal alias target.
1414 "c:\program files\blah\bin" is now legal alias target.
1412
1415
1413 * ext_rehashdir.py: Space no longer allowed as arg
1416 * ext_rehashdir.py: Space no longer allowed as arg
1414 separator, since space is legal in path names.
1417 separator, since space is legal in path names.
1415
1418
1416 2006-03-16 Ville Vainio <vivainio@gmail.com>
1419 2006-03-16 Ville Vainio <vivainio@gmail.com>
1417
1420
1418 * upgrade_dir.py: Take path.py from Extensions, correcting
1421 * upgrade_dir.py: Take path.py from Extensions, correcting
1419 %upgrade magic
1422 %upgrade magic
1420
1423
1421 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1424 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1422
1425
1423 * hooks.py: Only enclose editor binary in quotes if legal and
1426 * hooks.py: Only enclose editor binary in quotes if legal and
1424 necessary (space in the name, and is an existing file). Fixes a bug
1427 necessary (space in the name, and is an existing file). Fixes a bug
1425 reported by Zachary Pincus.
1428 reported by Zachary Pincus.
1426
1429
1427 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1430 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1428
1431
1429 * Manual: thanks to a tip on proper color handling for Emacs, by
1432 * Manual: thanks to a tip on proper color handling for Emacs, by
1430 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1433 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1431
1434
1432 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1435 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1433 by applying the provided patch. Thanks to Liu Jin
1436 by applying the provided patch. Thanks to Liu Jin
1434 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1437 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1435 XEmacs/Linux, I'm trusting the submitter that it actually helps
1438 XEmacs/Linux, I'm trusting the submitter that it actually helps
1436 under win32/GNU Emacs. Will revisit if any problems are reported.
1439 under win32/GNU Emacs. Will revisit if any problems are reported.
1437
1440
1438 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1441 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1439
1442
1440 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1443 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1441 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1444 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1442
1445
1443 2006-03-12 Ville Vainio <vivainio@gmail.com>
1446 2006-03-12 Ville Vainio <vivainio@gmail.com>
1444
1447
1445 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1448 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1446 Torsten Marek.
1449 Torsten Marek.
1447
1450
1448 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1451 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1449
1452
1450 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1453 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1451 line ranges works again.
1454 line ranges works again.
1452
1455
1453 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1456 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1454
1457
1455 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1458 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1456 and friends, after a discussion with Zach Pincus on ipython-user.
1459 and friends, after a discussion with Zach Pincus on ipython-user.
1457 I'm not 100% sure, but after thinking about it quite a bit, it may
1460 I'm not 100% sure, but after thinking about it quite a bit, it may
1458 be OK. Testing with the multithreaded shells didn't reveal any
1461 be OK. Testing with the multithreaded shells didn't reveal any
1459 problems, but let's keep an eye out.
1462 problems, but let's keep an eye out.
1460
1463
1461 In the process, I fixed a few things which were calling
1464 In the process, I fixed a few things which were calling
1462 self.InteractiveTB() directly (like safe_execfile), which is a
1465 self.InteractiveTB() directly (like safe_execfile), which is a
1463 mistake: ALL exception reporting should be done by calling
1466 mistake: ALL exception reporting should be done by calling
1464 self.showtraceback(), which handles state and tab-completion and
1467 self.showtraceback(), which handles state and tab-completion and
1465 more.
1468 more.
1466
1469
1467 2006-03-01 Ville Vainio <vivainio@gmail.com>
1470 2006-03-01 Ville Vainio <vivainio@gmail.com>
1468
1471
1469 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1472 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1470 To use, do "from ipipe import *".
1473 To use, do "from ipipe import *".
1471
1474
1472 2006-02-24 Ville Vainio <vivainio@gmail.com>
1475 2006-02-24 Ville Vainio <vivainio@gmail.com>
1473
1476
1474 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1477 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1475 "cleanly" and safely than the older upgrade mechanism.
1478 "cleanly" and safely than the older upgrade mechanism.
1476
1479
1477 2006-02-21 Ville Vainio <vivainio@gmail.com>
1480 2006-02-21 Ville Vainio <vivainio@gmail.com>
1478
1481
1479 * Magic.py: %save works again.
1482 * Magic.py: %save works again.
1480
1483
1481 2006-02-15 Ville Vainio <vivainio@gmail.com>
1484 2006-02-15 Ville Vainio <vivainio@gmail.com>
1482
1485
1483 * Magic.py: %Pprint works again
1486 * Magic.py: %Pprint works again
1484
1487
1485 * Extensions/ipy_sane_defaults.py: Provide everything provided
1488 * Extensions/ipy_sane_defaults.py: Provide everything provided
1486 in default ipythonrc, to make it possible to have a completely empty
1489 in default ipythonrc, to make it possible to have a completely empty
1487 ipythonrc (and thus completely rc-file free configuration)
1490 ipythonrc (and thus completely rc-file free configuration)
1488
1491
1489 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1492 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1490
1493
1491 * IPython/hooks.py (editor): quote the call to the editor command,
1494 * IPython/hooks.py (editor): quote the call to the editor command,
1492 to allow commands with spaces in them. Problem noted by watching
1495 to allow commands with spaces in them. Problem noted by watching
1493 Ian Oswald's video about textpad under win32 at
1496 Ian Oswald's video about textpad under win32 at
1494 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1497 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1495
1498
1496 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1499 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1497 describing magics (we haven't used @ for a loong time).
1500 describing magics (we haven't used @ for a loong time).
1498
1501
1499 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1502 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1500 contributed by marienz to close
1503 contributed by marienz to close
1501 http://www.scipy.net/roundup/ipython/issue53.
1504 http://www.scipy.net/roundup/ipython/issue53.
1502
1505
1503 2006-02-10 Ville Vainio <vivainio@gmail.com>
1506 2006-02-10 Ville Vainio <vivainio@gmail.com>
1504
1507
1505 * genutils.py: getoutput now works in win32 too
1508 * genutils.py: getoutput now works in win32 too
1506
1509
1507 * completer.py: alias and magic completion only invoked
1510 * completer.py: alias and magic completion only invoked
1508 at the first "item" in the line, to avoid "cd %store"
1511 at the first "item" in the line, to avoid "cd %store"
1509 nonsense.
1512 nonsense.
1510
1513
1511 2006-02-09 Ville Vainio <vivainio@gmail.com>
1514 2006-02-09 Ville Vainio <vivainio@gmail.com>
1512
1515
1513 * test/*: Added a unit testing framework (finally).
1516 * test/*: Added a unit testing framework (finally).
1514 '%run runtests.py' to run test_*.
1517 '%run runtests.py' to run test_*.
1515
1518
1516 * ipapi.py: Exposed runlines and set_custom_exc
1519 * ipapi.py: Exposed runlines and set_custom_exc
1517
1520
1518 2006-02-07 Ville Vainio <vivainio@gmail.com>
1521 2006-02-07 Ville Vainio <vivainio@gmail.com>
1519
1522
1520 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1523 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1521 instead use "f(1 2)" as before.
1524 instead use "f(1 2)" as before.
1522
1525
1523 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1526 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1524
1527
1525 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1528 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1526 facilities, for demos processed by the IPython input filter
1529 facilities, for demos processed by the IPython input filter
1527 (IPythonDemo), and for running a script one-line-at-a-time as a
1530 (IPythonDemo), and for running a script one-line-at-a-time as a
1528 demo, both for pure Python (LineDemo) and for IPython-processed
1531 demo, both for pure Python (LineDemo) and for IPython-processed
1529 input (IPythonLineDemo). After a request by Dave Kohel, from the
1532 input (IPythonLineDemo). After a request by Dave Kohel, from the
1530 SAGE team.
1533 SAGE team.
1531 (Demo.edit): added an edit() method to the demo objects, to edit
1534 (Demo.edit): added an edit() method to the demo objects, to edit
1532 the in-memory copy of the last executed block.
1535 the in-memory copy of the last executed block.
1533
1536
1534 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1537 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1535 processing to %edit, %macro and %save. These commands can now be
1538 processing to %edit, %macro and %save. These commands can now be
1536 invoked on the unprocessed input as it was typed by the user
1539 invoked on the unprocessed input as it was typed by the user
1537 (without any prefilters applied). After requests by the SAGE team
1540 (without any prefilters applied). After requests by the SAGE team
1538 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1541 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1539
1542
1540 2006-02-01 Ville Vainio <vivainio@gmail.com>
1543 2006-02-01 Ville Vainio <vivainio@gmail.com>
1541
1544
1542 * setup.py, eggsetup.py: easy_install ipython==dev works
1545 * setup.py, eggsetup.py: easy_install ipython==dev works
1543 correctly now (on Linux)
1546 correctly now (on Linux)
1544
1547
1545 * ipy_user_conf,ipmaker: user config changes, removed spurious
1548 * ipy_user_conf,ipmaker: user config changes, removed spurious
1546 warnings
1549 warnings
1547
1550
1548 * iplib: if rc.banner is string, use it as is.
1551 * iplib: if rc.banner is string, use it as is.
1549
1552
1550 * Magic: %pycat accepts a string argument and pages it's contents.
1553 * Magic: %pycat accepts a string argument and pages it's contents.
1551
1554
1552
1555
1553 2006-01-30 Ville Vainio <vivainio@gmail.com>
1556 2006-01-30 Ville Vainio <vivainio@gmail.com>
1554
1557
1555 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1558 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1556 Now %store and bookmarks work through PickleShare, meaning that
1559 Now %store and bookmarks work through PickleShare, meaning that
1557 concurrent access is possible and all ipython sessions see the
1560 concurrent access is possible and all ipython sessions see the
1558 same database situation all the time, instead of snapshot of
1561 same database situation all the time, instead of snapshot of
1559 the situation when the session was started. Hence, %bookmark
1562 the situation when the session was started. Hence, %bookmark
1560 results are immediately accessible from othes sessions. The database
1563 results are immediately accessible from othes sessions. The database
1561 is also available for use by user extensions. See:
1564 is also available for use by user extensions. See:
1562 http://www.python.org/pypi/pickleshare
1565 http://www.python.org/pypi/pickleshare
1563
1566
1564 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1567 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1565
1568
1566 * aliases can now be %store'd
1569 * aliases can now be %store'd
1567
1570
1568 * path.py moved to Extensions so that pickleshare does not need
1571 * path.py moved to Extensions so that pickleshare does not need
1569 IPython-specific import. Extensions added to pythonpath right
1572 IPython-specific import. Extensions added to pythonpath right
1570 at __init__.
1573 at __init__.
1571
1574
1572 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1575 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1573 called with _ip.system and the pre-transformed command string.
1576 called with _ip.system and the pre-transformed command string.
1574
1577
1575 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1578 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1576
1579
1577 * IPython/iplib.py (interact): Fix that we were not catching
1580 * IPython/iplib.py (interact): Fix that we were not catching
1578 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1581 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1579 logic here had to change, but it's fixed now.
1582 logic here had to change, but it's fixed now.
1580
1583
1581 2006-01-29 Ville Vainio <vivainio@gmail.com>
1584 2006-01-29 Ville Vainio <vivainio@gmail.com>
1582
1585
1583 * iplib.py: Try to import pyreadline on Windows.
1586 * iplib.py: Try to import pyreadline on Windows.
1584
1587
1585 2006-01-27 Ville Vainio <vivainio@gmail.com>
1588 2006-01-27 Ville Vainio <vivainio@gmail.com>
1586
1589
1587 * iplib.py: Expose ipapi as _ip in builtin namespace.
1590 * iplib.py: Expose ipapi as _ip in builtin namespace.
1588 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1591 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1589 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1592 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1590 syntax now produce _ip.* variant of the commands.
1593 syntax now produce _ip.* variant of the commands.
1591
1594
1592 * "_ip.options().autoedit_syntax = 2" automatically throws
1595 * "_ip.options().autoedit_syntax = 2" automatically throws
1593 user to editor for syntax error correction without prompting.
1596 user to editor for syntax error correction without prompting.
1594
1597
1595 2006-01-27 Ville Vainio <vivainio@gmail.com>
1598 2006-01-27 Ville Vainio <vivainio@gmail.com>
1596
1599
1597 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1600 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1598 'ipython' at argv[0]) executed through command line.
1601 'ipython' at argv[0]) executed through command line.
1599 NOTE: this DEPRECATES calling ipython with multiple scripts
1602 NOTE: this DEPRECATES calling ipython with multiple scripts
1600 ("ipython a.py b.py c.py")
1603 ("ipython a.py b.py c.py")
1601
1604
1602 * iplib.py, hooks.py: Added configurable input prefilter,
1605 * iplib.py, hooks.py: Added configurable input prefilter,
1603 named 'input_prefilter'. See ext_rescapture.py for example
1606 named 'input_prefilter'. See ext_rescapture.py for example
1604 usage.
1607 usage.
1605
1608
1606 * ext_rescapture.py, Magic.py: Better system command output capture
1609 * ext_rescapture.py, Magic.py: Better system command output capture
1607 through 'var = !ls' (deprecates user-visible %sc). Same notation
1610 through 'var = !ls' (deprecates user-visible %sc). Same notation
1608 applies for magics, 'var = %alias' assigns alias list to var.
1611 applies for magics, 'var = %alias' assigns alias list to var.
1609
1612
1610 * ipapi.py: added meta() for accessing extension-usable data store.
1613 * ipapi.py: added meta() for accessing extension-usable data store.
1611
1614
1612 * iplib.py: added InteractiveShell.getapi(). New magics should be
1615 * iplib.py: added InteractiveShell.getapi(). New magics should be
1613 written doing self.getapi() instead of using the shell directly.
1616 written doing self.getapi() instead of using the shell directly.
1614
1617
1615 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1618 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1616 %store foo >> ~/myfoo.txt to store variables to files (in clean
1619 %store foo >> ~/myfoo.txt to store variables to files (in clean
1617 textual form, not a restorable pickle).
1620 textual form, not a restorable pickle).
1618
1621
1619 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1622 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1620
1623
1621 * usage.py, Magic.py: added %quickref
1624 * usage.py, Magic.py: added %quickref
1622
1625
1623 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1626 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1624
1627
1625 * GetoptErrors when invoking magics etc. with wrong args
1628 * GetoptErrors when invoking magics etc. with wrong args
1626 are now more helpful:
1629 are now more helpful:
1627 GetoptError: option -l not recognized (allowed: "qb" )
1630 GetoptError: option -l not recognized (allowed: "qb" )
1628
1631
1629 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1632 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1630
1633
1631 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1634 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1632 computationally intensive blocks don't appear to stall the demo.
1635 computationally intensive blocks don't appear to stall the demo.
1633
1636
1634 2006-01-24 Ville Vainio <vivainio@gmail.com>
1637 2006-01-24 Ville Vainio <vivainio@gmail.com>
1635
1638
1636 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1639 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1637 value to manipulate resulting history entry.
1640 value to manipulate resulting history entry.
1638
1641
1639 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1642 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1640 to instance methods of IPApi class, to make extending an embedded
1643 to instance methods of IPApi class, to make extending an embedded
1641 IPython feasible. See ext_rehashdir.py for example usage.
1644 IPython feasible. See ext_rehashdir.py for example usage.
1642
1645
1643 * Merged 1071-1076 from branches/0.7.1
1646 * Merged 1071-1076 from branches/0.7.1
1644
1647
1645
1648
1646 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1649 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1647
1650
1648 * tools/release (daystamp): Fix build tools to use the new
1651 * tools/release (daystamp): Fix build tools to use the new
1649 eggsetup.py script to build lightweight eggs.
1652 eggsetup.py script to build lightweight eggs.
1650
1653
1651 * Applied changesets 1062 and 1064 before 0.7.1 release.
1654 * Applied changesets 1062 and 1064 before 0.7.1 release.
1652
1655
1653 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1656 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1654 see the raw input history (without conversions like %ls ->
1657 see the raw input history (without conversions like %ls ->
1655 ipmagic("ls")). After a request from W. Stein, SAGE
1658 ipmagic("ls")). After a request from W. Stein, SAGE
1656 (http://modular.ucsd.edu/sage) developer. This information is
1659 (http://modular.ucsd.edu/sage) developer. This information is
1657 stored in the input_hist_raw attribute of the IPython instance, so
1660 stored in the input_hist_raw attribute of the IPython instance, so
1658 developers can access it if needed (it's an InputList instance).
1661 developers can access it if needed (it's an InputList instance).
1659
1662
1660 * Versionstring = 0.7.2.svn
1663 * Versionstring = 0.7.2.svn
1661
1664
1662 * eggsetup.py: A separate script for constructing eggs, creates
1665 * eggsetup.py: A separate script for constructing eggs, creates
1663 proper launch scripts even on Windows (an .exe file in
1666 proper launch scripts even on Windows (an .exe file in
1664 \python24\scripts).
1667 \python24\scripts).
1665
1668
1666 * ipapi.py: launch_new_instance, launch entry point needed for the
1669 * ipapi.py: launch_new_instance, launch entry point needed for the
1667 egg.
1670 egg.
1668
1671
1669 2006-01-23 Ville Vainio <vivainio@gmail.com>
1672 2006-01-23 Ville Vainio <vivainio@gmail.com>
1670
1673
1671 * Added %cpaste magic for pasting python code
1674 * Added %cpaste magic for pasting python code
1672
1675
1673 2006-01-22 Ville Vainio <vivainio@gmail.com>
1676 2006-01-22 Ville Vainio <vivainio@gmail.com>
1674
1677
1675 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1678 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1676
1679
1677 * Versionstring = 0.7.2.svn
1680 * Versionstring = 0.7.2.svn
1678
1681
1679 * eggsetup.py: A separate script for constructing eggs, creates
1682 * eggsetup.py: A separate script for constructing eggs, creates
1680 proper launch scripts even on Windows (an .exe file in
1683 proper launch scripts even on Windows (an .exe file in
1681 \python24\scripts).
1684 \python24\scripts).
1682
1685
1683 * ipapi.py: launch_new_instance, launch entry point needed for the
1686 * ipapi.py: launch_new_instance, launch entry point needed for the
1684 egg.
1687 egg.
1685
1688
1686 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1689 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1687
1690
1688 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1691 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1689 %pfile foo would print the file for foo even if it was a binary.
1692 %pfile foo would print the file for foo even if it was a binary.
1690 Now, extensions '.so' and '.dll' are skipped.
1693 Now, extensions '.so' and '.dll' are skipped.
1691
1694
1692 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1695 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1693 bug, where macros would fail in all threaded modes. I'm not 100%
1696 bug, where macros would fail in all threaded modes. I'm not 100%
1694 sure, so I'm going to put out an rc instead of making a release
1697 sure, so I'm going to put out an rc instead of making a release
1695 today, and wait for feedback for at least a few days.
1698 today, and wait for feedback for at least a few days.
1696
1699
1697 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1700 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1698 it...) the handling of pasting external code with autoindent on.
1701 it...) the handling of pasting external code with autoindent on.
1699 To get out of a multiline input, the rule will appear for most
1702 To get out of a multiline input, the rule will appear for most
1700 users unchanged: two blank lines or change the indent level
1703 users unchanged: two blank lines or change the indent level
1701 proposed by IPython. But there is a twist now: you can
1704 proposed by IPython. But there is a twist now: you can
1702 add/subtract only *one or two spaces*. If you add/subtract three
1705 add/subtract only *one or two spaces*. If you add/subtract three
1703 or more (unless you completely delete the line), IPython will
1706 or more (unless you completely delete the line), IPython will
1704 accept that line, and you'll need to enter a second one of pure
1707 accept that line, and you'll need to enter a second one of pure
1705 whitespace. I know it sounds complicated, but I can't find a
1708 whitespace. I know it sounds complicated, but I can't find a
1706 different solution that covers all the cases, with the right
1709 different solution that covers all the cases, with the right
1707 heuristics. Hopefully in actual use, nobody will really notice
1710 heuristics. Hopefully in actual use, nobody will really notice
1708 all these strange rules and things will 'just work'.
1711 all these strange rules and things will 'just work'.
1709
1712
1710 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1713 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1711
1714
1712 * IPython/iplib.py (interact): catch exceptions which can be
1715 * IPython/iplib.py (interact): catch exceptions which can be
1713 triggered asynchronously by signal handlers. Thanks to an
1716 triggered asynchronously by signal handlers. Thanks to an
1714 automatic crash report, submitted by Colin Kingsley
1717 automatic crash report, submitted by Colin Kingsley
1715 <tercel-AT-gentoo.org>.
1718 <tercel-AT-gentoo.org>.
1716
1719
1717 2006-01-20 Ville Vainio <vivainio@gmail.com>
1720 2006-01-20 Ville Vainio <vivainio@gmail.com>
1718
1721
1719 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1722 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1720 (%rehashdir, very useful, try it out) of how to extend ipython
1723 (%rehashdir, very useful, try it out) of how to extend ipython
1721 with new magics. Also added Extensions dir to pythonpath to make
1724 with new magics. Also added Extensions dir to pythonpath to make
1722 importing extensions easy.
1725 importing extensions easy.
1723
1726
1724 * %store now complains when trying to store interactively declared
1727 * %store now complains when trying to store interactively declared
1725 classes / instances of those classes.
1728 classes / instances of those classes.
1726
1729
1727 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1730 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1728 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1731 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1729 if they exist, and ipy_user_conf.py with some defaults is created for
1732 if they exist, and ipy_user_conf.py with some defaults is created for
1730 the user.
1733 the user.
1731
1734
1732 * Startup rehashing done by the config file, not InterpreterExec.
1735 * Startup rehashing done by the config file, not InterpreterExec.
1733 This means system commands are available even without selecting the
1736 This means system commands are available even without selecting the
1734 pysh profile. It's the sensible default after all.
1737 pysh profile. It's the sensible default after all.
1735
1738
1736 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1739 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1737
1740
1738 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1741 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1739 multiline code with autoindent on working. But I am really not
1742 multiline code with autoindent on working. But I am really not
1740 sure, so this needs more testing. Will commit a debug-enabled
1743 sure, so this needs more testing. Will commit a debug-enabled
1741 version for now, while I test it some more, so that Ville and
1744 version for now, while I test it some more, so that Ville and
1742 others may also catch any problems. Also made
1745 others may also catch any problems. Also made
1743 self.indent_current_str() a method, to ensure that there's no
1746 self.indent_current_str() a method, to ensure that there's no
1744 chance of the indent space count and the corresponding string
1747 chance of the indent space count and the corresponding string
1745 falling out of sync. All code needing the string should just call
1748 falling out of sync. All code needing the string should just call
1746 the method.
1749 the method.
1747
1750
1748 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1751 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1749
1752
1750 * IPython/Magic.py (magic_edit): fix check for when users don't
1753 * IPython/Magic.py (magic_edit): fix check for when users don't
1751 save their output files, the try/except was in the wrong section.
1754 save their output files, the try/except was in the wrong section.
1752
1755
1753 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1756 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1754
1757
1755 * IPython/Magic.py (magic_run): fix __file__ global missing from
1758 * IPython/Magic.py (magic_run): fix __file__ global missing from
1756 script's namespace when executed via %run. After a report by
1759 script's namespace when executed via %run. After a report by
1757 Vivian.
1760 Vivian.
1758
1761
1759 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1762 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1760 when using python 2.4. The parent constructor changed in 2.4, and
1763 when using python 2.4. The parent constructor changed in 2.4, and
1761 we need to track it directly (we can't call it, as it messes up
1764 we need to track it directly (we can't call it, as it messes up
1762 readline and tab-completion inside our pdb would stop working).
1765 readline and tab-completion inside our pdb would stop working).
1763 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1766 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1764
1767
1765 2006-01-16 Ville Vainio <vivainio@gmail.com>
1768 2006-01-16 Ville Vainio <vivainio@gmail.com>
1766
1769
1767 * Ipython/magic.py: Reverted back to old %edit functionality
1770 * Ipython/magic.py: Reverted back to old %edit functionality
1768 that returns file contents on exit.
1771 that returns file contents on exit.
1769
1772
1770 * IPython/path.py: Added Jason Orendorff's "path" module to
1773 * IPython/path.py: Added Jason Orendorff's "path" module to
1771 IPython tree, http://www.jorendorff.com/articles/python/path/.
1774 IPython tree, http://www.jorendorff.com/articles/python/path/.
1772 You can get path objects conveniently through %sc, and !!, e.g.:
1775 You can get path objects conveniently through %sc, and !!, e.g.:
1773 sc files=ls
1776 sc files=ls
1774 for p in files.paths: # or files.p
1777 for p in files.paths: # or files.p
1775 print p,p.mtime
1778 print p,p.mtime
1776
1779
1777 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1780 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1778 now work again without considering the exclusion regexp -
1781 now work again without considering the exclusion regexp -
1779 hence, things like ',foo my/path' turn to 'foo("my/path")'
1782 hence, things like ',foo my/path' turn to 'foo("my/path")'
1780 instead of syntax error.
1783 instead of syntax error.
1781
1784
1782
1785
1783 2006-01-14 Ville Vainio <vivainio@gmail.com>
1786 2006-01-14 Ville Vainio <vivainio@gmail.com>
1784
1787
1785 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1788 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1786 ipapi decorators for python 2.4 users, options() provides access to rc
1789 ipapi decorators for python 2.4 users, options() provides access to rc
1787 data.
1790 data.
1788
1791
1789 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1792 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1790 as path separators (even on Linux ;-). Space character after
1793 as path separators (even on Linux ;-). Space character after
1791 backslash (as yielded by tab completer) is still space;
1794 backslash (as yielded by tab completer) is still space;
1792 "%cd long\ name" works as expected.
1795 "%cd long\ name" works as expected.
1793
1796
1794 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1797 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1795 as "chain of command", with priority. API stays the same,
1798 as "chain of command", with priority. API stays the same,
1796 TryNext exception raised by a hook function signals that
1799 TryNext exception raised by a hook function signals that
1797 current hook failed and next hook should try handling it, as
1800 current hook failed and next hook should try handling it, as
1798 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
1801 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
1799 requested configurable display hook, which is now implemented.
1802 requested configurable display hook, which is now implemented.
1800
1803
1801 2006-01-13 Ville Vainio <vivainio@gmail.com>
1804 2006-01-13 Ville Vainio <vivainio@gmail.com>
1802
1805
1803 * IPython/platutils*.py: platform specific utility functions,
1806 * IPython/platutils*.py: platform specific utility functions,
1804 so far only set_term_title is implemented (change terminal
1807 so far only set_term_title is implemented (change terminal
1805 label in windowing systems). %cd now changes the title to
1808 label in windowing systems). %cd now changes the title to
1806 current dir.
1809 current dir.
1807
1810
1808 * IPython/Release.py: Added myself to "authors" list,
1811 * IPython/Release.py: Added myself to "authors" list,
1809 had to create new files.
1812 had to create new files.
1810
1813
1811 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1814 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1812 shell escape; not a known bug but had potential to be one in the
1815 shell escape; not a known bug but had potential to be one in the
1813 future.
1816 future.
1814
1817
1815 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1818 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1816 extension API for IPython! See the module for usage example. Fix
1819 extension API for IPython! See the module for usage example. Fix
1817 OInspect for docstring-less magic functions.
1820 OInspect for docstring-less magic functions.
1818
1821
1819
1822
1820 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1823 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1821
1824
1822 * IPython/iplib.py (raw_input): temporarily deactivate all
1825 * IPython/iplib.py (raw_input): temporarily deactivate all
1823 attempts at allowing pasting of code with autoindent on. It
1826 attempts at allowing pasting of code with autoindent on. It
1824 introduced bugs (reported by Prabhu) and I can't seem to find a
1827 introduced bugs (reported by Prabhu) and I can't seem to find a
1825 robust combination which works in all cases. Will have to revisit
1828 robust combination which works in all cases. Will have to revisit
1826 later.
1829 later.
1827
1830
1828 * IPython/genutils.py: remove isspace() function. We've dropped
1831 * IPython/genutils.py: remove isspace() function. We've dropped
1829 2.2 compatibility, so it's OK to use the string method.
1832 2.2 compatibility, so it's OK to use the string method.
1830
1833
1831 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1834 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1832
1835
1833 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1836 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1834 matching what NOT to autocall on, to include all python binary
1837 matching what NOT to autocall on, to include all python binary
1835 operators (including things like 'and', 'or', 'is' and 'in').
1838 operators (including things like 'and', 'or', 'is' and 'in').
1836 Prompted by a bug report on 'foo & bar', but I realized we had
1839 Prompted by a bug report on 'foo & bar', but I realized we had
1837 many more potential bug cases with other operators. The regexp is
1840 many more potential bug cases with other operators. The regexp is
1838 self.re_exclude_auto, it's fairly commented.
1841 self.re_exclude_auto, it's fairly commented.
1839
1842
1840 2006-01-12 Ville Vainio <vivainio@gmail.com>
1843 2006-01-12 Ville Vainio <vivainio@gmail.com>
1841
1844
1842 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1845 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1843 Prettified and hardened string/backslash quoting with ipsystem(),
1846 Prettified and hardened string/backslash quoting with ipsystem(),
1844 ipalias() and ipmagic(). Now even \ characters are passed to
1847 ipalias() and ipmagic(). Now even \ characters are passed to
1845 %magics, !shell escapes and aliases exactly as they are in the
1848 %magics, !shell escapes and aliases exactly as they are in the
1846 ipython command line. Should improve backslash experience,
1849 ipython command line. Should improve backslash experience,
1847 particularly in Windows (path delimiter for some commands that
1850 particularly in Windows (path delimiter for some commands that
1848 won't understand '/'), but Unix benefits as well (regexps). %cd
1851 won't understand '/'), but Unix benefits as well (regexps). %cd
1849 magic still doesn't support backslash path delimiters, though. Also
1852 magic still doesn't support backslash path delimiters, though. Also
1850 deleted all pretense of supporting multiline command strings in
1853 deleted all pretense of supporting multiline command strings in
1851 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1854 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1852
1855
1853 * doc/build_doc_instructions.txt added. Documentation on how to
1856 * doc/build_doc_instructions.txt added. Documentation on how to
1854 use doc/update_manual.py, added yesterday. Both files contributed
1857 use doc/update_manual.py, added yesterday. Both files contributed
1855 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1858 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1856 doc/*.sh for deprecation at a later date.
1859 doc/*.sh for deprecation at a later date.
1857
1860
1858 * /ipython.py Added ipython.py to root directory for
1861 * /ipython.py Added ipython.py to root directory for
1859 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1862 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1860 ipython.py) and development convenience (no need to keep doing
1863 ipython.py) and development convenience (no need to keep doing
1861 "setup.py install" between changes).
1864 "setup.py install" between changes).
1862
1865
1863 * Made ! and !! shell escapes work (again) in multiline expressions:
1866 * Made ! and !! shell escapes work (again) in multiline expressions:
1864 if 1:
1867 if 1:
1865 !ls
1868 !ls
1866 !!ls
1869 !!ls
1867
1870
1868 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1871 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1869
1872
1870 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1873 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1871 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1874 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1872 module in case-insensitive installation. Was causing crashes
1875 module in case-insensitive installation. Was causing crashes
1873 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1876 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1874
1877
1875 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1878 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1876 <marienz-AT-gentoo.org>, closes
1879 <marienz-AT-gentoo.org>, closes
1877 http://www.scipy.net/roundup/ipython/issue51.
1880 http://www.scipy.net/roundup/ipython/issue51.
1878
1881
1879 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1882 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1880
1883
1881 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1884 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1882 problem of excessive CPU usage under *nix and keyboard lag under
1885 problem of excessive CPU usage under *nix and keyboard lag under
1883 win32.
1886 win32.
1884
1887
1885 2006-01-10 *** Released version 0.7.0
1888 2006-01-10 *** Released version 0.7.0
1886
1889
1887 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1890 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1888
1891
1889 * IPython/Release.py (revision): tag version number to 0.7.0,
1892 * IPython/Release.py (revision): tag version number to 0.7.0,
1890 ready for release.
1893 ready for release.
1891
1894
1892 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1895 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1893 it informs the user of the name of the temp. file used. This can
1896 it informs the user of the name of the temp. file used. This can
1894 help if you decide later to reuse that same file, so you know
1897 help if you decide later to reuse that same file, so you know
1895 where to copy the info from.
1898 where to copy the info from.
1896
1899
1897 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1900 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1898
1901
1899 * setup_bdist_egg.py: little script to build an egg. Added
1902 * setup_bdist_egg.py: little script to build an egg. Added
1900 support in the release tools as well.
1903 support in the release tools as well.
1901
1904
1902 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1905 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1903
1906
1904 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1907 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1905 version selection (new -wxversion command line and ipythonrc
1908 version selection (new -wxversion command line and ipythonrc
1906 parameter). Patch contributed by Arnd Baecker
1909 parameter). Patch contributed by Arnd Baecker
1907 <arnd.baecker-AT-web.de>.
1910 <arnd.baecker-AT-web.de>.
1908
1911
1909 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1912 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1910 embedded instances, for variables defined at the interactive
1913 embedded instances, for variables defined at the interactive
1911 prompt of the embedded ipython. Reported by Arnd.
1914 prompt of the embedded ipython. Reported by Arnd.
1912
1915
1913 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1916 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1914 it can be used as a (stateful) toggle, or with a direct parameter.
1917 it can be used as a (stateful) toggle, or with a direct parameter.
1915
1918
1916 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1919 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1917 could be triggered in certain cases and cause the traceback
1920 could be triggered in certain cases and cause the traceback
1918 printer not to work.
1921 printer not to work.
1919
1922
1920 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1923 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1921
1924
1922 * IPython/iplib.py (_should_recompile): Small fix, closes
1925 * IPython/iplib.py (_should_recompile): Small fix, closes
1923 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1926 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1924
1927
1925 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1928 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1926
1929
1927 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1930 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1928 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1931 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1929 Moad for help with tracking it down.
1932 Moad for help with tracking it down.
1930
1933
1931 * IPython/iplib.py (handle_auto): fix autocall handling for
1934 * IPython/iplib.py (handle_auto): fix autocall handling for
1932 objects which support BOTH __getitem__ and __call__ (so that f [x]
1935 objects which support BOTH __getitem__ and __call__ (so that f [x]
1933 is left alone, instead of becoming f([x]) automatically).
1936 is left alone, instead of becoming f([x]) automatically).
1934
1937
1935 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1938 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1936 Ville's patch.
1939 Ville's patch.
1937
1940
1938 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1941 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1939
1942
1940 * IPython/iplib.py (handle_auto): changed autocall semantics to
1943 * IPython/iplib.py (handle_auto): changed autocall semantics to
1941 include 'smart' mode, where the autocall transformation is NOT
1944 include 'smart' mode, where the autocall transformation is NOT
1942 applied if there are no arguments on the line. This allows you to
1945 applied if there are no arguments on the line. This allows you to
1943 just type 'foo' if foo is a callable to see its internal form,
1946 just type 'foo' if foo is a callable to see its internal form,
1944 instead of having it called with no arguments (typically a
1947 instead of having it called with no arguments (typically a
1945 mistake). The old 'full' autocall still exists: for that, you
1948 mistake). The old 'full' autocall still exists: for that, you
1946 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1949 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1947
1950
1948 * IPython/completer.py (Completer.attr_matches): add
1951 * IPython/completer.py (Completer.attr_matches): add
1949 tab-completion support for Enthoughts' traits. After a report by
1952 tab-completion support for Enthoughts' traits. After a report by
1950 Arnd and a patch by Prabhu.
1953 Arnd and a patch by Prabhu.
1951
1954
1952 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1955 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1953
1956
1954 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1957 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1955 Schmolck's patch to fix inspect.getinnerframes().
1958 Schmolck's patch to fix inspect.getinnerframes().
1956
1959
1957 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1960 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1958 for embedded instances, regarding handling of namespaces and items
1961 for embedded instances, regarding handling of namespaces and items
1959 added to the __builtin__ one. Multiple embedded instances and
1962 added to the __builtin__ one. Multiple embedded instances and
1960 recursive embeddings should work better now (though I'm not sure
1963 recursive embeddings should work better now (though I'm not sure
1961 I've got all the corner cases fixed, that code is a bit of a brain
1964 I've got all the corner cases fixed, that code is a bit of a brain
1962 twister).
1965 twister).
1963
1966
1964 * IPython/Magic.py (magic_edit): added support to edit in-memory
1967 * IPython/Magic.py (magic_edit): added support to edit in-memory
1965 macros (automatically creates the necessary temp files). %edit
1968 macros (automatically creates the necessary temp files). %edit
1966 also doesn't return the file contents anymore, it's just noise.
1969 also doesn't return the file contents anymore, it's just noise.
1967
1970
1968 * IPython/completer.py (Completer.attr_matches): revert change to
1971 * IPython/completer.py (Completer.attr_matches): revert change to
1969 complete only on attributes listed in __all__. I realized it
1972 complete only on attributes listed in __all__. I realized it
1970 cripples the tab-completion system as a tool for exploring the
1973 cripples the tab-completion system as a tool for exploring the
1971 internals of unknown libraries (it renders any non-__all__
1974 internals of unknown libraries (it renders any non-__all__
1972 attribute off-limits). I got bit by this when trying to see
1975 attribute off-limits). I got bit by this when trying to see
1973 something inside the dis module.
1976 something inside the dis module.
1974
1977
1975 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1978 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1976
1979
1977 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1980 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1978 namespace for users and extension writers to hold data in. This
1981 namespace for users and extension writers to hold data in. This
1979 follows the discussion in
1982 follows the discussion in
1980 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1983 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1981
1984
1982 * IPython/completer.py (IPCompleter.complete): small patch to help
1985 * IPython/completer.py (IPCompleter.complete): small patch to help
1983 tab-completion under Emacs, after a suggestion by John Barnard
1986 tab-completion under Emacs, after a suggestion by John Barnard
1984 <barnarj-AT-ccf.org>.
1987 <barnarj-AT-ccf.org>.
1985
1988
1986 * IPython/Magic.py (Magic.extract_input_slices): added support for
1989 * IPython/Magic.py (Magic.extract_input_slices): added support for
1987 the slice notation in magics to use N-M to represent numbers N...M
1990 the slice notation in magics to use N-M to represent numbers N...M
1988 (closed endpoints). This is used by %macro and %save.
1991 (closed endpoints). This is used by %macro and %save.
1989
1992
1990 * IPython/completer.py (Completer.attr_matches): for modules which
1993 * IPython/completer.py (Completer.attr_matches): for modules which
1991 define __all__, complete only on those. After a patch by Jeffrey
1994 define __all__, complete only on those. After a patch by Jeffrey
1992 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1995 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1993 speed up this routine.
1996 speed up this routine.
1994
1997
1995 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1998 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1996 don't know if this is the end of it, but the behavior now is
1999 don't know if this is the end of it, but the behavior now is
1997 certainly much more correct. Note that coupled with macros,
2000 certainly much more correct. Note that coupled with macros,
1998 slightly surprising (at first) behavior may occur: a macro will in
2001 slightly surprising (at first) behavior may occur: a macro will in
1999 general expand to multiple lines of input, so upon exiting, the
2002 general expand to multiple lines of input, so upon exiting, the
2000 in/out counters will both be bumped by the corresponding amount
2003 in/out counters will both be bumped by the corresponding amount
2001 (as if the macro's contents had been typed interactively). Typing
2004 (as if the macro's contents had been typed interactively). Typing
2002 %hist will reveal the intermediate (silently processed) lines.
2005 %hist will reveal the intermediate (silently processed) lines.
2003
2006
2004 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2007 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2005 pickle to fail (%run was overwriting __main__ and not restoring
2008 pickle to fail (%run was overwriting __main__ and not restoring
2006 it, but pickle relies on __main__ to operate).
2009 it, but pickle relies on __main__ to operate).
2007
2010
2008 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2011 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2009 using properties, but forgot to make the main InteractiveShell
2012 using properties, but forgot to make the main InteractiveShell
2010 class a new-style class. Properties fail silently, and
2013 class a new-style class. Properties fail silently, and
2011 mysteriously, with old-style class (getters work, but
2014 mysteriously, with old-style class (getters work, but
2012 setters don't do anything).
2015 setters don't do anything).
2013
2016
2014 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2017 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2015
2018
2016 * IPython/Magic.py (magic_history): fix history reporting bug (I
2019 * IPython/Magic.py (magic_history): fix history reporting bug (I
2017 know some nasties are still there, I just can't seem to find a
2020 know some nasties are still there, I just can't seem to find a
2018 reproducible test case to track them down; the input history is
2021 reproducible test case to track them down; the input history is
2019 falling out of sync...)
2022 falling out of sync...)
2020
2023
2021 * IPython/iplib.py (handle_shell_escape): fix bug where both
2024 * IPython/iplib.py (handle_shell_escape): fix bug where both
2022 aliases and system accesses where broken for indented code (such
2025 aliases and system accesses where broken for indented code (such
2023 as loops).
2026 as loops).
2024
2027
2025 * IPython/genutils.py (shell): fix small but critical bug for
2028 * IPython/genutils.py (shell): fix small but critical bug for
2026 win32 system access.
2029 win32 system access.
2027
2030
2028 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2031 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2029
2032
2030 * IPython/iplib.py (showtraceback): remove use of the
2033 * IPython/iplib.py (showtraceback): remove use of the
2031 sys.last_{type/value/traceback} structures, which are non
2034 sys.last_{type/value/traceback} structures, which are non
2032 thread-safe.
2035 thread-safe.
2033 (_prefilter): change control flow to ensure that we NEVER
2036 (_prefilter): change control flow to ensure that we NEVER
2034 introspect objects when autocall is off. This will guarantee that
2037 introspect objects when autocall is off. This will guarantee that
2035 having an input line of the form 'x.y', where access to attribute
2038 having an input line of the form 'x.y', where access to attribute
2036 'y' has side effects, doesn't trigger the side effect TWICE. It
2039 'y' has side effects, doesn't trigger the side effect TWICE. It
2037 is important to note that, with autocall on, these side effects
2040 is important to note that, with autocall on, these side effects
2038 can still happen.
2041 can still happen.
2039 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2042 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2040 trio. IPython offers these three kinds of special calls which are
2043 trio. IPython offers these three kinds of special calls which are
2041 not python code, and it's a good thing to have their call method
2044 not python code, and it's a good thing to have their call method
2042 be accessible as pure python functions (not just special syntax at
2045 be accessible as pure python functions (not just special syntax at
2043 the command line). It gives us a better internal implementation
2046 the command line). It gives us a better internal implementation
2044 structure, as well as exposing these for user scripting more
2047 structure, as well as exposing these for user scripting more
2045 cleanly.
2048 cleanly.
2046
2049
2047 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2050 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2048 file. Now that they'll be more likely to be used with the
2051 file. Now that they'll be more likely to be used with the
2049 persistance system (%store), I want to make sure their module path
2052 persistance system (%store), I want to make sure their module path
2050 doesn't change in the future, so that we don't break things for
2053 doesn't change in the future, so that we don't break things for
2051 users' persisted data.
2054 users' persisted data.
2052
2055
2053 * IPython/iplib.py (autoindent_update): move indentation
2056 * IPython/iplib.py (autoindent_update): move indentation
2054 management into the _text_ processing loop, not the keyboard
2057 management into the _text_ processing loop, not the keyboard
2055 interactive one. This is necessary to correctly process non-typed
2058 interactive one. This is necessary to correctly process non-typed
2056 multiline input (such as macros).
2059 multiline input (such as macros).
2057
2060
2058 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2061 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2059 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2062 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2060 which was producing problems in the resulting manual.
2063 which was producing problems in the resulting manual.
2061 (magic_whos): improve reporting of instances (show their class,
2064 (magic_whos): improve reporting of instances (show their class,
2062 instead of simply printing 'instance' which isn't terribly
2065 instead of simply printing 'instance' which isn't terribly
2063 informative).
2066 informative).
2064
2067
2065 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2068 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2066 (minor mods) to support network shares under win32.
2069 (minor mods) to support network shares under win32.
2067
2070
2068 * IPython/winconsole.py (get_console_size): add new winconsole
2071 * IPython/winconsole.py (get_console_size): add new winconsole
2069 module and fixes to page_dumb() to improve its behavior under
2072 module and fixes to page_dumb() to improve its behavior under
2070 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2073 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2071
2074
2072 * IPython/Magic.py (Macro): simplified Macro class to just
2075 * IPython/Magic.py (Macro): simplified Macro class to just
2073 subclass list. We've had only 2.2 compatibility for a very long
2076 subclass list. We've had only 2.2 compatibility for a very long
2074 time, yet I was still avoiding subclassing the builtin types. No
2077 time, yet I was still avoiding subclassing the builtin types. No
2075 more (I'm also starting to use properties, though I won't shift to
2078 more (I'm also starting to use properties, though I won't shift to
2076 2.3-specific features quite yet).
2079 2.3-specific features quite yet).
2077 (magic_store): added Ville's patch for lightweight variable
2080 (magic_store): added Ville's patch for lightweight variable
2078 persistence, after a request on the user list by Matt Wilkie
2081 persistence, after a request on the user list by Matt Wilkie
2079 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2082 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2080 details.
2083 details.
2081
2084
2082 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2085 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2083 changed the default logfile name from 'ipython.log' to
2086 changed the default logfile name from 'ipython.log' to
2084 'ipython_log.py'. These logs are real python files, and now that
2087 'ipython_log.py'. These logs are real python files, and now that
2085 we have much better multiline support, people are more likely to
2088 we have much better multiline support, people are more likely to
2086 want to use them as such. Might as well name them correctly.
2089 want to use them as such. Might as well name them correctly.
2087
2090
2088 * IPython/Magic.py: substantial cleanup. While we can't stop
2091 * IPython/Magic.py: substantial cleanup. While we can't stop
2089 using magics as mixins, due to the existing customizations 'out
2092 using magics as mixins, due to the existing customizations 'out
2090 there' which rely on the mixin naming conventions, at least I
2093 there' which rely on the mixin naming conventions, at least I
2091 cleaned out all cross-class name usage. So once we are OK with
2094 cleaned out all cross-class name usage. So once we are OK with
2092 breaking compatibility, the two systems can be separated.
2095 breaking compatibility, the two systems can be separated.
2093
2096
2094 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2097 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2095 anymore, and the class is a fair bit less hideous as well. New
2098 anymore, and the class is a fair bit less hideous as well. New
2096 features were also introduced: timestamping of input, and logging
2099 features were also introduced: timestamping of input, and logging
2097 of output results. These are user-visible with the -t and -o
2100 of output results. These are user-visible with the -t and -o
2098 options to %logstart. Closes
2101 options to %logstart. Closes
2099 http://www.scipy.net/roundup/ipython/issue11 and a request by
2102 http://www.scipy.net/roundup/ipython/issue11 and a request by
2100 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2103 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2101
2104
2102 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2105 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2103
2106
2104 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2107 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2105 better handle backslashes in paths. See the thread 'More Windows
2108 better handle backslashes in paths. See the thread 'More Windows
2106 questions part 2 - \/ characters revisited' on the iypthon user
2109 questions part 2 - \/ characters revisited' on the iypthon user
2107 list:
2110 list:
2108 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2111 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2109
2112
2110 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2113 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2111
2114
2112 (InteractiveShell.__init__): change threaded shells to not use the
2115 (InteractiveShell.__init__): change threaded shells to not use the
2113 ipython crash handler. This was causing more problems than not,
2116 ipython crash handler. This was causing more problems than not,
2114 as exceptions in the main thread (GUI code, typically) would
2117 as exceptions in the main thread (GUI code, typically) would
2115 always show up as a 'crash', when they really weren't.
2118 always show up as a 'crash', when they really weren't.
2116
2119
2117 The colors and exception mode commands (%colors/%xmode) have been
2120 The colors and exception mode commands (%colors/%xmode) have been
2118 synchronized to also take this into account, so users can get
2121 synchronized to also take this into account, so users can get
2119 verbose exceptions for their threaded code as well. I also added
2122 verbose exceptions for their threaded code as well. I also added
2120 support for activating pdb inside this exception handler as well,
2123 support for activating pdb inside this exception handler as well,
2121 so now GUI authors can use IPython's enhanced pdb at runtime.
2124 so now GUI authors can use IPython's enhanced pdb at runtime.
2122
2125
2123 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2126 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2124 true by default, and add it to the shipped ipythonrc file. Since
2127 true by default, and add it to the shipped ipythonrc file. Since
2125 this asks the user before proceeding, I think it's OK to make it
2128 this asks the user before proceeding, I think it's OK to make it
2126 true by default.
2129 true by default.
2127
2130
2128 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2131 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2129 of the previous special-casing of input in the eval loop. I think
2132 of the previous special-casing of input in the eval loop. I think
2130 this is cleaner, as they really are commands and shouldn't have
2133 this is cleaner, as they really are commands and shouldn't have
2131 a special role in the middle of the core code.
2134 a special role in the middle of the core code.
2132
2135
2133 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2136 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2134
2137
2135 * IPython/iplib.py (edit_syntax_error): added support for
2138 * IPython/iplib.py (edit_syntax_error): added support for
2136 automatically reopening the editor if the file had a syntax error
2139 automatically reopening the editor if the file had a syntax error
2137 in it. Thanks to scottt who provided the patch at:
2140 in it. Thanks to scottt who provided the patch at:
2138 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2141 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2139 version committed).
2142 version committed).
2140
2143
2141 * IPython/iplib.py (handle_normal): add suport for multi-line
2144 * IPython/iplib.py (handle_normal): add suport for multi-line
2142 input with emtpy lines. This fixes
2145 input with emtpy lines. This fixes
2143 http://www.scipy.net/roundup/ipython/issue43 and a similar
2146 http://www.scipy.net/roundup/ipython/issue43 and a similar
2144 discussion on the user list.
2147 discussion on the user list.
2145
2148
2146 WARNING: a behavior change is necessarily introduced to support
2149 WARNING: a behavior change is necessarily introduced to support
2147 blank lines: now a single blank line with whitespace does NOT
2150 blank lines: now a single blank line with whitespace does NOT
2148 break the input loop, which means that when autoindent is on, by
2151 break the input loop, which means that when autoindent is on, by
2149 default hitting return on the next (indented) line does NOT exit.
2152 default hitting return on the next (indented) line does NOT exit.
2150
2153
2151 Instead, to exit a multiline input you can either have:
2154 Instead, to exit a multiline input you can either have:
2152
2155
2153 - TWO whitespace lines (just hit return again), or
2156 - TWO whitespace lines (just hit return again), or
2154 - a single whitespace line of a different length than provided
2157 - a single whitespace line of a different length than provided
2155 by the autoindent (add or remove a space).
2158 by the autoindent (add or remove a space).
2156
2159
2157 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2160 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2158 module to better organize all readline-related functionality.
2161 module to better organize all readline-related functionality.
2159 I've deleted FlexCompleter and put all completion clases here.
2162 I've deleted FlexCompleter and put all completion clases here.
2160
2163
2161 * IPython/iplib.py (raw_input): improve indentation management.
2164 * IPython/iplib.py (raw_input): improve indentation management.
2162 It is now possible to paste indented code with autoindent on, and
2165 It is now possible to paste indented code with autoindent on, and
2163 the code is interpreted correctly (though it still looks bad on
2166 the code is interpreted correctly (though it still looks bad on
2164 screen, due to the line-oriented nature of ipython).
2167 screen, due to the line-oriented nature of ipython).
2165 (MagicCompleter.complete): change behavior so that a TAB key on an
2168 (MagicCompleter.complete): change behavior so that a TAB key on an
2166 otherwise empty line actually inserts a tab, instead of completing
2169 otherwise empty line actually inserts a tab, instead of completing
2167 on the entire global namespace. This makes it easier to use the
2170 on the entire global namespace. This makes it easier to use the
2168 TAB key for indentation. After a request by Hans Meine
2171 TAB key for indentation. After a request by Hans Meine
2169 <hans_meine-AT-gmx.net>
2172 <hans_meine-AT-gmx.net>
2170 (_prefilter): add support so that typing plain 'exit' or 'quit'
2173 (_prefilter): add support so that typing plain 'exit' or 'quit'
2171 does a sensible thing. Originally I tried to deviate as little as
2174 does a sensible thing. Originally I tried to deviate as little as
2172 possible from the default python behavior, but even that one may
2175 possible from the default python behavior, but even that one may
2173 change in this direction (thread on python-dev to that effect).
2176 change in this direction (thread on python-dev to that effect).
2174 Regardless, ipython should do the right thing even if CPython's
2177 Regardless, ipython should do the right thing even if CPython's
2175 '>>>' prompt doesn't.
2178 '>>>' prompt doesn't.
2176 (InteractiveShell): removed subclassing code.InteractiveConsole
2179 (InteractiveShell): removed subclassing code.InteractiveConsole
2177 class. By now we'd overridden just about all of its methods: I've
2180 class. By now we'd overridden just about all of its methods: I've
2178 copied the remaining two over, and now ipython is a standalone
2181 copied the remaining two over, and now ipython is a standalone
2179 class. This will provide a clearer picture for the chainsaw
2182 class. This will provide a clearer picture for the chainsaw
2180 branch refactoring.
2183 branch refactoring.
2181
2184
2182 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2185 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2183
2186
2184 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2187 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2185 failures for objects which break when dir() is called on them.
2188 failures for objects which break when dir() is called on them.
2186
2189
2187 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2190 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2188 distinct local and global namespaces in the completer API. This
2191 distinct local and global namespaces in the completer API. This
2189 change allows us to properly handle completion with distinct
2192 change allows us to properly handle completion with distinct
2190 scopes, including in embedded instances (this had never really
2193 scopes, including in embedded instances (this had never really
2191 worked correctly).
2194 worked correctly).
2192
2195
2193 Note: this introduces a change in the constructor for
2196 Note: this introduces a change in the constructor for
2194 MagicCompleter, as a new global_namespace parameter is now the
2197 MagicCompleter, as a new global_namespace parameter is now the
2195 second argument (the others were bumped one position).
2198 second argument (the others were bumped one position).
2196
2199
2197 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2200 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2198
2201
2199 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2202 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2200 embedded instances (which can be done now thanks to Vivian's
2203 embedded instances (which can be done now thanks to Vivian's
2201 frame-handling fixes for pdb).
2204 frame-handling fixes for pdb).
2202 (InteractiveShell.__init__): Fix namespace handling problem in
2205 (InteractiveShell.__init__): Fix namespace handling problem in
2203 embedded instances. We were overwriting __main__ unconditionally,
2206 embedded instances. We were overwriting __main__ unconditionally,
2204 and this should only be done for 'full' (non-embedded) IPython;
2207 and this should only be done for 'full' (non-embedded) IPython;
2205 embedded instances must respect the caller's __main__. Thanks to
2208 embedded instances must respect the caller's __main__. Thanks to
2206 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2209 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2207
2210
2208 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2211 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2209
2212
2210 * setup.py: added download_url to setup(). This registers the
2213 * setup.py: added download_url to setup(). This registers the
2211 download address at PyPI, which is not only useful to humans
2214 download address at PyPI, which is not only useful to humans
2212 browsing the site, but is also picked up by setuptools (the Eggs
2215 browsing the site, but is also picked up by setuptools (the Eggs
2213 machinery). Thanks to Ville and R. Kern for the info/discussion
2216 machinery). Thanks to Ville and R. Kern for the info/discussion
2214 on this.
2217 on this.
2215
2218
2216 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2219 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2217
2220
2218 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2221 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2219 This brings a lot of nice functionality to the pdb mode, which now
2222 This brings a lot of nice functionality to the pdb mode, which now
2220 has tab-completion, syntax highlighting, and better stack handling
2223 has tab-completion, syntax highlighting, and better stack handling
2221 than before. Many thanks to Vivian De Smedt
2224 than before. Many thanks to Vivian De Smedt
2222 <vivian-AT-vdesmedt.com> for the original patches.
2225 <vivian-AT-vdesmedt.com> for the original patches.
2223
2226
2224 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2227 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2225
2228
2226 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2229 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2227 sequence to consistently accept the banner argument. The
2230 sequence to consistently accept the banner argument. The
2228 inconsistency was tripping SAGE, thanks to Gary Zablackis
2231 inconsistency was tripping SAGE, thanks to Gary Zablackis
2229 <gzabl-AT-yahoo.com> for the report.
2232 <gzabl-AT-yahoo.com> for the report.
2230
2233
2231 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2234 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2232
2235
2233 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2236 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2234 Fix bug where a naked 'alias' call in the ipythonrc file would
2237 Fix bug where a naked 'alias' call in the ipythonrc file would
2235 cause a crash. Bug reported by Jorgen Stenarson.
2238 cause a crash. Bug reported by Jorgen Stenarson.
2236
2239
2237 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2240 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2238
2241
2239 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2242 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2240 startup time.
2243 startup time.
2241
2244
2242 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2245 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2243 instances had introduced a bug with globals in normal code. Now
2246 instances had introduced a bug with globals in normal code. Now
2244 it's working in all cases.
2247 it's working in all cases.
2245
2248
2246 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2249 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2247 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2250 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2248 has been introduced to set the default case sensitivity of the
2251 has been introduced to set the default case sensitivity of the
2249 searches. Users can still select either mode at runtime on a
2252 searches. Users can still select either mode at runtime on a
2250 per-search basis.
2253 per-search basis.
2251
2254
2252 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2255 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2253
2256
2254 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2257 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2255 attributes in wildcard searches for subclasses. Modified version
2258 attributes in wildcard searches for subclasses. Modified version
2256 of a patch by Jorgen.
2259 of a patch by Jorgen.
2257
2260
2258 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2261 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2259
2262
2260 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2263 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2261 embedded instances. I added a user_global_ns attribute to the
2264 embedded instances. I added a user_global_ns attribute to the
2262 InteractiveShell class to handle this.
2265 InteractiveShell class to handle this.
2263
2266
2264 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2267 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2265
2268
2266 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2269 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2267 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2270 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2268 (reported under win32, but may happen also in other platforms).
2271 (reported under win32, but may happen also in other platforms).
2269 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2272 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2270
2273
2271 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2274 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2272
2275
2273 * IPython/Magic.py (magic_psearch): new support for wildcard
2276 * IPython/Magic.py (magic_psearch): new support for wildcard
2274 patterns. Now, typing ?a*b will list all names which begin with a
2277 patterns. Now, typing ?a*b will list all names which begin with a
2275 and end in b, for example. The %psearch magic has full
2278 and end in b, for example. The %psearch magic has full
2276 docstrings. Many thanks to Jörgen Stenarson
2279 docstrings. Many thanks to Jörgen Stenarson
2277 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2280 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2278 implementing this functionality.
2281 implementing this functionality.
2279
2282
2280 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2283 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2281
2284
2282 * Manual: fixed long-standing annoyance of double-dashes (as in
2285 * Manual: fixed long-standing annoyance of double-dashes (as in
2283 --prefix=~, for example) being stripped in the HTML version. This
2286 --prefix=~, for example) being stripped in the HTML version. This
2284 is a latex2html bug, but a workaround was provided. Many thanks
2287 is a latex2html bug, but a workaround was provided. Many thanks
2285 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2288 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2286 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2289 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2287 rolling. This seemingly small issue had tripped a number of users
2290 rolling. This seemingly small issue had tripped a number of users
2288 when first installing, so I'm glad to see it gone.
2291 when first installing, so I'm glad to see it gone.
2289
2292
2290 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2293 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2291
2294
2292 * IPython/Extensions/numeric_formats.py: fix missing import,
2295 * IPython/Extensions/numeric_formats.py: fix missing import,
2293 reported by Stephen Walton.
2296 reported by Stephen Walton.
2294
2297
2295 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2298 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2296
2299
2297 * IPython/demo.py: finish demo module, fully documented now.
2300 * IPython/demo.py: finish demo module, fully documented now.
2298
2301
2299 * IPython/genutils.py (file_read): simple little utility to read a
2302 * IPython/genutils.py (file_read): simple little utility to read a
2300 file and ensure it's closed afterwards.
2303 file and ensure it's closed afterwards.
2301
2304
2302 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2305 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2303
2306
2304 * IPython/demo.py (Demo.__init__): added support for individually
2307 * IPython/demo.py (Demo.__init__): added support for individually
2305 tagging blocks for automatic execution.
2308 tagging blocks for automatic execution.
2306
2309
2307 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2310 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2308 syntax-highlighted python sources, requested by John.
2311 syntax-highlighted python sources, requested by John.
2309
2312
2310 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2313 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2311
2314
2312 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2315 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2313 finishing.
2316 finishing.
2314
2317
2315 * IPython/genutils.py (shlex_split): moved from Magic to here,
2318 * IPython/genutils.py (shlex_split): moved from Magic to here,
2316 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2319 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2317
2320
2318 * IPython/demo.py (Demo.__init__): added support for silent
2321 * IPython/demo.py (Demo.__init__): added support for silent
2319 blocks, improved marks as regexps, docstrings written.
2322 blocks, improved marks as regexps, docstrings written.
2320 (Demo.__init__): better docstring, added support for sys.argv.
2323 (Demo.__init__): better docstring, added support for sys.argv.
2321
2324
2322 * IPython/genutils.py (marquee): little utility used by the demo
2325 * IPython/genutils.py (marquee): little utility used by the demo
2323 code, handy in general.
2326 code, handy in general.
2324
2327
2325 * IPython/demo.py (Demo.__init__): new class for interactive
2328 * IPython/demo.py (Demo.__init__): new class for interactive
2326 demos. Not documented yet, I just wrote it in a hurry for
2329 demos. Not documented yet, I just wrote it in a hurry for
2327 scipy'05. Will docstring later.
2330 scipy'05. Will docstring later.
2328
2331
2329 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2332 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2330
2333
2331 * IPython/Shell.py (sigint_handler): Drastic simplification which
2334 * IPython/Shell.py (sigint_handler): Drastic simplification which
2332 also seems to make Ctrl-C work correctly across threads! This is
2335 also seems to make Ctrl-C work correctly across threads! This is
2333 so simple, that I can't beleive I'd missed it before. Needs more
2336 so simple, that I can't beleive I'd missed it before. Needs more
2334 testing, though.
2337 testing, though.
2335 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2338 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2336 like this before...
2339 like this before...
2337
2340
2338 * IPython/genutils.py (get_home_dir): add protection against
2341 * IPython/genutils.py (get_home_dir): add protection against
2339 non-dirs in win32 registry.
2342 non-dirs in win32 registry.
2340
2343
2341 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2344 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2342 bug where dict was mutated while iterating (pysh crash).
2345 bug where dict was mutated while iterating (pysh crash).
2343
2346
2344 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2347 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2345
2348
2346 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2349 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2347 spurious newlines added by this routine. After a report by
2350 spurious newlines added by this routine. After a report by
2348 F. Mantegazza.
2351 F. Mantegazza.
2349
2352
2350 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2353 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2351
2354
2352 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2355 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2353 calls. These were a leftover from the GTK 1.x days, and can cause
2356 calls. These were a leftover from the GTK 1.x days, and can cause
2354 problems in certain cases (after a report by John Hunter).
2357 problems in certain cases (after a report by John Hunter).
2355
2358
2356 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2359 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2357 os.getcwd() fails at init time. Thanks to patch from David Remahl
2360 os.getcwd() fails at init time. Thanks to patch from David Remahl
2358 <chmod007-AT-mac.com>.
2361 <chmod007-AT-mac.com>.
2359 (InteractiveShell.__init__): prevent certain special magics from
2362 (InteractiveShell.__init__): prevent certain special magics from
2360 being shadowed by aliases. Closes
2363 being shadowed by aliases. Closes
2361 http://www.scipy.net/roundup/ipython/issue41.
2364 http://www.scipy.net/roundup/ipython/issue41.
2362
2365
2363 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2366 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2364
2367
2365 * IPython/iplib.py (InteractiveShell.complete): Added new
2368 * IPython/iplib.py (InteractiveShell.complete): Added new
2366 top-level completion method to expose the completion mechanism
2369 top-level completion method to expose the completion mechanism
2367 beyond readline-based environments.
2370 beyond readline-based environments.
2368
2371
2369 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2372 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2370
2373
2371 * tools/ipsvnc (svnversion): fix svnversion capture.
2374 * tools/ipsvnc (svnversion): fix svnversion capture.
2372
2375
2373 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2376 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2374 attribute to self, which was missing. Before, it was set by a
2377 attribute to self, which was missing. Before, it was set by a
2375 routine which in certain cases wasn't being called, so the
2378 routine which in certain cases wasn't being called, so the
2376 instance could end up missing the attribute. This caused a crash.
2379 instance could end up missing the attribute. This caused a crash.
2377 Closes http://www.scipy.net/roundup/ipython/issue40.
2380 Closes http://www.scipy.net/roundup/ipython/issue40.
2378
2381
2379 2005-08-16 Fernando Perez <fperez@colorado.edu>
2382 2005-08-16 Fernando Perez <fperez@colorado.edu>
2380
2383
2381 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2384 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2382 contains non-string attribute. Closes
2385 contains non-string attribute. Closes
2383 http://www.scipy.net/roundup/ipython/issue38.
2386 http://www.scipy.net/roundup/ipython/issue38.
2384
2387
2385 2005-08-14 Fernando Perez <fperez@colorado.edu>
2388 2005-08-14 Fernando Perez <fperez@colorado.edu>
2386
2389
2387 * tools/ipsvnc: Minor improvements, to add changeset info.
2390 * tools/ipsvnc: Minor improvements, to add changeset info.
2388
2391
2389 2005-08-12 Fernando Perez <fperez@colorado.edu>
2392 2005-08-12 Fernando Perez <fperez@colorado.edu>
2390
2393
2391 * IPython/iplib.py (runsource): remove self.code_to_run_src
2394 * IPython/iplib.py (runsource): remove self.code_to_run_src
2392 attribute. I realized this is nothing more than
2395 attribute. I realized this is nothing more than
2393 '\n'.join(self.buffer), and having the same data in two different
2396 '\n'.join(self.buffer), and having the same data in two different
2394 places is just asking for synchronization bugs. This may impact
2397 places is just asking for synchronization bugs. This may impact
2395 people who have custom exception handlers, so I need to warn
2398 people who have custom exception handlers, so I need to warn
2396 ipython-dev about it (F. Mantegazza may use them).
2399 ipython-dev about it (F. Mantegazza may use them).
2397
2400
2398 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2401 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2399
2402
2400 * IPython/genutils.py: fix 2.2 compatibility (generators)
2403 * IPython/genutils.py: fix 2.2 compatibility (generators)
2401
2404
2402 2005-07-18 Fernando Perez <fperez@colorado.edu>
2405 2005-07-18 Fernando Perez <fperez@colorado.edu>
2403
2406
2404 * IPython/genutils.py (get_home_dir): fix to help users with
2407 * IPython/genutils.py (get_home_dir): fix to help users with
2405 invalid $HOME under win32.
2408 invalid $HOME under win32.
2406
2409
2407 2005-07-17 Fernando Perez <fperez@colorado.edu>
2410 2005-07-17 Fernando Perez <fperez@colorado.edu>
2408
2411
2409 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2412 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2410 some old hacks and clean up a bit other routines; code should be
2413 some old hacks and clean up a bit other routines; code should be
2411 simpler and a bit faster.
2414 simpler and a bit faster.
2412
2415
2413 * IPython/iplib.py (interact): removed some last-resort attempts
2416 * IPython/iplib.py (interact): removed some last-resort attempts
2414 to survive broken stdout/stderr. That code was only making it
2417 to survive broken stdout/stderr. That code was only making it
2415 harder to abstract out the i/o (necessary for gui integration),
2418 harder to abstract out the i/o (necessary for gui integration),
2416 and the crashes it could prevent were extremely rare in practice
2419 and the crashes it could prevent were extremely rare in practice
2417 (besides being fully user-induced in a pretty violent manner).
2420 (besides being fully user-induced in a pretty violent manner).
2418
2421
2419 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2422 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2420 Nothing major yet, but the code is simpler to read; this should
2423 Nothing major yet, but the code is simpler to read; this should
2421 make it easier to do more serious modifications in the future.
2424 make it easier to do more serious modifications in the future.
2422
2425
2423 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2426 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2424 which broke in .15 (thanks to a report by Ville).
2427 which broke in .15 (thanks to a report by Ville).
2425
2428
2426 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2429 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2427 be quite correct, I know next to nothing about unicode). This
2430 be quite correct, I know next to nothing about unicode). This
2428 will allow unicode strings to be used in prompts, amongst other
2431 will allow unicode strings to be used in prompts, amongst other
2429 cases. It also will prevent ipython from crashing when unicode
2432 cases. It also will prevent ipython from crashing when unicode
2430 shows up unexpectedly in many places. If ascii encoding fails, we
2433 shows up unexpectedly in many places. If ascii encoding fails, we
2431 assume utf_8. Currently the encoding is not a user-visible
2434 assume utf_8. Currently the encoding is not a user-visible
2432 setting, though it could be made so if there is demand for it.
2435 setting, though it could be made so if there is demand for it.
2433
2436
2434 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2437 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2435
2438
2436 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2439 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2437
2440
2438 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2441 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2439
2442
2440 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2443 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2441 code can work transparently for 2.2/2.3.
2444 code can work transparently for 2.2/2.3.
2442
2445
2443 2005-07-16 Fernando Perez <fperez@colorado.edu>
2446 2005-07-16 Fernando Perez <fperez@colorado.edu>
2444
2447
2445 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2448 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2446 out of the color scheme table used for coloring exception
2449 out of the color scheme table used for coloring exception
2447 tracebacks. This allows user code to add new schemes at runtime.
2450 tracebacks. This allows user code to add new schemes at runtime.
2448 This is a minimally modified version of the patch at
2451 This is a minimally modified version of the patch at
2449 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2452 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2450 for the contribution.
2453 for the contribution.
2451
2454
2452 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2455 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2453 slightly modified version of the patch in
2456 slightly modified version of the patch in
2454 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2457 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2455 to remove the previous try/except solution (which was costlier).
2458 to remove the previous try/except solution (which was costlier).
2456 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2459 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2457
2460
2458 2005-06-08 Fernando Perez <fperez@colorado.edu>
2461 2005-06-08 Fernando Perez <fperez@colorado.edu>
2459
2462
2460 * IPython/iplib.py (write/write_err): Add methods to abstract all
2463 * IPython/iplib.py (write/write_err): Add methods to abstract all
2461 I/O a bit more.
2464 I/O a bit more.
2462
2465
2463 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2466 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2464 warning, reported by Aric Hagberg, fix by JD Hunter.
2467 warning, reported by Aric Hagberg, fix by JD Hunter.
2465
2468
2466 2005-06-02 *** Released version 0.6.15
2469 2005-06-02 *** Released version 0.6.15
2467
2470
2468 2005-06-01 Fernando Perez <fperez@colorado.edu>
2471 2005-06-01 Fernando Perez <fperez@colorado.edu>
2469
2472
2470 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2473 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2471 tab-completion of filenames within open-quoted strings. Note that
2474 tab-completion of filenames within open-quoted strings. Note that
2472 this requires that in ~/.ipython/ipythonrc, users change the
2475 this requires that in ~/.ipython/ipythonrc, users change the
2473 readline delimiters configuration to read:
2476 readline delimiters configuration to read:
2474
2477
2475 readline_remove_delims -/~
2478 readline_remove_delims -/~
2476
2479
2477
2480
2478 2005-05-31 *** Released version 0.6.14
2481 2005-05-31 *** Released version 0.6.14
2479
2482
2480 2005-05-29 Fernando Perez <fperez@colorado.edu>
2483 2005-05-29 Fernando Perez <fperez@colorado.edu>
2481
2484
2482 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2485 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2483 with files not on the filesystem. Reported by Eliyahu Sandler
2486 with files not on the filesystem. Reported by Eliyahu Sandler
2484 <eli@gondolin.net>
2487 <eli@gondolin.net>
2485
2488
2486 2005-05-22 Fernando Perez <fperez@colorado.edu>
2489 2005-05-22 Fernando Perez <fperez@colorado.edu>
2487
2490
2488 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2491 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2489 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2492 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2490
2493
2491 2005-05-19 Fernando Perez <fperez@colorado.edu>
2494 2005-05-19 Fernando Perez <fperez@colorado.edu>
2492
2495
2493 * IPython/iplib.py (safe_execfile): close a file which could be
2496 * IPython/iplib.py (safe_execfile): close a file which could be
2494 left open (causing problems in win32, which locks open files).
2497 left open (causing problems in win32, which locks open files).
2495 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2498 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2496
2499
2497 2005-05-18 Fernando Perez <fperez@colorado.edu>
2500 2005-05-18 Fernando Perez <fperez@colorado.edu>
2498
2501
2499 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2502 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2500 keyword arguments correctly to safe_execfile().
2503 keyword arguments correctly to safe_execfile().
2501
2504
2502 2005-05-13 Fernando Perez <fperez@colorado.edu>
2505 2005-05-13 Fernando Perez <fperez@colorado.edu>
2503
2506
2504 * ipython.1: Added info about Qt to manpage, and threads warning
2507 * ipython.1: Added info about Qt to manpage, and threads warning
2505 to usage page (invoked with --help).
2508 to usage page (invoked with --help).
2506
2509
2507 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2510 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2508 new matcher (it goes at the end of the priority list) to do
2511 new matcher (it goes at the end of the priority list) to do
2509 tab-completion on named function arguments. Submitted by George
2512 tab-completion on named function arguments. Submitted by George
2510 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2513 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2511 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2514 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2512 for more details.
2515 for more details.
2513
2516
2514 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2517 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2515 SystemExit exceptions in the script being run. Thanks to a report
2518 SystemExit exceptions in the script being run. Thanks to a report
2516 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2519 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2517 producing very annoying behavior when running unit tests.
2520 producing very annoying behavior when running unit tests.
2518
2521
2519 2005-05-12 Fernando Perez <fperez@colorado.edu>
2522 2005-05-12 Fernando Perez <fperez@colorado.edu>
2520
2523
2521 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2524 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2522 which I'd broken (again) due to a changed regexp. In the process,
2525 which I'd broken (again) due to a changed regexp. In the process,
2523 added ';' as an escape to auto-quote the whole line without
2526 added ';' as an escape to auto-quote the whole line without
2524 splitting its arguments. Thanks to a report by Jerry McRae
2527 splitting its arguments. Thanks to a report by Jerry McRae
2525 <qrs0xyc02-AT-sneakemail.com>.
2528 <qrs0xyc02-AT-sneakemail.com>.
2526
2529
2527 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2530 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2528 possible crashes caused by a TokenError. Reported by Ed Schofield
2531 possible crashes caused by a TokenError. Reported by Ed Schofield
2529 <schofield-AT-ftw.at>.
2532 <schofield-AT-ftw.at>.
2530
2533
2531 2005-05-06 Fernando Perez <fperez@colorado.edu>
2534 2005-05-06 Fernando Perez <fperez@colorado.edu>
2532
2535
2533 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2536 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2534
2537
2535 2005-04-29 Fernando Perez <fperez@colorado.edu>
2538 2005-04-29 Fernando Perez <fperez@colorado.edu>
2536
2539
2537 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2540 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2538 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2541 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2539 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2542 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2540 which provides support for Qt interactive usage (similar to the
2543 which provides support for Qt interactive usage (similar to the
2541 existing one for WX and GTK). This had been often requested.
2544 existing one for WX and GTK). This had been often requested.
2542
2545
2543 2005-04-14 *** Released version 0.6.13
2546 2005-04-14 *** Released version 0.6.13
2544
2547
2545 2005-04-08 Fernando Perez <fperez@colorado.edu>
2548 2005-04-08 Fernando Perez <fperez@colorado.edu>
2546
2549
2547 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2550 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2548 from _ofind, which gets called on almost every input line. Now,
2551 from _ofind, which gets called on almost every input line. Now,
2549 we only try to get docstrings if they are actually going to be
2552 we only try to get docstrings if they are actually going to be
2550 used (the overhead of fetching unnecessary docstrings can be
2553 used (the overhead of fetching unnecessary docstrings can be
2551 noticeable for certain objects, such as Pyro proxies).
2554 noticeable for certain objects, such as Pyro proxies).
2552
2555
2553 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2556 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2554 for completers. For some reason I had been passing them the state
2557 for completers. For some reason I had been passing them the state
2555 variable, which completers never actually need, and was in
2558 variable, which completers never actually need, and was in
2556 conflict with the rlcompleter API. Custom completers ONLY need to
2559 conflict with the rlcompleter API. Custom completers ONLY need to
2557 take the text parameter.
2560 take the text parameter.
2558
2561
2559 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2562 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2560 work correctly in pysh. I've also moved all the logic which used
2563 work correctly in pysh. I've also moved all the logic which used
2561 to be in pysh.py here, which will prevent problems with future
2564 to be in pysh.py here, which will prevent problems with future
2562 upgrades. However, this time I must warn users to update their
2565 upgrades. However, this time I must warn users to update their
2563 pysh profile to include the line
2566 pysh profile to include the line
2564
2567
2565 import_all IPython.Extensions.InterpreterExec
2568 import_all IPython.Extensions.InterpreterExec
2566
2569
2567 because otherwise things won't work for them. They MUST also
2570 because otherwise things won't work for them. They MUST also
2568 delete pysh.py and the line
2571 delete pysh.py and the line
2569
2572
2570 execfile pysh.py
2573 execfile pysh.py
2571
2574
2572 from their ipythonrc-pysh.
2575 from their ipythonrc-pysh.
2573
2576
2574 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2577 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2575 robust in the face of objects whose dir() returns non-strings
2578 robust in the face of objects whose dir() returns non-strings
2576 (which it shouldn't, but some broken libs like ITK do). Thanks to
2579 (which it shouldn't, but some broken libs like ITK do). Thanks to
2577 a patch by John Hunter (implemented differently, though). Also
2580 a patch by John Hunter (implemented differently, though). Also
2578 minor improvements by using .extend instead of + on lists.
2581 minor improvements by using .extend instead of + on lists.
2579
2582
2580 * pysh.py:
2583 * pysh.py:
2581
2584
2582 2005-04-06 Fernando Perez <fperez@colorado.edu>
2585 2005-04-06 Fernando Perez <fperez@colorado.edu>
2583
2586
2584 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2587 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2585 by default, so that all users benefit from it. Those who don't
2588 by default, so that all users benefit from it. Those who don't
2586 want it can still turn it off.
2589 want it can still turn it off.
2587
2590
2588 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2591 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2589 config file, I'd forgotten about this, so users were getting it
2592 config file, I'd forgotten about this, so users were getting it
2590 off by default.
2593 off by default.
2591
2594
2592 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2595 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2593 consistency. Now magics can be called in multiline statements,
2596 consistency. Now magics can be called in multiline statements,
2594 and python variables can be expanded in magic calls via $var.
2597 and python variables can be expanded in magic calls via $var.
2595 This makes the magic system behave just like aliases or !system
2598 This makes the magic system behave just like aliases or !system
2596 calls.
2599 calls.
2597
2600
2598 2005-03-28 Fernando Perez <fperez@colorado.edu>
2601 2005-03-28 Fernando Perez <fperez@colorado.edu>
2599
2602
2600 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2603 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2601 expensive string additions for building command. Add support for
2604 expensive string additions for building command. Add support for
2602 trailing ';' when autocall is used.
2605 trailing ';' when autocall is used.
2603
2606
2604 2005-03-26 Fernando Perez <fperez@colorado.edu>
2607 2005-03-26 Fernando Perez <fperez@colorado.edu>
2605
2608
2606 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2609 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2607 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2610 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2608 ipython.el robust against prompts with any number of spaces
2611 ipython.el robust against prompts with any number of spaces
2609 (including 0) after the ':' character.
2612 (including 0) after the ':' character.
2610
2613
2611 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2614 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2612 continuation prompt, which misled users to think the line was
2615 continuation prompt, which misled users to think the line was
2613 already indented. Closes debian Bug#300847, reported to me by
2616 already indented. Closes debian Bug#300847, reported to me by
2614 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2617 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2615
2618
2616 2005-03-23 Fernando Perez <fperez@colorado.edu>
2619 2005-03-23 Fernando Perez <fperez@colorado.edu>
2617
2620
2618 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2621 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2619 properly aligned if they have embedded newlines.
2622 properly aligned if they have embedded newlines.
2620
2623
2621 * IPython/iplib.py (runlines): Add a public method to expose
2624 * IPython/iplib.py (runlines): Add a public method to expose
2622 IPython's code execution machinery, so that users can run strings
2625 IPython's code execution machinery, so that users can run strings
2623 as if they had been typed at the prompt interactively.
2626 as if they had been typed at the prompt interactively.
2624 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2627 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2625 methods which can call the system shell, but with python variable
2628 methods which can call the system shell, but with python variable
2626 expansion. The three such methods are: __IPYTHON__.system,
2629 expansion. The three such methods are: __IPYTHON__.system,
2627 .getoutput and .getoutputerror. These need to be documented in a
2630 .getoutput and .getoutputerror. These need to be documented in a
2628 'public API' section (to be written) of the manual.
2631 'public API' section (to be written) of the manual.
2629
2632
2630 2005-03-20 Fernando Perez <fperez@colorado.edu>
2633 2005-03-20 Fernando Perez <fperez@colorado.edu>
2631
2634
2632 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2635 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2633 for custom exception handling. This is quite powerful, and it
2636 for custom exception handling. This is quite powerful, and it
2634 allows for user-installable exception handlers which can trap
2637 allows for user-installable exception handlers which can trap
2635 custom exceptions at runtime and treat them separately from
2638 custom exceptions at runtime and treat them separately from
2636 IPython's default mechanisms. At the request of Frédéric
2639 IPython's default mechanisms. At the request of Frédéric
2637 Mantegazza <mantegazza-AT-ill.fr>.
2640 Mantegazza <mantegazza-AT-ill.fr>.
2638 (InteractiveShell.set_custom_completer): public API function to
2641 (InteractiveShell.set_custom_completer): public API function to
2639 add new completers at runtime.
2642 add new completers at runtime.
2640
2643
2641 2005-03-19 Fernando Perez <fperez@colorado.edu>
2644 2005-03-19 Fernando Perez <fperez@colorado.edu>
2642
2645
2643 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2646 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2644 allow objects which provide their docstrings via non-standard
2647 allow objects which provide their docstrings via non-standard
2645 mechanisms (like Pyro proxies) to still be inspected by ipython's
2648 mechanisms (like Pyro proxies) to still be inspected by ipython's
2646 ? system.
2649 ? system.
2647
2650
2648 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2651 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2649 automatic capture system. I tried quite hard to make it work
2652 automatic capture system. I tried quite hard to make it work
2650 reliably, and simply failed. I tried many combinations with the
2653 reliably, and simply failed. I tried many combinations with the
2651 subprocess module, but eventually nothing worked in all needed
2654 subprocess module, but eventually nothing worked in all needed
2652 cases (not blocking stdin for the child, duplicating stdout
2655 cases (not blocking stdin for the child, duplicating stdout
2653 without blocking, etc). The new %sc/%sx still do capture to these
2656 without blocking, etc). The new %sc/%sx still do capture to these
2654 magical list/string objects which make shell use much more
2657 magical list/string objects which make shell use much more
2655 conveninent, so not all is lost.
2658 conveninent, so not all is lost.
2656
2659
2657 XXX - FIX MANUAL for the change above!
2660 XXX - FIX MANUAL for the change above!
2658
2661
2659 (runsource): I copied code.py's runsource() into ipython to modify
2662 (runsource): I copied code.py's runsource() into ipython to modify
2660 it a bit. Now the code object and source to be executed are
2663 it a bit. Now the code object and source to be executed are
2661 stored in ipython. This makes this info accessible to third-party
2664 stored in ipython. This makes this info accessible to third-party
2662 tools, like custom exception handlers. After a request by Frédéric
2665 tools, like custom exception handlers. After a request by Frédéric
2663 Mantegazza <mantegazza-AT-ill.fr>.
2666 Mantegazza <mantegazza-AT-ill.fr>.
2664
2667
2665 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2668 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2666 history-search via readline (like C-p/C-n). I'd wanted this for a
2669 history-search via readline (like C-p/C-n). I'd wanted this for a
2667 long time, but only recently found out how to do it. For users
2670 long time, but only recently found out how to do it. For users
2668 who already have their ipythonrc files made and want this, just
2671 who already have their ipythonrc files made and want this, just
2669 add:
2672 add:
2670
2673
2671 readline_parse_and_bind "\e[A": history-search-backward
2674 readline_parse_and_bind "\e[A": history-search-backward
2672 readline_parse_and_bind "\e[B": history-search-forward
2675 readline_parse_and_bind "\e[B": history-search-forward
2673
2676
2674 2005-03-18 Fernando Perez <fperez@colorado.edu>
2677 2005-03-18 Fernando Perez <fperez@colorado.edu>
2675
2678
2676 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2679 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2677 LSString and SList classes which allow transparent conversions
2680 LSString and SList classes which allow transparent conversions
2678 between list mode and whitespace-separated string.
2681 between list mode and whitespace-separated string.
2679 (magic_r): Fix recursion problem in %r.
2682 (magic_r): Fix recursion problem in %r.
2680
2683
2681 * IPython/genutils.py (LSString): New class to be used for
2684 * IPython/genutils.py (LSString): New class to be used for
2682 automatic storage of the results of all alias/system calls in _o
2685 automatic storage of the results of all alias/system calls in _o
2683 and _e (stdout/err). These provide a .l/.list attribute which
2686 and _e (stdout/err). These provide a .l/.list attribute which
2684 does automatic splitting on newlines. This means that for most
2687 does automatic splitting on newlines. This means that for most
2685 uses, you'll never need to do capturing of output with %sc/%sx
2688 uses, you'll never need to do capturing of output with %sc/%sx
2686 anymore, since ipython keeps this always done for you. Note that
2689 anymore, since ipython keeps this always done for you. Note that
2687 only the LAST results are stored, the _o/e variables are
2690 only the LAST results are stored, the _o/e variables are
2688 overwritten on each call. If you need to save their contents
2691 overwritten on each call. If you need to save their contents
2689 further, simply bind them to any other name.
2692 further, simply bind them to any other name.
2690
2693
2691 2005-03-17 Fernando Perez <fperez@colorado.edu>
2694 2005-03-17 Fernando Perez <fperez@colorado.edu>
2692
2695
2693 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2696 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2694 prompt namespace handling.
2697 prompt namespace handling.
2695
2698
2696 2005-03-16 Fernando Perez <fperez@colorado.edu>
2699 2005-03-16 Fernando Perez <fperez@colorado.edu>
2697
2700
2698 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2701 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2699 classic prompts to be '>>> ' (final space was missing, and it
2702 classic prompts to be '>>> ' (final space was missing, and it
2700 trips the emacs python mode).
2703 trips the emacs python mode).
2701 (BasePrompt.__str__): Added safe support for dynamic prompt
2704 (BasePrompt.__str__): Added safe support for dynamic prompt
2702 strings. Now you can set your prompt string to be '$x', and the
2705 strings. Now you can set your prompt string to be '$x', and the
2703 value of x will be printed from your interactive namespace. The
2706 value of x will be printed from your interactive namespace. The
2704 interpolation syntax includes the full Itpl support, so
2707 interpolation syntax includes the full Itpl support, so
2705 ${foo()+x+bar()} is a valid prompt string now, and the function
2708 ${foo()+x+bar()} is a valid prompt string now, and the function
2706 calls will be made at runtime.
2709 calls will be made at runtime.
2707
2710
2708 2005-03-15 Fernando Perez <fperez@colorado.edu>
2711 2005-03-15 Fernando Perez <fperez@colorado.edu>
2709
2712
2710 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2713 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2711 avoid name clashes in pylab. %hist still works, it just forwards
2714 avoid name clashes in pylab. %hist still works, it just forwards
2712 the call to %history.
2715 the call to %history.
2713
2716
2714 2005-03-02 *** Released version 0.6.12
2717 2005-03-02 *** Released version 0.6.12
2715
2718
2716 2005-03-02 Fernando Perez <fperez@colorado.edu>
2719 2005-03-02 Fernando Perez <fperez@colorado.edu>
2717
2720
2718 * IPython/iplib.py (handle_magic): log magic calls properly as
2721 * IPython/iplib.py (handle_magic): log magic calls properly as
2719 ipmagic() function calls.
2722 ipmagic() function calls.
2720
2723
2721 * IPython/Magic.py (magic_time): Improved %time to support
2724 * IPython/Magic.py (magic_time): Improved %time to support
2722 statements and provide wall-clock as well as CPU time.
2725 statements and provide wall-clock as well as CPU time.
2723
2726
2724 2005-02-27 Fernando Perez <fperez@colorado.edu>
2727 2005-02-27 Fernando Perez <fperez@colorado.edu>
2725
2728
2726 * IPython/hooks.py: New hooks module, to expose user-modifiable
2729 * IPython/hooks.py: New hooks module, to expose user-modifiable
2727 IPython functionality in a clean manner. For now only the editor
2730 IPython functionality in a clean manner. For now only the editor
2728 hook is actually written, and other thigns which I intend to turn
2731 hook is actually written, and other thigns which I intend to turn
2729 into proper hooks aren't yet there. The display and prefilter
2732 into proper hooks aren't yet there. The display and prefilter
2730 stuff, for example, should be hooks. But at least now the
2733 stuff, for example, should be hooks. But at least now the
2731 framework is in place, and the rest can be moved here with more
2734 framework is in place, and the rest can be moved here with more
2732 time later. IPython had had a .hooks variable for a long time for
2735 time later. IPython had had a .hooks variable for a long time for
2733 this purpose, but I'd never actually used it for anything.
2736 this purpose, but I'd never actually used it for anything.
2734
2737
2735 2005-02-26 Fernando Perez <fperez@colorado.edu>
2738 2005-02-26 Fernando Perez <fperez@colorado.edu>
2736
2739
2737 * IPython/ipmaker.py (make_IPython): make the default ipython
2740 * IPython/ipmaker.py (make_IPython): make the default ipython
2738 directory be called _ipython under win32, to follow more the
2741 directory be called _ipython under win32, to follow more the
2739 naming peculiarities of that platform (where buggy software like
2742 naming peculiarities of that platform (where buggy software like
2740 Visual Sourcesafe breaks with .named directories). Reported by
2743 Visual Sourcesafe breaks with .named directories). Reported by
2741 Ville Vainio.
2744 Ville Vainio.
2742
2745
2743 2005-02-23 Fernando Perez <fperez@colorado.edu>
2746 2005-02-23 Fernando Perez <fperez@colorado.edu>
2744
2747
2745 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2748 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2746 auto_aliases for win32 which were causing problems. Users can
2749 auto_aliases for win32 which were causing problems. Users can
2747 define the ones they personally like.
2750 define the ones they personally like.
2748
2751
2749 2005-02-21 Fernando Perez <fperez@colorado.edu>
2752 2005-02-21 Fernando Perez <fperez@colorado.edu>
2750
2753
2751 * IPython/Magic.py (magic_time): new magic to time execution of
2754 * IPython/Magic.py (magic_time): new magic to time execution of
2752 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2755 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2753
2756
2754 2005-02-19 Fernando Perez <fperez@colorado.edu>
2757 2005-02-19 Fernando Perez <fperez@colorado.edu>
2755
2758
2756 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2759 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2757 into keys (for prompts, for example).
2760 into keys (for prompts, for example).
2758
2761
2759 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2762 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2760 prompts in case users want them. This introduces a small behavior
2763 prompts in case users want them. This introduces a small behavior
2761 change: ipython does not automatically add a space to all prompts
2764 change: ipython does not automatically add a space to all prompts
2762 anymore. To get the old prompts with a space, users should add it
2765 anymore. To get the old prompts with a space, users should add it
2763 manually to their ipythonrc file, so for example prompt_in1 should
2766 manually to their ipythonrc file, so for example prompt_in1 should
2764 now read 'In [\#]: ' instead of 'In [\#]:'.
2767 now read 'In [\#]: ' instead of 'In [\#]:'.
2765 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2768 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2766 file) to control left-padding of secondary prompts.
2769 file) to control left-padding of secondary prompts.
2767
2770
2768 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2771 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2769 the profiler can't be imported. Fix for Debian, which removed
2772 the profiler can't be imported. Fix for Debian, which removed
2770 profile.py because of License issues. I applied a slightly
2773 profile.py because of License issues. I applied a slightly
2771 modified version of the original Debian patch at
2774 modified version of the original Debian patch at
2772 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2775 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2773
2776
2774 2005-02-17 Fernando Perez <fperez@colorado.edu>
2777 2005-02-17 Fernando Perez <fperez@colorado.edu>
2775
2778
2776 * IPython/genutils.py (native_line_ends): Fix bug which would
2779 * IPython/genutils.py (native_line_ends): Fix bug which would
2777 cause improper line-ends under win32 b/c I was not opening files
2780 cause improper line-ends under win32 b/c I was not opening files
2778 in binary mode. Bug report and fix thanks to Ville.
2781 in binary mode. Bug report and fix thanks to Ville.
2779
2782
2780 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2783 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2781 trying to catch spurious foo[1] autocalls. My fix actually broke
2784 trying to catch spurious foo[1] autocalls. My fix actually broke
2782 ',/' autoquote/call with explicit escape (bad regexp).
2785 ',/' autoquote/call with explicit escape (bad regexp).
2783
2786
2784 2005-02-15 *** Released version 0.6.11
2787 2005-02-15 *** Released version 0.6.11
2785
2788
2786 2005-02-14 Fernando Perez <fperez@colorado.edu>
2789 2005-02-14 Fernando Perez <fperez@colorado.edu>
2787
2790
2788 * IPython/background_jobs.py: New background job management
2791 * IPython/background_jobs.py: New background job management
2789 subsystem. This is implemented via a new set of classes, and
2792 subsystem. This is implemented via a new set of classes, and
2790 IPython now provides a builtin 'jobs' object for background job
2793 IPython now provides a builtin 'jobs' object for background job
2791 execution. A convenience %bg magic serves as a lightweight
2794 execution. A convenience %bg magic serves as a lightweight
2792 frontend for starting the more common type of calls. This was
2795 frontend for starting the more common type of calls. This was
2793 inspired by discussions with B. Granger and the BackgroundCommand
2796 inspired by discussions with B. Granger and the BackgroundCommand
2794 class described in the book Python Scripting for Computational
2797 class described in the book Python Scripting for Computational
2795 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2798 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2796 (although ultimately no code from this text was used, as IPython's
2799 (although ultimately no code from this text was used, as IPython's
2797 system is a separate implementation).
2800 system is a separate implementation).
2798
2801
2799 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2802 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2800 to control the completion of single/double underscore names
2803 to control the completion of single/double underscore names
2801 separately. As documented in the example ipytonrc file, the
2804 separately. As documented in the example ipytonrc file, the
2802 readline_omit__names variable can now be set to 2, to omit even
2805 readline_omit__names variable can now be set to 2, to omit even
2803 single underscore names. Thanks to a patch by Brian Wong
2806 single underscore names. Thanks to a patch by Brian Wong
2804 <BrianWong-AT-AirgoNetworks.Com>.
2807 <BrianWong-AT-AirgoNetworks.Com>.
2805 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2808 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2806 be autocalled as foo([1]) if foo were callable. A problem for
2809 be autocalled as foo([1]) if foo were callable. A problem for
2807 things which are both callable and implement __getitem__.
2810 things which are both callable and implement __getitem__.
2808 (init_readline): Fix autoindentation for win32. Thanks to a patch
2811 (init_readline): Fix autoindentation for win32. Thanks to a patch
2809 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2812 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2810
2813
2811 2005-02-12 Fernando Perez <fperez@colorado.edu>
2814 2005-02-12 Fernando Perez <fperez@colorado.edu>
2812
2815
2813 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2816 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2814 which I had written long ago to sort out user error messages which
2817 which I had written long ago to sort out user error messages which
2815 may occur during startup. This seemed like a good idea initially,
2818 may occur during startup. This seemed like a good idea initially,
2816 but it has proven a disaster in retrospect. I don't want to
2819 but it has proven a disaster in retrospect. I don't want to
2817 change much code for now, so my fix is to set the internal 'debug'
2820 change much code for now, so my fix is to set the internal 'debug'
2818 flag to true everywhere, whose only job was precisely to control
2821 flag to true everywhere, whose only job was precisely to control
2819 this subsystem. This closes issue 28 (as well as avoiding all
2822 this subsystem. This closes issue 28 (as well as avoiding all
2820 sorts of strange hangups which occur from time to time).
2823 sorts of strange hangups which occur from time to time).
2821
2824
2822 2005-02-07 Fernando Perez <fperez@colorado.edu>
2825 2005-02-07 Fernando Perez <fperez@colorado.edu>
2823
2826
2824 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2827 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2825 previous call produced a syntax error.
2828 previous call produced a syntax error.
2826
2829
2827 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2830 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2828 classes without constructor.
2831 classes without constructor.
2829
2832
2830 2005-02-06 Fernando Perez <fperez@colorado.edu>
2833 2005-02-06 Fernando Perez <fperez@colorado.edu>
2831
2834
2832 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2835 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2833 completions with the results of each matcher, so we return results
2836 completions with the results of each matcher, so we return results
2834 to the user from all namespaces. This breaks with ipython
2837 to the user from all namespaces. This breaks with ipython
2835 tradition, but I think it's a nicer behavior. Now you get all
2838 tradition, but I think it's a nicer behavior. Now you get all
2836 possible completions listed, from all possible namespaces (python,
2839 possible completions listed, from all possible namespaces (python,
2837 filesystem, magics...) After a request by John Hunter
2840 filesystem, magics...) After a request by John Hunter
2838 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2841 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2839
2842
2840 2005-02-05 Fernando Perez <fperez@colorado.edu>
2843 2005-02-05 Fernando Perez <fperez@colorado.edu>
2841
2844
2842 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2845 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2843 the call had quote characters in it (the quotes were stripped).
2846 the call had quote characters in it (the quotes were stripped).
2844
2847
2845 2005-01-31 Fernando Perez <fperez@colorado.edu>
2848 2005-01-31 Fernando Perez <fperez@colorado.edu>
2846
2849
2847 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2850 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2848 Itpl.itpl() to make the code more robust against psyco
2851 Itpl.itpl() to make the code more robust against psyco
2849 optimizations.
2852 optimizations.
2850
2853
2851 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2854 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2852 of causing an exception. Quicker, cleaner.
2855 of causing an exception. Quicker, cleaner.
2853
2856
2854 2005-01-28 Fernando Perez <fperez@colorado.edu>
2857 2005-01-28 Fernando Perez <fperez@colorado.edu>
2855
2858
2856 * scripts/ipython_win_post_install.py (install): hardcode
2859 * scripts/ipython_win_post_install.py (install): hardcode
2857 sys.prefix+'python.exe' as the executable path. It turns out that
2860 sys.prefix+'python.exe' as the executable path. It turns out that
2858 during the post-installation run, sys.executable resolves to the
2861 during the post-installation run, sys.executable resolves to the
2859 name of the binary installer! I should report this as a distutils
2862 name of the binary installer! I should report this as a distutils
2860 bug, I think. I updated the .10 release with this tiny fix, to
2863 bug, I think. I updated the .10 release with this tiny fix, to
2861 avoid annoying the lists further.
2864 avoid annoying the lists further.
2862
2865
2863 2005-01-27 *** Released version 0.6.10
2866 2005-01-27 *** Released version 0.6.10
2864
2867
2865 2005-01-27 Fernando Perez <fperez@colorado.edu>
2868 2005-01-27 Fernando Perez <fperez@colorado.edu>
2866
2869
2867 * IPython/numutils.py (norm): Added 'inf' as optional name for
2870 * IPython/numutils.py (norm): Added 'inf' as optional name for
2868 L-infinity norm, included references to mathworld.com for vector
2871 L-infinity norm, included references to mathworld.com for vector
2869 norm definitions.
2872 norm definitions.
2870 (amin/amax): added amin/amax for array min/max. Similar to what
2873 (amin/amax): added amin/amax for array min/max. Similar to what
2871 pylab ships with after the recent reorganization of names.
2874 pylab ships with after the recent reorganization of names.
2872 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2875 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2873
2876
2874 * ipython.el: committed Alex's recent fixes and improvements.
2877 * ipython.el: committed Alex's recent fixes and improvements.
2875 Tested with python-mode from CVS, and it looks excellent. Since
2878 Tested with python-mode from CVS, and it looks excellent. Since
2876 python-mode hasn't released anything in a while, I'm temporarily
2879 python-mode hasn't released anything in a while, I'm temporarily
2877 putting a copy of today's CVS (v 4.70) of python-mode in:
2880 putting a copy of today's CVS (v 4.70) of python-mode in:
2878 http://ipython.scipy.org/tmp/python-mode.el
2881 http://ipython.scipy.org/tmp/python-mode.el
2879
2882
2880 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2883 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2881 sys.executable for the executable name, instead of assuming it's
2884 sys.executable for the executable name, instead of assuming it's
2882 called 'python.exe' (the post-installer would have produced broken
2885 called 'python.exe' (the post-installer would have produced broken
2883 setups on systems with a differently named python binary).
2886 setups on systems with a differently named python binary).
2884
2887
2885 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2888 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2886 references to os.linesep, to make the code more
2889 references to os.linesep, to make the code more
2887 platform-independent. This is also part of the win32 coloring
2890 platform-independent. This is also part of the win32 coloring
2888 fixes.
2891 fixes.
2889
2892
2890 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2893 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2891 lines, which actually cause coloring bugs because the length of
2894 lines, which actually cause coloring bugs because the length of
2892 the line is very difficult to correctly compute with embedded
2895 the line is very difficult to correctly compute with embedded
2893 escapes. This was the source of all the coloring problems under
2896 escapes. This was the source of all the coloring problems under
2894 Win32. I think that _finally_, Win32 users have a properly
2897 Win32. I think that _finally_, Win32 users have a properly
2895 working ipython in all respects. This would never have happened
2898 working ipython in all respects. This would never have happened
2896 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2899 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2897
2900
2898 2005-01-26 *** Released version 0.6.9
2901 2005-01-26 *** Released version 0.6.9
2899
2902
2900 2005-01-25 Fernando Perez <fperez@colorado.edu>
2903 2005-01-25 Fernando Perez <fperez@colorado.edu>
2901
2904
2902 * setup.py: finally, we have a true Windows installer, thanks to
2905 * setup.py: finally, we have a true Windows installer, thanks to
2903 the excellent work of Viktor Ransmayr
2906 the excellent work of Viktor Ransmayr
2904 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2907 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2905 Windows users. The setup routine is quite a bit cleaner thanks to
2908 Windows users. The setup routine is quite a bit cleaner thanks to
2906 this, and the post-install script uses the proper functions to
2909 this, and the post-install script uses the proper functions to
2907 allow a clean de-installation using the standard Windows Control
2910 allow a clean de-installation using the standard Windows Control
2908 Panel.
2911 Panel.
2909
2912
2910 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2913 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2911 environment variable under all OSes (including win32) if
2914 environment variable under all OSes (including win32) if
2912 available. This will give consistency to win32 users who have set
2915 available. This will give consistency to win32 users who have set
2913 this variable for any reason. If os.environ['HOME'] fails, the
2916 this variable for any reason. If os.environ['HOME'] fails, the
2914 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2917 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2915
2918
2916 2005-01-24 Fernando Perez <fperez@colorado.edu>
2919 2005-01-24 Fernando Perez <fperez@colorado.edu>
2917
2920
2918 * IPython/numutils.py (empty_like): add empty_like(), similar to
2921 * IPython/numutils.py (empty_like): add empty_like(), similar to
2919 zeros_like() but taking advantage of the new empty() Numeric routine.
2922 zeros_like() but taking advantage of the new empty() Numeric routine.
2920
2923
2921 2005-01-23 *** Released version 0.6.8
2924 2005-01-23 *** Released version 0.6.8
2922
2925
2923 2005-01-22 Fernando Perez <fperez@colorado.edu>
2926 2005-01-22 Fernando Perez <fperez@colorado.edu>
2924
2927
2925 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2928 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2926 automatic show() calls. After discussing things with JDH, it
2929 automatic show() calls. After discussing things with JDH, it
2927 turns out there are too many corner cases where this can go wrong.
2930 turns out there are too many corner cases where this can go wrong.
2928 It's best not to try to be 'too smart', and simply have ipython
2931 It's best not to try to be 'too smart', and simply have ipython
2929 reproduce as much as possible the default behavior of a normal
2932 reproduce as much as possible the default behavior of a normal
2930 python shell.
2933 python shell.
2931
2934
2932 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2935 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2933 line-splitting regexp and _prefilter() to avoid calling getattr()
2936 line-splitting regexp and _prefilter() to avoid calling getattr()
2934 on assignments. This closes
2937 on assignments. This closes
2935 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2938 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2936 readline uses getattr(), so a simple <TAB> keypress is still
2939 readline uses getattr(), so a simple <TAB> keypress is still
2937 enough to trigger getattr() calls on an object.
2940 enough to trigger getattr() calls on an object.
2938
2941
2939 2005-01-21 Fernando Perez <fperez@colorado.edu>
2942 2005-01-21 Fernando Perez <fperez@colorado.edu>
2940
2943
2941 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2944 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2942 docstring under pylab so it doesn't mask the original.
2945 docstring under pylab so it doesn't mask the original.
2943
2946
2944 2005-01-21 *** Released version 0.6.7
2947 2005-01-21 *** Released version 0.6.7
2945
2948
2946 2005-01-21 Fernando Perez <fperez@colorado.edu>
2949 2005-01-21 Fernando Perez <fperez@colorado.edu>
2947
2950
2948 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2951 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2949 signal handling for win32 users in multithreaded mode.
2952 signal handling for win32 users in multithreaded mode.
2950
2953
2951 2005-01-17 Fernando Perez <fperez@colorado.edu>
2954 2005-01-17 Fernando Perez <fperez@colorado.edu>
2952
2955
2953 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2956 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2954 instances with no __init__. After a crash report by Norbert Nemec
2957 instances with no __init__. After a crash report by Norbert Nemec
2955 <Norbert-AT-nemec-online.de>.
2958 <Norbert-AT-nemec-online.de>.
2956
2959
2957 2005-01-14 Fernando Perez <fperez@colorado.edu>
2960 2005-01-14 Fernando Perez <fperez@colorado.edu>
2958
2961
2959 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2962 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2960 names for verbose exceptions, when multiple dotted names and the
2963 names for verbose exceptions, when multiple dotted names and the
2961 'parent' object were present on the same line.
2964 'parent' object were present on the same line.
2962
2965
2963 2005-01-11 Fernando Perez <fperez@colorado.edu>
2966 2005-01-11 Fernando Perez <fperez@colorado.edu>
2964
2967
2965 * IPython/genutils.py (flag_calls): new utility to trap and flag
2968 * IPython/genutils.py (flag_calls): new utility to trap and flag
2966 calls in functions. I need it to clean up matplotlib support.
2969 calls in functions. I need it to clean up matplotlib support.
2967 Also removed some deprecated code in genutils.
2970 Also removed some deprecated code in genutils.
2968
2971
2969 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2972 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2970 that matplotlib scripts called with %run, which don't call show()
2973 that matplotlib scripts called with %run, which don't call show()
2971 themselves, still have their plotting windows open.
2974 themselves, still have their plotting windows open.
2972
2975
2973 2005-01-05 Fernando Perez <fperez@colorado.edu>
2976 2005-01-05 Fernando Perez <fperez@colorado.edu>
2974
2977
2975 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2978 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2976 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2979 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2977
2980
2978 2004-12-19 Fernando Perez <fperez@colorado.edu>
2981 2004-12-19 Fernando Perez <fperez@colorado.edu>
2979
2982
2980 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2983 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2981 parent_runcode, which was an eyesore. The same result can be
2984 parent_runcode, which was an eyesore. The same result can be
2982 obtained with Python's regular superclass mechanisms.
2985 obtained with Python's regular superclass mechanisms.
2983
2986
2984 2004-12-17 Fernando Perez <fperez@colorado.edu>
2987 2004-12-17 Fernando Perez <fperez@colorado.edu>
2985
2988
2986 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2989 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2987 reported by Prabhu.
2990 reported by Prabhu.
2988 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2991 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2989 sys.stderr) instead of explicitly calling sys.stderr. This helps
2992 sys.stderr) instead of explicitly calling sys.stderr. This helps
2990 maintain our I/O abstractions clean, for future GUI embeddings.
2993 maintain our I/O abstractions clean, for future GUI embeddings.
2991
2994
2992 * IPython/genutils.py (info): added new utility for sys.stderr
2995 * IPython/genutils.py (info): added new utility for sys.stderr
2993 unified info message handling (thin wrapper around warn()).
2996 unified info message handling (thin wrapper around warn()).
2994
2997
2995 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2998 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2996 composite (dotted) names on verbose exceptions.
2999 composite (dotted) names on verbose exceptions.
2997 (VerboseTB.nullrepr): harden against another kind of errors which
3000 (VerboseTB.nullrepr): harden against another kind of errors which
2998 Python's inspect module can trigger, and which were crashing
3001 Python's inspect module can trigger, and which were crashing
2999 IPython. Thanks to a report by Marco Lombardi
3002 IPython. Thanks to a report by Marco Lombardi
3000 <mlombard-AT-ma010192.hq.eso.org>.
3003 <mlombard-AT-ma010192.hq.eso.org>.
3001
3004
3002 2004-12-13 *** Released version 0.6.6
3005 2004-12-13 *** Released version 0.6.6
3003
3006
3004 2004-12-12 Fernando Perez <fperez@colorado.edu>
3007 2004-12-12 Fernando Perez <fperez@colorado.edu>
3005
3008
3006 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3009 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3007 generated by pygtk upon initialization if it was built without
3010 generated by pygtk upon initialization if it was built without
3008 threads (for matplotlib users). After a crash reported by
3011 threads (for matplotlib users). After a crash reported by
3009 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3012 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3010
3013
3011 * IPython/ipmaker.py (make_IPython): fix small bug in the
3014 * IPython/ipmaker.py (make_IPython): fix small bug in the
3012 import_some parameter for multiple imports.
3015 import_some parameter for multiple imports.
3013
3016
3014 * IPython/iplib.py (ipmagic): simplified the interface of
3017 * IPython/iplib.py (ipmagic): simplified the interface of
3015 ipmagic() to take a single string argument, just as it would be
3018 ipmagic() to take a single string argument, just as it would be
3016 typed at the IPython cmd line.
3019 typed at the IPython cmd line.
3017 (ipalias): Added new ipalias() with an interface identical to
3020 (ipalias): Added new ipalias() with an interface identical to
3018 ipmagic(). This completes exposing a pure python interface to the
3021 ipmagic(). This completes exposing a pure python interface to the
3019 alias and magic system, which can be used in loops or more complex
3022 alias and magic system, which can be used in loops or more complex
3020 code where IPython's automatic line mangling is not active.
3023 code where IPython's automatic line mangling is not active.
3021
3024
3022 * IPython/genutils.py (timing): changed interface of timing to
3025 * IPython/genutils.py (timing): changed interface of timing to
3023 simply run code once, which is the most common case. timings()
3026 simply run code once, which is the most common case. timings()
3024 remains unchanged, for the cases where you want multiple runs.
3027 remains unchanged, for the cases where you want multiple runs.
3025
3028
3026 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3029 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3027 bug where Python2.2 crashes with exec'ing code which does not end
3030 bug where Python2.2 crashes with exec'ing code which does not end
3028 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3031 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3029 before.
3032 before.
3030
3033
3031 2004-12-10 Fernando Perez <fperez@colorado.edu>
3034 2004-12-10 Fernando Perez <fperez@colorado.edu>
3032
3035
3033 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3036 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3034 -t to -T, to accomodate the new -t flag in %run (the %run and
3037 -t to -T, to accomodate the new -t flag in %run (the %run and
3035 %prun options are kind of intermixed, and it's not easy to change
3038 %prun options are kind of intermixed, and it's not easy to change
3036 this with the limitations of python's getopt).
3039 this with the limitations of python's getopt).
3037
3040
3038 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3041 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3039 the execution of scripts. It's not as fine-tuned as timeit.py,
3042 the execution of scripts. It's not as fine-tuned as timeit.py,
3040 but it works from inside ipython (and under 2.2, which lacks
3043 but it works from inside ipython (and under 2.2, which lacks
3041 timeit.py). Optionally a number of runs > 1 can be given for
3044 timeit.py). Optionally a number of runs > 1 can be given for
3042 timing very short-running code.
3045 timing very short-running code.
3043
3046
3044 * IPython/genutils.py (uniq_stable): new routine which returns a
3047 * IPython/genutils.py (uniq_stable): new routine which returns a
3045 list of unique elements in any iterable, but in stable order of
3048 list of unique elements in any iterable, but in stable order of
3046 appearance. I needed this for the ultraTB fixes, and it's a handy
3049 appearance. I needed this for the ultraTB fixes, and it's a handy
3047 utility.
3050 utility.
3048
3051
3049 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3052 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3050 dotted names in Verbose exceptions. This had been broken since
3053 dotted names in Verbose exceptions. This had been broken since
3051 the very start, now x.y will properly be printed in a Verbose
3054 the very start, now x.y will properly be printed in a Verbose
3052 traceback, instead of x being shown and y appearing always as an
3055 traceback, instead of x being shown and y appearing always as an
3053 'undefined global'. Getting this to work was a bit tricky,
3056 'undefined global'. Getting this to work was a bit tricky,
3054 because by default python tokenizers are stateless. Saved by
3057 because by default python tokenizers are stateless. Saved by
3055 python's ability to easily add a bit of state to an arbitrary
3058 python's ability to easily add a bit of state to an arbitrary
3056 function (without needing to build a full-blown callable object).
3059 function (without needing to build a full-blown callable object).
3057
3060
3058 Also big cleanup of this code, which had horrendous runtime
3061 Also big cleanup of this code, which had horrendous runtime
3059 lookups of zillions of attributes for colorization. Moved all
3062 lookups of zillions of attributes for colorization. Moved all
3060 this code into a few templates, which make it cleaner and quicker.
3063 this code into a few templates, which make it cleaner and quicker.
3061
3064
3062 Printout quality was also improved for Verbose exceptions: one
3065 Printout quality was also improved for Verbose exceptions: one
3063 variable per line, and memory addresses are printed (this can be
3066 variable per line, and memory addresses are printed (this can be
3064 quite handy in nasty debugging situations, which is what Verbose
3067 quite handy in nasty debugging situations, which is what Verbose
3065 is for).
3068 is for).
3066
3069
3067 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3070 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3068 the command line as scripts to be loaded by embedded instances.
3071 the command line as scripts to be loaded by embedded instances.
3069 Doing so has the potential for an infinite recursion if there are
3072 Doing so has the potential for an infinite recursion if there are
3070 exceptions thrown in the process. This fixes a strange crash
3073 exceptions thrown in the process. This fixes a strange crash
3071 reported by Philippe MULLER <muller-AT-irit.fr>.
3074 reported by Philippe MULLER <muller-AT-irit.fr>.
3072
3075
3073 2004-12-09 Fernando Perez <fperez@colorado.edu>
3076 2004-12-09 Fernando Perez <fperez@colorado.edu>
3074
3077
3075 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3078 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3076 to reflect new names in matplotlib, which now expose the
3079 to reflect new names in matplotlib, which now expose the
3077 matlab-compatible interface via a pylab module instead of the
3080 matlab-compatible interface via a pylab module instead of the
3078 'matlab' name. The new code is backwards compatible, so users of
3081 'matlab' name. The new code is backwards compatible, so users of
3079 all matplotlib versions are OK. Patch by J. Hunter.
3082 all matplotlib versions are OK. Patch by J. Hunter.
3080
3083
3081 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3084 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3082 of __init__ docstrings for instances (class docstrings are already
3085 of __init__ docstrings for instances (class docstrings are already
3083 automatically printed). Instances with customized docstrings
3086 automatically printed). Instances with customized docstrings
3084 (indep. of the class) are also recognized and all 3 separate
3087 (indep. of the class) are also recognized and all 3 separate
3085 docstrings are printed (instance, class, constructor). After some
3088 docstrings are printed (instance, class, constructor). After some
3086 comments/suggestions by J. Hunter.
3089 comments/suggestions by J. Hunter.
3087
3090
3088 2004-12-05 Fernando Perez <fperez@colorado.edu>
3091 2004-12-05 Fernando Perez <fperez@colorado.edu>
3089
3092
3090 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3093 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3091 warnings when tab-completion fails and triggers an exception.
3094 warnings when tab-completion fails and triggers an exception.
3092
3095
3093 2004-12-03 Fernando Perez <fperez@colorado.edu>
3096 2004-12-03 Fernando Perez <fperez@colorado.edu>
3094
3097
3095 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3098 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3096 be triggered when using 'run -p'. An incorrect option flag was
3099 be triggered when using 'run -p'. An incorrect option flag was
3097 being set ('d' instead of 'D').
3100 being set ('d' instead of 'D').
3098 (manpage): fix missing escaped \- sign.
3101 (manpage): fix missing escaped \- sign.
3099
3102
3100 2004-11-30 *** Released version 0.6.5
3103 2004-11-30 *** Released version 0.6.5
3101
3104
3102 2004-11-30 Fernando Perez <fperez@colorado.edu>
3105 2004-11-30 Fernando Perez <fperez@colorado.edu>
3103
3106
3104 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3107 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3105 setting with -d option.
3108 setting with -d option.
3106
3109
3107 * setup.py (docfiles): Fix problem where the doc glob I was using
3110 * setup.py (docfiles): Fix problem where the doc glob I was using
3108 was COMPLETELY BROKEN. It was giving the right files by pure
3111 was COMPLETELY BROKEN. It was giving the right files by pure
3109 accident, but failed once I tried to include ipython.el. Note:
3112 accident, but failed once I tried to include ipython.el. Note:
3110 glob() does NOT allow you to do exclusion on multiple endings!
3113 glob() does NOT allow you to do exclusion on multiple endings!
3111
3114
3112 2004-11-29 Fernando Perez <fperez@colorado.edu>
3115 2004-11-29 Fernando Perez <fperez@colorado.edu>
3113
3116
3114 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3117 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3115 the manpage as the source. Better formatting & consistency.
3118 the manpage as the source. Better formatting & consistency.
3116
3119
3117 * IPython/Magic.py (magic_run): Added new -d option, to run
3120 * IPython/Magic.py (magic_run): Added new -d option, to run
3118 scripts under the control of the python pdb debugger. Note that
3121 scripts under the control of the python pdb debugger. Note that
3119 this required changing the %prun option -d to -D, to avoid a clash
3122 this required changing the %prun option -d to -D, to avoid a clash
3120 (since %run must pass options to %prun, and getopt is too dumb to
3123 (since %run must pass options to %prun, and getopt is too dumb to
3121 handle options with string values with embedded spaces). Thanks
3124 handle options with string values with embedded spaces). Thanks
3122 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3125 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3123 (magic_who_ls): added type matching to %who and %whos, so that one
3126 (magic_who_ls): added type matching to %who and %whos, so that one
3124 can filter their output to only include variables of certain
3127 can filter their output to only include variables of certain
3125 types. Another suggestion by Matthew.
3128 types. Another suggestion by Matthew.
3126 (magic_whos): Added memory summaries in kb and Mb for arrays.
3129 (magic_whos): Added memory summaries in kb and Mb for arrays.
3127 (magic_who): Improve formatting (break lines every 9 vars).
3130 (magic_who): Improve formatting (break lines every 9 vars).
3128
3131
3129 2004-11-28 Fernando Perez <fperez@colorado.edu>
3132 2004-11-28 Fernando Perez <fperez@colorado.edu>
3130
3133
3131 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3134 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3132 cache when empty lines were present.
3135 cache when empty lines were present.
3133
3136
3134 2004-11-24 Fernando Perez <fperez@colorado.edu>
3137 2004-11-24 Fernando Perez <fperez@colorado.edu>
3135
3138
3136 * IPython/usage.py (__doc__): document the re-activated threading
3139 * IPython/usage.py (__doc__): document the re-activated threading
3137 options for WX and GTK.
3140 options for WX and GTK.
3138
3141
3139 2004-11-23 Fernando Perez <fperez@colorado.edu>
3142 2004-11-23 Fernando Perez <fperez@colorado.edu>
3140
3143
3141 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3144 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3142 the -wthread and -gthread options, along with a new -tk one to try
3145 the -wthread and -gthread options, along with a new -tk one to try
3143 and coordinate Tk threading with wx/gtk. The tk support is very
3146 and coordinate Tk threading with wx/gtk. The tk support is very
3144 platform dependent, since it seems to require Tcl and Tk to be
3147 platform dependent, since it seems to require Tcl and Tk to be
3145 built with threads (Fedora1/2 appears NOT to have it, but in
3148 built with threads (Fedora1/2 appears NOT to have it, but in
3146 Prabhu's Debian boxes it works OK). But even with some Tk
3149 Prabhu's Debian boxes it works OK). But even with some Tk
3147 limitations, this is a great improvement.
3150 limitations, this is a great improvement.
3148
3151
3149 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3152 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3150 info in user prompts. Patch by Prabhu.
3153 info in user prompts. Patch by Prabhu.
3151
3154
3152 2004-11-18 Fernando Perez <fperez@colorado.edu>
3155 2004-11-18 Fernando Perez <fperez@colorado.edu>
3153
3156
3154 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3157 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3155 EOFErrors and bail, to avoid infinite loops if a non-terminating
3158 EOFErrors and bail, to avoid infinite loops if a non-terminating
3156 file is fed into ipython. Patch submitted in issue 19 by user,
3159 file is fed into ipython. Patch submitted in issue 19 by user,
3157 many thanks.
3160 many thanks.
3158
3161
3159 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3162 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3160 autoquote/parens in continuation prompts, which can cause lots of
3163 autoquote/parens in continuation prompts, which can cause lots of
3161 problems. Closes roundup issue 20.
3164 problems. Closes roundup issue 20.
3162
3165
3163 2004-11-17 Fernando Perez <fperez@colorado.edu>
3166 2004-11-17 Fernando Perez <fperez@colorado.edu>
3164
3167
3165 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3168 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3166 reported as debian bug #280505. I'm not sure my local changelog
3169 reported as debian bug #280505. I'm not sure my local changelog
3167 entry has the proper debian format (Jack?).
3170 entry has the proper debian format (Jack?).
3168
3171
3169 2004-11-08 *** Released version 0.6.4
3172 2004-11-08 *** Released version 0.6.4
3170
3173
3171 2004-11-08 Fernando Perez <fperez@colorado.edu>
3174 2004-11-08 Fernando Perez <fperez@colorado.edu>
3172
3175
3173 * IPython/iplib.py (init_readline): Fix exit message for Windows
3176 * IPython/iplib.py (init_readline): Fix exit message for Windows
3174 when readline is active. Thanks to a report by Eric Jones
3177 when readline is active. Thanks to a report by Eric Jones
3175 <eric-AT-enthought.com>.
3178 <eric-AT-enthought.com>.
3176
3179
3177 2004-11-07 Fernando Perez <fperez@colorado.edu>
3180 2004-11-07 Fernando Perez <fperez@colorado.edu>
3178
3181
3179 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3182 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3180 sometimes seen by win2k/cygwin users.
3183 sometimes seen by win2k/cygwin users.
3181
3184
3182 2004-11-06 Fernando Perez <fperez@colorado.edu>
3185 2004-11-06 Fernando Perez <fperez@colorado.edu>
3183
3186
3184 * IPython/iplib.py (interact): Change the handling of %Exit from
3187 * IPython/iplib.py (interact): Change the handling of %Exit from
3185 trying to propagate a SystemExit to an internal ipython flag.
3188 trying to propagate a SystemExit to an internal ipython flag.
3186 This is less elegant than using Python's exception mechanism, but
3189 This is less elegant than using Python's exception mechanism, but
3187 I can't get that to work reliably with threads, so under -pylab
3190 I can't get that to work reliably with threads, so under -pylab
3188 %Exit was hanging IPython. Cross-thread exception handling is
3191 %Exit was hanging IPython. Cross-thread exception handling is
3189 really a bitch. Thaks to a bug report by Stephen Walton
3192 really a bitch. Thaks to a bug report by Stephen Walton
3190 <stephen.walton-AT-csun.edu>.
3193 <stephen.walton-AT-csun.edu>.
3191
3194
3192 2004-11-04 Fernando Perez <fperez@colorado.edu>
3195 2004-11-04 Fernando Perez <fperez@colorado.edu>
3193
3196
3194 * IPython/iplib.py (raw_input_original): store a pointer to the
3197 * IPython/iplib.py (raw_input_original): store a pointer to the
3195 true raw_input to harden against code which can modify it
3198 true raw_input to harden against code which can modify it
3196 (wx.py.PyShell does this and would otherwise crash ipython).
3199 (wx.py.PyShell does this and would otherwise crash ipython).
3197 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3200 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3198
3201
3199 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3202 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3200 Ctrl-C problem, which does not mess up the input line.
3203 Ctrl-C problem, which does not mess up the input line.
3201
3204
3202 2004-11-03 Fernando Perez <fperez@colorado.edu>
3205 2004-11-03 Fernando Perez <fperez@colorado.edu>
3203
3206
3204 * IPython/Release.py: Changed licensing to BSD, in all files.
3207 * IPython/Release.py: Changed licensing to BSD, in all files.
3205 (name): lowercase name for tarball/RPM release.
3208 (name): lowercase name for tarball/RPM release.
3206
3209
3207 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3210 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3208 use throughout ipython.
3211 use throughout ipython.
3209
3212
3210 * IPython/Magic.py (Magic._ofind): Switch to using the new
3213 * IPython/Magic.py (Magic._ofind): Switch to using the new
3211 OInspect.getdoc() function.
3214 OInspect.getdoc() function.
3212
3215
3213 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3216 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3214 of the line currently being canceled via Ctrl-C. It's extremely
3217 of the line currently being canceled via Ctrl-C. It's extremely
3215 ugly, but I don't know how to do it better (the problem is one of
3218 ugly, but I don't know how to do it better (the problem is one of
3216 handling cross-thread exceptions).
3219 handling cross-thread exceptions).
3217
3220
3218 2004-10-28 Fernando Perez <fperez@colorado.edu>
3221 2004-10-28 Fernando Perez <fperez@colorado.edu>
3219
3222
3220 * IPython/Shell.py (signal_handler): add signal handlers to trap
3223 * IPython/Shell.py (signal_handler): add signal handlers to trap
3221 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3224 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3222 report by Francesc Alted.
3225 report by Francesc Alted.
3223
3226
3224 2004-10-21 Fernando Perez <fperez@colorado.edu>
3227 2004-10-21 Fernando Perez <fperez@colorado.edu>
3225
3228
3226 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3229 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3227 to % for pysh syntax extensions.
3230 to % for pysh syntax extensions.
3228
3231
3229 2004-10-09 Fernando Perez <fperez@colorado.edu>
3232 2004-10-09 Fernando Perez <fperez@colorado.edu>
3230
3233
3231 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3234 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3232 arrays to print a more useful summary, without calling str(arr).
3235 arrays to print a more useful summary, without calling str(arr).
3233 This avoids the problem of extremely lengthy computations which
3236 This avoids the problem of extremely lengthy computations which
3234 occur if arr is large, and appear to the user as a system lockup
3237 occur if arr is large, and appear to the user as a system lockup
3235 with 100% cpu activity. After a suggestion by Kristian Sandberg
3238 with 100% cpu activity. After a suggestion by Kristian Sandberg
3236 <Kristian.Sandberg@colorado.edu>.
3239 <Kristian.Sandberg@colorado.edu>.
3237 (Magic.__init__): fix bug in global magic escapes not being
3240 (Magic.__init__): fix bug in global magic escapes not being
3238 correctly set.
3241 correctly set.
3239
3242
3240 2004-10-08 Fernando Perez <fperez@colorado.edu>
3243 2004-10-08 Fernando Perez <fperez@colorado.edu>
3241
3244
3242 * IPython/Magic.py (__license__): change to absolute imports of
3245 * IPython/Magic.py (__license__): change to absolute imports of
3243 ipython's own internal packages, to start adapting to the absolute
3246 ipython's own internal packages, to start adapting to the absolute
3244 import requirement of PEP-328.
3247 import requirement of PEP-328.
3245
3248
3246 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3249 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3247 files, and standardize author/license marks through the Release
3250 files, and standardize author/license marks through the Release
3248 module instead of having per/file stuff (except for files with
3251 module instead of having per/file stuff (except for files with
3249 particular licenses, like the MIT/PSF-licensed codes).
3252 particular licenses, like the MIT/PSF-licensed codes).
3250
3253
3251 * IPython/Debugger.py: remove dead code for python 2.1
3254 * IPython/Debugger.py: remove dead code for python 2.1
3252
3255
3253 2004-10-04 Fernando Perez <fperez@colorado.edu>
3256 2004-10-04 Fernando Perez <fperez@colorado.edu>
3254
3257
3255 * IPython/iplib.py (ipmagic): New function for accessing magics
3258 * IPython/iplib.py (ipmagic): New function for accessing magics
3256 via a normal python function call.
3259 via a normal python function call.
3257
3260
3258 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3261 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3259 from '@' to '%', to accomodate the new @decorator syntax of python
3262 from '@' to '%', to accomodate the new @decorator syntax of python
3260 2.4.
3263 2.4.
3261
3264
3262 2004-09-29 Fernando Perez <fperez@colorado.edu>
3265 2004-09-29 Fernando Perez <fperez@colorado.edu>
3263
3266
3264 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3267 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3265 matplotlib.use to prevent running scripts which try to switch
3268 matplotlib.use to prevent running scripts which try to switch
3266 interactive backends from within ipython. This will just crash
3269 interactive backends from within ipython. This will just crash
3267 the python interpreter, so we can't allow it (but a detailed error
3270 the python interpreter, so we can't allow it (but a detailed error
3268 is given to the user).
3271 is given to the user).
3269
3272
3270 2004-09-28 Fernando Perez <fperez@colorado.edu>
3273 2004-09-28 Fernando Perez <fperez@colorado.edu>
3271
3274
3272 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3275 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3273 matplotlib-related fixes so that using @run with non-matplotlib
3276 matplotlib-related fixes so that using @run with non-matplotlib
3274 scripts doesn't pop up spurious plot windows. This requires
3277 scripts doesn't pop up spurious plot windows. This requires
3275 matplotlib >= 0.63, where I had to make some changes as well.
3278 matplotlib >= 0.63, where I had to make some changes as well.
3276
3279
3277 * IPython/ipmaker.py (make_IPython): update version requirement to
3280 * IPython/ipmaker.py (make_IPython): update version requirement to
3278 python 2.2.
3281 python 2.2.
3279
3282
3280 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3283 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3281 banner arg for embedded customization.
3284 banner arg for embedded customization.
3282
3285
3283 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3286 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3284 explicit uses of __IP as the IPython's instance name. Now things
3287 explicit uses of __IP as the IPython's instance name. Now things
3285 are properly handled via the shell.name value. The actual code
3288 are properly handled via the shell.name value. The actual code
3286 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3289 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3287 is much better than before. I'll clean things completely when the
3290 is much better than before. I'll clean things completely when the
3288 magic stuff gets a real overhaul.
3291 magic stuff gets a real overhaul.
3289
3292
3290 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3293 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3291 minor changes to debian dir.
3294 minor changes to debian dir.
3292
3295
3293 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3296 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3294 pointer to the shell itself in the interactive namespace even when
3297 pointer to the shell itself in the interactive namespace even when
3295 a user-supplied dict is provided. This is needed for embedding
3298 a user-supplied dict is provided. This is needed for embedding
3296 purposes (found by tests with Michel Sanner).
3299 purposes (found by tests with Michel Sanner).
3297
3300
3298 2004-09-27 Fernando Perez <fperez@colorado.edu>
3301 2004-09-27 Fernando Perez <fperez@colorado.edu>
3299
3302
3300 * IPython/UserConfig/ipythonrc: remove []{} from
3303 * IPython/UserConfig/ipythonrc: remove []{} from
3301 readline_remove_delims, so that things like [modname.<TAB> do
3304 readline_remove_delims, so that things like [modname.<TAB> do
3302 proper completion. This disables [].TAB, but that's a less common
3305 proper completion. This disables [].TAB, but that's a less common
3303 case than module names in list comprehensions, for example.
3306 case than module names in list comprehensions, for example.
3304 Thanks to a report by Andrea Riciputi.
3307 Thanks to a report by Andrea Riciputi.
3305
3308
3306 2004-09-09 Fernando Perez <fperez@colorado.edu>
3309 2004-09-09 Fernando Perez <fperez@colorado.edu>
3307
3310
3308 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3311 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3309 blocking problems in win32 and osx. Fix by John.
3312 blocking problems in win32 and osx. Fix by John.
3310
3313
3311 2004-09-08 Fernando Perez <fperez@colorado.edu>
3314 2004-09-08 Fernando Perez <fperez@colorado.edu>
3312
3315
3313 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3316 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3314 for Win32 and OSX. Fix by John Hunter.
3317 for Win32 and OSX. Fix by John Hunter.
3315
3318
3316 2004-08-30 *** Released version 0.6.3
3319 2004-08-30 *** Released version 0.6.3
3317
3320
3318 2004-08-30 Fernando Perez <fperez@colorado.edu>
3321 2004-08-30 Fernando Perez <fperez@colorado.edu>
3319
3322
3320 * setup.py (isfile): Add manpages to list of dependent files to be
3323 * setup.py (isfile): Add manpages to list of dependent files to be
3321 updated.
3324 updated.
3322
3325
3323 2004-08-27 Fernando Perez <fperez@colorado.edu>
3326 2004-08-27 Fernando Perez <fperez@colorado.edu>
3324
3327
3325 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3328 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3326 for now. They don't really work with standalone WX/GTK code
3329 for now. They don't really work with standalone WX/GTK code
3327 (though matplotlib IS working fine with both of those backends).
3330 (though matplotlib IS working fine with both of those backends).
3328 This will neeed much more testing. I disabled most things with
3331 This will neeed much more testing. I disabled most things with
3329 comments, so turning it back on later should be pretty easy.
3332 comments, so turning it back on later should be pretty easy.
3330
3333
3331 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3334 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3332 autocalling of expressions like r'foo', by modifying the line
3335 autocalling of expressions like r'foo', by modifying the line
3333 split regexp. Closes
3336 split regexp. Closes
3334 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3337 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3335 Riley <ipythonbugs-AT-sabi.net>.
3338 Riley <ipythonbugs-AT-sabi.net>.
3336 (InteractiveShell.mainloop): honor --nobanner with banner
3339 (InteractiveShell.mainloop): honor --nobanner with banner
3337 extensions.
3340 extensions.
3338
3341
3339 * IPython/Shell.py: Significant refactoring of all classes, so
3342 * IPython/Shell.py: Significant refactoring of all classes, so
3340 that we can really support ALL matplotlib backends and threading
3343 that we can really support ALL matplotlib backends and threading
3341 models (John spotted a bug with Tk which required this). Now we
3344 models (John spotted a bug with Tk which required this). Now we
3342 should support single-threaded, WX-threads and GTK-threads, both
3345 should support single-threaded, WX-threads and GTK-threads, both
3343 for generic code and for matplotlib.
3346 for generic code and for matplotlib.
3344
3347
3345 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3348 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3346 -pylab, to simplify things for users. Will also remove the pylab
3349 -pylab, to simplify things for users. Will also remove the pylab
3347 profile, since now all of matplotlib configuration is directly
3350 profile, since now all of matplotlib configuration is directly
3348 handled here. This also reduces startup time.
3351 handled here. This also reduces startup time.
3349
3352
3350 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3353 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3351 shell wasn't being correctly called. Also in IPShellWX.
3354 shell wasn't being correctly called. Also in IPShellWX.
3352
3355
3353 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3356 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3354 fine-tune banner.
3357 fine-tune banner.
3355
3358
3356 * IPython/numutils.py (spike): Deprecate these spike functions,
3359 * IPython/numutils.py (spike): Deprecate these spike functions,
3357 delete (long deprecated) gnuplot_exec handler.
3360 delete (long deprecated) gnuplot_exec handler.
3358
3361
3359 2004-08-26 Fernando Perez <fperez@colorado.edu>
3362 2004-08-26 Fernando Perez <fperez@colorado.edu>
3360
3363
3361 * ipython.1: Update for threading options, plus some others which
3364 * ipython.1: Update for threading options, plus some others which
3362 were missing.
3365 were missing.
3363
3366
3364 * IPython/ipmaker.py (__call__): Added -wthread option for
3367 * IPython/ipmaker.py (__call__): Added -wthread option for
3365 wxpython thread handling. Make sure threading options are only
3368 wxpython thread handling. Make sure threading options are only
3366 valid at the command line.
3369 valid at the command line.
3367
3370
3368 * scripts/ipython: moved shell selection into a factory function
3371 * scripts/ipython: moved shell selection into a factory function
3369 in Shell.py, to keep the starter script to a minimum.
3372 in Shell.py, to keep the starter script to a minimum.
3370
3373
3371 2004-08-25 Fernando Perez <fperez@colorado.edu>
3374 2004-08-25 Fernando Perez <fperez@colorado.edu>
3372
3375
3373 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3376 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3374 John. Along with some recent changes he made to matplotlib, the
3377 John. Along with some recent changes he made to matplotlib, the
3375 next versions of both systems should work very well together.
3378 next versions of both systems should work very well together.
3376
3379
3377 2004-08-24 Fernando Perez <fperez@colorado.edu>
3380 2004-08-24 Fernando Perez <fperez@colorado.edu>
3378
3381
3379 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3382 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3380 tried to switch the profiling to using hotshot, but I'm getting
3383 tried to switch the profiling to using hotshot, but I'm getting
3381 strange errors from prof.runctx() there. I may be misreading the
3384 strange errors from prof.runctx() there. I may be misreading the
3382 docs, but it looks weird. For now the profiling code will
3385 docs, but it looks weird. For now the profiling code will
3383 continue to use the standard profiler.
3386 continue to use the standard profiler.
3384
3387
3385 2004-08-23 Fernando Perez <fperez@colorado.edu>
3388 2004-08-23 Fernando Perez <fperez@colorado.edu>
3386
3389
3387 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3390 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3388 threaded shell, by John Hunter. It's not quite ready yet, but
3391 threaded shell, by John Hunter. It's not quite ready yet, but
3389 close.
3392 close.
3390
3393
3391 2004-08-22 Fernando Perez <fperez@colorado.edu>
3394 2004-08-22 Fernando Perez <fperez@colorado.edu>
3392
3395
3393 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3396 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3394 in Magic and ultraTB.
3397 in Magic and ultraTB.
3395
3398
3396 * ipython.1: document threading options in manpage.
3399 * ipython.1: document threading options in manpage.
3397
3400
3398 * scripts/ipython: Changed name of -thread option to -gthread,
3401 * scripts/ipython: Changed name of -thread option to -gthread,
3399 since this is GTK specific. I want to leave the door open for a
3402 since this is GTK specific. I want to leave the door open for a
3400 -wthread option for WX, which will most likely be necessary. This
3403 -wthread option for WX, which will most likely be necessary. This
3401 change affects usage and ipmaker as well.
3404 change affects usage and ipmaker as well.
3402
3405
3403 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3406 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3404 handle the matplotlib shell issues. Code by John Hunter
3407 handle the matplotlib shell issues. Code by John Hunter
3405 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3408 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3406 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3409 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3407 broken (and disabled for end users) for now, but it puts the
3410 broken (and disabled for end users) for now, but it puts the
3408 infrastructure in place.
3411 infrastructure in place.
3409
3412
3410 2004-08-21 Fernando Perez <fperez@colorado.edu>
3413 2004-08-21 Fernando Perez <fperez@colorado.edu>
3411
3414
3412 * ipythonrc-pylab: Add matplotlib support.
3415 * ipythonrc-pylab: Add matplotlib support.
3413
3416
3414 * matplotlib_config.py: new files for matplotlib support, part of
3417 * matplotlib_config.py: new files for matplotlib support, part of
3415 the pylab profile.
3418 the pylab profile.
3416
3419
3417 * IPython/usage.py (__doc__): documented the threading options.
3420 * IPython/usage.py (__doc__): documented the threading options.
3418
3421
3419 2004-08-20 Fernando Perez <fperez@colorado.edu>
3422 2004-08-20 Fernando Perez <fperez@colorado.edu>
3420
3423
3421 * ipython: Modified the main calling routine to handle the -thread
3424 * ipython: Modified the main calling routine to handle the -thread
3422 and -mpthread options. This needs to be done as a top-level hack,
3425 and -mpthread options. This needs to be done as a top-level hack,
3423 because it determines which class to instantiate for IPython
3426 because it determines which class to instantiate for IPython
3424 itself.
3427 itself.
3425
3428
3426 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3429 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3427 classes to support multithreaded GTK operation without blocking,
3430 classes to support multithreaded GTK operation without blocking,
3428 and matplotlib with all backends. This is a lot of still very
3431 and matplotlib with all backends. This is a lot of still very
3429 experimental code, and threads are tricky. So it may still have a
3432 experimental code, and threads are tricky. So it may still have a
3430 few rough edges... This code owes a lot to
3433 few rough edges... This code owes a lot to
3431 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3434 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3432 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3435 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3433 to John Hunter for all the matplotlib work.
3436 to John Hunter for all the matplotlib work.
3434
3437
3435 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3438 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3436 options for gtk thread and matplotlib support.
3439 options for gtk thread and matplotlib support.
3437
3440
3438 2004-08-16 Fernando Perez <fperez@colorado.edu>
3441 2004-08-16 Fernando Perez <fperez@colorado.edu>
3439
3442
3440 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3443 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3441 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3444 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3442 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3445 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3443
3446
3444 2004-08-11 Fernando Perez <fperez@colorado.edu>
3447 2004-08-11 Fernando Perez <fperez@colorado.edu>
3445
3448
3446 * setup.py (isfile): Fix build so documentation gets updated for
3449 * setup.py (isfile): Fix build so documentation gets updated for
3447 rpms (it was only done for .tgz builds).
3450 rpms (it was only done for .tgz builds).
3448
3451
3449 2004-08-10 Fernando Perez <fperez@colorado.edu>
3452 2004-08-10 Fernando Perez <fperez@colorado.edu>
3450
3453
3451 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3454 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3452
3455
3453 * iplib.py : Silence syntax error exceptions in tab-completion.
3456 * iplib.py : Silence syntax error exceptions in tab-completion.
3454
3457
3455 2004-08-05 Fernando Perez <fperez@colorado.edu>
3458 2004-08-05 Fernando Perez <fperez@colorado.edu>
3456
3459
3457 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3460 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3458 'color off' mark for continuation prompts. This was causing long
3461 'color off' mark for continuation prompts. This was causing long
3459 continuation lines to mis-wrap.
3462 continuation lines to mis-wrap.
3460
3463
3461 2004-08-01 Fernando Perez <fperez@colorado.edu>
3464 2004-08-01 Fernando Perez <fperez@colorado.edu>
3462
3465
3463 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3466 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3464 for building ipython to be a parameter. All this is necessary
3467 for building ipython to be a parameter. All this is necessary
3465 right now to have a multithreaded version, but this insane
3468 right now to have a multithreaded version, but this insane
3466 non-design will be cleaned up soon. For now, it's a hack that
3469 non-design will be cleaned up soon. For now, it's a hack that
3467 works.
3470 works.
3468
3471
3469 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3472 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3470 args in various places. No bugs so far, but it's a dangerous
3473 args in various places. No bugs so far, but it's a dangerous
3471 practice.
3474 practice.
3472
3475
3473 2004-07-31 Fernando Perez <fperez@colorado.edu>
3476 2004-07-31 Fernando Perez <fperez@colorado.edu>
3474
3477
3475 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3478 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3476 fix completion of files with dots in their names under most
3479 fix completion of files with dots in their names under most
3477 profiles (pysh was OK because the completion order is different).
3480 profiles (pysh was OK because the completion order is different).
3478
3481
3479 2004-07-27 Fernando Perez <fperez@colorado.edu>
3482 2004-07-27 Fernando Perez <fperez@colorado.edu>
3480
3483
3481 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3484 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3482 keywords manually, b/c the one in keyword.py was removed in python
3485 keywords manually, b/c the one in keyword.py was removed in python
3483 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3486 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3484 This is NOT a bug under python 2.3 and earlier.
3487 This is NOT a bug under python 2.3 and earlier.
3485
3488
3486 2004-07-26 Fernando Perez <fperez@colorado.edu>
3489 2004-07-26 Fernando Perez <fperez@colorado.edu>
3487
3490
3488 * IPython/ultraTB.py (VerboseTB.text): Add another
3491 * IPython/ultraTB.py (VerboseTB.text): Add another
3489 linecache.checkcache() call to try to prevent inspect.py from
3492 linecache.checkcache() call to try to prevent inspect.py from
3490 crashing under python 2.3. I think this fixes
3493 crashing under python 2.3. I think this fixes
3491 http://www.scipy.net/roundup/ipython/issue17.
3494 http://www.scipy.net/roundup/ipython/issue17.
3492
3495
3493 2004-07-26 *** Released version 0.6.2
3496 2004-07-26 *** Released version 0.6.2
3494
3497
3495 2004-07-26 Fernando Perez <fperez@colorado.edu>
3498 2004-07-26 Fernando Perez <fperez@colorado.edu>
3496
3499
3497 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3500 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3498 fail for any number.
3501 fail for any number.
3499 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3502 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3500 empty bookmarks.
3503 empty bookmarks.
3501
3504
3502 2004-07-26 *** Released version 0.6.1
3505 2004-07-26 *** Released version 0.6.1
3503
3506
3504 2004-07-26 Fernando Perez <fperez@colorado.edu>
3507 2004-07-26 Fernando Perez <fperez@colorado.edu>
3505
3508
3506 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3509 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3507
3510
3508 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3511 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3509 escaping '()[]{}' in filenames.
3512 escaping '()[]{}' in filenames.
3510
3513
3511 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3514 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3512 Python 2.2 users who lack a proper shlex.split.
3515 Python 2.2 users who lack a proper shlex.split.
3513
3516
3514 2004-07-19 Fernando Perez <fperez@colorado.edu>
3517 2004-07-19 Fernando Perez <fperez@colorado.edu>
3515
3518
3516 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3519 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3517 for reading readline's init file. I follow the normal chain:
3520 for reading readline's init file. I follow the normal chain:
3518 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3521 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3519 report by Mike Heeter. This closes
3522 report by Mike Heeter. This closes
3520 http://www.scipy.net/roundup/ipython/issue16.
3523 http://www.scipy.net/roundup/ipython/issue16.
3521
3524
3522 2004-07-18 Fernando Perez <fperez@colorado.edu>
3525 2004-07-18 Fernando Perez <fperez@colorado.edu>
3523
3526
3524 * IPython/iplib.py (__init__): Add better handling of '\' under
3527 * IPython/iplib.py (__init__): Add better handling of '\' under
3525 Win32 for filenames. After a patch by Ville.
3528 Win32 for filenames. After a patch by Ville.
3526
3529
3527 2004-07-17 Fernando Perez <fperez@colorado.edu>
3530 2004-07-17 Fernando Perez <fperez@colorado.edu>
3528
3531
3529 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3532 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3530 autocalling would be triggered for 'foo is bar' if foo is
3533 autocalling would be triggered for 'foo is bar' if foo is
3531 callable. I also cleaned up the autocall detection code to use a
3534 callable. I also cleaned up the autocall detection code to use a
3532 regexp, which is faster. Bug reported by Alexander Schmolck.
3535 regexp, which is faster. Bug reported by Alexander Schmolck.
3533
3536
3534 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3537 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3535 '?' in them would confuse the help system. Reported by Alex
3538 '?' in them would confuse the help system. Reported by Alex
3536 Schmolck.
3539 Schmolck.
3537
3540
3538 2004-07-16 Fernando Perez <fperez@colorado.edu>
3541 2004-07-16 Fernando Perez <fperez@colorado.edu>
3539
3542
3540 * IPython/GnuplotInteractive.py (__all__): added plot2.
3543 * IPython/GnuplotInteractive.py (__all__): added plot2.
3541
3544
3542 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3545 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3543 plotting dictionaries, lists or tuples of 1d arrays.
3546 plotting dictionaries, lists or tuples of 1d arrays.
3544
3547
3545 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3548 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3546 optimizations.
3549 optimizations.
3547
3550
3548 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3551 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3549 the information which was there from Janko's original IPP code:
3552 the information which was there from Janko's original IPP code:
3550
3553
3551 03.05.99 20:53 porto.ifm.uni-kiel.de
3554 03.05.99 20:53 porto.ifm.uni-kiel.de
3552 --Started changelog.
3555 --Started changelog.
3553 --make clear do what it say it does
3556 --make clear do what it say it does
3554 --added pretty output of lines from inputcache
3557 --added pretty output of lines from inputcache
3555 --Made Logger a mixin class, simplifies handling of switches
3558 --Made Logger a mixin class, simplifies handling of switches
3556 --Added own completer class. .string<TAB> expands to last history
3559 --Added own completer class. .string<TAB> expands to last history
3557 line which starts with string. The new expansion is also present
3560 line which starts with string. The new expansion is also present
3558 with Ctrl-r from the readline library. But this shows, who this
3561 with Ctrl-r from the readline library. But this shows, who this
3559 can be done for other cases.
3562 can be done for other cases.
3560 --Added convention that all shell functions should accept a
3563 --Added convention that all shell functions should accept a
3561 parameter_string This opens the door for different behaviour for
3564 parameter_string This opens the door for different behaviour for
3562 each function. @cd is a good example of this.
3565 each function. @cd is a good example of this.
3563
3566
3564 04.05.99 12:12 porto.ifm.uni-kiel.de
3567 04.05.99 12:12 porto.ifm.uni-kiel.de
3565 --added logfile rotation
3568 --added logfile rotation
3566 --added new mainloop method which freezes first the namespace
3569 --added new mainloop method which freezes first the namespace
3567
3570
3568 07.05.99 21:24 porto.ifm.uni-kiel.de
3571 07.05.99 21:24 porto.ifm.uni-kiel.de
3569 --added the docreader classes. Now there is a help system.
3572 --added the docreader classes. Now there is a help system.
3570 -This is only a first try. Currently it's not easy to put new
3573 -This is only a first try. Currently it's not easy to put new
3571 stuff in the indices. But this is the way to go. Info would be
3574 stuff in the indices. But this is the way to go. Info would be
3572 better, but HTML is every where and not everybody has an info
3575 better, but HTML is every where and not everybody has an info
3573 system installed and it's not so easy to change html-docs to info.
3576 system installed and it's not so easy to change html-docs to info.
3574 --added global logfile option
3577 --added global logfile option
3575 --there is now a hook for object inspection method pinfo needs to
3578 --there is now a hook for object inspection method pinfo needs to
3576 be provided for this. Can be reached by two '??'.
3579 be provided for this. Can be reached by two '??'.
3577
3580
3578 08.05.99 20:51 porto.ifm.uni-kiel.de
3581 08.05.99 20:51 porto.ifm.uni-kiel.de
3579 --added a README
3582 --added a README
3580 --bug in rc file. Something has changed so functions in the rc
3583 --bug in rc file. Something has changed so functions in the rc
3581 file need to reference the shell and not self. Not clear if it's a
3584 file need to reference the shell and not self. Not clear if it's a
3582 bug or feature.
3585 bug or feature.
3583 --changed rc file for new behavior
3586 --changed rc file for new behavior
3584
3587
3585 2004-07-15 Fernando Perez <fperez@colorado.edu>
3588 2004-07-15 Fernando Perez <fperez@colorado.edu>
3586
3589
3587 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3590 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3588 cache was falling out of sync in bizarre manners when multi-line
3591 cache was falling out of sync in bizarre manners when multi-line
3589 input was present. Minor optimizations and cleanup.
3592 input was present. Minor optimizations and cleanup.
3590
3593
3591 (Logger): Remove old Changelog info for cleanup. This is the
3594 (Logger): Remove old Changelog info for cleanup. This is the
3592 information which was there from Janko's original code:
3595 information which was there from Janko's original code:
3593
3596
3594 Changes to Logger: - made the default log filename a parameter
3597 Changes to Logger: - made the default log filename a parameter
3595
3598
3596 - put a check for lines beginning with !@? in log(). Needed
3599 - put a check for lines beginning with !@? in log(). Needed
3597 (even if the handlers properly log their lines) for mid-session
3600 (even if the handlers properly log their lines) for mid-session
3598 logging activation to work properly. Without this, lines logged
3601 logging activation to work properly. Without this, lines logged
3599 in mid session, which get read from the cache, would end up
3602 in mid session, which get read from the cache, would end up
3600 'bare' (with !@? in the open) in the log. Now they are caught
3603 'bare' (with !@? in the open) in the log. Now they are caught
3601 and prepended with a #.
3604 and prepended with a #.
3602
3605
3603 * IPython/iplib.py (InteractiveShell.init_readline): added check
3606 * IPython/iplib.py (InteractiveShell.init_readline): added check
3604 in case MagicCompleter fails to be defined, so we don't crash.
3607 in case MagicCompleter fails to be defined, so we don't crash.
3605
3608
3606 2004-07-13 Fernando Perez <fperez@colorado.edu>
3609 2004-07-13 Fernando Perez <fperez@colorado.edu>
3607
3610
3608 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3611 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3609 of EPS if the requested filename ends in '.eps'.
3612 of EPS if the requested filename ends in '.eps'.
3610
3613
3611 2004-07-04 Fernando Perez <fperez@colorado.edu>
3614 2004-07-04 Fernando Perez <fperez@colorado.edu>
3612
3615
3613 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3616 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3614 escaping of quotes when calling the shell.
3617 escaping of quotes when calling the shell.
3615
3618
3616 2004-07-02 Fernando Perez <fperez@colorado.edu>
3619 2004-07-02 Fernando Perez <fperez@colorado.edu>
3617
3620
3618 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3621 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3619 gettext not working because we were clobbering '_'. Fixes
3622 gettext not working because we were clobbering '_'. Fixes
3620 http://www.scipy.net/roundup/ipython/issue6.
3623 http://www.scipy.net/roundup/ipython/issue6.
3621
3624
3622 2004-07-01 Fernando Perez <fperez@colorado.edu>
3625 2004-07-01 Fernando Perez <fperez@colorado.edu>
3623
3626
3624 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3627 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3625 into @cd. Patch by Ville.
3628 into @cd. Patch by Ville.
3626
3629
3627 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3630 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3628 new function to store things after ipmaker runs. Patch by Ville.
3631 new function to store things after ipmaker runs. Patch by Ville.
3629 Eventually this will go away once ipmaker is removed and the class
3632 Eventually this will go away once ipmaker is removed and the class
3630 gets cleaned up, but for now it's ok. Key functionality here is
3633 gets cleaned up, but for now it's ok. Key functionality here is
3631 the addition of the persistent storage mechanism, a dict for
3634 the addition of the persistent storage mechanism, a dict for
3632 keeping data across sessions (for now just bookmarks, but more can
3635 keeping data across sessions (for now just bookmarks, but more can
3633 be implemented later).
3636 be implemented later).
3634
3637
3635 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3638 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3636 persistent across sections. Patch by Ville, I modified it
3639 persistent across sections. Patch by Ville, I modified it
3637 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3640 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3638 added a '-l' option to list all bookmarks.
3641 added a '-l' option to list all bookmarks.
3639
3642
3640 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3643 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3641 center for cleanup. Registered with atexit.register(). I moved
3644 center for cleanup. Registered with atexit.register(). I moved
3642 here the old exit_cleanup(). After a patch by Ville.
3645 here the old exit_cleanup(). After a patch by Ville.
3643
3646
3644 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3647 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3645 characters in the hacked shlex_split for python 2.2.
3648 characters in the hacked shlex_split for python 2.2.
3646
3649
3647 * IPython/iplib.py (file_matches): more fixes to filenames with
3650 * IPython/iplib.py (file_matches): more fixes to filenames with
3648 whitespace in them. It's not perfect, but limitations in python's
3651 whitespace in them. It's not perfect, but limitations in python's
3649 readline make it impossible to go further.
3652 readline make it impossible to go further.
3650
3653
3651 2004-06-29 Fernando Perez <fperez@colorado.edu>
3654 2004-06-29 Fernando Perez <fperez@colorado.edu>
3652
3655
3653 * IPython/iplib.py (file_matches): escape whitespace correctly in
3656 * IPython/iplib.py (file_matches): escape whitespace correctly in
3654 filename completions. Bug reported by Ville.
3657 filename completions. Bug reported by Ville.
3655
3658
3656 2004-06-28 Fernando Perez <fperez@colorado.edu>
3659 2004-06-28 Fernando Perez <fperez@colorado.edu>
3657
3660
3658 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3661 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3659 the history file will be called 'history-PROFNAME' (or just
3662 the history file will be called 'history-PROFNAME' (or just
3660 'history' if no profile is loaded). I was getting annoyed at
3663 'history' if no profile is loaded). I was getting annoyed at
3661 getting my Numerical work history clobbered by pysh sessions.
3664 getting my Numerical work history clobbered by pysh sessions.
3662
3665
3663 * IPython/iplib.py (InteractiveShell.__init__): Internal
3666 * IPython/iplib.py (InteractiveShell.__init__): Internal
3664 getoutputerror() function so that we can honor the system_verbose
3667 getoutputerror() function so that we can honor the system_verbose
3665 flag for _all_ system calls. I also added escaping of #
3668 flag for _all_ system calls. I also added escaping of #
3666 characters here to avoid confusing Itpl.
3669 characters here to avoid confusing Itpl.
3667
3670
3668 * IPython/Magic.py (shlex_split): removed call to shell in
3671 * IPython/Magic.py (shlex_split): removed call to shell in
3669 parse_options and replaced it with shlex.split(). The annoying
3672 parse_options and replaced it with shlex.split(). The annoying
3670 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3673 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3671 to backport it from 2.3, with several frail hacks (the shlex
3674 to backport it from 2.3, with several frail hacks (the shlex
3672 module is rather limited in 2.2). Thanks to a suggestion by Ville
3675 module is rather limited in 2.2). Thanks to a suggestion by Ville
3673 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3676 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3674 problem.
3677 problem.
3675
3678
3676 (Magic.magic_system_verbose): new toggle to print the actual
3679 (Magic.magic_system_verbose): new toggle to print the actual
3677 system calls made by ipython. Mainly for debugging purposes.
3680 system calls made by ipython. Mainly for debugging purposes.
3678
3681
3679 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3682 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3680 doesn't support persistence. Reported (and fix suggested) by
3683 doesn't support persistence. Reported (and fix suggested) by
3681 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3684 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3682
3685
3683 2004-06-26 Fernando Perez <fperez@colorado.edu>
3686 2004-06-26 Fernando Perez <fperez@colorado.edu>
3684
3687
3685 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3688 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3686 continue prompts.
3689 continue prompts.
3687
3690
3688 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3691 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3689 function (basically a big docstring) and a few more things here to
3692 function (basically a big docstring) and a few more things here to
3690 speedup startup. pysh.py is now very lightweight. We want because
3693 speedup startup. pysh.py is now very lightweight. We want because
3691 it gets execfile'd, while InterpreterExec gets imported, so
3694 it gets execfile'd, while InterpreterExec gets imported, so
3692 byte-compilation saves time.
3695 byte-compilation saves time.
3693
3696
3694 2004-06-25 Fernando Perez <fperez@colorado.edu>
3697 2004-06-25 Fernando Perez <fperez@colorado.edu>
3695
3698
3696 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3699 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3697 -NUM', which was recently broken.
3700 -NUM', which was recently broken.
3698
3701
3699 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3702 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3700 in multi-line input (but not !!, which doesn't make sense there).
3703 in multi-line input (but not !!, which doesn't make sense there).
3701
3704
3702 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3705 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3703 It's just too useful, and people can turn it off in the less
3706 It's just too useful, and people can turn it off in the less
3704 common cases where it's a problem.
3707 common cases where it's a problem.
3705
3708
3706 2004-06-24 Fernando Perez <fperez@colorado.edu>
3709 2004-06-24 Fernando Perez <fperez@colorado.edu>
3707
3710
3708 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3711 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3709 special syntaxes (like alias calling) is now allied in multi-line
3712 special syntaxes (like alias calling) is now allied in multi-line
3710 input. This is still _very_ experimental, but it's necessary for
3713 input. This is still _very_ experimental, but it's necessary for
3711 efficient shell usage combining python looping syntax with system
3714 efficient shell usage combining python looping syntax with system
3712 calls. For now it's restricted to aliases, I don't think it
3715 calls. For now it's restricted to aliases, I don't think it
3713 really even makes sense to have this for magics.
3716 really even makes sense to have this for magics.
3714
3717
3715 2004-06-23 Fernando Perez <fperez@colorado.edu>
3718 2004-06-23 Fernando Perez <fperez@colorado.edu>
3716
3719
3717 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3720 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3718 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3721 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3719
3722
3720 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3723 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3721 extensions under Windows (after code sent by Gary Bishop). The
3724 extensions under Windows (after code sent by Gary Bishop). The
3722 extensions considered 'executable' are stored in IPython's rc
3725 extensions considered 'executable' are stored in IPython's rc
3723 structure as win_exec_ext.
3726 structure as win_exec_ext.
3724
3727
3725 * IPython/genutils.py (shell): new function, like system() but
3728 * IPython/genutils.py (shell): new function, like system() but
3726 without return value. Very useful for interactive shell work.
3729 without return value. Very useful for interactive shell work.
3727
3730
3728 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3731 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3729 delete aliases.
3732 delete aliases.
3730
3733
3731 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3734 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3732 sure that the alias table doesn't contain python keywords.
3735 sure that the alias table doesn't contain python keywords.
3733
3736
3734 2004-06-21 Fernando Perez <fperez@colorado.edu>
3737 2004-06-21 Fernando Perez <fperez@colorado.edu>
3735
3738
3736 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3739 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3737 non-existent items are found in $PATH. Reported by Thorsten.
3740 non-existent items are found in $PATH. Reported by Thorsten.
3738
3741
3739 2004-06-20 Fernando Perez <fperez@colorado.edu>
3742 2004-06-20 Fernando Perez <fperez@colorado.edu>
3740
3743
3741 * IPython/iplib.py (complete): modified the completer so that the
3744 * IPython/iplib.py (complete): modified the completer so that the
3742 order of priorities can be easily changed at runtime.
3745 order of priorities can be easily changed at runtime.
3743
3746
3744 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3747 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3745 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3748 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3746
3749
3747 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3750 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3748 expand Python variables prepended with $ in all system calls. The
3751 expand Python variables prepended with $ in all system calls. The
3749 same was done to InteractiveShell.handle_shell_escape. Now all
3752 same was done to InteractiveShell.handle_shell_escape. Now all
3750 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3753 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3751 expansion of python variables and expressions according to the
3754 expansion of python variables and expressions according to the
3752 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3755 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3753
3756
3754 Though PEP-215 has been rejected, a similar (but simpler) one
3757 Though PEP-215 has been rejected, a similar (but simpler) one
3755 seems like it will go into Python 2.4, PEP-292 -
3758 seems like it will go into Python 2.4, PEP-292 -
3756 http://www.python.org/peps/pep-0292.html.
3759 http://www.python.org/peps/pep-0292.html.
3757
3760
3758 I'll keep the full syntax of PEP-215, since IPython has since the
3761 I'll keep the full syntax of PEP-215, since IPython has since the
3759 start used Ka-Ping Yee's reference implementation discussed there
3762 start used Ka-Ping Yee's reference implementation discussed there
3760 (Itpl), and I actually like the powerful semantics it offers.
3763 (Itpl), and I actually like the powerful semantics it offers.
3761
3764
3762 In order to access normal shell variables, the $ has to be escaped
3765 In order to access normal shell variables, the $ has to be escaped
3763 via an extra $. For example:
3766 via an extra $. For example:
3764
3767
3765 In [7]: PATH='a python variable'
3768 In [7]: PATH='a python variable'
3766
3769
3767 In [8]: !echo $PATH
3770 In [8]: !echo $PATH
3768 a python variable
3771 a python variable
3769
3772
3770 In [9]: !echo $$PATH
3773 In [9]: !echo $$PATH
3771 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3774 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3772
3775
3773 (Magic.parse_options): escape $ so the shell doesn't evaluate
3776 (Magic.parse_options): escape $ so the shell doesn't evaluate
3774 things prematurely.
3777 things prematurely.
3775
3778
3776 * IPython/iplib.py (InteractiveShell.call_alias): added the
3779 * IPython/iplib.py (InteractiveShell.call_alias): added the
3777 ability for aliases to expand python variables via $.
3780 ability for aliases to expand python variables via $.
3778
3781
3779 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3782 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3780 system, now there's a @rehash/@rehashx pair of magics. These work
3783 system, now there's a @rehash/@rehashx pair of magics. These work
3781 like the csh rehash command, and can be invoked at any time. They
3784 like the csh rehash command, and can be invoked at any time. They
3782 build a table of aliases to everything in the user's $PATH
3785 build a table of aliases to everything in the user's $PATH
3783 (@rehash uses everything, @rehashx is slower but only adds
3786 (@rehash uses everything, @rehashx is slower but only adds
3784 executable files). With this, the pysh.py-based shell profile can
3787 executable files). With this, the pysh.py-based shell profile can
3785 now simply call rehash upon startup, and full access to all
3788 now simply call rehash upon startup, and full access to all
3786 programs in the user's path is obtained.
3789 programs in the user's path is obtained.
3787
3790
3788 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3791 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3789 functionality is now fully in place. I removed the old dynamic
3792 functionality is now fully in place. I removed the old dynamic
3790 code generation based approach, in favor of a much lighter one
3793 code generation based approach, in favor of a much lighter one
3791 based on a simple dict. The advantage is that this allows me to
3794 based on a simple dict. The advantage is that this allows me to
3792 now have thousands of aliases with negligible cost (unthinkable
3795 now have thousands of aliases with negligible cost (unthinkable
3793 with the old system).
3796 with the old system).
3794
3797
3795 2004-06-19 Fernando Perez <fperez@colorado.edu>
3798 2004-06-19 Fernando Perez <fperez@colorado.edu>
3796
3799
3797 * IPython/iplib.py (__init__): extended MagicCompleter class to
3800 * IPython/iplib.py (__init__): extended MagicCompleter class to
3798 also complete (last in priority) on user aliases.
3801 also complete (last in priority) on user aliases.
3799
3802
3800 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3803 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3801 call to eval.
3804 call to eval.
3802 (ItplNS.__init__): Added a new class which functions like Itpl,
3805 (ItplNS.__init__): Added a new class which functions like Itpl,
3803 but allows configuring the namespace for the evaluation to occur
3806 but allows configuring the namespace for the evaluation to occur
3804 in.
3807 in.
3805
3808
3806 2004-06-18 Fernando Perez <fperez@colorado.edu>
3809 2004-06-18 Fernando Perez <fperez@colorado.edu>
3807
3810
3808 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3811 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3809 better message when 'exit' or 'quit' are typed (a common newbie
3812 better message when 'exit' or 'quit' are typed (a common newbie
3810 confusion).
3813 confusion).
3811
3814
3812 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3815 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3813 check for Windows users.
3816 check for Windows users.
3814
3817
3815 * IPython/iplib.py (InteractiveShell.user_setup): removed
3818 * IPython/iplib.py (InteractiveShell.user_setup): removed
3816 disabling of colors for Windows. I'll test at runtime and issue a
3819 disabling of colors for Windows. I'll test at runtime and issue a
3817 warning if Gary's readline isn't found, as to nudge users to
3820 warning if Gary's readline isn't found, as to nudge users to
3818 download it.
3821 download it.
3819
3822
3820 2004-06-16 Fernando Perez <fperez@colorado.edu>
3823 2004-06-16 Fernando Perez <fperez@colorado.edu>
3821
3824
3822 * IPython/genutils.py (Stream.__init__): changed to print errors
3825 * IPython/genutils.py (Stream.__init__): changed to print errors
3823 to sys.stderr. I had a circular dependency here. Now it's
3826 to sys.stderr. I had a circular dependency here. Now it's
3824 possible to run ipython as IDLE's shell (consider this pre-alpha,
3827 possible to run ipython as IDLE's shell (consider this pre-alpha,
3825 since true stdout things end up in the starting terminal instead
3828 since true stdout things end up in the starting terminal instead
3826 of IDLE's out).
3829 of IDLE's out).
3827
3830
3828 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3831 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3829 users who haven't # updated their prompt_in2 definitions. Remove
3832 users who haven't # updated their prompt_in2 definitions. Remove
3830 eventually.
3833 eventually.
3831 (multiple_replace): added credit to original ASPN recipe.
3834 (multiple_replace): added credit to original ASPN recipe.
3832
3835
3833 2004-06-15 Fernando Perez <fperez@colorado.edu>
3836 2004-06-15 Fernando Perez <fperez@colorado.edu>
3834
3837
3835 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3838 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3836 list of auto-defined aliases.
3839 list of auto-defined aliases.
3837
3840
3838 2004-06-13 Fernando Perez <fperez@colorado.edu>
3841 2004-06-13 Fernando Perez <fperez@colorado.edu>
3839
3842
3840 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3843 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3841 install was really requested (so setup.py can be used for other
3844 install was really requested (so setup.py can be used for other
3842 things under Windows).
3845 things under Windows).
3843
3846
3844 2004-06-10 Fernando Perez <fperez@colorado.edu>
3847 2004-06-10 Fernando Perez <fperez@colorado.edu>
3845
3848
3846 * IPython/Logger.py (Logger.create_log): Manually remove any old
3849 * IPython/Logger.py (Logger.create_log): Manually remove any old
3847 backup, since os.remove may fail under Windows. Fixes bug
3850 backup, since os.remove may fail under Windows. Fixes bug
3848 reported by Thorsten.
3851 reported by Thorsten.
3849
3852
3850 2004-06-09 Fernando Perez <fperez@colorado.edu>
3853 2004-06-09 Fernando Perez <fperez@colorado.edu>
3851
3854
3852 * examples/example-embed.py: fixed all references to %n (replaced
3855 * examples/example-embed.py: fixed all references to %n (replaced
3853 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3856 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3854 for all examples and the manual as well.
3857 for all examples and the manual as well.
3855
3858
3856 2004-06-08 Fernando Perez <fperez@colorado.edu>
3859 2004-06-08 Fernando Perez <fperez@colorado.edu>
3857
3860
3858 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3861 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3859 alignment and color management. All 3 prompt subsystems now
3862 alignment and color management. All 3 prompt subsystems now
3860 inherit from BasePrompt.
3863 inherit from BasePrompt.
3861
3864
3862 * tools/release: updates for windows installer build and tag rpms
3865 * tools/release: updates for windows installer build and tag rpms
3863 with python version (since paths are fixed).
3866 with python version (since paths are fixed).
3864
3867
3865 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3868 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3866 which will become eventually obsolete. Also fixed the default
3869 which will become eventually obsolete. Also fixed the default
3867 prompt_in2 to use \D, so at least new users start with the correct
3870 prompt_in2 to use \D, so at least new users start with the correct
3868 defaults.
3871 defaults.
3869 WARNING: Users with existing ipythonrc files will need to apply
3872 WARNING: Users with existing ipythonrc files will need to apply
3870 this fix manually!
3873 this fix manually!
3871
3874
3872 * setup.py: make windows installer (.exe). This is finally the
3875 * setup.py: make windows installer (.exe). This is finally the
3873 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3876 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3874 which I hadn't included because it required Python 2.3 (or recent
3877 which I hadn't included because it required Python 2.3 (or recent
3875 distutils).
3878 distutils).
3876
3879
3877 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3880 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3878 usage of new '\D' escape.
3881 usage of new '\D' escape.
3879
3882
3880 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3883 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3881 lacks os.getuid())
3884 lacks os.getuid())
3882 (CachedOutput.set_colors): Added the ability to turn coloring
3885 (CachedOutput.set_colors): Added the ability to turn coloring
3883 on/off with @colors even for manually defined prompt colors. It
3886 on/off with @colors even for manually defined prompt colors. It
3884 uses a nasty global, but it works safely and via the generic color
3887 uses a nasty global, but it works safely and via the generic color
3885 handling mechanism.
3888 handling mechanism.
3886 (Prompt2.__init__): Introduced new escape '\D' for continuation
3889 (Prompt2.__init__): Introduced new escape '\D' for continuation
3887 prompts. It represents the counter ('\#') as dots.
3890 prompts. It represents the counter ('\#') as dots.
3888 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3891 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3889 need to update their ipythonrc files and replace '%n' with '\D' in
3892 need to update their ipythonrc files and replace '%n' with '\D' in
3890 their prompt_in2 settings everywhere. Sorry, but there's
3893 their prompt_in2 settings everywhere. Sorry, but there's
3891 otherwise no clean way to get all prompts to properly align. The
3894 otherwise no clean way to get all prompts to properly align. The
3892 ipythonrc shipped with IPython has been updated.
3895 ipythonrc shipped with IPython has been updated.
3893
3896
3894 2004-06-07 Fernando Perez <fperez@colorado.edu>
3897 2004-06-07 Fernando Perez <fperez@colorado.edu>
3895
3898
3896 * setup.py (isfile): Pass local_icons option to latex2html, so the
3899 * setup.py (isfile): Pass local_icons option to latex2html, so the
3897 resulting HTML file is self-contained. Thanks to
3900 resulting HTML file is self-contained. Thanks to
3898 dryice-AT-liu.com.cn for the tip.
3901 dryice-AT-liu.com.cn for the tip.
3899
3902
3900 * pysh.py: I created a new profile 'shell', which implements a
3903 * pysh.py: I created a new profile 'shell', which implements a
3901 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3904 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3902 system shell, nor will it become one anytime soon. It's mainly
3905 system shell, nor will it become one anytime soon. It's mainly
3903 meant to illustrate the use of the new flexible bash-like prompts.
3906 meant to illustrate the use of the new flexible bash-like prompts.
3904 I guess it could be used by hardy souls for true shell management,
3907 I guess it could be used by hardy souls for true shell management,
3905 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3908 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3906 profile. This uses the InterpreterExec extension provided by
3909 profile. This uses the InterpreterExec extension provided by
3907 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3910 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3908
3911
3909 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3912 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3910 auto-align itself with the length of the previous input prompt
3913 auto-align itself with the length of the previous input prompt
3911 (taking into account the invisible color escapes).
3914 (taking into account the invisible color escapes).
3912 (CachedOutput.__init__): Large restructuring of this class. Now
3915 (CachedOutput.__init__): Large restructuring of this class. Now
3913 all three prompts (primary1, primary2, output) are proper objects,
3916 all three prompts (primary1, primary2, output) are proper objects,
3914 managed by the 'parent' CachedOutput class. The code is still a
3917 managed by the 'parent' CachedOutput class. The code is still a
3915 bit hackish (all prompts share state via a pointer to the cache),
3918 bit hackish (all prompts share state via a pointer to the cache),
3916 but it's overall far cleaner than before.
3919 but it's overall far cleaner than before.
3917
3920
3918 * IPython/genutils.py (getoutputerror): modified to add verbose,
3921 * IPython/genutils.py (getoutputerror): modified to add verbose,
3919 debug and header options. This makes the interface of all getout*
3922 debug and header options. This makes the interface of all getout*
3920 functions uniform.
3923 functions uniform.
3921 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3924 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3922
3925
3923 * IPython/Magic.py (Magic.default_option): added a function to
3926 * IPython/Magic.py (Magic.default_option): added a function to
3924 allow registering default options for any magic command. This
3927 allow registering default options for any magic command. This
3925 makes it easy to have profiles which customize the magics globally
3928 makes it easy to have profiles which customize the magics globally
3926 for a certain use. The values set through this function are
3929 for a certain use. The values set through this function are
3927 picked up by the parse_options() method, which all magics should
3930 picked up by the parse_options() method, which all magics should
3928 use to parse their options.
3931 use to parse their options.
3929
3932
3930 * IPython/genutils.py (warn): modified the warnings framework to
3933 * IPython/genutils.py (warn): modified the warnings framework to
3931 use the Term I/O class. I'm trying to slowly unify all of
3934 use the Term I/O class. I'm trying to slowly unify all of
3932 IPython's I/O operations to pass through Term.
3935 IPython's I/O operations to pass through Term.
3933
3936
3934 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3937 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3935 the secondary prompt to correctly match the length of the primary
3938 the secondary prompt to correctly match the length of the primary
3936 one for any prompt. Now multi-line code will properly line up
3939 one for any prompt. Now multi-line code will properly line up
3937 even for path dependent prompts, such as the new ones available
3940 even for path dependent prompts, such as the new ones available
3938 via the prompt_specials.
3941 via the prompt_specials.
3939
3942
3940 2004-06-06 Fernando Perez <fperez@colorado.edu>
3943 2004-06-06 Fernando Perez <fperez@colorado.edu>
3941
3944
3942 * IPython/Prompts.py (prompt_specials): Added the ability to have
3945 * IPython/Prompts.py (prompt_specials): Added the ability to have
3943 bash-like special sequences in the prompts, which get
3946 bash-like special sequences in the prompts, which get
3944 automatically expanded. Things like hostname, current working
3947 automatically expanded. Things like hostname, current working
3945 directory and username are implemented already, but it's easy to
3948 directory and username are implemented already, but it's easy to
3946 add more in the future. Thanks to a patch by W.J. van der Laan
3949 add more in the future. Thanks to a patch by W.J. van der Laan
3947 <gnufnork-AT-hetdigitalegat.nl>
3950 <gnufnork-AT-hetdigitalegat.nl>
3948 (prompt_specials): Added color support for prompt strings, so
3951 (prompt_specials): Added color support for prompt strings, so
3949 users can define arbitrary color setups for their prompts.
3952 users can define arbitrary color setups for their prompts.
3950
3953
3951 2004-06-05 Fernando Perez <fperez@colorado.edu>
3954 2004-06-05 Fernando Perez <fperez@colorado.edu>
3952
3955
3953 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3956 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3954 code to load Gary Bishop's readline and configure it
3957 code to load Gary Bishop's readline and configure it
3955 automatically. Thanks to Gary for help on this.
3958 automatically. Thanks to Gary for help on this.
3956
3959
3957 2004-06-01 Fernando Perez <fperez@colorado.edu>
3960 2004-06-01 Fernando Perez <fperez@colorado.edu>
3958
3961
3959 * IPython/Logger.py (Logger.create_log): fix bug for logging
3962 * IPython/Logger.py (Logger.create_log): fix bug for logging
3960 with no filename (previous fix was incomplete).
3963 with no filename (previous fix was incomplete).
3961
3964
3962 2004-05-25 Fernando Perez <fperez@colorado.edu>
3965 2004-05-25 Fernando Perez <fperez@colorado.edu>
3963
3966
3964 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3967 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3965 parens would get passed to the shell.
3968 parens would get passed to the shell.
3966
3969
3967 2004-05-20 Fernando Perez <fperez@colorado.edu>
3970 2004-05-20 Fernando Perez <fperez@colorado.edu>
3968
3971
3969 * IPython/Magic.py (Magic.magic_prun): changed default profile
3972 * IPython/Magic.py (Magic.magic_prun): changed default profile
3970 sort order to 'time' (the more common profiling need).
3973 sort order to 'time' (the more common profiling need).
3971
3974
3972 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3975 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3973 so that source code shown is guaranteed in sync with the file on
3976 so that source code shown is guaranteed in sync with the file on
3974 disk (also changed in psource). Similar fix to the one for
3977 disk (also changed in psource). Similar fix to the one for
3975 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3978 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3976 <yann.ledu-AT-noos.fr>.
3979 <yann.ledu-AT-noos.fr>.
3977
3980
3978 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3981 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3979 with a single option would not be correctly parsed. Closes
3982 with a single option would not be correctly parsed. Closes
3980 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3983 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3981 introduced in 0.6.0 (on 2004-05-06).
3984 introduced in 0.6.0 (on 2004-05-06).
3982
3985
3983 2004-05-13 *** Released version 0.6.0
3986 2004-05-13 *** Released version 0.6.0
3984
3987
3985 2004-05-13 Fernando Perez <fperez@colorado.edu>
3988 2004-05-13 Fernando Perez <fperez@colorado.edu>
3986
3989
3987 * debian/: Added debian/ directory to CVS, so that debian support
3990 * debian/: Added debian/ directory to CVS, so that debian support
3988 is publicly accessible. The debian package is maintained by Jack
3991 is publicly accessible. The debian package is maintained by Jack
3989 Moffit <jack-AT-xiph.org>.
3992 Moffit <jack-AT-xiph.org>.
3990
3993
3991 * Documentation: included the notes about an ipython-based system
3994 * Documentation: included the notes about an ipython-based system
3992 shell (the hypothetical 'pysh') into the new_design.pdf document,
3995 shell (the hypothetical 'pysh') into the new_design.pdf document,
3993 so that these ideas get distributed to users along with the
3996 so that these ideas get distributed to users along with the
3994 official documentation.
3997 official documentation.
3995
3998
3996 2004-05-10 Fernando Perez <fperez@colorado.edu>
3999 2004-05-10 Fernando Perez <fperez@colorado.edu>
3997
4000
3998 * IPython/Logger.py (Logger.create_log): fix recently introduced
4001 * IPython/Logger.py (Logger.create_log): fix recently introduced
3999 bug (misindented line) where logstart would fail when not given an
4002 bug (misindented line) where logstart would fail when not given an
4000 explicit filename.
4003 explicit filename.
4001
4004
4002 2004-05-09 Fernando Perez <fperez@colorado.edu>
4005 2004-05-09 Fernando Perez <fperez@colorado.edu>
4003
4006
4004 * IPython/Magic.py (Magic.parse_options): skip system call when
4007 * IPython/Magic.py (Magic.parse_options): skip system call when
4005 there are no options to look for. Faster, cleaner for the common
4008 there are no options to look for. Faster, cleaner for the common
4006 case.
4009 case.
4007
4010
4008 * Documentation: many updates to the manual: describing Windows
4011 * Documentation: many updates to the manual: describing Windows
4009 support better, Gnuplot updates, credits, misc small stuff. Also
4012 support better, Gnuplot updates, credits, misc small stuff. Also
4010 updated the new_design doc a bit.
4013 updated the new_design doc a bit.
4011
4014
4012 2004-05-06 *** Released version 0.6.0.rc1
4015 2004-05-06 *** Released version 0.6.0.rc1
4013
4016
4014 2004-05-06 Fernando Perez <fperez@colorado.edu>
4017 2004-05-06 Fernando Perez <fperez@colorado.edu>
4015
4018
4016 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4019 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4017 operations to use the vastly more efficient list/''.join() method.
4020 operations to use the vastly more efficient list/''.join() method.
4018 (FormattedTB.text): Fix
4021 (FormattedTB.text): Fix
4019 http://www.scipy.net/roundup/ipython/issue12 - exception source
4022 http://www.scipy.net/roundup/ipython/issue12 - exception source
4020 extract not updated after reload. Thanks to Mike Salib
4023 extract not updated after reload. Thanks to Mike Salib
4021 <msalib-AT-mit.edu> for pinning the source of the problem.
4024 <msalib-AT-mit.edu> for pinning the source of the problem.
4022 Fortunately, the solution works inside ipython and doesn't require
4025 Fortunately, the solution works inside ipython and doesn't require
4023 any changes to python proper.
4026 any changes to python proper.
4024
4027
4025 * IPython/Magic.py (Magic.parse_options): Improved to process the
4028 * IPython/Magic.py (Magic.parse_options): Improved to process the
4026 argument list as a true shell would (by actually using the
4029 argument list as a true shell would (by actually using the
4027 underlying system shell). This way, all @magics automatically get
4030 underlying system shell). This way, all @magics automatically get
4028 shell expansion for variables. Thanks to a comment by Alex
4031 shell expansion for variables. Thanks to a comment by Alex
4029 Schmolck.
4032 Schmolck.
4030
4033
4031 2004-04-04 Fernando Perez <fperez@colorado.edu>
4034 2004-04-04 Fernando Perez <fperez@colorado.edu>
4032
4035
4033 * IPython/iplib.py (InteractiveShell.interact): Added a special
4036 * IPython/iplib.py (InteractiveShell.interact): Added a special
4034 trap for a debugger quit exception, which is basically impossible
4037 trap for a debugger quit exception, which is basically impossible
4035 to handle by normal mechanisms, given what pdb does to the stack.
4038 to handle by normal mechanisms, given what pdb does to the stack.
4036 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4039 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4037
4040
4038 2004-04-03 Fernando Perez <fperez@colorado.edu>
4041 2004-04-03 Fernando Perez <fperez@colorado.edu>
4039
4042
4040 * IPython/genutils.py (Term): Standardized the names of the Term
4043 * IPython/genutils.py (Term): Standardized the names of the Term
4041 class streams to cin/cout/cerr, following C++ naming conventions
4044 class streams to cin/cout/cerr, following C++ naming conventions
4042 (I can't use in/out/err because 'in' is not a valid attribute
4045 (I can't use in/out/err because 'in' is not a valid attribute
4043 name).
4046 name).
4044
4047
4045 * IPython/iplib.py (InteractiveShell.interact): don't increment
4048 * IPython/iplib.py (InteractiveShell.interact): don't increment
4046 the prompt if there's no user input. By Daniel 'Dang' Griffith
4049 the prompt if there's no user input. By Daniel 'Dang' Griffith
4047 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4050 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4048 Francois Pinard.
4051 Francois Pinard.
4049
4052
4050 2004-04-02 Fernando Perez <fperez@colorado.edu>
4053 2004-04-02 Fernando Perez <fperez@colorado.edu>
4051
4054
4052 * IPython/genutils.py (Stream.__init__): Modified to survive at
4055 * IPython/genutils.py (Stream.__init__): Modified to survive at
4053 least importing in contexts where stdin/out/err aren't true file
4056 least importing in contexts where stdin/out/err aren't true file
4054 objects, such as PyCrust (they lack fileno() and mode). However,
4057 objects, such as PyCrust (they lack fileno() and mode). However,
4055 the recovery facilities which rely on these things existing will
4058 the recovery facilities which rely on these things existing will
4056 not work.
4059 not work.
4057
4060
4058 2004-04-01 Fernando Perez <fperez@colorado.edu>
4061 2004-04-01 Fernando Perez <fperez@colorado.edu>
4059
4062
4060 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4063 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4061 use the new getoutputerror() function, so it properly
4064 use the new getoutputerror() function, so it properly
4062 distinguishes stdout/err.
4065 distinguishes stdout/err.
4063
4066
4064 * IPython/genutils.py (getoutputerror): added a function to
4067 * IPython/genutils.py (getoutputerror): added a function to
4065 capture separately the standard output and error of a command.
4068 capture separately the standard output and error of a command.
4066 After a comment from dang on the mailing lists. This code is
4069 After a comment from dang on the mailing lists. This code is
4067 basically a modified version of commands.getstatusoutput(), from
4070 basically a modified version of commands.getstatusoutput(), from
4068 the standard library.
4071 the standard library.
4069
4072
4070 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4073 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4071 '!!' as a special syntax (shorthand) to access @sx.
4074 '!!' as a special syntax (shorthand) to access @sx.
4072
4075
4073 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4076 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4074 command and return its output as a list split on '\n'.
4077 command and return its output as a list split on '\n'.
4075
4078
4076 2004-03-31 Fernando Perez <fperez@colorado.edu>
4079 2004-03-31 Fernando Perez <fperez@colorado.edu>
4077
4080
4078 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4081 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4079 method to dictionaries used as FakeModule instances if they lack
4082 method to dictionaries used as FakeModule instances if they lack
4080 it. At least pydoc in python2.3 breaks for runtime-defined
4083 it. At least pydoc in python2.3 breaks for runtime-defined
4081 functions without this hack. At some point I need to _really_
4084 functions without this hack. At some point I need to _really_
4082 understand what FakeModule is doing, because it's a gross hack.
4085 understand what FakeModule is doing, because it's a gross hack.
4083 But it solves Arnd's problem for now...
4086 But it solves Arnd's problem for now...
4084
4087
4085 2004-02-27 Fernando Perez <fperez@colorado.edu>
4088 2004-02-27 Fernando Perez <fperez@colorado.edu>
4086
4089
4087 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4090 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4088 mode would behave erratically. Also increased the number of
4091 mode would behave erratically. Also increased the number of
4089 possible logs in rotate mod to 999. Thanks to Rod Holland
4092 possible logs in rotate mod to 999. Thanks to Rod Holland
4090 <rhh@StructureLABS.com> for the report and fixes.
4093 <rhh@StructureLABS.com> for the report and fixes.
4091
4094
4092 2004-02-26 Fernando Perez <fperez@colorado.edu>
4095 2004-02-26 Fernando Perez <fperez@colorado.edu>
4093
4096
4094 * IPython/genutils.py (page): Check that the curses module really
4097 * IPython/genutils.py (page): Check that the curses module really
4095 has the initscr attribute before trying to use it. For some
4098 has the initscr attribute before trying to use it. For some
4096 reason, the Solaris curses module is missing this. I think this
4099 reason, the Solaris curses module is missing this. I think this
4097 should be considered a Solaris python bug, but I'm not sure.
4100 should be considered a Solaris python bug, but I'm not sure.
4098
4101
4099 2004-01-17 Fernando Perez <fperez@colorado.edu>
4102 2004-01-17 Fernando Perez <fperez@colorado.edu>
4100
4103
4101 * IPython/genutils.py (Stream.__init__): Changes to try to make
4104 * IPython/genutils.py (Stream.__init__): Changes to try to make
4102 ipython robust against stdin/out/err being closed by the user.
4105 ipython robust against stdin/out/err being closed by the user.
4103 This is 'user error' (and blocks a normal python session, at least
4106 This is 'user error' (and blocks a normal python session, at least
4104 the stdout case). However, Ipython should be able to survive such
4107 the stdout case). However, Ipython should be able to survive such
4105 instances of abuse as gracefully as possible. To simplify the
4108 instances of abuse as gracefully as possible. To simplify the
4106 coding and maintain compatibility with Gary Bishop's Term
4109 coding and maintain compatibility with Gary Bishop's Term
4107 contributions, I've made use of classmethods for this. I think
4110 contributions, I've made use of classmethods for this. I think
4108 this introduces a dependency on python 2.2.
4111 this introduces a dependency on python 2.2.
4109
4112
4110 2004-01-13 Fernando Perez <fperez@colorado.edu>
4113 2004-01-13 Fernando Perez <fperez@colorado.edu>
4111
4114
4112 * IPython/numutils.py (exp_safe): simplified the code a bit and
4115 * IPython/numutils.py (exp_safe): simplified the code a bit and
4113 removed the need for importing the kinds module altogether.
4116 removed the need for importing the kinds module altogether.
4114
4117
4115 2004-01-06 Fernando Perez <fperez@colorado.edu>
4118 2004-01-06 Fernando Perez <fperez@colorado.edu>
4116
4119
4117 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4120 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4118 a magic function instead, after some community feedback. No
4121 a magic function instead, after some community feedback. No
4119 special syntax will exist for it, but its name is deliberately
4122 special syntax will exist for it, but its name is deliberately
4120 very short.
4123 very short.
4121
4124
4122 2003-12-20 Fernando Perez <fperez@colorado.edu>
4125 2003-12-20 Fernando Perez <fperez@colorado.edu>
4123
4126
4124 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4127 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4125 new functionality, to automagically assign the result of a shell
4128 new functionality, to automagically assign the result of a shell
4126 command to a variable. I'll solicit some community feedback on
4129 command to a variable. I'll solicit some community feedback on
4127 this before making it permanent.
4130 this before making it permanent.
4128
4131
4129 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4132 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4130 requested about callables for which inspect couldn't obtain a
4133 requested about callables for which inspect couldn't obtain a
4131 proper argspec. Thanks to a crash report sent by Etienne
4134 proper argspec. Thanks to a crash report sent by Etienne
4132 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4135 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4133
4136
4134 2003-12-09 Fernando Perez <fperez@colorado.edu>
4137 2003-12-09 Fernando Perez <fperez@colorado.edu>
4135
4138
4136 * IPython/genutils.py (page): patch for the pager to work across
4139 * IPython/genutils.py (page): patch for the pager to work across
4137 various versions of Windows. By Gary Bishop.
4140 various versions of Windows. By Gary Bishop.
4138
4141
4139 2003-12-04 Fernando Perez <fperez@colorado.edu>
4142 2003-12-04 Fernando Perez <fperez@colorado.edu>
4140
4143
4141 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4144 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4142 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4145 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4143 While I tested this and it looks ok, there may still be corner
4146 While I tested this and it looks ok, there may still be corner
4144 cases I've missed.
4147 cases I've missed.
4145
4148
4146 2003-12-01 Fernando Perez <fperez@colorado.edu>
4149 2003-12-01 Fernando Perez <fperez@colorado.edu>
4147
4150
4148 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4151 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4149 where a line like 'p,q=1,2' would fail because the automagic
4152 where a line like 'p,q=1,2' would fail because the automagic
4150 system would be triggered for @p.
4153 system would be triggered for @p.
4151
4154
4152 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4155 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4153 cleanups, code unmodified.
4156 cleanups, code unmodified.
4154
4157
4155 * IPython/genutils.py (Term): added a class for IPython to handle
4158 * IPython/genutils.py (Term): added a class for IPython to handle
4156 output. In most cases it will just be a proxy for stdout/err, but
4159 output. In most cases it will just be a proxy for stdout/err, but
4157 having this allows modifications to be made for some platforms,
4160 having this allows modifications to be made for some platforms,
4158 such as handling color escapes under Windows. All of this code
4161 such as handling color escapes under Windows. All of this code
4159 was contributed by Gary Bishop, with minor modifications by me.
4162 was contributed by Gary Bishop, with minor modifications by me.
4160 The actual changes affect many files.
4163 The actual changes affect many files.
4161
4164
4162 2003-11-30 Fernando Perez <fperez@colorado.edu>
4165 2003-11-30 Fernando Perez <fperez@colorado.edu>
4163
4166
4164 * IPython/iplib.py (file_matches): new completion code, courtesy
4167 * IPython/iplib.py (file_matches): new completion code, courtesy
4165 of Jeff Collins. This enables filename completion again under
4168 of Jeff Collins. This enables filename completion again under
4166 python 2.3, which disabled it at the C level.
4169 python 2.3, which disabled it at the C level.
4167
4170
4168 2003-11-11 Fernando Perez <fperez@colorado.edu>
4171 2003-11-11 Fernando Perez <fperez@colorado.edu>
4169
4172
4170 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4173 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4171 for Numeric.array(map(...)), but often convenient.
4174 for Numeric.array(map(...)), but often convenient.
4172
4175
4173 2003-11-05 Fernando Perez <fperez@colorado.edu>
4176 2003-11-05 Fernando Perez <fperez@colorado.edu>
4174
4177
4175 * IPython/numutils.py (frange): Changed a call from int() to
4178 * IPython/numutils.py (frange): Changed a call from int() to
4176 int(round()) to prevent a problem reported with arange() in the
4179 int(round()) to prevent a problem reported with arange() in the
4177 numpy list.
4180 numpy list.
4178
4181
4179 2003-10-06 Fernando Perez <fperez@colorado.edu>
4182 2003-10-06 Fernando Perez <fperez@colorado.edu>
4180
4183
4181 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4184 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4182 prevent crashes if sys lacks an argv attribute (it happens with
4185 prevent crashes if sys lacks an argv attribute (it happens with
4183 embedded interpreters which build a bare-bones sys module).
4186 embedded interpreters which build a bare-bones sys module).
4184 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4187 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4185
4188
4186 2003-09-24 Fernando Perez <fperez@colorado.edu>
4189 2003-09-24 Fernando Perez <fperez@colorado.edu>
4187
4190
4188 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4191 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4189 to protect against poorly written user objects where __getattr__
4192 to protect against poorly written user objects where __getattr__
4190 raises exceptions other than AttributeError. Thanks to a bug
4193 raises exceptions other than AttributeError. Thanks to a bug
4191 report by Oliver Sander <osander-AT-gmx.de>.
4194 report by Oliver Sander <osander-AT-gmx.de>.
4192
4195
4193 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4196 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4194 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4197 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4195
4198
4196 2003-09-09 Fernando Perez <fperez@colorado.edu>
4199 2003-09-09 Fernando Perez <fperez@colorado.edu>
4197
4200
4198 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4201 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4199 unpacking a list whith a callable as first element would
4202 unpacking a list whith a callable as first element would
4200 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4203 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4201 Collins.
4204 Collins.
4202
4205
4203 2003-08-25 *** Released version 0.5.0
4206 2003-08-25 *** Released version 0.5.0
4204
4207
4205 2003-08-22 Fernando Perez <fperez@colorado.edu>
4208 2003-08-22 Fernando Perez <fperez@colorado.edu>
4206
4209
4207 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4210 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4208 improperly defined user exceptions. Thanks to feedback from Mark
4211 improperly defined user exceptions. Thanks to feedback from Mark
4209 Russell <mrussell-AT-verio.net>.
4212 Russell <mrussell-AT-verio.net>.
4210
4213
4211 2003-08-20 Fernando Perez <fperez@colorado.edu>
4214 2003-08-20 Fernando Perez <fperez@colorado.edu>
4212
4215
4213 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4216 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4214 printing so that it would print multi-line string forms starting
4217 printing so that it would print multi-line string forms starting
4215 with a new line. This way the formatting is better respected for
4218 with a new line. This way the formatting is better respected for
4216 objects which work hard to make nice string forms.
4219 objects which work hard to make nice string forms.
4217
4220
4218 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4221 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4219 autocall would overtake data access for objects with both
4222 autocall would overtake data access for objects with both
4220 __getitem__ and __call__.
4223 __getitem__ and __call__.
4221
4224
4222 2003-08-19 *** Released version 0.5.0-rc1
4225 2003-08-19 *** Released version 0.5.0-rc1
4223
4226
4224 2003-08-19 Fernando Perez <fperez@colorado.edu>
4227 2003-08-19 Fernando Perez <fperez@colorado.edu>
4225
4228
4226 * IPython/deep_reload.py (load_tail): single tiny change here
4229 * IPython/deep_reload.py (load_tail): single tiny change here
4227 seems to fix the long-standing bug of dreload() failing to work
4230 seems to fix the long-standing bug of dreload() failing to work
4228 for dotted names. But this module is pretty tricky, so I may have
4231 for dotted names. But this module is pretty tricky, so I may have
4229 missed some subtlety. Needs more testing!.
4232 missed some subtlety. Needs more testing!.
4230
4233
4231 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4234 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4232 exceptions which have badly implemented __str__ methods.
4235 exceptions which have badly implemented __str__ methods.
4233 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4236 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4234 which I've been getting reports about from Python 2.3 users. I
4237 which I've been getting reports about from Python 2.3 users. I
4235 wish I had a simple test case to reproduce the problem, so I could
4238 wish I had a simple test case to reproduce the problem, so I could
4236 either write a cleaner workaround or file a bug report if
4239 either write a cleaner workaround or file a bug report if
4237 necessary.
4240 necessary.
4238
4241
4239 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4242 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4240 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4243 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4241 a bug report by Tjabo Kloppenburg.
4244 a bug report by Tjabo Kloppenburg.
4242
4245
4243 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4246 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4244 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4247 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4245 seems rather unstable. Thanks to a bug report by Tjabo
4248 seems rather unstable. Thanks to a bug report by Tjabo
4246 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4249 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4247
4250
4248 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4251 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4249 this out soon because of the critical fixes in the inner loop for
4252 this out soon because of the critical fixes in the inner loop for
4250 generators.
4253 generators.
4251
4254
4252 * IPython/Magic.py (Magic.getargspec): removed. This (and
4255 * IPython/Magic.py (Magic.getargspec): removed. This (and
4253 _get_def) have been obsoleted by OInspect for a long time, I
4256 _get_def) have been obsoleted by OInspect for a long time, I
4254 hadn't noticed that they were dead code.
4257 hadn't noticed that they were dead code.
4255 (Magic._ofind): restored _ofind functionality for a few literals
4258 (Magic._ofind): restored _ofind functionality for a few literals
4256 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4259 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4257 for things like "hello".capitalize?, since that would require a
4260 for things like "hello".capitalize?, since that would require a
4258 potentially dangerous eval() again.
4261 potentially dangerous eval() again.
4259
4262
4260 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4263 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4261 logic a bit more to clean up the escapes handling and minimize the
4264 logic a bit more to clean up the escapes handling and minimize the
4262 use of _ofind to only necessary cases. The interactive 'feel' of
4265 use of _ofind to only necessary cases. The interactive 'feel' of
4263 IPython should have improved quite a bit with the changes in
4266 IPython should have improved quite a bit with the changes in
4264 _prefilter and _ofind (besides being far safer than before).
4267 _prefilter and _ofind (besides being far safer than before).
4265
4268
4266 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4269 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4267 obscure, never reported). Edit would fail to find the object to
4270 obscure, never reported). Edit would fail to find the object to
4268 edit under some circumstances.
4271 edit under some circumstances.
4269 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4272 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4270 which were causing double-calling of generators. Those eval calls
4273 which were causing double-calling of generators. Those eval calls
4271 were _very_ dangerous, since code with side effects could be
4274 were _very_ dangerous, since code with side effects could be
4272 triggered. As they say, 'eval is evil'... These were the
4275 triggered. As they say, 'eval is evil'... These were the
4273 nastiest evals in IPython. Besides, _ofind is now far simpler,
4276 nastiest evals in IPython. Besides, _ofind is now far simpler,
4274 and it should also be quite a bit faster. Its use of inspect is
4277 and it should also be quite a bit faster. Its use of inspect is
4275 also safer, so perhaps some of the inspect-related crashes I've
4278 also safer, so perhaps some of the inspect-related crashes I've
4276 seen lately with Python 2.3 might be taken care of. That will
4279 seen lately with Python 2.3 might be taken care of. That will
4277 need more testing.
4280 need more testing.
4278
4281
4279 2003-08-17 Fernando Perez <fperez@colorado.edu>
4282 2003-08-17 Fernando Perez <fperez@colorado.edu>
4280
4283
4281 * IPython/iplib.py (InteractiveShell._prefilter): significant
4284 * IPython/iplib.py (InteractiveShell._prefilter): significant
4282 simplifications to the logic for handling user escapes. Faster
4285 simplifications to the logic for handling user escapes. Faster
4283 and simpler code.
4286 and simpler code.
4284
4287
4285 2003-08-14 Fernando Perez <fperez@colorado.edu>
4288 2003-08-14 Fernando Perez <fperez@colorado.edu>
4286
4289
4287 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4290 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4288 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4291 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4289 but it should be quite a bit faster. And the recursive version
4292 but it should be quite a bit faster. And the recursive version
4290 generated O(log N) intermediate storage for all rank>1 arrays,
4293 generated O(log N) intermediate storage for all rank>1 arrays,
4291 even if they were contiguous.
4294 even if they were contiguous.
4292 (l1norm): Added this function.
4295 (l1norm): Added this function.
4293 (norm): Added this function for arbitrary norms (including
4296 (norm): Added this function for arbitrary norms (including
4294 l-infinity). l1 and l2 are still special cases for convenience
4297 l-infinity). l1 and l2 are still special cases for convenience
4295 and speed.
4298 and speed.
4296
4299
4297 2003-08-03 Fernando Perez <fperez@colorado.edu>
4300 2003-08-03 Fernando Perez <fperez@colorado.edu>
4298
4301
4299 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4302 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4300 exceptions, which now raise PendingDeprecationWarnings in Python
4303 exceptions, which now raise PendingDeprecationWarnings in Python
4301 2.3. There were some in Magic and some in Gnuplot2.
4304 2.3. There were some in Magic and some in Gnuplot2.
4302
4305
4303 2003-06-30 Fernando Perez <fperez@colorado.edu>
4306 2003-06-30 Fernando Perez <fperez@colorado.edu>
4304
4307
4305 * IPython/genutils.py (page): modified to call curses only for
4308 * IPython/genutils.py (page): modified to call curses only for
4306 terminals where TERM=='xterm'. After problems under many other
4309 terminals where TERM=='xterm'. After problems under many other
4307 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4310 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4308
4311
4309 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4312 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4310 would be triggered when readline was absent. This was just an old
4313 would be triggered when readline was absent. This was just an old
4311 debugging statement I'd forgotten to take out.
4314 debugging statement I'd forgotten to take out.
4312
4315
4313 2003-06-20 Fernando Perez <fperez@colorado.edu>
4316 2003-06-20 Fernando Perez <fperez@colorado.edu>
4314
4317
4315 * IPython/genutils.py (clock): modified to return only user time
4318 * IPython/genutils.py (clock): modified to return only user time
4316 (not counting system time), after a discussion on scipy. While
4319 (not counting system time), after a discussion on scipy. While
4317 system time may be a useful quantity occasionally, it may much
4320 system time may be a useful quantity occasionally, it may much
4318 more easily be skewed by occasional swapping or other similar
4321 more easily be skewed by occasional swapping or other similar
4319 activity.
4322 activity.
4320
4323
4321 2003-06-05 Fernando Perez <fperez@colorado.edu>
4324 2003-06-05 Fernando Perez <fperez@colorado.edu>
4322
4325
4323 * IPython/numutils.py (identity): new function, for building
4326 * IPython/numutils.py (identity): new function, for building
4324 arbitrary rank Kronecker deltas (mostly backwards compatible with
4327 arbitrary rank Kronecker deltas (mostly backwards compatible with
4325 Numeric.identity)
4328 Numeric.identity)
4326
4329
4327 2003-06-03 Fernando Perez <fperez@colorado.edu>
4330 2003-06-03 Fernando Perez <fperez@colorado.edu>
4328
4331
4329 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4332 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4330 arguments passed to magics with spaces, to allow trailing '\' to
4333 arguments passed to magics with spaces, to allow trailing '\' to
4331 work normally (mainly for Windows users).
4334 work normally (mainly for Windows users).
4332
4335
4333 2003-05-29 Fernando Perez <fperez@colorado.edu>
4336 2003-05-29 Fernando Perez <fperez@colorado.edu>
4334
4337
4335 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4338 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4336 instead of pydoc.help. This fixes a bizarre behavior where
4339 instead of pydoc.help. This fixes a bizarre behavior where
4337 printing '%s' % locals() would trigger the help system. Now
4340 printing '%s' % locals() would trigger the help system. Now
4338 ipython behaves like normal python does.
4341 ipython behaves like normal python does.
4339
4342
4340 Note that if one does 'from pydoc import help', the bizarre
4343 Note that if one does 'from pydoc import help', the bizarre
4341 behavior returns, but this will also happen in normal python, so
4344 behavior returns, but this will also happen in normal python, so
4342 it's not an ipython bug anymore (it has to do with how pydoc.help
4345 it's not an ipython bug anymore (it has to do with how pydoc.help
4343 is implemented).
4346 is implemented).
4344
4347
4345 2003-05-22 Fernando Perez <fperez@colorado.edu>
4348 2003-05-22 Fernando Perez <fperez@colorado.edu>
4346
4349
4347 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4350 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4348 return [] instead of None when nothing matches, also match to end
4351 return [] instead of None when nothing matches, also match to end
4349 of line. Patch by Gary Bishop.
4352 of line. Patch by Gary Bishop.
4350
4353
4351 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4354 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4352 protection as before, for files passed on the command line. This
4355 protection as before, for files passed on the command line. This
4353 prevents the CrashHandler from kicking in if user files call into
4356 prevents the CrashHandler from kicking in if user files call into
4354 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4357 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4355 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4358 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4356
4359
4357 2003-05-20 *** Released version 0.4.0
4360 2003-05-20 *** Released version 0.4.0
4358
4361
4359 2003-05-20 Fernando Perez <fperez@colorado.edu>
4362 2003-05-20 Fernando Perez <fperez@colorado.edu>
4360
4363
4361 * setup.py: added support for manpages. It's a bit hackish b/c of
4364 * setup.py: added support for manpages. It's a bit hackish b/c of
4362 a bug in the way the bdist_rpm distutils target handles gzipped
4365 a bug in the way the bdist_rpm distutils target handles gzipped
4363 manpages, but it works. After a patch by Jack.
4366 manpages, but it works. After a patch by Jack.
4364
4367
4365 2003-05-19 Fernando Perez <fperez@colorado.edu>
4368 2003-05-19 Fernando Perez <fperez@colorado.edu>
4366
4369
4367 * IPython/numutils.py: added a mockup of the kinds module, since
4370 * IPython/numutils.py: added a mockup of the kinds module, since
4368 it was recently removed from Numeric. This way, numutils will
4371 it was recently removed from Numeric. This way, numutils will
4369 work for all users even if they are missing kinds.
4372 work for all users even if they are missing kinds.
4370
4373
4371 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4374 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4372 failure, which can occur with SWIG-wrapped extensions. After a
4375 failure, which can occur with SWIG-wrapped extensions. After a
4373 crash report from Prabhu.
4376 crash report from Prabhu.
4374
4377
4375 2003-05-16 Fernando Perez <fperez@colorado.edu>
4378 2003-05-16 Fernando Perez <fperez@colorado.edu>
4376
4379
4377 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4380 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4378 protect ipython from user code which may call directly
4381 protect ipython from user code which may call directly
4379 sys.excepthook (this looks like an ipython crash to the user, even
4382 sys.excepthook (this looks like an ipython crash to the user, even
4380 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4383 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4381 This is especially important to help users of WxWindows, but may
4384 This is especially important to help users of WxWindows, but may
4382 also be useful in other cases.
4385 also be useful in other cases.
4383
4386
4384 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4387 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4385 an optional tb_offset to be specified, and to preserve exception
4388 an optional tb_offset to be specified, and to preserve exception
4386 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4389 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4387
4390
4388 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4391 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4389
4392
4390 2003-05-15 Fernando Perez <fperez@colorado.edu>
4393 2003-05-15 Fernando Perez <fperez@colorado.edu>
4391
4394
4392 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4395 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4393 installing for a new user under Windows.
4396 installing for a new user under Windows.
4394
4397
4395 2003-05-12 Fernando Perez <fperez@colorado.edu>
4398 2003-05-12 Fernando Perez <fperez@colorado.edu>
4396
4399
4397 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4400 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4398 handler for Emacs comint-based lines. Currently it doesn't do
4401 handler for Emacs comint-based lines. Currently it doesn't do
4399 much (but importantly, it doesn't update the history cache). In
4402 much (but importantly, it doesn't update the history cache). In
4400 the future it may be expanded if Alex needs more functionality
4403 the future it may be expanded if Alex needs more functionality
4401 there.
4404 there.
4402
4405
4403 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4406 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4404 info to crash reports.
4407 info to crash reports.
4405
4408
4406 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4409 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4407 just like Python's -c. Also fixed crash with invalid -color
4410 just like Python's -c. Also fixed crash with invalid -color
4408 option value at startup. Thanks to Will French
4411 option value at startup. Thanks to Will French
4409 <wfrench-AT-bestweb.net> for the bug report.
4412 <wfrench-AT-bestweb.net> for the bug report.
4410
4413
4411 2003-05-09 Fernando Perez <fperez@colorado.edu>
4414 2003-05-09 Fernando Perez <fperez@colorado.edu>
4412
4415
4413 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4416 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4414 to EvalDict (it's a mapping, after all) and simplified its code
4417 to EvalDict (it's a mapping, after all) and simplified its code
4415 quite a bit, after a nice discussion on c.l.py where Gustavo
4418 quite a bit, after a nice discussion on c.l.py where Gustavo
4416 Córdova <gcordova-AT-sismex.com> suggested the new version.
4419 Córdova <gcordova-AT-sismex.com> suggested the new version.
4417
4420
4418 2003-04-30 Fernando Perez <fperez@colorado.edu>
4421 2003-04-30 Fernando Perez <fperez@colorado.edu>
4419
4422
4420 * IPython/genutils.py (timings_out): modified it to reduce its
4423 * IPython/genutils.py (timings_out): modified it to reduce its
4421 overhead in the common reps==1 case.
4424 overhead in the common reps==1 case.
4422
4425
4423 2003-04-29 Fernando Perez <fperez@colorado.edu>
4426 2003-04-29 Fernando Perez <fperez@colorado.edu>
4424
4427
4425 * IPython/genutils.py (timings_out): Modified to use the resource
4428 * IPython/genutils.py (timings_out): Modified to use the resource
4426 module, which avoids the wraparound problems of time.clock().
4429 module, which avoids the wraparound problems of time.clock().
4427
4430
4428 2003-04-17 *** Released version 0.2.15pre4
4431 2003-04-17 *** Released version 0.2.15pre4
4429
4432
4430 2003-04-17 Fernando Perez <fperez@colorado.edu>
4433 2003-04-17 Fernando Perez <fperez@colorado.edu>
4431
4434
4432 * setup.py (scriptfiles): Split windows-specific stuff over to a
4435 * setup.py (scriptfiles): Split windows-specific stuff over to a
4433 separate file, in an attempt to have a Windows GUI installer.
4436 separate file, in an attempt to have a Windows GUI installer.
4434 That didn't work, but part of the groundwork is done.
4437 That didn't work, but part of the groundwork is done.
4435
4438
4436 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4439 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4437 indent/unindent with 4 spaces. Particularly useful in combination
4440 indent/unindent with 4 spaces. Particularly useful in combination
4438 with the new auto-indent option.
4441 with the new auto-indent option.
4439
4442
4440 2003-04-16 Fernando Perez <fperez@colorado.edu>
4443 2003-04-16 Fernando Perez <fperez@colorado.edu>
4441
4444
4442 * IPython/Magic.py: various replacements of self.rc for
4445 * IPython/Magic.py: various replacements of self.rc for
4443 self.shell.rc. A lot more remains to be done to fully disentangle
4446 self.shell.rc. A lot more remains to be done to fully disentangle
4444 this class from the main Shell class.
4447 this class from the main Shell class.
4445
4448
4446 * IPython/GnuplotRuntime.py: added checks for mouse support so
4449 * IPython/GnuplotRuntime.py: added checks for mouse support so
4447 that we don't try to enable it if the current gnuplot doesn't
4450 that we don't try to enable it if the current gnuplot doesn't
4448 really support it. Also added checks so that we don't try to
4451 really support it. Also added checks so that we don't try to
4449 enable persist under Windows (where Gnuplot doesn't recognize the
4452 enable persist under Windows (where Gnuplot doesn't recognize the
4450 option).
4453 option).
4451
4454
4452 * IPython/iplib.py (InteractiveShell.interact): Added optional
4455 * IPython/iplib.py (InteractiveShell.interact): Added optional
4453 auto-indenting code, after a patch by King C. Shu
4456 auto-indenting code, after a patch by King C. Shu
4454 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4457 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4455 get along well with pasting indented code. If I ever figure out
4458 get along well with pasting indented code. If I ever figure out
4456 how to make that part go well, it will become on by default.
4459 how to make that part go well, it will become on by default.
4457
4460
4458 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4461 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4459 crash ipython if there was an unmatched '%' in the user's prompt
4462 crash ipython if there was an unmatched '%' in the user's prompt
4460 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4463 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4461
4464
4462 * IPython/iplib.py (InteractiveShell.interact): removed the
4465 * IPython/iplib.py (InteractiveShell.interact): removed the
4463 ability to ask the user whether he wants to crash or not at the
4466 ability to ask the user whether he wants to crash or not at the
4464 'last line' exception handler. Calling functions at that point
4467 'last line' exception handler. Calling functions at that point
4465 changes the stack, and the error reports would have incorrect
4468 changes the stack, and the error reports would have incorrect
4466 tracebacks.
4469 tracebacks.
4467
4470
4468 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4471 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4469 pass through a peger a pretty-printed form of any object. After a
4472 pass through a peger a pretty-printed form of any object. After a
4470 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4473 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4471
4474
4472 2003-04-14 Fernando Perez <fperez@colorado.edu>
4475 2003-04-14 Fernando Perez <fperez@colorado.edu>
4473
4476
4474 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4477 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4475 all files in ~ would be modified at first install (instead of
4478 all files in ~ would be modified at first install (instead of
4476 ~/.ipython). This could be potentially disastrous, as the
4479 ~/.ipython). This could be potentially disastrous, as the
4477 modification (make line-endings native) could damage binary files.
4480 modification (make line-endings native) could damage binary files.
4478
4481
4479 2003-04-10 Fernando Perez <fperez@colorado.edu>
4482 2003-04-10 Fernando Perez <fperez@colorado.edu>
4480
4483
4481 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4484 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4482 handle only lines which are invalid python. This now means that
4485 handle only lines which are invalid python. This now means that
4483 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4486 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4484 for the bug report.
4487 for the bug report.
4485
4488
4486 2003-04-01 Fernando Perez <fperez@colorado.edu>
4489 2003-04-01 Fernando Perez <fperez@colorado.edu>
4487
4490
4488 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4491 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4489 where failing to set sys.last_traceback would crash pdb.pm().
4492 where failing to set sys.last_traceback would crash pdb.pm().
4490 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4493 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4491 report.
4494 report.
4492
4495
4493 2003-03-25 Fernando Perez <fperez@colorado.edu>
4496 2003-03-25 Fernando Perez <fperez@colorado.edu>
4494
4497
4495 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4498 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4496 before printing it (it had a lot of spurious blank lines at the
4499 before printing it (it had a lot of spurious blank lines at the
4497 end).
4500 end).
4498
4501
4499 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4502 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4500 output would be sent 21 times! Obviously people don't use this
4503 output would be sent 21 times! Obviously people don't use this
4501 too often, or I would have heard about it.
4504 too often, or I would have heard about it.
4502
4505
4503 2003-03-24 Fernando Perez <fperez@colorado.edu>
4506 2003-03-24 Fernando Perez <fperez@colorado.edu>
4504
4507
4505 * setup.py (scriptfiles): renamed the data_files parameter from
4508 * setup.py (scriptfiles): renamed the data_files parameter from
4506 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4509 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4507 for the patch.
4510 for the patch.
4508
4511
4509 2003-03-20 Fernando Perez <fperez@colorado.edu>
4512 2003-03-20 Fernando Perez <fperez@colorado.edu>
4510
4513
4511 * IPython/genutils.py (error): added error() and fatal()
4514 * IPython/genutils.py (error): added error() and fatal()
4512 functions.
4515 functions.
4513
4516
4514 2003-03-18 *** Released version 0.2.15pre3
4517 2003-03-18 *** Released version 0.2.15pre3
4515
4518
4516 2003-03-18 Fernando Perez <fperez@colorado.edu>
4519 2003-03-18 Fernando Perez <fperez@colorado.edu>
4517
4520
4518 * setupext/install_data_ext.py
4521 * setupext/install_data_ext.py
4519 (install_data_ext.initialize_options): Class contributed by Jack
4522 (install_data_ext.initialize_options): Class contributed by Jack
4520 Moffit for fixing the old distutils hack. He is sending this to
4523 Moffit for fixing the old distutils hack. He is sending this to
4521 the distutils folks so in the future we may not need it as a
4524 the distutils folks so in the future we may not need it as a
4522 private fix.
4525 private fix.
4523
4526
4524 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4527 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4525 changes for Debian packaging. See his patch for full details.
4528 changes for Debian packaging. See his patch for full details.
4526 The old distutils hack of making the ipythonrc* files carry a
4529 The old distutils hack of making the ipythonrc* files carry a
4527 bogus .py extension is gone, at last. Examples were moved to a
4530 bogus .py extension is gone, at last. Examples were moved to a
4528 separate subdir under doc/, and the separate executable scripts
4531 separate subdir under doc/, and the separate executable scripts
4529 now live in their own directory. Overall a great cleanup. The
4532 now live in their own directory. Overall a great cleanup. The
4530 manual was updated to use the new files, and setup.py has been
4533 manual was updated to use the new files, and setup.py has been
4531 fixed for this setup.
4534 fixed for this setup.
4532
4535
4533 * IPython/PyColorize.py (Parser.usage): made non-executable and
4536 * IPython/PyColorize.py (Parser.usage): made non-executable and
4534 created a pycolor wrapper around it to be included as a script.
4537 created a pycolor wrapper around it to be included as a script.
4535
4538
4536 2003-03-12 *** Released version 0.2.15pre2
4539 2003-03-12 *** Released version 0.2.15pre2
4537
4540
4538 2003-03-12 Fernando Perez <fperez@colorado.edu>
4541 2003-03-12 Fernando Perez <fperez@colorado.edu>
4539
4542
4540 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4543 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4541 long-standing problem with garbage characters in some terminals.
4544 long-standing problem with garbage characters in some terminals.
4542 The issue was really that the \001 and \002 escapes must _only_ be
4545 The issue was really that the \001 and \002 escapes must _only_ be
4543 passed to input prompts (which call readline), but _never_ to
4546 passed to input prompts (which call readline), but _never_ to
4544 normal text to be printed on screen. I changed ColorANSI to have
4547 normal text to be printed on screen. I changed ColorANSI to have
4545 two classes: TermColors and InputTermColors, each with the
4548 two classes: TermColors and InputTermColors, each with the
4546 appropriate escapes for input prompts or normal text. The code in
4549 appropriate escapes for input prompts or normal text. The code in
4547 Prompts.py got slightly more complicated, but this very old and
4550 Prompts.py got slightly more complicated, but this very old and
4548 annoying bug is finally fixed.
4551 annoying bug is finally fixed.
4549
4552
4550 All the credit for nailing down the real origin of this problem
4553 All the credit for nailing down the real origin of this problem
4551 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4554 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4552 *Many* thanks to him for spending quite a bit of effort on this.
4555 *Many* thanks to him for spending quite a bit of effort on this.
4553
4556
4554 2003-03-05 *** Released version 0.2.15pre1
4557 2003-03-05 *** Released version 0.2.15pre1
4555
4558
4556 2003-03-03 Fernando Perez <fperez@colorado.edu>
4559 2003-03-03 Fernando Perez <fperez@colorado.edu>
4557
4560
4558 * IPython/FakeModule.py: Moved the former _FakeModule to a
4561 * IPython/FakeModule.py: Moved the former _FakeModule to a
4559 separate file, because it's also needed by Magic (to fix a similar
4562 separate file, because it's also needed by Magic (to fix a similar
4560 pickle-related issue in @run).
4563 pickle-related issue in @run).
4561
4564
4562 2003-03-02 Fernando Perez <fperez@colorado.edu>
4565 2003-03-02 Fernando Perez <fperez@colorado.edu>
4563
4566
4564 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4567 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4565 the autocall option at runtime.
4568 the autocall option at runtime.
4566 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4569 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4567 across Magic.py to start separating Magic from InteractiveShell.
4570 across Magic.py to start separating Magic from InteractiveShell.
4568 (Magic._ofind): Fixed to return proper namespace for dotted
4571 (Magic._ofind): Fixed to return proper namespace for dotted
4569 names. Before, a dotted name would always return 'not currently
4572 names. Before, a dotted name would always return 'not currently
4570 defined', because it would find the 'parent'. s.x would be found,
4573 defined', because it would find the 'parent'. s.x would be found,
4571 but since 'x' isn't defined by itself, it would get confused.
4574 but since 'x' isn't defined by itself, it would get confused.
4572 (Magic.magic_run): Fixed pickling problems reported by Ralf
4575 (Magic.magic_run): Fixed pickling problems reported by Ralf
4573 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4576 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4574 that I'd used when Mike Heeter reported similar issues at the
4577 that I'd used when Mike Heeter reported similar issues at the
4575 top-level, but now for @run. It boils down to injecting the
4578 top-level, but now for @run. It boils down to injecting the
4576 namespace where code is being executed with something that looks
4579 namespace where code is being executed with something that looks
4577 enough like a module to fool pickle.dump(). Since a pickle stores
4580 enough like a module to fool pickle.dump(). Since a pickle stores
4578 a named reference to the importing module, we need this for
4581 a named reference to the importing module, we need this for
4579 pickles to save something sensible.
4582 pickles to save something sensible.
4580
4583
4581 * IPython/ipmaker.py (make_IPython): added an autocall option.
4584 * IPython/ipmaker.py (make_IPython): added an autocall option.
4582
4585
4583 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4586 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4584 the auto-eval code. Now autocalling is an option, and the code is
4587 the auto-eval code. Now autocalling is an option, and the code is
4585 also vastly safer. There is no more eval() involved at all.
4588 also vastly safer. There is no more eval() involved at all.
4586
4589
4587 2003-03-01 Fernando Perez <fperez@colorado.edu>
4590 2003-03-01 Fernando Perez <fperez@colorado.edu>
4588
4591
4589 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4592 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4590 dict with named keys instead of a tuple.
4593 dict with named keys instead of a tuple.
4591
4594
4592 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4595 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4593
4596
4594 * setup.py (make_shortcut): Fixed message about directories
4597 * setup.py (make_shortcut): Fixed message about directories
4595 created during Windows installation (the directories were ok, just
4598 created during Windows installation (the directories were ok, just
4596 the printed message was misleading). Thanks to Chris Liechti
4599 the printed message was misleading). Thanks to Chris Liechti
4597 <cliechti-AT-gmx.net> for the heads up.
4600 <cliechti-AT-gmx.net> for the heads up.
4598
4601
4599 2003-02-21 Fernando Perez <fperez@colorado.edu>
4602 2003-02-21 Fernando Perez <fperez@colorado.edu>
4600
4603
4601 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4604 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4602 of ValueError exception when checking for auto-execution. This
4605 of ValueError exception when checking for auto-execution. This
4603 one is raised by things like Numeric arrays arr.flat when the
4606 one is raised by things like Numeric arrays arr.flat when the
4604 array is non-contiguous.
4607 array is non-contiguous.
4605
4608
4606 2003-01-31 Fernando Perez <fperez@colorado.edu>
4609 2003-01-31 Fernando Perez <fperez@colorado.edu>
4607
4610
4608 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4611 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4609 not return any value at all (even though the command would get
4612 not return any value at all (even though the command would get
4610 executed).
4613 executed).
4611 (xsys): Flush stdout right after printing the command to ensure
4614 (xsys): Flush stdout right after printing the command to ensure
4612 proper ordering of commands and command output in the total
4615 proper ordering of commands and command output in the total
4613 output.
4616 output.
4614 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4617 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4615 system/getoutput as defaults. The old ones are kept for
4618 system/getoutput as defaults. The old ones are kept for
4616 compatibility reasons, so no code which uses this library needs
4619 compatibility reasons, so no code which uses this library needs
4617 changing.
4620 changing.
4618
4621
4619 2003-01-27 *** Released version 0.2.14
4622 2003-01-27 *** Released version 0.2.14
4620
4623
4621 2003-01-25 Fernando Perez <fperez@colorado.edu>
4624 2003-01-25 Fernando Perez <fperez@colorado.edu>
4622
4625
4623 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4626 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4624 functions defined in previous edit sessions could not be re-edited
4627 functions defined in previous edit sessions could not be re-edited
4625 (because the temp files were immediately removed). Now temp files
4628 (because the temp files were immediately removed). Now temp files
4626 are removed only at IPython's exit.
4629 are removed only at IPython's exit.
4627 (Magic.magic_run): Improved @run to perform shell-like expansions
4630 (Magic.magic_run): Improved @run to perform shell-like expansions
4628 on its arguments (~users and $VARS). With this, @run becomes more
4631 on its arguments (~users and $VARS). With this, @run becomes more
4629 like a normal command-line.
4632 like a normal command-line.
4630
4633
4631 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4634 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4632 bugs related to embedding and cleaned up that code. A fairly
4635 bugs related to embedding and cleaned up that code. A fairly
4633 important one was the impossibility to access the global namespace
4636 important one was the impossibility to access the global namespace
4634 through the embedded IPython (only local variables were visible).
4637 through the embedded IPython (only local variables were visible).
4635
4638
4636 2003-01-14 Fernando Perez <fperez@colorado.edu>
4639 2003-01-14 Fernando Perez <fperez@colorado.edu>
4637
4640
4638 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4641 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4639 auto-calling to be a bit more conservative. Now it doesn't get
4642 auto-calling to be a bit more conservative. Now it doesn't get
4640 triggered if any of '!=()<>' are in the rest of the input line, to
4643 triggered if any of '!=()<>' are in the rest of the input line, to
4641 allow comparing callables. Thanks to Alex for the heads up.
4644 allow comparing callables. Thanks to Alex for the heads up.
4642
4645
4643 2003-01-07 Fernando Perez <fperez@colorado.edu>
4646 2003-01-07 Fernando Perez <fperez@colorado.edu>
4644
4647
4645 * IPython/genutils.py (page): fixed estimation of the number of
4648 * IPython/genutils.py (page): fixed estimation of the number of
4646 lines in a string to be paged to simply count newlines. This
4649 lines in a string to be paged to simply count newlines. This
4647 prevents over-guessing due to embedded escape sequences. A better
4650 prevents over-guessing due to embedded escape sequences. A better
4648 long-term solution would involve stripping out the control chars
4651 long-term solution would involve stripping out the control chars
4649 for the count, but it's potentially so expensive I just don't
4652 for the count, but it's potentially so expensive I just don't
4650 think it's worth doing.
4653 think it's worth doing.
4651
4654
4652 2002-12-19 *** Released version 0.2.14pre50
4655 2002-12-19 *** Released version 0.2.14pre50
4653
4656
4654 2002-12-19 Fernando Perez <fperez@colorado.edu>
4657 2002-12-19 Fernando Perez <fperez@colorado.edu>
4655
4658
4656 * tools/release (version): Changed release scripts to inform
4659 * tools/release (version): Changed release scripts to inform
4657 Andrea and build a NEWS file with a list of recent changes.
4660 Andrea and build a NEWS file with a list of recent changes.
4658
4661
4659 * IPython/ColorANSI.py (__all__): changed terminal detection
4662 * IPython/ColorANSI.py (__all__): changed terminal detection
4660 code. Seems to work better for xterms without breaking
4663 code. Seems to work better for xterms without breaking
4661 konsole. Will need more testing to determine if WinXP and Mac OSX
4664 konsole. Will need more testing to determine if WinXP and Mac OSX
4662 also work ok.
4665 also work ok.
4663
4666
4664 2002-12-18 *** Released version 0.2.14pre49
4667 2002-12-18 *** Released version 0.2.14pre49
4665
4668
4666 2002-12-18 Fernando Perez <fperez@colorado.edu>
4669 2002-12-18 Fernando Perez <fperez@colorado.edu>
4667
4670
4668 * Docs: added new info about Mac OSX, from Andrea.
4671 * Docs: added new info about Mac OSX, from Andrea.
4669
4672
4670 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4673 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4671 allow direct plotting of python strings whose format is the same
4674 allow direct plotting of python strings whose format is the same
4672 of gnuplot data files.
4675 of gnuplot data files.
4673
4676
4674 2002-12-16 Fernando Perez <fperez@colorado.edu>
4677 2002-12-16 Fernando Perez <fperez@colorado.edu>
4675
4678
4676 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4679 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4677 value of exit question to be acknowledged.
4680 value of exit question to be acknowledged.
4678
4681
4679 2002-12-03 Fernando Perez <fperez@colorado.edu>
4682 2002-12-03 Fernando Perez <fperez@colorado.edu>
4680
4683
4681 * IPython/ipmaker.py: removed generators, which had been added
4684 * IPython/ipmaker.py: removed generators, which had been added
4682 by mistake in an earlier debugging run. This was causing trouble
4685 by mistake in an earlier debugging run. This was causing trouble
4683 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4686 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4684 for pointing this out.
4687 for pointing this out.
4685
4688
4686 2002-11-17 Fernando Perez <fperez@colorado.edu>
4689 2002-11-17 Fernando Perez <fperez@colorado.edu>
4687
4690
4688 * Manual: updated the Gnuplot section.
4691 * Manual: updated the Gnuplot section.
4689
4692
4690 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4693 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4691 a much better split of what goes in Runtime and what goes in
4694 a much better split of what goes in Runtime and what goes in
4692 Interactive.
4695 Interactive.
4693
4696
4694 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4697 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4695 being imported from iplib.
4698 being imported from iplib.
4696
4699
4697 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4700 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4698 for command-passing. Now the global Gnuplot instance is called
4701 for command-passing. Now the global Gnuplot instance is called
4699 'gp' instead of 'g', which was really a far too fragile and
4702 'gp' instead of 'g', which was really a far too fragile and
4700 common name.
4703 common name.
4701
4704
4702 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4705 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4703 bounding boxes generated by Gnuplot for square plots.
4706 bounding boxes generated by Gnuplot for square plots.
4704
4707
4705 * IPython/genutils.py (popkey): new function added. I should
4708 * IPython/genutils.py (popkey): new function added. I should
4706 suggest this on c.l.py as a dict method, it seems useful.
4709 suggest this on c.l.py as a dict method, it seems useful.
4707
4710
4708 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4711 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4709 to transparently handle PostScript generation. MUCH better than
4712 to transparently handle PostScript generation. MUCH better than
4710 the previous plot_eps/replot_eps (which I removed now). The code
4713 the previous plot_eps/replot_eps (which I removed now). The code
4711 is also fairly clean and well documented now (including
4714 is also fairly clean and well documented now (including
4712 docstrings).
4715 docstrings).
4713
4716
4714 2002-11-13 Fernando Perez <fperez@colorado.edu>
4717 2002-11-13 Fernando Perez <fperez@colorado.edu>
4715
4718
4716 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4719 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4717 (inconsistent with options).
4720 (inconsistent with options).
4718
4721
4719 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4722 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4720 manually disabled, I don't know why. Fixed it.
4723 manually disabled, I don't know why. Fixed it.
4721 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4724 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4722 eps output.
4725 eps output.
4723
4726
4724 2002-11-12 Fernando Perez <fperez@colorado.edu>
4727 2002-11-12 Fernando Perez <fperez@colorado.edu>
4725
4728
4726 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4729 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4727 don't propagate up to caller. Fixes crash reported by François
4730 don't propagate up to caller. Fixes crash reported by François
4728 Pinard.
4731 Pinard.
4729
4732
4730 2002-11-09 Fernando Perez <fperez@colorado.edu>
4733 2002-11-09 Fernando Perez <fperez@colorado.edu>
4731
4734
4732 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4735 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4733 history file for new users.
4736 history file for new users.
4734 (make_IPython): fixed bug where initial install would leave the
4737 (make_IPython): fixed bug where initial install would leave the
4735 user running in the .ipython dir.
4738 user running in the .ipython dir.
4736 (make_IPython): fixed bug where config dir .ipython would be
4739 (make_IPython): fixed bug where config dir .ipython would be
4737 created regardless of the given -ipythondir option. Thanks to Cory
4740 created regardless of the given -ipythondir option. Thanks to Cory
4738 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4741 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4739
4742
4740 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4743 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4741 type confirmations. Will need to use it in all of IPython's code
4744 type confirmations. Will need to use it in all of IPython's code
4742 consistently.
4745 consistently.
4743
4746
4744 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4747 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4745 context to print 31 lines instead of the default 5. This will make
4748 context to print 31 lines instead of the default 5. This will make
4746 the crash reports extremely detailed in case the problem is in
4749 the crash reports extremely detailed in case the problem is in
4747 libraries I don't have access to.
4750 libraries I don't have access to.
4748
4751
4749 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4752 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4750 line of defense' code to still crash, but giving users fair
4753 line of defense' code to still crash, but giving users fair
4751 warning. I don't want internal errors to go unreported: if there's
4754 warning. I don't want internal errors to go unreported: if there's
4752 an internal problem, IPython should crash and generate a full
4755 an internal problem, IPython should crash and generate a full
4753 report.
4756 report.
4754
4757
4755 2002-11-08 Fernando Perez <fperez@colorado.edu>
4758 2002-11-08 Fernando Perez <fperez@colorado.edu>
4756
4759
4757 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4760 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4758 otherwise uncaught exceptions which can appear if people set
4761 otherwise uncaught exceptions which can appear if people set
4759 sys.stdout to something badly broken. Thanks to a crash report
4762 sys.stdout to something badly broken. Thanks to a crash report
4760 from henni-AT-mail.brainbot.com.
4763 from henni-AT-mail.brainbot.com.
4761
4764
4762 2002-11-04 Fernando Perez <fperez@colorado.edu>
4765 2002-11-04 Fernando Perez <fperez@colorado.edu>
4763
4766
4764 * IPython/iplib.py (InteractiveShell.interact): added
4767 * IPython/iplib.py (InteractiveShell.interact): added
4765 __IPYTHON__active to the builtins. It's a flag which goes on when
4768 __IPYTHON__active to the builtins. It's a flag which goes on when
4766 the interaction starts and goes off again when it stops. This
4769 the interaction starts and goes off again when it stops. This
4767 allows embedding code to detect being inside IPython. Before this
4770 allows embedding code to detect being inside IPython. Before this
4768 was done via __IPYTHON__, but that only shows that an IPython
4771 was done via __IPYTHON__, but that only shows that an IPython
4769 instance has been created.
4772 instance has been created.
4770
4773
4771 * IPython/Magic.py (Magic.magic_env): I realized that in a
4774 * IPython/Magic.py (Magic.magic_env): I realized that in a
4772 UserDict, instance.data holds the data as a normal dict. So I
4775 UserDict, instance.data holds the data as a normal dict. So I
4773 modified @env to return os.environ.data instead of rebuilding a
4776 modified @env to return os.environ.data instead of rebuilding a
4774 dict by hand.
4777 dict by hand.
4775
4778
4776 2002-11-02 Fernando Perez <fperez@colorado.edu>
4779 2002-11-02 Fernando Perez <fperez@colorado.edu>
4777
4780
4778 * IPython/genutils.py (warn): changed so that level 1 prints no
4781 * IPython/genutils.py (warn): changed so that level 1 prints no
4779 header. Level 2 is now the default (with 'WARNING' header, as
4782 header. Level 2 is now the default (with 'WARNING' header, as
4780 before). I think I tracked all places where changes were needed in
4783 before). I think I tracked all places where changes were needed in
4781 IPython, but outside code using the old level numbering may have
4784 IPython, but outside code using the old level numbering may have
4782 broken.
4785 broken.
4783
4786
4784 * IPython/iplib.py (InteractiveShell.runcode): added this to
4787 * IPython/iplib.py (InteractiveShell.runcode): added this to
4785 handle the tracebacks in SystemExit traps correctly. The previous
4788 handle the tracebacks in SystemExit traps correctly. The previous
4786 code (through interact) was printing more of the stack than
4789 code (through interact) was printing more of the stack than
4787 necessary, showing IPython internal code to the user.
4790 necessary, showing IPython internal code to the user.
4788
4791
4789 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4792 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4790 default. Now that the default at the confirmation prompt is yes,
4793 default. Now that the default at the confirmation prompt is yes,
4791 it's not so intrusive. François' argument that ipython sessions
4794 it's not so intrusive. François' argument that ipython sessions
4792 tend to be complex enough not to lose them from an accidental C-d,
4795 tend to be complex enough not to lose them from an accidental C-d,
4793 is a valid one.
4796 is a valid one.
4794
4797
4795 * IPython/iplib.py (InteractiveShell.interact): added a
4798 * IPython/iplib.py (InteractiveShell.interact): added a
4796 showtraceback() call to the SystemExit trap, and modified the exit
4799 showtraceback() call to the SystemExit trap, and modified the exit
4797 confirmation to have yes as the default.
4800 confirmation to have yes as the default.
4798
4801
4799 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4802 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4800 this file. It's been gone from the code for a long time, this was
4803 this file. It's been gone from the code for a long time, this was
4801 simply leftover junk.
4804 simply leftover junk.
4802
4805
4803 2002-11-01 Fernando Perez <fperez@colorado.edu>
4806 2002-11-01 Fernando Perez <fperez@colorado.edu>
4804
4807
4805 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4808 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4806 added. If set, IPython now traps EOF and asks for
4809 added. If set, IPython now traps EOF and asks for
4807 confirmation. After a request by François Pinard.
4810 confirmation. After a request by François Pinard.
4808
4811
4809 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4812 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4810 of @abort, and with a new (better) mechanism for handling the
4813 of @abort, and with a new (better) mechanism for handling the
4811 exceptions.
4814 exceptions.
4812
4815
4813 2002-10-27 Fernando Perez <fperez@colorado.edu>
4816 2002-10-27 Fernando Perez <fperez@colorado.edu>
4814
4817
4815 * IPython/usage.py (__doc__): updated the --help information and
4818 * IPython/usage.py (__doc__): updated the --help information and
4816 the ipythonrc file to indicate that -log generates
4819 the ipythonrc file to indicate that -log generates
4817 ./ipython.log. Also fixed the corresponding info in @logstart.
4820 ./ipython.log. Also fixed the corresponding info in @logstart.
4818 This and several other fixes in the manuals thanks to reports by
4821 This and several other fixes in the manuals thanks to reports by
4819 François Pinard <pinard-AT-iro.umontreal.ca>.
4822 François Pinard <pinard-AT-iro.umontreal.ca>.
4820
4823
4821 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4824 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4822 refer to @logstart (instead of @log, which doesn't exist).
4825 refer to @logstart (instead of @log, which doesn't exist).
4823
4826
4824 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4827 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4825 AttributeError crash. Thanks to Christopher Armstrong
4828 AttributeError crash. Thanks to Christopher Armstrong
4826 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4829 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4827 introduced recently (in 0.2.14pre37) with the fix to the eval
4830 introduced recently (in 0.2.14pre37) with the fix to the eval
4828 problem mentioned below.
4831 problem mentioned below.
4829
4832
4830 2002-10-17 Fernando Perez <fperez@colorado.edu>
4833 2002-10-17 Fernando Perez <fperez@colorado.edu>
4831
4834
4832 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4835 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4833 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4836 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4834
4837
4835 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4838 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4836 this function to fix a problem reported by Alex Schmolck. He saw
4839 this function to fix a problem reported by Alex Schmolck. He saw
4837 it with list comprehensions and generators, which were getting
4840 it with list comprehensions and generators, which were getting
4838 called twice. The real problem was an 'eval' call in testing for
4841 called twice. The real problem was an 'eval' call in testing for
4839 automagic which was evaluating the input line silently.
4842 automagic which was evaluating the input line silently.
4840
4843
4841 This is a potentially very nasty bug, if the input has side
4844 This is a potentially very nasty bug, if the input has side
4842 effects which must not be repeated. The code is much cleaner now,
4845 effects which must not be repeated. The code is much cleaner now,
4843 without any blanket 'except' left and with a regexp test for
4846 without any blanket 'except' left and with a regexp test for
4844 actual function names.
4847 actual function names.
4845
4848
4846 But an eval remains, which I'm not fully comfortable with. I just
4849 But an eval remains, which I'm not fully comfortable with. I just
4847 don't know how to find out if an expression could be a callable in
4850 don't know how to find out if an expression could be a callable in
4848 the user's namespace without doing an eval on the string. However
4851 the user's namespace without doing an eval on the string. However
4849 that string is now much more strictly checked so that no code
4852 that string is now much more strictly checked so that no code
4850 slips by, so the eval should only happen for things that can
4853 slips by, so the eval should only happen for things that can
4851 really be only function/method names.
4854 really be only function/method names.
4852
4855
4853 2002-10-15 Fernando Perez <fperez@colorado.edu>
4856 2002-10-15 Fernando Perez <fperez@colorado.edu>
4854
4857
4855 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4858 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4856 OSX information to main manual, removed README_Mac_OSX file from
4859 OSX information to main manual, removed README_Mac_OSX file from
4857 distribution. Also updated credits for recent additions.
4860 distribution. Also updated credits for recent additions.
4858
4861
4859 2002-10-10 Fernando Perez <fperez@colorado.edu>
4862 2002-10-10 Fernando Perez <fperez@colorado.edu>
4860
4863
4861 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4864 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4862 terminal-related issues. Many thanks to Andrea Riciputi
4865 terminal-related issues. Many thanks to Andrea Riciputi
4863 <andrea.riciputi-AT-libero.it> for writing it.
4866 <andrea.riciputi-AT-libero.it> for writing it.
4864
4867
4865 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4868 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4866 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4869 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4867
4870
4868 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4871 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4869 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4872 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4870 <syver-en-AT-online.no> who both submitted patches for this problem.
4873 <syver-en-AT-online.no> who both submitted patches for this problem.
4871
4874
4872 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4875 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4873 global embedding to make sure that things don't overwrite user
4876 global embedding to make sure that things don't overwrite user
4874 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4877 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4875
4878
4876 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4879 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4877 compatibility. Thanks to Hayden Callow
4880 compatibility. Thanks to Hayden Callow
4878 <h.callow-AT-elec.canterbury.ac.nz>
4881 <h.callow-AT-elec.canterbury.ac.nz>
4879
4882
4880 2002-10-04 Fernando Perez <fperez@colorado.edu>
4883 2002-10-04 Fernando Perez <fperez@colorado.edu>
4881
4884
4882 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4885 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4883 Gnuplot.File objects.
4886 Gnuplot.File objects.
4884
4887
4885 2002-07-23 Fernando Perez <fperez@colorado.edu>
4888 2002-07-23 Fernando Perez <fperez@colorado.edu>
4886
4889
4887 * IPython/genutils.py (timing): Added timings() and timing() for
4890 * IPython/genutils.py (timing): Added timings() and timing() for
4888 quick access to the most commonly needed data, the execution
4891 quick access to the most commonly needed data, the execution
4889 times. Old timing() renamed to timings_out().
4892 times. Old timing() renamed to timings_out().
4890
4893
4891 2002-07-18 Fernando Perez <fperez@colorado.edu>
4894 2002-07-18 Fernando Perez <fperez@colorado.edu>
4892
4895
4893 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4896 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4894 bug with nested instances disrupting the parent's tab completion.
4897 bug with nested instances disrupting the parent's tab completion.
4895
4898
4896 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4899 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4897 all_completions code to begin the emacs integration.
4900 all_completions code to begin the emacs integration.
4898
4901
4899 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4902 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4900 argument to allow titling individual arrays when plotting.
4903 argument to allow titling individual arrays when plotting.
4901
4904
4902 2002-07-15 Fernando Perez <fperez@colorado.edu>
4905 2002-07-15 Fernando Perez <fperez@colorado.edu>
4903
4906
4904 * setup.py (make_shortcut): changed to retrieve the value of
4907 * setup.py (make_shortcut): changed to retrieve the value of
4905 'Program Files' directory from the registry (this value changes in
4908 'Program Files' directory from the registry (this value changes in
4906 non-english versions of Windows). Thanks to Thomas Fanslau
4909 non-english versions of Windows). Thanks to Thomas Fanslau
4907 <tfanslau-AT-gmx.de> for the report.
4910 <tfanslau-AT-gmx.de> for the report.
4908
4911
4909 2002-07-10 Fernando Perez <fperez@colorado.edu>
4912 2002-07-10 Fernando Perez <fperez@colorado.edu>
4910
4913
4911 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4914 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4912 a bug in pdb, which crashes if a line with only whitespace is
4915 a bug in pdb, which crashes if a line with only whitespace is
4913 entered. Bug report submitted to sourceforge.
4916 entered. Bug report submitted to sourceforge.
4914
4917
4915 2002-07-09 Fernando Perez <fperez@colorado.edu>
4918 2002-07-09 Fernando Perez <fperez@colorado.edu>
4916
4919
4917 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4920 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4918 reporting exceptions (it's a bug in inspect.py, I just set a
4921 reporting exceptions (it's a bug in inspect.py, I just set a
4919 workaround).
4922 workaround).
4920
4923
4921 2002-07-08 Fernando Perez <fperez@colorado.edu>
4924 2002-07-08 Fernando Perez <fperez@colorado.edu>
4922
4925
4923 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4926 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4924 __IPYTHON__ in __builtins__ to show up in user_ns.
4927 __IPYTHON__ in __builtins__ to show up in user_ns.
4925
4928
4926 2002-07-03 Fernando Perez <fperez@colorado.edu>
4929 2002-07-03 Fernando Perez <fperez@colorado.edu>
4927
4930
4928 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4931 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4929 name from @gp_set_instance to @gp_set_default.
4932 name from @gp_set_instance to @gp_set_default.
4930
4933
4931 * IPython/ipmaker.py (make_IPython): default editor value set to
4934 * IPython/ipmaker.py (make_IPython): default editor value set to
4932 '0' (a string), to match the rc file. Otherwise will crash when
4935 '0' (a string), to match the rc file. Otherwise will crash when
4933 .strip() is called on it.
4936 .strip() is called on it.
4934
4937
4935
4938
4936 2002-06-28 Fernando Perez <fperez@colorado.edu>
4939 2002-06-28 Fernando Perez <fperez@colorado.edu>
4937
4940
4938 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4941 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4939 of files in current directory when a file is executed via
4942 of files in current directory when a file is executed via
4940 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4943 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4941
4944
4942 * setup.py (manfiles): fix for rpm builds, submitted by RA
4945 * setup.py (manfiles): fix for rpm builds, submitted by RA
4943 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4946 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4944
4947
4945 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4948 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4946 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4949 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4947 string!). A. Schmolck caught this one.
4950 string!). A. Schmolck caught this one.
4948
4951
4949 2002-06-27 Fernando Perez <fperez@colorado.edu>
4952 2002-06-27 Fernando Perez <fperez@colorado.edu>
4950
4953
4951 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4954 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4952 defined files at the cmd line. __name__ wasn't being set to
4955 defined files at the cmd line. __name__ wasn't being set to
4953 __main__.
4956 __main__.
4954
4957
4955 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4958 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4956 regular lists and tuples besides Numeric arrays.
4959 regular lists and tuples besides Numeric arrays.
4957
4960
4958 * IPython/Prompts.py (CachedOutput.__call__): Added output
4961 * IPython/Prompts.py (CachedOutput.__call__): Added output
4959 supression for input ending with ';'. Similar to Mathematica and
4962 supression for input ending with ';'. Similar to Mathematica and
4960 Matlab. The _* vars and Out[] list are still updated, just like
4963 Matlab. The _* vars and Out[] list are still updated, just like
4961 Mathematica behaves.
4964 Mathematica behaves.
4962
4965
4963 2002-06-25 Fernando Perez <fperez@colorado.edu>
4966 2002-06-25 Fernando Perez <fperez@colorado.edu>
4964
4967
4965 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4968 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4966 .ini extensions for profiels under Windows.
4969 .ini extensions for profiels under Windows.
4967
4970
4968 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4971 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4969 string form. Fix contributed by Alexander Schmolck
4972 string form. Fix contributed by Alexander Schmolck
4970 <a.schmolck-AT-gmx.net>
4973 <a.schmolck-AT-gmx.net>
4971
4974
4972 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4975 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4973 pre-configured Gnuplot instance.
4976 pre-configured Gnuplot instance.
4974
4977
4975 2002-06-21 Fernando Perez <fperez@colorado.edu>
4978 2002-06-21 Fernando Perez <fperez@colorado.edu>
4976
4979
4977 * IPython/numutils.py (exp_safe): new function, works around the
4980 * IPython/numutils.py (exp_safe): new function, works around the
4978 underflow problems in Numeric.
4981 underflow problems in Numeric.
4979 (log2): New fn. Safe log in base 2: returns exact integer answer
4982 (log2): New fn. Safe log in base 2: returns exact integer answer
4980 for exact integer powers of 2.
4983 for exact integer powers of 2.
4981
4984
4982 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4985 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4983 properly.
4986 properly.
4984
4987
4985 2002-06-20 Fernando Perez <fperez@colorado.edu>
4988 2002-06-20 Fernando Perez <fperez@colorado.edu>
4986
4989
4987 * IPython/genutils.py (timing): new function like
4990 * IPython/genutils.py (timing): new function like
4988 Mathematica's. Similar to time_test, but returns more info.
4991 Mathematica's. Similar to time_test, but returns more info.
4989
4992
4990 2002-06-18 Fernando Perez <fperez@colorado.edu>
4993 2002-06-18 Fernando Perez <fperez@colorado.edu>
4991
4994
4992 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4995 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4993 according to Mike Heeter's suggestions.
4996 according to Mike Heeter's suggestions.
4994
4997
4995 2002-06-16 Fernando Perez <fperez@colorado.edu>
4998 2002-06-16 Fernando Perez <fperez@colorado.edu>
4996
4999
4997 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5000 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4998 system. GnuplotMagic is gone as a user-directory option. New files
5001 system. GnuplotMagic is gone as a user-directory option. New files
4999 make it easier to use all the gnuplot stuff both from external
5002 make it easier to use all the gnuplot stuff both from external
5000 programs as well as from IPython. Had to rewrite part of
5003 programs as well as from IPython. Had to rewrite part of
5001 hardcopy() b/c of a strange bug: often the ps files simply don't
5004 hardcopy() b/c of a strange bug: often the ps files simply don't
5002 get created, and require a repeat of the command (often several
5005 get created, and require a repeat of the command (often several
5003 times).
5006 times).
5004
5007
5005 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5008 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5006 resolve output channel at call time, so that if sys.stderr has
5009 resolve output channel at call time, so that if sys.stderr has
5007 been redirected by user this gets honored.
5010 been redirected by user this gets honored.
5008
5011
5009 2002-06-13 Fernando Perez <fperez@colorado.edu>
5012 2002-06-13 Fernando Perez <fperez@colorado.edu>
5010
5013
5011 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5014 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5012 IPShell. Kept a copy with the old names to avoid breaking people's
5015 IPShell. Kept a copy with the old names to avoid breaking people's
5013 embedded code.
5016 embedded code.
5014
5017
5015 * IPython/ipython: simplified it to the bare minimum after
5018 * IPython/ipython: simplified it to the bare minimum after
5016 Holger's suggestions. Added info about how to use it in
5019 Holger's suggestions. Added info about how to use it in
5017 PYTHONSTARTUP.
5020 PYTHONSTARTUP.
5018
5021
5019 * IPython/Shell.py (IPythonShell): changed the options passing
5022 * IPython/Shell.py (IPythonShell): changed the options passing
5020 from a string with funky %s replacements to a straight list. Maybe
5023 from a string with funky %s replacements to a straight list. Maybe
5021 a bit more typing, but it follows sys.argv conventions, so there's
5024 a bit more typing, but it follows sys.argv conventions, so there's
5022 less special-casing to remember.
5025 less special-casing to remember.
5023
5026
5024 2002-06-12 Fernando Perez <fperez@colorado.edu>
5027 2002-06-12 Fernando Perez <fperez@colorado.edu>
5025
5028
5026 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5029 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5027 command. Thanks to a suggestion by Mike Heeter.
5030 command. Thanks to a suggestion by Mike Heeter.
5028 (Magic.magic_pfile): added behavior to look at filenames if given
5031 (Magic.magic_pfile): added behavior to look at filenames if given
5029 arg is not a defined object.
5032 arg is not a defined object.
5030 (Magic.magic_save): New @save function to save code snippets. Also
5033 (Magic.magic_save): New @save function to save code snippets. Also
5031 a Mike Heeter idea.
5034 a Mike Heeter idea.
5032
5035
5033 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5036 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5034 plot() and replot(). Much more convenient now, especially for
5037 plot() and replot(). Much more convenient now, especially for
5035 interactive use.
5038 interactive use.
5036
5039
5037 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5040 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5038 filenames.
5041 filenames.
5039
5042
5040 2002-06-02 Fernando Perez <fperez@colorado.edu>
5043 2002-06-02 Fernando Perez <fperez@colorado.edu>
5041
5044
5042 * IPython/Struct.py (Struct.__init__): modified to admit
5045 * IPython/Struct.py (Struct.__init__): modified to admit
5043 initialization via another struct.
5046 initialization via another struct.
5044
5047
5045 * IPython/genutils.py (SystemExec.__init__): New stateful
5048 * IPython/genutils.py (SystemExec.__init__): New stateful
5046 interface to xsys and bq. Useful for writing system scripts.
5049 interface to xsys and bq. Useful for writing system scripts.
5047
5050
5048 2002-05-30 Fernando Perez <fperez@colorado.edu>
5051 2002-05-30 Fernando Perez <fperez@colorado.edu>
5049
5052
5050 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5053 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5051 documents. This will make the user download smaller (it's getting
5054 documents. This will make the user download smaller (it's getting
5052 too big).
5055 too big).
5053
5056
5054 2002-05-29 Fernando Perez <fperez@colorado.edu>
5057 2002-05-29 Fernando Perez <fperez@colorado.edu>
5055
5058
5056 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5059 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5057 fix problems with shelve and pickle. Seems to work, but I don't
5060 fix problems with shelve and pickle. Seems to work, but I don't
5058 know if corner cases break it. Thanks to Mike Heeter
5061 know if corner cases break it. Thanks to Mike Heeter
5059 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5062 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5060
5063
5061 2002-05-24 Fernando Perez <fperez@colorado.edu>
5064 2002-05-24 Fernando Perez <fperez@colorado.edu>
5062
5065
5063 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5066 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5064 macros having broken.
5067 macros having broken.
5065
5068
5066 2002-05-21 Fernando Perez <fperez@colorado.edu>
5069 2002-05-21 Fernando Perez <fperez@colorado.edu>
5067
5070
5068 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5071 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5069 introduced logging bug: all history before logging started was
5072 introduced logging bug: all history before logging started was
5070 being written one character per line! This came from the redesign
5073 being written one character per line! This came from the redesign
5071 of the input history as a special list which slices to strings,
5074 of the input history as a special list which slices to strings,
5072 not to lists.
5075 not to lists.
5073
5076
5074 2002-05-20 Fernando Perez <fperez@colorado.edu>
5077 2002-05-20 Fernando Perez <fperez@colorado.edu>
5075
5078
5076 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5079 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5077 be an attribute of all classes in this module. The design of these
5080 be an attribute of all classes in this module. The design of these
5078 classes needs some serious overhauling.
5081 classes needs some serious overhauling.
5079
5082
5080 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5083 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5081 which was ignoring '_' in option names.
5084 which was ignoring '_' in option names.
5082
5085
5083 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5086 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5084 'Verbose_novars' to 'Context' and made it the new default. It's a
5087 'Verbose_novars' to 'Context' and made it the new default. It's a
5085 bit more readable and also safer than verbose.
5088 bit more readable and also safer than verbose.
5086
5089
5087 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5090 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5088 triple-quoted strings.
5091 triple-quoted strings.
5089
5092
5090 * IPython/OInspect.py (__all__): new module exposing the object
5093 * IPython/OInspect.py (__all__): new module exposing the object
5091 introspection facilities. Now the corresponding magics are dummy
5094 introspection facilities. Now the corresponding magics are dummy
5092 wrappers around this. Having this module will make it much easier
5095 wrappers around this. Having this module will make it much easier
5093 to put these functions into our modified pdb.
5096 to put these functions into our modified pdb.
5094 This new object inspector system uses the new colorizing module,
5097 This new object inspector system uses the new colorizing module,
5095 so source code and other things are nicely syntax highlighted.
5098 so source code and other things are nicely syntax highlighted.
5096
5099
5097 2002-05-18 Fernando Perez <fperez@colorado.edu>
5100 2002-05-18 Fernando Perez <fperez@colorado.edu>
5098
5101
5099 * IPython/ColorANSI.py: Split the coloring tools into a separate
5102 * IPython/ColorANSI.py: Split the coloring tools into a separate
5100 module so I can use them in other code easier (they were part of
5103 module so I can use them in other code easier (they were part of
5101 ultraTB).
5104 ultraTB).
5102
5105
5103 2002-05-17 Fernando Perez <fperez@colorado.edu>
5106 2002-05-17 Fernando Perez <fperez@colorado.edu>
5104
5107
5105 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5108 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5106 fixed it to set the global 'g' also to the called instance, as
5109 fixed it to set the global 'g' also to the called instance, as
5107 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5110 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5108 user's 'g' variables).
5111 user's 'g' variables).
5109
5112
5110 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5113 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5111 global variables (aliases to _ih,_oh) so that users which expect
5114 global variables (aliases to _ih,_oh) so that users which expect
5112 In[5] or Out[7] to work aren't unpleasantly surprised.
5115 In[5] or Out[7] to work aren't unpleasantly surprised.
5113 (InputList.__getslice__): new class to allow executing slices of
5116 (InputList.__getslice__): new class to allow executing slices of
5114 input history directly. Very simple class, complements the use of
5117 input history directly. Very simple class, complements the use of
5115 macros.
5118 macros.
5116
5119
5117 2002-05-16 Fernando Perez <fperez@colorado.edu>
5120 2002-05-16 Fernando Perez <fperez@colorado.edu>
5118
5121
5119 * setup.py (docdirbase): make doc directory be just doc/IPython
5122 * setup.py (docdirbase): make doc directory be just doc/IPython
5120 without version numbers, it will reduce clutter for users.
5123 without version numbers, it will reduce clutter for users.
5121
5124
5122 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5125 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5123 execfile call to prevent possible memory leak. See for details:
5126 execfile call to prevent possible memory leak. See for details:
5124 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5127 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5125
5128
5126 2002-05-15 Fernando Perez <fperez@colorado.edu>
5129 2002-05-15 Fernando Perez <fperez@colorado.edu>
5127
5130
5128 * IPython/Magic.py (Magic.magic_psource): made the object
5131 * IPython/Magic.py (Magic.magic_psource): made the object
5129 introspection names be more standard: pdoc, pdef, pfile and
5132 introspection names be more standard: pdoc, pdef, pfile and
5130 psource. They all print/page their output, and it makes
5133 psource. They all print/page their output, and it makes
5131 remembering them easier. Kept old names for compatibility as
5134 remembering them easier. Kept old names for compatibility as
5132 aliases.
5135 aliases.
5133
5136
5134 2002-05-14 Fernando Perez <fperez@colorado.edu>
5137 2002-05-14 Fernando Perez <fperez@colorado.edu>
5135
5138
5136 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5139 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5137 what the mouse problem was. The trick is to use gnuplot with temp
5140 what the mouse problem was. The trick is to use gnuplot with temp
5138 files and NOT with pipes (for data communication), because having
5141 files and NOT with pipes (for data communication), because having
5139 both pipes and the mouse on is bad news.
5142 both pipes and the mouse on is bad news.
5140
5143
5141 2002-05-13 Fernando Perez <fperez@colorado.edu>
5144 2002-05-13 Fernando Perez <fperez@colorado.edu>
5142
5145
5143 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5146 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5144 bug. Information would be reported about builtins even when
5147 bug. Information would be reported about builtins even when
5145 user-defined functions overrode them.
5148 user-defined functions overrode them.
5146
5149
5147 2002-05-11 Fernando Perez <fperez@colorado.edu>
5150 2002-05-11 Fernando Perez <fperez@colorado.edu>
5148
5151
5149 * IPython/__init__.py (__all__): removed FlexCompleter from
5152 * IPython/__init__.py (__all__): removed FlexCompleter from
5150 __all__ so that things don't fail in platforms without readline.
5153 __all__ so that things don't fail in platforms without readline.
5151
5154
5152 2002-05-10 Fernando Perez <fperez@colorado.edu>
5155 2002-05-10 Fernando Perez <fperez@colorado.edu>
5153
5156
5154 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5157 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5155 it requires Numeric, effectively making Numeric a dependency for
5158 it requires Numeric, effectively making Numeric a dependency for
5156 IPython.
5159 IPython.
5157
5160
5158 * Released 0.2.13
5161 * Released 0.2.13
5159
5162
5160 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5163 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5161 profiler interface. Now all the major options from the profiler
5164 profiler interface. Now all the major options from the profiler
5162 module are directly supported in IPython, both for single
5165 module are directly supported in IPython, both for single
5163 expressions (@prun) and for full programs (@run -p).
5166 expressions (@prun) and for full programs (@run -p).
5164
5167
5165 2002-05-09 Fernando Perez <fperez@colorado.edu>
5168 2002-05-09 Fernando Perez <fperez@colorado.edu>
5166
5169
5167 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5170 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5168 magic properly formatted for screen.
5171 magic properly formatted for screen.
5169
5172
5170 * setup.py (make_shortcut): Changed things to put pdf version in
5173 * setup.py (make_shortcut): Changed things to put pdf version in
5171 doc/ instead of doc/manual (had to change lyxport a bit).
5174 doc/ instead of doc/manual (had to change lyxport a bit).
5172
5175
5173 * IPython/Magic.py (Profile.string_stats): made profile runs go
5176 * IPython/Magic.py (Profile.string_stats): made profile runs go
5174 through pager (they are long and a pager allows searching, saving,
5177 through pager (they are long and a pager allows searching, saving,
5175 etc.)
5178 etc.)
5176
5179
5177 2002-05-08 Fernando Perez <fperez@colorado.edu>
5180 2002-05-08 Fernando Perez <fperez@colorado.edu>
5178
5181
5179 * Released 0.2.12
5182 * Released 0.2.12
5180
5183
5181 2002-05-06 Fernando Perez <fperez@colorado.edu>
5184 2002-05-06 Fernando Perez <fperez@colorado.edu>
5182
5185
5183 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5186 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5184 introduced); 'hist n1 n2' was broken.
5187 introduced); 'hist n1 n2' was broken.
5185 (Magic.magic_pdb): added optional on/off arguments to @pdb
5188 (Magic.magic_pdb): added optional on/off arguments to @pdb
5186 (Magic.magic_run): added option -i to @run, which executes code in
5189 (Magic.magic_run): added option -i to @run, which executes code in
5187 the IPython namespace instead of a clean one. Also added @irun as
5190 the IPython namespace instead of a clean one. Also added @irun as
5188 an alias to @run -i.
5191 an alias to @run -i.
5189
5192
5190 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5193 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5191 fixed (it didn't really do anything, the namespaces were wrong).
5194 fixed (it didn't really do anything, the namespaces were wrong).
5192
5195
5193 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5196 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5194
5197
5195 * IPython/__init__.py (__all__): Fixed package namespace, now
5198 * IPython/__init__.py (__all__): Fixed package namespace, now
5196 'import IPython' does give access to IPython.<all> as
5199 'import IPython' does give access to IPython.<all> as
5197 expected. Also renamed __release__ to Release.
5200 expected. Also renamed __release__ to Release.
5198
5201
5199 * IPython/Debugger.py (__license__): created new Pdb class which
5202 * IPython/Debugger.py (__license__): created new Pdb class which
5200 functions like a drop-in for the normal pdb.Pdb but does NOT
5203 functions like a drop-in for the normal pdb.Pdb but does NOT
5201 import readline by default. This way it doesn't muck up IPython's
5204 import readline by default. This way it doesn't muck up IPython's
5202 readline handling, and now tab-completion finally works in the
5205 readline handling, and now tab-completion finally works in the
5203 debugger -- sort of. It completes things globally visible, but the
5206 debugger -- sort of. It completes things globally visible, but the
5204 completer doesn't track the stack as pdb walks it. That's a bit
5207 completer doesn't track the stack as pdb walks it. That's a bit
5205 tricky, and I'll have to implement it later.
5208 tricky, and I'll have to implement it later.
5206
5209
5207 2002-05-05 Fernando Perez <fperez@colorado.edu>
5210 2002-05-05 Fernando Perez <fperez@colorado.edu>
5208
5211
5209 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5212 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5210 magic docstrings when printed via ? (explicit \'s were being
5213 magic docstrings when printed via ? (explicit \'s were being
5211 printed).
5214 printed).
5212
5215
5213 * IPython/ipmaker.py (make_IPython): fixed namespace
5216 * IPython/ipmaker.py (make_IPython): fixed namespace
5214 identification bug. Now variables loaded via logs or command-line
5217 identification bug. Now variables loaded via logs or command-line
5215 files are recognized in the interactive namespace by @who.
5218 files are recognized in the interactive namespace by @who.
5216
5219
5217 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5220 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5218 log replay system stemming from the string form of Structs.
5221 log replay system stemming from the string form of Structs.
5219
5222
5220 * IPython/Magic.py (Macro.__init__): improved macros to properly
5223 * IPython/Magic.py (Macro.__init__): improved macros to properly
5221 handle magic commands in them.
5224 handle magic commands in them.
5222 (Magic.magic_logstart): usernames are now expanded so 'logstart
5225 (Magic.magic_logstart): usernames are now expanded so 'logstart
5223 ~/mylog' now works.
5226 ~/mylog' now works.
5224
5227
5225 * IPython/iplib.py (complete): fixed bug where paths starting with
5228 * IPython/iplib.py (complete): fixed bug where paths starting with
5226 '/' would be completed as magic names.
5229 '/' would be completed as magic names.
5227
5230
5228 2002-05-04 Fernando Perez <fperez@colorado.edu>
5231 2002-05-04 Fernando Perez <fperez@colorado.edu>
5229
5232
5230 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5233 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5231 allow running full programs under the profiler's control.
5234 allow running full programs under the profiler's control.
5232
5235
5233 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5236 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5234 mode to report exceptions verbosely but without formatting
5237 mode to report exceptions verbosely but without formatting
5235 variables. This addresses the issue of ipython 'freezing' (it's
5238 variables. This addresses the issue of ipython 'freezing' (it's
5236 not frozen, but caught in an expensive formatting loop) when huge
5239 not frozen, but caught in an expensive formatting loop) when huge
5237 variables are in the context of an exception.
5240 variables are in the context of an exception.
5238 (VerboseTB.text): Added '--->' markers at line where exception was
5241 (VerboseTB.text): Added '--->' markers at line where exception was
5239 triggered. Much clearer to read, especially in NoColor modes.
5242 triggered. Much clearer to read, especially in NoColor modes.
5240
5243
5241 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5244 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5242 implemented in reverse when changing to the new parse_options().
5245 implemented in reverse when changing to the new parse_options().
5243
5246
5244 2002-05-03 Fernando Perez <fperez@colorado.edu>
5247 2002-05-03 Fernando Perez <fperez@colorado.edu>
5245
5248
5246 * IPython/Magic.py (Magic.parse_options): new function so that
5249 * IPython/Magic.py (Magic.parse_options): new function so that
5247 magics can parse options easier.
5250 magics can parse options easier.
5248 (Magic.magic_prun): new function similar to profile.run(),
5251 (Magic.magic_prun): new function similar to profile.run(),
5249 suggested by Chris Hart.
5252 suggested by Chris Hart.
5250 (Magic.magic_cd): fixed behavior so that it only changes if
5253 (Magic.magic_cd): fixed behavior so that it only changes if
5251 directory actually is in history.
5254 directory actually is in history.
5252
5255
5253 * IPython/usage.py (__doc__): added information about potential
5256 * IPython/usage.py (__doc__): added information about potential
5254 slowness of Verbose exception mode when there are huge data
5257 slowness of Verbose exception mode when there are huge data
5255 structures to be formatted (thanks to Archie Paulson).
5258 structures to be formatted (thanks to Archie Paulson).
5256
5259
5257 * IPython/ipmaker.py (make_IPython): Changed default logging
5260 * IPython/ipmaker.py (make_IPython): Changed default logging
5258 (when simply called with -log) to use curr_dir/ipython.log in
5261 (when simply called with -log) to use curr_dir/ipython.log in
5259 rotate mode. Fixed crash which was occuring with -log before
5262 rotate mode. Fixed crash which was occuring with -log before
5260 (thanks to Jim Boyle).
5263 (thanks to Jim Boyle).
5261
5264
5262 2002-05-01 Fernando Perez <fperez@colorado.edu>
5265 2002-05-01 Fernando Perez <fperez@colorado.edu>
5263
5266
5264 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5267 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5265 was nasty -- though somewhat of a corner case).
5268 was nasty -- though somewhat of a corner case).
5266
5269
5267 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5270 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5268 text (was a bug).
5271 text (was a bug).
5269
5272
5270 2002-04-30 Fernando Perez <fperez@colorado.edu>
5273 2002-04-30 Fernando Perez <fperez@colorado.edu>
5271
5274
5272 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5275 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5273 a print after ^D or ^C from the user so that the In[] prompt
5276 a print after ^D or ^C from the user so that the In[] prompt
5274 doesn't over-run the gnuplot one.
5277 doesn't over-run the gnuplot one.
5275
5278
5276 2002-04-29 Fernando Perez <fperez@colorado.edu>
5279 2002-04-29 Fernando Perez <fperez@colorado.edu>
5277
5280
5278 * Released 0.2.10
5281 * Released 0.2.10
5279
5282
5280 * IPython/__release__.py (version): get date dynamically.
5283 * IPython/__release__.py (version): get date dynamically.
5281
5284
5282 * Misc. documentation updates thanks to Arnd's comments. Also ran
5285 * Misc. documentation updates thanks to Arnd's comments. Also ran
5283 a full spellcheck on the manual (hadn't been done in a while).
5286 a full spellcheck on the manual (hadn't been done in a while).
5284
5287
5285 2002-04-27 Fernando Perez <fperez@colorado.edu>
5288 2002-04-27 Fernando Perez <fperez@colorado.edu>
5286
5289
5287 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5290 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5288 starting a log in mid-session would reset the input history list.
5291 starting a log in mid-session would reset the input history list.
5289
5292
5290 2002-04-26 Fernando Perez <fperez@colorado.edu>
5293 2002-04-26 Fernando Perez <fperez@colorado.edu>
5291
5294
5292 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5295 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5293 all files were being included in an update. Now anything in
5296 all files were being included in an update. Now anything in
5294 UserConfig that matches [A-Za-z]*.py will go (this excludes
5297 UserConfig that matches [A-Za-z]*.py will go (this excludes
5295 __init__.py)
5298 __init__.py)
5296
5299
5297 2002-04-25 Fernando Perez <fperez@colorado.edu>
5300 2002-04-25 Fernando Perez <fperez@colorado.edu>
5298
5301
5299 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5302 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5300 to __builtins__ so that any form of embedded or imported code can
5303 to __builtins__ so that any form of embedded or imported code can
5301 test for being inside IPython.
5304 test for being inside IPython.
5302
5305
5303 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5306 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5304 changed to GnuplotMagic because it's now an importable module,
5307 changed to GnuplotMagic because it's now an importable module,
5305 this makes the name follow that of the standard Gnuplot module.
5308 this makes the name follow that of the standard Gnuplot module.
5306 GnuplotMagic can now be loaded at any time in mid-session.
5309 GnuplotMagic can now be loaded at any time in mid-session.
5307
5310
5308 2002-04-24 Fernando Perez <fperez@colorado.edu>
5311 2002-04-24 Fernando Perez <fperez@colorado.edu>
5309
5312
5310 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5313 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5311 the globals (IPython has its own namespace) and the
5314 the globals (IPython has its own namespace) and the
5312 PhysicalQuantity stuff is much better anyway.
5315 PhysicalQuantity stuff is much better anyway.
5313
5316
5314 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5317 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5315 embedding example to standard user directory for
5318 embedding example to standard user directory for
5316 distribution. Also put it in the manual.
5319 distribution. Also put it in the manual.
5317
5320
5318 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5321 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5319 instance as first argument (so it doesn't rely on some obscure
5322 instance as first argument (so it doesn't rely on some obscure
5320 hidden global).
5323 hidden global).
5321
5324
5322 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5325 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5323 delimiters. While it prevents ().TAB from working, it allows
5326 delimiters. While it prevents ().TAB from working, it allows
5324 completions in open (... expressions. This is by far a more common
5327 completions in open (... expressions. This is by far a more common
5325 case.
5328 case.
5326
5329
5327 2002-04-23 Fernando Perez <fperez@colorado.edu>
5330 2002-04-23 Fernando Perez <fperez@colorado.edu>
5328
5331
5329 * IPython/Extensions/InterpreterPasteInput.py: new
5332 * IPython/Extensions/InterpreterPasteInput.py: new
5330 syntax-processing module for pasting lines with >>> or ... at the
5333 syntax-processing module for pasting lines with >>> or ... at the
5331 start.
5334 start.
5332
5335
5333 * IPython/Extensions/PhysicalQ_Interactive.py
5336 * IPython/Extensions/PhysicalQ_Interactive.py
5334 (PhysicalQuantityInteractive.__int__): fixed to work with either
5337 (PhysicalQuantityInteractive.__int__): fixed to work with either
5335 Numeric or math.
5338 Numeric or math.
5336
5339
5337 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5340 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5338 provided profiles. Now we have:
5341 provided profiles. Now we have:
5339 -math -> math module as * and cmath with its own namespace.
5342 -math -> math module as * and cmath with its own namespace.
5340 -numeric -> Numeric as *, plus gnuplot & grace
5343 -numeric -> Numeric as *, plus gnuplot & grace
5341 -physics -> same as before
5344 -physics -> same as before
5342
5345
5343 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5346 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5344 user-defined magics wouldn't be found by @magic if they were
5347 user-defined magics wouldn't be found by @magic if they were
5345 defined as class methods. Also cleaned up the namespace search
5348 defined as class methods. Also cleaned up the namespace search
5346 logic and the string building (to use %s instead of many repeated
5349 logic and the string building (to use %s instead of many repeated
5347 string adds).
5350 string adds).
5348
5351
5349 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5352 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5350 of user-defined magics to operate with class methods (cleaner, in
5353 of user-defined magics to operate with class methods (cleaner, in
5351 line with the gnuplot code).
5354 line with the gnuplot code).
5352
5355
5353 2002-04-22 Fernando Perez <fperez@colorado.edu>
5356 2002-04-22 Fernando Perez <fperez@colorado.edu>
5354
5357
5355 * setup.py: updated dependency list so that manual is updated when
5358 * setup.py: updated dependency list so that manual is updated when
5356 all included files change.
5359 all included files change.
5357
5360
5358 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5361 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5359 the delimiter removal option (the fix is ugly right now).
5362 the delimiter removal option (the fix is ugly right now).
5360
5363
5361 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5364 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5362 all of the math profile (quicker loading, no conflict between
5365 all of the math profile (quicker loading, no conflict between
5363 g-9.8 and g-gnuplot).
5366 g-9.8 and g-gnuplot).
5364
5367
5365 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5368 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5366 name of post-mortem files to IPython_crash_report.txt.
5369 name of post-mortem files to IPython_crash_report.txt.
5367
5370
5368 * Cleanup/update of the docs. Added all the new readline info and
5371 * Cleanup/update of the docs. Added all the new readline info and
5369 formatted all lists as 'real lists'.
5372 formatted all lists as 'real lists'.
5370
5373
5371 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5374 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5372 tab-completion options, since the full readline parse_and_bind is
5375 tab-completion options, since the full readline parse_and_bind is
5373 now accessible.
5376 now accessible.
5374
5377
5375 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5378 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5376 handling of readline options. Now users can specify any string to
5379 handling of readline options. Now users can specify any string to
5377 be passed to parse_and_bind(), as well as the delimiters to be
5380 be passed to parse_and_bind(), as well as the delimiters to be
5378 removed.
5381 removed.
5379 (InteractiveShell.__init__): Added __name__ to the global
5382 (InteractiveShell.__init__): Added __name__ to the global
5380 namespace so that things like Itpl which rely on its existence
5383 namespace so that things like Itpl which rely on its existence
5381 don't crash.
5384 don't crash.
5382 (InteractiveShell._prefilter): Defined the default with a _ so
5385 (InteractiveShell._prefilter): Defined the default with a _ so
5383 that prefilter() is easier to override, while the default one
5386 that prefilter() is easier to override, while the default one
5384 remains available.
5387 remains available.
5385
5388
5386 2002-04-18 Fernando Perez <fperez@colorado.edu>
5389 2002-04-18 Fernando Perez <fperez@colorado.edu>
5387
5390
5388 * Added information about pdb in the docs.
5391 * Added information about pdb in the docs.
5389
5392
5390 2002-04-17 Fernando Perez <fperez@colorado.edu>
5393 2002-04-17 Fernando Perez <fperez@colorado.edu>
5391
5394
5392 * IPython/ipmaker.py (make_IPython): added rc_override option to
5395 * IPython/ipmaker.py (make_IPython): added rc_override option to
5393 allow passing config options at creation time which may override
5396 allow passing config options at creation time which may override
5394 anything set in the config files or command line. This is
5397 anything set in the config files or command line. This is
5395 particularly useful for configuring embedded instances.
5398 particularly useful for configuring embedded instances.
5396
5399
5397 2002-04-15 Fernando Perez <fperez@colorado.edu>
5400 2002-04-15 Fernando Perez <fperez@colorado.edu>
5398
5401
5399 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5402 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5400 crash embedded instances because of the input cache falling out of
5403 crash embedded instances because of the input cache falling out of
5401 sync with the output counter.
5404 sync with the output counter.
5402
5405
5403 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5406 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5404 mode which calls pdb after an uncaught exception in IPython itself.
5407 mode which calls pdb after an uncaught exception in IPython itself.
5405
5408
5406 2002-04-14 Fernando Perez <fperez@colorado.edu>
5409 2002-04-14 Fernando Perez <fperez@colorado.edu>
5407
5410
5408 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5411 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5409 readline, fix it back after each call.
5412 readline, fix it back after each call.
5410
5413
5411 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5414 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5412 method to force all access via __call__(), which guarantees that
5415 method to force all access via __call__(), which guarantees that
5413 traceback references are properly deleted.
5416 traceback references are properly deleted.
5414
5417
5415 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5418 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5416 improve printing when pprint is in use.
5419 improve printing when pprint is in use.
5417
5420
5418 2002-04-13 Fernando Perez <fperez@colorado.edu>
5421 2002-04-13 Fernando Perez <fperez@colorado.edu>
5419
5422
5420 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5423 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5421 exceptions aren't caught anymore. If the user triggers one, he
5424 exceptions aren't caught anymore. If the user triggers one, he
5422 should know why he's doing it and it should go all the way up,
5425 should know why he's doing it and it should go all the way up,
5423 just like any other exception. So now @abort will fully kill the
5426 just like any other exception. So now @abort will fully kill the
5424 embedded interpreter and the embedding code (unless that happens
5427 embedded interpreter and the embedding code (unless that happens
5425 to catch SystemExit).
5428 to catch SystemExit).
5426
5429
5427 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5430 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5428 and a debugger() method to invoke the interactive pdb debugger
5431 and a debugger() method to invoke the interactive pdb debugger
5429 after printing exception information. Also added the corresponding
5432 after printing exception information. Also added the corresponding
5430 -pdb option and @pdb magic to control this feature, and updated
5433 -pdb option and @pdb magic to control this feature, and updated
5431 the docs. After a suggestion from Christopher Hart
5434 the docs. After a suggestion from Christopher Hart
5432 (hart-AT-caltech.edu).
5435 (hart-AT-caltech.edu).
5433
5436
5434 2002-04-12 Fernando Perez <fperez@colorado.edu>
5437 2002-04-12 Fernando Perez <fperez@colorado.edu>
5435
5438
5436 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5439 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5437 the exception handlers defined by the user (not the CrashHandler)
5440 the exception handlers defined by the user (not the CrashHandler)
5438 so that user exceptions don't trigger an ipython bug report.
5441 so that user exceptions don't trigger an ipython bug report.
5439
5442
5440 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5443 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5441 configurable (it should have always been so).
5444 configurable (it should have always been so).
5442
5445
5443 2002-03-26 Fernando Perez <fperez@colorado.edu>
5446 2002-03-26 Fernando Perez <fperez@colorado.edu>
5444
5447
5445 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5448 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5446 and there to fix embedding namespace issues. This should all be
5449 and there to fix embedding namespace issues. This should all be
5447 done in a more elegant way.
5450 done in a more elegant way.
5448
5451
5449 2002-03-25 Fernando Perez <fperez@colorado.edu>
5452 2002-03-25 Fernando Perez <fperez@colorado.edu>
5450
5453
5451 * IPython/genutils.py (get_home_dir): Try to make it work under
5454 * IPython/genutils.py (get_home_dir): Try to make it work under
5452 win9x also.
5455 win9x also.
5453
5456
5454 2002-03-20 Fernando Perez <fperez@colorado.edu>
5457 2002-03-20 Fernando Perez <fperez@colorado.edu>
5455
5458
5456 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5459 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5457 sys.displayhook untouched upon __init__.
5460 sys.displayhook untouched upon __init__.
5458
5461
5459 2002-03-19 Fernando Perez <fperez@colorado.edu>
5462 2002-03-19 Fernando Perez <fperez@colorado.edu>
5460
5463
5461 * Released 0.2.9 (for embedding bug, basically).
5464 * Released 0.2.9 (for embedding bug, basically).
5462
5465
5463 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5466 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5464 exceptions so that enclosing shell's state can be restored.
5467 exceptions so that enclosing shell's state can be restored.
5465
5468
5466 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5469 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5467 naming conventions in the .ipython/ dir.
5470 naming conventions in the .ipython/ dir.
5468
5471
5469 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5472 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5470 from delimiters list so filenames with - in them get expanded.
5473 from delimiters list so filenames with - in them get expanded.
5471
5474
5472 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5475 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5473 sys.displayhook not being properly restored after an embedded call.
5476 sys.displayhook not being properly restored after an embedded call.
5474
5477
5475 2002-03-18 Fernando Perez <fperez@colorado.edu>
5478 2002-03-18 Fernando Perez <fperez@colorado.edu>
5476
5479
5477 * Released 0.2.8
5480 * Released 0.2.8
5478
5481
5479 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5482 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5480 some files weren't being included in a -upgrade.
5483 some files weren't being included in a -upgrade.
5481 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5484 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5482 on' so that the first tab completes.
5485 on' so that the first tab completes.
5483 (InteractiveShell.handle_magic): fixed bug with spaces around
5486 (InteractiveShell.handle_magic): fixed bug with spaces around
5484 quotes breaking many magic commands.
5487 quotes breaking many magic commands.
5485
5488
5486 * setup.py: added note about ignoring the syntax error messages at
5489 * setup.py: added note about ignoring the syntax error messages at
5487 installation.
5490 installation.
5488
5491
5489 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5492 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5490 streamlining the gnuplot interface, now there's only one magic @gp.
5493 streamlining the gnuplot interface, now there's only one magic @gp.
5491
5494
5492 2002-03-17 Fernando Perez <fperez@colorado.edu>
5495 2002-03-17 Fernando Perez <fperez@colorado.edu>
5493
5496
5494 * IPython/UserConfig/magic_gnuplot.py: new name for the
5497 * IPython/UserConfig/magic_gnuplot.py: new name for the
5495 example-magic_pm.py file. Much enhanced system, now with a shell
5498 example-magic_pm.py file. Much enhanced system, now with a shell
5496 for communicating directly with gnuplot, one command at a time.
5499 for communicating directly with gnuplot, one command at a time.
5497
5500
5498 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5501 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5499 setting __name__=='__main__'.
5502 setting __name__=='__main__'.
5500
5503
5501 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5504 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5502 mini-shell for accessing gnuplot from inside ipython. Should
5505 mini-shell for accessing gnuplot from inside ipython. Should
5503 extend it later for grace access too. Inspired by Arnd's
5506 extend it later for grace access too. Inspired by Arnd's
5504 suggestion.
5507 suggestion.
5505
5508
5506 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5509 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5507 calling magic functions with () in their arguments. Thanks to Arnd
5510 calling magic functions with () in their arguments. Thanks to Arnd
5508 Baecker for pointing this to me.
5511 Baecker for pointing this to me.
5509
5512
5510 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5513 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5511 infinitely for integer or complex arrays (only worked with floats).
5514 infinitely for integer or complex arrays (only worked with floats).
5512
5515
5513 2002-03-16 Fernando Perez <fperez@colorado.edu>
5516 2002-03-16 Fernando Perez <fperez@colorado.edu>
5514
5517
5515 * setup.py: Merged setup and setup_windows into a single script
5518 * setup.py: Merged setup and setup_windows into a single script
5516 which properly handles things for windows users.
5519 which properly handles things for windows users.
5517
5520
5518 2002-03-15 Fernando Perez <fperez@colorado.edu>
5521 2002-03-15 Fernando Perez <fperez@colorado.edu>
5519
5522
5520 * Big change to the manual: now the magics are all automatically
5523 * Big change to the manual: now the magics are all automatically
5521 documented. This information is generated from their docstrings
5524 documented. This information is generated from their docstrings
5522 and put in a latex file included by the manual lyx file. This way
5525 and put in a latex file included by the manual lyx file. This way
5523 we get always up to date information for the magics. The manual
5526 we get always up to date information for the magics. The manual
5524 now also has proper version information, also auto-synced.
5527 now also has proper version information, also auto-synced.
5525
5528
5526 For this to work, an undocumented --magic_docstrings option was added.
5529 For this to work, an undocumented --magic_docstrings option was added.
5527
5530
5528 2002-03-13 Fernando Perez <fperez@colorado.edu>
5531 2002-03-13 Fernando Perez <fperez@colorado.edu>
5529
5532
5530 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5533 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5531 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5534 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5532
5535
5533 2002-03-12 Fernando Perez <fperez@colorado.edu>
5536 2002-03-12 Fernando Perez <fperez@colorado.edu>
5534
5537
5535 * IPython/ultraTB.py (TermColors): changed color escapes again to
5538 * IPython/ultraTB.py (TermColors): changed color escapes again to
5536 fix the (old, reintroduced) line-wrapping bug. Basically, if
5539 fix the (old, reintroduced) line-wrapping bug. Basically, if
5537 \001..\002 aren't given in the color escapes, lines get wrapped
5540 \001..\002 aren't given in the color escapes, lines get wrapped
5538 weirdly. But giving those screws up old xterms and emacs terms. So
5541 weirdly. But giving those screws up old xterms and emacs terms. So
5539 I added some logic for emacs terms to be ok, but I can't identify old
5542 I added some logic for emacs terms to be ok, but I can't identify old
5540 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5543 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5541
5544
5542 2002-03-10 Fernando Perez <fperez@colorado.edu>
5545 2002-03-10 Fernando Perez <fperez@colorado.edu>
5543
5546
5544 * IPython/usage.py (__doc__): Various documentation cleanups and
5547 * IPython/usage.py (__doc__): Various documentation cleanups and
5545 updates, both in usage docstrings and in the manual.
5548 updates, both in usage docstrings and in the manual.
5546
5549
5547 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5550 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5548 handling of caching. Set minimum acceptabe value for having a
5551 handling of caching. Set minimum acceptabe value for having a
5549 cache at 20 values.
5552 cache at 20 values.
5550
5553
5551 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5554 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5552 install_first_time function to a method, renamed it and added an
5555 install_first_time function to a method, renamed it and added an
5553 'upgrade' mode. Now people can update their config directory with
5556 'upgrade' mode. Now people can update their config directory with
5554 a simple command line switch (-upgrade, also new).
5557 a simple command line switch (-upgrade, also new).
5555
5558
5556 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5559 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5557 @file (convenient for automagic users under Python >= 2.2).
5560 @file (convenient for automagic users under Python >= 2.2).
5558 Removed @files (it seemed more like a plural than an abbrev. of
5561 Removed @files (it seemed more like a plural than an abbrev. of
5559 'file show').
5562 'file show').
5560
5563
5561 * IPython/iplib.py (install_first_time): Fixed crash if there were
5564 * IPython/iplib.py (install_first_time): Fixed crash if there were
5562 backup files ('~') in .ipython/ install directory.
5565 backup files ('~') in .ipython/ install directory.
5563
5566
5564 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5567 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5565 system. Things look fine, but these changes are fairly
5568 system. Things look fine, but these changes are fairly
5566 intrusive. Test them for a few days.
5569 intrusive. Test them for a few days.
5567
5570
5568 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5571 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5569 the prompts system. Now all in/out prompt strings are user
5572 the prompts system. Now all in/out prompt strings are user
5570 controllable. This is particularly useful for embedding, as one
5573 controllable. This is particularly useful for embedding, as one
5571 can tag embedded instances with particular prompts.
5574 can tag embedded instances with particular prompts.
5572
5575
5573 Also removed global use of sys.ps1/2, which now allows nested
5576 Also removed global use of sys.ps1/2, which now allows nested
5574 embeddings without any problems. Added command-line options for
5577 embeddings without any problems. Added command-line options for
5575 the prompt strings.
5578 the prompt strings.
5576
5579
5577 2002-03-08 Fernando Perez <fperez@colorado.edu>
5580 2002-03-08 Fernando Perez <fperez@colorado.edu>
5578
5581
5579 * IPython/UserConfig/example-embed-short.py (ipshell): added
5582 * IPython/UserConfig/example-embed-short.py (ipshell): added
5580 example file with the bare minimum code for embedding.
5583 example file with the bare minimum code for embedding.
5581
5584
5582 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5585 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5583 functionality for the embeddable shell to be activated/deactivated
5586 functionality for the embeddable shell to be activated/deactivated
5584 either globally or at each call.
5587 either globally or at each call.
5585
5588
5586 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5589 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5587 rewriting the prompt with '--->' for auto-inputs with proper
5590 rewriting the prompt with '--->' for auto-inputs with proper
5588 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5591 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5589 this is handled by the prompts class itself, as it should.
5592 this is handled by the prompts class itself, as it should.
5590
5593
5591 2002-03-05 Fernando Perez <fperez@colorado.edu>
5594 2002-03-05 Fernando Perez <fperez@colorado.edu>
5592
5595
5593 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5596 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5594 @logstart to avoid name clashes with the math log function.
5597 @logstart to avoid name clashes with the math log function.
5595
5598
5596 * Big updates to X/Emacs section of the manual.
5599 * Big updates to X/Emacs section of the manual.
5597
5600
5598 * Removed ipython_emacs. Milan explained to me how to pass
5601 * Removed ipython_emacs. Milan explained to me how to pass
5599 arguments to ipython through Emacs. Some day I'm going to end up
5602 arguments to ipython through Emacs. Some day I'm going to end up
5600 learning some lisp...
5603 learning some lisp...
5601
5604
5602 2002-03-04 Fernando Perez <fperez@colorado.edu>
5605 2002-03-04 Fernando Perez <fperez@colorado.edu>
5603
5606
5604 * IPython/ipython_emacs: Created script to be used as the
5607 * IPython/ipython_emacs: Created script to be used as the
5605 py-python-command Emacs variable so we can pass IPython
5608 py-python-command Emacs variable so we can pass IPython
5606 parameters. I can't figure out how to tell Emacs directly to pass
5609 parameters. I can't figure out how to tell Emacs directly to pass
5607 parameters to IPython, so a dummy shell script will do it.
5610 parameters to IPython, so a dummy shell script will do it.
5608
5611
5609 Other enhancements made for things to work better under Emacs'
5612 Other enhancements made for things to work better under Emacs'
5610 various types of terminals. Many thanks to Milan Zamazal
5613 various types of terminals. Many thanks to Milan Zamazal
5611 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5614 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5612
5615
5613 2002-03-01 Fernando Perez <fperez@colorado.edu>
5616 2002-03-01 Fernando Perez <fperez@colorado.edu>
5614
5617
5615 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5618 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5616 that loading of readline is now optional. This gives better
5619 that loading of readline is now optional. This gives better
5617 control to emacs users.
5620 control to emacs users.
5618
5621
5619 * IPython/ultraTB.py (__date__): Modified color escape sequences
5622 * IPython/ultraTB.py (__date__): Modified color escape sequences
5620 and now things work fine under xterm and in Emacs' term buffers
5623 and now things work fine under xterm and in Emacs' term buffers
5621 (though not shell ones). Well, in emacs you get colors, but all
5624 (though not shell ones). Well, in emacs you get colors, but all
5622 seem to be 'light' colors (no difference between dark and light
5625 seem to be 'light' colors (no difference between dark and light
5623 ones). But the garbage chars are gone, and also in xterms. It
5626 ones). But the garbage chars are gone, and also in xterms. It
5624 seems that now I'm using 'cleaner' ansi sequences.
5627 seems that now I'm using 'cleaner' ansi sequences.
5625
5628
5626 2002-02-21 Fernando Perez <fperez@colorado.edu>
5629 2002-02-21 Fernando Perez <fperez@colorado.edu>
5627
5630
5628 * Released 0.2.7 (mainly to publish the scoping fix).
5631 * Released 0.2.7 (mainly to publish the scoping fix).
5629
5632
5630 * IPython/Logger.py (Logger.logstate): added. A corresponding
5633 * IPython/Logger.py (Logger.logstate): added. A corresponding
5631 @logstate magic was created.
5634 @logstate magic was created.
5632
5635
5633 * IPython/Magic.py: fixed nested scoping problem under Python
5636 * IPython/Magic.py: fixed nested scoping problem under Python
5634 2.1.x (automagic wasn't working).
5637 2.1.x (automagic wasn't working).
5635
5638
5636 2002-02-20 Fernando Perez <fperez@colorado.edu>
5639 2002-02-20 Fernando Perez <fperez@colorado.edu>
5637
5640
5638 * Released 0.2.6.
5641 * Released 0.2.6.
5639
5642
5640 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5643 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5641 option so that logs can come out without any headers at all.
5644 option so that logs can come out without any headers at all.
5642
5645
5643 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5646 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5644 SciPy.
5647 SciPy.
5645
5648
5646 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5649 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5647 that embedded IPython calls don't require vars() to be explicitly
5650 that embedded IPython calls don't require vars() to be explicitly
5648 passed. Now they are extracted from the caller's frame (code
5651 passed. Now they are extracted from the caller's frame (code
5649 snatched from Eric Jones' weave). Added better documentation to
5652 snatched from Eric Jones' weave). Added better documentation to
5650 the section on embedding and the example file.
5653 the section on embedding and the example file.
5651
5654
5652 * IPython/genutils.py (page): Changed so that under emacs, it just
5655 * IPython/genutils.py (page): Changed so that under emacs, it just
5653 prints the string. You can then page up and down in the emacs
5656 prints the string. You can then page up and down in the emacs
5654 buffer itself. This is how the builtin help() works.
5657 buffer itself. This is how the builtin help() works.
5655
5658
5656 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5659 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5657 macro scoping: macros need to be executed in the user's namespace
5660 macro scoping: macros need to be executed in the user's namespace
5658 to work as if they had been typed by the user.
5661 to work as if they had been typed by the user.
5659
5662
5660 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5663 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5661 execute automatically (no need to type 'exec...'). They then
5664 execute automatically (no need to type 'exec...'). They then
5662 behave like 'true macros'. The printing system was also modified
5665 behave like 'true macros'. The printing system was also modified
5663 for this to work.
5666 for this to work.
5664
5667
5665 2002-02-19 Fernando Perez <fperez@colorado.edu>
5668 2002-02-19 Fernando Perez <fperez@colorado.edu>
5666
5669
5667 * IPython/genutils.py (page_file): new function for paging files
5670 * IPython/genutils.py (page_file): new function for paging files
5668 in an OS-independent way. Also necessary for file viewing to work
5671 in an OS-independent way. Also necessary for file viewing to work
5669 well inside Emacs buffers.
5672 well inside Emacs buffers.
5670 (page): Added checks for being in an emacs buffer.
5673 (page): Added checks for being in an emacs buffer.
5671 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5674 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5672 same bug in iplib.
5675 same bug in iplib.
5673
5676
5674 2002-02-18 Fernando Perez <fperez@colorado.edu>
5677 2002-02-18 Fernando Perez <fperez@colorado.edu>
5675
5678
5676 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5679 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5677 of readline so that IPython can work inside an Emacs buffer.
5680 of readline so that IPython can work inside an Emacs buffer.
5678
5681
5679 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5682 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5680 method signatures (they weren't really bugs, but it looks cleaner
5683 method signatures (they weren't really bugs, but it looks cleaner
5681 and keeps PyChecker happy).
5684 and keeps PyChecker happy).
5682
5685
5683 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5686 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5684 for implementing various user-defined hooks. Currently only
5687 for implementing various user-defined hooks. Currently only
5685 display is done.
5688 display is done.
5686
5689
5687 * IPython/Prompts.py (CachedOutput._display): changed display
5690 * IPython/Prompts.py (CachedOutput._display): changed display
5688 functions so that they can be dynamically changed by users easily.
5691 functions so that they can be dynamically changed by users easily.
5689
5692
5690 * IPython/Extensions/numeric_formats.py (num_display): added an
5693 * IPython/Extensions/numeric_formats.py (num_display): added an
5691 extension for printing NumPy arrays in flexible manners. It
5694 extension for printing NumPy arrays in flexible manners. It
5692 doesn't do anything yet, but all the structure is in
5695 doesn't do anything yet, but all the structure is in
5693 place. Ultimately the plan is to implement output format control
5696 place. Ultimately the plan is to implement output format control
5694 like in Octave.
5697 like in Octave.
5695
5698
5696 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5699 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5697 methods are found at run-time by all the automatic machinery.
5700 methods are found at run-time by all the automatic machinery.
5698
5701
5699 2002-02-17 Fernando Perez <fperez@colorado.edu>
5702 2002-02-17 Fernando Perez <fperez@colorado.edu>
5700
5703
5701 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5704 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5702 whole file a little.
5705 whole file a little.
5703
5706
5704 * ToDo: closed this document. Now there's a new_design.lyx
5707 * ToDo: closed this document. Now there's a new_design.lyx
5705 document for all new ideas. Added making a pdf of it for the
5708 document for all new ideas. Added making a pdf of it for the
5706 end-user distro.
5709 end-user distro.
5707
5710
5708 * IPython/Logger.py (Logger.switch_log): Created this to replace
5711 * IPython/Logger.py (Logger.switch_log): Created this to replace
5709 logon() and logoff(). It also fixes a nasty crash reported by
5712 logon() and logoff(). It also fixes a nasty crash reported by
5710 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5713 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5711
5714
5712 * IPython/iplib.py (complete): got auto-completion to work with
5715 * IPython/iplib.py (complete): got auto-completion to work with
5713 automagic (I had wanted this for a long time).
5716 automagic (I had wanted this for a long time).
5714
5717
5715 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5718 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5716 to @file, since file() is now a builtin and clashes with automagic
5719 to @file, since file() is now a builtin and clashes with automagic
5717 for @file.
5720 for @file.
5718
5721
5719 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5722 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5720 of this was previously in iplib, which had grown to more than 2000
5723 of this was previously in iplib, which had grown to more than 2000
5721 lines, way too long. No new functionality, but it makes managing
5724 lines, way too long. No new functionality, but it makes managing
5722 the code a bit easier.
5725 the code a bit easier.
5723
5726
5724 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5727 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5725 information to crash reports.
5728 information to crash reports.
5726
5729
5727 2002-02-12 Fernando Perez <fperez@colorado.edu>
5730 2002-02-12 Fernando Perez <fperez@colorado.edu>
5728
5731
5729 * Released 0.2.5.
5732 * Released 0.2.5.
5730
5733
5731 2002-02-11 Fernando Perez <fperez@colorado.edu>
5734 2002-02-11 Fernando Perez <fperez@colorado.edu>
5732
5735
5733 * Wrote a relatively complete Windows installer. It puts
5736 * Wrote a relatively complete Windows installer. It puts
5734 everything in place, creates Start Menu entries and fixes the
5737 everything in place, creates Start Menu entries and fixes the
5735 color issues. Nothing fancy, but it works.
5738 color issues. Nothing fancy, but it works.
5736
5739
5737 2002-02-10 Fernando Perez <fperez@colorado.edu>
5740 2002-02-10 Fernando Perez <fperez@colorado.edu>
5738
5741
5739 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5742 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5740 os.path.expanduser() call so that we can type @run ~/myfile.py and
5743 os.path.expanduser() call so that we can type @run ~/myfile.py and
5741 have thigs work as expected.
5744 have thigs work as expected.
5742
5745
5743 * IPython/genutils.py (page): fixed exception handling so things
5746 * IPython/genutils.py (page): fixed exception handling so things
5744 work both in Unix and Windows correctly. Quitting a pager triggers
5747 work both in Unix and Windows correctly. Quitting a pager triggers
5745 an IOError/broken pipe in Unix, and in windows not finding a pager
5748 an IOError/broken pipe in Unix, and in windows not finding a pager
5746 is also an IOError, so I had to actually look at the return value
5749 is also an IOError, so I had to actually look at the return value
5747 of the exception, not just the exception itself. Should be ok now.
5750 of the exception, not just the exception itself. Should be ok now.
5748
5751
5749 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5752 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5750 modified to allow case-insensitive color scheme changes.
5753 modified to allow case-insensitive color scheme changes.
5751
5754
5752 2002-02-09 Fernando Perez <fperez@colorado.edu>
5755 2002-02-09 Fernando Perez <fperez@colorado.edu>
5753
5756
5754 * IPython/genutils.py (native_line_ends): new function to leave
5757 * IPython/genutils.py (native_line_ends): new function to leave
5755 user config files with os-native line-endings.
5758 user config files with os-native line-endings.
5756
5759
5757 * README and manual updates.
5760 * README and manual updates.
5758
5761
5759 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5762 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5760 instead of StringType to catch Unicode strings.
5763 instead of StringType to catch Unicode strings.
5761
5764
5762 * IPython/genutils.py (filefind): fixed bug for paths with
5765 * IPython/genutils.py (filefind): fixed bug for paths with
5763 embedded spaces (very common in Windows).
5766 embedded spaces (very common in Windows).
5764
5767
5765 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5768 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5766 files under Windows, so that they get automatically associated
5769 files under Windows, so that they get automatically associated
5767 with a text editor. Windows makes it a pain to handle
5770 with a text editor. Windows makes it a pain to handle
5768 extension-less files.
5771 extension-less files.
5769
5772
5770 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5773 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5771 warning about readline only occur for Posix. In Windows there's no
5774 warning about readline only occur for Posix. In Windows there's no
5772 way to get readline, so why bother with the warning.
5775 way to get readline, so why bother with the warning.
5773
5776
5774 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5777 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5775 for __str__ instead of dir(self), since dir() changed in 2.2.
5778 for __str__ instead of dir(self), since dir() changed in 2.2.
5776
5779
5777 * Ported to Windows! Tested on XP, I suspect it should work fine
5780 * Ported to Windows! Tested on XP, I suspect it should work fine
5778 on NT/2000, but I don't think it will work on 98 et al. That
5781 on NT/2000, but I don't think it will work on 98 et al. That
5779 series of Windows is such a piece of junk anyway that I won't try
5782 series of Windows is such a piece of junk anyway that I won't try
5780 porting it there. The XP port was straightforward, showed a few
5783 porting it there. The XP port was straightforward, showed a few
5781 bugs here and there (fixed all), in particular some string
5784 bugs here and there (fixed all), in particular some string
5782 handling stuff which required considering Unicode strings (which
5785 handling stuff which required considering Unicode strings (which
5783 Windows uses). This is good, but hasn't been too tested :) No
5786 Windows uses). This is good, but hasn't been too tested :) No
5784 fancy installer yet, I'll put a note in the manual so people at
5787 fancy installer yet, I'll put a note in the manual so people at
5785 least make manually a shortcut.
5788 least make manually a shortcut.
5786
5789
5787 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5790 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5788 into a single one, "colors". This now controls both prompt and
5791 into a single one, "colors". This now controls both prompt and
5789 exception color schemes, and can be changed both at startup
5792 exception color schemes, and can be changed both at startup
5790 (either via command-line switches or via ipythonrc files) and at
5793 (either via command-line switches or via ipythonrc files) and at
5791 runtime, with @colors.
5794 runtime, with @colors.
5792 (Magic.magic_run): renamed @prun to @run and removed the old
5795 (Magic.magic_run): renamed @prun to @run and removed the old
5793 @run. The two were too similar to warrant keeping both.
5796 @run. The two were too similar to warrant keeping both.
5794
5797
5795 2002-02-03 Fernando Perez <fperez@colorado.edu>
5798 2002-02-03 Fernando Perez <fperez@colorado.edu>
5796
5799
5797 * IPython/iplib.py (install_first_time): Added comment on how to
5800 * IPython/iplib.py (install_first_time): Added comment on how to
5798 configure the color options for first-time users. Put a <return>
5801 configure the color options for first-time users. Put a <return>
5799 request at the end so that small-terminal users get a chance to
5802 request at the end so that small-terminal users get a chance to
5800 read the startup info.
5803 read the startup info.
5801
5804
5802 2002-01-23 Fernando Perez <fperez@colorado.edu>
5805 2002-01-23 Fernando Perez <fperez@colorado.edu>
5803
5806
5804 * IPython/iplib.py (CachedOutput.update): Changed output memory
5807 * IPython/iplib.py (CachedOutput.update): Changed output memory
5805 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5808 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5806 input history we still use _i. Did this b/c these variable are
5809 input history we still use _i. Did this b/c these variable are
5807 very commonly used in interactive work, so the less we need to
5810 very commonly used in interactive work, so the less we need to
5808 type the better off we are.
5811 type the better off we are.
5809 (Magic.magic_prun): updated @prun to better handle the namespaces
5812 (Magic.magic_prun): updated @prun to better handle the namespaces
5810 the file will run in, including a fix for __name__ not being set
5813 the file will run in, including a fix for __name__ not being set
5811 before.
5814 before.
5812
5815
5813 2002-01-20 Fernando Perez <fperez@colorado.edu>
5816 2002-01-20 Fernando Perez <fperez@colorado.edu>
5814
5817
5815 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5818 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5816 extra garbage for Python 2.2. Need to look more carefully into
5819 extra garbage for Python 2.2. Need to look more carefully into
5817 this later.
5820 this later.
5818
5821
5819 2002-01-19 Fernando Perez <fperez@colorado.edu>
5822 2002-01-19 Fernando Perez <fperez@colorado.edu>
5820
5823
5821 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5824 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5822 display SyntaxError exceptions properly formatted when they occur
5825 display SyntaxError exceptions properly formatted when they occur
5823 (they can be triggered by imported code).
5826 (they can be triggered by imported code).
5824
5827
5825 2002-01-18 Fernando Perez <fperez@colorado.edu>
5828 2002-01-18 Fernando Perez <fperez@colorado.edu>
5826
5829
5827 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5830 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5828 SyntaxError exceptions are reported nicely formatted, instead of
5831 SyntaxError exceptions are reported nicely formatted, instead of
5829 spitting out only offset information as before.
5832 spitting out only offset information as before.
5830 (Magic.magic_prun): Added the @prun function for executing
5833 (Magic.magic_prun): Added the @prun function for executing
5831 programs with command line args inside IPython.
5834 programs with command line args inside IPython.
5832
5835
5833 2002-01-16 Fernando Perez <fperez@colorado.edu>
5836 2002-01-16 Fernando Perez <fperez@colorado.edu>
5834
5837
5835 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5838 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5836 to *not* include the last item given in a range. This brings their
5839 to *not* include the last item given in a range. This brings their
5837 behavior in line with Python's slicing:
5840 behavior in line with Python's slicing:
5838 a[n1:n2] -> a[n1]...a[n2-1]
5841 a[n1:n2] -> a[n1]...a[n2-1]
5839 It may be a bit less convenient, but I prefer to stick to Python's
5842 It may be a bit less convenient, but I prefer to stick to Python's
5840 conventions *everywhere*, so users never have to wonder.
5843 conventions *everywhere*, so users never have to wonder.
5841 (Magic.magic_macro): Added @macro function to ease the creation of
5844 (Magic.magic_macro): Added @macro function to ease the creation of
5842 macros.
5845 macros.
5843
5846
5844 2002-01-05 Fernando Perez <fperez@colorado.edu>
5847 2002-01-05 Fernando Perez <fperez@colorado.edu>
5845
5848
5846 * Released 0.2.4.
5849 * Released 0.2.4.
5847
5850
5848 * IPython/iplib.py (Magic.magic_pdef):
5851 * IPython/iplib.py (Magic.magic_pdef):
5849 (InteractiveShell.safe_execfile): report magic lines and error
5852 (InteractiveShell.safe_execfile): report magic lines and error
5850 lines without line numbers so one can easily copy/paste them for
5853 lines without line numbers so one can easily copy/paste them for
5851 re-execution.
5854 re-execution.
5852
5855
5853 * Updated manual with recent changes.
5856 * Updated manual with recent changes.
5854
5857
5855 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5858 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5856 docstring printing when class? is called. Very handy for knowing
5859 docstring printing when class? is called. Very handy for knowing
5857 how to create class instances (as long as __init__ is well
5860 how to create class instances (as long as __init__ is well
5858 documented, of course :)
5861 documented, of course :)
5859 (Magic.magic_doc): print both class and constructor docstrings.
5862 (Magic.magic_doc): print both class and constructor docstrings.
5860 (Magic.magic_pdef): give constructor info if passed a class and
5863 (Magic.magic_pdef): give constructor info if passed a class and
5861 __call__ info for callable object instances.
5864 __call__ info for callable object instances.
5862
5865
5863 2002-01-04 Fernando Perez <fperez@colorado.edu>
5866 2002-01-04 Fernando Perez <fperez@colorado.edu>
5864
5867
5865 * Made deep_reload() off by default. It doesn't always work
5868 * Made deep_reload() off by default. It doesn't always work
5866 exactly as intended, so it's probably safer to have it off. It's
5869 exactly as intended, so it's probably safer to have it off. It's
5867 still available as dreload() anyway, so nothing is lost.
5870 still available as dreload() anyway, so nothing is lost.
5868
5871
5869 2002-01-02 Fernando Perez <fperez@colorado.edu>
5872 2002-01-02 Fernando Perez <fperez@colorado.edu>
5870
5873
5871 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5874 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5872 so I wanted an updated release).
5875 so I wanted an updated release).
5873
5876
5874 2001-12-27 Fernando Perez <fperez@colorado.edu>
5877 2001-12-27 Fernando Perez <fperez@colorado.edu>
5875
5878
5876 * IPython/iplib.py (InteractiveShell.interact): Added the original
5879 * IPython/iplib.py (InteractiveShell.interact): Added the original
5877 code from 'code.py' for this module in order to change the
5880 code from 'code.py' for this module in order to change the
5878 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5881 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5879 the history cache would break when the user hit Ctrl-C, and
5882 the history cache would break when the user hit Ctrl-C, and
5880 interact() offers no way to add any hooks to it.
5883 interact() offers no way to add any hooks to it.
5881
5884
5882 2001-12-23 Fernando Perez <fperez@colorado.edu>
5885 2001-12-23 Fernando Perez <fperez@colorado.edu>
5883
5886
5884 * setup.py: added check for 'MANIFEST' before trying to remove
5887 * setup.py: added check for 'MANIFEST' before trying to remove
5885 it. Thanks to Sean Reifschneider.
5888 it. Thanks to Sean Reifschneider.
5886
5889
5887 2001-12-22 Fernando Perez <fperez@colorado.edu>
5890 2001-12-22 Fernando Perez <fperez@colorado.edu>
5888
5891
5889 * Released 0.2.2.
5892 * Released 0.2.2.
5890
5893
5891 * Finished (reasonably) writing the manual. Later will add the
5894 * Finished (reasonably) writing the manual. Later will add the
5892 python-standard navigation stylesheets, but for the time being
5895 python-standard navigation stylesheets, but for the time being
5893 it's fairly complete. Distribution will include html and pdf
5896 it's fairly complete. Distribution will include html and pdf
5894 versions.
5897 versions.
5895
5898
5896 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5899 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5897 (MayaVi author).
5900 (MayaVi author).
5898
5901
5899 2001-12-21 Fernando Perez <fperez@colorado.edu>
5902 2001-12-21 Fernando Perez <fperez@colorado.edu>
5900
5903
5901 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5904 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5902 good public release, I think (with the manual and the distutils
5905 good public release, I think (with the manual and the distutils
5903 installer). The manual can use some work, but that can go
5906 installer). The manual can use some work, but that can go
5904 slowly. Otherwise I think it's quite nice for end users. Next
5907 slowly. Otherwise I think it's quite nice for end users. Next
5905 summer, rewrite the guts of it...
5908 summer, rewrite the guts of it...
5906
5909
5907 * Changed format of ipythonrc files to use whitespace as the
5910 * Changed format of ipythonrc files to use whitespace as the
5908 separator instead of an explicit '='. Cleaner.
5911 separator instead of an explicit '='. Cleaner.
5909
5912
5910 2001-12-20 Fernando Perez <fperez@colorado.edu>
5913 2001-12-20 Fernando Perez <fperez@colorado.edu>
5911
5914
5912 * Started a manual in LyX. For now it's just a quick merge of the
5915 * Started a manual in LyX. For now it's just a quick merge of the
5913 various internal docstrings and READMEs. Later it may grow into a
5916 various internal docstrings and READMEs. Later it may grow into a
5914 nice, full-blown manual.
5917 nice, full-blown manual.
5915
5918
5916 * Set up a distutils based installer. Installation should now be
5919 * Set up a distutils based installer. Installation should now be
5917 trivially simple for end-users.
5920 trivially simple for end-users.
5918
5921
5919 2001-12-11 Fernando Perez <fperez@colorado.edu>
5922 2001-12-11 Fernando Perez <fperez@colorado.edu>
5920
5923
5921 * Released 0.2.0. First public release, announced it at
5924 * Released 0.2.0. First public release, announced it at
5922 comp.lang.python. From now on, just bugfixes...
5925 comp.lang.python. From now on, just bugfixes...
5923
5926
5924 * Went through all the files, set copyright/license notices and
5927 * Went through all the files, set copyright/license notices and
5925 cleaned up things. Ready for release.
5928 cleaned up things. Ready for release.
5926
5929
5927 2001-12-10 Fernando Perez <fperez@colorado.edu>
5930 2001-12-10 Fernando Perez <fperez@colorado.edu>
5928
5931
5929 * Changed the first-time installer not to use tarfiles. It's more
5932 * Changed the first-time installer not to use tarfiles. It's more
5930 robust now and less unix-dependent. Also makes it easier for
5933 robust now and less unix-dependent. Also makes it easier for
5931 people to later upgrade versions.
5934 people to later upgrade versions.
5932
5935
5933 * Changed @exit to @abort to reflect the fact that it's pretty
5936 * Changed @exit to @abort to reflect the fact that it's pretty
5934 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5937 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5935 becomes significant only when IPyhton is embedded: in that case,
5938 becomes significant only when IPyhton is embedded: in that case,
5936 C-D closes IPython only, but @abort kills the enclosing program
5939 C-D closes IPython only, but @abort kills the enclosing program
5937 too (unless it had called IPython inside a try catching
5940 too (unless it had called IPython inside a try catching
5938 SystemExit).
5941 SystemExit).
5939
5942
5940 * Created Shell module which exposes the actuall IPython Shell
5943 * Created Shell module which exposes the actuall IPython Shell
5941 classes, currently the normal and the embeddable one. This at
5944 classes, currently the normal and the embeddable one. This at
5942 least offers a stable interface we won't need to change when
5945 least offers a stable interface we won't need to change when
5943 (later) the internals are rewritten. That rewrite will be confined
5946 (later) the internals are rewritten. That rewrite will be confined
5944 to iplib and ipmaker, but the Shell interface should remain as is.
5947 to iplib and ipmaker, but the Shell interface should remain as is.
5945
5948
5946 * Added embed module which offers an embeddable IPShell object,
5949 * Added embed module which offers an embeddable IPShell object,
5947 useful to fire up IPython *inside* a running program. Great for
5950 useful to fire up IPython *inside* a running program. Great for
5948 debugging or dynamical data analysis.
5951 debugging or dynamical data analysis.
5949
5952
5950 2001-12-08 Fernando Perez <fperez@colorado.edu>
5953 2001-12-08 Fernando Perez <fperez@colorado.edu>
5951
5954
5952 * Fixed small bug preventing seeing info from methods of defined
5955 * Fixed small bug preventing seeing info from methods of defined
5953 objects (incorrect namespace in _ofind()).
5956 objects (incorrect namespace in _ofind()).
5954
5957
5955 * Documentation cleanup. Moved the main usage docstrings to a
5958 * Documentation cleanup. Moved the main usage docstrings to a
5956 separate file, usage.py (cleaner to maintain, and hopefully in the
5959 separate file, usage.py (cleaner to maintain, and hopefully in the
5957 future some perlpod-like way of producing interactive, man and
5960 future some perlpod-like way of producing interactive, man and
5958 html docs out of it will be found).
5961 html docs out of it will be found).
5959
5962
5960 * Added @profile to see your profile at any time.
5963 * Added @profile to see your profile at any time.
5961
5964
5962 * Added @p as an alias for 'print'. It's especially convenient if
5965 * Added @p as an alias for 'print'. It's especially convenient if
5963 using automagic ('p x' prints x).
5966 using automagic ('p x' prints x).
5964
5967
5965 * Small cleanups and fixes after a pychecker run.
5968 * Small cleanups and fixes after a pychecker run.
5966
5969
5967 * Changed the @cd command to handle @cd - and @cd -<n> for
5970 * Changed the @cd command to handle @cd - and @cd -<n> for
5968 visiting any directory in _dh.
5971 visiting any directory in _dh.
5969
5972
5970 * Introduced _dh, a history of visited directories. @dhist prints
5973 * Introduced _dh, a history of visited directories. @dhist prints
5971 it out with numbers.
5974 it out with numbers.
5972
5975
5973 2001-12-07 Fernando Perez <fperez@colorado.edu>
5976 2001-12-07 Fernando Perez <fperez@colorado.edu>
5974
5977
5975 * Released 0.1.22
5978 * Released 0.1.22
5976
5979
5977 * Made initialization a bit more robust against invalid color
5980 * Made initialization a bit more robust against invalid color
5978 options in user input (exit, not traceback-crash).
5981 options in user input (exit, not traceback-crash).
5979
5982
5980 * Changed the bug crash reporter to write the report only in the
5983 * Changed the bug crash reporter to write the report only in the
5981 user's .ipython directory. That way IPython won't litter people's
5984 user's .ipython directory. That way IPython won't litter people's
5982 hard disks with crash files all over the place. Also print on
5985 hard disks with crash files all over the place. Also print on
5983 screen the necessary mail command.
5986 screen the necessary mail command.
5984
5987
5985 * With the new ultraTB, implemented LightBG color scheme for light
5988 * With the new ultraTB, implemented LightBG color scheme for light
5986 background terminals. A lot of people like white backgrounds, so I
5989 background terminals. A lot of people like white backgrounds, so I
5987 guess we should at least give them something readable.
5990 guess we should at least give them something readable.
5988
5991
5989 2001-12-06 Fernando Perez <fperez@colorado.edu>
5992 2001-12-06 Fernando Perez <fperez@colorado.edu>
5990
5993
5991 * Modified the structure of ultraTB. Now there's a proper class
5994 * Modified the structure of ultraTB. Now there's a proper class
5992 for tables of color schemes which allow adding schemes easily and
5995 for tables of color schemes which allow adding schemes easily and
5993 switching the active scheme without creating a new instance every
5996 switching the active scheme without creating a new instance every
5994 time (which was ridiculous). The syntax for creating new schemes
5997 time (which was ridiculous). The syntax for creating new schemes
5995 is also cleaner. I think ultraTB is finally done, with a clean
5998 is also cleaner. I think ultraTB is finally done, with a clean
5996 class structure. Names are also much cleaner (now there's proper
5999 class structure. Names are also much cleaner (now there's proper
5997 color tables, no need for every variable to also have 'color' in
6000 color tables, no need for every variable to also have 'color' in
5998 its name).
6001 its name).
5999
6002
6000 * Broke down genutils into separate files. Now genutils only
6003 * Broke down genutils into separate files. Now genutils only
6001 contains utility functions, and classes have been moved to their
6004 contains utility functions, and classes have been moved to their
6002 own files (they had enough independent functionality to warrant
6005 own files (they had enough independent functionality to warrant
6003 it): ConfigLoader, OutputTrap, Struct.
6006 it): ConfigLoader, OutputTrap, Struct.
6004
6007
6005 2001-12-05 Fernando Perez <fperez@colorado.edu>
6008 2001-12-05 Fernando Perez <fperez@colorado.edu>
6006
6009
6007 * IPython turns 21! Released version 0.1.21, as a candidate for
6010 * IPython turns 21! Released version 0.1.21, as a candidate for
6008 public consumption. If all goes well, release in a few days.
6011 public consumption. If all goes well, release in a few days.
6009
6012
6010 * Fixed path bug (files in Extensions/ directory wouldn't be found
6013 * Fixed path bug (files in Extensions/ directory wouldn't be found
6011 unless IPython/ was explicitly in sys.path).
6014 unless IPython/ was explicitly in sys.path).
6012
6015
6013 * Extended the FlexCompleter class as MagicCompleter to allow
6016 * Extended the FlexCompleter class as MagicCompleter to allow
6014 completion of @-starting lines.
6017 completion of @-starting lines.
6015
6018
6016 * Created __release__.py file as a central repository for release
6019 * Created __release__.py file as a central repository for release
6017 info that other files can read from.
6020 info that other files can read from.
6018
6021
6019 * Fixed small bug in logging: when logging was turned on in
6022 * Fixed small bug in logging: when logging was turned on in
6020 mid-session, old lines with special meanings (!@?) were being
6023 mid-session, old lines with special meanings (!@?) were being
6021 logged without the prepended comment, which is necessary since
6024 logged without the prepended comment, which is necessary since
6022 they are not truly valid python syntax. This should make session
6025 they are not truly valid python syntax. This should make session
6023 restores produce less errors.
6026 restores produce less errors.
6024
6027
6025 * The namespace cleanup forced me to make a FlexCompleter class
6028 * The namespace cleanup forced me to make a FlexCompleter class
6026 which is nothing but a ripoff of rlcompleter, but with selectable
6029 which is nothing but a ripoff of rlcompleter, but with selectable
6027 namespace (rlcompleter only works in __main__.__dict__). I'll try
6030 namespace (rlcompleter only works in __main__.__dict__). I'll try
6028 to submit a note to the authors to see if this change can be
6031 to submit a note to the authors to see if this change can be
6029 incorporated in future rlcompleter releases (Dec.6: done)
6032 incorporated in future rlcompleter releases (Dec.6: done)
6030
6033
6031 * More fixes to namespace handling. It was a mess! Now all
6034 * More fixes to namespace handling. It was a mess! Now all
6032 explicit references to __main__.__dict__ are gone (except when
6035 explicit references to __main__.__dict__ are gone (except when
6033 really needed) and everything is handled through the namespace
6036 really needed) and everything is handled through the namespace
6034 dicts in the IPython instance. We seem to be getting somewhere
6037 dicts in the IPython instance. We seem to be getting somewhere
6035 with this, finally...
6038 with this, finally...
6036
6039
6037 * Small documentation updates.
6040 * Small documentation updates.
6038
6041
6039 * Created the Extensions directory under IPython (with an
6042 * Created the Extensions directory under IPython (with an
6040 __init__.py). Put the PhysicalQ stuff there. This directory should
6043 __init__.py). Put the PhysicalQ stuff there. This directory should
6041 be used for all special-purpose extensions.
6044 be used for all special-purpose extensions.
6042
6045
6043 * File renaming:
6046 * File renaming:
6044 ipythonlib --> ipmaker
6047 ipythonlib --> ipmaker
6045 ipplib --> iplib
6048 ipplib --> iplib
6046 This makes a bit more sense in terms of what these files actually do.
6049 This makes a bit more sense in terms of what these files actually do.
6047
6050
6048 * Moved all the classes and functions in ipythonlib to ipplib, so
6051 * Moved all the classes and functions in ipythonlib to ipplib, so
6049 now ipythonlib only has make_IPython(). This will ease up its
6052 now ipythonlib only has make_IPython(). This will ease up its
6050 splitting in smaller functional chunks later.
6053 splitting in smaller functional chunks later.
6051
6054
6052 * Cleaned up (done, I think) output of @whos. Better column
6055 * Cleaned up (done, I think) output of @whos. Better column
6053 formatting, and now shows str(var) for as much as it can, which is
6056 formatting, and now shows str(var) for as much as it can, which is
6054 typically what one gets with a 'print var'.
6057 typically what one gets with a 'print var'.
6055
6058
6056 2001-12-04 Fernando Perez <fperez@colorado.edu>
6059 2001-12-04 Fernando Perez <fperez@colorado.edu>
6057
6060
6058 * Fixed namespace problems. Now builtin/IPyhton/user names get
6061 * Fixed namespace problems. Now builtin/IPyhton/user names get
6059 properly reported in their namespace. Internal namespace handling
6062 properly reported in their namespace. Internal namespace handling
6060 is finally getting decent (not perfect yet, but much better than
6063 is finally getting decent (not perfect yet, but much better than
6061 the ad-hoc mess we had).
6064 the ad-hoc mess we had).
6062
6065
6063 * Removed -exit option. If people just want to run a python
6066 * Removed -exit option. If people just want to run a python
6064 script, that's what the normal interpreter is for. Less
6067 script, that's what the normal interpreter is for. Less
6065 unnecessary options, less chances for bugs.
6068 unnecessary options, less chances for bugs.
6066
6069
6067 * Added a crash handler which generates a complete post-mortem if
6070 * Added a crash handler which generates a complete post-mortem if
6068 IPython crashes. This will help a lot in tracking bugs down the
6071 IPython crashes. This will help a lot in tracking bugs down the
6069 road.
6072 road.
6070
6073
6071 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6074 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6072 which were boud to functions being reassigned would bypass the
6075 which were boud to functions being reassigned would bypass the
6073 logger, breaking the sync of _il with the prompt counter. This
6076 logger, breaking the sync of _il with the prompt counter. This
6074 would then crash IPython later when a new line was logged.
6077 would then crash IPython later when a new line was logged.
6075
6078
6076 2001-12-02 Fernando Perez <fperez@colorado.edu>
6079 2001-12-02 Fernando Perez <fperez@colorado.edu>
6077
6080
6078 * Made IPython a package. This means people don't have to clutter
6081 * Made IPython a package. This means people don't have to clutter
6079 their sys.path with yet another directory. Changed the INSTALL
6082 their sys.path with yet another directory. Changed the INSTALL
6080 file accordingly.
6083 file accordingly.
6081
6084
6082 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6085 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6083 sorts its output (so @who shows it sorted) and @whos formats the
6086 sorts its output (so @who shows it sorted) and @whos formats the
6084 table according to the width of the first column. Nicer, easier to
6087 table according to the width of the first column. Nicer, easier to
6085 read. Todo: write a generic table_format() which takes a list of
6088 read. Todo: write a generic table_format() which takes a list of
6086 lists and prints it nicely formatted, with optional row/column
6089 lists and prints it nicely formatted, with optional row/column
6087 separators and proper padding and justification.
6090 separators and proper padding and justification.
6088
6091
6089 * Released 0.1.20
6092 * Released 0.1.20
6090
6093
6091 * Fixed bug in @log which would reverse the inputcache list (a
6094 * Fixed bug in @log which would reverse the inputcache list (a
6092 copy operation was missing).
6095 copy operation was missing).
6093
6096
6094 * Code cleanup. @config was changed to use page(). Better, since
6097 * Code cleanup. @config was changed to use page(). Better, since
6095 its output is always quite long.
6098 its output is always quite long.
6096
6099
6097 * Itpl is back as a dependency. I was having too many problems
6100 * Itpl is back as a dependency. I was having too many problems
6098 getting the parametric aliases to work reliably, and it's just
6101 getting the parametric aliases to work reliably, and it's just
6099 easier to code weird string operations with it than playing %()s
6102 easier to code weird string operations with it than playing %()s
6100 games. It's only ~6k, so I don't think it's too big a deal.
6103 games. It's only ~6k, so I don't think it's too big a deal.
6101
6104
6102 * Found (and fixed) a very nasty bug with history. !lines weren't
6105 * Found (and fixed) a very nasty bug with history. !lines weren't
6103 getting cached, and the out of sync caches would crash
6106 getting cached, and the out of sync caches would crash
6104 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6107 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6105 division of labor a bit better. Bug fixed, cleaner structure.
6108 division of labor a bit better. Bug fixed, cleaner structure.
6106
6109
6107 2001-12-01 Fernando Perez <fperez@colorado.edu>
6110 2001-12-01 Fernando Perez <fperez@colorado.edu>
6108
6111
6109 * Released 0.1.19
6112 * Released 0.1.19
6110
6113
6111 * Added option -n to @hist to prevent line number printing. Much
6114 * Added option -n to @hist to prevent line number printing. Much
6112 easier to copy/paste code this way.
6115 easier to copy/paste code this way.
6113
6116
6114 * Created global _il to hold the input list. Allows easy
6117 * Created global _il to hold the input list. Allows easy
6115 re-execution of blocks of code by slicing it (inspired by Janko's
6118 re-execution of blocks of code by slicing it (inspired by Janko's
6116 comment on 'macros').
6119 comment on 'macros').
6117
6120
6118 * Small fixes and doc updates.
6121 * Small fixes and doc updates.
6119
6122
6120 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6123 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6121 much too fragile with automagic. Handles properly multi-line
6124 much too fragile with automagic. Handles properly multi-line
6122 statements and takes parameters.
6125 statements and takes parameters.
6123
6126
6124 2001-11-30 Fernando Perez <fperez@colorado.edu>
6127 2001-11-30 Fernando Perez <fperez@colorado.edu>
6125
6128
6126 * Version 0.1.18 released.
6129 * Version 0.1.18 released.
6127
6130
6128 * Fixed nasty namespace bug in initial module imports.
6131 * Fixed nasty namespace bug in initial module imports.
6129
6132
6130 * Added copyright/license notes to all code files (except
6133 * Added copyright/license notes to all code files (except
6131 DPyGetOpt). For the time being, LGPL. That could change.
6134 DPyGetOpt). For the time being, LGPL. That could change.
6132
6135
6133 * Rewrote a much nicer README, updated INSTALL, cleaned up
6136 * Rewrote a much nicer README, updated INSTALL, cleaned up
6134 ipythonrc-* samples.
6137 ipythonrc-* samples.
6135
6138
6136 * Overall code/documentation cleanup. Basically ready for
6139 * Overall code/documentation cleanup. Basically ready for
6137 release. Only remaining thing: licence decision (LGPL?).
6140 release. Only remaining thing: licence decision (LGPL?).
6138
6141
6139 * Converted load_config to a class, ConfigLoader. Now recursion
6142 * Converted load_config to a class, ConfigLoader. Now recursion
6140 control is better organized. Doesn't include the same file twice.
6143 control is better organized. Doesn't include the same file twice.
6141
6144
6142 2001-11-29 Fernando Perez <fperez@colorado.edu>
6145 2001-11-29 Fernando Perez <fperez@colorado.edu>
6143
6146
6144 * Got input history working. Changed output history variables from
6147 * Got input history working. Changed output history variables from
6145 _p to _o so that _i is for input and _o for output. Just cleaner
6148 _p to _o so that _i is for input and _o for output. Just cleaner
6146 convention.
6149 convention.
6147
6150
6148 * Implemented parametric aliases. This pretty much allows the
6151 * Implemented parametric aliases. This pretty much allows the
6149 alias system to offer full-blown shell convenience, I think.
6152 alias system to offer full-blown shell convenience, I think.
6150
6153
6151 * Version 0.1.17 released, 0.1.18 opened.
6154 * Version 0.1.17 released, 0.1.18 opened.
6152
6155
6153 * dot_ipython/ipythonrc (alias): added documentation.
6156 * dot_ipython/ipythonrc (alias): added documentation.
6154 (xcolor): Fixed small bug (xcolors -> xcolor)
6157 (xcolor): Fixed small bug (xcolors -> xcolor)
6155
6158
6156 * Changed the alias system. Now alias is a magic command to define
6159 * Changed the alias system. Now alias is a magic command to define
6157 aliases just like the shell. Rationale: the builtin magics should
6160 aliases just like the shell. Rationale: the builtin magics should
6158 be there for things deeply connected to IPython's
6161 be there for things deeply connected to IPython's
6159 architecture. And this is a much lighter system for what I think
6162 architecture. And this is a much lighter system for what I think
6160 is the really important feature: allowing users to define quickly
6163 is the really important feature: allowing users to define quickly
6161 magics that will do shell things for them, so they can customize
6164 magics that will do shell things for them, so they can customize
6162 IPython easily to match their work habits. If someone is really
6165 IPython easily to match their work habits. If someone is really
6163 desperate to have another name for a builtin alias, they can
6166 desperate to have another name for a builtin alias, they can
6164 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6167 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6165 works.
6168 works.
6166
6169
6167 2001-11-28 Fernando Perez <fperez@colorado.edu>
6170 2001-11-28 Fernando Perez <fperez@colorado.edu>
6168
6171
6169 * Changed @file so that it opens the source file at the proper
6172 * Changed @file so that it opens the source file at the proper
6170 line. Since it uses less, if your EDITOR environment is
6173 line. Since it uses less, if your EDITOR environment is
6171 configured, typing v will immediately open your editor of choice
6174 configured, typing v will immediately open your editor of choice
6172 right at the line where the object is defined. Not as quick as
6175 right at the line where the object is defined. Not as quick as
6173 having a direct @edit command, but for all intents and purposes it
6176 having a direct @edit command, but for all intents and purposes it
6174 works. And I don't have to worry about writing @edit to deal with
6177 works. And I don't have to worry about writing @edit to deal with
6175 all the editors, less does that.
6178 all the editors, less does that.
6176
6179
6177 * Version 0.1.16 released, 0.1.17 opened.
6180 * Version 0.1.16 released, 0.1.17 opened.
6178
6181
6179 * Fixed some nasty bugs in the page/page_dumb combo that could
6182 * Fixed some nasty bugs in the page/page_dumb combo that could
6180 crash IPython.
6183 crash IPython.
6181
6184
6182 2001-11-27 Fernando Perez <fperez@colorado.edu>
6185 2001-11-27 Fernando Perez <fperez@colorado.edu>
6183
6186
6184 * Version 0.1.15 released, 0.1.16 opened.
6187 * Version 0.1.15 released, 0.1.16 opened.
6185
6188
6186 * Finally got ? and ?? to work for undefined things: now it's
6189 * Finally got ? and ?? to work for undefined things: now it's
6187 possible to type {}.get? and get information about the get method
6190 possible to type {}.get? and get information about the get method
6188 of dicts, or os.path? even if only os is defined (so technically
6191 of dicts, or os.path? even if only os is defined (so technically
6189 os.path isn't). Works at any level. For example, after import os,
6192 os.path isn't). Works at any level. For example, after import os,
6190 os?, os.path?, os.path.abspath? all work. This is great, took some
6193 os?, os.path?, os.path.abspath? all work. This is great, took some
6191 work in _ofind.
6194 work in _ofind.
6192
6195
6193 * Fixed more bugs with logging. The sanest way to do it was to add
6196 * Fixed more bugs with logging. The sanest way to do it was to add
6194 to @log a 'mode' parameter. Killed two in one shot (this mode
6197 to @log a 'mode' parameter. Killed two in one shot (this mode
6195 option was a request of Janko's). I think it's finally clean
6198 option was a request of Janko's). I think it's finally clean
6196 (famous last words).
6199 (famous last words).
6197
6200
6198 * Added a page_dumb() pager which does a decent job of paging on
6201 * Added a page_dumb() pager which does a decent job of paging on
6199 screen, if better things (like less) aren't available. One less
6202 screen, if better things (like less) aren't available. One less
6200 unix dependency (someday maybe somebody will port this to
6203 unix dependency (someday maybe somebody will port this to
6201 windows).
6204 windows).
6202
6205
6203 * Fixed problem in magic_log: would lock of logging out if log
6206 * Fixed problem in magic_log: would lock of logging out if log
6204 creation failed (because it would still think it had succeeded).
6207 creation failed (because it would still think it had succeeded).
6205
6208
6206 * Improved the page() function using curses to auto-detect screen
6209 * Improved the page() function using curses to auto-detect screen
6207 size. Now it can make a much better decision on whether to print
6210 size. Now it can make a much better decision on whether to print
6208 or page a string. Option screen_length was modified: a value 0
6211 or page a string. Option screen_length was modified: a value 0
6209 means auto-detect, and that's the default now.
6212 means auto-detect, and that's the default now.
6210
6213
6211 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6214 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6212 go out. I'll test it for a few days, then talk to Janko about
6215 go out. I'll test it for a few days, then talk to Janko about
6213 licences and announce it.
6216 licences and announce it.
6214
6217
6215 * Fixed the length of the auto-generated ---> prompt which appears
6218 * Fixed the length of the auto-generated ---> prompt which appears
6216 for auto-parens and auto-quotes. Getting this right isn't trivial,
6219 for auto-parens and auto-quotes. Getting this right isn't trivial,
6217 with all the color escapes, different prompt types and optional
6220 with all the color escapes, different prompt types and optional
6218 separators. But it seems to be working in all the combinations.
6221 separators. But it seems to be working in all the combinations.
6219
6222
6220 2001-11-26 Fernando Perez <fperez@colorado.edu>
6223 2001-11-26 Fernando Perez <fperez@colorado.edu>
6221
6224
6222 * Wrote a regexp filter to get option types from the option names
6225 * Wrote a regexp filter to get option types from the option names
6223 string. This eliminates the need to manually keep two duplicate
6226 string. This eliminates the need to manually keep two duplicate
6224 lists.
6227 lists.
6225
6228
6226 * Removed the unneeded check_option_names. Now options are handled
6229 * Removed the unneeded check_option_names. Now options are handled
6227 in a much saner manner and it's easy to visually check that things
6230 in a much saner manner and it's easy to visually check that things
6228 are ok.
6231 are ok.
6229
6232
6230 * Updated version numbers on all files I modified to carry a
6233 * Updated version numbers on all files I modified to carry a
6231 notice so Janko and Nathan have clear version markers.
6234 notice so Janko and Nathan have clear version markers.
6232
6235
6233 * Updated docstring for ultraTB with my changes. I should send
6236 * Updated docstring for ultraTB with my changes. I should send
6234 this to Nathan.
6237 this to Nathan.
6235
6238
6236 * Lots of small fixes. Ran everything through pychecker again.
6239 * Lots of small fixes. Ran everything through pychecker again.
6237
6240
6238 * Made loading of deep_reload an cmd line option. If it's not too
6241 * Made loading of deep_reload an cmd line option. If it's not too
6239 kosher, now people can just disable it. With -nodeep_reload it's
6242 kosher, now people can just disable it. With -nodeep_reload it's
6240 still available as dreload(), it just won't overwrite reload().
6243 still available as dreload(), it just won't overwrite reload().
6241
6244
6242 * Moved many options to the no| form (-opt and -noopt
6245 * Moved many options to the no| form (-opt and -noopt
6243 accepted). Cleaner.
6246 accepted). Cleaner.
6244
6247
6245 * Changed magic_log so that if called with no parameters, it uses
6248 * Changed magic_log so that if called with no parameters, it uses
6246 'rotate' mode. That way auto-generated logs aren't automatically
6249 'rotate' mode. That way auto-generated logs aren't automatically
6247 over-written. For normal logs, now a backup is made if it exists
6250 over-written. For normal logs, now a backup is made if it exists
6248 (only 1 level of backups). A new 'backup' mode was added to the
6251 (only 1 level of backups). A new 'backup' mode was added to the
6249 Logger class to support this. This was a request by Janko.
6252 Logger class to support this. This was a request by Janko.
6250
6253
6251 * Added @logoff/@logon to stop/restart an active log.
6254 * Added @logoff/@logon to stop/restart an active log.
6252
6255
6253 * Fixed a lot of bugs in log saving/replay. It was pretty
6256 * Fixed a lot of bugs in log saving/replay. It was pretty
6254 broken. Now special lines (!@,/) appear properly in the command
6257 broken. Now special lines (!@,/) appear properly in the command
6255 history after a log replay.
6258 history after a log replay.
6256
6259
6257 * Tried and failed to implement full session saving via pickle. My
6260 * Tried and failed to implement full session saving via pickle. My
6258 idea was to pickle __main__.__dict__, but modules can't be
6261 idea was to pickle __main__.__dict__, but modules can't be
6259 pickled. This would be a better alternative to replaying logs, but
6262 pickled. This would be a better alternative to replaying logs, but
6260 seems quite tricky to get to work. Changed -session to be called
6263 seems quite tricky to get to work. Changed -session to be called
6261 -logplay, which more accurately reflects what it does. And if we
6264 -logplay, which more accurately reflects what it does. And if we
6262 ever get real session saving working, -session is now available.
6265 ever get real session saving working, -session is now available.
6263
6266
6264 * Implemented color schemes for prompts also. As for tracebacks,
6267 * Implemented color schemes for prompts also. As for tracebacks,
6265 currently only NoColor and Linux are supported. But now the
6268 currently only NoColor and Linux are supported. But now the
6266 infrastructure is in place, based on a generic ColorScheme
6269 infrastructure is in place, based on a generic ColorScheme
6267 class. So writing and activating new schemes both for the prompts
6270 class. So writing and activating new schemes both for the prompts
6268 and the tracebacks should be straightforward.
6271 and the tracebacks should be straightforward.
6269
6272
6270 * Version 0.1.13 released, 0.1.14 opened.
6273 * Version 0.1.13 released, 0.1.14 opened.
6271
6274
6272 * Changed handling of options for output cache. Now counter is
6275 * Changed handling of options for output cache. Now counter is
6273 hardwired starting at 1 and one specifies the maximum number of
6276 hardwired starting at 1 and one specifies the maximum number of
6274 entries *in the outcache* (not the max prompt counter). This is
6277 entries *in the outcache* (not the max prompt counter). This is
6275 much better, since many statements won't increase the cache
6278 much better, since many statements won't increase the cache
6276 count. It also eliminated some confusing options, now there's only
6279 count. It also eliminated some confusing options, now there's only
6277 one: cache_size.
6280 one: cache_size.
6278
6281
6279 * Added 'alias' magic function and magic_alias option in the
6282 * Added 'alias' magic function and magic_alias option in the
6280 ipythonrc file. Now the user can easily define whatever names he
6283 ipythonrc file. Now the user can easily define whatever names he
6281 wants for the magic functions without having to play weird
6284 wants for the magic functions without having to play weird
6282 namespace games. This gives IPython a real shell-like feel.
6285 namespace games. This gives IPython a real shell-like feel.
6283
6286
6284 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6287 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6285 @ or not).
6288 @ or not).
6286
6289
6287 This was one of the last remaining 'visible' bugs (that I know
6290 This was one of the last remaining 'visible' bugs (that I know
6288 of). I think if I can clean up the session loading so it works
6291 of). I think if I can clean up the session loading so it works
6289 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6292 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6290 about licensing).
6293 about licensing).
6291
6294
6292 2001-11-25 Fernando Perez <fperez@colorado.edu>
6295 2001-11-25 Fernando Perez <fperez@colorado.edu>
6293
6296
6294 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6297 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6295 there's a cleaner distinction between what ? and ?? show.
6298 there's a cleaner distinction between what ? and ?? show.
6296
6299
6297 * Added screen_length option. Now the user can define his own
6300 * Added screen_length option. Now the user can define his own
6298 screen size for page() operations.
6301 screen size for page() operations.
6299
6302
6300 * Implemented magic shell-like functions with automatic code
6303 * Implemented magic shell-like functions with automatic code
6301 generation. Now adding another function is just a matter of adding
6304 generation. Now adding another function is just a matter of adding
6302 an entry to a dict, and the function is dynamically generated at
6305 an entry to a dict, and the function is dynamically generated at
6303 run-time. Python has some really cool features!
6306 run-time. Python has some really cool features!
6304
6307
6305 * Renamed many options to cleanup conventions a little. Now all
6308 * Renamed many options to cleanup conventions a little. Now all
6306 are lowercase, and only underscores where needed. Also in the code
6309 are lowercase, and only underscores where needed. Also in the code
6307 option name tables are clearer.
6310 option name tables are clearer.
6308
6311
6309 * Changed prompts a little. Now input is 'In [n]:' instead of
6312 * Changed prompts a little. Now input is 'In [n]:' instead of
6310 'In[n]:='. This allows it the numbers to be aligned with the
6313 'In[n]:='. This allows it the numbers to be aligned with the
6311 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6314 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6312 Python (it was a Mathematica thing). The '...' continuation prompt
6315 Python (it was a Mathematica thing). The '...' continuation prompt
6313 was also changed a little to align better.
6316 was also changed a little to align better.
6314
6317
6315 * Fixed bug when flushing output cache. Not all _p<n> variables
6318 * Fixed bug when flushing output cache. Not all _p<n> variables
6316 exist, so their deletion needs to be wrapped in a try:
6319 exist, so their deletion needs to be wrapped in a try:
6317
6320
6318 * Figured out how to properly use inspect.formatargspec() (it
6321 * Figured out how to properly use inspect.formatargspec() (it
6319 requires the args preceded by *). So I removed all the code from
6322 requires the args preceded by *). So I removed all the code from
6320 _get_pdef in Magic, which was just replicating that.
6323 _get_pdef in Magic, which was just replicating that.
6321
6324
6322 * Added test to prefilter to allow redefining magic function names
6325 * Added test to prefilter to allow redefining magic function names
6323 as variables. This is ok, since the @ form is always available,
6326 as variables. This is ok, since the @ form is always available,
6324 but whe should allow the user to define a variable called 'ls' if
6327 but whe should allow the user to define a variable called 'ls' if
6325 he needs it.
6328 he needs it.
6326
6329
6327 * Moved the ToDo information from README into a separate ToDo.
6330 * Moved the ToDo information from README into a separate ToDo.
6328
6331
6329 * General code cleanup and small bugfixes. I think it's close to a
6332 * General code cleanup and small bugfixes. I think it's close to a
6330 state where it can be released, obviously with a big 'beta'
6333 state where it can be released, obviously with a big 'beta'
6331 warning on it.
6334 warning on it.
6332
6335
6333 * Got the magic function split to work. Now all magics are defined
6336 * Got the magic function split to work. Now all magics are defined
6334 in a separate class. It just organizes things a bit, and now
6337 in a separate class. It just organizes things a bit, and now
6335 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6338 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6336 was too long).
6339 was too long).
6337
6340
6338 * Changed @clear to @reset to avoid potential confusions with
6341 * Changed @clear to @reset to avoid potential confusions with
6339 the shell command clear. Also renamed @cl to @clear, which does
6342 the shell command clear. Also renamed @cl to @clear, which does
6340 exactly what people expect it to from their shell experience.
6343 exactly what people expect it to from their shell experience.
6341
6344
6342 Added a check to the @reset command (since it's so
6345 Added a check to the @reset command (since it's so
6343 destructive, it's probably a good idea to ask for confirmation).
6346 destructive, it's probably a good idea to ask for confirmation).
6344 But now reset only works for full namespace resetting. Since the
6347 But now reset only works for full namespace resetting. Since the
6345 del keyword is already there for deleting a few specific
6348 del keyword is already there for deleting a few specific
6346 variables, I don't see the point of having a redundant magic
6349 variables, I don't see the point of having a redundant magic
6347 function for the same task.
6350 function for the same task.
6348
6351
6349 2001-11-24 Fernando Perez <fperez@colorado.edu>
6352 2001-11-24 Fernando Perez <fperez@colorado.edu>
6350
6353
6351 * Updated the builtin docs (esp. the ? ones).
6354 * Updated the builtin docs (esp. the ? ones).
6352
6355
6353 * Ran all the code through pychecker. Not terribly impressed with
6356 * Ran all the code through pychecker. Not terribly impressed with
6354 it: lots of spurious warnings and didn't really find anything of
6357 it: lots of spurious warnings and didn't really find anything of
6355 substance (just a few modules being imported and not used).
6358 substance (just a few modules being imported and not used).
6356
6359
6357 * Implemented the new ultraTB functionality into IPython. New
6360 * Implemented the new ultraTB functionality into IPython. New
6358 option: xcolors. This chooses color scheme. xmode now only selects
6361 option: xcolors. This chooses color scheme. xmode now only selects
6359 between Plain and Verbose. Better orthogonality.
6362 between Plain and Verbose. Better orthogonality.
6360
6363
6361 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6364 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6362 mode and color scheme for the exception handlers. Now it's
6365 mode and color scheme for the exception handlers. Now it's
6363 possible to have the verbose traceback with no coloring.
6366 possible to have the verbose traceback with no coloring.
6364
6367
6365 2001-11-23 Fernando Perez <fperez@colorado.edu>
6368 2001-11-23 Fernando Perez <fperez@colorado.edu>
6366
6369
6367 * Version 0.1.12 released, 0.1.13 opened.
6370 * Version 0.1.12 released, 0.1.13 opened.
6368
6371
6369 * Removed option to set auto-quote and auto-paren escapes by
6372 * Removed option to set auto-quote and auto-paren escapes by
6370 user. The chances of breaking valid syntax are just too high. If
6373 user. The chances of breaking valid syntax are just too high. If
6371 someone *really* wants, they can always dig into the code.
6374 someone *really* wants, they can always dig into the code.
6372
6375
6373 * Made prompt separators configurable.
6376 * Made prompt separators configurable.
6374
6377
6375 2001-11-22 Fernando Perez <fperez@colorado.edu>
6378 2001-11-22 Fernando Perez <fperez@colorado.edu>
6376
6379
6377 * Small bugfixes in many places.
6380 * Small bugfixes in many places.
6378
6381
6379 * Removed the MyCompleter class from ipplib. It seemed redundant
6382 * Removed the MyCompleter class from ipplib. It seemed redundant
6380 with the C-p,C-n history search functionality. Less code to
6383 with the C-p,C-n history search functionality. Less code to
6381 maintain.
6384 maintain.
6382
6385
6383 * Moved all the original ipython.py code into ipythonlib.py. Right
6386 * Moved all the original ipython.py code into ipythonlib.py. Right
6384 now it's just one big dump into a function called make_IPython, so
6387 now it's just one big dump into a function called make_IPython, so
6385 no real modularity has been gained. But at least it makes the
6388 no real modularity has been gained. But at least it makes the
6386 wrapper script tiny, and since ipythonlib is a module, it gets
6389 wrapper script tiny, and since ipythonlib is a module, it gets
6387 compiled and startup is much faster.
6390 compiled and startup is much faster.
6388
6391
6389 This is a reasobably 'deep' change, so we should test it for a
6392 This is a reasobably 'deep' change, so we should test it for a
6390 while without messing too much more with the code.
6393 while without messing too much more with the code.
6391
6394
6392 2001-11-21 Fernando Perez <fperez@colorado.edu>
6395 2001-11-21 Fernando Perez <fperez@colorado.edu>
6393
6396
6394 * Version 0.1.11 released, 0.1.12 opened for further work.
6397 * Version 0.1.11 released, 0.1.12 opened for further work.
6395
6398
6396 * Removed dependency on Itpl. It was only needed in one place. It
6399 * Removed dependency on Itpl. It was only needed in one place. It
6397 would be nice if this became part of python, though. It makes life
6400 would be nice if this became part of python, though. It makes life
6398 *a lot* easier in some cases.
6401 *a lot* easier in some cases.
6399
6402
6400 * Simplified the prefilter code a bit. Now all handlers are
6403 * Simplified the prefilter code a bit. Now all handlers are
6401 expected to explicitly return a value (at least a blank string).
6404 expected to explicitly return a value (at least a blank string).
6402
6405
6403 * Heavy edits in ipplib. Removed the help system altogether. Now
6406 * Heavy edits in ipplib. Removed the help system altogether. Now
6404 obj?/?? is used for inspecting objects, a magic @doc prints
6407 obj?/?? is used for inspecting objects, a magic @doc prints
6405 docstrings, and full-blown Python help is accessed via the 'help'
6408 docstrings, and full-blown Python help is accessed via the 'help'
6406 keyword. This cleans up a lot of code (less to maintain) and does
6409 keyword. This cleans up a lot of code (less to maintain) and does
6407 the job. Since 'help' is now a standard Python component, might as
6410 the job. Since 'help' is now a standard Python component, might as
6408 well use it and remove duplicate functionality.
6411 well use it and remove duplicate functionality.
6409
6412
6410 Also removed the option to use ipplib as a standalone program. By
6413 Also removed the option to use ipplib as a standalone program. By
6411 now it's too dependent on other parts of IPython to function alone.
6414 now it's too dependent on other parts of IPython to function alone.
6412
6415
6413 * Fixed bug in genutils.pager. It would crash if the pager was
6416 * Fixed bug in genutils.pager. It would crash if the pager was
6414 exited immediately after opening (broken pipe).
6417 exited immediately after opening (broken pipe).
6415
6418
6416 * Trimmed down the VerboseTB reporting a little. The header is
6419 * Trimmed down the VerboseTB reporting a little. The header is
6417 much shorter now and the repeated exception arguments at the end
6420 much shorter now and the repeated exception arguments at the end
6418 have been removed. For interactive use the old header seemed a bit
6421 have been removed. For interactive use the old header seemed a bit
6419 excessive.
6422 excessive.
6420
6423
6421 * Fixed small bug in output of @whos for variables with multi-word
6424 * Fixed small bug in output of @whos for variables with multi-word
6422 types (only first word was displayed).
6425 types (only first word was displayed).
6423
6426
6424 2001-11-17 Fernando Perez <fperez@colorado.edu>
6427 2001-11-17 Fernando Perez <fperez@colorado.edu>
6425
6428
6426 * Version 0.1.10 released, 0.1.11 opened for further work.
6429 * Version 0.1.10 released, 0.1.11 opened for further work.
6427
6430
6428 * Modified dirs and friends. dirs now *returns* the stack (not
6431 * Modified dirs and friends. dirs now *returns* the stack (not
6429 prints), so one can manipulate it as a variable. Convenient to
6432 prints), so one can manipulate it as a variable. Convenient to
6430 travel along many directories.
6433 travel along many directories.
6431
6434
6432 * Fixed bug in magic_pdef: would only work with functions with
6435 * Fixed bug in magic_pdef: would only work with functions with
6433 arguments with default values.
6436 arguments with default values.
6434
6437
6435 2001-11-14 Fernando Perez <fperez@colorado.edu>
6438 2001-11-14 Fernando Perez <fperez@colorado.edu>
6436
6439
6437 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6440 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6438 example with IPython. Various other minor fixes and cleanups.
6441 example with IPython. Various other minor fixes and cleanups.
6439
6442
6440 * Version 0.1.9 released, 0.1.10 opened for further work.
6443 * Version 0.1.9 released, 0.1.10 opened for further work.
6441
6444
6442 * Added sys.path to the list of directories searched in the
6445 * Added sys.path to the list of directories searched in the
6443 execfile= option. It used to be the current directory and the
6446 execfile= option. It used to be the current directory and the
6444 user's IPYTHONDIR only.
6447 user's IPYTHONDIR only.
6445
6448
6446 2001-11-13 Fernando Perez <fperez@colorado.edu>
6449 2001-11-13 Fernando Perez <fperez@colorado.edu>
6447
6450
6448 * Reinstated the raw_input/prefilter separation that Janko had
6451 * Reinstated the raw_input/prefilter separation that Janko had
6449 initially. This gives a more convenient setup for extending the
6452 initially. This gives a more convenient setup for extending the
6450 pre-processor from the outside: raw_input always gets a string,
6453 pre-processor from the outside: raw_input always gets a string,
6451 and prefilter has to process it. We can then redefine prefilter
6454 and prefilter has to process it. We can then redefine prefilter
6452 from the outside and implement extensions for special
6455 from the outside and implement extensions for special
6453 purposes.
6456 purposes.
6454
6457
6455 Today I got one for inputting PhysicalQuantity objects
6458 Today I got one for inputting PhysicalQuantity objects
6456 (from Scientific) without needing any function calls at
6459 (from Scientific) without needing any function calls at
6457 all. Extremely convenient, and it's all done as a user-level
6460 all. Extremely convenient, and it's all done as a user-level
6458 extension (no IPython code was touched). Now instead of:
6461 extension (no IPython code was touched). Now instead of:
6459 a = PhysicalQuantity(4.2,'m/s**2')
6462 a = PhysicalQuantity(4.2,'m/s**2')
6460 one can simply say
6463 one can simply say
6461 a = 4.2 m/s**2
6464 a = 4.2 m/s**2
6462 or even
6465 or even
6463 a = 4.2 m/s^2
6466 a = 4.2 m/s^2
6464
6467
6465 I use this, but it's also a proof of concept: IPython really is
6468 I use this, but it's also a proof of concept: IPython really is
6466 fully user-extensible, even at the level of the parsing of the
6469 fully user-extensible, even at the level of the parsing of the
6467 command line. It's not trivial, but it's perfectly doable.
6470 command line. It's not trivial, but it's perfectly doable.
6468
6471
6469 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6472 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6470 the problem of modules being loaded in the inverse order in which
6473 the problem of modules being loaded in the inverse order in which
6471 they were defined in
6474 they were defined in
6472
6475
6473 * Version 0.1.8 released, 0.1.9 opened for further work.
6476 * Version 0.1.8 released, 0.1.9 opened for further work.
6474
6477
6475 * Added magics pdef, source and file. They respectively show the
6478 * Added magics pdef, source and file. They respectively show the
6476 definition line ('prototype' in C), source code and full python
6479 definition line ('prototype' in C), source code and full python
6477 file for any callable object. The object inspector oinfo uses
6480 file for any callable object. The object inspector oinfo uses
6478 these to show the same information.
6481 these to show the same information.
6479
6482
6480 * Version 0.1.7 released, 0.1.8 opened for further work.
6483 * Version 0.1.7 released, 0.1.8 opened for further work.
6481
6484
6482 * Separated all the magic functions into a class called Magic. The
6485 * Separated all the magic functions into a class called Magic. The
6483 InteractiveShell class was becoming too big for Xemacs to handle
6486 InteractiveShell class was becoming too big for Xemacs to handle
6484 (de-indenting a line would lock it up for 10 seconds while it
6487 (de-indenting a line would lock it up for 10 seconds while it
6485 backtracked on the whole class!)
6488 backtracked on the whole class!)
6486
6489
6487 FIXME: didn't work. It can be done, but right now namespaces are
6490 FIXME: didn't work. It can be done, but right now namespaces are
6488 all messed up. Do it later (reverted it for now, so at least
6491 all messed up. Do it later (reverted it for now, so at least
6489 everything works as before).
6492 everything works as before).
6490
6493
6491 * Got the object introspection system (magic_oinfo) working! I
6494 * Got the object introspection system (magic_oinfo) working! I
6492 think this is pretty much ready for release to Janko, so he can
6495 think this is pretty much ready for release to Janko, so he can
6493 test it for a while and then announce it. Pretty much 100% of what
6496 test it for a while and then announce it. Pretty much 100% of what
6494 I wanted for the 'phase 1' release is ready. Happy, tired.
6497 I wanted for the 'phase 1' release is ready. Happy, tired.
6495
6498
6496 2001-11-12 Fernando Perez <fperez@colorado.edu>
6499 2001-11-12 Fernando Perez <fperez@colorado.edu>
6497
6500
6498 * Version 0.1.6 released, 0.1.7 opened for further work.
6501 * Version 0.1.6 released, 0.1.7 opened for further work.
6499
6502
6500 * Fixed bug in printing: it used to test for truth before
6503 * Fixed bug in printing: it used to test for truth before
6501 printing, so 0 wouldn't print. Now checks for None.
6504 printing, so 0 wouldn't print. Now checks for None.
6502
6505
6503 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6506 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6504 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6507 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6505 reaches by hand into the outputcache. Think of a better way to do
6508 reaches by hand into the outputcache. Think of a better way to do
6506 this later.
6509 this later.
6507
6510
6508 * Various small fixes thanks to Nathan's comments.
6511 * Various small fixes thanks to Nathan's comments.
6509
6512
6510 * Changed magic_pprint to magic_Pprint. This way it doesn't
6513 * Changed magic_pprint to magic_Pprint. This way it doesn't
6511 collide with pprint() and the name is consistent with the command
6514 collide with pprint() and the name is consistent with the command
6512 line option.
6515 line option.
6513
6516
6514 * Changed prompt counter behavior to be fully like
6517 * Changed prompt counter behavior to be fully like
6515 Mathematica's. That is, even input that doesn't return a result
6518 Mathematica's. That is, even input that doesn't return a result
6516 raises the prompt counter. The old behavior was kind of confusing
6519 raises the prompt counter. The old behavior was kind of confusing
6517 (getting the same prompt number several times if the operation
6520 (getting the same prompt number several times if the operation
6518 didn't return a result).
6521 didn't return a result).
6519
6522
6520 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6523 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6521
6524
6522 * Fixed -Classic mode (wasn't working anymore).
6525 * Fixed -Classic mode (wasn't working anymore).
6523
6526
6524 * Added colored prompts using Nathan's new code. Colors are
6527 * Added colored prompts using Nathan's new code. Colors are
6525 currently hardwired, they can be user-configurable. For
6528 currently hardwired, they can be user-configurable. For
6526 developers, they can be chosen in file ipythonlib.py, at the
6529 developers, they can be chosen in file ipythonlib.py, at the
6527 beginning of the CachedOutput class def.
6530 beginning of the CachedOutput class def.
6528
6531
6529 2001-11-11 Fernando Perez <fperez@colorado.edu>
6532 2001-11-11 Fernando Perez <fperez@colorado.edu>
6530
6533
6531 * Version 0.1.5 released, 0.1.6 opened for further work.
6534 * Version 0.1.5 released, 0.1.6 opened for further work.
6532
6535
6533 * Changed magic_env to *return* the environment as a dict (not to
6536 * Changed magic_env to *return* the environment as a dict (not to
6534 print it). This way it prints, but it can also be processed.
6537 print it). This way it prints, but it can also be processed.
6535
6538
6536 * Added Verbose exception reporting to interactive
6539 * Added Verbose exception reporting to interactive
6537 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6540 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6538 traceback. Had to make some changes to the ultraTB file. This is
6541 traceback. Had to make some changes to the ultraTB file. This is
6539 probably the last 'big' thing in my mental todo list. This ties
6542 probably the last 'big' thing in my mental todo list. This ties
6540 in with the next entry:
6543 in with the next entry:
6541
6544
6542 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6545 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6543 has to specify is Plain, Color or Verbose for all exception
6546 has to specify is Plain, Color or Verbose for all exception
6544 handling.
6547 handling.
6545
6548
6546 * Removed ShellServices option. All this can really be done via
6549 * Removed ShellServices option. All this can really be done via
6547 the magic system. It's easier to extend, cleaner and has automatic
6550 the magic system. It's easier to extend, cleaner and has automatic
6548 namespace protection and documentation.
6551 namespace protection and documentation.
6549
6552
6550 2001-11-09 Fernando Perez <fperez@colorado.edu>
6553 2001-11-09 Fernando Perez <fperez@colorado.edu>
6551
6554
6552 * Fixed bug in output cache flushing (missing parameter to
6555 * Fixed bug in output cache flushing (missing parameter to
6553 __init__). Other small bugs fixed (found using pychecker).
6556 __init__). Other small bugs fixed (found using pychecker).
6554
6557
6555 * Version 0.1.4 opened for bugfixing.
6558 * Version 0.1.4 opened for bugfixing.
6556
6559
6557 2001-11-07 Fernando Perez <fperez@colorado.edu>
6560 2001-11-07 Fernando Perez <fperez@colorado.edu>
6558
6561
6559 * Version 0.1.3 released, mainly because of the raw_input bug.
6562 * Version 0.1.3 released, mainly because of the raw_input bug.
6560
6563
6561 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6564 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6562 and when testing for whether things were callable, a call could
6565 and when testing for whether things were callable, a call could
6563 actually be made to certain functions. They would get called again
6566 actually be made to certain functions. They would get called again
6564 once 'really' executed, with a resulting double call. A disaster
6567 once 'really' executed, with a resulting double call. A disaster
6565 in many cases (list.reverse() would never work!).
6568 in many cases (list.reverse() would never work!).
6566
6569
6567 * Removed prefilter() function, moved its code to raw_input (which
6570 * Removed prefilter() function, moved its code to raw_input (which
6568 after all was just a near-empty caller for prefilter). This saves
6571 after all was just a near-empty caller for prefilter). This saves
6569 a function call on every prompt, and simplifies the class a tiny bit.
6572 a function call on every prompt, and simplifies the class a tiny bit.
6570
6573
6571 * Fix _ip to __ip name in magic example file.
6574 * Fix _ip to __ip name in magic example file.
6572
6575
6573 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6576 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6574 work with non-gnu versions of tar.
6577 work with non-gnu versions of tar.
6575
6578
6576 2001-11-06 Fernando Perez <fperez@colorado.edu>
6579 2001-11-06 Fernando Perez <fperez@colorado.edu>
6577
6580
6578 * Version 0.1.2. Just to keep track of the recent changes.
6581 * Version 0.1.2. Just to keep track of the recent changes.
6579
6582
6580 * Fixed nasty bug in output prompt routine. It used to check 'if
6583 * Fixed nasty bug in output prompt routine. It used to check 'if
6581 arg != None...'. Problem is, this fails if arg implements a
6584 arg != None...'. Problem is, this fails if arg implements a
6582 special comparison (__cmp__) which disallows comparing to
6585 special comparison (__cmp__) which disallows comparing to
6583 None. Found it when trying to use the PhysicalQuantity module from
6586 None. Found it when trying to use the PhysicalQuantity module from
6584 ScientificPython.
6587 ScientificPython.
6585
6588
6586 2001-11-05 Fernando Perez <fperez@colorado.edu>
6589 2001-11-05 Fernando Perez <fperez@colorado.edu>
6587
6590
6588 * Also added dirs. Now the pushd/popd/dirs family functions
6591 * Also added dirs. Now the pushd/popd/dirs family functions
6589 basically like the shell, with the added convenience of going home
6592 basically like the shell, with the added convenience of going home
6590 when called with no args.
6593 when called with no args.
6591
6594
6592 * pushd/popd slightly modified to mimic shell behavior more
6595 * pushd/popd slightly modified to mimic shell behavior more
6593 closely.
6596 closely.
6594
6597
6595 * Added env,pushd,popd from ShellServices as magic functions. I
6598 * Added env,pushd,popd from ShellServices as magic functions. I
6596 think the cleanest will be to port all desired functions from
6599 think the cleanest will be to port all desired functions from
6597 ShellServices as magics and remove ShellServices altogether. This
6600 ShellServices as magics and remove ShellServices altogether. This
6598 will provide a single, clean way of adding functionality
6601 will provide a single, clean way of adding functionality
6599 (shell-type or otherwise) to IP.
6602 (shell-type or otherwise) to IP.
6600
6603
6601 2001-11-04 Fernando Perez <fperez@colorado.edu>
6604 2001-11-04 Fernando Perez <fperez@colorado.edu>
6602
6605
6603 * Added .ipython/ directory to sys.path. This way users can keep
6606 * Added .ipython/ directory to sys.path. This way users can keep
6604 customizations there and access them via import.
6607 customizations there and access them via import.
6605
6608
6606 2001-11-03 Fernando Perez <fperez@colorado.edu>
6609 2001-11-03 Fernando Perez <fperez@colorado.edu>
6607
6610
6608 * Opened version 0.1.1 for new changes.
6611 * Opened version 0.1.1 for new changes.
6609
6612
6610 * Changed version number to 0.1.0: first 'public' release, sent to
6613 * Changed version number to 0.1.0: first 'public' release, sent to
6611 Nathan and Janko.
6614 Nathan and Janko.
6612
6615
6613 * Lots of small fixes and tweaks.
6616 * Lots of small fixes and tweaks.
6614
6617
6615 * Minor changes to whos format. Now strings are shown, snipped if
6618 * Minor changes to whos format. Now strings are shown, snipped if
6616 too long.
6619 too long.
6617
6620
6618 * Changed ShellServices to work on __main__ so they show up in @who
6621 * Changed ShellServices to work on __main__ so they show up in @who
6619
6622
6620 * Help also works with ? at the end of a line:
6623 * Help also works with ? at the end of a line:
6621 ?sin and sin?
6624 ?sin and sin?
6622 both produce the same effect. This is nice, as often I use the
6625 both produce the same effect. This is nice, as often I use the
6623 tab-complete to find the name of a method, but I used to then have
6626 tab-complete to find the name of a method, but I used to then have
6624 to go to the beginning of the line to put a ? if I wanted more
6627 to go to the beginning of the line to put a ? if I wanted more
6625 info. Now I can just add the ? and hit return. Convenient.
6628 info. Now I can just add the ? and hit return. Convenient.
6626
6629
6627 2001-11-02 Fernando Perez <fperez@colorado.edu>
6630 2001-11-02 Fernando Perez <fperez@colorado.edu>
6628
6631
6629 * Python version check (>=2.1) added.
6632 * Python version check (>=2.1) added.
6630
6633
6631 * Added LazyPython documentation. At this point the docs are quite
6634 * Added LazyPython documentation. At this point the docs are quite
6632 a mess. A cleanup is in order.
6635 a mess. A cleanup is in order.
6633
6636
6634 * Auto-installer created. For some bizarre reason, the zipfiles
6637 * Auto-installer created. For some bizarre reason, the zipfiles
6635 module isn't working on my system. So I made a tar version
6638 module isn't working on my system. So I made a tar version
6636 (hopefully the command line options in various systems won't kill
6639 (hopefully the command line options in various systems won't kill
6637 me).
6640 me).
6638
6641
6639 * Fixes to Struct in genutils. Now all dictionary-like methods are
6642 * Fixes to Struct in genutils. Now all dictionary-like methods are
6640 protected (reasonably).
6643 protected (reasonably).
6641
6644
6642 * Added pager function to genutils and changed ? to print usage
6645 * Added pager function to genutils and changed ? to print usage
6643 note through it (it was too long).
6646 note through it (it was too long).
6644
6647
6645 * Added the LazyPython functionality. Works great! I changed the
6648 * Added the LazyPython functionality. Works great! I changed the
6646 auto-quote escape to ';', it's on home row and next to '. But
6649 auto-quote escape to ';', it's on home row and next to '. But
6647 both auto-quote and auto-paren (still /) escapes are command-line
6650 both auto-quote and auto-paren (still /) escapes are command-line
6648 parameters.
6651 parameters.
6649
6652
6650
6653
6651 2001-11-01 Fernando Perez <fperez@colorado.edu>
6654 2001-11-01 Fernando Perez <fperez@colorado.edu>
6652
6655
6653 * Version changed to 0.0.7. Fairly large change: configuration now
6656 * Version changed to 0.0.7. Fairly large change: configuration now
6654 is all stored in a directory, by default .ipython. There, all
6657 is all stored in a directory, by default .ipython. There, all
6655 config files have normal looking names (not .names)
6658 config files have normal looking names (not .names)
6656
6659
6657 * Version 0.0.6 Released first to Lucas and Archie as a test
6660 * Version 0.0.6 Released first to Lucas and Archie as a test
6658 run. Since it's the first 'semi-public' release, change version to
6661 run. Since it's the first 'semi-public' release, change version to
6659 > 0.0.6 for any changes now.
6662 > 0.0.6 for any changes now.
6660
6663
6661 * Stuff I had put in the ipplib.py changelog:
6664 * Stuff I had put in the ipplib.py changelog:
6662
6665
6663 Changes to InteractiveShell:
6666 Changes to InteractiveShell:
6664
6667
6665 - Made the usage message a parameter.
6668 - Made the usage message a parameter.
6666
6669
6667 - Require the name of the shell variable to be given. It's a bit
6670 - Require the name of the shell variable to be given. It's a bit
6668 of a hack, but allows the name 'shell' not to be hardwired in the
6671 of a hack, but allows the name 'shell' not to be hardwired in the
6669 magic (@) handler, which is problematic b/c it requires
6672 magic (@) handler, which is problematic b/c it requires
6670 polluting the global namespace with 'shell'. This in turn is
6673 polluting the global namespace with 'shell'. This in turn is
6671 fragile: if a user redefines a variable called shell, things
6674 fragile: if a user redefines a variable called shell, things
6672 break.
6675 break.
6673
6676
6674 - magic @: all functions available through @ need to be defined
6677 - magic @: all functions available through @ need to be defined
6675 as magic_<name>, even though they can be called simply as
6678 as magic_<name>, even though they can be called simply as
6676 @<name>. This allows the special command @magic to gather
6679 @<name>. This allows the special command @magic to gather
6677 information automatically about all existing magic functions,
6680 information automatically about all existing magic functions,
6678 even if they are run-time user extensions, by parsing the shell
6681 even if they are run-time user extensions, by parsing the shell
6679 instance __dict__ looking for special magic_ names.
6682 instance __dict__ looking for special magic_ names.
6680
6683
6681 - mainloop: added *two* local namespace parameters. This allows
6684 - mainloop: added *two* local namespace parameters. This allows
6682 the class to differentiate between parameters which were there
6685 the class to differentiate between parameters which were there
6683 before and after command line initialization was processed. This
6686 before and after command line initialization was processed. This
6684 way, later @who can show things loaded at startup by the
6687 way, later @who can show things loaded at startup by the
6685 user. This trick was necessary to make session saving/reloading
6688 user. This trick was necessary to make session saving/reloading
6686 really work: ideally after saving/exiting/reloading a session,
6689 really work: ideally after saving/exiting/reloading a session,
6687 *everything* should look the same, including the output of @who. I
6690 *everything* should look the same, including the output of @who. I
6688 was only able to make this work with this double namespace
6691 was only able to make this work with this double namespace
6689 trick.
6692 trick.
6690
6693
6691 - added a header to the logfile which allows (almost) full
6694 - added a header to the logfile which allows (almost) full
6692 session restoring.
6695 session restoring.
6693
6696
6694 - prepend lines beginning with @ or !, with a and log
6697 - prepend lines beginning with @ or !, with a and log
6695 them. Why? !lines: may be useful to know what you did @lines:
6698 them. Why? !lines: may be useful to know what you did @lines:
6696 they may affect session state. So when restoring a session, at
6699 they may affect session state. So when restoring a session, at
6697 least inform the user of their presence. I couldn't quite get
6700 least inform the user of their presence. I couldn't quite get
6698 them to properly re-execute, but at least the user is warned.
6701 them to properly re-execute, but at least the user is warned.
6699
6702
6700 * Started ChangeLog.
6703 * Started ChangeLog.
@@ -1,35 +0,0 b''
1 # -*- Mode: Shell-Script -*- Not really, but shows comments correctly
2 #***************************************************************************
3 #
4 # Configuration file for ipython -- ipythonrc format
5 #
6 # The format of this file is one of 'key value' lines.
7 # Lines containing only whitespace at the beginning and then a # are ignored
8 # as comments. But comments can NOT be put on lines with data.
9 #***************************************************************************
10
11 # This is an example of a 'profile' file which includes a base file and adds
12 # some customizaton for a particular purpose.
13
14 # If this file is found in the user's ~/.ipython directory as ipythonrc-scipy,
15 # it can be loaded by calling passing the '-profile scipy' (or '-p scipy')
16 # option to IPython.
17
18 # This example is meant to load several modules to turn ipython into a very
19 # capable environment for high-end numerical work, similar to IDL or MatLab
20 # but with the beauty of the Python language.
21
22 # load our basic configuration with generic options
23 include ipythonrc
24
25 # import ...
26 # Load Numpy an SciPy by themselves so that 'help' works on them
27 import_mod numpy scipy
28
29 # from ... import ...
30 import_some
31
32 # Now we load all of SciPy
33 # from ... import *
34 import_all numpy
35 import_all scipy
General Comments 0
You need to be logged in to leave comments. Login now