##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,6703 +1,6705 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
9 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
10 its place.
10 its place.
11
11
12 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
13
12 2007-05-21 Ville Vainio <vivainio@gmail.com>
14 2007-05-21 Ville Vainio <vivainio@gmail.com>
13
15
14 * platutil_win32.py (set_term_title): handle
16 * platutil_win32.py (set_term_title): handle
15 failure of 'title' system call properly.
17 failure of 'title' system call properly.
16
18
17 2007-05-17 Walter Doerwald <walter@livinglogic.de>
19 2007-05-17 Walter Doerwald <walter@livinglogic.de>
18
20
19 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
21 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
20 (Bug detected by Paul Mueller).
22 (Bug detected by Paul Mueller).
21
23
22 2007-05-16 Ville Vainio <vivainio@gmail.com>
24 2007-05-16 Ville Vainio <vivainio@gmail.com>
23
25
24 * ipy_profile_sci.py, ipython_win_post_install.py: Create
26 * ipy_profile_sci.py, ipython_win_post_install.py: Create
25 new "sci" profile, effectively a modern version of the old
27 new "sci" profile, effectively a modern version of the old
26 "scipy" profile (which is now slated for deprecation).
28 "scipy" profile (which is now slated for deprecation).
27
29
28 2007-05-15 Ville Vainio <vivainio@gmail.com>
30 2007-05-15 Ville Vainio <vivainio@gmail.com>
29
31
30 * pycolorize.py, pycolor.1: Paul Mueller's patches that
32 * pycolorize.py, pycolor.1: Paul Mueller's patches that
31 make pycolorize read input from stdin when run without arguments.
33 make pycolorize read input from stdin when run without arguments.
32
34
33 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
35 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
34
36
35 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
37 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
36 it in sh profile (instead of ipy_system_conf.py).
38 it in sh profile (instead of ipy_system_conf.py).
37
39
38 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
40 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
39 aliases are now lower case on windows (MyCommand.exe => mycommand).
41 aliases are now lower case on windows (MyCommand.exe => mycommand).
40
42
41 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
43 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
42 Macros are now callable objects that inherit from ipapi.IPyAutocall,
44 Macros are now callable objects that inherit from ipapi.IPyAutocall,
43 i.e. get autocalled regardless of system autocall setting.
45 i.e. get autocalled regardless of system autocall setting.
44
46
45 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
47 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
46
48
47 * IPython/rlineimpl.py: check for clear_history in readline and
49 * IPython/rlineimpl.py: check for clear_history in readline and
48 make it a dummy no-op if not available. This function isn't
50 make it a dummy no-op if not available. This function isn't
49 guaranteed to be in the API and appeared in Python 2.4, so we need
51 guaranteed to be in the API and appeared in Python 2.4, so we need
50 to check it ourselves. Also, clean up this file quite a bit.
52 to check it ourselves. Also, clean up this file quite a bit.
51
53
52 * ipython.1: update man page and full manual with information
54 * ipython.1: update man page and full manual with information
53 about threads (remove outdated warning). Closes #151.
55 about threads (remove outdated warning). Closes #151.
54
56
55 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
57 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
56
58
57 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
59 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
58 in trunk (note that this made it into the 0.8.1 release already,
60 in trunk (note that this made it into the 0.8.1 release already,
59 but the changelogs didn't get coordinated). Many thanks to Gael
61 but the changelogs didn't get coordinated). Many thanks to Gael
60 Varoquaux <gael.varoquaux-AT-normalesup.org>
62 Varoquaux <gael.varoquaux-AT-normalesup.org>
61
63
62 2007-05-09 *** Released version 0.8.1
64 2007-05-09 *** Released version 0.8.1
63
65
64 2007-05-10 Walter Doerwald <walter@livinglogic.de>
66 2007-05-10 Walter Doerwald <walter@livinglogic.de>
65
67
66 * IPython/Extensions/igrid.py: Incorporate html help into
68 * IPython/Extensions/igrid.py: Incorporate html help into
67 the module, so we don't have to search for the file.
69 the module, so we don't have to search for the file.
68
70
69 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
71 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
70
72
71 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
73 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
72
74
73 2007-04-30 Ville Vainio <vivainio@gmail.com>
75 2007-04-30 Ville Vainio <vivainio@gmail.com>
74
76
75 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
77 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
76 user has illegal (non-ascii) home directory name
78 user has illegal (non-ascii) home directory name
77
79
78 2007-04-27 Ville Vainio <vivainio@gmail.com>
80 2007-04-27 Ville Vainio <vivainio@gmail.com>
79
81
80 * platutils_win32.py: implement set_term_title for windows
82 * platutils_win32.py: implement set_term_title for windows
81
83
82 * Update version number
84 * Update version number
83
85
84 * ipy_profile_sh.py: more informative prompt (2 dir levels)
86 * ipy_profile_sh.py: more informative prompt (2 dir levels)
85
87
86 2007-04-26 Walter Doerwald <walter@livinglogic.de>
88 2007-04-26 Walter Doerwald <walter@livinglogic.de>
87
89
88 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
90 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
89 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
91 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
90 bug discovered by Ville).
92 bug discovered by Ville).
91
93
92 2007-04-26 Ville Vainio <vivainio@gmail.com>
94 2007-04-26 Ville Vainio <vivainio@gmail.com>
93
95
94 * Extensions/ipy_completers.py: Olivier's module completer now
96 * Extensions/ipy_completers.py: Olivier's module completer now
95 saves the list of root modules if it takes > 4 secs on the first run.
97 saves the list of root modules if it takes > 4 secs on the first run.
96
98
97 * Magic.py (%rehashx): %rehashx now clears the completer cache
99 * Magic.py (%rehashx): %rehashx now clears the completer cache
98
100
99
101
100 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
102 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
101
103
102 * ipython.el: fix incorrect color scheme, reported by Stefan.
104 * ipython.el: fix incorrect color scheme, reported by Stefan.
103 Closes #149.
105 Closes #149.
104
106
105 * IPython/PyColorize.py (Parser.format2): fix state-handling
107 * IPython/PyColorize.py (Parser.format2): fix state-handling
106 logic. I still don't like how that code handles state, but at
108 logic. I still don't like how that code handles state, but at
107 least now it should be correct, if inelegant. Closes #146.
109 least now it should be correct, if inelegant. Closes #146.
108
110
109 2007-04-25 Ville Vainio <vivainio@gmail.com>
111 2007-04-25 Ville Vainio <vivainio@gmail.com>
110
112
111 * Extensions/ipy_which.py: added extension for %which magic, works
113 * Extensions/ipy_which.py: added extension for %which magic, works
112 a lot like unix 'which' but also finds and expands aliases, and
114 a lot like unix 'which' but also finds and expands aliases, and
113 allows wildcards.
115 allows wildcards.
114
116
115 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
117 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
116 as opposed to returning nothing.
118 as opposed to returning nothing.
117
119
118 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
120 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
119 ipy_stock_completers on default profile, do import on sh profile.
121 ipy_stock_completers on default profile, do import on sh profile.
120
122
121 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
123 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
122
124
123 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
125 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
124 like ipython.py foo.py which raised a IndexError.
126 like ipython.py foo.py which raised a IndexError.
125
127
126 2007-04-21 Ville Vainio <vivainio@gmail.com>
128 2007-04-21 Ville Vainio <vivainio@gmail.com>
127
129
128 * Extensions/ipy_extutil.py: added extension to manage other ipython
130 * Extensions/ipy_extutil.py: added extension to manage other ipython
129 extensions. Now only supports 'ls' == list extensions.
131 extensions. Now only supports 'ls' == list extensions.
130
132
131 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
133 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
132
134
133 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
135 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
134 would prevent use of the exception system outside of a running
136 would prevent use of the exception system outside of a running
135 IPython instance.
137 IPython instance.
136
138
137 2007-04-20 Ville Vainio <vivainio@gmail.com>
139 2007-04-20 Ville Vainio <vivainio@gmail.com>
138
140
139 * Extensions/ipy_render.py: added extension for easy
141 * Extensions/ipy_render.py: added extension for easy
140 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
142 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
141 'Iptl' template notation,
143 'Iptl' template notation,
142
144
143 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
145 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
144 safer & faster 'import' completer.
146 safer & faster 'import' completer.
145
147
146 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
148 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
147 and _ip.defalias(name, command).
149 and _ip.defalias(name, command).
148
150
149 * Extensions/ipy_exportdb.py: New extension for exporting all the
151 * Extensions/ipy_exportdb.py: New extension for exporting all the
150 %store'd data in a portable format (normal ipapi calls like
152 %store'd data in a portable format (normal ipapi calls like
151 defmacro() etc.)
153 defmacro() etc.)
152
154
153 2007-04-19 Ville Vainio <vivainio@gmail.com>
155 2007-04-19 Ville Vainio <vivainio@gmail.com>
154
156
155 * upgrade_dir.py: skip junk files like *.pyc
157 * upgrade_dir.py: skip junk files like *.pyc
156
158
157 * Release.py: version number to 0.8.1
159 * Release.py: version number to 0.8.1
158
160
159 2007-04-18 Ville Vainio <vivainio@gmail.com>
161 2007-04-18 Ville Vainio <vivainio@gmail.com>
160
162
161 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
163 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
162 and later on win32.
164 and later on win32.
163
165
164 2007-04-16 Ville Vainio <vivainio@gmail.com>
166 2007-04-16 Ville Vainio <vivainio@gmail.com>
165
167
166 * iplib.py (showtraceback): Do not crash when running w/o readline.
168 * iplib.py (showtraceback): Do not crash when running w/o readline.
167
169
168 2007-04-12 Walter Doerwald <walter@livinglogic.de>
170 2007-04-12 Walter Doerwald <walter@livinglogic.de>
169
171
170 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
172 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
171 sorted (case sensitive with files and dirs mixed).
173 sorted (case sensitive with files and dirs mixed).
172
174
173 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
175 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
174
176
175 * IPython/Release.py (version): Open trunk for 0.8.1 development.
177 * IPython/Release.py (version): Open trunk for 0.8.1 development.
176
178
177 2007-04-10 *** Released version 0.8.0
179 2007-04-10 *** Released version 0.8.0
178
180
179 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
181 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
180
182
181 * Tag 0.8.0 for release.
183 * Tag 0.8.0 for release.
182
184
183 * IPython/iplib.py (reloadhist): add API function to cleanly
185 * IPython/iplib.py (reloadhist): add API function to cleanly
184 reload the readline history, which was growing inappropriately on
186 reload the readline history, which was growing inappropriately on
185 every %run call.
187 every %run call.
186
188
187 * win32_manual_post_install.py (run): apply last part of Nicolas
189 * win32_manual_post_install.py (run): apply last part of Nicolas
188 Pernetty's patch (I'd accidentally applied it in a different
190 Pernetty's patch (I'd accidentally applied it in a different
189 directory and this particular file didn't get patched).
191 directory and this particular file didn't get patched).
190
192
191 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
193 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
192
194
193 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
195 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
194 find the main thread id and use the proper API call. Thanks to
196 find the main thread id and use the proper API call. Thanks to
195 Stefan for the fix.
197 Stefan for the fix.
196
198
197 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
199 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
198 unit tests to reflect fixed ticket #52, and add more tests sent by
200 unit tests to reflect fixed ticket #52, and add more tests sent by
199 him.
201 him.
200
202
201 * IPython/iplib.py (raw_input): restore the readline completer
203 * IPython/iplib.py (raw_input): restore the readline completer
202 state on every input, in case third-party code messed it up.
204 state on every input, in case third-party code messed it up.
203 (_prefilter): revert recent addition of early-escape checks which
205 (_prefilter): revert recent addition of early-escape checks which
204 prevent many valid alias calls from working.
206 prevent many valid alias calls from working.
205
207
206 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
208 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
207 flag for sigint handler so we don't run a full signal() call on
209 flag for sigint handler so we don't run a full signal() call on
208 each runcode access.
210 each runcode access.
209
211
210 * IPython/Magic.py (magic_whos): small improvement to diagnostic
212 * IPython/Magic.py (magic_whos): small improvement to diagnostic
211 message.
213 message.
212
214
213 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
215 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
214
216
215 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
217 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
216 asynchronous exceptions working, i.e., Ctrl-C can actually
218 asynchronous exceptions working, i.e., Ctrl-C can actually
217 interrupt long-running code in the multithreaded shells.
219 interrupt long-running code in the multithreaded shells.
218
220
219 This is using Tomer Filiba's great ctypes-based trick:
221 This is using Tomer Filiba's great ctypes-based trick:
220 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
222 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
221 this in the past, but hadn't been able to make it work before. So
223 this in the past, but hadn't been able to make it work before. So
222 far it looks like it's actually running, but this needs more
224 far it looks like it's actually running, but this needs more
223 testing. If it really works, I'll be *very* happy, and we'll owe
225 testing. If it really works, I'll be *very* happy, and we'll owe
224 a huge thank you to Tomer. My current implementation is ugly,
226 a huge thank you to Tomer. My current implementation is ugly,
225 hackish and uses nasty globals, but I don't want to try and clean
227 hackish and uses nasty globals, but I don't want to try and clean
226 anything up until we know if it actually works.
228 anything up until we know if it actually works.
227
229
228 NOTE: this feature needs ctypes to work. ctypes is included in
230 NOTE: this feature needs ctypes to work. ctypes is included in
229 Python2.5, but 2.4 users will need to manually install it. This
231 Python2.5, but 2.4 users will need to manually install it. This
230 feature makes multi-threaded shells so much more usable that it's
232 feature makes multi-threaded shells so much more usable that it's
231 a minor price to pay (ctypes is very easy to install, already a
233 a minor price to pay (ctypes is very easy to install, already a
232 requirement for win32 and available in major linux distros).
234 requirement for win32 and available in major linux distros).
233
235
234 2007-04-04 Ville Vainio <vivainio@gmail.com>
236 2007-04-04 Ville Vainio <vivainio@gmail.com>
235
237
236 * Extensions/ipy_completers.py, ipy_stock_completers.py:
238 * Extensions/ipy_completers.py, ipy_stock_completers.py:
237 Moved implementations of 'bundled' completers to ipy_completers.py,
239 Moved implementations of 'bundled' completers to ipy_completers.py,
238 they are only enabled in ipy_stock_completers.py.
240 they are only enabled in ipy_stock_completers.py.
239
241
240 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
242 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
241
243
242 * IPython/PyColorize.py (Parser.format2): Fix identation of
244 * IPython/PyColorize.py (Parser.format2): Fix identation of
243 colorzied output and return early if color scheme is NoColor, to
245 colorzied output and return early if color scheme is NoColor, to
244 avoid unnecessary and expensive tokenization. Closes #131.
246 avoid unnecessary and expensive tokenization. Closes #131.
245
247
246 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
248 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
247
249
248 * IPython/Debugger.py: disable the use of pydb version 1.17. It
250 * IPython/Debugger.py: disable the use of pydb version 1.17. It
249 has a critical bug (a missing import that makes post-mortem not
251 has a critical bug (a missing import that makes post-mortem not
250 work at all). Unfortunately as of this time, this is the version
252 work at all). Unfortunately as of this time, this is the version
251 shipped with Ubuntu Edgy, so quite a few people have this one. I
253 shipped with Ubuntu Edgy, so quite a few people have this one. I
252 hope Edgy will update to a more recent package.
254 hope Edgy will update to a more recent package.
253
255
254 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
256 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
255
257
256 * IPython/iplib.py (_prefilter): close #52, second part of a patch
258 * IPython/iplib.py (_prefilter): close #52, second part of a patch
257 set by Stefan (only the first part had been applied before).
259 set by Stefan (only the first part had been applied before).
258
260
259 * IPython/Extensions/ipy_stock_completers.py (module_completer):
261 * IPython/Extensions/ipy_stock_completers.py (module_completer):
260 remove usage of the dangerous pkgutil.walk_packages(). See
262 remove usage of the dangerous pkgutil.walk_packages(). See
261 details in comments left in the code.
263 details in comments left in the code.
262
264
263 * IPython/Magic.py (magic_whos): add support for numpy arrays
265 * IPython/Magic.py (magic_whos): add support for numpy arrays
264 similar to what we had for Numeric.
266 similar to what we had for Numeric.
265
267
266 * IPython/completer.py (IPCompleter.complete): extend the
268 * IPython/completer.py (IPCompleter.complete): extend the
267 complete() call API to support completions by other mechanisms
269 complete() call API to support completions by other mechanisms
268 than readline. Closes #109.
270 than readline. Closes #109.
269
271
270 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
272 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
271 protect against a bug in Python's execfile(). Closes #123.
273 protect against a bug in Python's execfile(). Closes #123.
272
274
273 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
275 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
274
276
275 * IPython/iplib.py (split_user_input): ensure that when splitting
277 * IPython/iplib.py (split_user_input): ensure that when splitting
276 user input, the part that can be treated as a python name is pure
278 user input, the part that can be treated as a python name is pure
277 ascii (Python identifiers MUST be pure ascii). Part of the
279 ascii (Python identifiers MUST be pure ascii). Part of the
278 ongoing Unicode support work.
280 ongoing Unicode support work.
279
281
280 * IPython/Prompts.py (prompt_specials_color): Add \N for the
282 * IPython/Prompts.py (prompt_specials_color): Add \N for the
281 actual prompt number, without any coloring. This allows users to
283 actual prompt number, without any coloring. This allows users to
282 produce numbered prompts with their own colors. Added after a
284 produce numbered prompts with their own colors. Added after a
283 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
285 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
284
286
285 2007-03-31 Walter Doerwald <walter@livinglogic.de>
287 2007-03-31 Walter Doerwald <walter@livinglogic.de>
286
288
287 * IPython/Extensions/igrid.py: Map the return key
289 * IPython/Extensions/igrid.py: Map the return key
288 to enter() and shift-return to enterattr().
290 to enter() and shift-return to enterattr().
289
291
290 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
292 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
291
293
292 * IPython/Magic.py (magic_psearch): add unicode support by
294 * IPython/Magic.py (magic_psearch): add unicode support by
293 encoding to ascii the input, since this routine also only deals
295 encoding to ascii the input, since this routine also only deals
294 with valid Python names. Fixes a bug reported by Stefan.
296 with valid Python names. Fixes a bug reported by Stefan.
295
297
296 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
298 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
297
299
298 * IPython/Magic.py (_inspect): convert unicode input into ascii
300 * IPython/Magic.py (_inspect): convert unicode input into ascii
299 before trying to evaluate it as a Python identifier. This fixes a
301 before trying to evaluate it as a Python identifier. This fixes a
300 problem that the new unicode support had introduced when analyzing
302 problem that the new unicode support had introduced when analyzing
301 long definition lines for functions.
303 long definition lines for functions.
302
304
303 2007-03-24 Walter Doerwald <walter@livinglogic.de>
305 2007-03-24 Walter Doerwald <walter@livinglogic.de>
304
306
305 * IPython/Extensions/igrid.py: Fix picking. Using
307 * IPython/Extensions/igrid.py: Fix picking. Using
306 igrid with wxPython 2.6 and -wthread should work now.
308 igrid with wxPython 2.6 and -wthread should work now.
307 igrid.display() simply tries to create a frame without
309 igrid.display() simply tries to create a frame without
308 an application. Only if this fails an application is created.
310 an application. Only if this fails an application is created.
309
311
310 2007-03-23 Walter Doerwald <walter@livinglogic.de>
312 2007-03-23 Walter Doerwald <walter@livinglogic.de>
311
313
312 * IPython/Extensions/path.py: Updated to version 2.2.
314 * IPython/Extensions/path.py: Updated to version 2.2.
313
315
314 2007-03-23 Ville Vainio <vivainio@gmail.com>
316 2007-03-23 Ville Vainio <vivainio@gmail.com>
315
317
316 * iplib.py: recursive alias expansion now works better, so that
318 * iplib.py: recursive alias expansion now works better, so that
317 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
319 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
318 doesn't trip up the process, if 'd' has been aliased to 'ls'.
320 doesn't trip up the process, if 'd' has been aliased to 'ls'.
319
321
320 * Extensions/ipy_gnuglobal.py added, provides %global magic
322 * Extensions/ipy_gnuglobal.py added, provides %global magic
321 for users of http://www.gnu.org/software/global
323 for users of http://www.gnu.org/software/global
322
324
323 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
325 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
324 Closes #52. Patch by Stefan van der Walt.
326 Closes #52. Patch by Stefan van der Walt.
325
327
326 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
328 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
327
329
328 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
330 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
329 respect the __file__ attribute when using %run. Thanks to a bug
331 respect the __file__ attribute when using %run. Thanks to a bug
330 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
332 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
331
333
332 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
334 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
333
335
334 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
336 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
335 input. Patch sent by Stefan.
337 input. Patch sent by Stefan.
336
338
337 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
339 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
338 * IPython/Extensions/ipy_stock_completer.py
340 * IPython/Extensions/ipy_stock_completer.py
339 shlex_split, fix bug in shlex_split. len function
341 shlex_split, fix bug in shlex_split. len function
340 call was missing an if statement. Caused shlex_split to
342 call was missing an if statement. Caused shlex_split to
341 sometimes return "" as last element.
343 sometimes return "" as last element.
342
344
343 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
345 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
344
346
345 * IPython/completer.py
347 * IPython/completer.py
346 (IPCompleter.file_matches.single_dir_expand): fix a problem
348 (IPCompleter.file_matches.single_dir_expand): fix a problem
347 reported by Stefan, where directories containign a single subdir
349 reported by Stefan, where directories containign a single subdir
348 would be completed too early.
350 would be completed too early.
349
351
350 * IPython/Shell.py (_load_pylab): Make the execution of 'from
352 * IPython/Shell.py (_load_pylab): Make the execution of 'from
351 pylab import *' when -pylab is given be optional. A new flag,
353 pylab import *' when -pylab is given be optional. A new flag,
352 pylab_import_all controls this behavior, the default is True for
354 pylab_import_all controls this behavior, the default is True for
353 backwards compatibility.
355 backwards compatibility.
354
356
355 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
357 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
356 modified) R. Bernstein's patch for fully syntax highlighted
358 modified) R. Bernstein's patch for fully syntax highlighted
357 tracebacks. The functionality is also available under ultraTB for
359 tracebacks. The functionality is also available under ultraTB for
358 non-ipython users (someone using ultraTB but outside an ipython
360 non-ipython users (someone using ultraTB but outside an ipython
359 session). They can select the color scheme by setting the
361 session). They can select the color scheme by setting the
360 module-level global DEFAULT_SCHEME. The highlight functionality
362 module-level global DEFAULT_SCHEME. The highlight functionality
361 also works when debugging.
363 also works when debugging.
362
364
363 * IPython/genutils.py (IOStream.close): small patch by
365 * IPython/genutils.py (IOStream.close): small patch by
364 R. Bernstein for improved pydb support.
366 R. Bernstein for improved pydb support.
365
367
366 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
368 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
367 DaveS <davls@telus.net> to improve support of debugging under
369 DaveS <davls@telus.net> to improve support of debugging under
368 NTEmacs, including improved pydb behavior.
370 NTEmacs, including improved pydb behavior.
369
371
370 * IPython/Magic.py (magic_prun): Fix saving of profile info for
372 * IPython/Magic.py (magic_prun): Fix saving of profile info for
371 Python 2.5, where the stats object API changed a little. Thanks
373 Python 2.5, where the stats object API changed a little. Thanks
372 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
374 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
373
375
374 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
376 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
375 Pernetty's patch to improve support for (X)Emacs under Win32.
377 Pernetty's patch to improve support for (X)Emacs under Win32.
376
378
377 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
379 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
378
380
379 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
381 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
380 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
382 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
381 a report by Nik Tautenhahn.
383 a report by Nik Tautenhahn.
382
384
383 2007-03-16 Walter Doerwald <walter@livinglogic.de>
385 2007-03-16 Walter Doerwald <walter@livinglogic.de>
384
386
385 * setup.py: Add the igrid help files to the list of data files
387 * setup.py: Add the igrid help files to the list of data files
386 to be installed alongside igrid.
388 to be installed alongside igrid.
387 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
389 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
388 Show the input object of the igrid browser as the window tile.
390 Show the input object of the igrid browser as the window tile.
389 Show the object the cursor is on in the statusbar.
391 Show the object the cursor is on in the statusbar.
390
392
391 2007-03-15 Ville Vainio <vivainio@gmail.com>
393 2007-03-15 Ville Vainio <vivainio@gmail.com>
392
394
393 * Extensions/ipy_stock_completers.py: Fixed exception
395 * Extensions/ipy_stock_completers.py: Fixed exception
394 on mismatching quotes in %run completer. Patch by
396 on mismatching quotes in %run completer. Patch by
395 JοΏ½rgen Stenarson. Closes #127.
397 JοΏ½rgen Stenarson. Closes #127.
396
398
397 2007-03-14 Ville Vainio <vivainio@gmail.com>
399 2007-03-14 Ville Vainio <vivainio@gmail.com>
398
400
399 * Extensions/ext_rehashdir.py: Do not do auto_alias
401 * Extensions/ext_rehashdir.py: Do not do auto_alias
400 in %rehashdir, it clobbers %store'd aliases.
402 in %rehashdir, it clobbers %store'd aliases.
401
403
402 * UserConfig/ipy_profile_sh.py: envpersist.py extension
404 * UserConfig/ipy_profile_sh.py: envpersist.py extension
403 (beefed up %env) imported for sh profile.
405 (beefed up %env) imported for sh profile.
404
406
405 2007-03-10 Walter Doerwald <walter@livinglogic.de>
407 2007-03-10 Walter Doerwald <walter@livinglogic.de>
406
408
407 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
409 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
408 as the default browser.
410 as the default browser.
409 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
411 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
410 As igrid displays all attributes it ever encounters, fetch() (which has
412 As igrid displays all attributes it ever encounters, fetch() (which has
411 been renamed to _fetch()) doesn't have to recalculate the display attributes
413 been renamed to _fetch()) doesn't have to recalculate the display attributes
412 every time a new item is fetched. This should speed up scrolling.
414 every time a new item is fetched. This should speed up scrolling.
413
415
414 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
416 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
415
417
416 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
418 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
417 Schmolck's recently reported tab-completion bug (my previous one
419 Schmolck's recently reported tab-completion bug (my previous one
418 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
420 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
419
421
420 2007-03-09 Walter Doerwald <walter@livinglogic.de>
422 2007-03-09 Walter Doerwald <walter@livinglogic.de>
421
423
422 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
424 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
423 Close help window if exiting igrid.
425 Close help window if exiting igrid.
424
426
425 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
427 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
426
428
427 * IPython/Extensions/ipy_defaults.py: Check if readline is available
429 * IPython/Extensions/ipy_defaults.py: Check if readline is available
428 before calling functions from readline.
430 before calling functions from readline.
429
431
430 2007-03-02 Walter Doerwald <walter@livinglogic.de>
432 2007-03-02 Walter Doerwald <walter@livinglogic.de>
431
433
432 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
434 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
433 igrid is a wxPython-based display object for ipipe. If your system has
435 igrid is a wxPython-based display object for ipipe. If your system has
434 wx installed igrid will be the default display. Without wx ipipe falls
436 wx installed igrid will be the default display. Without wx ipipe falls
435 back to ibrowse (which needs curses). If no curses is installed ipipe
437 back to ibrowse (which needs curses). If no curses is installed ipipe
436 falls back to idump.
438 falls back to idump.
437
439
438 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
440 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
439
441
440 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
442 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
441 my changes from yesterday, they introduced bugs. Will reactivate
443 my changes from yesterday, they introduced bugs. Will reactivate
442 once I get a correct solution, which will be much easier thanks to
444 once I get a correct solution, which will be much easier thanks to
443 Dan Milstein's new prefilter test suite.
445 Dan Milstein's new prefilter test suite.
444
446
445 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
447 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
446
448
447 * IPython/iplib.py (split_user_input): fix input splitting so we
449 * IPython/iplib.py (split_user_input): fix input splitting so we
448 don't attempt attribute accesses on things that can't possibly be
450 don't attempt attribute accesses on things that can't possibly be
449 valid Python attributes. After a bug report by Alex Schmolck.
451 valid Python attributes. After a bug report by Alex Schmolck.
450 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
452 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
451 %magic with explicit % prefix.
453 %magic with explicit % prefix.
452
454
453 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
455 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
454
456
455 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
457 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
456 avoid a DeprecationWarning from GTK.
458 avoid a DeprecationWarning from GTK.
457
459
458 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
460 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
459
461
460 * IPython/genutils.py (clock): I modified clock() to return total
462 * IPython/genutils.py (clock): I modified clock() to return total
461 time, user+system. This is a more commonly needed metric. I also
463 time, user+system. This is a more commonly needed metric. I also
462 introduced the new clocku/clocks to get only user/system time if
464 introduced the new clocku/clocks to get only user/system time if
463 one wants those instead.
465 one wants those instead.
464
466
465 ***WARNING: API CHANGE*** clock() used to return only user time,
467 ***WARNING: API CHANGE*** clock() used to return only user time,
466 so if you want exactly the same results as before, use clocku
468 so if you want exactly the same results as before, use clocku
467 instead.
469 instead.
468
470
469 2007-02-22 Ville Vainio <vivainio@gmail.com>
471 2007-02-22 Ville Vainio <vivainio@gmail.com>
470
472
471 * IPython/Extensions/ipy_p4.py: Extension for improved
473 * IPython/Extensions/ipy_p4.py: Extension for improved
472 p4 (perforce version control system) experience.
474 p4 (perforce version control system) experience.
473 Adds %p4 magic with p4 command completion and
475 Adds %p4 magic with p4 command completion and
474 automatic -G argument (marshall output as python dict)
476 automatic -G argument (marshall output as python dict)
475
477
476 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
478 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
477
479
478 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
480 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
479 stop marks.
481 stop marks.
480 (ClearingMixin): a simple mixin to easily make a Demo class clear
482 (ClearingMixin): a simple mixin to easily make a Demo class clear
481 the screen in between blocks and have empty marquees. The
483 the screen in between blocks and have empty marquees. The
482 ClearDemo and ClearIPDemo classes that use it are included.
484 ClearDemo and ClearIPDemo classes that use it are included.
483
485
484 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
486 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
485
487
486 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
488 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
487 protect against exceptions at Python shutdown time. Patch
489 protect against exceptions at Python shutdown time. Patch
488 sumbmitted to upstream.
490 sumbmitted to upstream.
489
491
490 2007-02-14 Walter Doerwald <walter@livinglogic.de>
492 2007-02-14 Walter Doerwald <walter@livinglogic.de>
491
493
492 * IPython/Extensions/ibrowse.py: If entering the first object level
494 * IPython/Extensions/ibrowse.py: If entering the first object level
493 (i.e. the object for which the browser has been started) fails,
495 (i.e. the object for which the browser has been started) fails,
494 now the error is raised directly (aborting the browser) instead of
496 now the error is raised directly (aborting the browser) instead of
495 running into an empty levels list later.
497 running into an empty levels list later.
496
498
497 2007-02-03 Walter Doerwald <walter@livinglogic.de>
499 2007-02-03 Walter Doerwald <walter@livinglogic.de>
498
500
499 * IPython/Extensions/ipipe.py: Add an xrepr implementation
501 * IPython/Extensions/ipipe.py: Add an xrepr implementation
500 for the noitem object.
502 for the noitem object.
501
503
502 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
504 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
503
505
504 * IPython/completer.py (Completer.attr_matches): Fix small
506 * IPython/completer.py (Completer.attr_matches): Fix small
505 tab-completion bug with Enthought Traits objects with units.
507 tab-completion bug with Enthought Traits objects with units.
506 Thanks to a bug report by Tom Denniston
508 Thanks to a bug report by Tom Denniston
507 <tom.denniston-AT-alum.dartmouth.org>.
509 <tom.denniston-AT-alum.dartmouth.org>.
508
510
509 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
511 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
510
512
511 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
513 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
512 bug where only .ipy or .py would be completed. Once the first
514 bug where only .ipy or .py would be completed. Once the first
513 argument to %run has been given, all completions are valid because
515 argument to %run has been given, all completions are valid because
514 they are the arguments to the script, which may well be non-python
516 they are the arguments to the script, which may well be non-python
515 filenames.
517 filenames.
516
518
517 * IPython/irunner.py (InteractiveRunner.run_source): major updates
519 * IPython/irunner.py (InteractiveRunner.run_source): major updates
518 to irunner to allow it to correctly support real doctesting of
520 to irunner to allow it to correctly support real doctesting of
519 out-of-process ipython code.
521 out-of-process ipython code.
520
522
521 * IPython/Magic.py (magic_cd): Make the setting of the terminal
523 * IPython/Magic.py (magic_cd): Make the setting of the terminal
522 title an option (-noterm_title) because it completely breaks
524 title an option (-noterm_title) because it completely breaks
523 doctesting.
525 doctesting.
524
526
525 * IPython/demo.py: fix IPythonDemo class that was not actually working.
527 * IPython/demo.py: fix IPythonDemo class that was not actually working.
526
528
527 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
529 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
528
530
529 * IPython/irunner.py (main): fix small bug where extensions were
531 * IPython/irunner.py (main): fix small bug where extensions were
530 not being correctly recognized.
532 not being correctly recognized.
531
533
532 2007-01-23 Walter Doerwald <walter@livinglogic.de>
534 2007-01-23 Walter Doerwald <walter@livinglogic.de>
533
535
534 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
536 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
535 a string containing a single line yields the string itself as the
537 a string containing a single line yields the string itself as the
536 only item.
538 only item.
537
539
538 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
540 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
539 object if it's the same as the one on the last level (This avoids
541 object if it's the same as the one on the last level (This avoids
540 infinite recursion for one line strings).
542 infinite recursion for one line strings).
541
543
542 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
544 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
543
545
544 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
546 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
545 all output streams before printing tracebacks. This ensures that
547 all output streams before printing tracebacks. This ensures that
546 user output doesn't end up interleaved with traceback output.
548 user output doesn't end up interleaved with traceback output.
547
549
548 2007-01-10 Ville Vainio <vivainio@gmail.com>
550 2007-01-10 Ville Vainio <vivainio@gmail.com>
549
551
550 * Extensions/envpersist.py: Turbocharged %env that remembers
552 * Extensions/envpersist.py: Turbocharged %env that remembers
551 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
553 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
552 "%env VISUAL=jed".
554 "%env VISUAL=jed".
553
555
554 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
556 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
555
557
556 * IPython/iplib.py (showtraceback): ensure that we correctly call
558 * IPython/iplib.py (showtraceback): ensure that we correctly call
557 custom handlers in all cases (some with pdb were slipping through,
559 custom handlers in all cases (some with pdb were slipping through,
558 but I'm not exactly sure why).
560 but I'm not exactly sure why).
559
561
560 * IPython/Debugger.py (Tracer.__init__): added new class to
562 * IPython/Debugger.py (Tracer.__init__): added new class to
561 support set_trace-like usage of IPython's enhanced debugger.
563 support set_trace-like usage of IPython's enhanced debugger.
562
564
563 2006-12-24 Ville Vainio <vivainio@gmail.com>
565 2006-12-24 Ville Vainio <vivainio@gmail.com>
564
566
565 * ipmaker.py: more informative message when ipy_user_conf
567 * ipmaker.py: more informative message when ipy_user_conf
566 import fails (suggest running %upgrade).
568 import fails (suggest running %upgrade).
567
569
568 * tools/run_ipy_in_profiler.py: Utility to see where
570 * tools/run_ipy_in_profiler.py: Utility to see where
569 the time during IPython startup is spent.
571 the time during IPython startup is spent.
570
572
571 2006-12-20 Ville Vainio <vivainio@gmail.com>
573 2006-12-20 Ville Vainio <vivainio@gmail.com>
572
574
573 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
575 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
574
576
575 * ipapi.py: Add new ipapi method, expand_alias.
577 * ipapi.py: Add new ipapi method, expand_alias.
576
578
577 * Release.py: Bump up version to 0.7.4.svn
579 * Release.py: Bump up version to 0.7.4.svn
578
580
579 2006-12-17 Ville Vainio <vivainio@gmail.com>
581 2006-12-17 Ville Vainio <vivainio@gmail.com>
580
582
581 * Extensions/jobctrl.py: Fixed &cmd arg arg...
583 * Extensions/jobctrl.py: Fixed &cmd arg arg...
582 to work properly on posix too
584 to work properly on posix too
583
585
584 * Release.py: Update revnum (version is still just 0.7.3).
586 * Release.py: Update revnum (version is still just 0.7.3).
585
587
586 2006-12-15 Ville Vainio <vivainio@gmail.com>
588 2006-12-15 Ville Vainio <vivainio@gmail.com>
587
589
588 * scripts/ipython_win_post_install: create ipython.py in
590 * scripts/ipython_win_post_install: create ipython.py in
589 prefix + "/scripts".
591 prefix + "/scripts".
590
592
591 * Release.py: Update version to 0.7.3.
593 * Release.py: Update version to 0.7.3.
592
594
593 2006-12-14 Ville Vainio <vivainio@gmail.com>
595 2006-12-14 Ville Vainio <vivainio@gmail.com>
594
596
595 * scripts/ipython_win_post_install: Overwrite old shortcuts
597 * scripts/ipython_win_post_install: Overwrite old shortcuts
596 if they already exist
598 if they already exist
597
599
598 * Release.py: release 0.7.3rc2
600 * Release.py: release 0.7.3rc2
599
601
600 2006-12-13 Ville Vainio <vivainio@gmail.com>
602 2006-12-13 Ville Vainio <vivainio@gmail.com>
601
603
602 * Branch and update Release.py for 0.7.3rc1
604 * Branch and update Release.py for 0.7.3rc1
603
605
604 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
606 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
605
607
606 * IPython/Shell.py (IPShellWX): update for current WX naming
608 * IPython/Shell.py (IPShellWX): update for current WX naming
607 conventions, to avoid a deprecation warning with current WX
609 conventions, to avoid a deprecation warning with current WX
608 versions. Thanks to a report by Danny Shevitz.
610 versions. Thanks to a report by Danny Shevitz.
609
611
610 2006-12-12 Ville Vainio <vivainio@gmail.com>
612 2006-12-12 Ville Vainio <vivainio@gmail.com>
611
613
612 * ipmaker.py: apply david cournapeau's patch to make
614 * ipmaker.py: apply david cournapeau's patch to make
613 import_some work properly even when ipythonrc does
615 import_some work properly even when ipythonrc does
614 import_some on empty list (it was an old bug!).
616 import_some on empty list (it was an old bug!).
615
617
616 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
618 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
617 Add deprecation note to ipythonrc and a url to wiki
619 Add deprecation note to ipythonrc and a url to wiki
618 in ipy_user_conf.py
620 in ipy_user_conf.py
619
621
620
622
621 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
623 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
622 as if it was typed on IPython command prompt, i.e.
624 as if it was typed on IPython command prompt, i.e.
623 as IPython script.
625 as IPython script.
624
626
625 * example-magic.py, magic_grepl.py: remove outdated examples
627 * example-magic.py, magic_grepl.py: remove outdated examples
626
628
627 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
629 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
628
630
629 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
631 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
630 is called before any exception has occurred.
632 is called before any exception has occurred.
631
633
632 2006-12-08 Ville Vainio <vivainio@gmail.com>
634 2006-12-08 Ville Vainio <vivainio@gmail.com>
633
635
634 * Extensions/ipy_stock_completers.py: fix cd completer
636 * Extensions/ipy_stock_completers.py: fix cd completer
635 to translate /'s to \'s again.
637 to translate /'s to \'s again.
636
638
637 * completer.py: prevent traceback on file completions w/
639 * completer.py: prevent traceback on file completions w/
638 backslash.
640 backslash.
639
641
640 * Release.py: Update release number to 0.7.3b3 for release
642 * Release.py: Update release number to 0.7.3b3 for release
641
643
642 2006-12-07 Ville Vainio <vivainio@gmail.com>
644 2006-12-07 Ville Vainio <vivainio@gmail.com>
643
645
644 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
646 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
645 while executing external code. Provides more shell-like behaviour
647 while executing external code. Provides more shell-like behaviour
646 and overall better response to ctrl + C / ctrl + break.
648 and overall better response to ctrl + C / ctrl + break.
647
649
648 * tools/make_tarball.py: new script to create tarball straight from svn
650 * tools/make_tarball.py: new script to create tarball straight from svn
649 (setup.py sdist doesn't work on win32).
651 (setup.py sdist doesn't work on win32).
650
652
651 * Extensions/ipy_stock_completers.py: fix cd completer to give up
653 * Extensions/ipy_stock_completers.py: fix cd completer to give up
652 on dirnames with spaces and use the default completer instead.
654 on dirnames with spaces and use the default completer instead.
653
655
654 * Revision.py: Change version to 0.7.3b2 for release.
656 * Revision.py: Change version to 0.7.3b2 for release.
655
657
656 2006-12-05 Ville Vainio <vivainio@gmail.com>
658 2006-12-05 Ville Vainio <vivainio@gmail.com>
657
659
658 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
660 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
659 pydb patch 4 (rm debug printing, py 2.5 checking)
661 pydb patch 4 (rm debug printing, py 2.5 checking)
660
662
661 2006-11-30 Walter Doerwald <walter@livinglogic.de>
663 2006-11-30 Walter Doerwald <walter@livinglogic.de>
662 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
664 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
663 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
665 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
664 "refreshfind" (mapped to "R") does the same but tries to go back to the same
666 "refreshfind" (mapped to "R") does the same but tries to go back to the same
665 object the cursor was on before the refresh. The command "markrange" is
667 object the cursor was on before the refresh. The command "markrange" is
666 mapped to "%" now.
668 mapped to "%" now.
667 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
669 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
668
670
669 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
671 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
670
672
671 * IPython/Magic.py (magic_debug): new %debug magic to activate the
673 * IPython/Magic.py (magic_debug): new %debug magic to activate the
672 interactive debugger on the last traceback, without having to call
674 interactive debugger on the last traceback, without having to call
673 %pdb and rerun your code. Made minor changes in various modules,
675 %pdb and rerun your code. Made minor changes in various modules,
674 should automatically recognize pydb if available.
676 should automatically recognize pydb if available.
675
677
676 2006-11-28 Ville Vainio <vivainio@gmail.com>
678 2006-11-28 Ville Vainio <vivainio@gmail.com>
677
679
678 * completer.py: If the text start with !, show file completions
680 * completer.py: If the text start with !, show file completions
679 properly. This helps when trying to complete command name
681 properly. This helps when trying to complete command name
680 for shell escapes.
682 for shell escapes.
681
683
682 2006-11-27 Ville Vainio <vivainio@gmail.com>
684 2006-11-27 Ville Vainio <vivainio@gmail.com>
683
685
684 * ipy_stock_completers.py: bzr completer submitted by Stefan van
686 * ipy_stock_completers.py: bzr completer submitted by Stefan van
685 der Walt. Clean up svn and hg completers by using a common
687 der Walt. Clean up svn and hg completers by using a common
686 vcs_completer.
688 vcs_completer.
687
689
688 2006-11-26 Ville Vainio <vivainio@gmail.com>
690 2006-11-26 Ville Vainio <vivainio@gmail.com>
689
691
690 * Remove ipconfig and %config; you should use _ip.options structure
692 * Remove ipconfig and %config; you should use _ip.options structure
691 directly instead!
693 directly instead!
692
694
693 * genutils.py: add wrap_deprecated function for deprecating callables
695 * genutils.py: add wrap_deprecated function for deprecating callables
694
696
695 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
697 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
696 _ip.system instead. ipalias is redundant.
698 _ip.system instead. ipalias is redundant.
697
699
698 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
700 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
699 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
701 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
700 explicit.
702 explicit.
701
703
702 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
704 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
703 completer. Try it by entering 'hg ' and pressing tab.
705 completer. Try it by entering 'hg ' and pressing tab.
704
706
705 * macro.py: Give Macro a useful __repr__ method
707 * macro.py: Give Macro a useful __repr__ method
706
708
707 * Magic.py: %whos abbreviates the typename of Macro for brevity.
709 * Magic.py: %whos abbreviates the typename of Macro for brevity.
708
710
709 2006-11-24 Walter Doerwald <walter@livinglogic.de>
711 2006-11-24 Walter Doerwald <walter@livinglogic.de>
710 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
712 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
711 we don't get a duplicate ipipe module, where registration of the xrepr
713 we don't get a duplicate ipipe module, where registration of the xrepr
712 implementation for Text is useless.
714 implementation for Text is useless.
713
715
714 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
716 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
715
717
716 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
718 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
717
719
718 2006-11-24 Ville Vainio <vivainio@gmail.com>
720 2006-11-24 Ville Vainio <vivainio@gmail.com>
719
721
720 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
722 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
721 try to use "cProfile" instead of the slower pure python
723 try to use "cProfile" instead of the slower pure python
722 "profile"
724 "profile"
723
725
724 2006-11-23 Ville Vainio <vivainio@gmail.com>
726 2006-11-23 Ville Vainio <vivainio@gmail.com>
725
727
726 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
728 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
727 Qt+IPython+Designer link in documentation.
729 Qt+IPython+Designer link in documentation.
728
730
729 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
731 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
730 correct Pdb object to %pydb.
732 correct Pdb object to %pydb.
731
733
732
734
733 2006-11-22 Walter Doerwald <walter@livinglogic.de>
735 2006-11-22 Walter Doerwald <walter@livinglogic.de>
734 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
736 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
735 generic xrepr(), otherwise the list implementation would kick in.
737 generic xrepr(), otherwise the list implementation would kick in.
736
738
737 2006-11-21 Ville Vainio <vivainio@gmail.com>
739 2006-11-21 Ville Vainio <vivainio@gmail.com>
738
740
739 * upgrade_dir.py: Now actually overwrites a nonmodified user file
741 * upgrade_dir.py: Now actually overwrites a nonmodified user file
740 with one from UserConfig.
742 with one from UserConfig.
741
743
742 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
744 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
743 it was missing which broke the sh profile.
745 it was missing which broke the sh profile.
744
746
745 * completer.py: file completer now uses explicit '/' instead
747 * completer.py: file completer now uses explicit '/' instead
746 of os.path.join, expansion of 'foo' was broken on win32
748 of os.path.join, expansion of 'foo' was broken on win32
747 if there was one directory with name 'foobar'.
749 if there was one directory with name 'foobar'.
748
750
749 * A bunch of patches from Kirill Smelkov:
751 * A bunch of patches from Kirill Smelkov:
750
752
751 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
753 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
752
754
753 * [patch 7/9] Implement %page -r (page in raw mode) -
755 * [patch 7/9] Implement %page -r (page in raw mode) -
754
756
755 * [patch 5/9] ScientificPython webpage has moved
757 * [patch 5/9] ScientificPython webpage has moved
756
758
757 * [patch 4/9] The manual mentions %ds, should be %dhist
759 * [patch 4/9] The manual mentions %ds, should be %dhist
758
760
759 * [patch 3/9] Kill old bits from %prun doc.
761 * [patch 3/9] Kill old bits from %prun doc.
760
762
761 * [patch 1/9] Fix typos here and there.
763 * [patch 1/9] Fix typos here and there.
762
764
763 2006-11-08 Ville Vainio <vivainio@gmail.com>
765 2006-11-08 Ville Vainio <vivainio@gmail.com>
764
766
765 * completer.py (attr_matches): catch all exceptions raised
767 * completer.py (attr_matches): catch all exceptions raised
766 by eval of expr with dots.
768 by eval of expr with dots.
767
769
768 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
770 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
769
771
770 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
772 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
771 input if it starts with whitespace. This allows you to paste
773 input if it starts with whitespace. This allows you to paste
772 indented input from any editor without manually having to type in
774 indented input from any editor without manually having to type in
773 the 'if 1:', which is convenient when working interactively.
775 the 'if 1:', which is convenient when working interactively.
774 Slightly modifed version of a patch by Bo Peng
776 Slightly modifed version of a patch by Bo Peng
775 <bpeng-AT-rice.edu>.
777 <bpeng-AT-rice.edu>.
776
778
777 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
779 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
778
780
779 * IPython/irunner.py (main): modified irunner so it automatically
781 * IPython/irunner.py (main): modified irunner so it automatically
780 recognizes the right runner to use based on the extension (.py for
782 recognizes the right runner to use based on the extension (.py for
781 python, .ipy for ipython and .sage for sage).
783 python, .ipy for ipython and .sage for sage).
782
784
783 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
785 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
784 visible in ipapi as ip.config(), to programatically control the
786 visible in ipapi as ip.config(), to programatically control the
785 internal rc object. There's an accompanying %config magic for
787 internal rc object. There's an accompanying %config magic for
786 interactive use, which has been enhanced to match the
788 interactive use, which has been enhanced to match the
787 funtionality in ipconfig.
789 funtionality in ipconfig.
788
790
789 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
791 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
790 so it's not just a toggle, it now takes an argument. Add support
792 so it's not just a toggle, it now takes an argument. Add support
791 for a customizable header when making system calls, as the new
793 for a customizable header when making system calls, as the new
792 system_header variable in the ipythonrc file.
794 system_header variable in the ipythonrc file.
793
795
794 2006-11-03 Walter Doerwald <walter@livinglogic.de>
796 2006-11-03 Walter Doerwald <walter@livinglogic.de>
795
797
796 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
798 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
797 generic functions (using Philip J. Eby's simplegeneric package).
799 generic functions (using Philip J. Eby's simplegeneric package).
798 This makes it possible to customize the display of third-party classes
800 This makes it possible to customize the display of third-party classes
799 without having to monkeypatch them. xiter() no longer supports a mode
801 without having to monkeypatch them. xiter() no longer supports a mode
800 argument and the XMode class has been removed. The same functionality can
802 argument and the XMode class has been removed. The same functionality can
801 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
803 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
802 One consequence of the switch to generic functions is that xrepr() and
804 One consequence of the switch to generic functions is that xrepr() and
803 xattrs() implementation must define the default value for the mode
805 xattrs() implementation must define the default value for the mode
804 argument themselves and xattrs() implementations must return real
806 argument themselves and xattrs() implementations must return real
805 descriptors.
807 descriptors.
806
808
807 * IPython/external: This new subpackage will contain all third-party
809 * IPython/external: This new subpackage will contain all third-party
808 packages that are bundled with IPython. (The first one is simplegeneric).
810 packages that are bundled with IPython. (The first one is simplegeneric).
809
811
810 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
812 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
811 directory which as been dropped in r1703.
813 directory which as been dropped in r1703.
812
814
813 * IPython/Extensions/ipipe.py (iless): Fixed.
815 * IPython/Extensions/ipipe.py (iless): Fixed.
814
816
815 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
817 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
816
818
817 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
819 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
818
820
819 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
821 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
820 handling in variable expansion so that shells and magics recognize
822 handling in variable expansion so that shells and magics recognize
821 function local scopes correctly. Bug reported by Brian.
823 function local scopes correctly. Bug reported by Brian.
822
824
823 * scripts/ipython: remove the very first entry in sys.path which
825 * scripts/ipython: remove the very first entry in sys.path which
824 Python auto-inserts for scripts, so that sys.path under IPython is
826 Python auto-inserts for scripts, so that sys.path under IPython is
825 as similar as possible to that under plain Python.
827 as similar as possible to that under plain Python.
826
828
827 * IPython/completer.py (IPCompleter.file_matches): Fix
829 * IPython/completer.py (IPCompleter.file_matches): Fix
828 tab-completion so that quotes are not closed unless the completion
830 tab-completion so that quotes are not closed unless the completion
829 is unambiguous. After a request by Stefan. Minor cleanups in
831 is unambiguous. After a request by Stefan. Minor cleanups in
830 ipy_stock_completers.
832 ipy_stock_completers.
831
833
832 2006-11-02 Ville Vainio <vivainio@gmail.com>
834 2006-11-02 Ville Vainio <vivainio@gmail.com>
833
835
834 * ipy_stock_completers.py: Add %run and %cd completers.
836 * ipy_stock_completers.py: Add %run and %cd completers.
835
837
836 * completer.py: Try running custom completer for both
838 * completer.py: Try running custom completer for both
837 "foo" and "%foo" if the command is just "foo". Ignore case
839 "foo" and "%foo" if the command is just "foo". Ignore case
838 when filtering possible completions.
840 when filtering possible completions.
839
841
840 * UserConfig/ipy_user_conf.py: install stock completers as default
842 * UserConfig/ipy_user_conf.py: install stock completers as default
841
843
842 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
844 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
843 simplified readline history save / restore through a wrapper
845 simplified readline history save / restore through a wrapper
844 function
846 function
845
847
846
848
847 2006-10-31 Ville Vainio <vivainio@gmail.com>
849 2006-10-31 Ville Vainio <vivainio@gmail.com>
848
850
849 * strdispatch.py, completer.py, ipy_stock_completers.py:
851 * strdispatch.py, completer.py, ipy_stock_completers.py:
850 Allow str_key ("command") in completer hooks. Implement
852 Allow str_key ("command") in completer hooks. Implement
851 trivial completer for 'import' (stdlib modules only). Rename
853 trivial completer for 'import' (stdlib modules only). Rename
852 ipy_linux_package_managers.py to ipy_stock_completers.py.
854 ipy_linux_package_managers.py to ipy_stock_completers.py.
853 SVN completer.
855 SVN completer.
854
856
855 * Extensions/ledit.py: %magic line editor for easily and
857 * Extensions/ledit.py: %magic line editor for easily and
856 incrementally manipulating lists of strings. The magic command
858 incrementally manipulating lists of strings. The magic command
857 name is %led.
859 name is %led.
858
860
859 2006-10-30 Ville Vainio <vivainio@gmail.com>
861 2006-10-30 Ville Vainio <vivainio@gmail.com>
860
862
861 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
863 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
862 Bernsteins's patches for pydb integration.
864 Bernsteins's patches for pydb integration.
863 http://bashdb.sourceforge.net/pydb/
865 http://bashdb.sourceforge.net/pydb/
864
866
865 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
867 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
866 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
868 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
867 custom completer hook to allow the users to implement their own
869 custom completer hook to allow the users to implement their own
868 completers. See ipy_linux_package_managers.py for example. The
870 completers. See ipy_linux_package_managers.py for example. The
869 hook name is 'complete_command'.
871 hook name is 'complete_command'.
870
872
871 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
873 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
872
874
873 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
875 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
874 Numeric leftovers.
876 Numeric leftovers.
875
877
876 * ipython.el (py-execute-region): apply Stefan's patch to fix
878 * ipython.el (py-execute-region): apply Stefan's patch to fix
877 garbled results if the python shell hasn't been previously started.
879 garbled results if the python shell hasn't been previously started.
878
880
879 * IPython/genutils.py (arg_split): moved to genutils, since it's a
881 * IPython/genutils.py (arg_split): moved to genutils, since it's a
880 pretty generic function and useful for other things.
882 pretty generic function and useful for other things.
881
883
882 * IPython/OInspect.py (getsource): Add customizable source
884 * IPython/OInspect.py (getsource): Add customizable source
883 extractor. After a request/patch form W. Stein (SAGE).
885 extractor. After a request/patch form W. Stein (SAGE).
884
886
885 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
887 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
886 window size to a more reasonable value from what pexpect does,
888 window size to a more reasonable value from what pexpect does,
887 since their choice causes wrapping bugs with long input lines.
889 since their choice causes wrapping bugs with long input lines.
888
890
889 2006-10-28 Ville Vainio <vivainio@gmail.com>
891 2006-10-28 Ville Vainio <vivainio@gmail.com>
890
892
891 * Magic.py (%run): Save and restore the readline history from
893 * Magic.py (%run): Save and restore the readline history from
892 file around %run commands to prevent side effects from
894 file around %run commands to prevent side effects from
893 %runned programs that might use readline (e.g. pydb).
895 %runned programs that might use readline (e.g. pydb).
894
896
895 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
897 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
896 invoking the pydb enhanced debugger.
898 invoking the pydb enhanced debugger.
897
899
898 2006-10-23 Walter Doerwald <walter@livinglogic.de>
900 2006-10-23 Walter Doerwald <walter@livinglogic.de>
899
901
900 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
902 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
901 call the base class method and propagate the return value to
903 call the base class method and propagate the return value to
902 ifile. This is now done by path itself.
904 ifile. This is now done by path itself.
903
905
904 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
906 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
905
907
906 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
908 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
907 api: set_crash_handler(), to expose the ability to change the
909 api: set_crash_handler(), to expose the ability to change the
908 internal crash handler.
910 internal crash handler.
909
911
910 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
912 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
911 the various parameters of the crash handler so that apps using
913 the various parameters of the crash handler so that apps using
912 IPython as their engine can customize crash handling. Ipmlemented
914 IPython as their engine can customize crash handling. Ipmlemented
913 at the request of SAGE.
915 at the request of SAGE.
914
916
915 2006-10-14 Ville Vainio <vivainio@gmail.com>
917 2006-10-14 Ville Vainio <vivainio@gmail.com>
916
918
917 * Magic.py, ipython.el: applied first "safe" part of Rocky
919 * Magic.py, ipython.el: applied first "safe" part of Rocky
918 Bernstein's patch set for pydb integration.
920 Bernstein's patch set for pydb integration.
919
921
920 * Magic.py (%unalias, %alias): %store'd aliases can now be
922 * Magic.py (%unalias, %alias): %store'd aliases can now be
921 removed with '%unalias'. %alias w/o args now shows most
923 removed with '%unalias'. %alias w/o args now shows most
922 interesting (stored / manually defined) aliases last
924 interesting (stored / manually defined) aliases last
923 where they catch the eye w/o scrolling.
925 where they catch the eye w/o scrolling.
924
926
925 * Magic.py (%rehashx), ext_rehashdir.py: files with
927 * Magic.py (%rehashx), ext_rehashdir.py: files with
926 'py' extension are always considered executable, even
928 'py' extension are always considered executable, even
927 when not in PATHEXT environment variable.
929 when not in PATHEXT environment variable.
928
930
929 2006-10-12 Ville Vainio <vivainio@gmail.com>
931 2006-10-12 Ville Vainio <vivainio@gmail.com>
930
932
931 * jobctrl.py: Add new "jobctrl" extension for spawning background
933 * jobctrl.py: Add new "jobctrl" extension for spawning background
932 processes with "&find /". 'import jobctrl' to try it out. Requires
934 processes with "&find /". 'import jobctrl' to try it out. Requires
933 'subprocess' module, standard in python 2.4+.
935 'subprocess' module, standard in python 2.4+.
934
936
935 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
937 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
936 so if foo -> bar and bar -> baz, then foo -> baz.
938 so if foo -> bar and bar -> baz, then foo -> baz.
937
939
938 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
940 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
939
941
940 * IPython/Magic.py (Magic.parse_options): add a new posix option
942 * IPython/Magic.py (Magic.parse_options): add a new posix option
941 to allow parsing of input args in magics that doesn't strip quotes
943 to allow parsing of input args in magics that doesn't strip quotes
942 (if posix=False). This also closes %timeit bug reported by
944 (if posix=False). This also closes %timeit bug reported by
943 Stefan.
945 Stefan.
944
946
945 2006-10-03 Ville Vainio <vivainio@gmail.com>
947 2006-10-03 Ville Vainio <vivainio@gmail.com>
946
948
947 * iplib.py (raw_input, interact): Return ValueError catching for
949 * iplib.py (raw_input, interact): Return ValueError catching for
948 raw_input. Fixes infinite loop for sys.stdin.close() or
950 raw_input. Fixes infinite loop for sys.stdin.close() or
949 sys.stdout.close().
951 sys.stdout.close().
950
952
951 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
953 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
952
954
953 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
955 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
954 to help in handling doctests. irunner is now pretty useful for
956 to help in handling doctests. irunner is now pretty useful for
955 running standalone scripts and simulate a full interactive session
957 running standalone scripts and simulate a full interactive session
956 in a format that can be then pasted as a doctest.
958 in a format that can be then pasted as a doctest.
957
959
958 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
960 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
959 on top of the default (useless) ones. This also fixes the nasty
961 on top of the default (useless) ones. This also fixes the nasty
960 way in which 2.5's Quitter() exits (reverted [1785]).
962 way in which 2.5's Quitter() exits (reverted [1785]).
961
963
962 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
964 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
963 2.5.
965 2.5.
964
966
965 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
967 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
966 color scheme is updated as well when color scheme is changed
968 color scheme is updated as well when color scheme is changed
967 interactively.
969 interactively.
968
970
969 2006-09-27 Ville Vainio <vivainio@gmail.com>
971 2006-09-27 Ville Vainio <vivainio@gmail.com>
970
972
971 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
973 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
972 infinite loop and just exit. It's a hack, but will do for a while.
974 infinite loop and just exit. It's a hack, but will do for a while.
973
975
974 2006-08-25 Walter Doerwald <walter@livinglogic.de>
976 2006-08-25 Walter Doerwald <walter@livinglogic.de>
975
977
976 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
978 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
977 the constructor, this makes it possible to get a list of only directories
979 the constructor, this makes it possible to get a list of only directories
978 or only files.
980 or only files.
979
981
980 2006-08-12 Ville Vainio <vivainio@gmail.com>
982 2006-08-12 Ville Vainio <vivainio@gmail.com>
981
983
982 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
984 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
983 they broke unittest
985 they broke unittest
984
986
985 2006-08-11 Ville Vainio <vivainio@gmail.com>
987 2006-08-11 Ville Vainio <vivainio@gmail.com>
986
988
987 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
989 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
988 by resolving issue properly, i.e. by inheriting FakeModule
990 by resolving issue properly, i.e. by inheriting FakeModule
989 from types.ModuleType. Pickling ipython interactive data
991 from types.ModuleType. Pickling ipython interactive data
990 should still work as usual (testing appreciated).
992 should still work as usual (testing appreciated).
991
993
992 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
994 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
993
995
994 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
996 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
995 running under python 2.3 with code from 2.4 to fix a bug with
997 running under python 2.3 with code from 2.4 to fix a bug with
996 help(). Reported by the Debian maintainers, Norbert Tretkowski
998 help(). Reported by the Debian maintainers, Norbert Tretkowski
997 <norbert-AT-tretkowski.de> and Alexandre Fayolle
999 <norbert-AT-tretkowski.de> and Alexandre Fayolle
998 <afayolle-AT-debian.org>.
1000 <afayolle-AT-debian.org>.
999
1001
1000 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1002 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1001
1003
1002 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1004 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1003 (which was displaying "quit" twice).
1005 (which was displaying "quit" twice).
1004
1006
1005 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1007 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1006
1008
1007 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1009 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1008 the mode argument).
1010 the mode argument).
1009
1011
1010 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1012 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1011
1013
1012 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1014 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1013 not running under IPython.
1015 not running under IPython.
1014
1016
1015 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1017 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1016 and make it iterable (iterating over the attribute itself). Add two new
1018 and make it iterable (iterating over the attribute itself). Add two new
1017 magic strings for __xattrs__(): If the string starts with "-", the attribute
1019 magic strings for __xattrs__(): If the string starts with "-", the attribute
1018 will not be displayed in ibrowse's detail view (but it can still be
1020 will not be displayed in ibrowse's detail view (but it can still be
1019 iterated over). This makes it possible to add attributes that are large
1021 iterated over). This makes it possible to add attributes that are large
1020 lists or generator methods to the detail view. Replace magic attribute names
1022 lists or generator methods to the detail view. Replace magic attribute names
1021 and _attrname() and _getattr() with "descriptors": For each type of magic
1023 and _attrname() and _getattr() with "descriptors": For each type of magic
1022 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1024 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1023 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1025 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1024 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1026 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1025 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1027 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1026 are still supported.
1028 are still supported.
1027
1029
1028 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1030 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1029 fails in ibrowse.fetch(), the exception object is added as the last item
1031 fails in ibrowse.fetch(), the exception object is added as the last item
1030 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1032 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1031 a generator throws an exception midway through execution.
1033 a generator throws an exception midway through execution.
1032
1034
1033 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1035 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1034 encoding into methods.
1036 encoding into methods.
1035
1037
1036 2006-07-26 Ville Vainio <vivainio@gmail.com>
1038 2006-07-26 Ville Vainio <vivainio@gmail.com>
1037
1039
1038 * iplib.py: history now stores multiline input as single
1040 * iplib.py: history now stores multiline input as single
1039 history entries. Patch by Jorgen Cederlof.
1041 history entries. Patch by Jorgen Cederlof.
1040
1042
1041 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1043 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1042
1044
1043 * IPython/Extensions/ibrowse.py: Make cursor visible over
1045 * IPython/Extensions/ibrowse.py: Make cursor visible over
1044 non existing attributes.
1046 non existing attributes.
1045
1047
1046 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1048 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1047
1049
1048 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1050 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1049 error output of the running command doesn't mess up the screen.
1051 error output of the running command doesn't mess up the screen.
1050
1052
1051 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1053 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1052
1054
1053 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1055 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1054 argument. This sorts the items themselves.
1056 argument. This sorts the items themselves.
1055
1057
1056 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1058 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1057
1059
1058 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1060 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1059 Compile expression strings into code objects. This should speed
1061 Compile expression strings into code objects. This should speed
1060 up ifilter and friends somewhat.
1062 up ifilter and friends somewhat.
1061
1063
1062 2006-07-08 Ville Vainio <vivainio@gmail.com>
1064 2006-07-08 Ville Vainio <vivainio@gmail.com>
1063
1065
1064 * Magic.py: %cpaste now strips > from the beginning of lines
1066 * Magic.py: %cpaste now strips > from the beginning of lines
1065 to ease pasting quoted code from emails. Contributed by
1067 to ease pasting quoted code from emails. Contributed by
1066 Stefan van der Walt.
1068 Stefan van der Walt.
1067
1069
1068 2006-06-29 Ville Vainio <vivainio@gmail.com>
1070 2006-06-29 Ville Vainio <vivainio@gmail.com>
1069
1071
1070 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1072 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1071 mode, patch contributed by Darren Dale. NEEDS TESTING!
1073 mode, patch contributed by Darren Dale. NEEDS TESTING!
1072
1074
1073 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1075 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1074
1076
1075 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1077 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1076 a blue background. Fix fetching new display rows when the browser
1078 a blue background. Fix fetching new display rows when the browser
1077 scrolls more than a screenful (e.g. by using the goto command).
1079 scrolls more than a screenful (e.g. by using the goto command).
1078
1080
1079 2006-06-27 Ville Vainio <vivainio@gmail.com>
1081 2006-06-27 Ville Vainio <vivainio@gmail.com>
1080
1082
1081 * Magic.py (_inspect, _ofind) Apply David Huard's
1083 * Magic.py (_inspect, _ofind) Apply David Huard's
1082 patch for displaying the correct docstring for 'property'
1084 patch for displaying the correct docstring for 'property'
1083 attributes.
1085 attributes.
1084
1086
1085 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1087 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1086
1088
1087 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1089 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1088 commands into the methods implementing them.
1090 commands into the methods implementing them.
1089
1091
1090 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1092 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1091
1093
1092 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1094 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1093 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1095 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1094 autoindent support was authored by Jin Liu.
1096 autoindent support was authored by Jin Liu.
1095
1097
1096 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1098 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1097
1099
1098 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1100 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1099 for keymaps with a custom class that simplifies handling.
1101 for keymaps with a custom class that simplifies handling.
1100
1102
1101 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1103 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1102
1104
1103 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1105 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1104 resizing. This requires Python 2.5 to work.
1106 resizing. This requires Python 2.5 to work.
1105
1107
1106 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1108 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1107
1109
1108 * IPython/Extensions/ibrowse.py: Add two new commands to
1110 * IPython/Extensions/ibrowse.py: Add two new commands to
1109 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1111 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1110 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1112 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1111 attributes again. Remapped the help command to "?". Display
1113 attributes again. Remapped the help command to "?". Display
1112 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1114 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1113 as keys for the "home" and "end" commands. Add three new commands
1115 as keys for the "home" and "end" commands. Add three new commands
1114 to the input mode for "find" and friends: "delend" (CTRL-K)
1116 to the input mode for "find" and friends: "delend" (CTRL-K)
1115 deletes to the end of line. "incsearchup" searches upwards in the
1117 deletes to the end of line. "incsearchup" searches upwards in the
1116 command history for an input that starts with the text before the cursor.
1118 command history for an input that starts with the text before the cursor.
1117 "incsearchdown" does the same downwards. Removed a bogus mapping of
1119 "incsearchdown" does the same downwards. Removed a bogus mapping of
1118 the x key to "delete".
1120 the x key to "delete".
1119
1121
1120 2006-06-15 Ville Vainio <vivainio@gmail.com>
1122 2006-06-15 Ville Vainio <vivainio@gmail.com>
1121
1123
1122 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1124 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1123 used to create prompts dynamically, instead of the "old" way of
1125 used to create prompts dynamically, instead of the "old" way of
1124 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1126 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1125 way still works (it's invoked by the default hook), of course.
1127 way still works (it's invoked by the default hook), of course.
1126
1128
1127 * Prompts.py: added generate_output_prompt hook for altering output
1129 * Prompts.py: added generate_output_prompt hook for altering output
1128 prompt
1130 prompt
1129
1131
1130 * Release.py: Changed version string to 0.7.3.svn.
1132 * Release.py: Changed version string to 0.7.3.svn.
1131
1133
1132 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1134 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1133
1135
1134 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1136 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1135 the call to fetch() always tries to fetch enough data for at least one
1137 the call to fetch() always tries to fetch enough data for at least one
1136 full screen. This makes it possible to simply call moveto(0,0,True) in
1138 full screen. This makes it possible to simply call moveto(0,0,True) in
1137 the constructor. Fix typos and removed the obsolete goto attribute.
1139 the constructor. Fix typos and removed the obsolete goto attribute.
1138
1140
1139 2006-06-12 Ville Vainio <vivainio@gmail.com>
1141 2006-06-12 Ville Vainio <vivainio@gmail.com>
1140
1142
1141 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1143 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1142 allowing $variable interpolation within multiline statements,
1144 allowing $variable interpolation within multiline statements,
1143 though so far only with "sh" profile for a testing period.
1145 though so far only with "sh" profile for a testing period.
1144 The patch also enables splitting long commands with \ but it
1146 The patch also enables splitting long commands with \ but it
1145 doesn't work properly yet.
1147 doesn't work properly yet.
1146
1148
1147 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1149 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1148
1150
1149 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1151 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1150 input history and the position of the cursor in the input history for
1152 input history and the position of the cursor in the input history for
1151 the find, findbackwards and goto command.
1153 the find, findbackwards and goto command.
1152
1154
1153 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1155 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1154
1156
1155 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1157 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1156 implements the basic functionality of browser commands that require
1158 implements the basic functionality of browser commands that require
1157 input. Reimplement the goto, find and findbackwards commands as
1159 input. Reimplement the goto, find and findbackwards commands as
1158 subclasses of _CommandInput. Add an input history and keymaps to those
1160 subclasses of _CommandInput. Add an input history and keymaps to those
1159 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1161 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1160 execute commands.
1162 execute commands.
1161
1163
1162 2006-06-07 Ville Vainio <vivainio@gmail.com>
1164 2006-06-07 Ville Vainio <vivainio@gmail.com>
1163
1165
1164 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1166 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1165 running the batch files instead of leaving the session open.
1167 running the batch files instead of leaving the session open.
1166
1168
1167 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1169 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1168
1170
1169 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1171 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1170 the original fix was incomplete. Patch submitted by W. Maier.
1172 the original fix was incomplete. Patch submitted by W. Maier.
1171
1173
1172 2006-06-07 Ville Vainio <vivainio@gmail.com>
1174 2006-06-07 Ville Vainio <vivainio@gmail.com>
1173
1175
1174 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1176 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1175 Confirmation prompts can be supressed by 'quiet' option.
1177 Confirmation prompts can be supressed by 'quiet' option.
1176 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1178 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1177
1179
1178 2006-06-06 *** Released version 0.7.2
1180 2006-06-06 *** Released version 0.7.2
1179
1181
1180 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1182 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1181
1183
1182 * IPython/Release.py (version): Made 0.7.2 final for release.
1184 * IPython/Release.py (version): Made 0.7.2 final for release.
1183 Repo tagged and release cut.
1185 Repo tagged and release cut.
1184
1186
1185 2006-06-05 Ville Vainio <vivainio@gmail.com>
1187 2006-06-05 Ville Vainio <vivainio@gmail.com>
1186
1188
1187 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1189 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1188 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1190 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1189
1191
1190 * upgrade_dir.py: try import 'path' module a bit harder
1192 * upgrade_dir.py: try import 'path' module a bit harder
1191 (for %upgrade)
1193 (for %upgrade)
1192
1194
1193 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1195 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1194
1196
1195 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1197 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1196 instead of looping 20 times.
1198 instead of looping 20 times.
1197
1199
1198 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1200 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1199 correctly at initialization time. Bug reported by Krishna Mohan
1201 correctly at initialization time. Bug reported by Krishna Mohan
1200 Gundu <gkmohan-AT-gmail.com> on the user list.
1202 Gundu <gkmohan-AT-gmail.com> on the user list.
1201
1203
1202 * IPython/Release.py (version): Mark 0.7.2 version to start
1204 * IPython/Release.py (version): Mark 0.7.2 version to start
1203 testing for release on 06/06.
1205 testing for release on 06/06.
1204
1206
1205 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1207 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1206
1208
1207 * scripts/irunner: thin script interface so users don't have to
1209 * scripts/irunner: thin script interface so users don't have to
1208 find the module and call it as an executable, since modules rarely
1210 find the module and call it as an executable, since modules rarely
1209 live in people's PATH.
1211 live in people's PATH.
1210
1212
1211 * IPython/irunner.py (InteractiveRunner.__init__): added
1213 * IPython/irunner.py (InteractiveRunner.__init__): added
1212 delaybeforesend attribute to control delays with newer versions of
1214 delaybeforesend attribute to control delays with newer versions of
1213 pexpect. Thanks to detailed help from pexpect's author, Noah
1215 pexpect. Thanks to detailed help from pexpect's author, Noah
1214 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1216 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1215 correctly (it works in NoColor mode).
1217 correctly (it works in NoColor mode).
1216
1218
1217 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1219 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1218 SAGE list, from improper log() calls.
1220 SAGE list, from improper log() calls.
1219
1221
1220 2006-05-31 Ville Vainio <vivainio@gmail.com>
1222 2006-05-31 Ville Vainio <vivainio@gmail.com>
1221
1223
1222 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1224 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1223 with args in parens to work correctly with dirs that have spaces.
1225 with args in parens to work correctly with dirs that have spaces.
1224
1226
1225 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1227 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1226
1228
1227 * IPython/Logger.py (Logger.logstart): add option to log raw input
1229 * IPython/Logger.py (Logger.logstart): add option to log raw input
1228 instead of the processed one. A -r flag was added to the
1230 instead of the processed one. A -r flag was added to the
1229 %logstart magic used for controlling logging.
1231 %logstart magic used for controlling logging.
1230
1232
1231 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1233 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1232
1234
1233 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1235 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1234 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1236 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1235 recognize the option. After a bug report by Will Maier. This
1237 recognize the option. After a bug report by Will Maier. This
1236 closes #64 (will do it after confirmation from W. Maier).
1238 closes #64 (will do it after confirmation from W. Maier).
1237
1239
1238 * IPython/irunner.py: New module to run scripts as if manually
1240 * IPython/irunner.py: New module to run scripts as if manually
1239 typed into an interactive environment, based on pexpect. After a
1241 typed into an interactive environment, based on pexpect. After a
1240 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1242 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1241 ipython-user list. Simple unittests in the tests/ directory.
1243 ipython-user list. Simple unittests in the tests/ directory.
1242
1244
1243 * tools/release: add Will Maier, OpenBSD port maintainer, to
1245 * tools/release: add Will Maier, OpenBSD port maintainer, to
1244 recepients list. We are now officially part of the OpenBSD ports:
1246 recepients list. We are now officially part of the OpenBSD ports:
1245 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1247 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1246 work.
1248 work.
1247
1249
1248 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1250 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1249
1251
1250 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1252 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1251 so that it doesn't break tkinter apps.
1253 so that it doesn't break tkinter apps.
1252
1254
1253 * IPython/iplib.py (_prefilter): fix bug where aliases would
1255 * IPython/iplib.py (_prefilter): fix bug where aliases would
1254 shadow variables when autocall was fully off. Reported by SAGE
1256 shadow variables when autocall was fully off. Reported by SAGE
1255 author William Stein.
1257 author William Stein.
1256
1258
1257 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1259 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1258 at what detail level strings are computed when foo? is requested.
1260 at what detail level strings are computed when foo? is requested.
1259 This allows users to ask for example that the string form of an
1261 This allows users to ask for example that the string form of an
1260 object is only computed when foo?? is called, or even never, by
1262 object is only computed when foo?? is called, or even never, by
1261 setting the object_info_string_level >= 2 in the configuration
1263 setting the object_info_string_level >= 2 in the configuration
1262 file. This new option has been added and documented. After a
1264 file. This new option has been added and documented. After a
1263 request by SAGE to be able to control the printing of very large
1265 request by SAGE to be able to control the printing of very large
1264 objects more easily.
1266 objects more easily.
1265
1267
1266 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1268 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1267
1269
1268 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1270 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1269 from sys.argv, to be 100% consistent with how Python itself works
1271 from sys.argv, to be 100% consistent with how Python itself works
1270 (as seen for example with python -i file.py). After a bug report
1272 (as seen for example with python -i file.py). After a bug report
1271 by Jeffrey Collins.
1273 by Jeffrey Collins.
1272
1274
1273 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1275 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1274 nasty bug which was preventing custom namespaces with -pylab,
1276 nasty bug which was preventing custom namespaces with -pylab,
1275 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1277 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1276 compatibility (long gone from mpl).
1278 compatibility (long gone from mpl).
1277
1279
1278 * IPython/ipapi.py (make_session): name change: create->make. We
1280 * IPython/ipapi.py (make_session): name change: create->make. We
1279 use make in other places (ipmaker,...), it's shorter and easier to
1281 use make in other places (ipmaker,...), it's shorter and easier to
1280 type and say, etc. I'm trying to clean things before 0.7.2 so
1282 type and say, etc. I'm trying to clean things before 0.7.2 so
1281 that I can keep things stable wrt to ipapi in the chainsaw branch.
1283 that I can keep things stable wrt to ipapi in the chainsaw branch.
1282
1284
1283 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1285 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1284 python-mode recognizes our debugger mode. Add support for
1286 python-mode recognizes our debugger mode. Add support for
1285 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1287 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1286 <m.liu.jin-AT-gmail.com> originally written by
1288 <m.liu.jin-AT-gmail.com> originally written by
1287 doxgen-AT-newsmth.net (with minor modifications for xemacs
1289 doxgen-AT-newsmth.net (with minor modifications for xemacs
1288 compatibility)
1290 compatibility)
1289
1291
1290 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1292 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1291 tracebacks when walking the stack so that the stack tracking system
1293 tracebacks when walking the stack so that the stack tracking system
1292 in emacs' python-mode can identify the frames correctly.
1294 in emacs' python-mode can identify the frames correctly.
1293
1295
1294 * IPython/ipmaker.py (make_IPython): make the internal (and
1296 * IPython/ipmaker.py (make_IPython): make the internal (and
1295 default config) autoedit_syntax value false by default. Too many
1297 default config) autoedit_syntax value false by default. Too many
1296 users have complained to me (both on and off-list) about problems
1298 users have complained to me (both on and off-list) about problems
1297 with this option being on by default, so I'm making it default to
1299 with this option being on by default, so I'm making it default to
1298 off. It can still be enabled by anyone via the usual mechanisms.
1300 off. It can still be enabled by anyone via the usual mechanisms.
1299
1301
1300 * IPython/completer.py (Completer.attr_matches): add support for
1302 * IPython/completer.py (Completer.attr_matches): add support for
1301 PyCrust-style _getAttributeNames magic method. Patch contributed
1303 PyCrust-style _getAttributeNames magic method. Patch contributed
1302 by <mscott-AT-goldenspud.com>. Closes #50.
1304 by <mscott-AT-goldenspud.com>. Closes #50.
1303
1305
1304 * IPython/iplib.py (InteractiveShell.__init__): remove the
1306 * IPython/iplib.py (InteractiveShell.__init__): remove the
1305 deletion of exit/quit from __builtin__, which can break
1307 deletion of exit/quit from __builtin__, which can break
1306 third-party tools like the Zope debugging console. The
1308 third-party tools like the Zope debugging console. The
1307 %exit/%quit magics remain. In general, it's probably a good idea
1309 %exit/%quit magics remain. In general, it's probably a good idea
1308 not to delete anything from __builtin__, since we never know what
1310 not to delete anything from __builtin__, since we never know what
1309 that will break. In any case, python now (for 2.5) will support
1311 that will break. In any case, python now (for 2.5) will support
1310 'real' exit/quit, so this issue is moot. Closes #55.
1312 'real' exit/quit, so this issue is moot. Closes #55.
1311
1313
1312 * IPython/genutils.py (with_obj): rename the 'with' function to
1314 * IPython/genutils.py (with_obj): rename the 'with' function to
1313 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1315 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1314 becomes a language keyword. Closes #53.
1316 becomes a language keyword. Closes #53.
1315
1317
1316 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1318 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1317 __file__ attribute to this so it fools more things into thinking
1319 __file__ attribute to this so it fools more things into thinking
1318 it is a real module. Closes #59.
1320 it is a real module. Closes #59.
1319
1321
1320 * IPython/Magic.py (magic_edit): add -n option to open the editor
1322 * IPython/Magic.py (magic_edit): add -n option to open the editor
1321 at a specific line number. After a patch by Stefan van der Walt.
1323 at a specific line number. After a patch by Stefan van der Walt.
1322
1324
1323 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1325 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1324
1326
1325 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1327 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1326 reason the file could not be opened. After automatic crash
1328 reason the file could not be opened. After automatic crash
1327 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1329 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1328 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1330 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1329 (_should_recompile): Don't fire editor if using %bg, since there
1331 (_should_recompile): Don't fire editor if using %bg, since there
1330 is no file in the first place. From the same report as above.
1332 is no file in the first place. From the same report as above.
1331 (raw_input): protect against faulty third-party prefilters. After
1333 (raw_input): protect against faulty third-party prefilters. After
1332 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1334 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1333 while running under SAGE.
1335 while running under SAGE.
1334
1336
1335 2006-05-23 Ville Vainio <vivainio@gmail.com>
1337 2006-05-23 Ville Vainio <vivainio@gmail.com>
1336
1338
1337 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1339 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1338 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1340 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1339 now returns None (again), unless dummy is specifically allowed by
1341 now returns None (again), unless dummy is specifically allowed by
1340 ipapi.get(allow_dummy=True).
1342 ipapi.get(allow_dummy=True).
1341
1343
1342 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1344 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1343
1345
1344 * IPython: remove all 2.2-compatibility objects and hacks from
1346 * IPython: remove all 2.2-compatibility objects and hacks from
1345 everywhere, since we only support 2.3 at this point. Docs
1347 everywhere, since we only support 2.3 at this point. Docs
1346 updated.
1348 updated.
1347
1349
1348 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1350 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1349 Anything requiring extra validation can be turned into a Python
1351 Anything requiring extra validation can be turned into a Python
1350 property in the future. I used a property for the db one b/c
1352 property in the future. I used a property for the db one b/c
1351 there was a nasty circularity problem with the initialization
1353 there was a nasty circularity problem with the initialization
1352 order, which right now I don't have time to clean up.
1354 order, which right now I don't have time to clean up.
1353
1355
1354 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1356 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1355 another locking bug reported by Jorgen. I'm not 100% sure though,
1357 another locking bug reported by Jorgen. I'm not 100% sure though,
1356 so more testing is needed...
1358 so more testing is needed...
1357
1359
1358 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1360 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1359
1361
1360 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1362 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1361 local variables from any routine in user code (typically executed
1363 local variables from any routine in user code (typically executed
1362 with %run) directly into the interactive namespace. Very useful
1364 with %run) directly into the interactive namespace. Very useful
1363 when doing complex debugging.
1365 when doing complex debugging.
1364 (IPythonNotRunning): Changed the default None object to a dummy
1366 (IPythonNotRunning): Changed the default None object to a dummy
1365 whose attributes can be queried as well as called without
1367 whose attributes can be queried as well as called without
1366 exploding, to ease writing code which works transparently both in
1368 exploding, to ease writing code which works transparently both in
1367 and out of ipython and uses some of this API.
1369 and out of ipython and uses some of this API.
1368
1370
1369 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1371 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1370
1372
1371 * IPython/hooks.py (result_display): Fix the fact that our display
1373 * IPython/hooks.py (result_display): Fix the fact that our display
1372 hook was using str() instead of repr(), as the default python
1374 hook was using str() instead of repr(), as the default python
1373 console does. This had gone unnoticed b/c it only happened if
1375 console does. This had gone unnoticed b/c it only happened if
1374 %Pprint was off, but the inconsistency was there.
1376 %Pprint was off, but the inconsistency was there.
1375
1377
1376 2006-05-15 Ville Vainio <vivainio@gmail.com>
1378 2006-05-15 Ville Vainio <vivainio@gmail.com>
1377
1379
1378 * Oinspect.py: Only show docstring for nonexisting/binary files
1380 * Oinspect.py: Only show docstring for nonexisting/binary files
1379 when doing object??, closing ticket #62
1381 when doing object??, closing ticket #62
1380
1382
1381 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1383 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1382
1384
1383 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1385 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1384 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1386 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1385 was being released in a routine which hadn't checked if it had
1387 was being released in a routine which hadn't checked if it had
1386 been the one to acquire it.
1388 been the one to acquire it.
1387
1389
1388 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1390 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1389
1391
1390 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1392 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1391
1393
1392 2006-04-11 Ville Vainio <vivainio@gmail.com>
1394 2006-04-11 Ville Vainio <vivainio@gmail.com>
1393
1395
1394 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1396 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1395 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1397 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1396 prefilters, allowing stuff like magics and aliases in the file.
1398 prefilters, allowing stuff like magics and aliases in the file.
1397
1399
1398 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1400 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1399 added. Supported now are "%clear in" and "%clear out" (clear input and
1401 added. Supported now are "%clear in" and "%clear out" (clear input and
1400 output history, respectively). Also fixed CachedOutput.flush to
1402 output history, respectively). Also fixed CachedOutput.flush to
1401 properly flush the output cache.
1403 properly flush the output cache.
1402
1404
1403 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1405 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1404 half-success (and fail explicitly).
1406 half-success (and fail explicitly).
1405
1407
1406 2006-03-28 Ville Vainio <vivainio@gmail.com>
1408 2006-03-28 Ville Vainio <vivainio@gmail.com>
1407
1409
1408 * iplib.py: Fix quoting of aliases so that only argless ones
1410 * iplib.py: Fix quoting of aliases so that only argless ones
1409 are quoted
1411 are quoted
1410
1412
1411 2006-03-28 Ville Vainio <vivainio@gmail.com>
1413 2006-03-28 Ville Vainio <vivainio@gmail.com>
1412
1414
1413 * iplib.py: Quote aliases with spaces in the name.
1415 * iplib.py: Quote aliases with spaces in the name.
1414 "c:\program files\blah\bin" is now legal alias target.
1416 "c:\program files\blah\bin" is now legal alias target.
1415
1417
1416 * ext_rehashdir.py: Space no longer allowed as arg
1418 * ext_rehashdir.py: Space no longer allowed as arg
1417 separator, since space is legal in path names.
1419 separator, since space is legal in path names.
1418
1420
1419 2006-03-16 Ville Vainio <vivainio@gmail.com>
1421 2006-03-16 Ville Vainio <vivainio@gmail.com>
1420
1422
1421 * upgrade_dir.py: Take path.py from Extensions, correcting
1423 * upgrade_dir.py: Take path.py from Extensions, correcting
1422 %upgrade magic
1424 %upgrade magic
1423
1425
1424 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1426 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1425
1427
1426 * hooks.py: Only enclose editor binary in quotes if legal and
1428 * hooks.py: Only enclose editor binary in quotes if legal and
1427 necessary (space in the name, and is an existing file). Fixes a bug
1429 necessary (space in the name, and is an existing file). Fixes a bug
1428 reported by Zachary Pincus.
1430 reported by Zachary Pincus.
1429
1431
1430 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1432 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1431
1433
1432 * Manual: thanks to a tip on proper color handling for Emacs, by
1434 * Manual: thanks to a tip on proper color handling for Emacs, by
1433 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1435 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1434
1436
1435 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1437 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1436 by applying the provided patch. Thanks to Liu Jin
1438 by applying the provided patch. Thanks to Liu Jin
1437 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1439 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1438 XEmacs/Linux, I'm trusting the submitter that it actually helps
1440 XEmacs/Linux, I'm trusting the submitter that it actually helps
1439 under win32/GNU Emacs. Will revisit if any problems are reported.
1441 under win32/GNU Emacs. Will revisit if any problems are reported.
1440
1442
1441 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1443 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1442
1444
1443 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1445 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1444 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1446 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1445
1447
1446 2006-03-12 Ville Vainio <vivainio@gmail.com>
1448 2006-03-12 Ville Vainio <vivainio@gmail.com>
1447
1449
1448 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1450 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1449 Torsten Marek.
1451 Torsten Marek.
1450
1452
1451 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1453 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1452
1454
1453 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1455 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1454 line ranges works again.
1456 line ranges works again.
1455
1457
1456 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1458 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1457
1459
1458 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1460 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1459 and friends, after a discussion with Zach Pincus on ipython-user.
1461 and friends, after a discussion with Zach Pincus on ipython-user.
1460 I'm not 100% sure, but after thinking about it quite a bit, it may
1462 I'm not 100% sure, but after thinking about it quite a bit, it may
1461 be OK. Testing with the multithreaded shells didn't reveal any
1463 be OK. Testing with the multithreaded shells didn't reveal any
1462 problems, but let's keep an eye out.
1464 problems, but let's keep an eye out.
1463
1465
1464 In the process, I fixed a few things which were calling
1466 In the process, I fixed a few things which were calling
1465 self.InteractiveTB() directly (like safe_execfile), which is a
1467 self.InteractiveTB() directly (like safe_execfile), which is a
1466 mistake: ALL exception reporting should be done by calling
1468 mistake: ALL exception reporting should be done by calling
1467 self.showtraceback(), which handles state and tab-completion and
1469 self.showtraceback(), which handles state and tab-completion and
1468 more.
1470 more.
1469
1471
1470 2006-03-01 Ville Vainio <vivainio@gmail.com>
1472 2006-03-01 Ville Vainio <vivainio@gmail.com>
1471
1473
1472 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1474 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1473 To use, do "from ipipe import *".
1475 To use, do "from ipipe import *".
1474
1476
1475 2006-02-24 Ville Vainio <vivainio@gmail.com>
1477 2006-02-24 Ville Vainio <vivainio@gmail.com>
1476
1478
1477 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1479 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1478 "cleanly" and safely than the older upgrade mechanism.
1480 "cleanly" and safely than the older upgrade mechanism.
1479
1481
1480 2006-02-21 Ville Vainio <vivainio@gmail.com>
1482 2006-02-21 Ville Vainio <vivainio@gmail.com>
1481
1483
1482 * Magic.py: %save works again.
1484 * Magic.py: %save works again.
1483
1485
1484 2006-02-15 Ville Vainio <vivainio@gmail.com>
1486 2006-02-15 Ville Vainio <vivainio@gmail.com>
1485
1487
1486 * Magic.py: %Pprint works again
1488 * Magic.py: %Pprint works again
1487
1489
1488 * Extensions/ipy_sane_defaults.py: Provide everything provided
1490 * Extensions/ipy_sane_defaults.py: Provide everything provided
1489 in default ipythonrc, to make it possible to have a completely empty
1491 in default ipythonrc, to make it possible to have a completely empty
1490 ipythonrc (and thus completely rc-file free configuration)
1492 ipythonrc (and thus completely rc-file free configuration)
1491
1493
1492 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1494 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1493
1495
1494 * IPython/hooks.py (editor): quote the call to the editor command,
1496 * IPython/hooks.py (editor): quote the call to the editor command,
1495 to allow commands with spaces in them. Problem noted by watching
1497 to allow commands with spaces in them. Problem noted by watching
1496 Ian Oswald's video about textpad under win32 at
1498 Ian Oswald's video about textpad under win32 at
1497 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1499 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1498
1500
1499 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1501 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1500 describing magics (we haven't used @ for a loong time).
1502 describing magics (we haven't used @ for a loong time).
1501
1503
1502 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1504 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1503 contributed by marienz to close
1505 contributed by marienz to close
1504 http://www.scipy.net/roundup/ipython/issue53.
1506 http://www.scipy.net/roundup/ipython/issue53.
1505
1507
1506 2006-02-10 Ville Vainio <vivainio@gmail.com>
1508 2006-02-10 Ville Vainio <vivainio@gmail.com>
1507
1509
1508 * genutils.py: getoutput now works in win32 too
1510 * genutils.py: getoutput now works in win32 too
1509
1511
1510 * completer.py: alias and magic completion only invoked
1512 * completer.py: alias and magic completion only invoked
1511 at the first "item" in the line, to avoid "cd %store"
1513 at the first "item" in the line, to avoid "cd %store"
1512 nonsense.
1514 nonsense.
1513
1515
1514 2006-02-09 Ville Vainio <vivainio@gmail.com>
1516 2006-02-09 Ville Vainio <vivainio@gmail.com>
1515
1517
1516 * test/*: Added a unit testing framework (finally).
1518 * test/*: Added a unit testing framework (finally).
1517 '%run runtests.py' to run test_*.
1519 '%run runtests.py' to run test_*.
1518
1520
1519 * ipapi.py: Exposed runlines and set_custom_exc
1521 * ipapi.py: Exposed runlines and set_custom_exc
1520
1522
1521 2006-02-07 Ville Vainio <vivainio@gmail.com>
1523 2006-02-07 Ville Vainio <vivainio@gmail.com>
1522
1524
1523 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1525 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1524 instead use "f(1 2)" as before.
1526 instead use "f(1 2)" as before.
1525
1527
1526 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1528 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1527
1529
1528 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1530 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1529 facilities, for demos processed by the IPython input filter
1531 facilities, for demos processed by the IPython input filter
1530 (IPythonDemo), and for running a script one-line-at-a-time as a
1532 (IPythonDemo), and for running a script one-line-at-a-time as a
1531 demo, both for pure Python (LineDemo) and for IPython-processed
1533 demo, both for pure Python (LineDemo) and for IPython-processed
1532 input (IPythonLineDemo). After a request by Dave Kohel, from the
1534 input (IPythonLineDemo). After a request by Dave Kohel, from the
1533 SAGE team.
1535 SAGE team.
1534 (Demo.edit): added an edit() method to the demo objects, to edit
1536 (Demo.edit): added an edit() method to the demo objects, to edit
1535 the in-memory copy of the last executed block.
1537 the in-memory copy of the last executed block.
1536
1538
1537 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1539 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1538 processing to %edit, %macro and %save. These commands can now be
1540 processing to %edit, %macro and %save. These commands can now be
1539 invoked on the unprocessed input as it was typed by the user
1541 invoked on the unprocessed input as it was typed by the user
1540 (without any prefilters applied). After requests by the SAGE team
1542 (without any prefilters applied). After requests by the SAGE team
1541 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1543 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1542
1544
1543 2006-02-01 Ville Vainio <vivainio@gmail.com>
1545 2006-02-01 Ville Vainio <vivainio@gmail.com>
1544
1546
1545 * setup.py, eggsetup.py: easy_install ipython==dev works
1547 * setup.py, eggsetup.py: easy_install ipython==dev works
1546 correctly now (on Linux)
1548 correctly now (on Linux)
1547
1549
1548 * ipy_user_conf,ipmaker: user config changes, removed spurious
1550 * ipy_user_conf,ipmaker: user config changes, removed spurious
1549 warnings
1551 warnings
1550
1552
1551 * iplib: if rc.banner is string, use it as is.
1553 * iplib: if rc.banner is string, use it as is.
1552
1554
1553 * Magic: %pycat accepts a string argument and pages it's contents.
1555 * Magic: %pycat accepts a string argument and pages it's contents.
1554
1556
1555
1557
1556 2006-01-30 Ville Vainio <vivainio@gmail.com>
1558 2006-01-30 Ville Vainio <vivainio@gmail.com>
1557
1559
1558 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1560 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1559 Now %store and bookmarks work through PickleShare, meaning that
1561 Now %store and bookmarks work through PickleShare, meaning that
1560 concurrent access is possible and all ipython sessions see the
1562 concurrent access is possible and all ipython sessions see the
1561 same database situation all the time, instead of snapshot of
1563 same database situation all the time, instead of snapshot of
1562 the situation when the session was started. Hence, %bookmark
1564 the situation when the session was started. Hence, %bookmark
1563 results are immediately accessible from othes sessions. The database
1565 results are immediately accessible from othes sessions. The database
1564 is also available for use by user extensions. See:
1566 is also available for use by user extensions. See:
1565 http://www.python.org/pypi/pickleshare
1567 http://www.python.org/pypi/pickleshare
1566
1568
1567 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1569 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1568
1570
1569 * aliases can now be %store'd
1571 * aliases can now be %store'd
1570
1572
1571 * path.py moved to Extensions so that pickleshare does not need
1573 * path.py moved to Extensions so that pickleshare does not need
1572 IPython-specific import. Extensions added to pythonpath right
1574 IPython-specific import. Extensions added to pythonpath right
1573 at __init__.
1575 at __init__.
1574
1576
1575 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1577 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1576 called with _ip.system and the pre-transformed command string.
1578 called with _ip.system and the pre-transformed command string.
1577
1579
1578 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1580 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1579
1581
1580 * IPython/iplib.py (interact): Fix that we were not catching
1582 * IPython/iplib.py (interact): Fix that we were not catching
1581 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1583 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1582 logic here had to change, but it's fixed now.
1584 logic here had to change, but it's fixed now.
1583
1585
1584 2006-01-29 Ville Vainio <vivainio@gmail.com>
1586 2006-01-29 Ville Vainio <vivainio@gmail.com>
1585
1587
1586 * iplib.py: Try to import pyreadline on Windows.
1588 * iplib.py: Try to import pyreadline on Windows.
1587
1589
1588 2006-01-27 Ville Vainio <vivainio@gmail.com>
1590 2006-01-27 Ville Vainio <vivainio@gmail.com>
1589
1591
1590 * iplib.py: Expose ipapi as _ip in builtin namespace.
1592 * iplib.py: Expose ipapi as _ip in builtin namespace.
1591 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1593 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1592 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1594 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1593 syntax now produce _ip.* variant of the commands.
1595 syntax now produce _ip.* variant of the commands.
1594
1596
1595 * "_ip.options().autoedit_syntax = 2" automatically throws
1597 * "_ip.options().autoedit_syntax = 2" automatically throws
1596 user to editor for syntax error correction without prompting.
1598 user to editor for syntax error correction without prompting.
1597
1599
1598 2006-01-27 Ville Vainio <vivainio@gmail.com>
1600 2006-01-27 Ville Vainio <vivainio@gmail.com>
1599
1601
1600 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1602 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1601 'ipython' at argv[0]) executed through command line.
1603 'ipython' at argv[0]) executed through command line.
1602 NOTE: this DEPRECATES calling ipython with multiple scripts
1604 NOTE: this DEPRECATES calling ipython with multiple scripts
1603 ("ipython a.py b.py c.py")
1605 ("ipython a.py b.py c.py")
1604
1606
1605 * iplib.py, hooks.py: Added configurable input prefilter,
1607 * iplib.py, hooks.py: Added configurable input prefilter,
1606 named 'input_prefilter'. See ext_rescapture.py for example
1608 named 'input_prefilter'. See ext_rescapture.py for example
1607 usage.
1609 usage.
1608
1610
1609 * ext_rescapture.py, Magic.py: Better system command output capture
1611 * ext_rescapture.py, Magic.py: Better system command output capture
1610 through 'var = !ls' (deprecates user-visible %sc). Same notation
1612 through 'var = !ls' (deprecates user-visible %sc). Same notation
1611 applies for magics, 'var = %alias' assigns alias list to var.
1613 applies for magics, 'var = %alias' assigns alias list to var.
1612
1614
1613 * ipapi.py: added meta() for accessing extension-usable data store.
1615 * ipapi.py: added meta() for accessing extension-usable data store.
1614
1616
1615 * iplib.py: added InteractiveShell.getapi(). New magics should be
1617 * iplib.py: added InteractiveShell.getapi(). New magics should be
1616 written doing self.getapi() instead of using the shell directly.
1618 written doing self.getapi() instead of using the shell directly.
1617
1619
1618 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1620 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1619 %store foo >> ~/myfoo.txt to store variables to files (in clean
1621 %store foo >> ~/myfoo.txt to store variables to files (in clean
1620 textual form, not a restorable pickle).
1622 textual form, not a restorable pickle).
1621
1623
1622 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1624 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1623
1625
1624 * usage.py, Magic.py: added %quickref
1626 * usage.py, Magic.py: added %quickref
1625
1627
1626 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1628 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1627
1629
1628 * GetoptErrors when invoking magics etc. with wrong args
1630 * GetoptErrors when invoking magics etc. with wrong args
1629 are now more helpful:
1631 are now more helpful:
1630 GetoptError: option -l not recognized (allowed: "qb" )
1632 GetoptError: option -l not recognized (allowed: "qb" )
1631
1633
1632 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1634 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1633
1635
1634 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1636 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1635 computationally intensive blocks don't appear to stall the demo.
1637 computationally intensive blocks don't appear to stall the demo.
1636
1638
1637 2006-01-24 Ville Vainio <vivainio@gmail.com>
1639 2006-01-24 Ville Vainio <vivainio@gmail.com>
1638
1640
1639 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1641 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1640 value to manipulate resulting history entry.
1642 value to manipulate resulting history entry.
1641
1643
1642 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1644 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1643 to instance methods of IPApi class, to make extending an embedded
1645 to instance methods of IPApi class, to make extending an embedded
1644 IPython feasible. See ext_rehashdir.py for example usage.
1646 IPython feasible. See ext_rehashdir.py for example usage.
1645
1647
1646 * Merged 1071-1076 from branches/0.7.1
1648 * Merged 1071-1076 from branches/0.7.1
1647
1649
1648
1650
1649 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1651 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1650
1652
1651 * tools/release (daystamp): Fix build tools to use the new
1653 * tools/release (daystamp): Fix build tools to use the new
1652 eggsetup.py script to build lightweight eggs.
1654 eggsetup.py script to build lightweight eggs.
1653
1655
1654 * Applied changesets 1062 and 1064 before 0.7.1 release.
1656 * Applied changesets 1062 and 1064 before 0.7.1 release.
1655
1657
1656 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1658 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1657 see the raw input history (without conversions like %ls ->
1659 see the raw input history (without conversions like %ls ->
1658 ipmagic("ls")). After a request from W. Stein, SAGE
1660 ipmagic("ls")). After a request from W. Stein, SAGE
1659 (http://modular.ucsd.edu/sage) developer. This information is
1661 (http://modular.ucsd.edu/sage) developer. This information is
1660 stored in the input_hist_raw attribute of the IPython instance, so
1662 stored in the input_hist_raw attribute of the IPython instance, so
1661 developers can access it if needed (it's an InputList instance).
1663 developers can access it if needed (it's an InputList instance).
1662
1664
1663 * Versionstring = 0.7.2.svn
1665 * Versionstring = 0.7.2.svn
1664
1666
1665 * eggsetup.py: A separate script for constructing eggs, creates
1667 * eggsetup.py: A separate script for constructing eggs, creates
1666 proper launch scripts even on Windows (an .exe file in
1668 proper launch scripts even on Windows (an .exe file in
1667 \python24\scripts).
1669 \python24\scripts).
1668
1670
1669 * ipapi.py: launch_new_instance, launch entry point needed for the
1671 * ipapi.py: launch_new_instance, launch entry point needed for the
1670 egg.
1672 egg.
1671
1673
1672 2006-01-23 Ville Vainio <vivainio@gmail.com>
1674 2006-01-23 Ville Vainio <vivainio@gmail.com>
1673
1675
1674 * Added %cpaste magic for pasting python code
1676 * Added %cpaste magic for pasting python code
1675
1677
1676 2006-01-22 Ville Vainio <vivainio@gmail.com>
1678 2006-01-22 Ville Vainio <vivainio@gmail.com>
1677
1679
1678 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1680 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1679
1681
1680 * Versionstring = 0.7.2.svn
1682 * Versionstring = 0.7.2.svn
1681
1683
1682 * eggsetup.py: A separate script for constructing eggs, creates
1684 * eggsetup.py: A separate script for constructing eggs, creates
1683 proper launch scripts even on Windows (an .exe file in
1685 proper launch scripts even on Windows (an .exe file in
1684 \python24\scripts).
1686 \python24\scripts).
1685
1687
1686 * ipapi.py: launch_new_instance, launch entry point needed for the
1688 * ipapi.py: launch_new_instance, launch entry point needed for the
1687 egg.
1689 egg.
1688
1690
1689 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1691 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1690
1692
1691 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1693 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1692 %pfile foo would print the file for foo even if it was a binary.
1694 %pfile foo would print the file for foo even if it was a binary.
1693 Now, extensions '.so' and '.dll' are skipped.
1695 Now, extensions '.so' and '.dll' are skipped.
1694
1696
1695 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1697 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1696 bug, where macros would fail in all threaded modes. I'm not 100%
1698 bug, where macros would fail in all threaded modes. I'm not 100%
1697 sure, so I'm going to put out an rc instead of making a release
1699 sure, so I'm going to put out an rc instead of making a release
1698 today, and wait for feedback for at least a few days.
1700 today, and wait for feedback for at least a few days.
1699
1701
1700 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1702 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1701 it...) the handling of pasting external code with autoindent on.
1703 it...) the handling of pasting external code with autoindent on.
1702 To get out of a multiline input, the rule will appear for most
1704 To get out of a multiline input, the rule will appear for most
1703 users unchanged: two blank lines or change the indent level
1705 users unchanged: two blank lines or change the indent level
1704 proposed by IPython. But there is a twist now: you can
1706 proposed by IPython. But there is a twist now: you can
1705 add/subtract only *one or two spaces*. If you add/subtract three
1707 add/subtract only *one or two spaces*. If you add/subtract three
1706 or more (unless you completely delete the line), IPython will
1708 or more (unless you completely delete the line), IPython will
1707 accept that line, and you'll need to enter a second one of pure
1709 accept that line, and you'll need to enter a second one of pure
1708 whitespace. I know it sounds complicated, but I can't find a
1710 whitespace. I know it sounds complicated, but I can't find a
1709 different solution that covers all the cases, with the right
1711 different solution that covers all the cases, with the right
1710 heuristics. Hopefully in actual use, nobody will really notice
1712 heuristics. Hopefully in actual use, nobody will really notice
1711 all these strange rules and things will 'just work'.
1713 all these strange rules and things will 'just work'.
1712
1714
1713 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1715 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1714
1716
1715 * IPython/iplib.py (interact): catch exceptions which can be
1717 * IPython/iplib.py (interact): catch exceptions which can be
1716 triggered asynchronously by signal handlers. Thanks to an
1718 triggered asynchronously by signal handlers. Thanks to an
1717 automatic crash report, submitted by Colin Kingsley
1719 automatic crash report, submitted by Colin Kingsley
1718 <tercel-AT-gentoo.org>.
1720 <tercel-AT-gentoo.org>.
1719
1721
1720 2006-01-20 Ville Vainio <vivainio@gmail.com>
1722 2006-01-20 Ville Vainio <vivainio@gmail.com>
1721
1723
1722 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1724 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1723 (%rehashdir, very useful, try it out) of how to extend ipython
1725 (%rehashdir, very useful, try it out) of how to extend ipython
1724 with new magics. Also added Extensions dir to pythonpath to make
1726 with new magics. Also added Extensions dir to pythonpath to make
1725 importing extensions easy.
1727 importing extensions easy.
1726
1728
1727 * %store now complains when trying to store interactively declared
1729 * %store now complains when trying to store interactively declared
1728 classes / instances of those classes.
1730 classes / instances of those classes.
1729
1731
1730 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1732 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1731 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1733 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1732 if they exist, and ipy_user_conf.py with some defaults is created for
1734 if they exist, and ipy_user_conf.py with some defaults is created for
1733 the user.
1735 the user.
1734
1736
1735 * Startup rehashing done by the config file, not InterpreterExec.
1737 * Startup rehashing done by the config file, not InterpreterExec.
1736 This means system commands are available even without selecting the
1738 This means system commands are available even without selecting the
1737 pysh profile. It's the sensible default after all.
1739 pysh profile. It's the sensible default after all.
1738
1740
1739 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1741 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1740
1742
1741 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1743 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1742 multiline code with autoindent on working. But I am really not
1744 multiline code with autoindent on working. But I am really not
1743 sure, so this needs more testing. Will commit a debug-enabled
1745 sure, so this needs more testing. Will commit a debug-enabled
1744 version for now, while I test it some more, so that Ville and
1746 version for now, while I test it some more, so that Ville and
1745 others may also catch any problems. Also made
1747 others may also catch any problems. Also made
1746 self.indent_current_str() a method, to ensure that there's no
1748 self.indent_current_str() a method, to ensure that there's no
1747 chance of the indent space count and the corresponding string
1749 chance of the indent space count and the corresponding string
1748 falling out of sync. All code needing the string should just call
1750 falling out of sync. All code needing the string should just call
1749 the method.
1751 the method.
1750
1752
1751 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1753 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1752
1754
1753 * IPython/Magic.py (magic_edit): fix check for when users don't
1755 * IPython/Magic.py (magic_edit): fix check for when users don't
1754 save their output files, the try/except was in the wrong section.
1756 save their output files, the try/except was in the wrong section.
1755
1757
1756 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1758 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1757
1759
1758 * IPython/Magic.py (magic_run): fix __file__ global missing from
1760 * IPython/Magic.py (magic_run): fix __file__ global missing from
1759 script's namespace when executed via %run. After a report by
1761 script's namespace when executed via %run. After a report by
1760 Vivian.
1762 Vivian.
1761
1763
1762 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1764 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1763 when using python 2.4. The parent constructor changed in 2.4, and
1765 when using python 2.4. The parent constructor changed in 2.4, and
1764 we need to track it directly (we can't call it, as it messes up
1766 we need to track it directly (we can't call it, as it messes up
1765 readline and tab-completion inside our pdb would stop working).
1767 readline and tab-completion inside our pdb would stop working).
1766 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1768 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1767
1769
1768 2006-01-16 Ville Vainio <vivainio@gmail.com>
1770 2006-01-16 Ville Vainio <vivainio@gmail.com>
1769
1771
1770 * Ipython/magic.py: Reverted back to old %edit functionality
1772 * Ipython/magic.py: Reverted back to old %edit functionality
1771 that returns file contents on exit.
1773 that returns file contents on exit.
1772
1774
1773 * IPython/path.py: Added Jason Orendorff's "path" module to
1775 * IPython/path.py: Added Jason Orendorff's "path" module to
1774 IPython tree, http://www.jorendorff.com/articles/python/path/.
1776 IPython tree, http://www.jorendorff.com/articles/python/path/.
1775 You can get path objects conveniently through %sc, and !!, e.g.:
1777 You can get path objects conveniently through %sc, and !!, e.g.:
1776 sc files=ls
1778 sc files=ls
1777 for p in files.paths: # or files.p
1779 for p in files.paths: # or files.p
1778 print p,p.mtime
1780 print p,p.mtime
1779
1781
1780 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1782 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1781 now work again without considering the exclusion regexp -
1783 now work again without considering the exclusion regexp -
1782 hence, things like ',foo my/path' turn to 'foo("my/path")'
1784 hence, things like ',foo my/path' turn to 'foo("my/path")'
1783 instead of syntax error.
1785 instead of syntax error.
1784
1786
1785
1787
1786 2006-01-14 Ville Vainio <vivainio@gmail.com>
1788 2006-01-14 Ville Vainio <vivainio@gmail.com>
1787
1789
1788 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1790 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1789 ipapi decorators for python 2.4 users, options() provides access to rc
1791 ipapi decorators for python 2.4 users, options() provides access to rc
1790 data.
1792 data.
1791
1793
1792 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1794 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1793 as path separators (even on Linux ;-). Space character after
1795 as path separators (even on Linux ;-). Space character after
1794 backslash (as yielded by tab completer) is still space;
1796 backslash (as yielded by tab completer) is still space;
1795 "%cd long\ name" works as expected.
1797 "%cd long\ name" works as expected.
1796
1798
1797 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1799 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1798 as "chain of command", with priority. API stays the same,
1800 as "chain of command", with priority. API stays the same,
1799 TryNext exception raised by a hook function signals that
1801 TryNext exception raised by a hook function signals that
1800 current hook failed and next hook should try handling it, as
1802 current hook failed and next hook should try handling it, as
1801 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1803 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1802 requested configurable display hook, which is now implemented.
1804 requested configurable display hook, which is now implemented.
1803
1805
1804 2006-01-13 Ville Vainio <vivainio@gmail.com>
1806 2006-01-13 Ville Vainio <vivainio@gmail.com>
1805
1807
1806 * IPython/platutils*.py: platform specific utility functions,
1808 * IPython/platutils*.py: platform specific utility functions,
1807 so far only set_term_title is implemented (change terminal
1809 so far only set_term_title is implemented (change terminal
1808 label in windowing systems). %cd now changes the title to
1810 label in windowing systems). %cd now changes the title to
1809 current dir.
1811 current dir.
1810
1812
1811 * IPython/Release.py: Added myself to "authors" list,
1813 * IPython/Release.py: Added myself to "authors" list,
1812 had to create new files.
1814 had to create new files.
1813
1815
1814 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1816 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1815 shell escape; not a known bug but had potential to be one in the
1817 shell escape; not a known bug but had potential to be one in the
1816 future.
1818 future.
1817
1819
1818 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1820 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1819 extension API for IPython! See the module for usage example. Fix
1821 extension API for IPython! See the module for usage example. Fix
1820 OInspect for docstring-less magic functions.
1822 OInspect for docstring-less magic functions.
1821
1823
1822
1824
1823 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1825 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1824
1826
1825 * IPython/iplib.py (raw_input): temporarily deactivate all
1827 * IPython/iplib.py (raw_input): temporarily deactivate all
1826 attempts at allowing pasting of code with autoindent on. It
1828 attempts at allowing pasting of code with autoindent on. It
1827 introduced bugs (reported by Prabhu) and I can't seem to find a
1829 introduced bugs (reported by Prabhu) and I can't seem to find a
1828 robust combination which works in all cases. Will have to revisit
1830 robust combination which works in all cases. Will have to revisit
1829 later.
1831 later.
1830
1832
1831 * IPython/genutils.py: remove isspace() function. We've dropped
1833 * IPython/genutils.py: remove isspace() function. We've dropped
1832 2.2 compatibility, so it's OK to use the string method.
1834 2.2 compatibility, so it's OK to use the string method.
1833
1835
1834 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1836 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1835
1837
1836 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1838 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1837 matching what NOT to autocall on, to include all python binary
1839 matching what NOT to autocall on, to include all python binary
1838 operators (including things like 'and', 'or', 'is' and 'in').
1840 operators (including things like 'and', 'or', 'is' and 'in').
1839 Prompted by a bug report on 'foo & bar', but I realized we had
1841 Prompted by a bug report on 'foo & bar', but I realized we had
1840 many more potential bug cases with other operators. The regexp is
1842 many more potential bug cases with other operators. The regexp is
1841 self.re_exclude_auto, it's fairly commented.
1843 self.re_exclude_auto, it's fairly commented.
1842
1844
1843 2006-01-12 Ville Vainio <vivainio@gmail.com>
1845 2006-01-12 Ville Vainio <vivainio@gmail.com>
1844
1846
1845 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1847 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1846 Prettified and hardened string/backslash quoting with ipsystem(),
1848 Prettified and hardened string/backslash quoting with ipsystem(),
1847 ipalias() and ipmagic(). Now even \ characters are passed to
1849 ipalias() and ipmagic(). Now even \ characters are passed to
1848 %magics, !shell escapes and aliases exactly as they are in the
1850 %magics, !shell escapes and aliases exactly as they are in the
1849 ipython command line. Should improve backslash experience,
1851 ipython command line. Should improve backslash experience,
1850 particularly in Windows (path delimiter for some commands that
1852 particularly in Windows (path delimiter for some commands that
1851 won't understand '/'), but Unix benefits as well (regexps). %cd
1853 won't understand '/'), but Unix benefits as well (regexps). %cd
1852 magic still doesn't support backslash path delimiters, though. Also
1854 magic still doesn't support backslash path delimiters, though. Also
1853 deleted all pretense of supporting multiline command strings in
1855 deleted all pretense of supporting multiline command strings in
1854 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1856 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1855
1857
1856 * doc/build_doc_instructions.txt added. Documentation on how to
1858 * doc/build_doc_instructions.txt added. Documentation on how to
1857 use doc/update_manual.py, added yesterday. Both files contributed
1859 use doc/update_manual.py, added yesterday. Both files contributed
1858 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1860 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1859 doc/*.sh for deprecation at a later date.
1861 doc/*.sh for deprecation at a later date.
1860
1862
1861 * /ipython.py Added ipython.py to root directory for
1863 * /ipython.py Added ipython.py to root directory for
1862 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1864 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1863 ipython.py) and development convenience (no need to keep doing
1865 ipython.py) and development convenience (no need to keep doing
1864 "setup.py install" between changes).
1866 "setup.py install" between changes).
1865
1867
1866 * Made ! and !! shell escapes work (again) in multiline expressions:
1868 * Made ! and !! shell escapes work (again) in multiline expressions:
1867 if 1:
1869 if 1:
1868 !ls
1870 !ls
1869 !!ls
1871 !!ls
1870
1872
1871 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1873 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1872
1874
1873 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1875 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1874 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1876 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1875 module in case-insensitive installation. Was causing crashes
1877 module in case-insensitive installation. Was causing crashes
1876 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1878 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1877
1879
1878 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1880 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1879 <marienz-AT-gentoo.org>, closes
1881 <marienz-AT-gentoo.org>, closes
1880 http://www.scipy.net/roundup/ipython/issue51.
1882 http://www.scipy.net/roundup/ipython/issue51.
1881
1883
1882 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1884 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1883
1885
1884 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1886 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1885 problem of excessive CPU usage under *nix and keyboard lag under
1887 problem of excessive CPU usage under *nix and keyboard lag under
1886 win32.
1888 win32.
1887
1889
1888 2006-01-10 *** Released version 0.7.0
1890 2006-01-10 *** Released version 0.7.0
1889
1891
1890 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1892 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1891
1893
1892 * IPython/Release.py (revision): tag version number to 0.7.0,
1894 * IPython/Release.py (revision): tag version number to 0.7.0,
1893 ready for release.
1895 ready for release.
1894
1896
1895 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1897 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1896 it informs the user of the name of the temp. file used. This can
1898 it informs the user of the name of the temp. file used. This can
1897 help if you decide later to reuse that same file, so you know
1899 help if you decide later to reuse that same file, so you know
1898 where to copy the info from.
1900 where to copy the info from.
1899
1901
1900 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1902 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1901
1903
1902 * setup_bdist_egg.py: little script to build an egg. Added
1904 * setup_bdist_egg.py: little script to build an egg. Added
1903 support in the release tools as well.
1905 support in the release tools as well.
1904
1906
1905 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1907 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1906
1908
1907 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1909 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1908 version selection (new -wxversion command line and ipythonrc
1910 version selection (new -wxversion command line and ipythonrc
1909 parameter). Patch contributed by Arnd Baecker
1911 parameter). Patch contributed by Arnd Baecker
1910 <arnd.baecker-AT-web.de>.
1912 <arnd.baecker-AT-web.de>.
1911
1913
1912 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1914 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1913 embedded instances, for variables defined at the interactive
1915 embedded instances, for variables defined at the interactive
1914 prompt of the embedded ipython. Reported by Arnd.
1916 prompt of the embedded ipython. Reported by Arnd.
1915
1917
1916 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1918 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1917 it can be used as a (stateful) toggle, or with a direct parameter.
1919 it can be used as a (stateful) toggle, or with a direct parameter.
1918
1920
1919 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1921 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1920 could be triggered in certain cases and cause the traceback
1922 could be triggered in certain cases and cause the traceback
1921 printer not to work.
1923 printer not to work.
1922
1924
1923 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1925 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1924
1926
1925 * IPython/iplib.py (_should_recompile): Small fix, closes
1927 * IPython/iplib.py (_should_recompile): Small fix, closes
1926 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1928 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1927
1929
1928 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1930 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1929
1931
1930 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1932 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1931 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1933 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1932 Moad for help with tracking it down.
1934 Moad for help with tracking it down.
1933
1935
1934 * IPython/iplib.py (handle_auto): fix autocall handling for
1936 * IPython/iplib.py (handle_auto): fix autocall handling for
1935 objects which support BOTH __getitem__ and __call__ (so that f [x]
1937 objects which support BOTH __getitem__ and __call__ (so that f [x]
1936 is left alone, instead of becoming f([x]) automatically).
1938 is left alone, instead of becoming f([x]) automatically).
1937
1939
1938 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1940 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1939 Ville's patch.
1941 Ville's patch.
1940
1942
1941 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1943 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1942
1944
1943 * IPython/iplib.py (handle_auto): changed autocall semantics to
1945 * IPython/iplib.py (handle_auto): changed autocall semantics to
1944 include 'smart' mode, where the autocall transformation is NOT
1946 include 'smart' mode, where the autocall transformation is NOT
1945 applied if there are no arguments on the line. This allows you to
1947 applied if there are no arguments on the line. This allows you to
1946 just type 'foo' if foo is a callable to see its internal form,
1948 just type 'foo' if foo is a callable to see its internal form,
1947 instead of having it called with no arguments (typically a
1949 instead of having it called with no arguments (typically a
1948 mistake). The old 'full' autocall still exists: for that, you
1950 mistake). The old 'full' autocall still exists: for that, you
1949 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1951 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1950
1952
1951 * IPython/completer.py (Completer.attr_matches): add
1953 * IPython/completer.py (Completer.attr_matches): add
1952 tab-completion support for Enthoughts' traits. After a report by
1954 tab-completion support for Enthoughts' traits. After a report by
1953 Arnd and a patch by Prabhu.
1955 Arnd and a patch by Prabhu.
1954
1956
1955 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1957 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1956
1958
1957 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1959 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1958 Schmolck's patch to fix inspect.getinnerframes().
1960 Schmolck's patch to fix inspect.getinnerframes().
1959
1961
1960 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1962 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1961 for embedded instances, regarding handling of namespaces and items
1963 for embedded instances, regarding handling of namespaces and items
1962 added to the __builtin__ one. Multiple embedded instances and
1964 added to the __builtin__ one. Multiple embedded instances and
1963 recursive embeddings should work better now (though I'm not sure
1965 recursive embeddings should work better now (though I'm not sure
1964 I've got all the corner cases fixed, that code is a bit of a brain
1966 I've got all the corner cases fixed, that code is a bit of a brain
1965 twister).
1967 twister).
1966
1968
1967 * IPython/Magic.py (magic_edit): added support to edit in-memory
1969 * IPython/Magic.py (magic_edit): added support to edit in-memory
1968 macros (automatically creates the necessary temp files). %edit
1970 macros (automatically creates the necessary temp files). %edit
1969 also doesn't return the file contents anymore, it's just noise.
1971 also doesn't return the file contents anymore, it's just noise.
1970
1972
1971 * IPython/completer.py (Completer.attr_matches): revert change to
1973 * IPython/completer.py (Completer.attr_matches): revert change to
1972 complete only on attributes listed in __all__. I realized it
1974 complete only on attributes listed in __all__. I realized it
1973 cripples the tab-completion system as a tool for exploring the
1975 cripples the tab-completion system as a tool for exploring the
1974 internals of unknown libraries (it renders any non-__all__
1976 internals of unknown libraries (it renders any non-__all__
1975 attribute off-limits). I got bit by this when trying to see
1977 attribute off-limits). I got bit by this when trying to see
1976 something inside the dis module.
1978 something inside the dis module.
1977
1979
1978 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1980 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1979
1981
1980 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1982 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1981 namespace for users and extension writers to hold data in. This
1983 namespace for users and extension writers to hold data in. This
1982 follows the discussion in
1984 follows the discussion in
1983 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1985 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1984
1986
1985 * IPython/completer.py (IPCompleter.complete): small patch to help
1987 * IPython/completer.py (IPCompleter.complete): small patch to help
1986 tab-completion under Emacs, after a suggestion by John Barnard
1988 tab-completion under Emacs, after a suggestion by John Barnard
1987 <barnarj-AT-ccf.org>.
1989 <barnarj-AT-ccf.org>.
1988
1990
1989 * IPython/Magic.py (Magic.extract_input_slices): added support for
1991 * IPython/Magic.py (Magic.extract_input_slices): added support for
1990 the slice notation in magics to use N-M to represent numbers N...M
1992 the slice notation in magics to use N-M to represent numbers N...M
1991 (closed endpoints). This is used by %macro and %save.
1993 (closed endpoints). This is used by %macro and %save.
1992
1994
1993 * IPython/completer.py (Completer.attr_matches): for modules which
1995 * IPython/completer.py (Completer.attr_matches): for modules which
1994 define __all__, complete only on those. After a patch by Jeffrey
1996 define __all__, complete only on those. After a patch by Jeffrey
1995 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1997 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1996 speed up this routine.
1998 speed up this routine.
1997
1999
1998 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2000 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1999 don't know if this is the end of it, but the behavior now is
2001 don't know if this is the end of it, but the behavior now is
2000 certainly much more correct. Note that coupled with macros,
2002 certainly much more correct. Note that coupled with macros,
2001 slightly surprising (at first) behavior may occur: a macro will in
2003 slightly surprising (at first) behavior may occur: a macro will in
2002 general expand to multiple lines of input, so upon exiting, the
2004 general expand to multiple lines of input, so upon exiting, the
2003 in/out counters will both be bumped by the corresponding amount
2005 in/out counters will both be bumped by the corresponding amount
2004 (as if the macro's contents had been typed interactively). Typing
2006 (as if the macro's contents had been typed interactively). Typing
2005 %hist will reveal the intermediate (silently processed) lines.
2007 %hist will reveal the intermediate (silently processed) lines.
2006
2008
2007 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2009 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2008 pickle to fail (%run was overwriting __main__ and not restoring
2010 pickle to fail (%run was overwriting __main__ and not restoring
2009 it, but pickle relies on __main__ to operate).
2011 it, but pickle relies on __main__ to operate).
2010
2012
2011 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2013 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2012 using properties, but forgot to make the main InteractiveShell
2014 using properties, but forgot to make the main InteractiveShell
2013 class a new-style class. Properties fail silently, and
2015 class a new-style class. Properties fail silently, and
2014 mysteriously, with old-style class (getters work, but
2016 mysteriously, with old-style class (getters work, but
2015 setters don't do anything).
2017 setters don't do anything).
2016
2018
2017 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2019 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2018
2020
2019 * IPython/Magic.py (magic_history): fix history reporting bug (I
2021 * IPython/Magic.py (magic_history): fix history reporting bug (I
2020 know some nasties are still there, I just can't seem to find a
2022 know some nasties are still there, I just can't seem to find a
2021 reproducible test case to track them down; the input history is
2023 reproducible test case to track them down; the input history is
2022 falling out of sync...)
2024 falling out of sync...)
2023
2025
2024 * IPython/iplib.py (handle_shell_escape): fix bug where both
2026 * IPython/iplib.py (handle_shell_escape): fix bug where both
2025 aliases and system accesses where broken for indented code (such
2027 aliases and system accesses where broken for indented code (such
2026 as loops).
2028 as loops).
2027
2029
2028 * IPython/genutils.py (shell): fix small but critical bug for
2030 * IPython/genutils.py (shell): fix small but critical bug for
2029 win32 system access.
2031 win32 system access.
2030
2032
2031 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2033 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2032
2034
2033 * IPython/iplib.py (showtraceback): remove use of the
2035 * IPython/iplib.py (showtraceback): remove use of the
2034 sys.last_{type/value/traceback} structures, which are non
2036 sys.last_{type/value/traceback} structures, which are non
2035 thread-safe.
2037 thread-safe.
2036 (_prefilter): change control flow to ensure that we NEVER
2038 (_prefilter): change control flow to ensure that we NEVER
2037 introspect objects when autocall is off. This will guarantee that
2039 introspect objects when autocall is off. This will guarantee that
2038 having an input line of the form 'x.y', where access to attribute
2040 having an input line of the form 'x.y', where access to attribute
2039 'y' has side effects, doesn't trigger the side effect TWICE. It
2041 'y' has side effects, doesn't trigger the side effect TWICE. It
2040 is important to note that, with autocall on, these side effects
2042 is important to note that, with autocall on, these side effects
2041 can still happen.
2043 can still happen.
2042 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2044 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2043 trio. IPython offers these three kinds of special calls which are
2045 trio. IPython offers these three kinds of special calls which are
2044 not python code, and it's a good thing to have their call method
2046 not python code, and it's a good thing to have their call method
2045 be accessible as pure python functions (not just special syntax at
2047 be accessible as pure python functions (not just special syntax at
2046 the command line). It gives us a better internal implementation
2048 the command line). It gives us a better internal implementation
2047 structure, as well as exposing these for user scripting more
2049 structure, as well as exposing these for user scripting more
2048 cleanly.
2050 cleanly.
2049
2051
2050 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2052 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2051 file. Now that they'll be more likely to be used with the
2053 file. Now that they'll be more likely to be used with the
2052 persistance system (%store), I want to make sure their module path
2054 persistance system (%store), I want to make sure their module path
2053 doesn't change in the future, so that we don't break things for
2055 doesn't change in the future, so that we don't break things for
2054 users' persisted data.
2056 users' persisted data.
2055
2057
2056 * IPython/iplib.py (autoindent_update): move indentation
2058 * IPython/iplib.py (autoindent_update): move indentation
2057 management into the _text_ processing loop, not the keyboard
2059 management into the _text_ processing loop, not the keyboard
2058 interactive one. This is necessary to correctly process non-typed
2060 interactive one. This is necessary to correctly process non-typed
2059 multiline input (such as macros).
2061 multiline input (such as macros).
2060
2062
2061 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2063 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2062 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2064 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2063 which was producing problems in the resulting manual.
2065 which was producing problems in the resulting manual.
2064 (magic_whos): improve reporting of instances (show their class,
2066 (magic_whos): improve reporting of instances (show their class,
2065 instead of simply printing 'instance' which isn't terribly
2067 instead of simply printing 'instance' which isn't terribly
2066 informative).
2068 informative).
2067
2069
2068 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2070 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2069 (minor mods) to support network shares under win32.
2071 (minor mods) to support network shares under win32.
2070
2072
2071 * IPython/winconsole.py (get_console_size): add new winconsole
2073 * IPython/winconsole.py (get_console_size): add new winconsole
2072 module and fixes to page_dumb() to improve its behavior under
2074 module and fixes to page_dumb() to improve its behavior under
2073 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2075 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2074
2076
2075 * IPython/Magic.py (Macro): simplified Macro class to just
2077 * IPython/Magic.py (Macro): simplified Macro class to just
2076 subclass list. We've had only 2.2 compatibility for a very long
2078 subclass list. We've had only 2.2 compatibility for a very long
2077 time, yet I was still avoiding subclassing the builtin types. No
2079 time, yet I was still avoiding subclassing the builtin types. No
2078 more (I'm also starting to use properties, though I won't shift to
2080 more (I'm also starting to use properties, though I won't shift to
2079 2.3-specific features quite yet).
2081 2.3-specific features quite yet).
2080 (magic_store): added Ville's patch for lightweight variable
2082 (magic_store): added Ville's patch for lightweight variable
2081 persistence, after a request on the user list by Matt Wilkie
2083 persistence, after a request on the user list by Matt Wilkie
2082 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2084 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2083 details.
2085 details.
2084
2086
2085 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2087 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2086 changed the default logfile name from 'ipython.log' to
2088 changed the default logfile name from 'ipython.log' to
2087 'ipython_log.py'. These logs are real python files, and now that
2089 'ipython_log.py'. These logs are real python files, and now that
2088 we have much better multiline support, people are more likely to
2090 we have much better multiline support, people are more likely to
2089 want to use them as such. Might as well name them correctly.
2091 want to use them as such. Might as well name them correctly.
2090
2092
2091 * IPython/Magic.py: substantial cleanup. While we can't stop
2093 * IPython/Magic.py: substantial cleanup. While we can't stop
2092 using magics as mixins, due to the existing customizations 'out
2094 using magics as mixins, due to the existing customizations 'out
2093 there' which rely on the mixin naming conventions, at least I
2095 there' which rely on the mixin naming conventions, at least I
2094 cleaned out all cross-class name usage. So once we are OK with
2096 cleaned out all cross-class name usage. So once we are OK with
2095 breaking compatibility, the two systems can be separated.
2097 breaking compatibility, the two systems can be separated.
2096
2098
2097 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2099 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2098 anymore, and the class is a fair bit less hideous as well. New
2100 anymore, and the class is a fair bit less hideous as well. New
2099 features were also introduced: timestamping of input, and logging
2101 features were also introduced: timestamping of input, and logging
2100 of output results. These are user-visible with the -t and -o
2102 of output results. These are user-visible with the -t and -o
2101 options to %logstart. Closes
2103 options to %logstart. Closes
2102 http://www.scipy.net/roundup/ipython/issue11 and a request by
2104 http://www.scipy.net/roundup/ipython/issue11 and a request by
2103 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2105 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2104
2106
2105 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2107 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2106
2108
2107 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2109 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2108 better handle backslashes in paths. See the thread 'More Windows
2110 better handle backslashes in paths. See the thread 'More Windows
2109 questions part 2 - \/ characters revisited' on the iypthon user
2111 questions part 2 - \/ characters revisited' on the iypthon user
2110 list:
2112 list:
2111 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2113 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2112
2114
2113 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2115 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2114
2116
2115 (InteractiveShell.__init__): change threaded shells to not use the
2117 (InteractiveShell.__init__): change threaded shells to not use the
2116 ipython crash handler. This was causing more problems than not,
2118 ipython crash handler. This was causing more problems than not,
2117 as exceptions in the main thread (GUI code, typically) would
2119 as exceptions in the main thread (GUI code, typically) would
2118 always show up as a 'crash', when they really weren't.
2120 always show up as a 'crash', when they really weren't.
2119
2121
2120 The colors and exception mode commands (%colors/%xmode) have been
2122 The colors and exception mode commands (%colors/%xmode) have been
2121 synchronized to also take this into account, so users can get
2123 synchronized to also take this into account, so users can get
2122 verbose exceptions for their threaded code as well. I also added
2124 verbose exceptions for their threaded code as well. I also added
2123 support for activating pdb inside this exception handler as well,
2125 support for activating pdb inside this exception handler as well,
2124 so now GUI authors can use IPython's enhanced pdb at runtime.
2126 so now GUI authors can use IPython's enhanced pdb at runtime.
2125
2127
2126 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2128 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2127 true by default, and add it to the shipped ipythonrc file. Since
2129 true by default, and add it to the shipped ipythonrc file. Since
2128 this asks the user before proceeding, I think it's OK to make it
2130 this asks the user before proceeding, I think it's OK to make it
2129 true by default.
2131 true by default.
2130
2132
2131 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2133 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2132 of the previous special-casing of input in the eval loop. I think
2134 of the previous special-casing of input in the eval loop. I think
2133 this is cleaner, as they really are commands and shouldn't have
2135 this is cleaner, as they really are commands and shouldn't have
2134 a special role in the middle of the core code.
2136 a special role in the middle of the core code.
2135
2137
2136 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2138 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2137
2139
2138 * IPython/iplib.py (edit_syntax_error): added support for
2140 * IPython/iplib.py (edit_syntax_error): added support for
2139 automatically reopening the editor if the file had a syntax error
2141 automatically reopening the editor if the file had a syntax error
2140 in it. Thanks to scottt who provided the patch at:
2142 in it. Thanks to scottt who provided the patch at:
2141 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2143 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2142 version committed).
2144 version committed).
2143
2145
2144 * IPython/iplib.py (handle_normal): add suport for multi-line
2146 * IPython/iplib.py (handle_normal): add suport for multi-line
2145 input with emtpy lines. This fixes
2147 input with emtpy lines. This fixes
2146 http://www.scipy.net/roundup/ipython/issue43 and a similar
2148 http://www.scipy.net/roundup/ipython/issue43 and a similar
2147 discussion on the user list.
2149 discussion on the user list.
2148
2150
2149 WARNING: a behavior change is necessarily introduced to support
2151 WARNING: a behavior change is necessarily introduced to support
2150 blank lines: now a single blank line with whitespace does NOT
2152 blank lines: now a single blank line with whitespace does NOT
2151 break the input loop, which means that when autoindent is on, by
2153 break the input loop, which means that when autoindent is on, by
2152 default hitting return on the next (indented) line does NOT exit.
2154 default hitting return on the next (indented) line does NOT exit.
2153
2155
2154 Instead, to exit a multiline input you can either have:
2156 Instead, to exit a multiline input you can either have:
2155
2157
2156 - TWO whitespace lines (just hit return again), or
2158 - TWO whitespace lines (just hit return again), or
2157 - a single whitespace line of a different length than provided
2159 - a single whitespace line of a different length than provided
2158 by the autoindent (add or remove a space).
2160 by the autoindent (add or remove a space).
2159
2161
2160 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2162 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2161 module to better organize all readline-related functionality.
2163 module to better organize all readline-related functionality.
2162 I've deleted FlexCompleter and put all completion clases here.
2164 I've deleted FlexCompleter and put all completion clases here.
2163
2165
2164 * IPython/iplib.py (raw_input): improve indentation management.
2166 * IPython/iplib.py (raw_input): improve indentation management.
2165 It is now possible to paste indented code with autoindent on, and
2167 It is now possible to paste indented code with autoindent on, and
2166 the code is interpreted correctly (though it still looks bad on
2168 the code is interpreted correctly (though it still looks bad on
2167 screen, due to the line-oriented nature of ipython).
2169 screen, due to the line-oriented nature of ipython).
2168 (MagicCompleter.complete): change behavior so that a TAB key on an
2170 (MagicCompleter.complete): change behavior so that a TAB key on an
2169 otherwise empty line actually inserts a tab, instead of completing
2171 otherwise empty line actually inserts a tab, instead of completing
2170 on the entire global namespace. This makes it easier to use the
2172 on the entire global namespace. This makes it easier to use the
2171 TAB key for indentation. After a request by Hans Meine
2173 TAB key for indentation. After a request by Hans Meine
2172 <hans_meine-AT-gmx.net>
2174 <hans_meine-AT-gmx.net>
2173 (_prefilter): add support so that typing plain 'exit' or 'quit'
2175 (_prefilter): add support so that typing plain 'exit' or 'quit'
2174 does a sensible thing. Originally I tried to deviate as little as
2176 does a sensible thing. Originally I tried to deviate as little as
2175 possible from the default python behavior, but even that one may
2177 possible from the default python behavior, but even that one may
2176 change in this direction (thread on python-dev to that effect).
2178 change in this direction (thread on python-dev to that effect).
2177 Regardless, ipython should do the right thing even if CPython's
2179 Regardless, ipython should do the right thing even if CPython's
2178 '>>>' prompt doesn't.
2180 '>>>' prompt doesn't.
2179 (InteractiveShell): removed subclassing code.InteractiveConsole
2181 (InteractiveShell): removed subclassing code.InteractiveConsole
2180 class. By now we'd overridden just about all of its methods: I've
2182 class. By now we'd overridden just about all of its methods: I've
2181 copied the remaining two over, and now ipython is a standalone
2183 copied the remaining two over, and now ipython is a standalone
2182 class. This will provide a clearer picture for the chainsaw
2184 class. This will provide a clearer picture for the chainsaw
2183 branch refactoring.
2185 branch refactoring.
2184
2186
2185 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2187 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2186
2188
2187 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2189 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2188 failures for objects which break when dir() is called on them.
2190 failures for objects which break when dir() is called on them.
2189
2191
2190 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2192 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2191 distinct local and global namespaces in the completer API. This
2193 distinct local and global namespaces in the completer API. This
2192 change allows us to properly handle completion with distinct
2194 change allows us to properly handle completion with distinct
2193 scopes, including in embedded instances (this had never really
2195 scopes, including in embedded instances (this had never really
2194 worked correctly).
2196 worked correctly).
2195
2197
2196 Note: this introduces a change in the constructor for
2198 Note: this introduces a change in the constructor for
2197 MagicCompleter, as a new global_namespace parameter is now the
2199 MagicCompleter, as a new global_namespace parameter is now the
2198 second argument (the others were bumped one position).
2200 second argument (the others were bumped one position).
2199
2201
2200 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2202 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2201
2203
2202 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2204 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2203 embedded instances (which can be done now thanks to Vivian's
2205 embedded instances (which can be done now thanks to Vivian's
2204 frame-handling fixes for pdb).
2206 frame-handling fixes for pdb).
2205 (InteractiveShell.__init__): Fix namespace handling problem in
2207 (InteractiveShell.__init__): Fix namespace handling problem in
2206 embedded instances. We were overwriting __main__ unconditionally,
2208 embedded instances. We were overwriting __main__ unconditionally,
2207 and this should only be done for 'full' (non-embedded) IPython;
2209 and this should only be done for 'full' (non-embedded) IPython;
2208 embedded instances must respect the caller's __main__. Thanks to
2210 embedded instances must respect the caller's __main__. Thanks to
2209 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2211 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2210
2212
2211 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2213 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2212
2214
2213 * setup.py: added download_url to setup(). This registers the
2215 * setup.py: added download_url to setup(). This registers the
2214 download address at PyPI, which is not only useful to humans
2216 download address at PyPI, which is not only useful to humans
2215 browsing the site, but is also picked up by setuptools (the Eggs
2217 browsing the site, but is also picked up by setuptools (the Eggs
2216 machinery). Thanks to Ville and R. Kern for the info/discussion
2218 machinery). Thanks to Ville and R. Kern for the info/discussion
2217 on this.
2219 on this.
2218
2220
2219 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2221 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2220
2222
2221 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2223 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2222 This brings a lot of nice functionality to the pdb mode, which now
2224 This brings a lot of nice functionality to the pdb mode, which now
2223 has tab-completion, syntax highlighting, and better stack handling
2225 has tab-completion, syntax highlighting, and better stack handling
2224 than before. Many thanks to Vivian De Smedt
2226 than before. Many thanks to Vivian De Smedt
2225 <vivian-AT-vdesmedt.com> for the original patches.
2227 <vivian-AT-vdesmedt.com> for the original patches.
2226
2228
2227 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2229 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2228
2230
2229 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2231 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2230 sequence to consistently accept the banner argument. The
2232 sequence to consistently accept the banner argument. The
2231 inconsistency was tripping SAGE, thanks to Gary Zablackis
2233 inconsistency was tripping SAGE, thanks to Gary Zablackis
2232 <gzabl-AT-yahoo.com> for the report.
2234 <gzabl-AT-yahoo.com> for the report.
2233
2235
2234 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2236 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2235
2237
2236 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2238 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2237 Fix bug where a naked 'alias' call in the ipythonrc file would
2239 Fix bug where a naked 'alias' call in the ipythonrc file would
2238 cause a crash. Bug reported by Jorgen Stenarson.
2240 cause a crash. Bug reported by Jorgen Stenarson.
2239
2241
2240 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2242 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2241
2243
2242 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2244 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2243 startup time.
2245 startup time.
2244
2246
2245 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2247 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2246 instances had introduced a bug with globals in normal code. Now
2248 instances had introduced a bug with globals in normal code. Now
2247 it's working in all cases.
2249 it's working in all cases.
2248
2250
2249 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2251 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2250 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2252 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2251 has been introduced to set the default case sensitivity of the
2253 has been introduced to set the default case sensitivity of the
2252 searches. Users can still select either mode at runtime on a
2254 searches. Users can still select either mode at runtime on a
2253 per-search basis.
2255 per-search basis.
2254
2256
2255 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2257 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2256
2258
2257 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2259 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2258 attributes in wildcard searches for subclasses. Modified version
2260 attributes in wildcard searches for subclasses. Modified version
2259 of a patch by Jorgen.
2261 of a patch by Jorgen.
2260
2262
2261 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2263 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2262
2264
2263 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2265 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2264 embedded instances. I added a user_global_ns attribute to the
2266 embedded instances. I added a user_global_ns attribute to the
2265 InteractiveShell class to handle this.
2267 InteractiveShell class to handle this.
2266
2268
2267 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2269 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2268
2270
2269 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2271 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2270 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2272 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2271 (reported under win32, but may happen also in other platforms).
2273 (reported under win32, but may happen also in other platforms).
2272 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2274 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2273
2275
2274 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2276 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2275
2277
2276 * IPython/Magic.py (magic_psearch): new support for wildcard
2278 * IPython/Magic.py (magic_psearch): new support for wildcard
2277 patterns. Now, typing ?a*b will list all names which begin with a
2279 patterns. Now, typing ?a*b will list all names which begin with a
2278 and end in b, for example. The %psearch magic has full
2280 and end in b, for example. The %psearch magic has full
2279 docstrings. Many thanks to JΓΆrgen Stenarson
2281 docstrings. Many thanks to JΓΆrgen Stenarson
2280 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2282 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2281 implementing this functionality.
2283 implementing this functionality.
2282
2284
2283 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2285 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2284
2286
2285 * Manual: fixed long-standing annoyance of double-dashes (as in
2287 * Manual: fixed long-standing annoyance of double-dashes (as in
2286 --prefix=~, for example) being stripped in the HTML version. This
2288 --prefix=~, for example) being stripped in the HTML version. This
2287 is a latex2html bug, but a workaround was provided. Many thanks
2289 is a latex2html bug, but a workaround was provided. Many thanks
2288 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2290 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2289 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2291 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2290 rolling. This seemingly small issue had tripped a number of users
2292 rolling. This seemingly small issue had tripped a number of users
2291 when first installing, so I'm glad to see it gone.
2293 when first installing, so I'm glad to see it gone.
2292
2294
2293 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2295 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2294
2296
2295 * IPython/Extensions/numeric_formats.py: fix missing import,
2297 * IPython/Extensions/numeric_formats.py: fix missing import,
2296 reported by Stephen Walton.
2298 reported by Stephen Walton.
2297
2299
2298 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2300 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2299
2301
2300 * IPython/demo.py: finish demo module, fully documented now.
2302 * IPython/demo.py: finish demo module, fully documented now.
2301
2303
2302 * IPython/genutils.py (file_read): simple little utility to read a
2304 * IPython/genutils.py (file_read): simple little utility to read a
2303 file and ensure it's closed afterwards.
2305 file and ensure it's closed afterwards.
2304
2306
2305 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2307 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2306
2308
2307 * IPython/demo.py (Demo.__init__): added support for individually
2309 * IPython/demo.py (Demo.__init__): added support for individually
2308 tagging blocks for automatic execution.
2310 tagging blocks for automatic execution.
2309
2311
2310 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2312 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2311 syntax-highlighted python sources, requested by John.
2313 syntax-highlighted python sources, requested by John.
2312
2314
2313 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2315 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2314
2316
2315 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2317 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2316 finishing.
2318 finishing.
2317
2319
2318 * IPython/genutils.py (shlex_split): moved from Magic to here,
2320 * IPython/genutils.py (shlex_split): moved from Magic to here,
2319 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2321 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2320
2322
2321 * IPython/demo.py (Demo.__init__): added support for silent
2323 * IPython/demo.py (Demo.__init__): added support for silent
2322 blocks, improved marks as regexps, docstrings written.
2324 blocks, improved marks as regexps, docstrings written.
2323 (Demo.__init__): better docstring, added support for sys.argv.
2325 (Demo.__init__): better docstring, added support for sys.argv.
2324
2326
2325 * IPython/genutils.py (marquee): little utility used by the demo
2327 * IPython/genutils.py (marquee): little utility used by the demo
2326 code, handy in general.
2328 code, handy in general.
2327
2329
2328 * IPython/demo.py (Demo.__init__): new class for interactive
2330 * IPython/demo.py (Demo.__init__): new class for interactive
2329 demos. Not documented yet, I just wrote it in a hurry for
2331 demos. Not documented yet, I just wrote it in a hurry for
2330 scipy'05. Will docstring later.
2332 scipy'05. Will docstring later.
2331
2333
2332 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2334 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2333
2335
2334 * IPython/Shell.py (sigint_handler): Drastic simplification which
2336 * IPython/Shell.py (sigint_handler): Drastic simplification which
2335 also seems to make Ctrl-C work correctly across threads! This is
2337 also seems to make Ctrl-C work correctly across threads! This is
2336 so simple, that I can't beleive I'd missed it before. Needs more
2338 so simple, that I can't beleive I'd missed it before. Needs more
2337 testing, though.
2339 testing, though.
2338 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2340 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2339 like this before...
2341 like this before...
2340
2342
2341 * IPython/genutils.py (get_home_dir): add protection against
2343 * IPython/genutils.py (get_home_dir): add protection against
2342 non-dirs in win32 registry.
2344 non-dirs in win32 registry.
2343
2345
2344 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2346 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2345 bug where dict was mutated while iterating (pysh crash).
2347 bug where dict was mutated while iterating (pysh crash).
2346
2348
2347 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2349 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2348
2350
2349 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2351 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2350 spurious newlines added by this routine. After a report by
2352 spurious newlines added by this routine. After a report by
2351 F. Mantegazza.
2353 F. Mantegazza.
2352
2354
2353 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2355 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2354
2356
2355 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2357 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2356 calls. These were a leftover from the GTK 1.x days, and can cause
2358 calls. These were a leftover from the GTK 1.x days, and can cause
2357 problems in certain cases (after a report by John Hunter).
2359 problems in certain cases (after a report by John Hunter).
2358
2360
2359 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2361 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2360 os.getcwd() fails at init time. Thanks to patch from David Remahl
2362 os.getcwd() fails at init time. Thanks to patch from David Remahl
2361 <chmod007-AT-mac.com>.
2363 <chmod007-AT-mac.com>.
2362 (InteractiveShell.__init__): prevent certain special magics from
2364 (InteractiveShell.__init__): prevent certain special magics from
2363 being shadowed by aliases. Closes
2365 being shadowed by aliases. Closes
2364 http://www.scipy.net/roundup/ipython/issue41.
2366 http://www.scipy.net/roundup/ipython/issue41.
2365
2367
2366 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2368 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2367
2369
2368 * IPython/iplib.py (InteractiveShell.complete): Added new
2370 * IPython/iplib.py (InteractiveShell.complete): Added new
2369 top-level completion method to expose the completion mechanism
2371 top-level completion method to expose the completion mechanism
2370 beyond readline-based environments.
2372 beyond readline-based environments.
2371
2373
2372 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2374 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2373
2375
2374 * tools/ipsvnc (svnversion): fix svnversion capture.
2376 * tools/ipsvnc (svnversion): fix svnversion capture.
2375
2377
2376 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2378 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2377 attribute to self, which was missing. Before, it was set by a
2379 attribute to self, which was missing. Before, it was set by a
2378 routine which in certain cases wasn't being called, so the
2380 routine which in certain cases wasn't being called, so the
2379 instance could end up missing the attribute. This caused a crash.
2381 instance could end up missing the attribute. This caused a crash.
2380 Closes http://www.scipy.net/roundup/ipython/issue40.
2382 Closes http://www.scipy.net/roundup/ipython/issue40.
2381
2383
2382 2005-08-16 Fernando Perez <fperez@colorado.edu>
2384 2005-08-16 Fernando Perez <fperez@colorado.edu>
2383
2385
2384 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2386 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2385 contains non-string attribute. Closes
2387 contains non-string attribute. Closes
2386 http://www.scipy.net/roundup/ipython/issue38.
2388 http://www.scipy.net/roundup/ipython/issue38.
2387
2389
2388 2005-08-14 Fernando Perez <fperez@colorado.edu>
2390 2005-08-14 Fernando Perez <fperez@colorado.edu>
2389
2391
2390 * tools/ipsvnc: Minor improvements, to add changeset info.
2392 * tools/ipsvnc: Minor improvements, to add changeset info.
2391
2393
2392 2005-08-12 Fernando Perez <fperez@colorado.edu>
2394 2005-08-12 Fernando Perez <fperez@colorado.edu>
2393
2395
2394 * IPython/iplib.py (runsource): remove self.code_to_run_src
2396 * IPython/iplib.py (runsource): remove self.code_to_run_src
2395 attribute. I realized this is nothing more than
2397 attribute. I realized this is nothing more than
2396 '\n'.join(self.buffer), and having the same data in two different
2398 '\n'.join(self.buffer), and having the same data in two different
2397 places is just asking for synchronization bugs. This may impact
2399 places is just asking for synchronization bugs. This may impact
2398 people who have custom exception handlers, so I need to warn
2400 people who have custom exception handlers, so I need to warn
2399 ipython-dev about it (F. Mantegazza may use them).
2401 ipython-dev about it (F. Mantegazza may use them).
2400
2402
2401 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2403 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2402
2404
2403 * IPython/genutils.py: fix 2.2 compatibility (generators)
2405 * IPython/genutils.py: fix 2.2 compatibility (generators)
2404
2406
2405 2005-07-18 Fernando Perez <fperez@colorado.edu>
2407 2005-07-18 Fernando Perez <fperez@colorado.edu>
2406
2408
2407 * IPython/genutils.py (get_home_dir): fix to help users with
2409 * IPython/genutils.py (get_home_dir): fix to help users with
2408 invalid $HOME under win32.
2410 invalid $HOME under win32.
2409
2411
2410 2005-07-17 Fernando Perez <fperez@colorado.edu>
2412 2005-07-17 Fernando Perez <fperez@colorado.edu>
2411
2413
2412 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2414 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2413 some old hacks and clean up a bit other routines; code should be
2415 some old hacks and clean up a bit other routines; code should be
2414 simpler and a bit faster.
2416 simpler and a bit faster.
2415
2417
2416 * IPython/iplib.py (interact): removed some last-resort attempts
2418 * IPython/iplib.py (interact): removed some last-resort attempts
2417 to survive broken stdout/stderr. That code was only making it
2419 to survive broken stdout/stderr. That code was only making it
2418 harder to abstract out the i/o (necessary for gui integration),
2420 harder to abstract out the i/o (necessary for gui integration),
2419 and the crashes it could prevent were extremely rare in practice
2421 and the crashes it could prevent were extremely rare in practice
2420 (besides being fully user-induced in a pretty violent manner).
2422 (besides being fully user-induced in a pretty violent manner).
2421
2423
2422 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2424 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2423 Nothing major yet, but the code is simpler to read; this should
2425 Nothing major yet, but the code is simpler to read; this should
2424 make it easier to do more serious modifications in the future.
2426 make it easier to do more serious modifications in the future.
2425
2427
2426 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2428 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2427 which broke in .15 (thanks to a report by Ville).
2429 which broke in .15 (thanks to a report by Ville).
2428
2430
2429 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2431 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2430 be quite correct, I know next to nothing about unicode). This
2432 be quite correct, I know next to nothing about unicode). This
2431 will allow unicode strings to be used in prompts, amongst other
2433 will allow unicode strings to be used in prompts, amongst other
2432 cases. It also will prevent ipython from crashing when unicode
2434 cases. It also will prevent ipython from crashing when unicode
2433 shows up unexpectedly in many places. If ascii encoding fails, we
2435 shows up unexpectedly in many places. If ascii encoding fails, we
2434 assume utf_8. Currently the encoding is not a user-visible
2436 assume utf_8. Currently the encoding is not a user-visible
2435 setting, though it could be made so if there is demand for it.
2437 setting, though it could be made so if there is demand for it.
2436
2438
2437 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2439 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2438
2440
2439 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2441 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2440
2442
2441 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2443 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2442
2444
2443 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2445 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2444 code can work transparently for 2.2/2.3.
2446 code can work transparently for 2.2/2.3.
2445
2447
2446 2005-07-16 Fernando Perez <fperez@colorado.edu>
2448 2005-07-16 Fernando Perez <fperez@colorado.edu>
2447
2449
2448 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2450 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2449 out of the color scheme table used for coloring exception
2451 out of the color scheme table used for coloring exception
2450 tracebacks. This allows user code to add new schemes at runtime.
2452 tracebacks. This allows user code to add new schemes at runtime.
2451 This is a minimally modified version of the patch at
2453 This is a minimally modified version of the patch at
2452 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2454 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2453 for the contribution.
2455 for the contribution.
2454
2456
2455 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2457 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2456 slightly modified version of the patch in
2458 slightly modified version of the patch in
2457 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2459 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2458 to remove the previous try/except solution (which was costlier).
2460 to remove the previous try/except solution (which was costlier).
2459 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2461 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2460
2462
2461 2005-06-08 Fernando Perez <fperez@colorado.edu>
2463 2005-06-08 Fernando Perez <fperez@colorado.edu>
2462
2464
2463 * IPython/iplib.py (write/write_err): Add methods to abstract all
2465 * IPython/iplib.py (write/write_err): Add methods to abstract all
2464 I/O a bit more.
2466 I/O a bit more.
2465
2467
2466 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2468 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2467 warning, reported by Aric Hagberg, fix by JD Hunter.
2469 warning, reported by Aric Hagberg, fix by JD Hunter.
2468
2470
2469 2005-06-02 *** Released version 0.6.15
2471 2005-06-02 *** Released version 0.6.15
2470
2472
2471 2005-06-01 Fernando Perez <fperez@colorado.edu>
2473 2005-06-01 Fernando Perez <fperez@colorado.edu>
2472
2474
2473 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2475 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2474 tab-completion of filenames within open-quoted strings. Note that
2476 tab-completion of filenames within open-quoted strings. Note that
2475 this requires that in ~/.ipython/ipythonrc, users change the
2477 this requires that in ~/.ipython/ipythonrc, users change the
2476 readline delimiters configuration to read:
2478 readline delimiters configuration to read:
2477
2479
2478 readline_remove_delims -/~
2480 readline_remove_delims -/~
2479
2481
2480
2482
2481 2005-05-31 *** Released version 0.6.14
2483 2005-05-31 *** Released version 0.6.14
2482
2484
2483 2005-05-29 Fernando Perez <fperez@colorado.edu>
2485 2005-05-29 Fernando Perez <fperez@colorado.edu>
2484
2486
2485 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2487 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2486 with files not on the filesystem. Reported by Eliyahu Sandler
2488 with files not on the filesystem. Reported by Eliyahu Sandler
2487 <eli@gondolin.net>
2489 <eli@gondolin.net>
2488
2490
2489 2005-05-22 Fernando Perez <fperez@colorado.edu>
2491 2005-05-22 Fernando Perez <fperez@colorado.edu>
2490
2492
2491 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2493 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2492 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2494 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2493
2495
2494 2005-05-19 Fernando Perez <fperez@colorado.edu>
2496 2005-05-19 Fernando Perez <fperez@colorado.edu>
2495
2497
2496 * IPython/iplib.py (safe_execfile): close a file which could be
2498 * IPython/iplib.py (safe_execfile): close a file which could be
2497 left open (causing problems in win32, which locks open files).
2499 left open (causing problems in win32, which locks open files).
2498 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2500 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2499
2501
2500 2005-05-18 Fernando Perez <fperez@colorado.edu>
2502 2005-05-18 Fernando Perez <fperez@colorado.edu>
2501
2503
2502 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2504 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2503 keyword arguments correctly to safe_execfile().
2505 keyword arguments correctly to safe_execfile().
2504
2506
2505 2005-05-13 Fernando Perez <fperez@colorado.edu>
2507 2005-05-13 Fernando Perez <fperez@colorado.edu>
2506
2508
2507 * ipython.1: Added info about Qt to manpage, and threads warning
2509 * ipython.1: Added info about Qt to manpage, and threads warning
2508 to usage page (invoked with --help).
2510 to usage page (invoked with --help).
2509
2511
2510 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2512 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2511 new matcher (it goes at the end of the priority list) to do
2513 new matcher (it goes at the end of the priority list) to do
2512 tab-completion on named function arguments. Submitted by George
2514 tab-completion on named function arguments. Submitted by George
2513 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2515 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2514 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2516 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2515 for more details.
2517 for more details.
2516
2518
2517 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2519 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2518 SystemExit exceptions in the script being run. Thanks to a report
2520 SystemExit exceptions in the script being run. Thanks to a report
2519 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2521 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2520 producing very annoying behavior when running unit tests.
2522 producing very annoying behavior when running unit tests.
2521
2523
2522 2005-05-12 Fernando Perez <fperez@colorado.edu>
2524 2005-05-12 Fernando Perez <fperez@colorado.edu>
2523
2525
2524 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2526 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2525 which I'd broken (again) due to a changed regexp. In the process,
2527 which I'd broken (again) due to a changed regexp. In the process,
2526 added ';' as an escape to auto-quote the whole line without
2528 added ';' as an escape to auto-quote the whole line without
2527 splitting its arguments. Thanks to a report by Jerry McRae
2529 splitting its arguments. Thanks to a report by Jerry McRae
2528 <qrs0xyc02-AT-sneakemail.com>.
2530 <qrs0xyc02-AT-sneakemail.com>.
2529
2531
2530 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2532 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2531 possible crashes caused by a TokenError. Reported by Ed Schofield
2533 possible crashes caused by a TokenError. Reported by Ed Schofield
2532 <schofield-AT-ftw.at>.
2534 <schofield-AT-ftw.at>.
2533
2535
2534 2005-05-06 Fernando Perez <fperez@colorado.edu>
2536 2005-05-06 Fernando Perez <fperez@colorado.edu>
2535
2537
2536 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2538 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2537
2539
2538 2005-04-29 Fernando Perez <fperez@colorado.edu>
2540 2005-04-29 Fernando Perez <fperez@colorado.edu>
2539
2541
2540 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2542 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2541 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2543 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2542 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2544 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2543 which provides support for Qt interactive usage (similar to the
2545 which provides support for Qt interactive usage (similar to the
2544 existing one for WX and GTK). This had been often requested.
2546 existing one for WX and GTK). This had been often requested.
2545
2547
2546 2005-04-14 *** Released version 0.6.13
2548 2005-04-14 *** Released version 0.6.13
2547
2549
2548 2005-04-08 Fernando Perez <fperez@colorado.edu>
2550 2005-04-08 Fernando Perez <fperez@colorado.edu>
2549
2551
2550 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2552 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2551 from _ofind, which gets called on almost every input line. Now,
2553 from _ofind, which gets called on almost every input line. Now,
2552 we only try to get docstrings if they are actually going to be
2554 we only try to get docstrings if they are actually going to be
2553 used (the overhead of fetching unnecessary docstrings can be
2555 used (the overhead of fetching unnecessary docstrings can be
2554 noticeable for certain objects, such as Pyro proxies).
2556 noticeable for certain objects, such as Pyro proxies).
2555
2557
2556 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2558 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2557 for completers. For some reason I had been passing them the state
2559 for completers. For some reason I had been passing them the state
2558 variable, which completers never actually need, and was in
2560 variable, which completers never actually need, and was in
2559 conflict with the rlcompleter API. Custom completers ONLY need to
2561 conflict with the rlcompleter API. Custom completers ONLY need to
2560 take the text parameter.
2562 take the text parameter.
2561
2563
2562 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2564 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2563 work correctly in pysh. I've also moved all the logic which used
2565 work correctly in pysh. I've also moved all the logic which used
2564 to be in pysh.py here, which will prevent problems with future
2566 to be in pysh.py here, which will prevent problems with future
2565 upgrades. However, this time I must warn users to update their
2567 upgrades. However, this time I must warn users to update their
2566 pysh profile to include the line
2568 pysh profile to include the line
2567
2569
2568 import_all IPython.Extensions.InterpreterExec
2570 import_all IPython.Extensions.InterpreterExec
2569
2571
2570 because otherwise things won't work for them. They MUST also
2572 because otherwise things won't work for them. They MUST also
2571 delete pysh.py and the line
2573 delete pysh.py and the line
2572
2574
2573 execfile pysh.py
2575 execfile pysh.py
2574
2576
2575 from their ipythonrc-pysh.
2577 from their ipythonrc-pysh.
2576
2578
2577 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2579 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2578 robust in the face of objects whose dir() returns non-strings
2580 robust in the face of objects whose dir() returns non-strings
2579 (which it shouldn't, but some broken libs like ITK do). Thanks to
2581 (which it shouldn't, but some broken libs like ITK do). Thanks to
2580 a patch by John Hunter (implemented differently, though). Also
2582 a patch by John Hunter (implemented differently, though). Also
2581 minor improvements by using .extend instead of + on lists.
2583 minor improvements by using .extend instead of + on lists.
2582
2584
2583 * pysh.py:
2585 * pysh.py:
2584
2586
2585 2005-04-06 Fernando Perez <fperez@colorado.edu>
2587 2005-04-06 Fernando Perez <fperez@colorado.edu>
2586
2588
2587 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2589 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2588 by default, so that all users benefit from it. Those who don't
2590 by default, so that all users benefit from it. Those who don't
2589 want it can still turn it off.
2591 want it can still turn it off.
2590
2592
2591 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2593 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2592 config file, I'd forgotten about this, so users were getting it
2594 config file, I'd forgotten about this, so users were getting it
2593 off by default.
2595 off by default.
2594
2596
2595 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2597 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2596 consistency. Now magics can be called in multiline statements,
2598 consistency. Now magics can be called in multiline statements,
2597 and python variables can be expanded in magic calls via $var.
2599 and python variables can be expanded in magic calls via $var.
2598 This makes the magic system behave just like aliases or !system
2600 This makes the magic system behave just like aliases or !system
2599 calls.
2601 calls.
2600
2602
2601 2005-03-28 Fernando Perez <fperez@colorado.edu>
2603 2005-03-28 Fernando Perez <fperez@colorado.edu>
2602
2604
2603 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2605 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2604 expensive string additions for building command. Add support for
2606 expensive string additions for building command. Add support for
2605 trailing ';' when autocall is used.
2607 trailing ';' when autocall is used.
2606
2608
2607 2005-03-26 Fernando Perez <fperez@colorado.edu>
2609 2005-03-26 Fernando Perez <fperez@colorado.edu>
2608
2610
2609 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2611 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2610 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2612 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2611 ipython.el robust against prompts with any number of spaces
2613 ipython.el robust against prompts with any number of spaces
2612 (including 0) after the ':' character.
2614 (including 0) after the ':' character.
2613
2615
2614 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2616 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2615 continuation prompt, which misled users to think the line was
2617 continuation prompt, which misled users to think the line was
2616 already indented. Closes debian Bug#300847, reported to me by
2618 already indented. Closes debian Bug#300847, reported to me by
2617 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2619 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2618
2620
2619 2005-03-23 Fernando Perez <fperez@colorado.edu>
2621 2005-03-23 Fernando Perez <fperez@colorado.edu>
2620
2622
2621 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2623 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2622 properly aligned if they have embedded newlines.
2624 properly aligned if they have embedded newlines.
2623
2625
2624 * IPython/iplib.py (runlines): Add a public method to expose
2626 * IPython/iplib.py (runlines): Add a public method to expose
2625 IPython's code execution machinery, so that users can run strings
2627 IPython's code execution machinery, so that users can run strings
2626 as if they had been typed at the prompt interactively.
2628 as if they had been typed at the prompt interactively.
2627 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2629 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2628 methods which can call the system shell, but with python variable
2630 methods which can call the system shell, but with python variable
2629 expansion. The three such methods are: __IPYTHON__.system,
2631 expansion. The three such methods are: __IPYTHON__.system,
2630 .getoutput and .getoutputerror. These need to be documented in a
2632 .getoutput and .getoutputerror. These need to be documented in a
2631 'public API' section (to be written) of the manual.
2633 'public API' section (to be written) of the manual.
2632
2634
2633 2005-03-20 Fernando Perez <fperez@colorado.edu>
2635 2005-03-20 Fernando Perez <fperez@colorado.edu>
2634
2636
2635 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2637 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2636 for custom exception handling. This is quite powerful, and it
2638 for custom exception handling. This is quite powerful, and it
2637 allows for user-installable exception handlers which can trap
2639 allows for user-installable exception handlers which can trap
2638 custom exceptions at runtime and treat them separately from
2640 custom exceptions at runtime and treat them separately from
2639 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2641 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2640 Mantegazza <mantegazza-AT-ill.fr>.
2642 Mantegazza <mantegazza-AT-ill.fr>.
2641 (InteractiveShell.set_custom_completer): public API function to
2643 (InteractiveShell.set_custom_completer): public API function to
2642 add new completers at runtime.
2644 add new completers at runtime.
2643
2645
2644 2005-03-19 Fernando Perez <fperez@colorado.edu>
2646 2005-03-19 Fernando Perez <fperez@colorado.edu>
2645
2647
2646 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2648 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2647 allow objects which provide their docstrings via non-standard
2649 allow objects which provide their docstrings via non-standard
2648 mechanisms (like Pyro proxies) to still be inspected by ipython's
2650 mechanisms (like Pyro proxies) to still be inspected by ipython's
2649 ? system.
2651 ? system.
2650
2652
2651 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2653 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2652 automatic capture system. I tried quite hard to make it work
2654 automatic capture system. I tried quite hard to make it work
2653 reliably, and simply failed. I tried many combinations with the
2655 reliably, and simply failed. I tried many combinations with the
2654 subprocess module, but eventually nothing worked in all needed
2656 subprocess module, but eventually nothing worked in all needed
2655 cases (not blocking stdin for the child, duplicating stdout
2657 cases (not blocking stdin for the child, duplicating stdout
2656 without blocking, etc). The new %sc/%sx still do capture to these
2658 without blocking, etc). The new %sc/%sx still do capture to these
2657 magical list/string objects which make shell use much more
2659 magical list/string objects which make shell use much more
2658 conveninent, so not all is lost.
2660 conveninent, so not all is lost.
2659
2661
2660 XXX - FIX MANUAL for the change above!
2662 XXX - FIX MANUAL for the change above!
2661
2663
2662 (runsource): I copied code.py's runsource() into ipython to modify
2664 (runsource): I copied code.py's runsource() into ipython to modify
2663 it a bit. Now the code object and source to be executed are
2665 it a bit. Now the code object and source to be executed are
2664 stored in ipython. This makes this info accessible to third-party
2666 stored in ipython. This makes this info accessible to third-party
2665 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2667 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2666 Mantegazza <mantegazza-AT-ill.fr>.
2668 Mantegazza <mantegazza-AT-ill.fr>.
2667
2669
2668 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2670 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2669 history-search via readline (like C-p/C-n). I'd wanted this for a
2671 history-search via readline (like C-p/C-n). I'd wanted this for a
2670 long time, but only recently found out how to do it. For users
2672 long time, but only recently found out how to do it. For users
2671 who already have their ipythonrc files made and want this, just
2673 who already have their ipythonrc files made and want this, just
2672 add:
2674 add:
2673
2675
2674 readline_parse_and_bind "\e[A": history-search-backward
2676 readline_parse_and_bind "\e[A": history-search-backward
2675 readline_parse_and_bind "\e[B": history-search-forward
2677 readline_parse_and_bind "\e[B": history-search-forward
2676
2678
2677 2005-03-18 Fernando Perez <fperez@colorado.edu>
2679 2005-03-18 Fernando Perez <fperez@colorado.edu>
2678
2680
2679 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2681 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2680 LSString and SList classes which allow transparent conversions
2682 LSString and SList classes which allow transparent conversions
2681 between list mode and whitespace-separated string.
2683 between list mode and whitespace-separated string.
2682 (magic_r): Fix recursion problem in %r.
2684 (magic_r): Fix recursion problem in %r.
2683
2685
2684 * IPython/genutils.py (LSString): New class to be used for
2686 * IPython/genutils.py (LSString): New class to be used for
2685 automatic storage of the results of all alias/system calls in _o
2687 automatic storage of the results of all alias/system calls in _o
2686 and _e (stdout/err). These provide a .l/.list attribute which
2688 and _e (stdout/err). These provide a .l/.list attribute which
2687 does automatic splitting on newlines. This means that for most
2689 does automatic splitting on newlines. This means that for most
2688 uses, you'll never need to do capturing of output with %sc/%sx
2690 uses, you'll never need to do capturing of output with %sc/%sx
2689 anymore, since ipython keeps this always done for you. Note that
2691 anymore, since ipython keeps this always done for you. Note that
2690 only the LAST results are stored, the _o/e variables are
2692 only the LAST results are stored, the _o/e variables are
2691 overwritten on each call. If you need to save their contents
2693 overwritten on each call. If you need to save their contents
2692 further, simply bind them to any other name.
2694 further, simply bind them to any other name.
2693
2695
2694 2005-03-17 Fernando Perez <fperez@colorado.edu>
2696 2005-03-17 Fernando Perez <fperez@colorado.edu>
2695
2697
2696 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2698 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2697 prompt namespace handling.
2699 prompt namespace handling.
2698
2700
2699 2005-03-16 Fernando Perez <fperez@colorado.edu>
2701 2005-03-16 Fernando Perez <fperez@colorado.edu>
2700
2702
2701 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2703 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2702 classic prompts to be '>>> ' (final space was missing, and it
2704 classic prompts to be '>>> ' (final space was missing, and it
2703 trips the emacs python mode).
2705 trips the emacs python mode).
2704 (BasePrompt.__str__): Added safe support for dynamic prompt
2706 (BasePrompt.__str__): Added safe support for dynamic prompt
2705 strings. Now you can set your prompt string to be '$x', and the
2707 strings. Now you can set your prompt string to be '$x', and the
2706 value of x will be printed from your interactive namespace. The
2708 value of x will be printed from your interactive namespace. The
2707 interpolation syntax includes the full Itpl support, so
2709 interpolation syntax includes the full Itpl support, so
2708 ${foo()+x+bar()} is a valid prompt string now, and the function
2710 ${foo()+x+bar()} is a valid prompt string now, and the function
2709 calls will be made at runtime.
2711 calls will be made at runtime.
2710
2712
2711 2005-03-15 Fernando Perez <fperez@colorado.edu>
2713 2005-03-15 Fernando Perez <fperez@colorado.edu>
2712
2714
2713 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2715 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2714 avoid name clashes in pylab. %hist still works, it just forwards
2716 avoid name clashes in pylab. %hist still works, it just forwards
2715 the call to %history.
2717 the call to %history.
2716
2718
2717 2005-03-02 *** Released version 0.6.12
2719 2005-03-02 *** Released version 0.6.12
2718
2720
2719 2005-03-02 Fernando Perez <fperez@colorado.edu>
2721 2005-03-02 Fernando Perez <fperez@colorado.edu>
2720
2722
2721 * IPython/iplib.py (handle_magic): log magic calls properly as
2723 * IPython/iplib.py (handle_magic): log magic calls properly as
2722 ipmagic() function calls.
2724 ipmagic() function calls.
2723
2725
2724 * IPython/Magic.py (magic_time): Improved %time to support
2726 * IPython/Magic.py (magic_time): Improved %time to support
2725 statements and provide wall-clock as well as CPU time.
2727 statements and provide wall-clock as well as CPU time.
2726
2728
2727 2005-02-27 Fernando Perez <fperez@colorado.edu>
2729 2005-02-27 Fernando Perez <fperez@colorado.edu>
2728
2730
2729 * IPython/hooks.py: New hooks module, to expose user-modifiable
2731 * IPython/hooks.py: New hooks module, to expose user-modifiable
2730 IPython functionality in a clean manner. For now only the editor
2732 IPython functionality in a clean manner. For now only the editor
2731 hook is actually written, and other thigns which I intend to turn
2733 hook is actually written, and other thigns which I intend to turn
2732 into proper hooks aren't yet there. The display and prefilter
2734 into proper hooks aren't yet there. The display and prefilter
2733 stuff, for example, should be hooks. But at least now the
2735 stuff, for example, should be hooks. But at least now the
2734 framework is in place, and the rest can be moved here with more
2736 framework is in place, and the rest can be moved here with more
2735 time later. IPython had had a .hooks variable for a long time for
2737 time later. IPython had had a .hooks variable for a long time for
2736 this purpose, but I'd never actually used it for anything.
2738 this purpose, but I'd never actually used it for anything.
2737
2739
2738 2005-02-26 Fernando Perez <fperez@colorado.edu>
2740 2005-02-26 Fernando Perez <fperez@colorado.edu>
2739
2741
2740 * IPython/ipmaker.py (make_IPython): make the default ipython
2742 * IPython/ipmaker.py (make_IPython): make the default ipython
2741 directory be called _ipython under win32, to follow more the
2743 directory be called _ipython under win32, to follow more the
2742 naming peculiarities of that platform (where buggy software like
2744 naming peculiarities of that platform (where buggy software like
2743 Visual Sourcesafe breaks with .named directories). Reported by
2745 Visual Sourcesafe breaks with .named directories). Reported by
2744 Ville Vainio.
2746 Ville Vainio.
2745
2747
2746 2005-02-23 Fernando Perez <fperez@colorado.edu>
2748 2005-02-23 Fernando Perez <fperez@colorado.edu>
2747
2749
2748 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2750 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2749 auto_aliases for win32 which were causing problems. Users can
2751 auto_aliases for win32 which were causing problems. Users can
2750 define the ones they personally like.
2752 define the ones they personally like.
2751
2753
2752 2005-02-21 Fernando Perez <fperez@colorado.edu>
2754 2005-02-21 Fernando Perez <fperez@colorado.edu>
2753
2755
2754 * IPython/Magic.py (magic_time): new magic to time execution of
2756 * IPython/Magic.py (magic_time): new magic to time execution of
2755 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2757 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2756
2758
2757 2005-02-19 Fernando Perez <fperez@colorado.edu>
2759 2005-02-19 Fernando Perez <fperez@colorado.edu>
2758
2760
2759 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2761 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2760 into keys (for prompts, for example).
2762 into keys (for prompts, for example).
2761
2763
2762 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2764 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2763 prompts in case users want them. This introduces a small behavior
2765 prompts in case users want them. This introduces a small behavior
2764 change: ipython does not automatically add a space to all prompts
2766 change: ipython does not automatically add a space to all prompts
2765 anymore. To get the old prompts with a space, users should add it
2767 anymore. To get the old prompts with a space, users should add it
2766 manually to their ipythonrc file, so for example prompt_in1 should
2768 manually to their ipythonrc file, so for example prompt_in1 should
2767 now read 'In [\#]: ' instead of 'In [\#]:'.
2769 now read 'In [\#]: ' instead of 'In [\#]:'.
2768 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2770 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2769 file) to control left-padding of secondary prompts.
2771 file) to control left-padding of secondary prompts.
2770
2772
2771 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2773 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2772 the profiler can't be imported. Fix for Debian, which removed
2774 the profiler can't be imported. Fix for Debian, which removed
2773 profile.py because of License issues. I applied a slightly
2775 profile.py because of License issues. I applied a slightly
2774 modified version of the original Debian patch at
2776 modified version of the original Debian patch at
2775 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2777 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2776
2778
2777 2005-02-17 Fernando Perez <fperez@colorado.edu>
2779 2005-02-17 Fernando Perez <fperez@colorado.edu>
2778
2780
2779 * IPython/genutils.py (native_line_ends): Fix bug which would
2781 * IPython/genutils.py (native_line_ends): Fix bug which would
2780 cause improper line-ends under win32 b/c I was not opening files
2782 cause improper line-ends under win32 b/c I was not opening files
2781 in binary mode. Bug report and fix thanks to Ville.
2783 in binary mode. Bug report and fix thanks to Ville.
2782
2784
2783 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2785 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2784 trying to catch spurious foo[1] autocalls. My fix actually broke
2786 trying to catch spurious foo[1] autocalls. My fix actually broke
2785 ',/' autoquote/call with explicit escape (bad regexp).
2787 ',/' autoquote/call with explicit escape (bad regexp).
2786
2788
2787 2005-02-15 *** Released version 0.6.11
2789 2005-02-15 *** Released version 0.6.11
2788
2790
2789 2005-02-14 Fernando Perez <fperez@colorado.edu>
2791 2005-02-14 Fernando Perez <fperez@colorado.edu>
2790
2792
2791 * IPython/background_jobs.py: New background job management
2793 * IPython/background_jobs.py: New background job management
2792 subsystem. This is implemented via a new set of classes, and
2794 subsystem. This is implemented via a new set of classes, and
2793 IPython now provides a builtin 'jobs' object for background job
2795 IPython now provides a builtin 'jobs' object for background job
2794 execution. A convenience %bg magic serves as a lightweight
2796 execution. A convenience %bg magic serves as a lightweight
2795 frontend for starting the more common type of calls. This was
2797 frontend for starting the more common type of calls. This was
2796 inspired by discussions with B. Granger and the BackgroundCommand
2798 inspired by discussions with B. Granger and the BackgroundCommand
2797 class described in the book Python Scripting for Computational
2799 class described in the book Python Scripting for Computational
2798 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2800 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2799 (although ultimately no code from this text was used, as IPython's
2801 (although ultimately no code from this text was used, as IPython's
2800 system is a separate implementation).
2802 system is a separate implementation).
2801
2803
2802 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2804 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2803 to control the completion of single/double underscore names
2805 to control the completion of single/double underscore names
2804 separately. As documented in the example ipytonrc file, the
2806 separately. As documented in the example ipytonrc file, the
2805 readline_omit__names variable can now be set to 2, to omit even
2807 readline_omit__names variable can now be set to 2, to omit even
2806 single underscore names. Thanks to a patch by Brian Wong
2808 single underscore names. Thanks to a patch by Brian Wong
2807 <BrianWong-AT-AirgoNetworks.Com>.
2809 <BrianWong-AT-AirgoNetworks.Com>.
2808 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2810 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2809 be autocalled as foo([1]) if foo were callable. A problem for
2811 be autocalled as foo([1]) if foo were callable. A problem for
2810 things which are both callable and implement __getitem__.
2812 things which are both callable and implement __getitem__.
2811 (init_readline): Fix autoindentation for win32. Thanks to a patch
2813 (init_readline): Fix autoindentation for win32. Thanks to a patch
2812 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2814 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2813
2815
2814 2005-02-12 Fernando Perez <fperez@colorado.edu>
2816 2005-02-12 Fernando Perez <fperez@colorado.edu>
2815
2817
2816 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2818 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2817 which I had written long ago to sort out user error messages which
2819 which I had written long ago to sort out user error messages which
2818 may occur during startup. This seemed like a good idea initially,
2820 may occur during startup. This seemed like a good idea initially,
2819 but it has proven a disaster in retrospect. I don't want to
2821 but it has proven a disaster in retrospect. I don't want to
2820 change much code for now, so my fix is to set the internal 'debug'
2822 change much code for now, so my fix is to set the internal 'debug'
2821 flag to true everywhere, whose only job was precisely to control
2823 flag to true everywhere, whose only job was precisely to control
2822 this subsystem. This closes issue 28 (as well as avoiding all
2824 this subsystem. This closes issue 28 (as well as avoiding all
2823 sorts of strange hangups which occur from time to time).
2825 sorts of strange hangups which occur from time to time).
2824
2826
2825 2005-02-07 Fernando Perez <fperez@colorado.edu>
2827 2005-02-07 Fernando Perez <fperez@colorado.edu>
2826
2828
2827 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2829 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2828 previous call produced a syntax error.
2830 previous call produced a syntax error.
2829
2831
2830 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2832 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2831 classes without constructor.
2833 classes without constructor.
2832
2834
2833 2005-02-06 Fernando Perez <fperez@colorado.edu>
2835 2005-02-06 Fernando Perez <fperez@colorado.edu>
2834
2836
2835 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2837 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2836 completions with the results of each matcher, so we return results
2838 completions with the results of each matcher, so we return results
2837 to the user from all namespaces. This breaks with ipython
2839 to the user from all namespaces. This breaks with ipython
2838 tradition, but I think it's a nicer behavior. Now you get all
2840 tradition, but I think it's a nicer behavior. Now you get all
2839 possible completions listed, from all possible namespaces (python,
2841 possible completions listed, from all possible namespaces (python,
2840 filesystem, magics...) After a request by John Hunter
2842 filesystem, magics...) After a request by John Hunter
2841 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2843 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2842
2844
2843 2005-02-05 Fernando Perez <fperez@colorado.edu>
2845 2005-02-05 Fernando Perez <fperez@colorado.edu>
2844
2846
2845 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2847 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2846 the call had quote characters in it (the quotes were stripped).
2848 the call had quote characters in it (the quotes were stripped).
2847
2849
2848 2005-01-31 Fernando Perez <fperez@colorado.edu>
2850 2005-01-31 Fernando Perez <fperez@colorado.edu>
2849
2851
2850 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2852 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2851 Itpl.itpl() to make the code more robust against psyco
2853 Itpl.itpl() to make the code more robust against psyco
2852 optimizations.
2854 optimizations.
2853
2855
2854 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2856 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2855 of causing an exception. Quicker, cleaner.
2857 of causing an exception. Quicker, cleaner.
2856
2858
2857 2005-01-28 Fernando Perez <fperez@colorado.edu>
2859 2005-01-28 Fernando Perez <fperez@colorado.edu>
2858
2860
2859 * scripts/ipython_win_post_install.py (install): hardcode
2861 * scripts/ipython_win_post_install.py (install): hardcode
2860 sys.prefix+'python.exe' as the executable path. It turns out that
2862 sys.prefix+'python.exe' as the executable path. It turns out that
2861 during the post-installation run, sys.executable resolves to the
2863 during the post-installation run, sys.executable resolves to the
2862 name of the binary installer! I should report this as a distutils
2864 name of the binary installer! I should report this as a distutils
2863 bug, I think. I updated the .10 release with this tiny fix, to
2865 bug, I think. I updated the .10 release with this tiny fix, to
2864 avoid annoying the lists further.
2866 avoid annoying the lists further.
2865
2867
2866 2005-01-27 *** Released version 0.6.10
2868 2005-01-27 *** Released version 0.6.10
2867
2869
2868 2005-01-27 Fernando Perez <fperez@colorado.edu>
2870 2005-01-27 Fernando Perez <fperez@colorado.edu>
2869
2871
2870 * IPython/numutils.py (norm): Added 'inf' as optional name for
2872 * IPython/numutils.py (norm): Added 'inf' as optional name for
2871 L-infinity norm, included references to mathworld.com for vector
2873 L-infinity norm, included references to mathworld.com for vector
2872 norm definitions.
2874 norm definitions.
2873 (amin/amax): added amin/amax for array min/max. Similar to what
2875 (amin/amax): added amin/amax for array min/max. Similar to what
2874 pylab ships with after the recent reorganization of names.
2876 pylab ships with after the recent reorganization of names.
2875 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2877 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2876
2878
2877 * ipython.el: committed Alex's recent fixes and improvements.
2879 * ipython.el: committed Alex's recent fixes and improvements.
2878 Tested with python-mode from CVS, and it looks excellent. Since
2880 Tested with python-mode from CVS, and it looks excellent. Since
2879 python-mode hasn't released anything in a while, I'm temporarily
2881 python-mode hasn't released anything in a while, I'm temporarily
2880 putting a copy of today's CVS (v 4.70) of python-mode in:
2882 putting a copy of today's CVS (v 4.70) of python-mode in:
2881 http://ipython.scipy.org/tmp/python-mode.el
2883 http://ipython.scipy.org/tmp/python-mode.el
2882
2884
2883 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2885 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2884 sys.executable for the executable name, instead of assuming it's
2886 sys.executable for the executable name, instead of assuming it's
2885 called 'python.exe' (the post-installer would have produced broken
2887 called 'python.exe' (the post-installer would have produced broken
2886 setups on systems with a differently named python binary).
2888 setups on systems with a differently named python binary).
2887
2889
2888 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2890 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2889 references to os.linesep, to make the code more
2891 references to os.linesep, to make the code more
2890 platform-independent. This is also part of the win32 coloring
2892 platform-independent. This is also part of the win32 coloring
2891 fixes.
2893 fixes.
2892
2894
2893 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2895 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2894 lines, which actually cause coloring bugs because the length of
2896 lines, which actually cause coloring bugs because the length of
2895 the line is very difficult to correctly compute with embedded
2897 the line is very difficult to correctly compute with embedded
2896 escapes. This was the source of all the coloring problems under
2898 escapes. This was the source of all the coloring problems under
2897 Win32. I think that _finally_, Win32 users have a properly
2899 Win32. I think that _finally_, Win32 users have a properly
2898 working ipython in all respects. This would never have happened
2900 working ipython in all respects. This would never have happened
2899 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2901 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2900
2902
2901 2005-01-26 *** Released version 0.6.9
2903 2005-01-26 *** Released version 0.6.9
2902
2904
2903 2005-01-25 Fernando Perez <fperez@colorado.edu>
2905 2005-01-25 Fernando Perez <fperez@colorado.edu>
2904
2906
2905 * setup.py: finally, we have a true Windows installer, thanks to
2907 * setup.py: finally, we have a true Windows installer, thanks to
2906 the excellent work of Viktor Ransmayr
2908 the excellent work of Viktor Ransmayr
2907 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2909 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2908 Windows users. The setup routine is quite a bit cleaner thanks to
2910 Windows users. The setup routine is quite a bit cleaner thanks to
2909 this, and the post-install script uses the proper functions to
2911 this, and the post-install script uses the proper functions to
2910 allow a clean de-installation using the standard Windows Control
2912 allow a clean de-installation using the standard Windows Control
2911 Panel.
2913 Panel.
2912
2914
2913 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2915 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2914 environment variable under all OSes (including win32) if
2916 environment variable under all OSes (including win32) if
2915 available. This will give consistency to win32 users who have set
2917 available. This will give consistency to win32 users who have set
2916 this variable for any reason. If os.environ['HOME'] fails, the
2918 this variable for any reason. If os.environ['HOME'] fails, the
2917 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2919 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2918
2920
2919 2005-01-24 Fernando Perez <fperez@colorado.edu>
2921 2005-01-24 Fernando Perez <fperez@colorado.edu>
2920
2922
2921 * IPython/numutils.py (empty_like): add empty_like(), similar to
2923 * IPython/numutils.py (empty_like): add empty_like(), similar to
2922 zeros_like() but taking advantage of the new empty() Numeric routine.
2924 zeros_like() but taking advantage of the new empty() Numeric routine.
2923
2925
2924 2005-01-23 *** Released version 0.6.8
2926 2005-01-23 *** Released version 0.6.8
2925
2927
2926 2005-01-22 Fernando Perez <fperez@colorado.edu>
2928 2005-01-22 Fernando Perez <fperez@colorado.edu>
2927
2929
2928 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2930 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2929 automatic show() calls. After discussing things with JDH, it
2931 automatic show() calls. After discussing things with JDH, it
2930 turns out there are too many corner cases where this can go wrong.
2932 turns out there are too many corner cases where this can go wrong.
2931 It's best not to try to be 'too smart', and simply have ipython
2933 It's best not to try to be 'too smart', and simply have ipython
2932 reproduce as much as possible the default behavior of a normal
2934 reproduce as much as possible the default behavior of a normal
2933 python shell.
2935 python shell.
2934
2936
2935 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2937 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2936 line-splitting regexp and _prefilter() to avoid calling getattr()
2938 line-splitting regexp and _prefilter() to avoid calling getattr()
2937 on assignments. This closes
2939 on assignments. This closes
2938 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2940 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2939 readline uses getattr(), so a simple <TAB> keypress is still
2941 readline uses getattr(), so a simple <TAB> keypress is still
2940 enough to trigger getattr() calls on an object.
2942 enough to trigger getattr() calls on an object.
2941
2943
2942 2005-01-21 Fernando Perez <fperez@colorado.edu>
2944 2005-01-21 Fernando Perez <fperez@colorado.edu>
2943
2945
2944 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2946 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2945 docstring under pylab so it doesn't mask the original.
2947 docstring under pylab so it doesn't mask the original.
2946
2948
2947 2005-01-21 *** Released version 0.6.7
2949 2005-01-21 *** Released version 0.6.7
2948
2950
2949 2005-01-21 Fernando Perez <fperez@colorado.edu>
2951 2005-01-21 Fernando Perez <fperez@colorado.edu>
2950
2952
2951 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2953 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2952 signal handling for win32 users in multithreaded mode.
2954 signal handling for win32 users in multithreaded mode.
2953
2955
2954 2005-01-17 Fernando Perez <fperez@colorado.edu>
2956 2005-01-17 Fernando Perez <fperez@colorado.edu>
2955
2957
2956 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2958 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2957 instances with no __init__. After a crash report by Norbert Nemec
2959 instances with no __init__. After a crash report by Norbert Nemec
2958 <Norbert-AT-nemec-online.de>.
2960 <Norbert-AT-nemec-online.de>.
2959
2961
2960 2005-01-14 Fernando Perez <fperez@colorado.edu>
2962 2005-01-14 Fernando Perez <fperez@colorado.edu>
2961
2963
2962 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2964 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2963 names for verbose exceptions, when multiple dotted names and the
2965 names for verbose exceptions, when multiple dotted names and the
2964 'parent' object were present on the same line.
2966 'parent' object were present on the same line.
2965
2967
2966 2005-01-11 Fernando Perez <fperez@colorado.edu>
2968 2005-01-11 Fernando Perez <fperez@colorado.edu>
2967
2969
2968 * IPython/genutils.py (flag_calls): new utility to trap and flag
2970 * IPython/genutils.py (flag_calls): new utility to trap and flag
2969 calls in functions. I need it to clean up matplotlib support.
2971 calls in functions. I need it to clean up matplotlib support.
2970 Also removed some deprecated code in genutils.
2972 Also removed some deprecated code in genutils.
2971
2973
2972 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2974 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2973 that matplotlib scripts called with %run, which don't call show()
2975 that matplotlib scripts called with %run, which don't call show()
2974 themselves, still have their plotting windows open.
2976 themselves, still have their plotting windows open.
2975
2977
2976 2005-01-05 Fernando Perez <fperez@colorado.edu>
2978 2005-01-05 Fernando Perez <fperez@colorado.edu>
2977
2979
2978 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2980 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2979 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2981 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2980
2982
2981 2004-12-19 Fernando Perez <fperez@colorado.edu>
2983 2004-12-19 Fernando Perez <fperez@colorado.edu>
2982
2984
2983 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2985 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2984 parent_runcode, which was an eyesore. The same result can be
2986 parent_runcode, which was an eyesore. The same result can be
2985 obtained with Python's regular superclass mechanisms.
2987 obtained with Python's regular superclass mechanisms.
2986
2988
2987 2004-12-17 Fernando Perez <fperez@colorado.edu>
2989 2004-12-17 Fernando Perez <fperez@colorado.edu>
2988
2990
2989 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2991 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2990 reported by Prabhu.
2992 reported by Prabhu.
2991 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2993 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2992 sys.stderr) instead of explicitly calling sys.stderr. This helps
2994 sys.stderr) instead of explicitly calling sys.stderr. This helps
2993 maintain our I/O abstractions clean, for future GUI embeddings.
2995 maintain our I/O abstractions clean, for future GUI embeddings.
2994
2996
2995 * IPython/genutils.py (info): added new utility for sys.stderr
2997 * IPython/genutils.py (info): added new utility for sys.stderr
2996 unified info message handling (thin wrapper around warn()).
2998 unified info message handling (thin wrapper around warn()).
2997
2999
2998 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3000 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2999 composite (dotted) names on verbose exceptions.
3001 composite (dotted) names on verbose exceptions.
3000 (VerboseTB.nullrepr): harden against another kind of errors which
3002 (VerboseTB.nullrepr): harden against another kind of errors which
3001 Python's inspect module can trigger, and which were crashing
3003 Python's inspect module can trigger, and which were crashing
3002 IPython. Thanks to a report by Marco Lombardi
3004 IPython. Thanks to a report by Marco Lombardi
3003 <mlombard-AT-ma010192.hq.eso.org>.
3005 <mlombard-AT-ma010192.hq.eso.org>.
3004
3006
3005 2004-12-13 *** Released version 0.6.6
3007 2004-12-13 *** Released version 0.6.6
3006
3008
3007 2004-12-12 Fernando Perez <fperez@colorado.edu>
3009 2004-12-12 Fernando Perez <fperez@colorado.edu>
3008
3010
3009 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3011 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3010 generated by pygtk upon initialization if it was built without
3012 generated by pygtk upon initialization if it was built without
3011 threads (for matplotlib users). After a crash reported by
3013 threads (for matplotlib users). After a crash reported by
3012 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3014 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3013
3015
3014 * IPython/ipmaker.py (make_IPython): fix small bug in the
3016 * IPython/ipmaker.py (make_IPython): fix small bug in the
3015 import_some parameter for multiple imports.
3017 import_some parameter for multiple imports.
3016
3018
3017 * IPython/iplib.py (ipmagic): simplified the interface of
3019 * IPython/iplib.py (ipmagic): simplified the interface of
3018 ipmagic() to take a single string argument, just as it would be
3020 ipmagic() to take a single string argument, just as it would be
3019 typed at the IPython cmd line.
3021 typed at the IPython cmd line.
3020 (ipalias): Added new ipalias() with an interface identical to
3022 (ipalias): Added new ipalias() with an interface identical to
3021 ipmagic(). This completes exposing a pure python interface to the
3023 ipmagic(). This completes exposing a pure python interface to the
3022 alias and magic system, which can be used in loops or more complex
3024 alias and magic system, which can be used in loops or more complex
3023 code where IPython's automatic line mangling is not active.
3025 code where IPython's automatic line mangling is not active.
3024
3026
3025 * IPython/genutils.py (timing): changed interface of timing to
3027 * IPython/genutils.py (timing): changed interface of timing to
3026 simply run code once, which is the most common case. timings()
3028 simply run code once, which is the most common case. timings()
3027 remains unchanged, for the cases where you want multiple runs.
3029 remains unchanged, for the cases where you want multiple runs.
3028
3030
3029 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3031 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3030 bug where Python2.2 crashes with exec'ing code which does not end
3032 bug where Python2.2 crashes with exec'ing code which does not end
3031 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3033 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3032 before.
3034 before.
3033
3035
3034 2004-12-10 Fernando Perez <fperez@colorado.edu>
3036 2004-12-10 Fernando Perez <fperez@colorado.edu>
3035
3037
3036 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3038 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3037 -t to -T, to accomodate the new -t flag in %run (the %run and
3039 -t to -T, to accomodate the new -t flag in %run (the %run and
3038 %prun options are kind of intermixed, and it's not easy to change
3040 %prun options are kind of intermixed, and it's not easy to change
3039 this with the limitations of python's getopt).
3041 this with the limitations of python's getopt).
3040
3042
3041 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3043 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3042 the execution of scripts. It's not as fine-tuned as timeit.py,
3044 the execution of scripts. It's not as fine-tuned as timeit.py,
3043 but it works from inside ipython (and under 2.2, which lacks
3045 but it works from inside ipython (and under 2.2, which lacks
3044 timeit.py). Optionally a number of runs > 1 can be given for
3046 timeit.py). Optionally a number of runs > 1 can be given for
3045 timing very short-running code.
3047 timing very short-running code.
3046
3048
3047 * IPython/genutils.py (uniq_stable): new routine which returns a
3049 * IPython/genutils.py (uniq_stable): new routine which returns a
3048 list of unique elements in any iterable, but in stable order of
3050 list of unique elements in any iterable, but in stable order of
3049 appearance. I needed this for the ultraTB fixes, and it's a handy
3051 appearance. I needed this for the ultraTB fixes, and it's a handy
3050 utility.
3052 utility.
3051
3053
3052 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3054 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3053 dotted names in Verbose exceptions. This had been broken since
3055 dotted names in Verbose exceptions. This had been broken since
3054 the very start, now x.y will properly be printed in a Verbose
3056 the very start, now x.y will properly be printed in a Verbose
3055 traceback, instead of x being shown and y appearing always as an
3057 traceback, instead of x being shown and y appearing always as an
3056 'undefined global'. Getting this to work was a bit tricky,
3058 'undefined global'. Getting this to work was a bit tricky,
3057 because by default python tokenizers are stateless. Saved by
3059 because by default python tokenizers are stateless. Saved by
3058 python's ability to easily add a bit of state to an arbitrary
3060 python's ability to easily add a bit of state to an arbitrary
3059 function (without needing to build a full-blown callable object).
3061 function (without needing to build a full-blown callable object).
3060
3062
3061 Also big cleanup of this code, which had horrendous runtime
3063 Also big cleanup of this code, which had horrendous runtime
3062 lookups of zillions of attributes for colorization. Moved all
3064 lookups of zillions of attributes for colorization. Moved all
3063 this code into a few templates, which make it cleaner and quicker.
3065 this code into a few templates, which make it cleaner and quicker.
3064
3066
3065 Printout quality was also improved for Verbose exceptions: one
3067 Printout quality was also improved for Verbose exceptions: one
3066 variable per line, and memory addresses are printed (this can be
3068 variable per line, and memory addresses are printed (this can be
3067 quite handy in nasty debugging situations, which is what Verbose
3069 quite handy in nasty debugging situations, which is what Verbose
3068 is for).
3070 is for).
3069
3071
3070 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3072 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3071 the command line as scripts to be loaded by embedded instances.
3073 the command line as scripts to be loaded by embedded instances.
3072 Doing so has the potential for an infinite recursion if there are
3074 Doing so has the potential for an infinite recursion if there are
3073 exceptions thrown in the process. This fixes a strange crash
3075 exceptions thrown in the process. This fixes a strange crash
3074 reported by Philippe MULLER <muller-AT-irit.fr>.
3076 reported by Philippe MULLER <muller-AT-irit.fr>.
3075
3077
3076 2004-12-09 Fernando Perez <fperez@colorado.edu>
3078 2004-12-09 Fernando Perez <fperez@colorado.edu>
3077
3079
3078 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3080 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3079 to reflect new names in matplotlib, which now expose the
3081 to reflect new names in matplotlib, which now expose the
3080 matlab-compatible interface via a pylab module instead of the
3082 matlab-compatible interface via a pylab module instead of the
3081 'matlab' name. The new code is backwards compatible, so users of
3083 'matlab' name. The new code is backwards compatible, so users of
3082 all matplotlib versions are OK. Patch by J. Hunter.
3084 all matplotlib versions are OK. Patch by J. Hunter.
3083
3085
3084 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3086 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3085 of __init__ docstrings for instances (class docstrings are already
3087 of __init__ docstrings for instances (class docstrings are already
3086 automatically printed). Instances with customized docstrings
3088 automatically printed). Instances with customized docstrings
3087 (indep. of the class) are also recognized and all 3 separate
3089 (indep. of the class) are also recognized and all 3 separate
3088 docstrings are printed (instance, class, constructor). After some
3090 docstrings are printed (instance, class, constructor). After some
3089 comments/suggestions by J. Hunter.
3091 comments/suggestions by J. Hunter.
3090
3092
3091 2004-12-05 Fernando Perez <fperez@colorado.edu>
3093 2004-12-05 Fernando Perez <fperez@colorado.edu>
3092
3094
3093 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3095 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3094 warnings when tab-completion fails and triggers an exception.
3096 warnings when tab-completion fails and triggers an exception.
3095
3097
3096 2004-12-03 Fernando Perez <fperez@colorado.edu>
3098 2004-12-03 Fernando Perez <fperez@colorado.edu>
3097
3099
3098 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3100 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3099 be triggered when using 'run -p'. An incorrect option flag was
3101 be triggered when using 'run -p'. An incorrect option flag was
3100 being set ('d' instead of 'D').
3102 being set ('d' instead of 'D').
3101 (manpage): fix missing escaped \- sign.
3103 (manpage): fix missing escaped \- sign.
3102
3104
3103 2004-11-30 *** Released version 0.6.5
3105 2004-11-30 *** Released version 0.6.5
3104
3106
3105 2004-11-30 Fernando Perez <fperez@colorado.edu>
3107 2004-11-30 Fernando Perez <fperez@colorado.edu>
3106
3108
3107 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3109 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3108 setting with -d option.
3110 setting with -d option.
3109
3111
3110 * setup.py (docfiles): Fix problem where the doc glob I was using
3112 * setup.py (docfiles): Fix problem where the doc glob I was using
3111 was COMPLETELY BROKEN. It was giving the right files by pure
3113 was COMPLETELY BROKEN. It was giving the right files by pure
3112 accident, but failed once I tried to include ipython.el. Note:
3114 accident, but failed once I tried to include ipython.el. Note:
3113 glob() does NOT allow you to do exclusion on multiple endings!
3115 glob() does NOT allow you to do exclusion on multiple endings!
3114
3116
3115 2004-11-29 Fernando Perez <fperez@colorado.edu>
3117 2004-11-29 Fernando Perez <fperez@colorado.edu>
3116
3118
3117 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3119 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3118 the manpage as the source. Better formatting & consistency.
3120 the manpage as the source. Better formatting & consistency.
3119
3121
3120 * IPython/Magic.py (magic_run): Added new -d option, to run
3122 * IPython/Magic.py (magic_run): Added new -d option, to run
3121 scripts under the control of the python pdb debugger. Note that
3123 scripts under the control of the python pdb debugger. Note that
3122 this required changing the %prun option -d to -D, to avoid a clash
3124 this required changing the %prun option -d to -D, to avoid a clash
3123 (since %run must pass options to %prun, and getopt is too dumb to
3125 (since %run must pass options to %prun, and getopt is too dumb to
3124 handle options with string values with embedded spaces). Thanks
3126 handle options with string values with embedded spaces). Thanks
3125 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3127 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3126 (magic_who_ls): added type matching to %who and %whos, so that one
3128 (magic_who_ls): added type matching to %who and %whos, so that one
3127 can filter their output to only include variables of certain
3129 can filter their output to only include variables of certain
3128 types. Another suggestion by Matthew.
3130 types. Another suggestion by Matthew.
3129 (magic_whos): Added memory summaries in kb and Mb for arrays.
3131 (magic_whos): Added memory summaries in kb and Mb for arrays.
3130 (magic_who): Improve formatting (break lines every 9 vars).
3132 (magic_who): Improve formatting (break lines every 9 vars).
3131
3133
3132 2004-11-28 Fernando Perez <fperez@colorado.edu>
3134 2004-11-28 Fernando Perez <fperez@colorado.edu>
3133
3135
3134 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3136 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3135 cache when empty lines were present.
3137 cache when empty lines were present.
3136
3138
3137 2004-11-24 Fernando Perez <fperez@colorado.edu>
3139 2004-11-24 Fernando Perez <fperez@colorado.edu>
3138
3140
3139 * IPython/usage.py (__doc__): document the re-activated threading
3141 * IPython/usage.py (__doc__): document the re-activated threading
3140 options for WX and GTK.
3142 options for WX and GTK.
3141
3143
3142 2004-11-23 Fernando Perez <fperez@colorado.edu>
3144 2004-11-23 Fernando Perez <fperez@colorado.edu>
3143
3145
3144 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3146 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3145 the -wthread and -gthread options, along with a new -tk one to try
3147 the -wthread and -gthread options, along with a new -tk one to try
3146 and coordinate Tk threading with wx/gtk. The tk support is very
3148 and coordinate Tk threading with wx/gtk. The tk support is very
3147 platform dependent, since it seems to require Tcl and Tk to be
3149 platform dependent, since it seems to require Tcl and Tk to be
3148 built with threads (Fedora1/2 appears NOT to have it, but in
3150 built with threads (Fedora1/2 appears NOT to have it, but in
3149 Prabhu's Debian boxes it works OK). But even with some Tk
3151 Prabhu's Debian boxes it works OK). But even with some Tk
3150 limitations, this is a great improvement.
3152 limitations, this is a great improvement.
3151
3153
3152 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3154 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3153 info in user prompts. Patch by Prabhu.
3155 info in user prompts. Patch by Prabhu.
3154
3156
3155 2004-11-18 Fernando Perez <fperez@colorado.edu>
3157 2004-11-18 Fernando Perez <fperez@colorado.edu>
3156
3158
3157 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3159 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3158 EOFErrors and bail, to avoid infinite loops if a non-terminating
3160 EOFErrors and bail, to avoid infinite loops if a non-terminating
3159 file is fed into ipython. Patch submitted in issue 19 by user,
3161 file is fed into ipython. Patch submitted in issue 19 by user,
3160 many thanks.
3162 many thanks.
3161
3163
3162 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3164 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3163 autoquote/parens in continuation prompts, which can cause lots of
3165 autoquote/parens in continuation prompts, which can cause lots of
3164 problems. Closes roundup issue 20.
3166 problems. Closes roundup issue 20.
3165
3167
3166 2004-11-17 Fernando Perez <fperez@colorado.edu>
3168 2004-11-17 Fernando Perez <fperez@colorado.edu>
3167
3169
3168 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3170 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3169 reported as debian bug #280505. I'm not sure my local changelog
3171 reported as debian bug #280505. I'm not sure my local changelog
3170 entry has the proper debian format (Jack?).
3172 entry has the proper debian format (Jack?).
3171
3173
3172 2004-11-08 *** Released version 0.6.4
3174 2004-11-08 *** Released version 0.6.4
3173
3175
3174 2004-11-08 Fernando Perez <fperez@colorado.edu>
3176 2004-11-08 Fernando Perez <fperez@colorado.edu>
3175
3177
3176 * IPython/iplib.py (init_readline): Fix exit message for Windows
3178 * IPython/iplib.py (init_readline): Fix exit message for Windows
3177 when readline is active. Thanks to a report by Eric Jones
3179 when readline is active. Thanks to a report by Eric Jones
3178 <eric-AT-enthought.com>.
3180 <eric-AT-enthought.com>.
3179
3181
3180 2004-11-07 Fernando Perez <fperez@colorado.edu>
3182 2004-11-07 Fernando Perez <fperez@colorado.edu>
3181
3183
3182 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3184 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3183 sometimes seen by win2k/cygwin users.
3185 sometimes seen by win2k/cygwin users.
3184
3186
3185 2004-11-06 Fernando Perez <fperez@colorado.edu>
3187 2004-11-06 Fernando Perez <fperez@colorado.edu>
3186
3188
3187 * IPython/iplib.py (interact): Change the handling of %Exit from
3189 * IPython/iplib.py (interact): Change the handling of %Exit from
3188 trying to propagate a SystemExit to an internal ipython flag.
3190 trying to propagate a SystemExit to an internal ipython flag.
3189 This is less elegant than using Python's exception mechanism, but
3191 This is less elegant than using Python's exception mechanism, but
3190 I can't get that to work reliably with threads, so under -pylab
3192 I can't get that to work reliably with threads, so under -pylab
3191 %Exit was hanging IPython. Cross-thread exception handling is
3193 %Exit was hanging IPython. Cross-thread exception handling is
3192 really a bitch. Thaks to a bug report by Stephen Walton
3194 really a bitch. Thaks to a bug report by Stephen Walton
3193 <stephen.walton-AT-csun.edu>.
3195 <stephen.walton-AT-csun.edu>.
3194
3196
3195 2004-11-04 Fernando Perez <fperez@colorado.edu>
3197 2004-11-04 Fernando Perez <fperez@colorado.edu>
3196
3198
3197 * IPython/iplib.py (raw_input_original): store a pointer to the
3199 * IPython/iplib.py (raw_input_original): store a pointer to the
3198 true raw_input to harden against code which can modify it
3200 true raw_input to harden against code which can modify it
3199 (wx.py.PyShell does this and would otherwise crash ipython).
3201 (wx.py.PyShell does this and would otherwise crash ipython).
3200 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3202 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3201
3203
3202 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3204 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3203 Ctrl-C problem, which does not mess up the input line.
3205 Ctrl-C problem, which does not mess up the input line.
3204
3206
3205 2004-11-03 Fernando Perez <fperez@colorado.edu>
3207 2004-11-03 Fernando Perez <fperez@colorado.edu>
3206
3208
3207 * IPython/Release.py: Changed licensing to BSD, in all files.
3209 * IPython/Release.py: Changed licensing to BSD, in all files.
3208 (name): lowercase name for tarball/RPM release.
3210 (name): lowercase name for tarball/RPM release.
3209
3211
3210 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3212 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3211 use throughout ipython.
3213 use throughout ipython.
3212
3214
3213 * IPython/Magic.py (Magic._ofind): Switch to using the new
3215 * IPython/Magic.py (Magic._ofind): Switch to using the new
3214 OInspect.getdoc() function.
3216 OInspect.getdoc() function.
3215
3217
3216 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3218 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3217 of the line currently being canceled via Ctrl-C. It's extremely
3219 of the line currently being canceled via Ctrl-C. It's extremely
3218 ugly, but I don't know how to do it better (the problem is one of
3220 ugly, but I don't know how to do it better (the problem is one of
3219 handling cross-thread exceptions).
3221 handling cross-thread exceptions).
3220
3222
3221 2004-10-28 Fernando Perez <fperez@colorado.edu>
3223 2004-10-28 Fernando Perez <fperez@colorado.edu>
3222
3224
3223 * IPython/Shell.py (signal_handler): add signal handlers to trap
3225 * IPython/Shell.py (signal_handler): add signal handlers to trap
3224 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3226 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3225 report by Francesc Alted.
3227 report by Francesc Alted.
3226
3228
3227 2004-10-21 Fernando Perez <fperez@colorado.edu>
3229 2004-10-21 Fernando Perez <fperez@colorado.edu>
3228
3230
3229 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3231 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3230 to % for pysh syntax extensions.
3232 to % for pysh syntax extensions.
3231
3233
3232 2004-10-09 Fernando Perez <fperez@colorado.edu>
3234 2004-10-09 Fernando Perez <fperez@colorado.edu>
3233
3235
3234 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3236 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3235 arrays to print a more useful summary, without calling str(arr).
3237 arrays to print a more useful summary, without calling str(arr).
3236 This avoids the problem of extremely lengthy computations which
3238 This avoids the problem of extremely lengthy computations which
3237 occur if arr is large, and appear to the user as a system lockup
3239 occur if arr is large, and appear to the user as a system lockup
3238 with 100% cpu activity. After a suggestion by Kristian Sandberg
3240 with 100% cpu activity. After a suggestion by Kristian Sandberg
3239 <Kristian.Sandberg@colorado.edu>.
3241 <Kristian.Sandberg@colorado.edu>.
3240 (Magic.__init__): fix bug in global magic escapes not being
3242 (Magic.__init__): fix bug in global magic escapes not being
3241 correctly set.
3243 correctly set.
3242
3244
3243 2004-10-08 Fernando Perez <fperez@colorado.edu>
3245 2004-10-08 Fernando Perez <fperez@colorado.edu>
3244
3246
3245 * IPython/Magic.py (__license__): change to absolute imports of
3247 * IPython/Magic.py (__license__): change to absolute imports of
3246 ipython's own internal packages, to start adapting to the absolute
3248 ipython's own internal packages, to start adapting to the absolute
3247 import requirement of PEP-328.
3249 import requirement of PEP-328.
3248
3250
3249 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3251 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3250 files, and standardize author/license marks through the Release
3252 files, and standardize author/license marks through the Release
3251 module instead of having per/file stuff (except for files with
3253 module instead of having per/file stuff (except for files with
3252 particular licenses, like the MIT/PSF-licensed codes).
3254 particular licenses, like the MIT/PSF-licensed codes).
3253
3255
3254 * IPython/Debugger.py: remove dead code for python 2.1
3256 * IPython/Debugger.py: remove dead code for python 2.1
3255
3257
3256 2004-10-04 Fernando Perez <fperez@colorado.edu>
3258 2004-10-04 Fernando Perez <fperez@colorado.edu>
3257
3259
3258 * IPython/iplib.py (ipmagic): New function for accessing magics
3260 * IPython/iplib.py (ipmagic): New function for accessing magics
3259 via a normal python function call.
3261 via a normal python function call.
3260
3262
3261 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3263 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3262 from '@' to '%', to accomodate the new @decorator syntax of python
3264 from '@' to '%', to accomodate the new @decorator syntax of python
3263 2.4.
3265 2.4.
3264
3266
3265 2004-09-29 Fernando Perez <fperez@colorado.edu>
3267 2004-09-29 Fernando Perez <fperez@colorado.edu>
3266
3268
3267 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3269 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3268 matplotlib.use to prevent running scripts which try to switch
3270 matplotlib.use to prevent running scripts which try to switch
3269 interactive backends from within ipython. This will just crash
3271 interactive backends from within ipython. This will just crash
3270 the python interpreter, so we can't allow it (but a detailed error
3272 the python interpreter, so we can't allow it (but a detailed error
3271 is given to the user).
3273 is given to the user).
3272
3274
3273 2004-09-28 Fernando Perez <fperez@colorado.edu>
3275 2004-09-28 Fernando Perez <fperez@colorado.edu>
3274
3276
3275 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3277 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3276 matplotlib-related fixes so that using @run with non-matplotlib
3278 matplotlib-related fixes so that using @run with non-matplotlib
3277 scripts doesn't pop up spurious plot windows. This requires
3279 scripts doesn't pop up spurious plot windows. This requires
3278 matplotlib >= 0.63, where I had to make some changes as well.
3280 matplotlib >= 0.63, where I had to make some changes as well.
3279
3281
3280 * IPython/ipmaker.py (make_IPython): update version requirement to
3282 * IPython/ipmaker.py (make_IPython): update version requirement to
3281 python 2.2.
3283 python 2.2.
3282
3284
3283 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3285 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3284 banner arg for embedded customization.
3286 banner arg for embedded customization.
3285
3287
3286 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3288 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3287 explicit uses of __IP as the IPython's instance name. Now things
3289 explicit uses of __IP as the IPython's instance name. Now things
3288 are properly handled via the shell.name value. The actual code
3290 are properly handled via the shell.name value. The actual code
3289 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3291 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3290 is much better than before. I'll clean things completely when the
3292 is much better than before. I'll clean things completely when the
3291 magic stuff gets a real overhaul.
3293 magic stuff gets a real overhaul.
3292
3294
3293 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3295 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3294 minor changes to debian dir.
3296 minor changes to debian dir.
3295
3297
3296 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3298 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3297 pointer to the shell itself in the interactive namespace even when
3299 pointer to the shell itself in the interactive namespace even when
3298 a user-supplied dict is provided. This is needed for embedding
3300 a user-supplied dict is provided. This is needed for embedding
3299 purposes (found by tests with Michel Sanner).
3301 purposes (found by tests with Michel Sanner).
3300
3302
3301 2004-09-27 Fernando Perez <fperez@colorado.edu>
3303 2004-09-27 Fernando Perez <fperez@colorado.edu>
3302
3304
3303 * IPython/UserConfig/ipythonrc: remove []{} from
3305 * IPython/UserConfig/ipythonrc: remove []{} from
3304 readline_remove_delims, so that things like [modname.<TAB> do
3306 readline_remove_delims, so that things like [modname.<TAB> do
3305 proper completion. This disables [].TAB, but that's a less common
3307 proper completion. This disables [].TAB, but that's a less common
3306 case than module names in list comprehensions, for example.
3308 case than module names in list comprehensions, for example.
3307 Thanks to a report by Andrea Riciputi.
3309 Thanks to a report by Andrea Riciputi.
3308
3310
3309 2004-09-09 Fernando Perez <fperez@colorado.edu>
3311 2004-09-09 Fernando Perez <fperez@colorado.edu>
3310
3312
3311 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3313 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3312 blocking problems in win32 and osx. Fix by John.
3314 blocking problems in win32 and osx. Fix by John.
3313
3315
3314 2004-09-08 Fernando Perez <fperez@colorado.edu>
3316 2004-09-08 Fernando Perez <fperez@colorado.edu>
3315
3317
3316 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3318 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3317 for Win32 and OSX. Fix by John Hunter.
3319 for Win32 and OSX. Fix by John Hunter.
3318
3320
3319 2004-08-30 *** Released version 0.6.3
3321 2004-08-30 *** Released version 0.6.3
3320
3322
3321 2004-08-30 Fernando Perez <fperez@colorado.edu>
3323 2004-08-30 Fernando Perez <fperez@colorado.edu>
3322
3324
3323 * setup.py (isfile): Add manpages to list of dependent files to be
3325 * setup.py (isfile): Add manpages to list of dependent files to be
3324 updated.
3326 updated.
3325
3327
3326 2004-08-27 Fernando Perez <fperez@colorado.edu>
3328 2004-08-27 Fernando Perez <fperez@colorado.edu>
3327
3329
3328 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3330 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3329 for now. They don't really work with standalone WX/GTK code
3331 for now. They don't really work with standalone WX/GTK code
3330 (though matplotlib IS working fine with both of those backends).
3332 (though matplotlib IS working fine with both of those backends).
3331 This will neeed much more testing. I disabled most things with
3333 This will neeed much more testing. I disabled most things with
3332 comments, so turning it back on later should be pretty easy.
3334 comments, so turning it back on later should be pretty easy.
3333
3335
3334 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3336 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3335 autocalling of expressions like r'foo', by modifying the line
3337 autocalling of expressions like r'foo', by modifying the line
3336 split regexp. Closes
3338 split regexp. Closes
3337 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3339 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3338 Riley <ipythonbugs-AT-sabi.net>.
3340 Riley <ipythonbugs-AT-sabi.net>.
3339 (InteractiveShell.mainloop): honor --nobanner with banner
3341 (InteractiveShell.mainloop): honor --nobanner with banner
3340 extensions.
3342 extensions.
3341
3343
3342 * IPython/Shell.py: Significant refactoring of all classes, so
3344 * IPython/Shell.py: Significant refactoring of all classes, so
3343 that we can really support ALL matplotlib backends and threading
3345 that we can really support ALL matplotlib backends and threading
3344 models (John spotted a bug with Tk which required this). Now we
3346 models (John spotted a bug with Tk which required this). Now we
3345 should support single-threaded, WX-threads and GTK-threads, both
3347 should support single-threaded, WX-threads and GTK-threads, both
3346 for generic code and for matplotlib.
3348 for generic code and for matplotlib.
3347
3349
3348 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3350 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3349 -pylab, to simplify things for users. Will also remove the pylab
3351 -pylab, to simplify things for users. Will also remove the pylab
3350 profile, since now all of matplotlib configuration is directly
3352 profile, since now all of matplotlib configuration is directly
3351 handled here. This also reduces startup time.
3353 handled here. This also reduces startup time.
3352
3354
3353 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3355 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3354 shell wasn't being correctly called. Also in IPShellWX.
3356 shell wasn't being correctly called. Also in IPShellWX.
3355
3357
3356 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3358 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3357 fine-tune banner.
3359 fine-tune banner.
3358
3360
3359 * IPython/numutils.py (spike): Deprecate these spike functions,
3361 * IPython/numutils.py (spike): Deprecate these spike functions,
3360 delete (long deprecated) gnuplot_exec handler.
3362 delete (long deprecated) gnuplot_exec handler.
3361
3363
3362 2004-08-26 Fernando Perez <fperez@colorado.edu>
3364 2004-08-26 Fernando Perez <fperez@colorado.edu>
3363
3365
3364 * ipython.1: Update for threading options, plus some others which
3366 * ipython.1: Update for threading options, plus some others which
3365 were missing.
3367 were missing.
3366
3368
3367 * IPython/ipmaker.py (__call__): Added -wthread option for
3369 * IPython/ipmaker.py (__call__): Added -wthread option for
3368 wxpython thread handling. Make sure threading options are only
3370 wxpython thread handling. Make sure threading options are only
3369 valid at the command line.
3371 valid at the command line.
3370
3372
3371 * scripts/ipython: moved shell selection into a factory function
3373 * scripts/ipython: moved shell selection into a factory function
3372 in Shell.py, to keep the starter script to a minimum.
3374 in Shell.py, to keep the starter script to a minimum.
3373
3375
3374 2004-08-25 Fernando Perez <fperez@colorado.edu>
3376 2004-08-25 Fernando Perez <fperez@colorado.edu>
3375
3377
3376 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3378 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3377 John. Along with some recent changes he made to matplotlib, the
3379 John. Along with some recent changes he made to matplotlib, the
3378 next versions of both systems should work very well together.
3380 next versions of both systems should work very well together.
3379
3381
3380 2004-08-24 Fernando Perez <fperez@colorado.edu>
3382 2004-08-24 Fernando Perez <fperez@colorado.edu>
3381
3383
3382 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3384 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3383 tried to switch the profiling to using hotshot, but I'm getting
3385 tried to switch the profiling to using hotshot, but I'm getting
3384 strange errors from prof.runctx() there. I may be misreading the
3386 strange errors from prof.runctx() there. I may be misreading the
3385 docs, but it looks weird. For now the profiling code will
3387 docs, but it looks weird. For now the profiling code will
3386 continue to use the standard profiler.
3388 continue to use the standard profiler.
3387
3389
3388 2004-08-23 Fernando Perez <fperez@colorado.edu>
3390 2004-08-23 Fernando Perez <fperez@colorado.edu>
3389
3391
3390 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3392 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3391 threaded shell, by John Hunter. It's not quite ready yet, but
3393 threaded shell, by John Hunter. It's not quite ready yet, but
3392 close.
3394 close.
3393
3395
3394 2004-08-22 Fernando Perez <fperez@colorado.edu>
3396 2004-08-22 Fernando Perez <fperez@colorado.edu>
3395
3397
3396 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3398 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3397 in Magic and ultraTB.
3399 in Magic and ultraTB.
3398
3400
3399 * ipython.1: document threading options in manpage.
3401 * ipython.1: document threading options in manpage.
3400
3402
3401 * scripts/ipython: Changed name of -thread option to -gthread,
3403 * scripts/ipython: Changed name of -thread option to -gthread,
3402 since this is GTK specific. I want to leave the door open for a
3404 since this is GTK specific. I want to leave the door open for a
3403 -wthread option for WX, which will most likely be necessary. This
3405 -wthread option for WX, which will most likely be necessary. This
3404 change affects usage and ipmaker as well.
3406 change affects usage and ipmaker as well.
3405
3407
3406 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3408 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3407 handle the matplotlib shell issues. Code by John Hunter
3409 handle the matplotlib shell issues. Code by John Hunter
3408 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3410 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3409 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3411 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3410 broken (and disabled for end users) for now, but it puts the
3412 broken (and disabled for end users) for now, but it puts the
3411 infrastructure in place.
3413 infrastructure in place.
3412
3414
3413 2004-08-21 Fernando Perez <fperez@colorado.edu>
3415 2004-08-21 Fernando Perez <fperez@colorado.edu>
3414
3416
3415 * ipythonrc-pylab: Add matplotlib support.
3417 * ipythonrc-pylab: Add matplotlib support.
3416
3418
3417 * matplotlib_config.py: new files for matplotlib support, part of
3419 * matplotlib_config.py: new files for matplotlib support, part of
3418 the pylab profile.
3420 the pylab profile.
3419
3421
3420 * IPython/usage.py (__doc__): documented the threading options.
3422 * IPython/usage.py (__doc__): documented the threading options.
3421
3423
3422 2004-08-20 Fernando Perez <fperez@colorado.edu>
3424 2004-08-20 Fernando Perez <fperez@colorado.edu>
3423
3425
3424 * ipython: Modified the main calling routine to handle the -thread
3426 * ipython: Modified the main calling routine to handle the -thread
3425 and -mpthread options. This needs to be done as a top-level hack,
3427 and -mpthread options. This needs to be done as a top-level hack,
3426 because it determines which class to instantiate for IPython
3428 because it determines which class to instantiate for IPython
3427 itself.
3429 itself.
3428
3430
3429 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3431 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3430 classes to support multithreaded GTK operation without blocking,
3432 classes to support multithreaded GTK operation without blocking,
3431 and matplotlib with all backends. This is a lot of still very
3433 and matplotlib with all backends. This is a lot of still very
3432 experimental code, and threads are tricky. So it may still have a
3434 experimental code, and threads are tricky. So it may still have a
3433 few rough edges... This code owes a lot to
3435 few rough edges... This code owes a lot to
3434 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3436 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3435 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3437 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3436 to John Hunter for all the matplotlib work.
3438 to John Hunter for all the matplotlib work.
3437
3439
3438 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3440 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3439 options for gtk thread and matplotlib support.
3441 options for gtk thread and matplotlib support.
3440
3442
3441 2004-08-16 Fernando Perez <fperez@colorado.edu>
3443 2004-08-16 Fernando Perez <fperez@colorado.edu>
3442
3444
3443 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3445 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3444 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3446 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3445 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3447 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3446
3448
3447 2004-08-11 Fernando Perez <fperez@colorado.edu>
3449 2004-08-11 Fernando Perez <fperez@colorado.edu>
3448
3450
3449 * setup.py (isfile): Fix build so documentation gets updated for
3451 * setup.py (isfile): Fix build so documentation gets updated for
3450 rpms (it was only done for .tgz builds).
3452 rpms (it was only done for .tgz builds).
3451
3453
3452 2004-08-10 Fernando Perez <fperez@colorado.edu>
3454 2004-08-10 Fernando Perez <fperez@colorado.edu>
3453
3455
3454 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3456 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3455
3457
3456 * iplib.py : Silence syntax error exceptions in tab-completion.
3458 * iplib.py : Silence syntax error exceptions in tab-completion.
3457
3459
3458 2004-08-05 Fernando Perez <fperez@colorado.edu>
3460 2004-08-05 Fernando Perez <fperez@colorado.edu>
3459
3461
3460 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3462 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3461 'color off' mark for continuation prompts. This was causing long
3463 'color off' mark for continuation prompts. This was causing long
3462 continuation lines to mis-wrap.
3464 continuation lines to mis-wrap.
3463
3465
3464 2004-08-01 Fernando Perez <fperez@colorado.edu>
3466 2004-08-01 Fernando Perez <fperez@colorado.edu>
3465
3467
3466 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3468 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3467 for building ipython to be a parameter. All this is necessary
3469 for building ipython to be a parameter. All this is necessary
3468 right now to have a multithreaded version, but this insane
3470 right now to have a multithreaded version, but this insane
3469 non-design will be cleaned up soon. For now, it's a hack that
3471 non-design will be cleaned up soon. For now, it's a hack that
3470 works.
3472 works.
3471
3473
3472 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3474 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3473 args in various places. No bugs so far, but it's a dangerous
3475 args in various places. No bugs so far, but it's a dangerous
3474 practice.
3476 practice.
3475
3477
3476 2004-07-31 Fernando Perez <fperez@colorado.edu>
3478 2004-07-31 Fernando Perez <fperez@colorado.edu>
3477
3479
3478 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3480 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3479 fix completion of files with dots in their names under most
3481 fix completion of files with dots in their names under most
3480 profiles (pysh was OK because the completion order is different).
3482 profiles (pysh was OK because the completion order is different).
3481
3483
3482 2004-07-27 Fernando Perez <fperez@colorado.edu>
3484 2004-07-27 Fernando Perez <fperez@colorado.edu>
3483
3485
3484 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3486 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3485 keywords manually, b/c the one in keyword.py was removed in python
3487 keywords manually, b/c the one in keyword.py was removed in python
3486 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3488 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3487 This is NOT a bug under python 2.3 and earlier.
3489 This is NOT a bug under python 2.3 and earlier.
3488
3490
3489 2004-07-26 Fernando Perez <fperez@colorado.edu>
3491 2004-07-26 Fernando Perez <fperez@colorado.edu>
3490
3492
3491 * IPython/ultraTB.py (VerboseTB.text): Add another
3493 * IPython/ultraTB.py (VerboseTB.text): Add another
3492 linecache.checkcache() call to try to prevent inspect.py from
3494 linecache.checkcache() call to try to prevent inspect.py from
3493 crashing under python 2.3. I think this fixes
3495 crashing under python 2.3. I think this fixes
3494 http://www.scipy.net/roundup/ipython/issue17.
3496 http://www.scipy.net/roundup/ipython/issue17.
3495
3497
3496 2004-07-26 *** Released version 0.6.2
3498 2004-07-26 *** Released version 0.6.2
3497
3499
3498 2004-07-26 Fernando Perez <fperez@colorado.edu>
3500 2004-07-26 Fernando Perez <fperez@colorado.edu>
3499
3501
3500 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3502 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3501 fail for any number.
3503 fail for any number.
3502 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3504 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3503 empty bookmarks.
3505 empty bookmarks.
3504
3506
3505 2004-07-26 *** Released version 0.6.1
3507 2004-07-26 *** Released version 0.6.1
3506
3508
3507 2004-07-26 Fernando Perez <fperez@colorado.edu>
3509 2004-07-26 Fernando Perez <fperez@colorado.edu>
3508
3510
3509 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3511 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3510
3512
3511 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3513 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3512 escaping '()[]{}' in filenames.
3514 escaping '()[]{}' in filenames.
3513
3515
3514 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3516 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3515 Python 2.2 users who lack a proper shlex.split.
3517 Python 2.2 users who lack a proper shlex.split.
3516
3518
3517 2004-07-19 Fernando Perez <fperez@colorado.edu>
3519 2004-07-19 Fernando Perez <fperez@colorado.edu>
3518
3520
3519 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3521 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3520 for reading readline's init file. I follow the normal chain:
3522 for reading readline's init file. I follow the normal chain:
3521 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3523 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3522 report by Mike Heeter. This closes
3524 report by Mike Heeter. This closes
3523 http://www.scipy.net/roundup/ipython/issue16.
3525 http://www.scipy.net/roundup/ipython/issue16.
3524
3526
3525 2004-07-18 Fernando Perez <fperez@colorado.edu>
3527 2004-07-18 Fernando Perez <fperez@colorado.edu>
3526
3528
3527 * IPython/iplib.py (__init__): Add better handling of '\' under
3529 * IPython/iplib.py (__init__): Add better handling of '\' under
3528 Win32 for filenames. After a patch by Ville.
3530 Win32 for filenames. After a patch by Ville.
3529
3531
3530 2004-07-17 Fernando Perez <fperez@colorado.edu>
3532 2004-07-17 Fernando Perez <fperez@colorado.edu>
3531
3533
3532 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3534 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3533 autocalling would be triggered for 'foo is bar' if foo is
3535 autocalling would be triggered for 'foo is bar' if foo is
3534 callable. I also cleaned up the autocall detection code to use a
3536 callable. I also cleaned up the autocall detection code to use a
3535 regexp, which is faster. Bug reported by Alexander Schmolck.
3537 regexp, which is faster. Bug reported by Alexander Schmolck.
3536
3538
3537 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3539 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3538 '?' in them would confuse the help system. Reported by Alex
3540 '?' in them would confuse the help system. Reported by Alex
3539 Schmolck.
3541 Schmolck.
3540
3542
3541 2004-07-16 Fernando Perez <fperez@colorado.edu>
3543 2004-07-16 Fernando Perez <fperez@colorado.edu>
3542
3544
3543 * IPython/GnuplotInteractive.py (__all__): added plot2.
3545 * IPython/GnuplotInteractive.py (__all__): added plot2.
3544
3546
3545 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3547 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3546 plotting dictionaries, lists or tuples of 1d arrays.
3548 plotting dictionaries, lists or tuples of 1d arrays.
3547
3549
3548 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3550 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3549 optimizations.
3551 optimizations.
3550
3552
3551 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3553 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3552 the information which was there from Janko's original IPP code:
3554 the information which was there from Janko's original IPP code:
3553
3555
3554 03.05.99 20:53 porto.ifm.uni-kiel.de
3556 03.05.99 20:53 porto.ifm.uni-kiel.de
3555 --Started changelog.
3557 --Started changelog.
3556 --make clear do what it say it does
3558 --make clear do what it say it does
3557 --added pretty output of lines from inputcache
3559 --added pretty output of lines from inputcache
3558 --Made Logger a mixin class, simplifies handling of switches
3560 --Made Logger a mixin class, simplifies handling of switches
3559 --Added own completer class. .string<TAB> expands to last history
3561 --Added own completer class. .string<TAB> expands to last history
3560 line which starts with string. The new expansion is also present
3562 line which starts with string. The new expansion is also present
3561 with Ctrl-r from the readline library. But this shows, who this
3563 with Ctrl-r from the readline library. But this shows, who this
3562 can be done for other cases.
3564 can be done for other cases.
3563 --Added convention that all shell functions should accept a
3565 --Added convention that all shell functions should accept a
3564 parameter_string This opens the door for different behaviour for
3566 parameter_string This opens the door for different behaviour for
3565 each function. @cd is a good example of this.
3567 each function. @cd is a good example of this.
3566
3568
3567 04.05.99 12:12 porto.ifm.uni-kiel.de
3569 04.05.99 12:12 porto.ifm.uni-kiel.de
3568 --added logfile rotation
3570 --added logfile rotation
3569 --added new mainloop method which freezes first the namespace
3571 --added new mainloop method which freezes first the namespace
3570
3572
3571 07.05.99 21:24 porto.ifm.uni-kiel.de
3573 07.05.99 21:24 porto.ifm.uni-kiel.de
3572 --added the docreader classes. Now there is a help system.
3574 --added the docreader classes. Now there is a help system.
3573 -This is only a first try. Currently it's not easy to put new
3575 -This is only a first try. Currently it's not easy to put new
3574 stuff in the indices. But this is the way to go. Info would be
3576 stuff in the indices. But this is the way to go. Info would be
3575 better, but HTML is every where and not everybody has an info
3577 better, but HTML is every where and not everybody has an info
3576 system installed and it's not so easy to change html-docs to info.
3578 system installed and it's not so easy to change html-docs to info.
3577 --added global logfile option
3579 --added global logfile option
3578 --there is now a hook for object inspection method pinfo needs to
3580 --there is now a hook for object inspection method pinfo needs to
3579 be provided for this. Can be reached by two '??'.
3581 be provided for this. Can be reached by two '??'.
3580
3582
3581 08.05.99 20:51 porto.ifm.uni-kiel.de
3583 08.05.99 20:51 porto.ifm.uni-kiel.de
3582 --added a README
3584 --added a README
3583 --bug in rc file. Something has changed so functions in the rc
3585 --bug in rc file. Something has changed so functions in the rc
3584 file need to reference the shell and not self. Not clear if it's a
3586 file need to reference the shell and not self. Not clear if it's a
3585 bug or feature.
3587 bug or feature.
3586 --changed rc file for new behavior
3588 --changed rc file for new behavior
3587
3589
3588 2004-07-15 Fernando Perez <fperez@colorado.edu>
3590 2004-07-15 Fernando Perez <fperez@colorado.edu>
3589
3591
3590 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3592 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3591 cache was falling out of sync in bizarre manners when multi-line
3593 cache was falling out of sync in bizarre manners when multi-line
3592 input was present. Minor optimizations and cleanup.
3594 input was present. Minor optimizations and cleanup.
3593
3595
3594 (Logger): Remove old Changelog info for cleanup. This is the
3596 (Logger): Remove old Changelog info for cleanup. This is the
3595 information which was there from Janko's original code:
3597 information which was there from Janko's original code:
3596
3598
3597 Changes to Logger: - made the default log filename a parameter
3599 Changes to Logger: - made the default log filename a parameter
3598
3600
3599 - put a check for lines beginning with !@? in log(). Needed
3601 - put a check for lines beginning with !@? in log(). Needed
3600 (even if the handlers properly log their lines) for mid-session
3602 (even if the handlers properly log their lines) for mid-session
3601 logging activation to work properly. Without this, lines logged
3603 logging activation to work properly. Without this, lines logged
3602 in mid session, which get read from the cache, would end up
3604 in mid session, which get read from the cache, would end up
3603 'bare' (with !@? in the open) in the log. Now they are caught
3605 'bare' (with !@? in the open) in the log. Now they are caught
3604 and prepended with a #.
3606 and prepended with a #.
3605
3607
3606 * IPython/iplib.py (InteractiveShell.init_readline): added check
3608 * IPython/iplib.py (InteractiveShell.init_readline): added check
3607 in case MagicCompleter fails to be defined, so we don't crash.
3609 in case MagicCompleter fails to be defined, so we don't crash.
3608
3610
3609 2004-07-13 Fernando Perez <fperez@colorado.edu>
3611 2004-07-13 Fernando Perez <fperez@colorado.edu>
3610
3612
3611 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3613 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3612 of EPS if the requested filename ends in '.eps'.
3614 of EPS if the requested filename ends in '.eps'.
3613
3615
3614 2004-07-04 Fernando Perez <fperez@colorado.edu>
3616 2004-07-04 Fernando Perez <fperez@colorado.edu>
3615
3617
3616 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3618 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3617 escaping of quotes when calling the shell.
3619 escaping of quotes when calling the shell.
3618
3620
3619 2004-07-02 Fernando Perez <fperez@colorado.edu>
3621 2004-07-02 Fernando Perez <fperez@colorado.edu>
3620
3622
3621 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3623 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3622 gettext not working because we were clobbering '_'. Fixes
3624 gettext not working because we were clobbering '_'. Fixes
3623 http://www.scipy.net/roundup/ipython/issue6.
3625 http://www.scipy.net/roundup/ipython/issue6.
3624
3626
3625 2004-07-01 Fernando Perez <fperez@colorado.edu>
3627 2004-07-01 Fernando Perez <fperez@colorado.edu>
3626
3628
3627 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3629 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3628 into @cd. Patch by Ville.
3630 into @cd. Patch by Ville.
3629
3631
3630 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3632 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3631 new function to store things after ipmaker runs. Patch by Ville.
3633 new function to store things after ipmaker runs. Patch by Ville.
3632 Eventually this will go away once ipmaker is removed and the class
3634 Eventually this will go away once ipmaker is removed and the class
3633 gets cleaned up, but for now it's ok. Key functionality here is
3635 gets cleaned up, but for now it's ok. Key functionality here is
3634 the addition of the persistent storage mechanism, a dict for
3636 the addition of the persistent storage mechanism, a dict for
3635 keeping data across sessions (for now just bookmarks, but more can
3637 keeping data across sessions (for now just bookmarks, but more can
3636 be implemented later).
3638 be implemented later).
3637
3639
3638 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3640 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3639 persistent across sections. Patch by Ville, I modified it
3641 persistent across sections. Patch by Ville, I modified it
3640 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3642 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3641 added a '-l' option to list all bookmarks.
3643 added a '-l' option to list all bookmarks.
3642
3644
3643 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3645 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3644 center for cleanup. Registered with atexit.register(). I moved
3646 center for cleanup. Registered with atexit.register(). I moved
3645 here the old exit_cleanup(). After a patch by Ville.
3647 here the old exit_cleanup(). After a patch by Ville.
3646
3648
3647 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3649 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3648 characters in the hacked shlex_split for python 2.2.
3650 characters in the hacked shlex_split for python 2.2.
3649
3651
3650 * IPython/iplib.py (file_matches): more fixes to filenames with
3652 * IPython/iplib.py (file_matches): more fixes to filenames with
3651 whitespace in them. It's not perfect, but limitations in python's
3653 whitespace in them. It's not perfect, but limitations in python's
3652 readline make it impossible to go further.
3654 readline make it impossible to go further.
3653
3655
3654 2004-06-29 Fernando Perez <fperez@colorado.edu>
3656 2004-06-29 Fernando Perez <fperez@colorado.edu>
3655
3657
3656 * IPython/iplib.py (file_matches): escape whitespace correctly in
3658 * IPython/iplib.py (file_matches): escape whitespace correctly in
3657 filename completions. Bug reported by Ville.
3659 filename completions. Bug reported by Ville.
3658
3660
3659 2004-06-28 Fernando Perez <fperez@colorado.edu>
3661 2004-06-28 Fernando Perez <fperez@colorado.edu>
3660
3662
3661 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3663 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3662 the history file will be called 'history-PROFNAME' (or just
3664 the history file will be called 'history-PROFNAME' (or just
3663 'history' if no profile is loaded). I was getting annoyed at
3665 'history' if no profile is loaded). I was getting annoyed at
3664 getting my Numerical work history clobbered by pysh sessions.
3666 getting my Numerical work history clobbered by pysh sessions.
3665
3667
3666 * IPython/iplib.py (InteractiveShell.__init__): Internal
3668 * IPython/iplib.py (InteractiveShell.__init__): Internal
3667 getoutputerror() function so that we can honor the system_verbose
3669 getoutputerror() function so that we can honor the system_verbose
3668 flag for _all_ system calls. I also added escaping of #
3670 flag for _all_ system calls. I also added escaping of #
3669 characters here to avoid confusing Itpl.
3671 characters here to avoid confusing Itpl.
3670
3672
3671 * IPython/Magic.py (shlex_split): removed call to shell in
3673 * IPython/Magic.py (shlex_split): removed call to shell in
3672 parse_options and replaced it with shlex.split(). The annoying
3674 parse_options and replaced it with shlex.split(). The annoying
3673 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3675 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3674 to backport it from 2.3, with several frail hacks (the shlex
3676 to backport it from 2.3, with several frail hacks (the shlex
3675 module is rather limited in 2.2). Thanks to a suggestion by Ville
3677 module is rather limited in 2.2). Thanks to a suggestion by Ville
3676 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3678 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3677 problem.
3679 problem.
3678
3680
3679 (Magic.magic_system_verbose): new toggle to print the actual
3681 (Magic.magic_system_verbose): new toggle to print the actual
3680 system calls made by ipython. Mainly for debugging purposes.
3682 system calls made by ipython. Mainly for debugging purposes.
3681
3683
3682 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3684 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3683 doesn't support persistence. Reported (and fix suggested) by
3685 doesn't support persistence. Reported (and fix suggested) by
3684 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3686 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3685
3687
3686 2004-06-26 Fernando Perez <fperez@colorado.edu>
3688 2004-06-26 Fernando Perez <fperez@colorado.edu>
3687
3689
3688 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3690 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3689 continue prompts.
3691 continue prompts.
3690
3692
3691 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3693 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3692 function (basically a big docstring) and a few more things here to
3694 function (basically a big docstring) and a few more things here to
3693 speedup startup. pysh.py is now very lightweight. We want because
3695 speedup startup. pysh.py is now very lightweight. We want because
3694 it gets execfile'd, while InterpreterExec gets imported, so
3696 it gets execfile'd, while InterpreterExec gets imported, so
3695 byte-compilation saves time.
3697 byte-compilation saves time.
3696
3698
3697 2004-06-25 Fernando Perez <fperez@colorado.edu>
3699 2004-06-25 Fernando Perez <fperez@colorado.edu>
3698
3700
3699 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3701 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3700 -NUM', which was recently broken.
3702 -NUM', which was recently broken.
3701
3703
3702 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3704 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3703 in multi-line input (but not !!, which doesn't make sense there).
3705 in multi-line input (but not !!, which doesn't make sense there).
3704
3706
3705 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3707 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3706 It's just too useful, and people can turn it off in the less
3708 It's just too useful, and people can turn it off in the less
3707 common cases where it's a problem.
3709 common cases where it's a problem.
3708
3710
3709 2004-06-24 Fernando Perez <fperez@colorado.edu>
3711 2004-06-24 Fernando Perez <fperez@colorado.edu>
3710
3712
3711 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3713 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3712 special syntaxes (like alias calling) is now allied in multi-line
3714 special syntaxes (like alias calling) is now allied in multi-line
3713 input. This is still _very_ experimental, but it's necessary for
3715 input. This is still _very_ experimental, but it's necessary for
3714 efficient shell usage combining python looping syntax with system
3716 efficient shell usage combining python looping syntax with system
3715 calls. For now it's restricted to aliases, I don't think it
3717 calls. For now it's restricted to aliases, I don't think it
3716 really even makes sense to have this for magics.
3718 really even makes sense to have this for magics.
3717
3719
3718 2004-06-23 Fernando Perez <fperez@colorado.edu>
3720 2004-06-23 Fernando Perez <fperez@colorado.edu>
3719
3721
3720 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3722 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3721 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3723 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3722
3724
3723 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3725 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3724 extensions under Windows (after code sent by Gary Bishop). The
3726 extensions under Windows (after code sent by Gary Bishop). The
3725 extensions considered 'executable' are stored in IPython's rc
3727 extensions considered 'executable' are stored in IPython's rc
3726 structure as win_exec_ext.
3728 structure as win_exec_ext.
3727
3729
3728 * IPython/genutils.py (shell): new function, like system() but
3730 * IPython/genutils.py (shell): new function, like system() but
3729 without return value. Very useful for interactive shell work.
3731 without return value. Very useful for interactive shell work.
3730
3732
3731 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3733 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3732 delete aliases.
3734 delete aliases.
3733
3735
3734 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3736 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3735 sure that the alias table doesn't contain python keywords.
3737 sure that the alias table doesn't contain python keywords.
3736
3738
3737 2004-06-21 Fernando Perez <fperez@colorado.edu>
3739 2004-06-21 Fernando Perez <fperez@colorado.edu>
3738
3740
3739 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3741 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3740 non-existent items are found in $PATH. Reported by Thorsten.
3742 non-existent items are found in $PATH. Reported by Thorsten.
3741
3743
3742 2004-06-20 Fernando Perez <fperez@colorado.edu>
3744 2004-06-20 Fernando Perez <fperez@colorado.edu>
3743
3745
3744 * IPython/iplib.py (complete): modified the completer so that the
3746 * IPython/iplib.py (complete): modified the completer so that the
3745 order of priorities can be easily changed at runtime.
3747 order of priorities can be easily changed at runtime.
3746
3748
3747 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3749 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3748 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3750 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3749
3751
3750 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3752 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3751 expand Python variables prepended with $ in all system calls. The
3753 expand Python variables prepended with $ in all system calls. The
3752 same was done to InteractiveShell.handle_shell_escape. Now all
3754 same was done to InteractiveShell.handle_shell_escape. Now all
3753 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3755 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3754 expansion of python variables and expressions according to the
3756 expansion of python variables and expressions according to the
3755 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3757 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3756
3758
3757 Though PEP-215 has been rejected, a similar (but simpler) one
3759 Though PEP-215 has been rejected, a similar (but simpler) one
3758 seems like it will go into Python 2.4, PEP-292 -
3760 seems like it will go into Python 2.4, PEP-292 -
3759 http://www.python.org/peps/pep-0292.html.
3761 http://www.python.org/peps/pep-0292.html.
3760
3762
3761 I'll keep the full syntax of PEP-215, since IPython has since the
3763 I'll keep the full syntax of PEP-215, since IPython has since the
3762 start used Ka-Ping Yee's reference implementation discussed there
3764 start used Ka-Ping Yee's reference implementation discussed there
3763 (Itpl), and I actually like the powerful semantics it offers.
3765 (Itpl), and I actually like the powerful semantics it offers.
3764
3766
3765 In order to access normal shell variables, the $ has to be escaped
3767 In order to access normal shell variables, the $ has to be escaped
3766 via an extra $. For example:
3768 via an extra $. For example:
3767
3769
3768 In [7]: PATH='a python variable'
3770 In [7]: PATH='a python variable'
3769
3771
3770 In [8]: !echo $PATH
3772 In [8]: !echo $PATH
3771 a python variable
3773 a python variable
3772
3774
3773 In [9]: !echo $$PATH
3775 In [9]: !echo $$PATH
3774 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3776 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3775
3777
3776 (Magic.parse_options): escape $ so the shell doesn't evaluate
3778 (Magic.parse_options): escape $ so the shell doesn't evaluate
3777 things prematurely.
3779 things prematurely.
3778
3780
3779 * IPython/iplib.py (InteractiveShell.call_alias): added the
3781 * IPython/iplib.py (InteractiveShell.call_alias): added the
3780 ability for aliases to expand python variables via $.
3782 ability for aliases to expand python variables via $.
3781
3783
3782 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3784 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3783 system, now there's a @rehash/@rehashx pair of magics. These work
3785 system, now there's a @rehash/@rehashx pair of magics. These work
3784 like the csh rehash command, and can be invoked at any time. They
3786 like the csh rehash command, and can be invoked at any time. They
3785 build a table of aliases to everything in the user's $PATH
3787 build a table of aliases to everything in the user's $PATH
3786 (@rehash uses everything, @rehashx is slower but only adds
3788 (@rehash uses everything, @rehashx is slower but only adds
3787 executable files). With this, the pysh.py-based shell profile can
3789 executable files). With this, the pysh.py-based shell profile can
3788 now simply call rehash upon startup, and full access to all
3790 now simply call rehash upon startup, and full access to all
3789 programs in the user's path is obtained.
3791 programs in the user's path is obtained.
3790
3792
3791 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3793 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3792 functionality is now fully in place. I removed the old dynamic
3794 functionality is now fully in place. I removed the old dynamic
3793 code generation based approach, in favor of a much lighter one
3795 code generation based approach, in favor of a much lighter one
3794 based on a simple dict. The advantage is that this allows me to
3796 based on a simple dict. The advantage is that this allows me to
3795 now have thousands of aliases with negligible cost (unthinkable
3797 now have thousands of aliases with negligible cost (unthinkable
3796 with the old system).
3798 with the old system).
3797
3799
3798 2004-06-19 Fernando Perez <fperez@colorado.edu>
3800 2004-06-19 Fernando Perez <fperez@colorado.edu>
3799
3801
3800 * IPython/iplib.py (__init__): extended MagicCompleter class to
3802 * IPython/iplib.py (__init__): extended MagicCompleter class to
3801 also complete (last in priority) on user aliases.
3803 also complete (last in priority) on user aliases.
3802
3804
3803 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3805 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3804 call to eval.
3806 call to eval.
3805 (ItplNS.__init__): Added a new class which functions like Itpl,
3807 (ItplNS.__init__): Added a new class which functions like Itpl,
3806 but allows configuring the namespace for the evaluation to occur
3808 but allows configuring the namespace for the evaluation to occur
3807 in.
3809 in.
3808
3810
3809 2004-06-18 Fernando Perez <fperez@colorado.edu>
3811 2004-06-18 Fernando Perez <fperez@colorado.edu>
3810
3812
3811 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3813 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3812 better message when 'exit' or 'quit' are typed (a common newbie
3814 better message when 'exit' or 'quit' are typed (a common newbie
3813 confusion).
3815 confusion).
3814
3816
3815 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3817 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3816 check for Windows users.
3818 check for Windows users.
3817
3819
3818 * IPython/iplib.py (InteractiveShell.user_setup): removed
3820 * IPython/iplib.py (InteractiveShell.user_setup): removed
3819 disabling of colors for Windows. I'll test at runtime and issue a
3821 disabling of colors for Windows. I'll test at runtime and issue a
3820 warning if Gary's readline isn't found, as to nudge users to
3822 warning if Gary's readline isn't found, as to nudge users to
3821 download it.
3823 download it.
3822
3824
3823 2004-06-16 Fernando Perez <fperez@colorado.edu>
3825 2004-06-16 Fernando Perez <fperez@colorado.edu>
3824
3826
3825 * IPython/genutils.py (Stream.__init__): changed to print errors
3827 * IPython/genutils.py (Stream.__init__): changed to print errors
3826 to sys.stderr. I had a circular dependency here. Now it's
3828 to sys.stderr. I had a circular dependency here. Now it's
3827 possible to run ipython as IDLE's shell (consider this pre-alpha,
3829 possible to run ipython as IDLE's shell (consider this pre-alpha,
3828 since true stdout things end up in the starting terminal instead
3830 since true stdout things end up in the starting terminal instead
3829 of IDLE's out).
3831 of IDLE's out).
3830
3832
3831 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3833 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3832 users who haven't # updated their prompt_in2 definitions. Remove
3834 users who haven't # updated their prompt_in2 definitions. Remove
3833 eventually.
3835 eventually.
3834 (multiple_replace): added credit to original ASPN recipe.
3836 (multiple_replace): added credit to original ASPN recipe.
3835
3837
3836 2004-06-15 Fernando Perez <fperez@colorado.edu>
3838 2004-06-15 Fernando Perez <fperez@colorado.edu>
3837
3839
3838 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3840 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3839 list of auto-defined aliases.
3841 list of auto-defined aliases.
3840
3842
3841 2004-06-13 Fernando Perez <fperez@colorado.edu>
3843 2004-06-13 Fernando Perez <fperez@colorado.edu>
3842
3844
3843 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3845 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3844 install was really requested (so setup.py can be used for other
3846 install was really requested (so setup.py can be used for other
3845 things under Windows).
3847 things under Windows).
3846
3848
3847 2004-06-10 Fernando Perez <fperez@colorado.edu>
3849 2004-06-10 Fernando Perez <fperez@colorado.edu>
3848
3850
3849 * IPython/Logger.py (Logger.create_log): Manually remove any old
3851 * IPython/Logger.py (Logger.create_log): Manually remove any old
3850 backup, since os.remove may fail under Windows. Fixes bug
3852 backup, since os.remove may fail under Windows. Fixes bug
3851 reported by Thorsten.
3853 reported by Thorsten.
3852
3854
3853 2004-06-09 Fernando Perez <fperez@colorado.edu>
3855 2004-06-09 Fernando Perez <fperez@colorado.edu>
3854
3856
3855 * examples/example-embed.py: fixed all references to %n (replaced
3857 * examples/example-embed.py: fixed all references to %n (replaced
3856 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3858 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3857 for all examples and the manual as well.
3859 for all examples and the manual as well.
3858
3860
3859 2004-06-08 Fernando Perez <fperez@colorado.edu>
3861 2004-06-08 Fernando Perez <fperez@colorado.edu>
3860
3862
3861 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3863 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3862 alignment and color management. All 3 prompt subsystems now
3864 alignment and color management. All 3 prompt subsystems now
3863 inherit from BasePrompt.
3865 inherit from BasePrompt.
3864
3866
3865 * tools/release: updates for windows installer build and tag rpms
3867 * tools/release: updates for windows installer build and tag rpms
3866 with python version (since paths are fixed).
3868 with python version (since paths are fixed).
3867
3869
3868 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3870 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3869 which will become eventually obsolete. Also fixed the default
3871 which will become eventually obsolete. Also fixed the default
3870 prompt_in2 to use \D, so at least new users start with the correct
3872 prompt_in2 to use \D, so at least new users start with the correct
3871 defaults.
3873 defaults.
3872 WARNING: Users with existing ipythonrc files will need to apply
3874 WARNING: Users with existing ipythonrc files will need to apply
3873 this fix manually!
3875 this fix manually!
3874
3876
3875 * setup.py: make windows installer (.exe). This is finally the
3877 * setup.py: make windows installer (.exe). This is finally the
3876 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3878 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3877 which I hadn't included because it required Python 2.3 (or recent
3879 which I hadn't included because it required Python 2.3 (or recent
3878 distutils).
3880 distutils).
3879
3881
3880 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3882 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3881 usage of new '\D' escape.
3883 usage of new '\D' escape.
3882
3884
3883 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3885 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3884 lacks os.getuid())
3886 lacks os.getuid())
3885 (CachedOutput.set_colors): Added the ability to turn coloring
3887 (CachedOutput.set_colors): Added the ability to turn coloring
3886 on/off with @colors even for manually defined prompt colors. It
3888 on/off with @colors even for manually defined prompt colors. It
3887 uses a nasty global, but it works safely and via the generic color
3889 uses a nasty global, but it works safely and via the generic color
3888 handling mechanism.
3890 handling mechanism.
3889 (Prompt2.__init__): Introduced new escape '\D' for continuation
3891 (Prompt2.__init__): Introduced new escape '\D' for continuation
3890 prompts. It represents the counter ('\#') as dots.
3892 prompts. It represents the counter ('\#') as dots.
3891 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3893 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3892 need to update their ipythonrc files and replace '%n' with '\D' in
3894 need to update their ipythonrc files and replace '%n' with '\D' in
3893 their prompt_in2 settings everywhere. Sorry, but there's
3895 their prompt_in2 settings everywhere. Sorry, but there's
3894 otherwise no clean way to get all prompts to properly align. The
3896 otherwise no clean way to get all prompts to properly align. The
3895 ipythonrc shipped with IPython has been updated.
3897 ipythonrc shipped with IPython has been updated.
3896
3898
3897 2004-06-07 Fernando Perez <fperez@colorado.edu>
3899 2004-06-07 Fernando Perez <fperez@colorado.edu>
3898
3900
3899 * setup.py (isfile): Pass local_icons option to latex2html, so the
3901 * setup.py (isfile): Pass local_icons option to latex2html, so the
3900 resulting HTML file is self-contained. Thanks to
3902 resulting HTML file is self-contained. Thanks to
3901 dryice-AT-liu.com.cn for the tip.
3903 dryice-AT-liu.com.cn for the tip.
3902
3904
3903 * pysh.py: I created a new profile 'shell', which implements a
3905 * pysh.py: I created a new profile 'shell', which implements a
3904 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3906 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3905 system shell, nor will it become one anytime soon. It's mainly
3907 system shell, nor will it become one anytime soon. It's mainly
3906 meant to illustrate the use of the new flexible bash-like prompts.
3908 meant to illustrate the use of the new flexible bash-like prompts.
3907 I guess it could be used by hardy souls for true shell management,
3909 I guess it could be used by hardy souls for true shell management,
3908 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3910 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3909 profile. This uses the InterpreterExec extension provided by
3911 profile. This uses the InterpreterExec extension provided by
3910 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3912 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3911
3913
3912 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3914 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3913 auto-align itself with the length of the previous input prompt
3915 auto-align itself with the length of the previous input prompt
3914 (taking into account the invisible color escapes).
3916 (taking into account the invisible color escapes).
3915 (CachedOutput.__init__): Large restructuring of this class. Now
3917 (CachedOutput.__init__): Large restructuring of this class. Now
3916 all three prompts (primary1, primary2, output) are proper objects,
3918 all three prompts (primary1, primary2, output) are proper objects,
3917 managed by the 'parent' CachedOutput class. The code is still a
3919 managed by the 'parent' CachedOutput class. The code is still a
3918 bit hackish (all prompts share state via a pointer to the cache),
3920 bit hackish (all prompts share state via a pointer to the cache),
3919 but it's overall far cleaner than before.
3921 but it's overall far cleaner than before.
3920
3922
3921 * IPython/genutils.py (getoutputerror): modified to add verbose,
3923 * IPython/genutils.py (getoutputerror): modified to add verbose,
3922 debug and header options. This makes the interface of all getout*
3924 debug and header options. This makes the interface of all getout*
3923 functions uniform.
3925 functions uniform.
3924 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3926 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3925
3927
3926 * IPython/Magic.py (Magic.default_option): added a function to
3928 * IPython/Magic.py (Magic.default_option): added a function to
3927 allow registering default options for any magic command. This
3929 allow registering default options for any magic command. This
3928 makes it easy to have profiles which customize the magics globally
3930 makes it easy to have profiles which customize the magics globally
3929 for a certain use. The values set through this function are
3931 for a certain use. The values set through this function are
3930 picked up by the parse_options() method, which all magics should
3932 picked up by the parse_options() method, which all magics should
3931 use to parse their options.
3933 use to parse their options.
3932
3934
3933 * IPython/genutils.py (warn): modified the warnings framework to
3935 * IPython/genutils.py (warn): modified the warnings framework to
3934 use the Term I/O class. I'm trying to slowly unify all of
3936 use the Term I/O class. I'm trying to slowly unify all of
3935 IPython's I/O operations to pass through Term.
3937 IPython's I/O operations to pass through Term.
3936
3938
3937 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3939 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3938 the secondary prompt to correctly match the length of the primary
3940 the secondary prompt to correctly match the length of the primary
3939 one for any prompt. Now multi-line code will properly line up
3941 one for any prompt. Now multi-line code will properly line up
3940 even for path dependent prompts, such as the new ones available
3942 even for path dependent prompts, such as the new ones available
3941 via the prompt_specials.
3943 via the prompt_specials.
3942
3944
3943 2004-06-06 Fernando Perez <fperez@colorado.edu>
3945 2004-06-06 Fernando Perez <fperez@colorado.edu>
3944
3946
3945 * IPython/Prompts.py (prompt_specials): Added the ability to have
3947 * IPython/Prompts.py (prompt_specials): Added the ability to have
3946 bash-like special sequences in the prompts, which get
3948 bash-like special sequences in the prompts, which get
3947 automatically expanded. Things like hostname, current working
3949 automatically expanded. Things like hostname, current working
3948 directory and username are implemented already, but it's easy to
3950 directory and username are implemented already, but it's easy to
3949 add more in the future. Thanks to a patch by W.J. van der Laan
3951 add more in the future. Thanks to a patch by W.J. van der Laan
3950 <gnufnork-AT-hetdigitalegat.nl>
3952 <gnufnork-AT-hetdigitalegat.nl>
3951 (prompt_specials): Added color support for prompt strings, so
3953 (prompt_specials): Added color support for prompt strings, so
3952 users can define arbitrary color setups for their prompts.
3954 users can define arbitrary color setups for their prompts.
3953
3955
3954 2004-06-05 Fernando Perez <fperez@colorado.edu>
3956 2004-06-05 Fernando Perez <fperez@colorado.edu>
3955
3957
3956 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3958 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3957 code to load Gary Bishop's readline and configure it
3959 code to load Gary Bishop's readline and configure it
3958 automatically. Thanks to Gary for help on this.
3960 automatically. Thanks to Gary for help on this.
3959
3961
3960 2004-06-01 Fernando Perez <fperez@colorado.edu>
3962 2004-06-01 Fernando Perez <fperez@colorado.edu>
3961
3963
3962 * IPython/Logger.py (Logger.create_log): fix bug for logging
3964 * IPython/Logger.py (Logger.create_log): fix bug for logging
3963 with no filename (previous fix was incomplete).
3965 with no filename (previous fix was incomplete).
3964
3966
3965 2004-05-25 Fernando Perez <fperez@colorado.edu>
3967 2004-05-25 Fernando Perez <fperez@colorado.edu>
3966
3968
3967 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3969 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3968 parens would get passed to the shell.
3970 parens would get passed to the shell.
3969
3971
3970 2004-05-20 Fernando Perez <fperez@colorado.edu>
3972 2004-05-20 Fernando Perez <fperez@colorado.edu>
3971
3973
3972 * IPython/Magic.py (Magic.magic_prun): changed default profile
3974 * IPython/Magic.py (Magic.magic_prun): changed default profile
3973 sort order to 'time' (the more common profiling need).
3975 sort order to 'time' (the more common profiling need).
3974
3976
3975 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3977 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3976 so that source code shown is guaranteed in sync with the file on
3978 so that source code shown is guaranteed in sync with the file on
3977 disk (also changed in psource). Similar fix to the one for
3979 disk (also changed in psource). Similar fix to the one for
3978 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3980 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3979 <yann.ledu-AT-noos.fr>.
3981 <yann.ledu-AT-noos.fr>.
3980
3982
3981 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3983 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3982 with a single option would not be correctly parsed. Closes
3984 with a single option would not be correctly parsed. Closes
3983 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3985 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3984 introduced in 0.6.0 (on 2004-05-06).
3986 introduced in 0.6.0 (on 2004-05-06).
3985
3987
3986 2004-05-13 *** Released version 0.6.0
3988 2004-05-13 *** Released version 0.6.0
3987
3989
3988 2004-05-13 Fernando Perez <fperez@colorado.edu>
3990 2004-05-13 Fernando Perez <fperez@colorado.edu>
3989
3991
3990 * debian/: Added debian/ directory to CVS, so that debian support
3992 * debian/: Added debian/ directory to CVS, so that debian support
3991 is publicly accessible. The debian package is maintained by Jack
3993 is publicly accessible. The debian package is maintained by Jack
3992 Moffit <jack-AT-xiph.org>.
3994 Moffit <jack-AT-xiph.org>.
3993
3995
3994 * Documentation: included the notes about an ipython-based system
3996 * Documentation: included the notes about an ipython-based system
3995 shell (the hypothetical 'pysh') into the new_design.pdf document,
3997 shell (the hypothetical 'pysh') into the new_design.pdf document,
3996 so that these ideas get distributed to users along with the
3998 so that these ideas get distributed to users along with the
3997 official documentation.
3999 official documentation.
3998
4000
3999 2004-05-10 Fernando Perez <fperez@colorado.edu>
4001 2004-05-10 Fernando Perez <fperez@colorado.edu>
4000
4002
4001 * IPython/Logger.py (Logger.create_log): fix recently introduced
4003 * IPython/Logger.py (Logger.create_log): fix recently introduced
4002 bug (misindented line) where logstart would fail when not given an
4004 bug (misindented line) where logstart would fail when not given an
4003 explicit filename.
4005 explicit filename.
4004
4006
4005 2004-05-09 Fernando Perez <fperez@colorado.edu>
4007 2004-05-09 Fernando Perez <fperez@colorado.edu>
4006
4008
4007 * IPython/Magic.py (Magic.parse_options): skip system call when
4009 * IPython/Magic.py (Magic.parse_options): skip system call when
4008 there are no options to look for. Faster, cleaner for the common
4010 there are no options to look for. Faster, cleaner for the common
4009 case.
4011 case.
4010
4012
4011 * Documentation: many updates to the manual: describing Windows
4013 * Documentation: many updates to the manual: describing Windows
4012 support better, Gnuplot updates, credits, misc small stuff. Also
4014 support better, Gnuplot updates, credits, misc small stuff. Also
4013 updated the new_design doc a bit.
4015 updated the new_design doc a bit.
4014
4016
4015 2004-05-06 *** Released version 0.6.0.rc1
4017 2004-05-06 *** Released version 0.6.0.rc1
4016
4018
4017 2004-05-06 Fernando Perez <fperez@colorado.edu>
4019 2004-05-06 Fernando Perez <fperez@colorado.edu>
4018
4020
4019 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4021 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4020 operations to use the vastly more efficient list/''.join() method.
4022 operations to use the vastly more efficient list/''.join() method.
4021 (FormattedTB.text): Fix
4023 (FormattedTB.text): Fix
4022 http://www.scipy.net/roundup/ipython/issue12 - exception source
4024 http://www.scipy.net/roundup/ipython/issue12 - exception source
4023 extract not updated after reload. Thanks to Mike Salib
4025 extract not updated after reload. Thanks to Mike Salib
4024 <msalib-AT-mit.edu> for pinning the source of the problem.
4026 <msalib-AT-mit.edu> for pinning the source of the problem.
4025 Fortunately, the solution works inside ipython and doesn't require
4027 Fortunately, the solution works inside ipython and doesn't require
4026 any changes to python proper.
4028 any changes to python proper.
4027
4029
4028 * IPython/Magic.py (Magic.parse_options): Improved to process the
4030 * IPython/Magic.py (Magic.parse_options): Improved to process the
4029 argument list as a true shell would (by actually using the
4031 argument list as a true shell would (by actually using the
4030 underlying system shell). This way, all @magics automatically get
4032 underlying system shell). This way, all @magics automatically get
4031 shell expansion for variables. Thanks to a comment by Alex
4033 shell expansion for variables. Thanks to a comment by Alex
4032 Schmolck.
4034 Schmolck.
4033
4035
4034 2004-04-04 Fernando Perez <fperez@colorado.edu>
4036 2004-04-04 Fernando Perez <fperez@colorado.edu>
4035
4037
4036 * IPython/iplib.py (InteractiveShell.interact): Added a special
4038 * IPython/iplib.py (InteractiveShell.interact): Added a special
4037 trap for a debugger quit exception, which is basically impossible
4039 trap for a debugger quit exception, which is basically impossible
4038 to handle by normal mechanisms, given what pdb does to the stack.
4040 to handle by normal mechanisms, given what pdb does to the stack.
4039 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4041 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4040
4042
4041 2004-04-03 Fernando Perez <fperez@colorado.edu>
4043 2004-04-03 Fernando Perez <fperez@colorado.edu>
4042
4044
4043 * IPython/genutils.py (Term): Standardized the names of the Term
4045 * IPython/genutils.py (Term): Standardized the names of the Term
4044 class streams to cin/cout/cerr, following C++ naming conventions
4046 class streams to cin/cout/cerr, following C++ naming conventions
4045 (I can't use in/out/err because 'in' is not a valid attribute
4047 (I can't use in/out/err because 'in' is not a valid attribute
4046 name).
4048 name).
4047
4049
4048 * IPython/iplib.py (InteractiveShell.interact): don't increment
4050 * IPython/iplib.py (InteractiveShell.interact): don't increment
4049 the prompt if there's no user input. By Daniel 'Dang' Griffith
4051 the prompt if there's no user input. By Daniel 'Dang' Griffith
4050 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4052 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4051 Francois Pinard.
4053 Francois Pinard.
4052
4054
4053 2004-04-02 Fernando Perez <fperez@colorado.edu>
4055 2004-04-02 Fernando Perez <fperez@colorado.edu>
4054
4056
4055 * IPython/genutils.py (Stream.__init__): Modified to survive at
4057 * IPython/genutils.py (Stream.__init__): Modified to survive at
4056 least importing in contexts where stdin/out/err aren't true file
4058 least importing in contexts where stdin/out/err aren't true file
4057 objects, such as PyCrust (they lack fileno() and mode). However,
4059 objects, such as PyCrust (they lack fileno() and mode). However,
4058 the recovery facilities which rely on these things existing will
4060 the recovery facilities which rely on these things existing will
4059 not work.
4061 not work.
4060
4062
4061 2004-04-01 Fernando Perez <fperez@colorado.edu>
4063 2004-04-01 Fernando Perez <fperez@colorado.edu>
4062
4064
4063 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4065 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4064 use the new getoutputerror() function, so it properly
4066 use the new getoutputerror() function, so it properly
4065 distinguishes stdout/err.
4067 distinguishes stdout/err.
4066
4068
4067 * IPython/genutils.py (getoutputerror): added a function to
4069 * IPython/genutils.py (getoutputerror): added a function to
4068 capture separately the standard output and error of a command.
4070 capture separately the standard output and error of a command.
4069 After a comment from dang on the mailing lists. This code is
4071 After a comment from dang on the mailing lists. This code is
4070 basically a modified version of commands.getstatusoutput(), from
4072 basically a modified version of commands.getstatusoutput(), from
4071 the standard library.
4073 the standard library.
4072
4074
4073 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4075 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4074 '!!' as a special syntax (shorthand) to access @sx.
4076 '!!' as a special syntax (shorthand) to access @sx.
4075
4077
4076 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4078 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4077 command and return its output as a list split on '\n'.
4079 command and return its output as a list split on '\n'.
4078
4080
4079 2004-03-31 Fernando Perez <fperez@colorado.edu>
4081 2004-03-31 Fernando Perez <fperez@colorado.edu>
4080
4082
4081 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4083 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4082 method to dictionaries used as FakeModule instances if they lack
4084 method to dictionaries used as FakeModule instances if they lack
4083 it. At least pydoc in python2.3 breaks for runtime-defined
4085 it. At least pydoc in python2.3 breaks for runtime-defined
4084 functions without this hack. At some point I need to _really_
4086 functions without this hack. At some point I need to _really_
4085 understand what FakeModule is doing, because it's a gross hack.
4087 understand what FakeModule is doing, because it's a gross hack.
4086 But it solves Arnd's problem for now...
4088 But it solves Arnd's problem for now...
4087
4089
4088 2004-02-27 Fernando Perez <fperez@colorado.edu>
4090 2004-02-27 Fernando Perez <fperez@colorado.edu>
4089
4091
4090 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4092 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4091 mode would behave erratically. Also increased the number of
4093 mode would behave erratically. Also increased the number of
4092 possible logs in rotate mod to 999. Thanks to Rod Holland
4094 possible logs in rotate mod to 999. Thanks to Rod Holland
4093 <rhh@StructureLABS.com> for the report and fixes.
4095 <rhh@StructureLABS.com> for the report and fixes.
4094
4096
4095 2004-02-26 Fernando Perez <fperez@colorado.edu>
4097 2004-02-26 Fernando Perez <fperez@colorado.edu>
4096
4098
4097 * IPython/genutils.py (page): Check that the curses module really
4099 * IPython/genutils.py (page): Check that the curses module really
4098 has the initscr attribute before trying to use it. For some
4100 has the initscr attribute before trying to use it. For some
4099 reason, the Solaris curses module is missing this. I think this
4101 reason, the Solaris curses module is missing this. I think this
4100 should be considered a Solaris python bug, but I'm not sure.
4102 should be considered a Solaris python bug, but I'm not sure.
4101
4103
4102 2004-01-17 Fernando Perez <fperez@colorado.edu>
4104 2004-01-17 Fernando Perez <fperez@colorado.edu>
4103
4105
4104 * IPython/genutils.py (Stream.__init__): Changes to try to make
4106 * IPython/genutils.py (Stream.__init__): Changes to try to make
4105 ipython robust against stdin/out/err being closed by the user.
4107 ipython robust against stdin/out/err being closed by the user.
4106 This is 'user error' (and blocks a normal python session, at least
4108 This is 'user error' (and blocks a normal python session, at least
4107 the stdout case). However, Ipython should be able to survive such
4109 the stdout case). However, Ipython should be able to survive such
4108 instances of abuse as gracefully as possible. To simplify the
4110 instances of abuse as gracefully as possible. To simplify the
4109 coding and maintain compatibility with Gary Bishop's Term
4111 coding and maintain compatibility with Gary Bishop's Term
4110 contributions, I've made use of classmethods for this. I think
4112 contributions, I've made use of classmethods for this. I think
4111 this introduces a dependency on python 2.2.
4113 this introduces a dependency on python 2.2.
4112
4114
4113 2004-01-13 Fernando Perez <fperez@colorado.edu>
4115 2004-01-13 Fernando Perez <fperez@colorado.edu>
4114
4116
4115 * IPython/numutils.py (exp_safe): simplified the code a bit and
4117 * IPython/numutils.py (exp_safe): simplified the code a bit and
4116 removed the need for importing the kinds module altogether.
4118 removed the need for importing the kinds module altogether.
4117
4119
4118 2004-01-06 Fernando Perez <fperez@colorado.edu>
4120 2004-01-06 Fernando Perez <fperez@colorado.edu>
4119
4121
4120 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4122 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4121 a magic function instead, after some community feedback. No
4123 a magic function instead, after some community feedback. No
4122 special syntax will exist for it, but its name is deliberately
4124 special syntax will exist for it, but its name is deliberately
4123 very short.
4125 very short.
4124
4126
4125 2003-12-20 Fernando Perez <fperez@colorado.edu>
4127 2003-12-20 Fernando Perez <fperez@colorado.edu>
4126
4128
4127 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4129 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4128 new functionality, to automagically assign the result of a shell
4130 new functionality, to automagically assign the result of a shell
4129 command to a variable. I'll solicit some community feedback on
4131 command to a variable. I'll solicit some community feedback on
4130 this before making it permanent.
4132 this before making it permanent.
4131
4133
4132 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4134 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4133 requested about callables for which inspect couldn't obtain a
4135 requested about callables for which inspect couldn't obtain a
4134 proper argspec. Thanks to a crash report sent by Etienne
4136 proper argspec. Thanks to a crash report sent by Etienne
4135 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4137 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4136
4138
4137 2003-12-09 Fernando Perez <fperez@colorado.edu>
4139 2003-12-09 Fernando Perez <fperez@colorado.edu>
4138
4140
4139 * IPython/genutils.py (page): patch for the pager to work across
4141 * IPython/genutils.py (page): patch for the pager to work across
4140 various versions of Windows. By Gary Bishop.
4142 various versions of Windows. By Gary Bishop.
4141
4143
4142 2003-12-04 Fernando Perez <fperez@colorado.edu>
4144 2003-12-04 Fernando Perez <fperez@colorado.edu>
4143
4145
4144 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4146 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4145 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4147 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4146 While I tested this and it looks ok, there may still be corner
4148 While I tested this and it looks ok, there may still be corner
4147 cases I've missed.
4149 cases I've missed.
4148
4150
4149 2003-12-01 Fernando Perez <fperez@colorado.edu>
4151 2003-12-01 Fernando Perez <fperez@colorado.edu>
4150
4152
4151 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4153 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4152 where a line like 'p,q=1,2' would fail because the automagic
4154 where a line like 'p,q=1,2' would fail because the automagic
4153 system would be triggered for @p.
4155 system would be triggered for @p.
4154
4156
4155 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4157 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4156 cleanups, code unmodified.
4158 cleanups, code unmodified.
4157
4159
4158 * IPython/genutils.py (Term): added a class for IPython to handle
4160 * IPython/genutils.py (Term): added a class for IPython to handle
4159 output. In most cases it will just be a proxy for stdout/err, but
4161 output. In most cases it will just be a proxy for stdout/err, but
4160 having this allows modifications to be made for some platforms,
4162 having this allows modifications to be made for some platforms,
4161 such as handling color escapes under Windows. All of this code
4163 such as handling color escapes under Windows. All of this code
4162 was contributed by Gary Bishop, with minor modifications by me.
4164 was contributed by Gary Bishop, with minor modifications by me.
4163 The actual changes affect many files.
4165 The actual changes affect many files.
4164
4166
4165 2003-11-30 Fernando Perez <fperez@colorado.edu>
4167 2003-11-30 Fernando Perez <fperez@colorado.edu>
4166
4168
4167 * IPython/iplib.py (file_matches): new completion code, courtesy
4169 * IPython/iplib.py (file_matches): new completion code, courtesy
4168 of Jeff Collins. This enables filename completion again under
4170 of Jeff Collins. This enables filename completion again under
4169 python 2.3, which disabled it at the C level.
4171 python 2.3, which disabled it at the C level.
4170
4172
4171 2003-11-11 Fernando Perez <fperez@colorado.edu>
4173 2003-11-11 Fernando Perez <fperez@colorado.edu>
4172
4174
4173 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4175 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4174 for Numeric.array(map(...)), but often convenient.
4176 for Numeric.array(map(...)), but often convenient.
4175
4177
4176 2003-11-05 Fernando Perez <fperez@colorado.edu>
4178 2003-11-05 Fernando Perez <fperez@colorado.edu>
4177
4179
4178 * IPython/numutils.py (frange): Changed a call from int() to
4180 * IPython/numutils.py (frange): Changed a call from int() to
4179 int(round()) to prevent a problem reported with arange() in the
4181 int(round()) to prevent a problem reported with arange() in the
4180 numpy list.
4182 numpy list.
4181
4183
4182 2003-10-06 Fernando Perez <fperez@colorado.edu>
4184 2003-10-06 Fernando Perez <fperez@colorado.edu>
4183
4185
4184 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4186 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4185 prevent crashes if sys lacks an argv attribute (it happens with
4187 prevent crashes if sys lacks an argv attribute (it happens with
4186 embedded interpreters which build a bare-bones sys module).
4188 embedded interpreters which build a bare-bones sys module).
4187 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4189 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4188
4190
4189 2003-09-24 Fernando Perez <fperez@colorado.edu>
4191 2003-09-24 Fernando Perez <fperez@colorado.edu>
4190
4192
4191 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4193 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4192 to protect against poorly written user objects where __getattr__
4194 to protect against poorly written user objects where __getattr__
4193 raises exceptions other than AttributeError. Thanks to a bug
4195 raises exceptions other than AttributeError. Thanks to a bug
4194 report by Oliver Sander <osander-AT-gmx.de>.
4196 report by Oliver Sander <osander-AT-gmx.de>.
4195
4197
4196 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4198 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4197 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4199 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4198
4200
4199 2003-09-09 Fernando Perez <fperez@colorado.edu>
4201 2003-09-09 Fernando Perez <fperez@colorado.edu>
4200
4202
4201 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4203 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4202 unpacking a list whith a callable as first element would
4204 unpacking a list whith a callable as first element would
4203 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4205 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4204 Collins.
4206 Collins.
4205
4207
4206 2003-08-25 *** Released version 0.5.0
4208 2003-08-25 *** Released version 0.5.0
4207
4209
4208 2003-08-22 Fernando Perez <fperez@colorado.edu>
4210 2003-08-22 Fernando Perez <fperez@colorado.edu>
4209
4211
4210 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4212 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4211 improperly defined user exceptions. Thanks to feedback from Mark
4213 improperly defined user exceptions. Thanks to feedback from Mark
4212 Russell <mrussell-AT-verio.net>.
4214 Russell <mrussell-AT-verio.net>.
4213
4215
4214 2003-08-20 Fernando Perez <fperez@colorado.edu>
4216 2003-08-20 Fernando Perez <fperez@colorado.edu>
4215
4217
4216 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4218 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4217 printing so that it would print multi-line string forms starting
4219 printing so that it would print multi-line string forms starting
4218 with a new line. This way the formatting is better respected for
4220 with a new line. This way the formatting is better respected for
4219 objects which work hard to make nice string forms.
4221 objects which work hard to make nice string forms.
4220
4222
4221 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4223 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4222 autocall would overtake data access for objects with both
4224 autocall would overtake data access for objects with both
4223 __getitem__ and __call__.
4225 __getitem__ and __call__.
4224
4226
4225 2003-08-19 *** Released version 0.5.0-rc1
4227 2003-08-19 *** Released version 0.5.0-rc1
4226
4228
4227 2003-08-19 Fernando Perez <fperez@colorado.edu>
4229 2003-08-19 Fernando Perez <fperez@colorado.edu>
4228
4230
4229 * IPython/deep_reload.py (load_tail): single tiny change here
4231 * IPython/deep_reload.py (load_tail): single tiny change here
4230 seems to fix the long-standing bug of dreload() failing to work
4232 seems to fix the long-standing bug of dreload() failing to work
4231 for dotted names. But this module is pretty tricky, so I may have
4233 for dotted names. But this module is pretty tricky, so I may have
4232 missed some subtlety. Needs more testing!.
4234 missed some subtlety. Needs more testing!.
4233
4235
4234 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4236 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4235 exceptions which have badly implemented __str__ methods.
4237 exceptions which have badly implemented __str__ methods.
4236 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4238 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4237 which I've been getting reports about from Python 2.3 users. I
4239 which I've been getting reports about from Python 2.3 users. I
4238 wish I had a simple test case to reproduce the problem, so I could
4240 wish I had a simple test case to reproduce the problem, so I could
4239 either write a cleaner workaround or file a bug report if
4241 either write a cleaner workaround or file a bug report if
4240 necessary.
4242 necessary.
4241
4243
4242 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4244 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4243 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4245 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4244 a bug report by Tjabo Kloppenburg.
4246 a bug report by Tjabo Kloppenburg.
4245
4247
4246 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4248 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4247 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4249 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4248 seems rather unstable. Thanks to a bug report by Tjabo
4250 seems rather unstable. Thanks to a bug report by Tjabo
4249 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4251 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4250
4252
4251 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4253 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4252 this out soon because of the critical fixes in the inner loop for
4254 this out soon because of the critical fixes in the inner loop for
4253 generators.
4255 generators.
4254
4256
4255 * IPython/Magic.py (Magic.getargspec): removed. This (and
4257 * IPython/Magic.py (Magic.getargspec): removed. This (and
4256 _get_def) have been obsoleted by OInspect for a long time, I
4258 _get_def) have been obsoleted by OInspect for a long time, I
4257 hadn't noticed that they were dead code.
4259 hadn't noticed that they were dead code.
4258 (Magic._ofind): restored _ofind functionality for a few literals
4260 (Magic._ofind): restored _ofind functionality for a few literals
4259 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4261 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4260 for things like "hello".capitalize?, since that would require a
4262 for things like "hello".capitalize?, since that would require a
4261 potentially dangerous eval() again.
4263 potentially dangerous eval() again.
4262
4264
4263 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4265 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4264 logic a bit more to clean up the escapes handling and minimize the
4266 logic a bit more to clean up the escapes handling and minimize the
4265 use of _ofind to only necessary cases. The interactive 'feel' of
4267 use of _ofind to only necessary cases. The interactive 'feel' of
4266 IPython should have improved quite a bit with the changes in
4268 IPython should have improved quite a bit with the changes in
4267 _prefilter and _ofind (besides being far safer than before).
4269 _prefilter and _ofind (besides being far safer than before).
4268
4270
4269 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4271 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4270 obscure, never reported). Edit would fail to find the object to
4272 obscure, never reported). Edit would fail to find the object to
4271 edit under some circumstances.
4273 edit under some circumstances.
4272 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4274 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4273 which were causing double-calling of generators. Those eval calls
4275 which were causing double-calling of generators. Those eval calls
4274 were _very_ dangerous, since code with side effects could be
4276 were _very_ dangerous, since code with side effects could be
4275 triggered. As they say, 'eval is evil'... These were the
4277 triggered. As they say, 'eval is evil'... These were the
4276 nastiest evals in IPython. Besides, _ofind is now far simpler,
4278 nastiest evals in IPython. Besides, _ofind is now far simpler,
4277 and it should also be quite a bit faster. Its use of inspect is
4279 and it should also be quite a bit faster. Its use of inspect is
4278 also safer, so perhaps some of the inspect-related crashes I've
4280 also safer, so perhaps some of the inspect-related crashes I've
4279 seen lately with Python 2.3 might be taken care of. That will
4281 seen lately with Python 2.3 might be taken care of. That will
4280 need more testing.
4282 need more testing.
4281
4283
4282 2003-08-17 Fernando Perez <fperez@colorado.edu>
4284 2003-08-17 Fernando Perez <fperez@colorado.edu>
4283
4285
4284 * IPython/iplib.py (InteractiveShell._prefilter): significant
4286 * IPython/iplib.py (InteractiveShell._prefilter): significant
4285 simplifications to the logic for handling user escapes. Faster
4287 simplifications to the logic for handling user escapes. Faster
4286 and simpler code.
4288 and simpler code.
4287
4289
4288 2003-08-14 Fernando Perez <fperez@colorado.edu>
4290 2003-08-14 Fernando Perez <fperez@colorado.edu>
4289
4291
4290 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4292 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4291 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4293 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4292 but it should be quite a bit faster. And the recursive version
4294 but it should be quite a bit faster. And the recursive version
4293 generated O(log N) intermediate storage for all rank>1 arrays,
4295 generated O(log N) intermediate storage for all rank>1 arrays,
4294 even if they were contiguous.
4296 even if they were contiguous.
4295 (l1norm): Added this function.
4297 (l1norm): Added this function.
4296 (norm): Added this function for arbitrary norms (including
4298 (norm): Added this function for arbitrary norms (including
4297 l-infinity). l1 and l2 are still special cases for convenience
4299 l-infinity). l1 and l2 are still special cases for convenience
4298 and speed.
4300 and speed.
4299
4301
4300 2003-08-03 Fernando Perez <fperez@colorado.edu>
4302 2003-08-03 Fernando Perez <fperez@colorado.edu>
4301
4303
4302 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4304 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4303 exceptions, which now raise PendingDeprecationWarnings in Python
4305 exceptions, which now raise PendingDeprecationWarnings in Python
4304 2.3. There were some in Magic and some in Gnuplot2.
4306 2.3. There were some in Magic and some in Gnuplot2.
4305
4307
4306 2003-06-30 Fernando Perez <fperez@colorado.edu>
4308 2003-06-30 Fernando Perez <fperez@colorado.edu>
4307
4309
4308 * IPython/genutils.py (page): modified to call curses only for
4310 * IPython/genutils.py (page): modified to call curses only for
4309 terminals where TERM=='xterm'. After problems under many other
4311 terminals where TERM=='xterm'. After problems under many other
4310 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4312 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4311
4313
4312 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4314 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4313 would be triggered when readline was absent. This was just an old
4315 would be triggered when readline was absent. This was just an old
4314 debugging statement I'd forgotten to take out.
4316 debugging statement I'd forgotten to take out.
4315
4317
4316 2003-06-20 Fernando Perez <fperez@colorado.edu>
4318 2003-06-20 Fernando Perez <fperez@colorado.edu>
4317
4319
4318 * IPython/genutils.py (clock): modified to return only user time
4320 * IPython/genutils.py (clock): modified to return only user time
4319 (not counting system time), after a discussion on scipy. While
4321 (not counting system time), after a discussion on scipy. While
4320 system time may be a useful quantity occasionally, it may much
4322 system time may be a useful quantity occasionally, it may much
4321 more easily be skewed by occasional swapping or other similar
4323 more easily be skewed by occasional swapping or other similar
4322 activity.
4324 activity.
4323
4325
4324 2003-06-05 Fernando Perez <fperez@colorado.edu>
4326 2003-06-05 Fernando Perez <fperez@colorado.edu>
4325
4327
4326 * IPython/numutils.py (identity): new function, for building
4328 * IPython/numutils.py (identity): new function, for building
4327 arbitrary rank Kronecker deltas (mostly backwards compatible with
4329 arbitrary rank Kronecker deltas (mostly backwards compatible with
4328 Numeric.identity)
4330 Numeric.identity)
4329
4331
4330 2003-06-03 Fernando Perez <fperez@colorado.edu>
4332 2003-06-03 Fernando Perez <fperez@colorado.edu>
4331
4333
4332 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4334 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4333 arguments passed to magics with spaces, to allow trailing '\' to
4335 arguments passed to magics with spaces, to allow trailing '\' to
4334 work normally (mainly for Windows users).
4336 work normally (mainly for Windows users).
4335
4337
4336 2003-05-29 Fernando Perez <fperez@colorado.edu>
4338 2003-05-29 Fernando Perez <fperez@colorado.edu>
4337
4339
4338 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4340 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4339 instead of pydoc.help. This fixes a bizarre behavior where
4341 instead of pydoc.help. This fixes a bizarre behavior where
4340 printing '%s' % locals() would trigger the help system. Now
4342 printing '%s' % locals() would trigger the help system. Now
4341 ipython behaves like normal python does.
4343 ipython behaves like normal python does.
4342
4344
4343 Note that if one does 'from pydoc import help', the bizarre
4345 Note that if one does 'from pydoc import help', the bizarre
4344 behavior returns, but this will also happen in normal python, so
4346 behavior returns, but this will also happen in normal python, so
4345 it's not an ipython bug anymore (it has to do with how pydoc.help
4347 it's not an ipython bug anymore (it has to do with how pydoc.help
4346 is implemented).
4348 is implemented).
4347
4349
4348 2003-05-22 Fernando Perez <fperez@colorado.edu>
4350 2003-05-22 Fernando Perez <fperez@colorado.edu>
4349
4351
4350 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4352 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4351 return [] instead of None when nothing matches, also match to end
4353 return [] instead of None when nothing matches, also match to end
4352 of line. Patch by Gary Bishop.
4354 of line. Patch by Gary Bishop.
4353
4355
4354 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4356 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4355 protection as before, for files passed on the command line. This
4357 protection as before, for files passed on the command line. This
4356 prevents the CrashHandler from kicking in if user files call into
4358 prevents the CrashHandler from kicking in if user files call into
4357 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4359 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4358 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4360 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4359
4361
4360 2003-05-20 *** Released version 0.4.0
4362 2003-05-20 *** Released version 0.4.0
4361
4363
4362 2003-05-20 Fernando Perez <fperez@colorado.edu>
4364 2003-05-20 Fernando Perez <fperez@colorado.edu>
4363
4365
4364 * setup.py: added support for manpages. It's a bit hackish b/c of
4366 * setup.py: added support for manpages. It's a bit hackish b/c of
4365 a bug in the way the bdist_rpm distutils target handles gzipped
4367 a bug in the way the bdist_rpm distutils target handles gzipped
4366 manpages, but it works. After a patch by Jack.
4368 manpages, but it works. After a patch by Jack.
4367
4369
4368 2003-05-19 Fernando Perez <fperez@colorado.edu>
4370 2003-05-19 Fernando Perez <fperez@colorado.edu>
4369
4371
4370 * IPython/numutils.py: added a mockup of the kinds module, since
4372 * IPython/numutils.py: added a mockup of the kinds module, since
4371 it was recently removed from Numeric. This way, numutils will
4373 it was recently removed from Numeric. This way, numutils will
4372 work for all users even if they are missing kinds.
4374 work for all users even if they are missing kinds.
4373
4375
4374 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4376 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4375 failure, which can occur with SWIG-wrapped extensions. After a
4377 failure, which can occur with SWIG-wrapped extensions. After a
4376 crash report from Prabhu.
4378 crash report from Prabhu.
4377
4379
4378 2003-05-16 Fernando Perez <fperez@colorado.edu>
4380 2003-05-16 Fernando Perez <fperez@colorado.edu>
4379
4381
4380 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4382 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4381 protect ipython from user code which may call directly
4383 protect ipython from user code which may call directly
4382 sys.excepthook (this looks like an ipython crash to the user, even
4384 sys.excepthook (this looks like an ipython crash to the user, even
4383 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4385 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4384 This is especially important to help users of WxWindows, but may
4386 This is especially important to help users of WxWindows, but may
4385 also be useful in other cases.
4387 also be useful in other cases.
4386
4388
4387 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4389 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4388 an optional tb_offset to be specified, and to preserve exception
4390 an optional tb_offset to be specified, and to preserve exception
4389 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4391 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4390
4392
4391 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4393 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4392
4394
4393 2003-05-15 Fernando Perez <fperez@colorado.edu>
4395 2003-05-15 Fernando Perez <fperez@colorado.edu>
4394
4396
4395 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4397 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4396 installing for a new user under Windows.
4398 installing for a new user under Windows.
4397
4399
4398 2003-05-12 Fernando Perez <fperez@colorado.edu>
4400 2003-05-12 Fernando Perez <fperez@colorado.edu>
4399
4401
4400 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4402 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4401 handler for Emacs comint-based lines. Currently it doesn't do
4403 handler for Emacs comint-based lines. Currently it doesn't do
4402 much (but importantly, it doesn't update the history cache). In
4404 much (but importantly, it doesn't update the history cache). In
4403 the future it may be expanded if Alex needs more functionality
4405 the future it may be expanded if Alex needs more functionality
4404 there.
4406 there.
4405
4407
4406 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4408 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4407 info to crash reports.
4409 info to crash reports.
4408
4410
4409 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4411 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4410 just like Python's -c. Also fixed crash with invalid -color
4412 just like Python's -c. Also fixed crash with invalid -color
4411 option value at startup. Thanks to Will French
4413 option value at startup. Thanks to Will French
4412 <wfrench-AT-bestweb.net> for the bug report.
4414 <wfrench-AT-bestweb.net> for the bug report.
4413
4415
4414 2003-05-09 Fernando Perez <fperez@colorado.edu>
4416 2003-05-09 Fernando Perez <fperez@colorado.edu>
4415
4417
4416 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4418 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4417 to EvalDict (it's a mapping, after all) and simplified its code
4419 to EvalDict (it's a mapping, after all) and simplified its code
4418 quite a bit, after a nice discussion on c.l.py where Gustavo
4420 quite a bit, after a nice discussion on c.l.py where Gustavo
4419 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4421 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4420
4422
4421 2003-04-30 Fernando Perez <fperez@colorado.edu>
4423 2003-04-30 Fernando Perez <fperez@colorado.edu>
4422
4424
4423 * IPython/genutils.py (timings_out): modified it to reduce its
4425 * IPython/genutils.py (timings_out): modified it to reduce its
4424 overhead in the common reps==1 case.
4426 overhead in the common reps==1 case.
4425
4427
4426 2003-04-29 Fernando Perez <fperez@colorado.edu>
4428 2003-04-29 Fernando Perez <fperez@colorado.edu>
4427
4429
4428 * IPython/genutils.py (timings_out): Modified to use the resource
4430 * IPython/genutils.py (timings_out): Modified to use the resource
4429 module, which avoids the wraparound problems of time.clock().
4431 module, which avoids the wraparound problems of time.clock().
4430
4432
4431 2003-04-17 *** Released version 0.2.15pre4
4433 2003-04-17 *** Released version 0.2.15pre4
4432
4434
4433 2003-04-17 Fernando Perez <fperez@colorado.edu>
4435 2003-04-17 Fernando Perez <fperez@colorado.edu>
4434
4436
4435 * setup.py (scriptfiles): Split windows-specific stuff over to a
4437 * setup.py (scriptfiles): Split windows-specific stuff over to a
4436 separate file, in an attempt to have a Windows GUI installer.
4438 separate file, in an attempt to have a Windows GUI installer.
4437 That didn't work, but part of the groundwork is done.
4439 That didn't work, but part of the groundwork is done.
4438
4440
4439 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4441 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4440 indent/unindent with 4 spaces. Particularly useful in combination
4442 indent/unindent with 4 spaces. Particularly useful in combination
4441 with the new auto-indent option.
4443 with the new auto-indent option.
4442
4444
4443 2003-04-16 Fernando Perez <fperez@colorado.edu>
4445 2003-04-16 Fernando Perez <fperez@colorado.edu>
4444
4446
4445 * IPython/Magic.py: various replacements of self.rc for
4447 * IPython/Magic.py: various replacements of self.rc for
4446 self.shell.rc. A lot more remains to be done to fully disentangle
4448 self.shell.rc. A lot more remains to be done to fully disentangle
4447 this class from the main Shell class.
4449 this class from the main Shell class.
4448
4450
4449 * IPython/GnuplotRuntime.py: added checks for mouse support so
4451 * IPython/GnuplotRuntime.py: added checks for mouse support so
4450 that we don't try to enable it if the current gnuplot doesn't
4452 that we don't try to enable it if the current gnuplot doesn't
4451 really support it. Also added checks so that we don't try to
4453 really support it. Also added checks so that we don't try to
4452 enable persist under Windows (where Gnuplot doesn't recognize the
4454 enable persist under Windows (where Gnuplot doesn't recognize the
4453 option).
4455 option).
4454
4456
4455 * IPython/iplib.py (InteractiveShell.interact): Added optional
4457 * IPython/iplib.py (InteractiveShell.interact): Added optional
4456 auto-indenting code, after a patch by King C. Shu
4458 auto-indenting code, after a patch by King C. Shu
4457 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4459 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4458 get along well with pasting indented code. If I ever figure out
4460 get along well with pasting indented code. If I ever figure out
4459 how to make that part go well, it will become on by default.
4461 how to make that part go well, it will become on by default.
4460
4462
4461 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4463 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4462 crash ipython if there was an unmatched '%' in the user's prompt
4464 crash ipython if there was an unmatched '%' in the user's prompt
4463 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4465 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4464
4466
4465 * IPython/iplib.py (InteractiveShell.interact): removed the
4467 * IPython/iplib.py (InteractiveShell.interact): removed the
4466 ability to ask the user whether he wants to crash or not at the
4468 ability to ask the user whether he wants to crash or not at the
4467 'last line' exception handler. Calling functions at that point
4469 'last line' exception handler. Calling functions at that point
4468 changes the stack, and the error reports would have incorrect
4470 changes the stack, and the error reports would have incorrect
4469 tracebacks.
4471 tracebacks.
4470
4472
4471 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4473 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4472 pass through a peger a pretty-printed form of any object. After a
4474 pass through a peger a pretty-printed form of any object. After a
4473 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4475 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4474
4476
4475 2003-04-14 Fernando Perez <fperez@colorado.edu>
4477 2003-04-14 Fernando Perez <fperez@colorado.edu>
4476
4478
4477 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4479 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4478 all files in ~ would be modified at first install (instead of
4480 all files in ~ would be modified at first install (instead of
4479 ~/.ipython). This could be potentially disastrous, as the
4481 ~/.ipython). This could be potentially disastrous, as the
4480 modification (make line-endings native) could damage binary files.
4482 modification (make line-endings native) could damage binary files.
4481
4483
4482 2003-04-10 Fernando Perez <fperez@colorado.edu>
4484 2003-04-10 Fernando Perez <fperez@colorado.edu>
4483
4485
4484 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4486 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4485 handle only lines which are invalid python. This now means that
4487 handle only lines which are invalid python. This now means that
4486 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4488 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4487 for the bug report.
4489 for the bug report.
4488
4490
4489 2003-04-01 Fernando Perez <fperez@colorado.edu>
4491 2003-04-01 Fernando Perez <fperez@colorado.edu>
4490
4492
4491 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4493 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4492 where failing to set sys.last_traceback would crash pdb.pm().
4494 where failing to set sys.last_traceback would crash pdb.pm().
4493 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4495 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4494 report.
4496 report.
4495
4497
4496 2003-03-25 Fernando Perez <fperez@colorado.edu>
4498 2003-03-25 Fernando Perez <fperez@colorado.edu>
4497
4499
4498 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4500 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4499 before printing it (it had a lot of spurious blank lines at the
4501 before printing it (it had a lot of spurious blank lines at the
4500 end).
4502 end).
4501
4503
4502 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4504 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4503 output would be sent 21 times! Obviously people don't use this
4505 output would be sent 21 times! Obviously people don't use this
4504 too often, or I would have heard about it.
4506 too often, or I would have heard about it.
4505
4507
4506 2003-03-24 Fernando Perez <fperez@colorado.edu>
4508 2003-03-24 Fernando Perez <fperez@colorado.edu>
4507
4509
4508 * setup.py (scriptfiles): renamed the data_files parameter from
4510 * setup.py (scriptfiles): renamed the data_files parameter from
4509 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4511 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4510 for the patch.
4512 for the patch.
4511
4513
4512 2003-03-20 Fernando Perez <fperez@colorado.edu>
4514 2003-03-20 Fernando Perez <fperez@colorado.edu>
4513
4515
4514 * IPython/genutils.py (error): added error() and fatal()
4516 * IPython/genutils.py (error): added error() and fatal()
4515 functions.
4517 functions.
4516
4518
4517 2003-03-18 *** Released version 0.2.15pre3
4519 2003-03-18 *** Released version 0.2.15pre3
4518
4520
4519 2003-03-18 Fernando Perez <fperez@colorado.edu>
4521 2003-03-18 Fernando Perez <fperez@colorado.edu>
4520
4522
4521 * setupext/install_data_ext.py
4523 * setupext/install_data_ext.py
4522 (install_data_ext.initialize_options): Class contributed by Jack
4524 (install_data_ext.initialize_options): Class contributed by Jack
4523 Moffit for fixing the old distutils hack. He is sending this to
4525 Moffit for fixing the old distutils hack. He is sending this to
4524 the distutils folks so in the future we may not need it as a
4526 the distutils folks so in the future we may not need it as a
4525 private fix.
4527 private fix.
4526
4528
4527 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4529 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4528 changes for Debian packaging. See his patch for full details.
4530 changes for Debian packaging. See his patch for full details.
4529 The old distutils hack of making the ipythonrc* files carry a
4531 The old distutils hack of making the ipythonrc* files carry a
4530 bogus .py extension is gone, at last. Examples were moved to a
4532 bogus .py extension is gone, at last. Examples were moved to a
4531 separate subdir under doc/, and the separate executable scripts
4533 separate subdir under doc/, and the separate executable scripts
4532 now live in their own directory. Overall a great cleanup. The
4534 now live in their own directory. Overall a great cleanup. The
4533 manual was updated to use the new files, and setup.py has been
4535 manual was updated to use the new files, and setup.py has been
4534 fixed for this setup.
4536 fixed for this setup.
4535
4537
4536 * IPython/PyColorize.py (Parser.usage): made non-executable and
4538 * IPython/PyColorize.py (Parser.usage): made non-executable and
4537 created a pycolor wrapper around it to be included as a script.
4539 created a pycolor wrapper around it to be included as a script.
4538
4540
4539 2003-03-12 *** Released version 0.2.15pre2
4541 2003-03-12 *** Released version 0.2.15pre2
4540
4542
4541 2003-03-12 Fernando Perez <fperez@colorado.edu>
4543 2003-03-12 Fernando Perez <fperez@colorado.edu>
4542
4544
4543 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4545 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4544 long-standing problem with garbage characters in some terminals.
4546 long-standing problem with garbage characters in some terminals.
4545 The issue was really that the \001 and \002 escapes must _only_ be
4547 The issue was really that the \001 and \002 escapes must _only_ be
4546 passed to input prompts (which call readline), but _never_ to
4548 passed to input prompts (which call readline), but _never_ to
4547 normal text to be printed on screen. I changed ColorANSI to have
4549 normal text to be printed on screen. I changed ColorANSI to have
4548 two classes: TermColors and InputTermColors, each with the
4550 two classes: TermColors and InputTermColors, each with the
4549 appropriate escapes for input prompts or normal text. The code in
4551 appropriate escapes for input prompts or normal text. The code in
4550 Prompts.py got slightly more complicated, but this very old and
4552 Prompts.py got slightly more complicated, but this very old and
4551 annoying bug is finally fixed.
4553 annoying bug is finally fixed.
4552
4554
4553 All the credit for nailing down the real origin of this problem
4555 All the credit for nailing down the real origin of this problem
4554 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4556 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4555 *Many* thanks to him for spending quite a bit of effort on this.
4557 *Many* thanks to him for spending quite a bit of effort on this.
4556
4558
4557 2003-03-05 *** Released version 0.2.15pre1
4559 2003-03-05 *** Released version 0.2.15pre1
4558
4560
4559 2003-03-03 Fernando Perez <fperez@colorado.edu>
4561 2003-03-03 Fernando Perez <fperez@colorado.edu>
4560
4562
4561 * IPython/FakeModule.py: Moved the former _FakeModule to a
4563 * IPython/FakeModule.py: Moved the former _FakeModule to a
4562 separate file, because it's also needed by Magic (to fix a similar
4564 separate file, because it's also needed by Magic (to fix a similar
4563 pickle-related issue in @run).
4565 pickle-related issue in @run).
4564
4566
4565 2003-03-02 Fernando Perez <fperez@colorado.edu>
4567 2003-03-02 Fernando Perez <fperez@colorado.edu>
4566
4568
4567 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4569 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4568 the autocall option at runtime.
4570 the autocall option at runtime.
4569 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4571 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4570 across Magic.py to start separating Magic from InteractiveShell.
4572 across Magic.py to start separating Magic from InteractiveShell.
4571 (Magic._ofind): Fixed to return proper namespace for dotted
4573 (Magic._ofind): Fixed to return proper namespace for dotted
4572 names. Before, a dotted name would always return 'not currently
4574 names. Before, a dotted name would always return 'not currently
4573 defined', because it would find the 'parent'. s.x would be found,
4575 defined', because it would find the 'parent'. s.x would be found,
4574 but since 'x' isn't defined by itself, it would get confused.
4576 but since 'x' isn't defined by itself, it would get confused.
4575 (Magic.magic_run): Fixed pickling problems reported by Ralf
4577 (Magic.magic_run): Fixed pickling problems reported by Ralf
4576 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4578 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4577 that I'd used when Mike Heeter reported similar issues at the
4579 that I'd used when Mike Heeter reported similar issues at the
4578 top-level, but now for @run. It boils down to injecting the
4580 top-level, but now for @run. It boils down to injecting the
4579 namespace where code is being executed with something that looks
4581 namespace where code is being executed with something that looks
4580 enough like a module to fool pickle.dump(). Since a pickle stores
4582 enough like a module to fool pickle.dump(). Since a pickle stores
4581 a named reference to the importing module, we need this for
4583 a named reference to the importing module, we need this for
4582 pickles to save something sensible.
4584 pickles to save something sensible.
4583
4585
4584 * IPython/ipmaker.py (make_IPython): added an autocall option.
4586 * IPython/ipmaker.py (make_IPython): added an autocall option.
4585
4587
4586 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4588 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4587 the auto-eval code. Now autocalling is an option, and the code is
4589 the auto-eval code. Now autocalling is an option, and the code is
4588 also vastly safer. There is no more eval() involved at all.
4590 also vastly safer. There is no more eval() involved at all.
4589
4591
4590 2003-03-01 Fernando Perez <fperez@colorado.edu>
4592 2003-03-01 Fernando Perez <fperez@colorado.edu>
4591
4593
4592 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4594 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4593 dict with named keys instead of a tuple.
4595 dict with named keys instead of a tuple.
4594
4596
4595 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4597 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4596
4598
4597 * setup.py (make_shortcut): Fixed message about directories
4599 * setup.py (make_shortcut): Fixed message about directories
4598 created during Windows installation (the directories were ok, just
4600 created during Windows installation (the directories were ok, just
4599 the printed message was misleading). Thanks to Chris Liechti
4601 the printed message was misleading). Thanks to Chris Liechti
4600 <cliechti-AT-gmx.net> for the heads up.
4602 <cliechti-AT-gmx.net> for the heads up.
4601
4603
4602 2003-02-21 Fernando Perez <fperez@colorado.edu>
4604 2003-02-21 Fernando Perez <fperez@colorado.edu>
4603
4605
4604 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4606 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4605 of ValueError exception when checking for auto-execution. This
4607 of ValueError exception when checking for auto-execution. This
4606 one is raised by things like Numeric arrays arr.flat when the
4608 one is raised by things like Numeric arrays arr.flat when the
4607 array is non-contiguous.
4609 array is non-contiguous.
4608
4610
4609 2003-01-31 Fernando Perez <fperez@colorado.edu>
4611 2003-01-31 Fernando Perez <fperez@colorado.edu>
4610
4612
4611 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4613 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4612 not return any value at all (even though the command would get
4614 not return any value at all (even though the command would get
4613 executed).
4615 executed).
4614 (xsys): Flush stdout right after printing the command to ensure
4616 (xsys): Flush stdout right after printing the command to ensure
4615 proper ordering of commands and command output in the total
4617 proper ordering of commands and command output in the total
4616 output.
4618 output.
4617 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4619 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4618 system/getoutput as defaults. The old ones are kept for
4620 system/getoutput as defaults. The old ones are kept for
4619 compatibility reasons, so no code which uses this library needs
4621 compatibility reasons, so no code which uses this library needs
4620 changing.
4622 changing.
4621
4623
4622 2003-01-27 *** Released version 0.2.14
4624 2003-01-27 *** Released version 0.2.14
4623
4625
4624 2003-01-25 Fernando Perez <fperez@colorado.edu>
4626 2003-01-25 Fernando Perez <fperez@colorado.edu>
4625
4627
4626 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4628 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4627 functions defined in previous edit sessions could not be re-edited
4629 functions defined in previous edit sessions could not be re-edited
4628 (because the temp files were immediately removed). Now temp files
4630 (because the temp files were immediately removed). Now temp files
4629 are removed only at IPython's exit.
4631 are removed only at IPython's exit.
4630 (Magic.magic_run): Improved @run to perform shell-like expansions
4632 (Magic.magic_run): Improved @run to perform shell-like expansions
4631 on its arguments (~users and $VARS). With this, @run becomes more
4633 on its arguments (~users and $VARS). With this, @run becomes more
4632 like a normal command-line.
4634 like a normal command-line.
4633
4635
4634 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4636 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4635 bugs related to embedding and cleaned up that code. A fairly
4637 bugs related to embedding and cleaned up that code. A fairly
4636 important one was the impossibility to access the global namespace
4638 important one was the impossibility to access the global namespace
4637 through the embedded IPython (only local variables were visible).
4639 through the embedded IPython (only local variables were visible).
4638
4640
4639 2003-01-14 Fernando Perez <fperez@colorado.edu>
4641 2003-01-14 Fernando Perez <fperez@colorado.edu>
4640
4642
4641 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4643 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4642 auto-calling to be a bit more conservative. Now it doesn't get
4644 auto-calling to be a bit more conservative. Now it doesn't get
4643 triggered if any of '!=()<>' are in the rest of the input line, to
4645 triggered if any of '!=()<>' are in the rest of the input line, to
4644 allow comparing callables. Thanks to Alex for the heads up.
4646 allow comparing callables. Thanks to Alex for the heads up.
4645
4647
4646 2003-01-07 Fernando Perez <fperez@colorado.edu>
4648 2003-01-07 Fernando Perez <fperez@colorado.edu>
4647
4649
4648 * IPython/genutils.py (page): fixed estimation of the number of
4650 * IPython/genutils.py (page): fixed estimation of the number of
4649 lines in a string to be paged to simply count newlines. This
4651 lines in a string to be paged to simply count newlines. This
4650 prevents over-guessing due to embedded escape sequences. A better
4652 prevents over-guessing due to embedded escape sequences. A better
4651 long-term solution would involve stripping out the control chars
4653 long-term solution would involve stripping out the control chars
4652 for the count, but it's potentially so expensive I just don't
4654 for the count, but it's potentially so expensive I just don't
4653 think it's worth doing.
4655 think it's worth doing.
4654
4656
4655 2002-12-19 *** Released version 0.2.14pre50
4657 2002-12-19 *** Released version 0.2.14pre50
4656
4658
4657 2002-12-19 Fernando Perez <fperez@colorado.edu>
4659 2002-12-19 Fernando Perez <fperez@colorado.edu>
4658
4660
4659 * tools/release (version): Changed release scripts to inform
4661 * tools/release (version): Changed release scripts to inform
4660 Andrea and build a NEWS file with a list of recent changes.
4662 Andrea and build a NEWS file with a list of recent changes.
4661
4663
4662 * IPython/ColorANSI.py (__all__): changed terminal detection
4664 * IPython/ColorANSI.py (__all__): changed terminal detection
4663 code. Seems to work better for xterms without breaking
4665 code. Seems to work better for xterms without breaking
4664 konsole. Will need more testing to determine if WinXP and Mac OSX
4666 konsole. Will need more testing to determine if WinXP and Mac OSX
4665 also work ok.
4667 also work ok.
4666
4668
4667 2002-12-18 *** Released version 0.2.14pre49
4669 2002-12-18 *** Released version 0.2.14pre49
4668
4670
4669 2002-12-18 Fernando Perez <fperez@colorado.edu>
4671 2002-12-18 Fernando Perez <fperez@colorado.edu>
4670
4672
4671 * Docs: added new info about Mac OSX, from Andrea.
4673 * Docs: added new info about Mac OSX, from Andrea.
4672
4674
4673 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4675 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4674 allow direct plotting of python strings whose format is the same
4676 allow direct plotting of python strings whose format is the same
4675 of gnuplot data files.
4677 of gnuplot data files.
4676
4678
4677 2002-12-16 Fernando Perez <fperez@colorado.edu>
4679 2002-12-16 Fernando Perez <fperez@colorado.edu>
4678
4680
4679 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4681 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4680 value of exit question to be acknowledged.
4682 value of exit question to be acknowledged.
4681
4683
4682 2002-12-03 Fernando Perez <fperez@colorado.edu>
4684 2002-12-03 Fernando Perez <fperez@colorado.edu>
4683
4685
4684 * IPython/ipmaker.py: removed generators, which had been added
4686 * IPython/ipmaker.py: removed generators, which had been added
4685 by mistake in an earlier debugging run. This was causing trouble
4687 by mistake in an earlier debugging run. This was causing trouble
4686 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4688 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4687 for pointing this out.
4689 for pointing this out.
4688
4690
4689 2002-11-17 Fernando Perez <fperez@colorado.edu>
4691 2002-11-17 Fernando Perez <fperez@colorado.edu>
4690
4692
4691 * Manual: updated the Gnuplot section.
4693 * Manual: updated the Gnuplot section.
4692
4694
4693 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4695 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4694 a much better split of what goes in Runtime and what goes in
4696 a much better split of what goes in Runtime and what goes in
4695 Interactive.
4697 Interactive.
4696
4698
4697 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4699 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4698 being imported from iplib.
4700 being imported from iplib.
4699
4701
4700 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4702 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4701 for command-passing. Now the global Gnuplot instance is called
4703 for command-passing. Now the global Gnuplot instance is called
4702 'gp' instead of 'g', which was really a far too fragile and
4704 'gp' instead of 'g', which was really a far too fragile and
4703 common name.
4705 common name.
4704
4706
4705 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4707 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4706 bounding boxes generated by Gnuplot for square plots.
4708 bounding boxes generated by Gnuplot for square plots.
4707
4709
4708 * IPython/genutils.py (popkey): new function added. I should
4710 * IPython/genutils.py (popkey): new function added. I should
4709 suggest this on c.l.py as a dict method, it seems useful.
4711 suggest this on c.l.py as a dict method, it seems useful.
4710
4712
4711 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4713 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4712 to transparently handle PostScript generation. MUCH better than
4714 to transparently handle PostScript generation. MUCH better than
4713 the previous plot_eps/replot_eps (which I removed now). The code
4715 the previous plot_eps/replot_eps (which I removed now). The code
4714 is also fairly clean and well documented now (including
4716 is also fairly clean and well documented now (including
4715 docstrings).
4717 docstrings).
4716
4718
4717 2002-11-13 Fernando Perez <fperez@colorado.edu>
4719 2002-11-13 Fernando Perez <fperez@colorado.edu>
4718
4720
4719 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4721 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4720 (inconsistent with options).
4722 (inconsistent with options).
4721
4723
4722 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4724 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4723 manually disabled, I don't know why. Fixed it.
4725 manually disabled, I don't know why. Fixed it.
4724 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4726 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4725 eps output.
4727 eps output.
4726
4728
4727 2002-11-12 Fernando Perez <fperez@colorado.edu>
4729 2002-11-12 Fernando Perez <fperez@colorado.edu>
4728
4730
4729 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4731 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4730 don't propagate up to caller. Fixes crash reported by François
4732 don't propagate up to caller. Fixes crash reported by François
4731 Pinard.
4733 Pinard.
4732
4734
4733 2002-11-09 Fernando Perez <fperez@colorado.edu>
4735 2002-11-09 Fernando Perez <fperez@colorado.edu>
4734
4736
4735 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4737 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4736 history file for new users.
4738 history file for new users.
4737 (make_IPython): fixed bug where initial install would leave the
4739 (make_IPython): fixed bug where initial install would leave the
4738 user running in the .ipython dir.
4740 user running in the .ipython dir.
4739 (make_IPython): fixed bug where config dir .ipython would be
4741 (make_IPython): fixed bug where config dir .ipython would be
4740 created regardless of the given -ipythondir option. Thanks to Cory
4742 created regardless of the given -ipythondir option. Thanks to Cory
4741 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4743 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4742
4744
4743 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4745 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4744 type confirmations. Will need to use it in all of IPython's code
4746 type confirmations. Will need to use it in all of IPython's code
4745 consistently.
4747 consistently.
4746
4748
4747 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4749 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4748 context to print 31 lines instead of the default 5. This will make
4750 context to print 31 lines instead of the default 5. This will make
4749 the crash reports extremely detailed in case the problem is in
4751 the crash reports extremely detailed in case the problem is in
4750 libraries I don't have access to.
4752 libraries I don't have access to.
4751
4753
4752 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4754 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4753 line of defense' code to still crash, but giving users fair
4755 line of defense' code to still crash, but giving users fair
4754 warning. I don't want internal errors to go unreported: if there's
4756 warning. I don't want internal errors to go unreported: if there's
4755 an internal problem, IPython should crash and generate a full
4757 an internal problem, IPython should crash and generate a full
4756 report.
4758 report.
4757
4759
4758 2002-11-08 Fernando Perez <fperez@colorado.edu>
4760 2002-11-08 Fernando Perez <fperez@colorado.edu>
4759
4761
4760 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4762 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4761 otherwise uncaught exceptions which can appear if people set
4763 otherwise uncaught exceptions which can appear if people set
4762 sys.stdout to something badly broken. Thanks to a crash report
4764 sys.stdout to something badly broken. Thanks to a crash report
4763 from henni-AT-mail.brainbot.com.
4765 from henni-AT-mail.brainbot.com.
4764
4766
4765 2002-11-04 Fernando Perez <fperez@colorado.edu>
4767 2002-11-04 Fernando Perez <fperez@colorado.edu>
4766
4768
4767 * IPython/iplib.py (InteractiveShell.interact): added
4769 * IPython/iplib.py (InteractiveShell.interact): added
4768 __IPYTHON__active to the builtins. It's a flag which goes on when
4770 __IPYTHON__active to the builtins. It's a flag which goes on when
4769 the interaction starts and goes off again when it stops. This
4771 the interaction starts and goes off again when it stops. This
4770 allows embedding code to detect being inside IPython. Before this
4772 allows embedding code to detect being inside IPython. Before this
4771 was done via __IPYTHON__, but that only shows that an IPython
4773 was done via __IPYTHON__, but that only shows that an IPython
4772 instance has been created.
4774 instance has been created.
4773
4775
4774 * IPython/Magic.py (Magic.magic_env): I realized that in a
4776 * IPython/Magic.py (Magic.magic_env): I realized that in a
4775 UserDict, instance.data holds the data as a normal dict. So I
4777 UserDict, instance.data holds the data as a normal dict. So I
4776 modified @env to return os.environ.data instead of rebuilding a
4778 modified @env to return os.environ.data instead of rebuilding a
4777 dict by hand.
4779 dict by hand.
4778
4780
4779 2002-11-02 Fernando Perez <fperez@colorado.edu>
4781 2002-11-02 Fernando Perez <fperez@colorado.edu>
4780
4782
4781 * IPython/genutils.py (warn): changed so that level 1 prints no
4783 * IPython/genutils.py (warn): changed so that level 1 prints no
4782 header. Level 2 is now the default (with 'WARNING' header, as
4784 header. Level 2 is now the default (with 'WARNING' header, as
4783 before). I think I tracked all places where changes were needed in
4785 before). I think I tracked all places where changes were needed in
4784 IPython, but outside code using the old level numbering may have
4786 IPython, but outside code using the old level numbering may have
4785 broken.
4787 broken.
4786
4788
4787 * IPython/iplib.py (InteractiveShell.runcode): added this to
4789 * IPython/iplib.py (InteractiveShell.runcode): added this to
4788 handle the tracebacks in SystemExit traps correctly. The previous
4790 handle the tracebacks in SystemExit traps correctly. The previous
4789 code (through interact) was printing more of the stack than
4791 code (through interact) was printing more of the stack than
4790 necessary, showing IPython internal code to the user.
4792 necessary, showing IPython internal code to the user.
4791
4793
4792 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4794 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4793 default. Now that the default at the confirmation prompt is yes,
4795 default. Now that the default at the confirmation prompt is yes,
4794 it's not so intrusive. François' argument that ipython sessions
4796 it's not so intrusive. François' argument that ipython sessions
4795 tend to be complex enough not to lose them from an accidental C-d,
4797 tend to be complex enough not to lose them from an accidental C-d,
4796 is a valid one.
4798 is a valid one.
4797
4799
4798 * IPython/iplib.py (InteractiveShell.interact): added a
4800 * IPython/iplib.py (InteractiveShell.interact): added a
4799 showtraceback() call to the SystemExit trap, and modified the exit
4801 showtraceback() call to the SystemExit trap, and modified the exit
4800 confirmation to have yes as the default.
4802 confirmation to have yes as the default.
4801
4803
4802 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4804 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4803 this file. It's been gone from the code for a long time, this was
4805 this file. It's been gone from the code for a long time, this was
4804 simply leftover junk.
4806 simply leftover junk.
4805
4807
4806 2002-11-01 Fernando Perez <fperez@colorado.edu>
4808 2002-11-01 Fernando Perez <fperez@colorado.edu>
4807
4809
4808 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4810 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4809 added. If set, IPython now traps EOF and asks for
4811 added. If set, IPython now traps EOF and asks for
4810 confirmation. After a request by François Pinard.
4812 confirmation. After a request by François Pinard.
4811
4813
4812 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4814 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4813 of @abort, and with a new (better) mechanism for handling the
4815 of @abort, and with a new (better) mechanism for handling the
4814 exceptions.
4816 exceptions.
4815
4817
4816 2002-10-27 Fernando Perez <fperez@colorado.edu>
4818 2002-10-27 Fernando Perez <fperez@colorado.edu>
4817
4819
4818 * IPython/usage.py (__doc__): updated the --help information and
4820 * IPython/usage.py (__doc__): updated the --help information and
4819 the ipythonrc file to indicate that -log generates
4821 the ipythonrc file to indicate that -log generates
4820 ./ipython.log. Also fixed the corresponding info in @logstart.
4822 ./ipython.log. Also fixed the corresponding info in @logstart.
4821 This and several other fixes in the manuals thanks to reports by
4823 This and several other fixes in the manuals thanks to reports by
4822 François Pinard <pinard-AT-iro.umontreal.ca>.
4824 François Pinard <pinard-AT-iro.umontreal.ca>.
4823
4825
4824 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4826 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4825 refer to @logstart (instead of @log, which doesn't exist).
4827 refer to @logstart (instead of @log, which doesn't exist).
4826
4828
4827 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4829 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4828 AttributeError crash. Thanks to Christopher Armstrong
4830 AttributeError crash. Thanks to Christopher Armstrong
4829 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4831 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4830 introduced recently (in 0.2.14pre37) with the fix to the eval
4832 introduced recently (in 0.2.14pre37) with the fix to the eval
4831 problem mentioned below.
4833 problem mentioned below.
4832
4834
4833 2002-10-17 Fernando Perez <fperez@colorado.edu>
4835 2002-10-17 Fernando Perez <fperez@colorado.edu>
4834
4836
4835 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4837 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4836 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4838 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4837
4839
4838 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4840 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4839 this function to fix a problem reported by Alex Schmolck. He saw
4841 this function to fix a problem reported by Alex Schmolck. He saw
4840 it with list comprehensions and generators, which were getting
4842 it with list comprehensions and generators, which were getting
4841 called twice. The real problem was an 'eval' call in testing for
4843 called twice. The real problem was an 'eval' call in testing for
4842 automagic which was evaluating the input line silently.
4844 automagic which was evaluating the input line silently.
4843
4845
4844 This is a potentially very nasty bug, if the input has side
4846 This is a potentially very nasty bug, if the input has side
4845 effects which must not be repeated. The code is much cleaner now,
4847 effects which must not be repeated. The code is much cleaner now,
4846 without any blanket 'except' left and with a regexp test for
4848 without any blanket 'except' left and with a regexp test for
4847 actual function names.
4849 actual function names.
4848
4850
4849 But an eval remains, which I'm not fully comfortable with. I just
4851 But an eval remains, which I'm not fully comfortable with. I just
4850 don't know how to find out if an expression could be a callable in
4852 don't know how to find out if an expression could be a callable in
4851 the user's namespace without doing an eval on the string. However
4853 the user's namespace without doing an eval on the string. However
4852 that string is now much more strictly checked so that no code
4854 that string is now much more strictly checked so that no code
4853 slips by, so the eval should only happen for things that can
4855 slips by, so the eval should only happen for things that can
4854 really be only function/method names.
4856 really be only function/method names.
4855
4857
4856 2002-10-15 Fernando Perez <fperez@colorado.edu>
4858 2002-10-15 Fernando Perez <fperez@colorado.edu>
4857
4859
4858 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4860 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4859 OSX information to main manual, removed README_Mac_OSX file from
4861 OSX information to main manual, removed README_Mac_OSX file from
4860 distribution. Also updated credits for recent additions.
4862 distribution. Also updated credits for recent additions.
4861
4863
4862 2002-10-10 Fernando Perez <fperez@colorado.edu>
4864 2002-10-10 Fernando Perez <fperez@colorado.edu>
4863
4865
4864 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4866 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4865 terminal-related issues. Many thanks to Andrea Riciputi
4867 terminal-related issues. Many thanks to Andrea Riciputi
4866 <andrea.riciputi-AT-libero.it> for writing it.
4868 <andrea.riciputi-AT-libero.it> for writing it.
4867
4869
4868 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4870 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4869 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4871 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4870
4872
4871 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4873 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4872 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4874 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4873 <syver-en-AT-online.no> who both submitted patches for this problem.
4875 <syver-en-AT-online.no> who both submitted patches for this problem.
4874
4876
4875 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4877 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4876 global embedding to make sure that things don't overwrite user
4878 global embedding to make sure that things don't overwrite user
4877 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4879 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4878
4880
4879 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4881 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4880 compatibility. Thanks to Hayden Callow
4882 compatibility. Thanks to Hayden Callow
4881 <h.callow-AT-elec.canterbury.ac.nz>
4883 <h.callow-AT-elec.canterbury.ac.nz>
4882
4884
4883 2002-10-04 Fernando Perez <fperez@colorado.edu>
4885 2002-10-04 Fernando Perez <fperez@colorado.edu>
4884
4886
4885 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4887 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4886 Gnuplot.File objects.
4888 Gnuplot.File objects.
4887
4889
4888 2002-07-23 Fernando Perez <fperez@colorado.edu>
4890 2002-07-23 Fernando Perez <fperez@colorado.edu>
4889
4891
4890 * IPython/genutils.py (timing): Added timings() and timing() for
4892 * IPython/genutils.py (timing): Added timings() and timing() for
4891 quick access to the most commonly needed data, the execution
4893 quick access to the most commonly needed data, the execution
4892 times. Old timing() renamed to timings_out().
4894 times. Old timing() renamed to timings_out().
4893
4895
4894 2002-07-18 Fernando Perez <fperez@colorado.edu>
4896 2002-07-18 Fernando Perez <fperez@colorado.edu>
4895
4897
4896 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4898 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4897 bug with nested instances disrupting the parent's tab completion.
4899 bug with nested instances disrupting the parent's tab completion.
4898
4900
4899 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4901 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4900 all_completions code to begin the emacs integration.
4902 all_completions code to begin the emacs integration.
4901
4903
4902 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4904 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4903 argument to allow titling individual arrays when plotting.
4905 argument to allow titling individual arrays when plotting.
4904
4906
4905 2002-07-15 Fernando Perez <fperez@colorado.edu>
4907 2002-07-15 Fernando Perez <fperez@colorado.edu>
4906
4908
4907 * setup.py (make_shortcut): changed to retrieve the value of
4909 * setup.py (make_shortcut): changed to retrieve the value of
4908 'Program Files' directory from the registry (this value changes in
4910 'Program Files' directory from the registry (this value changes in
4909 non-english versions of Windows). Thanks to Thomas Fanslau
4911 non-english versions of Windows). Thanks to Thomas Fanslau
4910 <tfanslau-AT-gmx.de> for the report.
4912 <tfanslau-AT-gmx.de> for the report.
4911
4913
4912 2002-07-10 Fernando Perez <fperez@colorado.edu>
4914 2002-07-10 Fernando Perez <fperez@colorado.edu>
4913
4915
4914 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4916 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4915 a bug in pdb, which crashes if a line with only whitespace is
4917 a bug in pdb, which crashes if a line with only whitespace is
4916 entered. Bug report submitted to sourceforge.
4918 entered. Bug report submitted to sourceforge.
4917
4919
4918 2002-07-09 Fernando Perez <fperez@colorado.edu>
4920 2002-07-09 Fernando Perez <fperez@colorado.edu>
4919
4921
4920 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4922 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4921 reporting exceptions (it's a bug in inspect.py, I just set a
4923 reporting exceptions (it's a bug in inspect.py, I just set a
4922 workaround).
4924 workaround).
4923
4925
4924 2002-07-08 Fernando Perez <fperez@colorado.edu>
4926 2002-07-08 Fernando Perez <fperez@colorado.edu>
4925
4927
4926 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4928 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4927 __IPYTHON__ in __builtins__ to show up in user_ns.
4929 __IPYTHON__ in __builtins__ to show up in user_ns.
4928
4930
4929 2002-07-03 Fernando Perez <fperez@colorado.edu>
4931 2002-07-03 Fernando Perez <fperez@colorado.edu>
4930
4932
4931 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4933 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4932 name from @gp_set_instance to @gp_set_default.
4934 name from @gp_set_instance to @gp_set_default.
4933
4935
4934 * IPython/ipmaker.py (make_IPython): default editor value set to
4936 * IPython/ipmaker.py (make_IPython): default editor value set to
4935 '0' (a string), to match the rc file. Otherwise will crash when
4937 '0' (a string), to match the rc file. Otherwise will crash when
4936 .strip() is called on it.
4938 .strip() is called on it.
4937
4939
4938
4940
4939 2002-06-28 Fernando Perez <fperez@colorado.edu>
4941 2002-06-28 Fernando Perez <fperez@colorado.edu>
4940
4942
4941 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4943 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4942 of files in current directory when a file is executed via
4944 of files in current directory when a file is executed via
4943 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4945 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4944
4946
4945 * setup.py (manfiles): fix for rpm builds, submitted by RA
4947 * setup.py (manfiles): fix for rpm builds, submitted by RA
4946 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4948 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4947
4949
4948 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4950 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4949 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4951 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4950 string!). A. Schmolck caught this one.
4952 string!). A. Schmolck caught this one.
4951
4953
4952 2002-06-27 Fernando Perez <fperez@colorado.edu>
4954 2002-06-27 Fernando Perez <fperez@colorado.edu>
4953
4955
4954 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4956 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4955 defined files at the cmd line. __name__ wasn't being set to
4957 defined files at the cmd line. __name__ wasn't being set to
4956 __main__.
4958 __main__.
4957
4959
4958 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4960 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4959 regular lists and tuples besides Numeric arrays.
4961 regular lists and tuples besides Numeric arrays.
4960
4962
4961 * IPython/Prompts.py (CachedOutput.__call__): Added output
4963 * IPython/Prompts.py (CachedOutput.__call__): Added output
4962 supression for input ending with ';'. Similar to Mathematica and
4964 supression for input ending with ';'. Similar to Mathematica and
4963 Matlab. The _* vars and Out[] list are still updated, just like
4965 Matlab. The _* vars and Out[] list are still updated, just like
4964 Mathematica behaves.
4966 Mathematica behaves.
4965
4967
4966 2002-06-25 Fernando Perez <fperez@colorado.edu>
4968 2002-06-25 Fernando Perez <fperez@colorado.edu>
4967
4969
4968 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4970 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4969 .ini extensions for profiels under Windows.
4971 .ini extensions for profiels under Windows.
4970
4972
4971 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4973 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4972 string form. Fix contributed by Alexander Schmolck
4974 string form. Fix contributed by Alexander Schmolck
4973 <a.schmolck-AT-gmx.net>
4975 <a.schmolck-AT-gmx.net>
4974
4976
4975 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4977 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4976 pre-configured Gnuplot instance.
4978 pre-configured Gnuplot instance.
4977
4979
4978 2002-06-21 Fernando Perez <fperez@colorado.edu>
4980 2002-06-21 Fernando Perez <fperez@colorado.edu>
4979
4981
4980 * IPython/numutils.py (exp_safe): new function, works around the
4982 * IPython/numutils.py (exp_safe): new function, works around the
4981 underflow problems in Numeric.
4983 underflow problems in Numeric.
4982 (log2): New fn. Safe log in base 2: returns exact integer answer
4984 (log2): New fn. Safe log in base 2: returns exact integer answer
4983 for exact integer powers of 2.
4985 for exact integer powers of 2.
4984
4986
4985 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4987 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4986 properly.
4988 properly.
4987
4989
4988 2002-06-20 Fernando Perez <fperez@colorado.edu>
4990 2002-06-20 Fernando Perez <fperez@colorado.edu>
4989
4991
4990 * IPython/genutils.py (timing): new function like
4992 * IPython/genutils.py (timing): new function like
4991 Mathematica's. Similar to time_test, but returns more info.
4993 Mathematica's. Similar to time_test, but returns more info.
4992
4994
4993 2002-06-18 Fernando Perez <fperez@colorado.edu>
4995 2002-06-18 Fernando Perez <fperez@colorado.edu>
4994
4996
4995 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4997 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4996 according to Mike Heeter's suggestions.
4998 according to Mike Heeter's suggestions.
4997
4999
4998 2002-06-16 Fernando Perez <fperez@colorado.edu>
5000 2002-06-16 Fernando Perez <fperez@colorado.edu>
4999
5001
5000 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5002 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5001 system. GnuplotMagic is gone as a user-directory option. New files
5003 system. GnuplotMagic is gone as a user-directory option. New files
5002 make it easier to use all the gnuplot stuff both from external
5004 make it easier to use all the gnuplot stuff both from external
5003 programs as well as from IPython. Had to rewrite part of
5005 programs as well as from IPython. Had to rewrite part of
5004 hardcopy() b/c of a strange bug: often the ps files simply don't
5006 hardcopy() b/c of a strange bug: often the ps files simply don't
5005 get created, and require a repeat of the command (often several
5007 get created, and require a repeat of the command (often several
5006 times).
5008 times).
5007
5009
5008 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5010 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5009 resolve output channel at call time, so that if sys.stderr has
5011 resolve output channel at call time, so that if sys.stderr has
5010 been redirected by user this gets honored.
5012 been redirected by user this gets honored.
5011
5013
5012 2002-06-13 Fernando Perez <fperez@colorado.edu>
5014 2002-06-13 Fernando Perez <fperez@colorado.edu>
5013
5015
5014 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5016 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5015 IPShell. Kept a copy with the old names to avoid breaking people's
5017 IPShell. Kept a copy with the old names to avoid breaking people's
5016 embedded code.
5018 embedded code.
5017
5019
5018 * IPython/ipython: simplified it to the bare minimum after
5020 * IPython/ipython: simplified it to the bare minimum after
5019 Holger's suggestions. Added info about how to use it in
5021 Holger's suggestions. Added info about how to use it in
5020 PYTHONSTARTUP.
5022 PYTHONSTARTUP.
5021
5023
5022 * IPython/Shell.py (IPythonShell): changed the options passing
5024 * IPython/Shell.py (IPythonShell): changed the options passing
5023 from a string with funky %s replacements to a straight list. Maybe
5025 from a string with funky %s replacements to a straight list. Maybe
5024 a bit more typing, but it follows sys.argv conventions, so there's
5026 a bit more typing, but it follows sys.argv conventions, so there's
5025 less special-casing to remember.
5027 less special-casing to remember.
5026
5028
5027 2002-06-12 Fernando Perez <fperez@colorado.edu>
5029 2002-06-12 Fernando Perez <fperez@colorado.edu>
5028
5030
5029 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5031 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5030 command. Thanks to a suggestion by Mike Heeter.
5032 command. Thanks to a suggestion by Mike Heeter.
5031 (Magic.magic_pfile): added behavior to look at filenames if given
5033 (Magic.magic_pfile): added behavior to look at filenames if given
5032 arg is not a defined object.
5034 arg is not a defined object.
5033 (Magic.magic_save): New @save function to save code snippets. Also
5035 (Magic.magic_save): New @save function to save code snippets. Also
5034 a Mike Heeter idea.
5036 a Mike Heeter idea.
5035
5037
5036 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5038 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5037 plot() and replot(). Much more convenient now, especially for
5039 plot() and replot(). Much more convenient now, especially for
5038 interactive use.
5040 interactive use.
5039
5041
5040 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5042 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5041 filenames.
5043 filenames.
5042
5044
5043 2002-06-02 Fernando Perez <fperez@colorado.edu>
5045 2002-06-02 Fernando Perez <fperez@colorado.edu>
5044
5046
5045 * IPython/Struct.py (Struct.__init__): modified to admit
5047 * IPython/Struct.py (Struct.__init__): modified to admit
5046 initialization via another struct.
5048 initialization via another struct.
5047
5049
5048 * IPython/genutils.py (SystemExec.__init__): New stateful
5050 * IPython/genutils.py (SystemExec.__init__): New stateful
5049 interface to xsys and bq. Useful for writing system scripts.
5051 interface to xsys and bq. Useful for writing system scripts.
5050
5052
5051 2002-05-30 Fernando Perez <fperez@colorado.edu>
5053 2002-05-30 Fernando Perez <fperez@colorado.edu>
5052
5054
5053 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5055 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5054 documents. This will make the user download smaller (it's getting
5056 documents. This will make the user download smaller (it's getting
5055 too big).
5057 too big).
5056
5058
5057 2002-05-29 Fernando Perez <fperez@colorado.edu>
5059 2002-05-29 Fernando Perez <fperez@colorado.edu>
5058
5060
5059 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5061 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5060 fix problems with shelve and pickle. Seems to work, but I don't
5062 fix problems with shelve and pickle. Seems to work, but I don't
5061 know if corner cases break it. Thanks to Mike Heeter
5063 know if corner cases break it. Thanks to Mike Heeter
5062 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5064 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5063
5065
5064 2002-05-24 Fernando Perez <fperez@colorado.edu>
5066 2002-05-24 Fernando Perez <fperez@colorado.edu>
5065
5067
5066 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5068 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5067 macros having broken.
5069 macros having broken.
5068
5070
5069 2002-05-21 Fernando Perez <fperez@colorado.edu>
5071 2002-05-21 Fernando Perez <fperez@colorado.edu>
5070
5072
5071 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5073 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5072 introduced logging bug: all history before logging started was
5074 introduced logging bug: all history before logging started was
5073 being written one character per line! This came from the redesign
5075 being written one character per line! This came from the redesign
5074 of the input history as a special list which slices to strings,
5076 of the input history as a special list which slices to strings,
5075 not to lists.
5077 not to lists.
5076
5078
5077 2002-05-20 Fernando Perez <fperez@colorado.edu>
5079 2002-05-20 Fernando Perez <fperez@colorado.edu>
5078
5080
5079 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5081 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5080 be an attribute of all classes in this module. The design of these
5082 be an attribute of all classes in this module. The design of these
5081 classes needs some serious overhauling.
5083 classes needs some serious overhauling.
5082
5084
5083 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5085 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5084 which was ignoring '_' in option names.
5086 which was ignoring '_' in option names.
5085
5087
5086 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5088 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5087 'Verbose_novars' to 'Context' and made it the new default. It's a
5089 'Verbose_novars' to 'Context' and made it the new default. It's a
5088 bit more readable and also safer than verbose.
5090 bit more readable and also safer than verbose.
5089
5091
5090 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5092 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5091 triple-quoted strings.
5093 triple-quoted strings.
5092
5094
5093 * IPython/OInspect.py (__all__): new module exposing the object
5095 * IPython/OInspect.py (__all__): new module exposing the object
5094 introspection facilities. Now the corresponding magics are dummy
5096 introspection facilities. Now the corresponding magics are dummy
5095 wrappers around this. Having this module will make it much easier
5097 wrappers around this. Having this module will make it much easier
5096 to put these functions into our modified pdb.
5098 to put these functions into our modified pdb.
5097 This new object inspector system uses the new colorizing module,
5099 This new object inspector system uses the new colorizing module,
5098 so source code and other things are nicely syntax highlighted.
5100 so source code and other things are nicely syntax highlighted.
5099
5101
5100 2002-05-18 Fernando Perez <fperez@colorado.edu>
5102 2002-05-18 Fernando Perez <fperez@colorado.edu>
5101
5103
5102 * IPython/ColorANSI.py: Split the coloring tools into a separate
5104 * IPython/ColorANSI.py: Split the coloring tools into a separate
5103 module so I can use them in other code easier (they were part of
5105 module so I can use them in other code easier (they were part of
5104 ultraTB).
5106 ultraTB).
5105
5107
5106 2002-05-17 Fernando Perez <fperez@colorado.edu>
5108 2002-05-17 Fernando Perez <fperez@colorado.edu>
5107
5109
5108 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5110 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5109 fixed it to set the global 'g' also to the called instance, as
5111 fixed it to set the global 'g' also to the called instance, as
5110 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5112 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5111 user's 'g' variables).
5113 user's 'g' variables).
5112
5114
5113 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5115 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5114 global variables (aliases to _ih,_oh) so that users which expect
5116 global variables (aliases to _ih,_oh) so that users which expect
5115 In[5] or Out[7] to work aren't unpleasantly surprised.
5117 In[5] or Out[7] to work aren't unpleasantly surprised.
5116 (InputList.__getslice__): new class to allow executing slices of
5118 (InputList.__getslice__): new class to allow executing slices of
5117 input history directly. Very simple class, complements the use of
5119 input history directly. Very simple class, complements the use of
5118 macros.
5120 macros.
5119
5121
5120 2002-05-16 Fernando Perez <fperez@colorado.edu>
5122 2002-05-16 Fernando Perez <fperez@colorado.edu>
5121
5123
5122 * setup.py (docdirbase): make doc directory be just doc/IPython
5124 * setup.py (docdirbase): make doc directory be just doc/IPython
5123 without version numbers, it will reduce clutter for users.
5125 without version numbers, it will reduce clutter for users.
5124
5126
5125 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5127 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5126 execfile call to prevent possible memory leak. See for details:
5128 execfile call to prevent possible memory leak. See for details:
5127 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5129 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5128
5130
5129 2002-05-15 Fernando Perez <fperez@colorado.edu>
5131 2002-05-15 Fernando Perez <fperez@colorado.edu>
5130
5132
5131 * IPython/Magic.py (Magic.magic_psource): made the object
5133 * IPython/Magic.py (Magic.magic_psource): made the object
5132 introspection names be more standard: pdoc, pdef, pfile and
5134 introspection names be more standard: pdoc, pdef, pfile and
5133 psource. They all print/page their output, and it makes
5135 psource. They all print/page their output, and it makes
5134 remembering them easier. Kept old names for compatibility as
5136 remembering them easier. Kept old names for compatibility as
5135 aliases.
5137 aliases.
5136
5138
5137 2002-05-14 Fernando Perez <fperez@colorado.edu>
5139 2002-05-14 Fernando Perez <fperez@colorado.edu>
5138
5140
5139 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5141 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5140 what the mouse problem was. The trick is to use gnuplot with temp
5142 what the mouse problem was. The trick is to use gnuplot with temp
5141 files and NOT with pipes (for data communication), because having
5143 files and NOT with pipes (for data communication), because having
5142 both pipes and the mouse on is bad news.
5144 both pipes and the mouse on is bad news.
5143
5145
5144 2002-05-13 Fernando Perez <fperez@colorado.edu>
5146 2002-05-13 Fernando Perez <fperez@colorado.edu>
5145
5147
5146 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5148 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5147 bug. Information would be reported about builtins even when
5149 bug. Information would be reported about builtins even when
5148 user-defined functions overrode them.
5150 user-defined functions overrode them.
5149
5151
5150 2002-05-11 Fernando Perez <fperez@colorado.edu>
5152 2002-05-11 Fernando Perez <fperez@colorado.edu>
5151
5153
5152 * IPython/__init__.py (__all__): removed FlexCompleter from
5154 * IPython/__init__.py (__all__): removed FlexCompleter from
5153 __all__ so that things don't fail in platforms without readline.
5155 __all__ so that things don't fail in platforms without readline.
5154
5156
5155 2002-05-10 Fernando Perez <fperez@colorado.edu>
5157 2002-05-10 Fernando Perez <fperez@colorado.edu>
5156
5158
5157 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5159 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5158 it requires Numeric, effectively making Numeric a dependency for
5160 it requires Numeric, effectively making Numeric a dependency for
5159 IPython.
5161 IPython.
5160
5162
5161 * Released 0.2.13
5163 * Released 0.2.13
5162
5164
5163 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5165 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5164 profiler interface. Now all the major options from the profiler
5166 profiler interface. Now all the major options from the profiler
5165 module are directly supported in IPython, both for single
5167 module are directly supported in IPython, both for single
5166 expressions (@prun) and for full programs (@run -p).
5168 expressions (@prun) and for full programs (@run -p).
5167
5169
5168 2002-05-09 Fernando Perez <fperez@colorado.edu>
5170 2002-05-09 Fernando Perez <fperez@colorado.edu>
5169
5171
5170 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5172 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5171 magic properly formatted for screen.
5173 magic properly formatted for screen.
5172
5174
5173 * setup.py (make_shortcut): Changed things to put pdf version in
5175 * setup.py (make_shortcut): Changed things to put pdf version in
5174 doc/ instead of doc/manual (had to change lyxport a bit).
5176 doc/ instead of doc/manual (had to change lyxport a bit).
5175
5177
5176 * IPython/Magic.py (Profile.string_stats): made profile runs go
5178 * IPython/Magic.py (Profile.string_stats): made profile runs go
5177 through pager (they are long and a pager allows searching, saving,
5179 through pager (they are long and a pager allows searching, saving,
5178 etc.)
5180 etc.)
5179
5181
5180 2002-05-08 Fernando Perez <fperez@colorado.edu>
5182 2002-05-08 Fernando Perez <fperez@colorado.edu>
5181
5183
5182 * Released 0.2.12
5184 * Released 0.2.12
5183
5185
5184 2002-05-06 Fernando Perez <fperez@colorado.edu>
5186 2002-05-06 Fernando Perez <fperez@colorado.edu>
5185
5187
5186 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5188 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5187 introduced); 'hist n1 n2' was broken.
5189 introduced); 'hist n1 n2' was broken.
5188 (Magic.magic_pdb): added optional on/off arguments to @pdb
5190 (Magic.magic_pdb): added optional on/off arguments to @pdb
5189 (Magic.magic_run): added option -i to @run, which executes code in
5191 (Magic.magic_run): added option -i to @run, which executes code in
5190 the IPython namespace instead of a clean one. Also added @irun as
5192 the IPython namespace instead of a clean one. Also added @irun as
5191 an alias to @run -i.
5193 an alias to @run -i.
5192
5194
5193 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5195 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5194 fixed (it didn't really do anything, the namespaces were wrong).
5196 fixed (it didn't really do anything, the namespaces were wrong).
5195
5197
5196 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5198 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5197
5199
5198 * IPython/__init__.py (__all__): Fixed package namespace, now
5200 * IPython/__init__.py (__all__): Fixed package namespace, now
5199 'import IPython' does give access to IPython.<all> as
5201 'import IPython' does give access to IPython.<all> as
5200 expected. Also renamed __release__ to Release.
5202 expected. Also renamed __release__ to Release.
5201
5203
5202 * IPython/Debugger.py (__license__): created new Pdb class which
5204 * IPython/Debugger.py (__license__): created new Pdb class which
5203 functions like a drop-in for the normal pdb.Pdb but does NOT
5205 functions like a drop-in for the normal pdb.Pdb but does NOT
5204 import readline by default. This way it doesn't muck up IPython's
5206 import readline by default. This way it doesn't muck up IPython's
5205 readline handling, and now tab-completion finally works in the
5207 readline handling, and now tab-completion finally works in the
5206 debugger -- sort of. It completes things globally visible, but the
5208 debugger -- sort of. It completes things globally visible, but the
5207 completer doesn't track the stack as pdb walks it. That's a bit
5209 completer doesn't track the stack as pdb walks it. That's a bit
5208 tricky, and I'll have to implement it later.
5210 tricky, and I'll have to implement it later.
5209
5211
5210 2002-05-05 Fernando Perez <fperez@colorado.edu>
5212 2002-05-05 Fernando Perez <fperez@colorado.edu>
5211
5213
5212 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5214 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5213 magic docstrings when printed via ? (explicit \'s were being
5215 magic docstrings when printed via ? (explicit \'s were being
5214 printed).
5216 printed).
5215
5217
5216 * IPython/ipmaker.py (make_IPython): fixed namespace
5218 * IPython/ipmaker.py (make_IPython): fixed namespace
5217 identification bug. Now variables loaded via logs or command-line
5219 identification bug. Now variables loaded via logs or command-line
5218 files are recognized in the interactive namespace by @who.
5220 files are recognized in the interactive namespace by @who.
5219
5221
5220 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5222 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5221 log replay system stemming from the string form of Structs.
5223 log replay system stemming from the string form of Structs.
5222
5224
5223 * IPython/Magic.py (Macro.__init__): improved macros to properly
5225 * IPython/Magic.py (Macro.__init__): improved macros to properly
5224 handle magic commands in them.
5226 handle magic commands in them.
5225 (Magic.magic_logstart): usernames are now expanded so 'logstart
5227 (Magic.magic_logstart): usernames are now expanded so 'logstart
5226 ~/mylog' now works.
5228 ~/mylog' now works.
5227
5229
5228 * IPython/iplib.py (complete): fixed bug where paths starting with
5230 * IPython/iplib.py (complete): fixed bug where paths starting with
5229 '/' would be completed as magic names.
5231 '/' would be completed as magic names.
5230
5232
5231 2002-05-04 Fernando Perez <fperez@colorado.edu>
5233 2002-05-04 Fernando Perez <fperez@colorado.edu>
5232
5234
5233 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5235 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5234 allow running full programs under the profiler's control.
5236 allow running full programs under the profiler's control.
5235
5237
5236 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5238 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5237 mode to report exceptions verbosely but without formatting
5239 mode to report exceptions verbosely but without formatting
5238 variables. This addresses the issue of ipython 'freezing' (it's
5240 variables. This addresses the issue of ipython 'freezing' (it's
5239 not frozen, but caught in an expensive formatting loop) when huge
5241 not frozen, but caught in an expensive formatting loop) when huge
5240 variables are in the context of an exception.
5242 variables are in the context of an exception.
5241 (VerboseTB.text): Added '--->' markers at line where exception was
5243 (VerboseTB.text): Added '--->' markers at line where exception was
5242 triggered. Much clearer to read, especially in NoColor modes.
5244 triggered. Much clearer to read, especially in NoColor modes.
5243
5245
5244 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5246 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5245 implemented in reverse when changing to the new parse_options().
5247 implemented in reverse when changing to the new parse_options().
5246
5248
5247 2002-05-03 Fernando Perez <fperez@colorado.edu>
5249 2002-05-03 Fernando Perez <fperez@colorado.edu>
5248
5250
5249 * IPython/Magic.py (Magic.parse_options): new function so that
5251 * IPython/Magic.py (Magic.parse_options): new function so that
5250 magics can parse options easier.
5252 magics can parse options easier.
5251 (Magic.magic_prun): new function similar to profile.run(),
5253 (Magic.magic_prun): new function similar to profile.run(),
5252 suggested by Chris Hart.
5254 suggested by Chris Hart.
5253 (Magic.magic_cd): fixed behavior so that it only changes if
5255 (Magic.magic_cd): fixed behavior so that it only changes if
5254 directory actually is in history.
5256 directory actually is in history.
5255
5257
5256 * IPython/usage.py (__doc__): added information about potential
5258 * IPython/usage.py (__doc__): added information about potential
5257 slowness of Verbose exception mode when there are huge data
5259 slowness of Verbose exception mode when there are huge data
5258 structures to be formatted (thanks to Archie Paulson).
5260 structures to be formatted (thanks to Archie Paulson).
5259
5261
5260 * IPython/ipmaker.py (make_IPython): Changed default logging
5262 * IPython/ipmaker.py (make_IPython): Changed default logging
5261 (when simply called with -log) to use curr_dir/ipython.log in
5263 (when simply called with -log) to use curr_dir/ipython.log in
5262 rotate mode. Fixed crash which was occuring with -log before
5264 rotate mode. Fixed crash which was occuring with -log before
5263 (thanks to Jim Boyle).
5265 (thanks to Jim Boyle).
5264
5266
5265 2002-05-01 Fernando Perez <fperez@colorado.edu>
5267 2002-05-01 Fernando Perez <fperez@colorado.edu>
5266
5268
5267 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5269 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5268 was nasty -- though somewhat of a corner case).
5270 was nasty -- though somewhat of a corner case).
5269
5271
5270 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5272 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5271 text (was a bug).
5273 text (was a bug).
5272
5274
5273 2002-04-30 Fernando Perez <fperez@colorado.edu>
5275 2002-04-30 Fernando Perez <fperez@colorado.edu>
5274
5276
5275 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5277 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5276 a print after ^D or ^C from the user so that the In[] prompt
5278 a print after ^D or ^C from the user so that the In[] prompt
5277 doesn't over-run the gnuplot one.
5279 doesn't over-run the gnuplot one.
5278
5280
5279 2002-04-29 Fernando Perez <fperez@colorado.edu>
5281 2002-04-29 Fernando Perez <fperez@colorado.edu>
5280
5282
5281 * Released 0.2.10
5283 * Released 0.2.10
5282
5284
5283 * IPython/__release__.py (version): get date dynamically.
5285 * IPython/__release__.py (version): get date dynamically.
5284
5286
5285 * Misc. documentation updates thanks to Arnd's comments. Also ran
5287 * Misc. documentation updates thanks to Arnd's comments. Also ran
5286 a full spellcheck on the manual (hadn't been done in a while).
5288 a full spellcheck on the manual (hadn't been done in a while).
5287
5289
5288 2002-04-27 Fernando Perez <fperez@colorado.edu>
5290 2002-04-27 Fernando Perez <fperez@colorado.edu>
5289
5291
5290 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5292 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5291 starting a log in mid-session would reset the input history list.
5293 starting a log in mid-session would reset the input history list.
5292
5294
5293 2002-04-26 Fernando Perez <fperez@colorado.edu>
5295 2002-04-26 Fernando Perez <fperez@colorado.edu>
5294
5296
5295 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5297 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5296 all files were being included in an update. Now anything in
5298 all files were being included in an update. Now anything in
5297 UserConfig that matches [A-Za-z]*.py will go (this excludes
5299 UserConfig that matches [A-Za-z]*.py will go (this excludes
5298 __init__.py)
5300 __init__.py)
5299
5301
5300 2002-04-25 Fernando Perez <fperez@colorado.edu>
5302 2002-04-25 Fernando Perez <fperez@colorado.edu>
5301
5303
5302 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5304 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5303 to __builtins__ so that any form of embedded or imported code can
5305 to __builtins__ so that any form of embedded or imported code can
5304 test for being inside IPython.
5306 test for being inside IPython.
5305
5307
5306 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5308 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5307 changed to GnuplotMagic because it's now an importable module,
5309 changed to GnuplotMagic because it's now an importable module,
5308 this makes the name follow that of the standard Gnuplot module.
5310 this makes the name follow that of the standard Gnuplot module.
5309 GnuplotMagic can now be loaded at any time in mid-session.
5311 GnuplotMagic can now be loaded at any time in mid-session.
5310
5312
5311 2002-04-24 Fernando Perez <fperez@colorado.edu>
5313 2002-04-24 Fernando Perez <fperez@colorado.edu>
5312
5314
5313 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5315 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5314 the globals (IPython has its own namespace) and the
5316 the globals (IPython has its own namespace) and the
5315 PhysicalQuantity stuff is much better anyway.
5317 PhysicalQuantity stuff is much better anyway.
5316
5318
5317 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5319 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5318 embedding example to standard user directory for
5320 embedding example to standard user directory for
5319 distribution. Also put it in the manual.
5321 distribution. Also put it in the manual.
5320
5322
5321 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5323 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5322 instance as first argument (so it doesn't rely on some obscure
5324 instance as first argument (so it doesn't rely on some obscure
5323 hidden global).
5325 hidden global).
5324
5326
5325 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5327 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5326 delimiters. While it prevents ().TAB from working, it allows
5328 delimiters. While it prevents ().TAB from working, it allows
5327 completions in open (... expressions. This is by far a more common
5329 completions in open (... expressions. This is by far a more common
5328 case.
5330 case.
5329
5331
5330 2002-04-23 Fernando Perez <fperez@colorado.edu>
5332 2002-04-23 Fernando Perez <fperez@colorado.edu>
5331
5333
5332 * IPython/Extensions/InterpreterPasteInput.py: new
5334 * IPython/Extensions/InterpreterPasteInput.py: new
5333 syntax-processing module for pasting lines with >>> or ... at the
5335 syntax-processing module for pasting lines with >>> or ... at the
5334 start.
5336 start.
5335
5337
5336 * IPython/Extensions/PhysicalQ_Interactive.py
5338 * IPython/Extensions/PhysicalQ_Interactive.py
5337 (PhysicalQuantityInteractive.__int__): fixed to work with either
5339 (PhysicalQuantityInteractive.__int__): fixed to work with either
5338 Numeric or math.
5340 Numeric or math.
5339
5341
5340 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5342 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5341 provided profiles. Now we have:
5343 provided profiles. Now we have:
5342 -math -> math module as * and cmath with its own namespace.
5344 -math -> math module as * and cmath with its own namespace.
5343 -numeric -> Numeric as *, plus gnuplot & grace
5345 -numeric -> Numeric as *, plus gnuplot & grace
5344 -physics -> same as before
5346 -physics -> same as before
5345
5347
5346 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5348 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5347 user-defined magics wouldn't be found by @magic if they were
5349 user-defined magics wouldn't be found by @magic if they were
5348 defined as class methods. Also cleaned up the namespace search
5350 defined as class methods. Also cleaned up the namespace search
5349 logic and the string building (to use %s instead of many repeated
5351 logic and the string building (to use %s instead of many repeated
5350 string adds).
5352 string adds).
5351
5353
5352 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5354 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5353 of user-defined magics to operate with class methods (cleaner, in
5355 of user-defined magics to operate with class methods (cleaner, in
5354 line with the gnuplot code).
5356 line with the gnuplot code).
5355
5357
5356 2002-04-22 Fernando Perez <fperez@colorado.edu>
5358 2002-04-22 Fernando Perez <fperez@colorado.edu>
5357
5359
5358 * setup.py: updated dependency list so that manual is updated when
5360 * setup.py: updated dependency list so that manual is updated when
5359 all included files change.
5361 all included files change.
5360
5362
5361 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5363 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5362 the delimiter removal option (the fix is ugly right now).
5364 the delimiter removal option (the fix is ugly right now).
5363
5365
5364 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5366 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5365 all of the math profile (quicker loading, no conflict between
5367 all of the math profile (quicker loading, no conflict between
5366 g-9.8 and g-gnuplot).
5368 g-9.8 and g-gnuplot).
5367
5369
5368 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5370 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5369 name of post-mortem files to IPython_crash_report.txt.
5371 name of post-mortem files to IPython_crash_report.txt.
5370
5372
5371 * Cleanup/update of the docs. Added all the new readline info and
5373 * Cleanup/update of the docs. Added all the new readline info and
5372 formatted all lists as 'real lists'.
5374 formatted all lists as 'real lists'.
5373
5375
5374 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5376 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5375 tab-completion options, since the full readline parse_and_bind is
5377 tab-completion options, since the full readline parse_and_bind is
5376 now accessible.
5378 now accessible.
5377
5379
5378 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5380 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5379 handling of readline options. Now users can specify any string to
5381 handling of readline options. Now users can specify any string to
5380 be passed to parse_and_bind(), as well as the delimiters to be
5382 be passed to parse_and_bind(), as well as the delimiters to be
5381 removed.
5383 removed.
5382 (InteractiveShell.__init__): Added __name__ to the global
5384 (InteractiveShell.__init__): Added __name__ to the global
5383 namespace so that things like Itpl which rely on its existence
5385 namespace so that things like Itpl which rely on its existence
5384 don't crash.
5386 don't crash.
5385 (InteractiveShell._prefilter): Defined the default with a _ so
5387 (InteractiveShell._prefilter): Defined the default with a _ so
5386 that prefilter() is easier to override, while the default one
5388 that prefilter() is easier to override, while the default one
5387 remains available.
5389 remains available.
5388
5390
5389 2002-04-18 Fernando Perez <fperez@colorado.edu>
5391 2002-04-18 Fernando Perez <fperez@colorado.edu>
5390
5392
5391 * Added information about pdb in the docs.
5393 * Added information about pdb in the docs.
5392
5394
5393 2002-04-17 Fernando Perez <fperez@colorado.edu>
5395 2002-04-17 Fernando Perez <fperez@colorado.edu>
5394
5396
5395 * IPython/ipmaker.py (make_IPython): added rc_override option to
5397 * IPython/ipmaker.py (make_IPython): added rc_override option to
5396 allow passing config options at creation time which may override
5398 allow passing config options at creation time which may override
5397 anything set in the config files or command line. This is
5399 anything set in the config files or command line. This is
5398 particularly useful for configuring embedded instances.
5400 particularly useful for configuring embedded instances.
5399
5401
5400 2002-04-15 Fernando Perez <fperez@colorado.edu>
5402 2002-04-15 Fernando Perez <fperez@colorado.edu>
5401
5403
5402 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5404 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5403 crash embedded instances because of the input cache falling out of
5405 crash embedded instances because of the input cache falling out of
5404 sync with the output counter.
5406 sync with the output counter.
5405
5407
5406 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5408 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5407 mode which calls pdb after an uncaught exception in IPython itself.
5409 mode which calls pdb after an uncaught exception in IPython itself.
5408
5410
5409 2002-04-14 Fernando Perez <fperez@colorado.edu>
5411 2002-04-14 Fernando Perez <fperez@colorado.edu>
5410
5412
5411 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5413 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5412 readline, fix it back after each call.
5414 readline, fix it back after each call.
5413
5415
5414 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5416 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5415 method to force all access via __call__(), which guarantees that
5417 method to force all access via __call__(), which guarantees that
5416 traceback references are properly deleted.
5418 traceback references are properly deleted.
5417
5419
5418 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5420 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5419 improve printing when pprint is in use.
5421 improve printing when pprint is in use.
5420
5422
5421 2002-04-13 Fernando Perez <fperez@colorado.edu>
5423 2002-04-13 Fernando Perez <fperez@colorado.edu>
5422
5424
5423 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5425 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5424 exceptions aren't caught anymore. If the user triggers one, he
5426 exceptions aren't caught anymore. If the user triggers one, he
5425 should know why he's doing it and it should go all the way up,
5427 should know why he's doing it and it should go all the way up,
5426 just like any other exception. So now @abort will fully kill the
5428 just like any other exception. So now @abort will fully kill the
5427 embedded interpreter and the embedding code (unless that happens
5429 embedded interpreter and the embedding code (unless that happens
5428 to catch SystemExit).
5430 to catch SystemExit).
5429
5431
5430 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5432 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5431 and a debugger() method to invoke the interactive pdb debugger
5433 and a debugger() method to invoke the interactive pdb debugger
5432 after printing exception information. Also added the corresponding
5434 after printing exception information. Also added the corresponding
5433 -pdb option and @pdb magic to control this feature, and updated
5435 -pdb option and @pdb magic to control this feature, and updated
5434 the docs. After a suggestion from Christopher Hart
5436 the docs. After a suggestion from Christopher Hart
5435 (hart-AT-caltech.edu).
5437 (hart-AT-caltech.edu).
5436
5438
5437 2002-04-12 Fernando Perez <fperez@colorado.edu>
5439 2002-04-12 Fernando Perez <fperez@colorado.edu>
5438
5440
5439 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5441 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5440 the exception handlers defined by the user (not the CrashHandler)
5442 the exception handlers defined by the user (not the CrashHandler)
5441 so that user exceptions don't trigger an ipython bug report.
5443 so that user exceptions don't trigger an ipython bug report.
5442
5444
5443 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5445 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5444 configurable (it should have always been so).
5446 configurable (it should have always been so).
5445
5447
5446 2002-03-26 Fernando Perez <fperez@colorado.edu>
5448 2002-03-26 Fernando Perez <fperez@colorado.edu>
5447
5449
5448 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5450 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5449 and there to fix embedding namespace issues. This should all be
5451 and there to fix embedding namespace issues. This should all be
5450 done in a more elegant way.
5452 done in a more elegant way.
5451
5453
5452 2002-03-25 Fernando Perez <fperez@colorado.edu>
5454 2002-03-25 Fernando Perez <fperez@colorado.edu>
5453
5455
5454 * IPython/genutils.py (get_home_dir): Try to make it work under
5456 * IPython/genutils.py (get_home_dir): Try to make it work under
5455 win9x also.
5457 win9x also.
5456
5458
5457 2002-03-20 Fernando Perez <fperez@colorado.edu>
5459 2002-03-20 Fernando Perez <fperez@colorado.edu>
5458
5460
5459 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5461 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5460 sys.displayhook untouched upon __init__.
5462 sys.displayhook untouched upon __init__.
5461
5463
5462 2002-03-19 Fernando Perez <fperez@colorado.edu>
5464 2002-03-19 Fernando Perez <fperez@colorado.edu>
5463
5465
5464 * Released 0.2.9 (for embedding bug, basically).
5466 * Released 0.2.9 (for embedding bug, basically).
5465
5467
5466 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5468 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5467 exceptions so that enclosing shell's state can be restored.
5469 exceptions so that enclosing shell's state can be restored.
5468
5470
5469 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5471 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5470 naming conventions in the .ipython/ dir.
5472 naming conventions in the .ipython/ dir.
5471
5473
5472 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5474 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5473 from delimiters list so filenames with - in them get expanded.
5475 from delimiters list so filenames with - in them get expanded.
5474
5476
5475 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5477 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5476 sys.displayhook not being properly restored after an embedded call.
5478 sys.displayhook not being properly restored after an embedded call.
5477
5479
5478 2002-03-18 Fernando Perez <fperez@colorado.edu>
5480 2002-03-18 Fernando Perez <fperez@colorado.edu>
5479
5481
5480 * Released 0.2.8
5482 * Released 0.2.8
5481
5483
5482 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5484 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5483 some files weren't being included in a -upgrade.
5485 some files weren't being included in a -upgrade.
5484 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5486 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5485 on' so that the first tab completes.
5487 on' so that the first tab completes.
5486 (InteractiveShell.handle_magic): fixed bug with spaces around
5488 (InteractiveShell.handle_magic): fixed bug with spaces around
5487 quotes breaking many magic commands.
5489 quotes breaking many magic commands.
5488
5490
5489 * setup.py: added note about ignoring the syntax error messages at
5491 * setup.py: added note about ignoring the syntax error messages at
5490 installation.
5492 installation.
5491
5493
5492 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5494 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5493 streamlining the gnuplot interface, now there's only one magic @gp.
5495 streamlining the gnuplot interface, now there's only one magic @gp.
5494
5496
5495 2002-03-17 Fernando Perez <fperez@colorado.edu>
5497 2002-03-17 Fernando Perez <fperez@colorado.edu>
5496
5498
5497 * IPython/UserConfig/magic_gnuplot.py: new name for the
5499 * IPython/UserConfig/magic_gnuplot.py: new name for the
5498 example-magic_pm.py file. Much enhanced system, now with a shell
5500 example-magic_pm.py file. Much enhanced system, now with a shell
5499 for communicating directly with gnuplot, one command at a time.
5501 for communicating directly with gnuplot, one command at a time.
5500
5502
5501 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5503 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5502 setting __name__=='__main__'.
5504 setting __name__=='__main__'.
5503
5505
5504 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5506 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5505 mini-shell for accessing gnuplot from inside ipython. Should
5507 mini-shell for accessing gnuplot from inside ipython. Should
5506 extend it later for grace access too. Inspired by Arnd's
5508 extend it later for grace access too. Inspired by Arnd's
5507 suggestion.
5509 suggestion.
5508
5510
5509 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5511 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5510 calling magic functions with () in their arguments. Thanks to Arnd
5512 calling magic functions with () in their arguments. Thanks to Arnd
5511 Baecker for pointing this to me.
5513 Baecker for pointing this to me.
5512
5514
5513 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5515 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5514 infinitely for integer or complex arrays (only worked with floats).
5516 infinitely for integer or complex arrays (only worked with floats).
5515
5517
5516 2002-03-16 Fernando Perez <fperez@colorado.edu>
5518 2002-03-16 Fernando Perez <fperez@colorado.edu>
5517
5519
5518 * setup.py: Merged setup and setup_windows into a single script
5520 * setup.py: Merged setup and setup_windows into a single script
5519 which properly handles things for windows users.
5521 which properly handles things for windows users.
5520
5522
5521 2002-03-15 Fernando Perez <fperez@colorado.edu>
5523 2002-03-15 Fernando Perez <fperez@colorado.edu>
5522
5524
5523 * Big change to the manual: now the magics are all automatically
5525 * Big change to the manual: now the magics are all automatically
5524 documented. This information is generated from their docstrings
5526 documented. This information is generated from their docstrings
5525 and put in a latex file included by the manual lyx file. This way
5527 and put in a latex file included by the manual lyx file. This way
5526 we get always up to date information for the magics. The manual
5528 we get always up to date information for the magics. The manual
5527 now also has proper version information, also auto-synced.
5529 now also has proper version information, also auto-synced.
5528
5530
5529 For this to work, an undocumented --magic_docstrings option was added.
5531 For this to work, an undocumented --magic_docstrings option was added.
5530
5532
5531 2002-03-13 Fernando Perez <fperez@colorado.edu>
5533 2002-03-13 Fernando Perez <fperez@colorado.edu>
5532
5534
5533 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5535 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5534 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5536 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5535
5537
5536 2002-03-12 Fernando Perez <fperez@colorado.edu>
5538 2002-03-12 Fernando Perez <fperez@colorado.edu>
5537
5539
5538 * IPython/ultraTB.py (TermColors): changed color escapes again to
5540 * IPython/ultraTB.py (TermColors): changed color escapes again to
5539 fix the (old, reintroduced) line-wrapping bug. Basically, if
5541 fix the (old, reintroduced) line-wrapping bug. Basically, if
5540 \001..\002 aren't given in the color escapes, lines get wrapped
5542 \001..\002 aren't given in the color escapes, lines get wrapped
5541 weirdly. But giving those screws up old xterms and emacs terms. So
5543 weirdly. But giving those screws up old xterms and emacs terms. So
5542 I added some logic for emacs terms to be ok, but I can't identify old
5544 I added some logic for emacs terms to be ok, but I can't identify old
5543 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5545 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5544
5546
5545 2002-03-10 Fernando Perez <fperez@colorado.edu>
5547 2002-03-10 Fernando Perez <fperez@colorado.edu>
5546
5548
5547 * IPython/usage.py (__doc__): Various documentation cleanups and
5549 * IPython/usage.py (__doc__): Various documentation cleanups and
5548 updates, both in usage docstrings and in the manual.
5550 updates, both in usage docstrings and in the manual.
5549
5551
5550 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5552 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5551 handling of caching. Set minimum acceptabe value for having a
5553 handling of caching. Set minimum acceptabe value for having a
5552 cache at 20 values.
5554 cache at 20 values.
5553
5555
5554 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5556 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5555 install_first_time function to a method, renamed it and added an
5557 install_first_time function to a method, renamed it and added an
5556 'upgrade' mode. Now people can update their config directory with
5558 'upgrade' mode. Now people can update their config directory with
5557 a simple command line switch (-upgrade, also new).
5559 a simple command line switch (-upgrade, also new).
5558
5560
5559 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5561 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5560 @file (convenient for automagic users under Python >= 2.2).
5562 @file (convenient for automagic users under Python >= 2.2).
5561 Removed @files (it seemed more like a plural than an abbrev. of
5563 Removed @files (it seemed more like a plural than an abbrev. of
5562 'file show').
5564 'file show').
5563
5565
5564 * IPython/iplib.py (install_first_time): Fixed crash if there were
5566 * IPython/iplib.py (install_first_time): Fixed crash if there were
5565 backup files ('~') in .ipython/ install directory.
5567 backup files ('~') in .ipython/ install directory.
5566
5568
5567 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5569 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5568 system. Things look fine, but these changes are fairly
5570 system. Things look fine, but these changes are fairly
5569 intrusive. Test them for a few days.
5571 intrusive. Test them for a few days.
5570
5572
5571 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5573 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5572 the prompts system. Now all in/out prompt strings are user
5574 the prompts system. Now all in/out prompt strings are user
5573 controllable. This is particularly useful for embedding, as one
5575 controllable. This is particularly useful for embedding, as one
5574 can tag embedded instances with particular prompts.
5576 can tag embedded instances with particular prompts.
5575
5577
5576 Also removed global use of sys.ps1/2, which now allows nested
5578 Also removed global use of sys.ps1/2, which now allows nested
5577 embeddings without any problems. Added command-line options for
5579 embeddings without any problems. Added command-line options for
5578 the prompt strings.
5580 the prompt strings.
5579
5581
5580 2002-03-08 Fernando Perez <fperez@colorado.edu>
5582 2002-03-08 Fernando Perez <fperez@colorado.edu>
5581
5583
5582 * IPython/UserConfig/example-embed-short.py (ipshell): added
5584 * IPython/UserConfig/example-embed-short.py (ipshell): added
5583 example file with the bare minimum code for embedding.
5585 example file with the bare minimum code for embedding.
5584
5586
5585 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5587 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5586 functionality for the embeddable shell to be activated/deactivated
5588 functionality for the embeddable shell to be activated/deactivated
5587 either globally or at each call.
5589 either globally or at each call.
5588
5590
5589 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5591 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5590 rewriting the prompt with '--->' for auto-inputs with proper
5592 rewriting the prompt with '--->' for auto-inputs with proper
5591 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5593 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5592 this is handled by the prompts class itself, as it should.
5594 this is handled by the prompts class itself, as it should.
5593
5595
5594 2002-03-05 Fernando Perez <fperez@colorado.edu>
5596 2002-03-05 Fernando Perez <fperez@colorado.edu>
5595
5597
5596 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5598 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5597 @logstart to avoid name clashes with the math log function.
5599 @logstart to avoid name clashes with the math log function.
5598
5600
5599 * Big updates to X/Emacs section of the manual.
5601 * Big updates to X/Emacs section of the manual.
5600
5602
5601 * Removed ipython_emacs. Milan explained to me how to pass
5603 * Removed ipython_emacs. Milan explained to me how to pass
5602 arguments to ipython through Emacs. Some day I'm going to end up
5604 arguments to ipython through Emacs. Some day I'm going to end up
5603 learning some lisp...
5605 learning some lisp...
5604
5606
5605 2002-03-04 Fernando Perez <fperez@colorado.edu>
5607 2002-03-04 Fernando Perez <fperez@colorado.edu>
5606
5608
5607 * IPython/ipython_emacs: Created script to be used as the
5609 * IPython/ipython_emacs: Created script to be used as the
5608 py-python-command Emacs variable so we can pass IPython
5610 py-python-command Emacs variable so we can pass IPython
5609 parameters. I can't figure out how to tell Emacs directly to pass
5611 parameters. I can't figure out how to tell Emacs directly to pass
5610 parameters to IPython, so a dummy shell script will do it.
5612 parameters to IPython, so a dummy shell script will do it.
5611
5613
5612 Other enhancements made for things to work better under Emacs'
5614 Other enhancements made for things to work better under Emacs'
5613 various types of terminals. Many thanks to Milan Zamazal
5615 various types of terminals. Many thanks to Milan Zamazal
5614 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5616 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5615
5617
5616 2002-03-01 Fernando Perez <fperez@colorado.edu>
5618 2002-03-01 Fernando Perez <fperez@colorado.edu>
5617
5619
5618 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5620 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5619 that loading of readline is now optional. This gives better
5621 that loading of readline is now optional. This gives better
5620 control to emacs users.
5622 control to emacs users.
5621
5623
5622 * IPython/ultraTB.py (__date__): Modified color escape sequences
5624 * IPython/ultraTB.py (__date__): Modified color escape sequences
5623 and now things work fine under xterm and in Emacs' term buffers
5625 and now things work fine under xterm and in Emacs' term buffers
5624 (though not shell ones). Well, in emacs you get colors, but all
5626 (though not shell ones). Well, in emacs you get colors, but all
5625 seem to be 'light' colors (no difference between dark and light
5627 seem to be 'light' colors (no difference between dark and light
5626 ones). But the garbage chars are gone, and also in xterms. It
5628 ones). But the garbage chars are gone, and also in xterms. It
5627 seems that now I'm using 'cleaner' ansi sequences.
5629 seems that now I'm using 'cleaner' ansi sequences.
5628
5630
5629 2002-02-21 Fernando Perez <fperez@colorado.edu>
5631 2002-02-21 Fernando Perez <fperez@colorado.edu>
5630
5632
5631 * Released 0.2.7 (mainly to publish the scoping fix).
5633 * Released 0.2.7 (mainly to publish the scoping fix).
5632
5634
5633 * IPython/Logger.py (Logger.logstate): added. A corresponding
5635 * IPython/Logger.py (Logger.logstate): added. A corresponding
5634 @logstate magic was created.
5636 @logstate magic was created.
5635
5637
5636 * IPython/Magic.py: fixed nested scoping problem under Python
5638 * IPython/Magic.py: fixed nested scoping problem under Python
5637 2.1.x (automagic wasn't working).
5639 2.1.x (automagic wasn't working).
5638
5640
5639 2002-02-20 Fernando Perez <fperez@colorado.edu>
5641 2002-02-20 Fernando Perez <fperez@colorado.edu>
5640
5642
5641 * Released 0.2.6.
5643 * Released 0.2.6.
5642
5644
5643 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5645 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5644 option so that logs can come out without any headers at all.
5646 option so that logs can come out without any headers at all.
5645
5647
5646 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5648 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5647 SciPy.
5649 SciPy.
5648
5650
5649 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5651 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5650 that embedded IPython calls don't require vars() to be explicitly
5652 that embedded IPython calls don't require vars() to be explicitly
5651 passed. Now they are extracted from the caller's frame (code
5653 passed. Now they are extracted from the caller's frame (code
5652 snatched from Eric Jones' weave). Added better documentation to
5654 snatched from Eric Jones' weave). Added better documentation to
5653 the section on embedding and the example file.
5655 the section on embedding and the example file.
5654
5656
5655 * IPython/genutils.py (page): Changed so that under emacs, it just
5657 * IPython/genutils.py (page): Changed so that under emacs, it just
5656 prints the string. You can then page up and down in the emacs
5658 prints the string. You can then page up and down in the emacs
5657 buffer itself. This is how the builtin help() works.
5659 buffer itself. This is how the builtin help() works.
5658
5660
5659 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5661 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5660 macro scoping: macros need to be executed in the user's namespace
5662 macro scoping: macros need to be executed in the user's namespace
5661 to work as if they had been typed by the user.
5663 to work as if they had been typed by the user.
5662
5664
5663 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5665 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5664 execute automatically (no need to type 'exec...'). They then
5666 execute automatically (no need to type 'exec...'). They then
5665 behave like 'true macros'. The printing system was also modified
5667 behave like 'true macros'. The printing system was also modified
5666 for this to work.
5668 for this to work.
5667
5669
5668 2002-02-19 Fernando Perez <fperez@colorado.edu>
5670 2002-02-19 Fernando Perez <fperez@colorado.edu>
5669
5671
5670 * IPython/genutils.py (page_file): new function for paging files
5672 * IPython/genutils.py (page_file): new function for paging files
5671 in an OS-independent way. Also necessary for file viewing to work
5673 in an OS-independent way. Also necessary for file viewing to work
5672 well inside Emacs buffers.
5674 well inside Emacs buffers.
5673 (page): Added checks for being in an emacs buffer.
5675 (page): Added checks for being in an emacs buffer.
5674 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5676 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5675 same bug in iplib.
5677 same bug in iplib.
5676
5678
5677 2002-02-18 Fernando Perez <fperez@colorado.edu>
5679 2002-02-18 Fernando Perez <fperez@colorado.edu>
5678
5680
5679 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5681 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5680 of readline so that IPython can work inside an Emacs buffer.
5682 of readline so that IPython can work inside an Emacs buffer.
5681
5683
5682 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5684 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5683 method signatures (they weren't really bugs, but it looks cleaner
5685 method signatures (they weren't really bugs, but it looks cleaner
5684 and keeps PyChecker happy).
5686 and keeps PyChecker happy).
5685
5687
5686 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5688 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5687 for implementing various user-defined hooks. Currently only
5689 for implementing various user-defined hooks. Currently only
5688 display is done.
5690 display is done.
5689
5691
5690 * IPython/Prompts.py (CachedOutput._display): changed display
5692 * IPython/Prompts.py (CachedOutput._display): changed display
5691 functions so that they can be dynamically changed by users easily.
5693 functions so that they can be dynamically changed by users easily.
5692
5694
5693 * IPython/Extensions/numeric_formats.py (num_display): added an
5695 * IPython/Extensions/numeric_formats.py (num_display): added an
5694 extension for printing NumPy arrays in flexible manners. It
5696 extension for printing NumPy arrays in flexible manners. It
5695 doesn't do anything yet, but all the structure is in
5697 doesn't do anything yet, but all the structure is in
5696 place. Ultimately the plan is to implement output format control
5698 place. Ultimately the plan is to implement output format control
5697 like in Octave.
5699 like in Octave.
5698
5700
5699 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5701 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5700 methods are found at run-time by all the automatic machinery.
5702 methods are found at run-time by all the automatic machinery.
5701
5703
5702 2002-02-17 Fernando Perez <fperez@colorado.edu>
5704 2002-02-17 Fernando Perez <fperez@colorado.edu>
5703
5705
5704 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5706 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5705 whole file a little.
5707 whole file a little.
5706
5708
5707 * ToDo: closed this document. Now there's a new_design.lyx
5709 * ToDo: closed this document. Now there's a new_design.lyx
5708 document for all new ideas. Added making a pdf of it for the
5710 document for all new ideas. Added making a pdf of it for the
5709 end-user distro.
5711 end-user distro.
5710
5712
5711 * IPython/Logger.py (Logger.switch_log): Created this to replace
5713 * IPython/Logger.py (Logger.switch_log): Created this to replace
5712 logon() and logoff(). It also fixes a nasty crash reported by
5714 logon() and logoff(). It also fixes a nasty crash reported by
5713 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5715 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5714
5716
5715 * IPython/iplib.py (complete): got auto-completion to work with
5717 * IPython/iplib.py (complete): got auto-completion to work with
5716 automagic (I had wanted this for a long time).
5718 automagic (I had wanted this for a long time).
5717
5719
5718 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5720 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5719 to @file, since file() is now a builtin and clashes with automagic
5721 to @file, since file() is now a builtin and clashes with automagic
5720 for @file.
5722 for @file.
5721
5723
5722 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5724 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5723 of this was previously in iplib, which had grown to more than 2000
5725 of this was previously in iplib, which had grown to more than 2000
5724 lines, way too long. No new functionality, but it makes managing
5726 lines, way too long. No new functionality, but it makes managing
5725 the code a bit easier.
5727 the code a bit easier.
5726
5728
5727 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5729 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5728 information to crash reports.
5730 information to crash reports.
5729
5731
5730 2002-02-12 Fernando Perez <fperez@colorado.edu>
5732 2002-02-12 Fernando Perez <fperez@colorado.edu>
5731
5733
5732 * Released 0.2.5.
5734 * Released 0.2.5.
5733
5735
5734 2002-02-11 Fernando Perez <fperez@colorado.edu>
5736 2002-02-11 Fernando Perez <fperez@colorado.edu>
5735
5737
5736 * Wrote a relatively complete Windows installer. It puts
5738 * Wrote a relatively complete Windows installer. It puts
5737 everything in place, creates Start Menu entries and fixes the
5739 everything in place, creates Start Menu entries and fixes the
5738 color issues. Nothing fancy, but it works.
5740 color issues. Nothing fancy, but it works.
5739
5741
5740 2002-02-10 Fernando Perez <fperez@colorado.edu>
5742 2002-02-10 Fernando Perez <fperez@colorado.edu>
5741
5743
5742 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5744 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5743 os.path.expanduser() call so that we can type @run ~/myfile.py and
5745 os.path.expanduser() call so that we can type @run ~/myfile.py and
5744 have thigs work as expected.
5746 have thigs work as expected.
5745
5747
5746 * IPython/genutils.py (page): fixed exception handling so things
5748 * IPython/genutils.py (page): fixed exception handling so things
5747 work both in Unix and Windows correctly. Quitting a pager triggers
5749 work both in Unix and Windows correctly. Quitting a pager triggers
5748 an IOError/broken pipe in Unix, and in windows not finding a pager
5750 an IOError/broken pipe in Unix, and in windows not finding a pager
5749 is also an IOError, so I had to actually look at the return value
5751 is also an IOError, so I had to actually look at the return value
5750 of the exception, not just the exception itself. Should be ok now.
5752 of the exception, not just the exception itself. Should be ok now.
5751
5753
5752 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5754 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5753 modified to allow case-insensitive color scheme changes.
5755 modified to allow case-insensitive color scheme changes.
5754
5756
5755 2002-02-09 Fernando Perez <fperez@colorado.edu>
5757 2002-02-09 Fernando Perez <fperez@colorado.edu>
5756
5758
5757 * IPython/genutils.py (native_line_ends): new function to leave
5759 * IPython/genutils.py (native_line_ends): new function to leave
5758 user config files with os-native line-endings.
5760 user config files with os-native line-endings.
5759
5761
5760 * README and manual updates.
5762 * README and manual updates.
5761
5763
5762 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5764 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5763 instead of StringType to catch Unicode strings.
5765 instead of StringType to catch Unicode strings.
5764
5766
5765 * IPython/genutils.py (filefind): fixed bug for paths with
5767 * IPython/genutils.py (filefind): fixed bug for paths with
5766 embedded spaces (very common in Windows).
5768 embedded spaces (very common in Windows).
5767
5769
5768 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5770 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5769 files under Windows, so that they get automatically associated
5771 files under Windows, so that they get automatically associated
5770 with a text editor. Windows makes it a pain to handle
5772 with a text editor. Windows makes it a pain to handle
5771 extension-less files.
5773 extension-less files.
5772
5774
5773 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5775 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5774 warning about readline only occur for Posix. In Windows there's no
5776 warning about readline only occur for Posix. In Windows there's no
5775 way to get readline, so why bother with the warning.
5777 way to get readline, so why bother with the warning.
5776
5778
5777 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5779 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5778 for __str__ instead of dir(self), since dir() changed in 2.2.
5780 for __str__ instead of dir(self), since dir() changed in 2.2.
5779
5781
5780 * Ported to Windows! Tested on XP, I suspect it should work fine
5782 * Ported to Windows! Tested on XP, I suspect it should work fine
5781 on NT/2000, but I don't think it will work on 98 et al. That
5783 on NT/2000, but I don't think it will work on 98 et al. That
5782 series of Windows is such a piece of junk anyway that I won't try
5784 series of Windows is such a piece of junk anyway that I won't try
5783 porting it there. The XP port was straightforward, showed a few
5785 porting it there. The XP port was straightforward, showed a few
5784 bugs here and there (fixed all), in particular some string
5786 bugs here and there (fixed all), in particular some string
5785 handling stuff which required considering Unicode strings (which
5787 handling stuff which required considering Unicode strings (which
5786 Windows uses). This is good, but hasn't been too tested :) No
5788 Windows uses). This is good, but hasn't been too tested :) No
5787 fancy installer yet, I'll put a note in the manual so people at
5789 fancy installer yet, I'll put a note in the manual so people at
5788 least make manually a shortcut.
5790 least make manually a shortcut.
5789
5791
5790 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5792 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5791 into a single one, "colors". This now controls both prompt and
5793 into a single one, "colors". This now controls both prompt and
5792 exception color schemes, and can be changed both at startup
5794 exception color schemes, and can be changed both at startup
5793 (either via command-line switches or via ipythonrc files) and at
5795 (either via command-line switches or via ipythonrc files) and at
5794 runtime, with @colors.
5796 runtime, with @colors.
5795 (Magic.magic_run): renamed @prun to @run and removed the old
5797 (Magic.magic_run): renamed @prun to @run and removed the old
5796 @run. The two were too similar to warrant keeping both.
5798 @run. The two were too similar to warrant keeping both.
5797
5799
5798 2002-02-03 Fernando Perez <fperez@colorado.edu>
5800 2002-02-03 Fernando Perez <fperez@colorado.edu>
5799
5801
5800 * IPython/iplib.py (install_first_time): Added comment on how to
5802 * IPython/iplib.py (install_first_time): Added comment on how to
5801 configure the color options for first-time users. Put a <return>
5803 configure the color options for first-time users. Put a <return>
5802 request at the end so that small-terminal users get a chance to
5804 request at the end so that small-terminal users get a chance to
5803 read the startup info.
5805 read the startup info.
5804
5806
5805 2002-01-23 Fernando Perez <fperez@colorado.edu>
5807 2002-01-23 Fernando Perez <fperez@colorado.edu>
5806
5808
5807 * IPython/iplib.py (CachedOutput.update): Changed output memory
5809 * IPython/iplib.py (CachedOutput.update): Changed output memory
5808 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5810 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5809 input history we still use _i. Did this b/c these variable are
5811 input history we still use _i. Did this b/c these variable are
5810 very commonly used in interactive work, so the less we need to
5812 very commonly used in interactive work, so the less we need to
5811 type the better off we are.
5813 type the better off we are.
5812 (Magic.magic_prun): updated @prun to better handle the namespaces
5814 (Magic.magic_prun): updated @prun to better handle the namespaces
5813 the file will run in, including a fix for __name__ not being set
5815 the file will run in, including a fix for __name__ not being set
5814 before.
5816 before.
5815
5817
5816 2002-01-20 Fernando Perez <fperez@colorado.edu>
5818 2002-01-20 Fernando Perez <fperez@colorado.edu>
5817
5819
5818 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5820 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5819 extra garbage for Python 2.2. Need to look more carefully into
5821 extra garbage for Python 2.2. Need to look more carefully into
5820 this later.
5822 this later.
5821
5823
5822 2002-01-19 Fernando Perez <fperez@colorado.edu>
5824 2002-01-19 Fernando Perez <fperez@colorado.edu>
5823
5825
5824 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5826 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5825 display SyntaxError exceptions properly formatted when they occur
5827 display SyntaxError exceptions properly formatted when they occur
5826 (they can be triggered by imported code).
5828 (they can be triggered by imported code).
5827
5829
5828 2002-01-18 Fernando Perez <fperez@colorado.edu>
5830 2002-01-18 Fernando Perez <fperez@colorado.edu>
5829
5831
5830 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5832 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5831 SyntaxError exceptions are reported nicely formatted, instead of
5833 SyntaxError exceptions are reported nicely formatted, instead of
5832 spitting out only offset information as before.
5834 spitting out only offset information as before.
5833 (Magic.magic_prun): Added the @prun function for executing
5835 (Magic.magic_prun): Added the @prun function for executing
5834 programs with command line args inside IPython.
5836 programs with command line args inside IPython.
5835
5837
5836 2002-01-16 Fernando Perez <fperez@colorado.edu>
5838 2002-01-16 Fernando Perez <fperez@colorado.edu>
5837
5839
5838 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5840 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5839 to *not* include the last item given in a range. This brings their
5841 to *not* include the last item given in a range. This brings their
5840 behavior in line with Python's slicing:
5842 behavior in line with Python's slicing:
5841 a[n1:n2] -> a[n1]...a[n2-1]
5843 a[n1:n2] -> a[n1]...a[n2-1]
5842 It may be a bit less convenient, but I prefer to stick to Python's
5844 It may be a bit less convenient, but I prefer to stick to Python's
5843 conventions *everywhere*, so users never have to wonder.
5845 conventions *everywhere*, so users never have to wonder.
5844 (Magic.magic_macro): Added @macro function to ease the creation of
5846 (Magic.magic_macro): Added @macro function to ease the creation of
5845 macros.
5847 macros.
5846
5848
5847 2002-01-05 Fernando Perez <fperez@colorado.edu>
5849 2002-01-05 Fernando Perez <fperez@colorado.edu>
5848
5850
5849 * Released 0.2.4.
5851 * Released 0.2.4.
5850
5852
5851 * IPython/iplib.py (Magic.magic_pdef):
5853 * IPython/iplib.py (Magic.magic_pdef):
5852 (InteractiveShell.safe_execfile): report magic lines and error
5854 (InteractiveShell.safe_execfile): report magic lines and error
5853 lines without line numbers so one can easily copy/paste them for
5855 lines without line numbers so one can easily copy/paste them for
5854 re-execution.
5856 re-execution.
5855
5857
5856 * Updated manual with recent changes.
5858 * Updated manual with recent changes.
5857
5859
5858 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5860 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5859 docstring printing when class? is called. Very handy for knowing
5861 docstring printing when class? is called. Very handy for knowing
5860 how to create class instances (as long as __init__ is well
5862 how to create class instances (as long as __init__ is well
5861 documented, of course :)
5863 documented, of course :)
5862 (Magic.magic_doc): print both class and constructor docstrings.
5864 (Magic.magic_doc): print both class and constructor docstrings.
5863 (Magic.magic_pdef): give constructor info if passed a class and
5865 (Magic.magic_pdef): give constructor info if passed a class and
5864 __call__ info for callable object instances.
5866 __call__ info for callable object instances.
5865
5867
5866 2002-01-04 Fernando Perez <fperez@colorado.edu>
5868 2002-01-04 Fernando Perez <fperez@colorado.edu>
5867
5869
5868 * Made deep_reload() off by default. It doesn't always work
5870 * Made deep_reload() off by default. It doesn't always work
5869 exactly as intended, so it's probably safer to have it off. It's
5871 exactly as intended, so it's probably safer to have it off. It's
5870 still available as dreload() anyway, so nothing is lost.
5872 still available as dreload() anyway, so nothing is lost.
5871
5873
5872 2002-01-02 Fernando Perez <fperez@colorado.edu>
5874 2002-01-02 Fernando Perez <fperez@colorado.edu>
5873
5875
5874 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5876 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5875 so I wanted an updated release).
5877 so I wanted an updated release).
5876
5878
5877 2001-12-27 Fernando Perez <fperez@colorado.edu>
5879 2001-12-27 Fernando Perez <fperez@colorado.edu>
5878
5880
5879 * IPython/iplib.py (InteractiveShell.interact): Added the original
5881 * IPython/iplib.py (InteractiveShell.interact): Added the original
5880 code from 'code.py' for this module in order to change the
5882 code from 'code.py' for this module in order to change the
5881 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5883 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5882 the history cache would break when the user hit Ctrl-C, and
5884 the history cache would break when the user hit Ctrl-C, and
5883 interact() offers no way to add any hooks to it.
5885 interact() offers no way to add any hooks to it.
5884
5886
5885 2001-12-23 Fernando Perez <fperez@colorado.edu>
5887 2001-12-23 Fernando Perez <fperez@colorado.edu>
5886
5888
5887 * setup.py: added check for 'MANIFEST' before trying to remove
5889 * setup.py: added check for 'MANIFEST' before trying to remove
5888 it. Thanks to Sean Reifschneider.
5890 it. Thanks to Sean Reifschneider.
5889
5891
5890 2001-12-22 Fernando Perez <fperez@colorado.edu>
5892 2001-12-22 Fernando Perez <fperez@colorado.edu>
5891
5893
5892 * Released 0.2.2.
5894 * Released 0.2.2.
5893
5895
5894 * Finished (reasonably) writing the manual. Later will add the
5896 * Finished (reasonably) writing the manual. Later will add the
5895 python-standard navigation stylesheets, but for the time being
5897 python-standard navigation stylesheets, but for the time being
5896 it's fairly complete. Distribution will include html and pdf
5898 it's fairly complete. Distribution will include html and pdf
5897 versions.
5899 versions.
5898
5900
5899 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5901 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5900 (MayaVi author).
5902 (MayaVi author).
5901
5903
5902 2001-12-21 Fernando Perez <fperez@colorado.edu>
5904 2001-12-21 Fernando Perez <fperez@colorado.edu>
5903
5905
5904 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5906 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5905 good public release, I think (with the manual and the distutils
5907 good public release, I think (with the manual and the distutils
5906 installer). The manual can use some work, but that can go
5908 installer). The manual can use some work, but that can go
5907 slowly. Otherwise I think it's quite nice for end users. Next
5909 slowly. Otherwise I think it's quite nice for end users. Next
5908 summer, rewrite the guts of it...
5910 summer, rewrite the guts of it...
5909
5911
5910 * Changed format of ipythonrc files to use whitespace as the
5912 * Changed format of ipythonrc files to use whitespace as the
5911 separator instead of an explicit '='. Cleaner.
5913 separator instead of an explicit '='. Cleaner.
5912
5914
5913 2001-12-20 Fernando Perez <fperez@colorado.edu>
5915 2001-12-20 Fernando Perez <fperez@colorado.edu>
5914
5916
5915 * Started a manual in LyX. For now it's just a quick merge of the
5917 * Started a manual in LyX. For now it's just a quick merge of the
5916 various internal docstrings and READMEs. Later it may grow into a
5918 various internal docstrings and READMEs. Later it may grow into a
5917 nice, full-blown manual.
5919 nice, full-blown manual.
5918
5920
5919 * Set up a distutils based installer. Installation should now be
5921 * Set up a distutils based installer. Installation should now be
5920 trivially simple for end-users.
5922 trivially simple for end-users.
5921
5923
5922 2001-12-11 Fernando Perez <fperez@colorado.edu>
5924 2001-12-11 Fernando Perez <fperez@colorado.edu>
5923
5925
5924 * Released 0.2.0. First public release, announced it at
5926 * Released 0.2.0. First public release, announced it at
5925 comp.lang.python. From now on, just bugfixes...
5927 comp.lang.python. From now on, just bugfixes...
5926
5928
5927 * Went through all the files, set copyright/license notices and
5929 * Went through all the files, set copyright/license notices and
5928 cleaned up things. Ready for release.
5930 cleaned up things. Ready for release.
5929
5931
5930 2001-12-10 Fernando Perez <fperez@colorado.edu>
5932 2001-12-10 Fernando Perez <fperez@colorado.edu>
5931
5933
5932 * Changed the first-time installer not to use tarfiles. It's more
5934 * Changed the first-time installer not to use tarfiles. It's more
5933 robust now and less unix-dependent. Also makes it easier for
5935 robust now and less unix-dependent. Also makes it easier for
5934 people to later upgrade versions.
5936 people to later upgrade versions.
5935
5937
5936 * Changed @exit to @abort to reflect the fact that it's pretty
5938 * Changed @exit to @abort to reflect the fact that it's pretty
5937 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5939 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5938 becomes significant only when IPyhton is embedded: in that case,
5940 becomes significant only when IPyhton is embedded: in that case,
5939 C-D closes IPython only, but @abort kills the enclosing program
5941 C-D closes IPython only, but @abort kills the enclosing program
5940 too (unless it had called IPython inside a try catching
5942 too (unless it had called IPython inside a try catching
5941 SystemExit).
5943 SystemExit).
5942
5944
5943 * Created Shell module which exposes the actuall IPython Shell
5945 * Created Shell module which exposes the actuall IPython Shell
5944 classes, currently the normal and the embeddable one. This at
5946 classes, currently the normal and the embeddable one. This at
5945 least offers a stable interface we won't need to change when
5947 least offers a stable interface we won't need to change when
5946 (later) the internals are rewritten. That rewrite will be confined
5948 (later) the internals are rewritten. That rewrite will be confined
5947 to iplib and ipmaker, but the Shell interface should remain as is.
5949 to iplib and ipmaker, but the Shell interface should remain as is.
5948
5950
5949 * Added embed module which offers an embeddable IPShell object,
5951 * Added embed module which offers an embeddable IPShell object,
5950 useful to fire up IPython *inside* a running program. Great for
5952 useful to fire up IPython *inside* a running program. Great for
5951 debugging or dynamical data analysis.
5953 debugging or dynamical data analysis.
5952
5954
5953 2001-12-08 Fernando Perez <fperez@colorado.edu>
5955 2001-12-08 Fernando Perez <fperez@colorado.edu>
5954
5956
5955 * Fixed small bug preventing seeing info from methods of defined
5957 * Fixed small bug preventing seeing info from methods of defined
5956 objects (incorrect namespace in _ofind()).
5958 objects (incorrect namespace in _ofind()).
5957
5959
5958 * Documentation cleanup. Moved the main usage docstrings to a
5960 * Documentation cleanup. Moved the main usage docstrings to a
5959 separate file, usage.py (cleaner to maintain, and hopefully in the
5961 separate file, usage.py (cleaner to maintain, and hopefully in the
5960 future some perlpod-like way of producing interactive, man and
5962 future some perlpod-like way of producing interactive, man and
5961 html docs out of it will be found).
5963 html docs out of it will be found).
5962
5964
5963 * Added @profile to see your profile at any time.
5965 * Added @profile to see your profile at any time.
5964
5966
5965 * Added @p as an alias for 'print'. It's especially convenient if
5967 * Added @p as an alias for 'print'. It's especially convenient if
5966 using automagic ('p x' prints x).
5968 using automagic ('p x' prints x).
5967
5969
5968 * Small cleanups and fixes after a pychecker run.
5970 * Small cleanups and fixes after a pychecker run.
5969
5971
5970 * Changed the @cd command to handle @cd - and @cd -<n> for
5972 * Changed the @cd command to handle @cd - and @cd -<n> for
5971 visiting any directory in _dh.
5973 visiting any directory in _dh.
5972
5974
5973 * Introduced _dh, a history of visited directories. @dhist prints
5975 * Introduced _dh, a history of visited directories. @dhist prints
5974 it out with numbers.
5976 it out with numbers.
5975
5977
5976 2001-12-07 Fernando Perez <fperez@colorado.edu>
5978 2001-12-07 Fernando Perez <fperez@colorado.edu>
5977
5979
5978 * Released 0.1.22
5980 * Released 0.1.22
5979
5981
5980 * Made initialization a bit more robust against invalid color
5982 * Made initialization a bit more robust against invalid color
5981 options in user input (exit, not traceback-crash).
5983 options in user input (exit, not traceback-crash).
5982
5984
5983 * Changed the bug crash reporter to write the report only in the
5985 * Changed the bug crash reporter to write the report only in the
5984 user's .ipython directory. That way IPython won't litter people's
5986 user's .ipython directory. That way IPython won't litter people's
5985 hard disks with crash files all over the place. Also print on
5987 hard disks with crash files all over the place. Also print on
5986 screen the necessary mail command.
5988 screen the necessary mail command.
5987
5989
5988 * With the new ultraTB, implemented LightBG color scheme for light
5990 * With the new ultraTB, implemented LightBG color scheme for light
5989 background terminals. A lot of people like white backgrounds, so I
5991 background terminals. A lot of people like white backgrounds, so I
5990 guess we should at least give them something readable.
5992 guess we should at least give them something readable.
5991
5993
5992 2001-12-06 Fernando Perez <fperez@colorado.edu>
5994 2001-12-06 Fernando Perez <fperez@colorado.edu>
5993
5995
5994 * Modified the structure of ultraTB. Now there's a proper class
5996 * Modified the structure of ultraTB. Now there's a proper class
5995 for tables of color schemes which allow adding schemes easily and
5997 for tables of color schemes which allow adding schemes easily and
5996 switching the active scheme without creating a new instance every
5998 switching the active scheme without creating a new instance every
5997 time (which was ridiculous). The syntax for creating new schemes
5999 time (which was ridiculous). The syntax for creating new schemes
5998 is also cleaner. I think ultraTB is finally done, with a clean
6000 is also cleaner. I think ultraTB is finally done, with a clean
5999 class structure. Names are also much cleaner (now there's proper
6001 class structure. Names are also much cleaner (now there's proper
6000 color tables, no need for every variable to also have 'color' in
6002 color tables, no need for every variable to also have 'color' in
6001 its name).
6003 its name).
6002
6004
6003 * Broke down genutils into separate files. Now genutils only
6005 * Broke down genutils into separate files. Now genutils only
6004 contains utility functions, and classes have been moved to their
6006 contains utility functions, and classes have been moved to their
6005 own files (they had enough independent functionality to warrant
6007 own files (they had enough independent functionality to warrant
6006 it): ConfigLoader, OutputTrap, Struct.
6008 it): ConfigLoader, OutputTrap, Struct.
6007
6009
6008 2001-12-05 Fernando Perez <fperez@colorado.edu>
6010 2001-12-05 Fernando Perez <fperez@colorado.edu>
6009
6011
6010 * IPython turns 21! Released version 0.1.21, as a candidate for
6012 * IPython turns 21! Released version 0.1.21, as a candidate for
6011 public consumption. If all goes well, release in a few days.
6013 public consumption. If all goes well, release in a few days.
6012
6014
6013 * Fixed path bug (files in Extensions/ directory wouldn't be found
6015 * Fixed path bug (files in Extensions/ directory wouldn't be found
6014 unless IPython/ was explicitly in sys.path).
6016 unless IPython/ was explicitly in sys.path).
6015
6017
6016 * Extended the FlexCompleter class as MagicCompleter to allow
6018 * Extended the FlexCompleter class as MagicCompleter to allow
6017 completion of @-starting lines.
6019 completion of @-starting lines.
6018
6020
6019 * Created __release__.py file as a central repository for release
6021 * Created __release__.py file as a central repository for release
6020 info that other files can read from.
6022 info that other files can read from.
6021
6023
6022 * Fixed small bug in logging: when logging was turned on in
6024 * Fixed small bug in logging: when logging was turned on in
6023 mid-session, old lines with special meanings (!@?) were being
6025 mid-session, old lines with special meanings (!@?) were being
6024 logged without the prepended comment, which is necessary since
6026 logged without the prepended comment, which is necessary since
6025 they are not truly valid python syntax. This should make session
6027 they are not truly valid python syntax. This should make session
6026 restores produce less errors.
6028 restores produce less errors.
6027
6029
6028 * The namespace cleanup forced me to make a FlexCompleter class
6030 * The namespace cleanup forced me to make a FlexCompleter class
6029 which is nothing but a ripoff of rlcompleter, but with selectable
6031 which is nothing but a ripoff of rlcompleter, but with selectable
6030 namespace (rlcompleter only works in __main__.__dict__). I'll try
6032 namespace (rlcompleter only works in __main__.__dict__). I'll try
6031 to submit a note to the authors to see if this change can be
6033 to submit a note to the authors to see if this change can be
6032 incorporated in future rlcompleter releases (Dec.6: done)
6034 incorporated in future rlcompleter releases (Dec.6: done)
6033
6035
6034 * More fixes to namespace handling. It was a mess! Now all
6036 * More fixes to namespace handling. It was a mess! Now all
6035 explicit references to __main__.__dict__ are gone (except when
6037 explicit references to __main__.__dict__ are gone (except when
6036 really needed) and everything is handled through the namespace
6038 really needed) and everything is handled through the namespace
6037 dicts in the IPython instance. We seem to be getting somewhere
6039 dicts in the IPython instance. We seem to be getting somewhere
6038 with this, finally...
6040 with this, finally...
6039
6041
6040 * Small documentation updates.
6042 * Small documentation updates.
6041
6043
6042 * Created the Extensions directory under IPython (with an
6044 * Created the Extensions directory under IPython (with an
6043 __init__.py). Put the PhysicalQ stuff there. This directory should
6045 __init__.py). Put the PhysicalQ stuff there. This directory should
6044 be used for all special-purpose extensions.
6046 be used for all special-purpose extensions.
6045
6047
6046 * File renaming:
6048 * File renaming:
6047 ipythonlib --> ipmaker
6049 ipythonlib --> ipmaker
6048 ipplib --> iplib
6050 ipplib --> iplib
6049 This makes a bit more sense in terms of what these files actually do.
6051 This makes a bit more sense in terms of what these files actually do.
6050
6052
6051 * Moved all the classes and functions in ipythonlib to ipplib, so
6053 * Moved all the classes and functions in ipythonlib to ipplib, so
6052 now ipythonlib only has make_IPython(). This will ease up its
6054 now ipythonlib only has make_IPython(). This will ease up its
6053 splitting in smaller functional chunks later.
6055 splitting in smaller functional chunks later.
6054
6056
6055 * Cleaned up (done, I think) output of @whos. Better column
6057 * Cleaned up (done, I think) output of @whos. Better column
6056 formatting, and now shows str(var) for as much as it can, which is
6058 formatting, and now shows str(var) for as much as it can, which is
6057 typically what one gets with a 'print var'.
6059 typically what one gets with a 'print var'.
6058
6060
6059 2001-12-04 Fernando Perez <fperez@colorado.edu>
6061 2001-12-04 Fernando Perez <fperez@colorado.edu>
6060
6062
6061 * Fixed namespace problems. Now builtin/IPyhton/user names get
6063 * Fixed namespace problems. Now builtin/IPyhton/user names get
6062 properly reported in their namespace. Internal namespace handling
6064 properly reported in their namespace. Internal namespace handling
6063 is finally getting decent (not perfect yet, but much better than
6065 is finally getting decent (not perfect yet, but much better than
6064 the ad-hoc mess we had).
6066 the ad-hoc mess we had).
6065
6067
6066 * Removed -exit option. If people just want to run a python
6068 * Removed -exit option. If people just want to run a python
6067 script, that's what the normal interpreter is for. Less
6069 script, that's what the normal interpreter is for. Less
6068 unnecessary options, less chances for bugs.
6070 unnecessary options, less chances for bugs.
6069
6071
6070 * Added a crash handler which generates a complete post-mortem if
6072 * Added a crash handler which generates a complete post-mortem if
6071 IPython crashes. This will help a lot in tracking bugs down the
6073 IPython crashes. This will help a lot in tracking bugs down the
6072 road.
6074 road.
6073
6075
6074 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6076 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6075 which were boud to functions being reassigned would bypass the
6077 which were boud to functions being reassigned would bypass the
6076 logger, breaking the sync of _il with the prompt counter. This
6078 logger, breaking the sync of _il with the prompt counter. This
6077 would then crash IPython later when a new line was logged.
6079 would then crash IPython later when a new line was logged.
6078
6080
6079 2001-12-02 Fernando Perez <fperez@colorado.edu>
6081 2001-12-02 Fernando Perez <fperez@colorado.edu>
6080
6082
6081 * Made IPython a package. This means people don't have to clutter
6083 * Made IPython a package. This means people don't have to clutter
6082 their sys.path with yet another directory. Changed the INSTALL
6084 their sys.path with yet another directory. Changed the INSTALL
6083 file accordingly.
6085 file accordingly.
6084
6086
6085 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6087 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6086 sorts its output (so @who shows it sorted) and @whos formats the
6088 sorts its output (so @who shows it sorted) and @whos formats the
6087 table according to the width of the first column. Nicer, easier to
6089 table according to the width of the first column. Nicer, easier to
6088 read. Todo: write a generic table_format() which takes a list of
6090 read. Todo: write a generic table_format() which takes a list of
6089 lists and prints it nicely formatted, with optional row/column
6091 lists and prints it nicely formatted, with optional row/column
6090 separators and proper padding and justification.
6092 separators and proper padding and justification.
6091
6093
6092 * Released 0.1.20
6094 * Released 0.1.20
6093
6095
6094 * Fixed bug in @log which would reverse the inputcache list (a
6096 * Fixed bug in @log which would reverse the inputcache list (a
6095 copy operation was missing).
6097 copy operation was missing).
6096
6098
6097 * Code cleanup. @config was changed to use page(). Better, since
6099 * Code cleanup. @config was changed to use page(). Better, since
6098 its output is always quite long.
6100 its output is always quite long.
6099
6101
6100 * Itpl is back as a dependency. I was having too many problems
6102 * Itpl is back as a dependency. I was having too many problems
6101 getting the parametric aliases to work reliably, and it's just
6103 getting the parametric aliases to work reliably, and it's just
6102 easier to code weird string operations with it than playing %()s
6104 easier to code weird string operations with it than playing %()s
6103 games. It's only ~6k, so I don't think it's too big a deal.
6105 games. It's only ~6k, so I don't think it's too big a deal.
6104
6106
6105 * Found (and fixed) a very nasty bug with history. !lines weren't
6107 * Found (and fixed) a very nasty bug with history. !lines weren't
6106 getting cached, and the out of sync caches would crash
6108 getting cached, and the out of sync caches would crash
6107 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6109 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6108 division of labor a bit better. Bug fixed, cleaner structure.
6110 division of labor a bit better. Bug fixed, cleaner structure.
6109
6111
6110 2001-12-01 Fernando Perez <fperez@colorado.edu>
6112 2001-12-01 Fernando Perez <fperez@colorado.edu>
6111
6113
6112 * Released 0.1.19
6114 * Released 0.1.19
6113
6115
6114 * Added option -n to @hist to prevent line number printing. Much
6116 * Added option -n to @hist to prevent line number printing. Much
6115 easier to copy/paste code this way.
6117 easier to copy/paste code this way.
6116
6118
6117 * Created global _il to hold the input list. Allows easy
6119 * Created global _il to hold the input list. Allows easy
6118 re-execution of blocks of code by slicing it (inspired by Janko's
6120 re-execution of blocks of code by slicing it (inspired by Janko's
6119 comment on 'macros').
6121 comment on 'macros').
6120
6122
6121 * Small fixes and doc updates.
6123 * Small fixes and doc updates.
6122
6124
6123 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6125 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6124 much too fragile with automagic. Handles properly multi-line
6126 much too fragile with automagic. Handles properly multi-line
6125 statements and takes parameters.
6127 statements and takes parameters.
6126
6128
6127 2001-11-30 Fernando Perez <fperez@colorado.edu>
6129 2001-11-30 Fernando Perez <fperez@colorado.edu>
6128
6130
6129 * Version 0.1.18 released.
6131 * Version 0.1.18 released.
6130
6132
6131 * Fixed nasty namespace bug in initial module imports.
6133 * Fixed nasty namespace bug in initial module imports.
6132
6134
6133 * Added copyright/license notes to all code files (except
6135 * Added copyright/license notes to all code files (except
6134 DPyGetOpt). For the time being, LGPL. That could change.
6136 DPyGetOpt). For the time being, LGPL. That could change.
6135
6137
6136 * Rewrote a much nicer README, updated INSTALL, cleaned up
6138 * Rewrote a much nicer README, updated INSTALL, cleaned up
6137 ipythonrc-* samples.
6139 ipythonrc-* samples.
6138
6140
6139 * Overall code/documentation cleanup. Basically ready for
6141 * Overall code/documentation cleanup. Basically ready for
6140 release. Only remaining thing: licence decision (LGPL?).
6142 release. Only remaining thing: licence decision (LGPL?).
6141
6143
6142 * Converted load_config to a class, ConfigLoader. Now recursion
6144 * Converted load_config to a class, ConfigLoader. Now recursion
6143 control is better organized. Doesn't include the same file twice.
6145 control is better organized. Doesn't include the same file twice.
6144
6146
6145 2001-11-29 Fernando Perez <fperez@colorado.edu>
6147 2001-11-29 Fernando Perez <fperez@colorado.edu>
6146
6148
6147 * Got input history working. Changed output history variables from
6149 * Got input history working. Changed output history variables from
6148 _p to _o so that _i is for input and _o for output. Just cleaner
6150 _p to _o so that _i is for input and _o for output. Just cleaner
6149 convention.
6151 convention.
6150
6152
6151 * Implemented parametric aliases. This pretty much allows the
6153 * Implemented parametric aliases. This pretty much allows the
6152 alias system to offer full-blown shell convenience, I think.
6154 alias system to offer full-blown shell convenience, I think.
6153
6155
6154 * Version 0.1.17 released, 0.1.18 opened.
6156 * Version 0.1.17 released, 0.1.18 opened.
6155
6157
6156 * dot_ipython/ipythonrc (alias): added documentation.
6158 * dot_ipython/ipythonrc (alias): added documentation.
6157 (xcolor): Fixed small bug (xcolors -> xcolor)
6159 (xcolor): Fixed small bug (xcolors -> xcolor)
6158
6160
6159 * Changed the alias system. Now alias is a magic command to define
6161 * Changed the alias system. Now alias is a magic command to define
6160 aliases just like the shell. Rationale: the builtin magics should
6162 aliases just like the shell. Rationale: the builtin magics should
6161 be there for things deeply connected to IPython's
6163 be there for things deeply connected to IPython's
6162 architecture. And this is a much lighter system for what I think
6164 architecture. And this is a much lighter system for what I think
6163 is the really important feature: allowing users to define quickly
6165 is the really important feature: allowing users to define quickly
6164 magics that will do shell things for them, so they can customize
6166 magics that will do shell things for them, so they can customize
6165 IPython easily to match their work habits. If someone is really
6167 IPython easily to match their work habits. If someone is really
6166 desperate to have another name for a builtin alias, they can
6168 desperate to have another name for a builtin alias, they can
6167 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6169 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6168 works.
6170 works.
6169
6171
6170 2001-11-28 Fernando Perez <fperez@colorado.edu>
6172 2001-11-28 Fernando Perez <fperez@colorado.edu>
6171
6173
6172 * Changed @file so that it opens the source file at the proper
6174 * Changed @file so that it opens the source file at the proper
6173 line. Since it uses less, if your EDITOR environment is
6175 line. Since it uses less, if your EDITOR environment is
6174 configured, typing v will immediately open your editor of choice
6176 configured, typing v will immediately open your editor of choice
6175 right at the line where the object is defined. Not as quick as
6177 right at the line where the object is defined. Not as quick as
6176 having a direct @edit command, but for all intents and purposes it
6178 having a direct @edit command, but for all intents and purposes it
6177 works. And I don't have to worry about writing @edit to deal with
6179 works. And I don't have to worry about writing @edit to deal with
6178 all the editors, less does that.
6180 all the editors, less does that.
6179
6181
6180 * Version 0.1.16 released, 0.1.17 opened.
6182 * Version 0.1.16 released, 0.1.17 opened.
6181
6183
6182 * Fixed some nasty bugs in the page/page_dumb combo that could
6184 * Fixed some nasty bugs in the page/page_dumb combo that could
6183 crash IPython.
6185 crash IPython.
6184
6186
6185 2001-11-27 Fernando Perez <fperez@colorado.edu>
6187 2001-11-27 Fernando Perez <fperez@colorado.edu>
6186
6188
6187 * Version 0.1.15 released, 0.1.16 opened.
6189 * Version 0.1.15 released, 0.1.16 opened.
6188
6190
6189 * Finally got ? and ?? to work for undefined things: now it's
6191 * Finally got ? and ?? to work for undefined things: now it's
6190 possible to type {}.get? and get information about the get method
6192 possible to type {}.get? and get information about the get method
6191 of dicts, or os.path? even if only os is defined (so technically
6193 of dicts, or os.path? even if only os is defined (so technically
6192 os.path isn't). Works at any level. For example, after import os,
6194 os.path isn't). Works at any level. For example, after import os,
6193 os?, os.path?, os.path.abspath? all work. This is great, took some
6195 os?, os.path?, os.path.abspath? all work. This is great, took some
6194 work in _ofind.
6196 work in _ofind.
6195
6197
6196 * Fixed more bugs with logging. The sanest way to do it was to add
6198 * Fixed more bugs with logging. The sanest way to do it was to add
6197 to @log a 'mode' parameter. Killed two in one shot (this mode
6199 to @log a 'mode' parameter. Killed two in one shot (this mode
6198 option was a request of Janko's). I think it's finally clean
6200 option was a request of Janko's). I think it's finally clean
6199 (famous last words).
6201 (famous last words).
6200
6202
6201 * Added a page_dumb() pager which does a decent job of paging on
6203 * Added a page_dumb() pager which does a decent job of paging on
6202 screen, if better things (like less) aren't available. One less
6204 screen, if better things (like less) aren't available. One less
6203 unix dependency (someday maybe somebody will port this to
6205 unix dependency (someday maybe somebody will port this to
6204 windows).
6206 windows).
6205
6207
6206 * Fixed problem in magic_log: would lock of logging out if log
6208 * Fixed problem in magic_log: would lock of logging out if log
6207 creation failed (because it would still think it had succeeded).
6209 creation failed (because it would still think it had succeeded).
6208
6210
6209 * Improved the page() function using curses to auto-detect screen
6211 * Improved the page() function using curses to auto-detect screen
6210 size. Now it can make a much better decision on whether to print
6212 size. Now it can make a much better decision on whether to print
6211 or page a string. Option screen_length was modified: a value 0
6213 or page a string. Option screen_length was modified: a value 0
6212 means auto-detect, and that's the default now.
6214 means auto-detect, and that's the default now.
6213
6215
6214 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6216 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6215 go out. I'll test it for a few days, then talk to Janko about
6217 go out. I'll test it for a few days, then talk to Janko about
6216 licences and announce it.
6218 licences and announce it.
6217
6219
6218 * Fixed the length of the auto-generated ---> prompt which appears
6220 * Fixed the length of the auto-generated ---> prompt which appears
6219 for auto-parens and auto-quotes. Getting this right isn't trivial,
6221 for auto-parens and auto-quotes. Getting this right isn't trivial,
6220 with all the color escapes, different prompt types and optional
6222 with all the color escapes, different prompt types and optional
6221 separators. But it seems to be working in all the combinations.
6223 separators. But it seems to be working in all the combinations.
6222
6224
6223 2001-11-26 Fernando Perez <fperez@colorado.edu>
6225 2001-11-26 Fernando Perez <fperez@colorado.edu>
6224
6226
6225 * Wrote a regexp filter to get option types from the option names
6227 * Wrote a regexp filter to get option types from the option names
6226 string. This eliminates the need to manually keep two duplicate
6228 string. This eliminates the need to manually keep two duplicate
6227 lists.
6229 lists.
6228
6230
6229 * Removed the unneeded check_option_names. Now options are handled
6231 * Removed the unneeded check_option_names. Now options are handled
6230 in a much saner manner and it's easy to visually check that things
6232 in a much saner manner and it's easy to visually check that things
6231 are ok.
6233 are ok.
6232
6234
6233 * Updated version numbers on all files I modified to carry a
6235 * Updated version numbers on all files I modified to carry a
6234 notice so Janko and Nathan have clear version markers.
6236 notice so Janko and Nathan have clear version markers.
6235
6237
6236 * Updated docstring for ultraTB with my changes. I should send
6238 * Updated docstring for ultraTB with my changes. I should send
6237 this to Nathan.
6239 this to Nathan.
6238
6240
6239 * Lots of small fixes. Ran everything through pychecker again.
6241 * Lots of small fixes. Ran everything through pychecker again.
6240
6242
6241 * Made loading of deep_reload an cmd line option. If it's not too
6243 * Made loading of deep_reload an cmd line option. If it's not too
6242 kosher, now people can just disable it. With -nodeep_reload it's
6244 kosher, now people can just disable it. With -nodeep_reload it's
6243 still available as dreload(), it just won't overwrite reload().
6245 still available as dreload(), it just won't overwrite reload().
6244
6246
6245 * Moved many options to the no| form (-opt and -noopt
6247 * Moved many options to the no| form (-opt and -noopt
6246 accepted). Cleaner.
6248 accepted). Cleaner.
6247
6249
6248 * Changed magic_log so that if called with no parameters, it uses
6250 * Changed magic_log so that if called with no parameters, it uses
6249 'rotate' mode. That way auto-generated logs aren't automatically
6251 'rotate' mode. That way auto-generated logs aren't automatically
6250 over-written. For normal logs, now a backup is made if it exists
6252 over-written. For normal logs, now a backup is made if it exists
6251 (only 1 level of backups). A new 'backup' mode was added to the
6253 (only 1 level of backups). A new 'backup' mode was added to the
6252 Logger class to support this. This was a request by Janko.
6254 Logger class to support this. This was a request by Janko.
6253
6255
6254 * Added @logoff/@logon to stop/restart an active log.
6256 * Added @logoff/@logon to stop/restart an active log.
6255
6257
6256 * Fixed a lot of bugs in log saving/replay. It was pretty
6258 * Fixed a lot of bugs in log saving/replay. It was pretty
6257 broken. Now special lines (!@,/) appear properly in the command
6259 broken. Now special lines (!@,/) appear properly in the command
6258 history after a log replay.
6260 history after a log replay.
6259
6261
6260 * Tried and failed to implement full session saving via pickle. My
6262 * Tried and failed to implement full session saving via pickle. My
6261 idea was to pickle __main__.__dict__, but modules can't be
6263 idea was to pickle __main__.__dict__, but modules can't be
6262 pickled. This would be a better alternative to replaying logs, but
6264 pickled. This would be a better alternative to replaying logs, but
6263 seems quite tricky to get to work. Changed -session to be called
6265 seems quite tricky to get to work. Changed -session to be called
6264 -logplay, which more accurately reflects what it does. And if we
6266 -logplay, which more accurately reflects what it does. And if we
6265 ever get real session saving working, -session is now available.
6267 ever get real session saving working, -session is now available.
6266
6268
6267 * Implemented color schemes for prompts also. As for tracebacks,
6269 * Implemented color schemes for prompts also. As for tracebacks,
6268 currently only NoColor and Linux are supported. But now the
6270 currently only NoColor and Linux are supported. But now the
6269 infrastructure is in place, based on a generic ColorScheme
6271 infrastructure is in place, based on a generic ColorScheme
6270 class. So writing and activating new schemes both for the prompts
6272 class. So writing and activating new schemes both for the prompts
6271 and the tracebacks should be straightforward.
6273 and the tracebacks should be straightforward.
6272
6274
6273 * Version 0.1.13 released, 0.1.14 opened.
6275 * Version 0.1.13 released, 0.1.14 opened.
6274
6276
6275 * Changed handling of options for output cache. Now counter is
6277 * Changed handling of options for output cache. Now counter is
6276 hardwired starting at 1 and one specifies the maximum number of
6278 hardwired starting at 1 and one specifies the maximum number of
6277 entries *in the outcache* (not the max prompt counter). This is
6279 entries *in the outcache* (not the max prompt counter). This is
6278 much better, since many statements won't increase the cache
6280 much better, since many statements won't increase the cache
6279 count. It also eliminated some confusing options, now there's only
6281 count. It also eliminated some confusing options, now there's only
6280 one: cache_size.
6282 one: cache_size.
6281
6283
6282 * Added 'alias' magic function and magic_alias option in the
6284 * Added 'alias' magic function and magic_alias option in the
6283 ipythonrc file. Now the user can easily define whatever names he
6285 ipythonrc file. Now the user can easily define whatever names he
6284 wants for the magic functions without having to play weird
6286 wants for the magic functions without having to play weird
6285 namespace games. This gives IPython a real shell-like feel.
6287 namespace games. This gives IPython a real shell-like feel.
6286
6288
6287 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6289 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6288 @ or not).
6290 @ or not).
6289
6291
6290 This was one of the last remaining 'visible' bugs (that I know
6292 This was one of the last remaining 'visible' bugs (that I know
6291 of). I think if I can clean up the session loading so it works
6293 of). I think if I can clean up the session loading so it works
6292 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6294 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6293 about licensing).
6295 about licensing).
6294
6296
6295 2001-11-25 Fernando Perez <fperez@colorado.edu>
6297 2001-11-25 Fernando Perez <fperez@colorado.edu>
6296
6298
6297 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6299 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6298 there's a cleaner distinction between what ? and ?? show.
6300 there's a cleaner distinction between what ? and ?? show.
6299
6301
6300 * Added screen_length option. Now the user can define his own
6302 * Added screen_length option. Now the user can define his own
6301 screen size for page() operations.
6303 screen size for page() operations.
6302
6304
6303 * Implemented magic shell-like functions with automatic code
6305 * Implemented magic shell-like functions with automatic code
6304 generation. Now adding another function is just a matter of adding
6306 generation. Now adding another function is just a matter of adding
6305 an entry to a dict, and the function is dynamically generated at
6307 an entry to a dict, and the function is dynamically generated at
6306 run-time. Python has some really cool features!
6308 run-time. Python has some really cool features!
6307
6309
6308 * Renamed many options to cleanup conventions a little. Now all
6310 * Renamed many options to cleanup conventions a little. Now all
6309 are lowercase, and only underscores where needed. Also in the code
6311 are lowercase, and only underscores where needed. Also in the code
6310 option name tables are clearer.
6312 option name tables are clearer.
6311
6313
6312 * Changed prompts a little. Now input is 'In [n]:' instead of
6314 * Changed prompts a little. Now input is 'In [n]:' instead of
6313 'In[n]:='. This allows it the numbers to be aligned with the
6315 'In[n]:='. This allows it the numbers to be aligned with the
6314 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6316 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6315 Python (it was a Mathematica thing). The '...' continuation prompt
6317 Python (it was a Mathematica thing). The '...' continuation prompt
6316 was also changed a little to align better.
6318 was also changed a little to align better.
6317
6319
6318 * Fixed bug when flushing output cache. Not all _p<n> variables
6320 * Fixed bug when flushing output cache. Not all _p<n> variables
6319 exist, so their deletion needs to be wrapped in a try:
6321 exist, so their deletion needs to be wrapped in a try:
6320
6322
6321 * Figured out how to properly use inspect.formatargspec() (it
6323 * Figured out how to properly use inspect.formatargspec() (it
6322 requires the args preceded by *). So I removed all the code from
6324 requires the args preceded by *). So I removed all the code from
6323 _get_pdef in Magic, which was just replicating that.
6325 _get_pdef in Magic, which was just replicating that.
6324
6326
6325 * Added test to prefilter to allow redefining magic function names
6327 * Added test to prefilter to allow redefining magic function names
6326 as variables. This is ok, since the @ form is always available,
6328 as variables. This is ok, since the @ form is always available,
6327 but whe should allow the user to define a variable called 'ls' if
6329 but whe should allow the user to define a variable called 'ls' if
6328 he needs it.
6330 he needs it.
6329
6331
6330 * Moved the ToDo information from README into a separate ToDo.
6332 * Moved the ToDo information from README into a separate ToDo.
6331
6333
6332 * General code cleanup and small bugfixes. I think it's close to a
6334 * General code cleanup and small bugfixes. I think it's close to a
6333 state where it can be released, obviously with a big 'beta'
6335 state where it can be released, obviously with a big 'beta'
6334 warning on it.
6336 warning on it.
6335
6337
6336 * Got the magic function split to work. Now all magics are defined
6338 * Got the magic function split to work. Now all magics are defined
6337 in a separate class. It just organizes things a bit, and now
6339 in a separate class. It just organizes things a bit, and now
6338 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6340 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6339 was too long).
6341 was too long).
6340
6342
6341 * Changed @clear to @reset to avoid potential confusions with
6343 * Changed @clear to @reset to avoid potential confusions with
6342 the shell command clear. Also renamed @cl to @clear, which does
6344 the shell command clear. Also renamed @cl to @clear, which does
6343 exactly what people expect it to from their shell experience.
6345 exactly what people expect it to from their shell experience.
6344
6346
6345 Added a check to the @reset command (since it's so
6347 Added a check to the @reset command (since it's so
6346 destructive, it's probably a good idea to ask for confirmation).
6348 destructive, it's probably a good idea to ask for confirmation).
6347 But now reset only works for full namespace resetting. Since the
6349 But now reset only works for full namespace resetting. Since the
6348 del keyword is already there for deleting a few specific
6350 del keyword is already there for deleting a few specific
6349 variables, I don't see the point of having a redundant magic
6351 variables, I don't see the point of having a redundant magic
6350 function for the same task.
6352 function for the same task.
6351
6353
6352 2001-11-24 Fernando Perez <fperez@colorado.edu>
6354 2001-11-24 Fernando Perez <fperez@colorado.edu>
6353
6355
6354 * Updated the builtin docs (esp. the ? ones).
6356 * Updated the builtin docs (esp. the ? ones).
6355
6357
6356 * Ran all the code through pychecker. Not terribly impressed with
6358 * Ran all the code through pychecker. Not terribly impressed with
6357 it: lots of spurious warnings and didn't really find anything of
6359 it: lots of spurious warnings and didn't really find anything of
6358 substance (just a few modules being imported and not used).
6360 substance (just a few modules being imported and not used).
6359
6361
6360 * Implemented the new ultraTB functionality into IPython. New
6362 * Implemented the new ultraTB functionality into IPython. New
6361 option: xcolors. This chooses color scheme. xmode now only selects
6363 option: xcolors. This chooses color scheme. xmode now only selects
6362 between Plain and Verbose. Better orthogonality.
6364 between Plain and Verbose. Better orthogonality.
6363
6365
6364 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6366 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6365 mode and color scheme for the exception handlers. Now it's
6367 mode and color scheme for the exception handlers. Now it's
6366 possible to have the verbose traceback with no coloring.
6368 possible to have the verbose traceback with no coloring.
6367
6369
6368 2001-11-23 Fernando Perez <fperez@colorado.edu>
6370 2001-11-23 Fernando Perez <fperez@colorado.edu>
6369
6371
6370 * Version 0.1.12 released, 0.1.13 opened.
6372 * Version 0.1.12 released, 0.1.13 opened.
6371
6373
6372 * Removed option to set auto-quote and auto-paren escapes by
6374 * Removed option to set auto-quote and auto-paren escapes by
6373 user. The chances of breaking valid syntax are just too high. If
6375 user. The chances of breaking valid syntax are just too high. If
6374 someone *really* wants, they can always dig into the code.
6376 someone *really* wants, they can always dig into the code.
6375
6377
6376 * Made prompt separators configurable.
6378 * Made prompt separators configurable.
6377
6379
6378 2001-11-22 Fernando Perez <fperez@colorado.edu>
6380 2001-11-22 Fernando Perez <fperez@colorado.edu>
6379
6381
6380 * Small bugfixes in many places.
6382 * Small bugfixes in many places.
6381
6383
6382 * Removed the MyCompleter class from ipplib. It seemed redundant
6384 * Removed the MyCompleter class from ipplib. It seemed redundant
6383 with the C-p,C-n history search functionality. Less code to
6385 with the C-p,C-n history search functionality. Less code to
6384 maintain.
6386 maintain.
6385
6387
6386 * Moved all the original ipython.py code into ipythonlib.py. Right
6388 * Moved all the original ipython.py code into ipythonlib.py. Right
6387 now it's just one big dump into a function called make_IPython, so
6389 now it's just one big dump into a function called make_IPython, so
6388 no real modularity has been gained. But at least it makes the
6390 no real modularity has been gained. But at least it makes the
6389 wrapper script tiny, and since ipythonlib is a module, it gets
6391 wrapper script tiny, and since ipythonlib is a module, it gets
6390 compiled and startup is much faster.
6392 compiled and startup is much faster.
6391
6393
6392 This is a reasobably 'deep' change, so we should test it for a
6394 This is a reasobably 'deep' change, so we should test it for a
6393 while without messing too much more with the code.
6395 while without messing too much more with the code.
6394
6396
6395 2001-11-21 Fernando Perez <fperez@colorado.edu>
6397 2001-11-21 Fernando Perez <fperez@colorado.edu>
6396
6398
6397 * Version 0.1.11 released, 0.1.12 opened for further work.
6399 * Version 0.1.11 released, 0.1.12 opened for further work.
6398
6400
6399 * Removed dependency on Itpl. It was only needed in one place. It
6401 * Removed dependency on Itpl. It was only needed in one place. It
6400 would be nice if this became part of python, though. It makes life
6402 would be nice if this became part of python, though. It makes life
6401 *a lot* easier in some cases.
6403 *a lot* easier in some cases.
6402
6404
6403 * Simplified the prefilter code a bit. Now all handlers are
6405 * Simplified the prefilter code a bit. Now all handlers are
6404 expected to explicitly return a value (at least a blank string).
6406 expected to explicitly return a value (at least a blank string).
6405
6407
6406 * Heavy edits in ipplib. Removed the help system altogether. Now
6408 * Heavy edits in ipplib. Removed the help system altogether. Now
6407 obj?/?? is used for inspecting objects, a magic @doc prints
6409 obj?/?? is used for inspecting objects, a magic @doc prints
6408 docstrings, and full-blown Python help is accessed via the 'help'
6410 docstrings, and full-blown Python help is accessed via the 'help'
6409 keyword. This cleans up a lot of code (less to maintain) and does
6411 keyword. This cleans up a lot of code (less to maintain) and does
6410 the job. Since 'help' is now a standard Python component, might as
6412 the job. Since 'help' is now a standard Python component, might as
6411 well use it and remove duplicate functionality.
6413 well use it and remove duplicate functionality.
6412
6414
6413 Also removed the option to use ipplib as a standalone program. By
6415 Also removed the option to use ipplib as a standalone program. By
6414 now it's too dependent on other parts of IPython to function alone.
6416 now it's too dependent on other parts of IPython to function alone.
6415
6417
6416 * Fixed bug in genutils.pager. It would crash if the pager was
6418 * Fixed bug in genutils.pager. It would crash if the pager was
6417 exited immediately after opening (broken pipe).
6419 exited immediately after opening (broken pipe).
6418
6420
6419 * Trimmed down the VerboseTB reporting a little. The header is
6421 * Trimmed down the VerboseTB reporting a little. The header is
6420 much shorter now and the repeated exception arguments at the end
6422 much shorter now and the repeated exception arguments at the end
6421 have been removed. For interactive use the old header seemed a bit
6423 have been removed. For interactive use the old header seemed a bit
6422 excessive.
6424 excessive.
6423
6425
6424 * Fixed small bug in output of @whos for variables with multi-word
6426 * Fixed small bug in output of @whos for variables with multi-word
6425 types (only first word was displayed).
6427 types (only first word was displayed).
6426
6428
6427 2001-11-17 Fernando Perez <fperez@colorado.edu>
6429 2001-11-17 Fernando Perez <fperez@colorado.edu>
6428
6430
6429 * Version 0.1.10 released, 0.1.11 opened for further work.
6431 * Version 0.1.10 released, 0.1.11 opened for further work.
6430
6432
6431 * Modified dirs and friends. dirs now *returns* the stack (not
6433 * Modified dirs and friends. dirs now *returns* the stack (not
6432 prints), so one can manipulate it as a variable. Convenient to
6434 prints), so one can manipulate it as a variable. Convenient to
6433 travel along many directories.
6435 travel along many directories.
6434
6436
6435 * Fixed bug in magic_pdef: would only work with functions with
6437 * Fixed bug in magic_pdef: would only work with functions with
6436 arguments with default values.
6438 arguments with default values.
6437
6439
6438 2001-11-14 Fernando Perez <fperez@colorado.edu>
6440 2001-11-14 Fernando Perez <fperez@colorado.edu>
6439
6441
6440 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6442 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6441 example with IPython. Various other minor fixes and cleanups.
6443 example with IPython. Various other minor fixes and cleanups.
6442
6444
6443 * Version 0.1.9 released, 0.1.10 opened for further work.
6445 * Version 0.1.9 released, 0.1.10 opened for further work.
6444
6446
6445 * Added sys.path to the list of directories searched in the
6447 * Added sys.path to the list of directories searched in the
6446 execfile= option. It used to be the current directory and the
6448 execfile= option. It used to be the current directory and the
6447 user's IPYTHONDIR only.
6449 user's IPYTHONDIR only.
6448
6450
6449 2001-11-13 Fernando Perez <fperez@colorado.edu>
6451 2001-11-13 Fernando Perez <fperez@colorado.edu>
6450
6452
6451 * Reinstated the raw_input/prefilter separation that Janko had
6453 * Reinstated the raw_input/prefilter separation that Janko had
6452 initially. This gives a more convenient setup for extending the
6454 initially. This gives a more convenient setup for extending the
6453 pre-processor from the outside: raw_input always gets a string,
6455 pre-processor from the outside: raw_input always gets a string,
6454 and prefilter has to process it. We can then redefine prefilter
6456 and prefilter has to process it. We can then redefine prefilter
6455 from the outside and implement extensions for special
6457 from the outside and implement extensions for special
6456 purposes.
6458 purposes.
6457
6459
6458 Today I got one for inputting PhysicalQuantity objects
6460 Today I got one for inputting PhysicalQuantity objects
6459 (from Scientific) without needing any function calls at
6461 (from Scientific) without needing any function calls at
6460 all. Extremely convenient, and it's all done as a user-level
6462 all. Extremely convenient, and it's all done as a user-level
6461 extension (no IPython code was touched). Now instead of:
6463 extension (no IPython code was touched). Now instead of:
6462 a = PhysicalQuantity(4.2,'m/s**2')
6464 a = PhysicalQuantity(4.2,'m/s**2')
6463 one can simply say
6465 one can simply say
6464 a = 4.2 m/s**2
6466 a = 4.2 m/s**2
6465 or even
6467 or even
6466 a = 4.2 m/s^2
6468 a = 4.2 m/s^2
6467
6469
6468 I use this, but it's also a proof of concept: IPython really is
6470 I use this, but it's also a proof of concept: IPython really is
6469 fully user-extensible, even at the level of the parsing of the
6471 fully user-extensible, even at the level of the parsing of the
6470 command line. It's not trivial, but it's perfectly doable.
6472 command line. It's not trivial, but it's perfectly doable.
6471
6473
6472 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6474 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6473 the problem of modules being loaded in the inverse order in which
6475 the problem of modules being loaded in the inverse order in which
6474 they were defined in
6476 they were defined in
6475
6477
6476 * Version 0.1.8 released, 0.1.9 opened for further work.
6478 * Version 0.1.8 released, 0.1.9 opened for further work.
6477
6479
6478 * Added magics pdef, source and file. They respectively show the
6480 * Added magics pdef, source and file. They respectively show the
6479 definition line ('prototype' in C), source code and full python
6481 definition line ('prototype' in C), source code and full python
6480 file for any callable object. The object inspector oinfo uses
6482 file for any callable object. The object inspector oinfo uses
6481 these to show the same information.
6483 these to show the same information.
6482
6484
6483 * Version 0.1.7 released, 0.1.8 opened for further work.
6485 * Version 0.1.7 released, 0.1.8 opened for further work.
6484
6486
6485 * Separated all the magic functions into a class called Magic. The
6487 * Separated all the magic functions into a class called Magic. The
6486 InteractiveShell class was becoming too big for Xemacs to handle
6488 InteractiveShell class was becoming too big for Xemacs to handle
6487 (de-indenting a line would lock it up for 10 seconds while it
6489 (de-indenting a line would lock it up for 10 seconds while it
6488 backtracked on the whole class!)
6490 backtracked on the whole class!)
6489
6491
6490 FIXME: didn't work. It can be done, but right now namespaces are
6492 FIXME: didn't work. It can be done, but right now namespaces are
6491 all messed up. Do it later (reverted it for now, so at least
6493 all messed up. Do it later (reverted it for now, so at least
6492 everything works as before).
6494 everything works as before).
6493
6495
6494 * Got the object introspection system (magic_oinfo) working! I
6496 * Got the object introspection system (magic_oinfo) working! I
6495 think this is pretty much ready for release to Janko, so he can
6497 think this is pretty much ready for release to Janko, so he can
6496 test it for a while and then announce it. Pretty much 100% of what
6498 test it for a while and then announce it. Pretty much 100% of what
6497 I wanted for the 'phase 1' release is ready. Happy, tired.
6499 I wanted for the 'phase 1' release is ready. Happy, tired.
6498
6500
6499 2001-11-12 Fernando Perez <fperez@colorado.edu>
6501 2001-11-12 Fernando Perez <fperez@colorado.edu>
6500
6502
6501 * Version 0.1.6 released, 0.1.7 opened for further work.
6503 * Version 0.1.6 released, 0.1.7 opened for further work.
6502
6504
6503 * Fixed bug in printing: it used to test for truth before
6505 * Fixed bug in printing: it used to test for truth before
6504 printing, so 0 wouldn't print. Now checks for None.
6506 printing, so 0 wouldn't print. Now checks for None.
6505
6507
6506 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6508 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6507 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6509 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6508 reaches by hand into the outputcache. Think of a better way to do
6510 reaches by hand into the outputcache. Think of a better way to do
6509 this later.
6511 this later.
6510
6512
6511 * Various small fixes thanks to Nathan's comments.
6513 * Various small fixes thanks to Nathan's comments.
6512
6514
6513 * Changed magic_pprint to magic_Pprint. This way it doesn't
6515 * Changed magic_pprint to magic_Pprint. This way it doesn't
6514 collide with pprint() and the name is consistent with the command
6516 collide with pprint() and the name is consistent with the command
6515 line option.
6517 line option.
6516
6518
6517 * Changed prompt counter behavior to be fully like
6519 * Changed prompt counter behavior to be fully like
6518 Mathematica's. That is, even input that doesn't return a result
6520 Mathematica's. That is, even input that doesn't return a result
6519 raises the prompt counter. The old behavior was kind of confusing
6521 raises the prompt counter. The old behavior was kind of confusing
6520 (getting the same prompt number several times if the operation
6522 (getting the same prompt number several times if the operation
6521 didn't return a result).
6523 didn't return a result).
6522
6524
6523 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6525 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6524
6526
6525 * Fixed -Classic mode (wasn't working anymore).
6527 * Fixed -Classic mode (wasn't working anymore).
6526
6528
6527 * Added colored prompts using Nathan's new code. Colors are
6529 * Added colored prompts using Nathan's new code. Colors are
6528 currently hardwired, they can be user-configurable. For
6530 currently hardwired, they can be user-configurable. For
6529 developers, they can be chosen in file ipythonlib.py, at the
6531 developers, they can be chosen in file ipythonlib.py, at the
6530 beginning of the CachedOutput class def.
6532 beginning of the CachedOutput class def.
6531
6533
6532 2001-11-11 Fernando Perez <fperez@colorado.edu>
6534 2001-11-11 Fernando Perez <fperez@colorado.edu>
6533
6535
6534 * Version 0.1.5 released, 0.1.6 opened for further work.
6536 * Version 0.1.5 released, 0.1.6 opened for further work.
6535
6537
6536 * Changed magic_env to *return* the environment as a dict (not to
6538 * Changed magic_env to *return* the environment as a dict (not to
6537 print it). This way it prints, but it can also be processed.
6539 print it). This way it prints, but it can also be processed.
6538
6540
6539 * Added Verbose exception reporting to interactive
6541 * Added Verbose exception reporting to interactive
6540 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6542 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6541 traceback. Had to make some changes to the ultraTB file. This is
6543 traceback. Had to make some changes to the ultraTB file. This is
6542 probably the last 'big' thing in my mental todo list. This ties
6544 probably the last 'big' thing in my mental todo list. This ties
6543 in with the next entry:
6545 in with the next entry:
6544
6546
6545 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6547 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6546 has to specify is Plain, Color or Verbose for all exception
6548 has to specify is Plain, Color or Verbose for all exception
6547 handling.
6549 handling.
6548
6550
6549 * Removed ShellServices option. All this can really be done via
6551 * Removed ShellServices option. All this can really be done via
6550 the magic system. It's easier to extend, cleaner and has automatic
6552 the magic system. It's easier to extend, cleaner and has automatic
6551 namespace protection and documentation.
6553 namespace protection and documentation.
6552
6554
6553 2001-11-09 Fernando Perez <fperez@colorado.edu>
6555 2001-11-09 Fernando Perez <fperez@colorado.edu>
6554
6556
6555 * Fixed bug in output cache flushing (missing parameter to
6557 * Fixed bug in output cache flushing (missing parameter to
6556 __init__). Other small bugs fixed (found using pychecker).
6558 __init__). Other small bugs fixed (found using pychecker).
6557
6559
6558 * Version 0.1.4 opened for bugfixing.
6560 * Version 0.1.4 opened for bugfixing.
6559
6561
6560 2001-11-07 Fernando Perez <fperez@colorado.edu>
6562 2001-11-07 Fernando Perez <fperez@colorado.edu>
6561
6563
6562 * Version 0.1.3 released, mainly because of the raw_input bug.
6564 * Version 0.1.3 released, mainly because of the raw_input bug.
6563
6565
6564 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6566 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6565 and when testing for whether things were callable, a call could
6567 and when testing for whether things were callable, a call could
6566 actually be made to certain functions. They would get called again
6568 actually be made to certain functions. They would get called again
6567 once 'really' executed, with a resulting double call. A disaster
6569 once 'really' executed, with a resulting double call. A disaster
6568 in many cases (list.reverse() would never work!).
6570 in many cases (list.reverse() would never work!).
6569
6571
6570 * Removed prefilter() function, moved its code to raw_input (which
6572 * Removed prefilter() function, moved its code to raw_input (which
6571 after all was just a near-empty caller for prefilter). This saves
6573 after all was just a near-empty caller for prefilter). This saves
6572 a function call on every prompt, and simplifies the class a tiny bit.
6574 a function call on every prompt, and simplifies the class a tiny bit.
6573
6575
6574 * Fix _ip to __ip name in magic example file.
6576 * Fix _ip to __ip name in magic example file.
6575
6577
6576 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6578 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6577 work with non-gnu versions of tar.
6579 work with non-gnu versions of tar.
6578
6580
6579 2001-11-06 Fernando Perez <fperez@colorado.edu>
6581 2001-11-06 Fernando Perez <fperez@colorado.edu>
6580
6582
6581 * Version 0.1.2. Just to keep track of the recent changes.
6583 * Version 0.1.2. Just to keep track of the recent changes.
6582
6584
6583 * Fixed nasty bug in output prompt routine. It used to check 'if
6585 * Fixed nasty bug in output prompt routine. It used to check 'if
6584 arg != None...'. Problem is, this fails if arg implements a
6586 arg != None...'. Problem is, this fails if arg implements a
6585 special comparison (__cmp__) which disallows comparing to
6587 special comparison (__cmp__) which disallows comparing to
6586 None. Found it when trying to use the PhysicalQuantity module from
6588 None. Found it when trying to use the PhysicalQuantity module from
6587 ScientificPython.
6589 ScientificPython.
6588
6590
6589 2001-11-05 Fernando Perez <fperez@colorado.edu>
6591 2001-11-05 Fernando Perez <fperez@colorado.edu>
6590
6592
6591 * Also added dirs. Now the pushd/popd/dirs family functions
6593 * Also added dirs. Now the pushd/popd/dirs family functions
6592 basically like the shell, with the added convenience of going home
6594 basically like the shell, with the added convenience of going home
6593 when called with no args.
6595 when called with no args.
6594
6596
6595 * pushd/popd slightly modified to mimic shell behavior more
6597 * pushd/popd slightly modified to mimic shell behavior more
6596 closely.
6598 closely.
6597
6599
6598 * Added env,pushd,popd from ShellServices as magic functions. I
6600 * Added env,pushd,popd from ShellServices as magic functions. I
6599 think the cleanest will be to port all desired functions from
6601 think the cleanest will be to port all desired functions from
6600 ShellServices as magics and remove ShellServices altogether. This
6602 ShellServices as magics and remove ShellServices altogether. This
6601 will provide a single, clean way of adding functionality
6603 will provide a single, clean way of adding functionality
6602 (shell-type or otherwise) to IP.
6604 (shell-type or otherwise) to IP.
6603
6605
6604 2001-11-04 Fernando Perez <fperez@colorado.edu>
6606 2001-11-04 Fernando Perez <fperez@colorado.edu>
6605
6607
6606 * Added .ipython/ directory to sys.path. This way users can keep
6608 * Added .ipython/ directory to sys.path. This way users can keep
6607 customizations there and access them via import.
6609 customizations there and access them via import.
6608
6610
6609 2001-11-03 Fernando Perez <fperez@colorado.edu>
6611 2001-11-03 Fernando Perez <fperez@colorado.edu>
6610
6612
6611 * Opened version 0.1.1 for new changes.
6613 * Opened version 0.1.1 for new changes.
6612
6614
6613 * Changed version number to 0.1.0: first 'public' release, sent to
6615 * Changed version number to 0.1.0: first 'public' release, sent to
6614 Nathan and Janko.
6616 Nathan and Janko.
6615
6617
6616 * Lots of small fixes and tweaks.
6618 * Lots of small fixes and tweaks.
6617
6619
6618 * Minor changes to whos format. Now strings are shown, snipped if
6620 * Minor changes to whos format. Now strings are shown, snipped if
6619 too long.
6621 too long.
6620
6622
6621 * Changed ShellServices to work on __main__ so they show up in @who
6623 * Changed ShellServices to work on __main__ so they show up in @who
6622
6624
6623 * Help also works with ? at the end of a line:
6625 * Help also works with ? at the end of a line:
6624 ?sin and sin?
6626 ?sin and sin?
6625 both produce the same effect. This is nice, as often I use the
6627 both produce the same effect. This is nice, as often I use the
6626 tab-complete to find the name of a method, but I used to then have
6628 tab-complete to find the name of a method, but I used to then have
6627 to go to the beginning of the line to put a ? if I wanted more
6629 to go to the beginning of the line to put a ? if I wanted more
6628 info. Now I can just add the ? and hit return. Convenient.
6630 info. Now I can just add the ? and hit return. Convenient.
6629
6631
6630 2001-11-02 Fernando Perez <fperez@colorado.edu>
6632 2001-11-02 Fernando Perez <fperez@colorado.edu>
6631
6633
6632 * Python version check (>=2.1) added.
6634 * Python version check (>=2.1) added.
6633
6635
6634 * Added LazyPython documentation. At this point the docs are quite
6636 * Added LazyPython documentation. At this point the docs are quite
6635 a mess. A cleanup is in order.
6637 a mess. A cleanup is in order.
6636
6638
6637 * Auto-installer created. For some bizarre reason, the zipfiles
6639 * Auto-installer created. For some bizarre reason, the zipfiles
6638 module isn't working on my system. So I made a tar version
6640 module isn't working on my system. So I made a tar version
6639 (hopefully the command line options in various systems won't kill
6641 (hopefully the command line options in various systems won't kill
6640 me).
6642 me).
6641
6643
6642 * Fixes to Struct in genutils. Now all dictionary-like methods are
6644 * Fixes to Struct in genutils. Now all dictionary-like methods are
6643 protected (reasonably).
6645 protected (reasonably).
6644
6646
6645 * Added pager function to genutils and changed ? to print usage
6647 * Added pager function to genutils and changed ? to print usage
6646 note through it (it was too long).
6648 note through it (it was too long).
6647
6649
6648 * Added the LazyPython functionality. Works great! I changed the
6650 * Added the LazyPython functionality. Works great! I changed the
6649 auto-quote escape to ';', it's on home row and next to '. But
6651 auto-quote escape to ';', it's on home row and next to '. But
6650 both auto-quote and auto-paren (still /) escapes are command-line
6652 both auto-quote and auto-paren (still /) escapes are command-line
6651 parameters.
6653 parameters.
6652
6654
6653
6655
6654 2001-11-01 Fernando Perez <fperez@colorado.edu>
6656 2001-11-01 Fernando Perez <fperez@colorado.edu>
6655
6657
6656 * Version changed to 0.0.7. Fairly large change: configuration now
6658 * Version changed to 0.0.7. Fairly large change: configuration now
6657 is all stored in a directory, by default .ipython. There, all
6659 is all stored in a directory, by default .ipython. There, all
6658 config files have normal looking names (not .names)
6660 config files have normal looking names (not .names)
6659
6661
6660 * Version 0.0.6 Released first to Lucas and Archie as a test
6662 * Version 0.0.6 Released first to Lucas and Archie as a test
6661 run. Since it's the first 'semi-public' release, change version to
6663 run. Since it's the first 'semi-public' release, change version to
6662 > 0.0.6 for any changes now.
6664 > 0.0.6 for any changes now.
6663
6665
6664 * Stuff I had put in the ipplib.py changelog:
6666 * Stuff I had put in the ipplib.py changelog:
6665
6667
6666 Changes to InteractiveShell:
6668 Changes to InteractiveShell:
6667
6669
6668 - Made the usage message a parameter.
6670 - Made the usage message a parameter.
6669
6671
6670 - Require the name of the shell variable to be given. It's a bit
6672 - Require the name of the shell variable to be given. It's a bit
6671 of a hack, but allows the name 'shell' not to be hardwired in the
6673 of a hack, but allows the name 'shell' not to be hardwired in the
6672 magic (@) handler, which is problematic b/c it requires
6674 magic (@) handler, which is problematic b/c it requires
6673 polluting the global namespace with 'shell'. This in turn is
6675 polluting the global namespace with 'shell'. This in turn is
6674 fragile: if a user redefines a variable called shell, things
6676 fragile: if a user redefines a variable called shell, things
6675 break.
6677 break.
6676
6678
6677 - magic @: all functions available through @ need to be defined
6679 - magic @: all functions available through @ need to be defined
6678 as magic_<name>, even though they can be called simply as
6680 as magic_<name>, even though they can be called simply as
6679 @<name>. This allows the special command @magic to gather
6681 @<name>. This allows the special command @magic to gather
6680 information automatically about all existing magic functions,
6682 information automatically about all existing magic functions,
6681 even if they are run-time user extensions, by parsing the shell
6683 even if they are run-time user extensions, by parsing the shell
6682 instance __dict__ looking for special magic_ names.
6684 instance __dict__ looking for special magic_ names.
6683
6685
6684 - mainloop: added *two* local namespace parameters. This allows
6686 - mainloop: added *two* local namespace parameters. This allows
6685 the class to differentiate between parameters which were there
6687 the class to differentiate between parameters which were there
6686 before and after command line initialization was processed. This
6688 before and after command line initialization was processed. This
6687 way, later @who can show things loaded at startup by the
6689 way, later @who can show things loaded at startup by the
6688 user. This trick was necessary to make session saving/reloading
6690 user. This trick was necessary to make session saving/reloading
6689 really work: ideally after saving/exiting/reloading a session,
6691 really work: ideally after saving/exiting/reloading a session,
6690 *everything* should look the same, including the output of @who. I
6692 *everything* should look the same, including the output of @who. I
6691 was only able to make this work with this double namespace
6693 was only able to make this work with this double namespace
6692 trick.
6694 trick.
6693
6695
6694 - added a header to the logfile which allows (almost) full
6696 - added a header to the logfile which allows (almost) full
6695 session restoring.
6697 session restoring.
6696
6698
6697 - prepend lines beginning with @ or !, with a and log
6699 - prepend lines beginning with @ or !, with a and log
6698 them. Why? !lines: may be useful to know what you did @lines:
6700 them. Why? !lines: may be useful to know what you did @lines:
6699 they may affect session state. So when restoring a session, at
6701 they may affect session state. So when restoring a session, at
6700 least inform the user of their presence. I couldn't quite get
6702 least inform the user of their presence. I couldn't quite get
6701 them to properly re-execute, but at least the user is warned.
6703 them to properly re-execute, but at least the user is warned.
6702
6704
6703 * Started ChangeLog.
6705 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now