##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,6669 +1,6675 b''
1 2007-05-15 Ville Vainio <vivainio@gmail.com>
1 2007-05-15 Ville Vainio <vivainio@gmail.com>
2
2
3 * pycolorize.py, pycolor.1: Paul Mueller's patches that
3 * pycolorize.py, pycolor.1: Paul Mueller's patches that
4 make pycolorize read input from stdin when run without arguments.
4 make pycolorize read input from stdin when run without arguments.
5
5
6 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
6 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
7
7
8 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
8 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
9 it in sh profile (instead of ipy_system_conf.py).
9 it in sh profile (instead of ipy_system_conf.py).
10
10
11 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
12 aliases are now lower case on windows (MyCommand.exe => mycommand).
13
14
15
16
11 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
17 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
12
18
13 * IPython/rlineimpl.py: check for clear_history in readline and
19 * IPython/rlineimpl.py: check for clear_history in readline and
14 make it a dummy no-op if not available. This function isn't
20 make it a dummy no-op if not available. This function isn't
15 guaranteed to be in the API and appeared in Python 2.4, so we need
21 guaranteed to be in the API and appeared in Python 2.4, so we need
16 to check it ourselves. Also, clean up this file quite a bit.
22 to check it ourselves. Also, clean up this file quite a bit.
17
23
18 * ipython.1: update man page and full manual with information
24 * ipython.1: update man page and full manual with information
19 about threads (remove outdated warning). Closes #151.
25 about threads (remove outdated warning). Closes #151.
20
26
21 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
27 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
22
28
23 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
29 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
24 in trunk (note that this made it into the 0.8.1 release already,
30 in trunk (note that this made it into the 0.8.1 release already,
25 but the changelogs didn't get coordinated). Many thanks to Gael
31 but the changelogs didn't get coordinated). Many thanks to Gael
26 Varoquaux <gael.varoquaux-AT-normalesup.org>
32 Varoquaux <gael.varoquaux-AT-normalesup.org>
27
33
28 2007-05-09 *** Released version 0.8.1
34 2007-05-09 *** Released version 0.8.1
29
35
30 2007-05-10 Walter Doerwald <walter@livinglogic.de>
36 2007-05-10 Walter Doerwald <walter@livinglogic.de>
31
37
32 * IPython/Extensions/igrid.py: Incorporate html help into
38 * IPython/Extensions/igrid.py: Incorporate html help into
33 the module, so we don't have to search for the file.
39 the module, so we don't have to search for the file.
34
40
35 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
41 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
36
42
37 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
43 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
38
44
39 2007-04-30 Ville Vainio <vivainio@gmail.com>
45 2007-04-30 Ville Vainio <vivainio@gmail.com>
40
46
41 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
47 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
42 user has illegal (non-ascii) home directory name
48 user has illegal (non-ascii) home directory name
43
49
44 2007-04-27 Ville Vainio <vivainio@gmail.com>
50 2007-04-27 Ville Vainio <vivainio@gmail.com>
45
51
46 * platutils_win32.py: implement set_term_title for windows
52 * platutils_win32.py: implement set_term_title for windows
47
53
48 * Update version number
54 * Update version number
49
55
50 * ipy_profile_sh.py: more informative prompt (2 dir levels)
56 * ipy_profile_sh.py: more informative prompt (2 dir levels)
51
57
52 2007-04-26 Walter Doerwald <walter@livinglogic.de>
58 2007-04-26 Walter Doerwald <walter@livinglogic.de>
53
59
54 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
60 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
55 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
61 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
56 bug discovered by Ville).
62 bug discovered by Ville).
57
63
58 2007-04-26 Ville Vainio <vivainio@gmail.com>
64 2007-04-26 Ville Vainio <vivainio@gmail.com>
59
65
60 * Extensions/ipy_completers.py: Olivier's module completer now
66 * Extensions/ipy_completers.py: Olivier's module completer now
61 saves the list of root modules if it takes > 4 secs on the first run.
67 saves the list of root modules if it takes > 4 secs on the first run.
62
68
63 * Magic.py (%rehashx): %rehashx now clears the completer cache
69 * Magic.py (%rehashx): %rehashx now clears the completer cache
64
70
65
71
66 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
72 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
67
73
68 * ipython.el: fix incorrect color scheme, reported by Stefan.
74 * ipython.el: fix incorrect color scheme, reported by Stefan.
69 Closes #149.
75 Closes #149.
70
76
71 * IPython/PyColorize.py (Parser.format2): fix state-handling
77 * IPython/PyColorize.py (Parser.format2): fix state-handling
72 logic. I still don't like how that code handles state, but at
78 logic. I still don't like how that code handles state, but at
73 least now it should be correct, if inelegant. Closes #146.
79 least now it should be correct, if inelegant. Closes #146.
74
80
75 2007-04-25 Ville Vainio <vivainio@gmail.com>
81 2007-04-25 Ville Vainio <vivainio@gmail.com>
76
82
77 * Extensions/ipy_which.py: added extension for %which magic, works
83 * Extensions/ipy_which.py: added extension for %which magic, works
78 a lot like unix 'which' but also finds and expands aliases, and
84 a lot like unix 'which' but also finds and expands aliases, and
79 allows wildcards.
85 allows wildcards.
80
86
81 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
87 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
82 as opposed to returning nothing.
88 as opposed to returning nothing.
83
89
84 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
90 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
85 ipy_stock_completers on default profile, do import on sh profile.
91 ipy_stock_completers on default profile, do import on sh profile.
86
92
87 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
93 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
88
94
89 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
95 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
90 like ipython.py foo.py which raised a IndexError.
96 like ipython.py foo.py which raised a IndexError.
91
97
92 2007-04-21 Ville Vainio <vivainio@gmail.com>
98 2007-04-21 Ville Vainio <vivainio@gmail.com>
93
99
94 * Extensions/ipy_extutil.py: added extension to manage other ipython
100 * Extensions/ipy_extutil.py: added extension to manage other ipython
95 extensions. Now only supports 'ls' == list extensions.
101 extensions. Now only supports 'ls' == list extensions.
96
102
97 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
103 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
98
104
99 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
105 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
100 would prevent use of the exception system outside of a running
106 would prevent use of the exception system outside of a running
101 IPython instance.
107 IPython instance.
102
108
103 2007-04-20 Ville Vainio <vivainio@gmail.com>
109 2007-04-20 Ville Vainio <vivainio@gmail.com>
104
110
105 * Extensions/ipy_render.py: added extension for easy
111 * Extensions/ipy_render.py: added extension for easy
106 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
112 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
107 'Iptl' template notation,
113 'Iptl' template notation,
108
114
109 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
115 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
110 safer & faster 'import' completer.
116 safer & faster 'import' completer.
111
117
112 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
118 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
113 and _ip.defalias(name, command).
119 and _ip.defalias(name, command).
114
120
115 * Extensions/ipy_exportdb.py: New extension for exporting all the
121 * Extensions/ipy_exportdb.py: New extension for exporting all the
116 %store'd data in a portable format (normal ipapi calls like
122 %store'd data in a portable format (normal ipapi calls like
117 defmacro() etc.)
123 defmacro() etc.)
118
124
119 2007-04-19 Ville Vainio <vivainio@gmail.com>
125 2007-04-19 Ville Vainio <vivainio@gmail.com>
120
126
121 * upgrade_dir.py: skip junk files like *.pyc
127 * upgrade_dir.py: skip junk files like *.pyc
122
128
123 * Release.py: version number to 0.8.1
129 * Release.py: version number to 0.8.1
124
130
125 2007-04-18 Ville Vainio <vivainio@gmail.com>
131 2007-04-18 Ville Vainio <vivainio@gmail.com>
126
132
127 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
133 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
128 and later on win32.
134 and later on win32.
129
135
130 2007-04-16 Ville Vainio <vivainio@gmail.com>
136 2007-04-16 Ville Vainio <vivainio@gmail.com>
131
137
132 * iplib.py (showtraceback): Do not crash when running w/o readline.
138 * iplib.py (showtraceback): Do not crash when running w/o readline.
133
139
134 2007-04-12 Walter Doerwald <walter@livinglogic.de>
140 2007-04-12 Walter Doerwald <walter@livinglogic.de>
135
141
136 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
142 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
137 sorted (case sensitive with files and dirs mixed).
143 sorted (case sensitive with files and dirs mixed).
138
144
139 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
145 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
140
146
141 * IPython/Release.py (version): Open trunk for 0.8.1 development.
147 * IPython/Release.py (version): Open trunk for 0.8.1 development.
142
148
143 2007-04-10 *** Released version 0.8.0
149 2007-04-10 *** Released version 0.8.0
144
150
145 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
151 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
146
152
147 * Tag 0.8.0 for release.
153 * Tag 0.8.0 for release.
148
154
149 * IPython/iplib.py (reloadhist): add API function to cleanly
155 * IPython/iplib.py (reloadhist): add API function to cleanly
150 reload the readline history, which was growing inappropriately on
156 reload the readline history, which was growing inappropriately on
151 every %run call.
157 every %run call.
152
158
153 * win32_manual_post_install.py (run): apply last part of Nicolas
159 * win32_manual_post_install.py (run): apply last part of Nicolas
154 Pernetty's patch (I'd accidentally applied it in a different
160 Pernetty's patch (I'd accidentally applied it in a different
155 directory and this particular file didn't get patched).
161 directory and this particular file didn't get patched).
156
162
157 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
163 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
158
164
159 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
165 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
160 find the main thread id and use the proper API call. Thanks to
166 find the main thread id and use the proper API call. Thanks to
161 Stefan for the fix.
167 Stefan for the fix.
162
168
163 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
169 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
164 unit tests to reflect fixed ticket #52, and add more tests sent by
170 unit tests to reflect fixed ticket #52, and add more tests sent by
165 him.
171 him.
166
172
167 * IPython/iplib.py (raw_input): restore the readline completer
173 * IPython/iplib.py (raw_input): restore the readline completer
168 state on every input, in case third-party code messed it up.
174 state on every input, in case third-party code messed it up.
169 (_prefilter): revert recent addition of early-escape checks which
175 (_prefilter): revert recent addition of early-escape checks which
170 prevent many valid alias calls from working.
176 prevent many valid alias calls from working.
171
177
172 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
178 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
173 flag for sigint handler so we don't run a full signal() call on
179 flag for sigint handler so we don't run a full signal() call on
174 each runcode access.
180 each runcode access.
175
181
176 * IPython/Magic.py (magic_whos): small improvement to diagnostic
182 * IPython/Magic.py (magic_whos): small improvement to diagnostic
177 message.
183 message.
178
184
179 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
185 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
180
186
181 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
187 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
182 asynchronous exceptions working, i.e., Ctrl-C can actually
188 asynchronous exceptions working, i.e., Ctrl-C can actually
183 interrupt long-running code in the multithreaded shells.
189 interrupt long-running code in the multithreaded shells.
184
190
185 This is using Tomer Filiba's great ctypes-based trick:
191 This is using Tomer Filiba's great ctypes-based trick:
186 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
192 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
187 this in the past, but hadn't been able to make it work before. So
193 this in the past, but hadn't been able to make it work before. So
188 far it looks like it's actually running, but this needs more
194 far it looks like it's actually running, but this needs more
189 testing. If it really works, I'll be *very* happy, and we'll owe
195 testing. If it really works, I'll be *very* happy, and we'll owe
190 a huge thank you to Tomer. My current implementation is ugly,
196 a huge thank you to Tomer. My current implementation is ugly,
191 hackish and uses nasty globals, but I don't want to try and clean
197 hackish and uses nasty globals, but I don't want to try and clean
192 anything up until we know if it actually works.
198 anything up until we know if it actually works.
193
199
194 NOTE: this feature needs ctypes to work. ctypes is included in
200 NOTE: this feature needs ctypes to work. ctypes is included in
195 Python2.5, but 2.4 users will need to manually install it. This
201 Python2.5, but 2.4 users will need to manually install it. This
196 feature makes multi-threaded shells so much more usable that it's
202 feature makes multi-threaded shells so much more usable that it's
197 a minor price to pay (ctypes is very easy to install, already a
203 a minor price to pay (ctypes is very easy to install, already a
198 requirement for win32 and available in major linux distros).
204 requirement for win32 and available in major linux distros).
199
205
200 2007-04-04 Ville Vainio <vivainio@gmail.com>
206 2007-04-04 Ville Vainio <vivainio@gmail.com>
201
207
202 * Extensions/ipy_completers.py, ipy_stock_completers.py:
208 * Extensions/ipy_completers.py, ipy_stock_completers.py:
203 Moved implementations of 'bundled' completers to ipy_completers.py,
209 Moved implementations of 'bundled' completers to ipy_completers.py,
204 they are only enabled in ipy_stock_completers.py.
210 they are only enabled in ipy_stock_completers.py.
205
211
206 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
212 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
207
213
208 * IPython/PyColorize.py (Parser.format2): Fix identation of
214 * IPython/PyColorize.py (Parser.format2): Fix identation of
209 colorzied output and return early if color scheme is NoColor, to
215 colorzied output and return early if color scheme is NoColor, to
210 avoid unnecessary and expensive tokenization. Closes #131.
216 avoid unnecessary and expensive tokenization. Closes #131.
211
217
212 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
218 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
213
219
214 * IPython/Debugger.py: disable the use of pydb version 1.17. It
220 * IPython/Debugger.py: disable the use of pydb version 1.17. It
215 has a critical bug (a missing import that makes post-mortem not
221 has a critical bug (a missing import that makes post-mortem not
216 work at all). Unfortunately as of this time, this is the version
222 work at all). Unfortunately as of this time, this is the version
217 shipped with Ubuntu Edgy, so quite a few people have this one. I
223 shipped with Ubuntu Edgy, so quite a few people have this one. I
218 hope Edgy will update to a more recent package.
224 hope Edgy will update to a more recent package.
219
225
220 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
226 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
221
227
222 * IPython/iplib.py (_prefilter): close #52, second part of a patch
228 * IPython/iplib.py (_prefilter): close #52, second part of a patch
223 set by Stefan (only the first part had been applied before).
229 set by Stefan (only the first part had been applied before).
224
230
225 * IPython/Extensions/ipy_stock_completers.py (module_completer):
231 * IPython/Extensions/ipy_stock_completers.py (module_completer):
226 remove usage of the dangerous pkgutil.walk_packages(). See
232 remove usage of the dangerous pkgutil.walk_packages(). See
227 details in comments left in the code.
233 details in comments left in the code.
228
234
229 * IPython/Magic.py (magic_whos): add support for numpy arrays
235 * IPython/Magic.py (magic_whos): add support for numpy arrays
230 similar to what we had for Numeric.
236 similar to what we had for Numeric.
231
237
232 * IPython/completer.py (IPCompleter.complete): extend the
238 * IPython/completer.py (IPCompleter.complete): extend the
233 complete() call API to support completions by other mechanisms
239 complete() call API to support completions by other mechanisms
234 than readline. Closes #109.
240 than readline. Closes #109.
235
241
236 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
242 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
237 protect against a bug in Python's execfile(). Closes #123.
243 protect against a bug in Python's execfile(). Closes #123.
238
244
239 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
245 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
240
246
241 * IPython/iplib.py (split_user_input): ensure that when splitting
247 * IPython/iplib.py (split_user_input): ensure that when splitting
242 user input, the part that can be treated as a python name is pure
248 user input, the part that can be treated as a python name is pure
243 ascii (Python identifiers MUST be pure ascii). Part of the
249 ascii (Python identifiers MUST be pure ascii). Part of the
244 ongoing Unicode support work.
250 ongoing Unicode support work.
245
251
246 * IPython/Prompts.py (prompt_specials_color): Add \N for the
252 * IPython/Prompts.py (prompt_specials_color): Add \N for the
247 actual prompt number, without any coloring. This allows users to
253 actual prompt number, without any coloring. This allows users to
248 produce numbered prompts with their own colors. Added after a
254 produce numbered prompts with their own colors. Added after a
249 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
255 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
250
256
251 2007-03-31 Walter Doerwald <walter@livinglogic.de>
257 2007-03-31 Walter Doerwald <walter@livinglogic.de>
252
258
253 * IPython/Extensions/igrid.py: Map the return key
259 * IPython/Extensions/igrid.py: Map the return key
254 to enter() and shift-return to enterattr().
260 to enter() and shift-return to enterattr().
255
261
256 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
262 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
257
263
258 * IPython/Magic.py (magic_psearch): add unicode support by
264 * IPython/Magic.py (magic_psearch): add unicode support by
259 encoding to ascii the input, since this routine also only deals
265 encoding to ascii the input, since this routine also only deals
260 with valid Python names. Fixes a bug reported by Stefan.
266 with valid Python names. Fixes a bug reported by Stefan.
261
267
262 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
268 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
263
269
264 * IPython/Magic.py (_inspect): convert unicode input into ascii
270 * IPython/Magic.py (_inspect): convert unicode input into ascii
265 before trying to evaluate it as a Python identifier. This fixes a
271 before trying to evaluate it as a Python identifier. This fixes a
266 problem that the new unicode support had introduced when analyzing
272 problem that the new unicode support had introduced when analyzing
267 long definition lines for functions.
273 long definition lines for functions.
268
274
269 2007-03-24 Walter Doerwald <walter@livinglogic.de>
275 2007-03-24 Walter Doerwald <walter@livinglogic.de>
270
276
271 * IPython/Extensions/igrid.py: Fix picking. Using
277 * IPython/Extensions/igrid.py: Fix picking. Using
272 igrid with wxPython 2.6 and -wthread should work now.
278 igrid with wxPython 2.6 and -wthread should work now.
273 igrid.display() simply tries to create a frame without
279 igrid.display() simply tries to create a frame without
274 an application. Only if this fails an application is created.
280 an application. Only if this fails an application is created.
275
281
276 2007-03-23 Walter Doerwald <walter@livinglogic.de>
282 2007-03-23 Walter Doerwald <walter@livinglogic.de>
277
283
278 * IPython/Extensions/path.py: Updated to version 2.2.
284 * IPython/Extensions/path.py: Updated to version 2.2.
279
285
280 2007-03-23 Ville Vainio <vivainio@gmail.com>
286 2007-03-23 Ville Vainio <vivainio@gmail.com>
281
287
282 * iplib.py: recursive alias expansion now works better, so that
288 * iplib.py: recursive alias expansion now works better, so that
283 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
289 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
284 doesn't trip up the process, if 'd' has been aliased to 'ls'.
290 doesn't trip up the process, if 'd' has been aliased to 'ls'.
285
291
286 * Extensions/ipy_gnuglobal.py added, provides %global magic
292 * Extensions/ipy_gnuglobal.py added, provides %global magic
287 for users of http://www.gnu.org/software/global
293 for users of http://www.gnu.org/software/global
288
294
289 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
295 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
290 Closes #52. Patch by Stefan van der Walt.
296 Closes #52. Patch by Stefan van der Walt.
291
297
292 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
298 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
293
299
294 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
300 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
295 respect the __file__ attribute when using %run. Thanks to a bug
301 respect the __file__ attribute when using %run. Thanks to a bug
296 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
302 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
297
303
298 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
304 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
299
305
300 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
306 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
301 input. Patch sent by Stefan.
307 input. Patch sent by Stefan.
302
308
303 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
309 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
304 * IPython/Extensions/ipy_stock_completer.py
310 * IPython/Extensions/ipy_stock_completer.py
305 shlex_split, fix bug in shlex_split. len function
311 shlex_split, fix bug in shlex_split. len function
306 call was missing an if statement. Caused shlex_split to
312 call was missing an if statement. Caused shlex_split to
307 sometimes return "" as last element.
313 sometimes return "" as last element.
308
314
309 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
315 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
310
316
311 * IPython/completer.py
317 * IPython/completer.py
312 (IPCompleter.file_matches.single_dir_expand): fix a problem
318 (IPCompleter.file_matches.single_dir_expand): fix a problem
313 reported by Stefan, where directories containign a single subdir
319 reported by Stefan, where directories containign a single subdir
314 would be completed too early.
320 would be completed too early.
315
321
316 * IPython/Shell.py (_load_pylab): Make the execution of 'from
322 * IPython/Shell.py (_load_pylab): Make the execution of 'from
317 pylab import *' when -pylab is given be optional. A new flag,
323 pylab import *' when -pylab is given be optional. A new flag,
318 pylab_import_all controls this behavior, the default is True for
324 pylab_import_all controls this behavior, the default is True for
319 backwards compatibility.
325 backwards compatibility.
320
326
321 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
327 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
322 modified) R. Bernstein's patch for fully syntax highlighted
328 modified) R. Bernstein's patch for fully syntax highlighted
323 tracebacks. The functionality is also available under ultraTB for
329 tracebacks. The functionality is also available under ultraTB for
324 non-ipython users (someone using ultraTB but outside an ipython
330 non-ipython users (someone using ultraTB but outside an ipython
325 session). They can select the color scheme by setting the
331 session). They can select the color scheme by setting the
326 module-level global DEFAULT_SCHEME. The highlight functionality
332 module-level global DEFAULT_SCHEME. The highlight functionality
327 also works when debugging.
333 also works when debugging.
328
334
329 * IPython/genutils.py (IOStream.close): small patch by
335 * IPython/genutils.py (IOStream.close): small patch by
330 R. Bernstein for improved pydb support.
336 R. Bernstein for improved pydb support.
331
337
332 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
338 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
333 DaveS <davls@telus.net> to improve support of debugging under
339 DaveS <davls@telus.net> to improve support of debugging under
334 NTEmacs, including improved pydb behavior.
340 NTEmacs, including improved pydb behavior.
335
341
336 * IPython/Magic.py (magic_prun): Fix saving of profile info for
342 * IPython/Magic.py (magic_prun): Fix saving of profile info for
337 Python 2.5, where the stats object API changed a little. Thanks
343 Python 2.5, where the stats object API changed a little. Thanks
338 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
344 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
339
345
340 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
346 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
341 Pernetty's patch to improve support for (X)Emacs under Win32.
347 Pernetty's patch to improve support for (X)Emacs under Win32.
342
348
343 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
349 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
344
350
345 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
351 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
346 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
352 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
347 a report by Nik Tautenhahn.
353 a report by Nik Tautenhahn.
348
354
349 2007-03-16 Walter Doerwald <walter@livinglogic.de>
355 2007-03-16 Walter Doerwald <walter@livinglogic.de>
350
356
351 * setup.py: Add the igrid help files to the list of data files
357 * setup.py: Add the igrid help files to the list of data files
352 to be installed alongside igrid.
358 to be installed alongside igrid.
353 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
359 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
354 Show the input object of the igrid browser as the window tile.
360 Show the input object of the igrid browser as the window tile.
355 Show the object the cursor is on in the statusbar.
361 Show the object the cursor is on in the statusbar.
356
362
357 2007-03-15 Ville Vainio <vivainio@gmail.com>
363 2007-03-15 Ville Vainio <vivainio@gmail.com>
358
364
359 * Extensions/ipy_stock_completers.py: Fixed exception
365 * Extensions/ipy_stock_completers.py: Fixed exception
360 on mismatching quotes in %run completer. Patch by
366 on mismatching quotes in %run completer. Patch by
361 JοΏ½rgen Stenarson. Closes #127.
367 JοΏ½rgen Stenarson. Closes #127.
362
368
363 2007-03-14 Ville Vainio <vivainio@gmail.com>
369 2007-03-14 Ville Vainio <vivainio@gmail.com>
364
370
365 * Extensions/ext_rehashdir.py: Do not do auto_alias
371 * Extensions/ext_rehashdir.py: Do not do auto_alias
366 in %rehashdir, it clobbers %store'd aliases.
372 in %rehashdir, it clobbers %store'd aliases.
367
373
368 * UserConfig/ipy_profile_sh.py: envpersist.py extension
374 * UserConfig/ipy_profile_sh.py: envpersist.py extension
369 (beefed up %env) imported for sh profile.
375 (beefed up %env) imported for sh profile.
370
376
371 2007-03-10 Walter Doerwald <walter@livinglogic.de>
377 2007-03-10 Walter Doerwald <walter@livinglogic.de>
372
378
373 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
379 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
374 as the default browser.
380 as the default browser.
375 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
381 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
376 As igrid displays all attributes it ever encounters, fetch() (which has
382 As igrid displays all attributes it ever encounters, fetch() (which has
377 been renamed to _fetch()) doesn't have to recalculate the display attributes
383 been renamed to _fetch()) doesn't have to recalculate the display attributes
378 every time a new item is fetched. This should speed up scrolling.
384 every time a new item is fetched. This should speed up scrolling.
379
385
380 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
386 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
381
387
382 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
388 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
383 Schmolck's recently reported tab-completion bug (my previous one
389 Schmolck's recently reported tab-completion bug (my previous one
384 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
390 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
385
391
386 2007-03-09 Walter Doerwald <walter@livinglogic.de>
392 2007-03-09 Walter Doerwald <walter@livinglogic.de>
387
393
388 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
394 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
389 Close help window if exiting igrid.
395 Close help window if exiting igrid.
390
396
391 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
397 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
392
398
393 * IPython/Extensions/ipy_defaults.py: Check if readline is available
399 * IPython/Extensions/ipy_defaults.py: Check if readline is available
394 before calling functions from readline.
400 before calling functions from readline.
395
401
396 2007-03-02 Walter Doerwald <walter@livinglogic.de>
402 2007-03-02 Walter Doerwald <walter@livinglogic.de>
397
403
398 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
404 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
399 igrid is a wxPython-based display object for ipipe. If your system has
405 igrid is a wxPython-based display object for ipipe. If your system has
400 wx installed igrid will be the default display. Without wx ipipe falls
406 wx installed igrid will be the default display. Without wx ipipe falls
401 back to ibrowse (which needs curses). If no curses is installed ipipe
407 back to ibrowse (which needs curses). If no curses is installed ipipe
402 falls back to idump.
408 falls back to idump.
403
409
404 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
410 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
405
411
406 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
412 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
407 my changes from yesterday, they introduced bugs. Will reactivate
413 my changes from yesterday, they introduced bugs. Will reactivate
408 once I get a correct solution, which will be much easier thanks to
414 once I get a correct solution, which will be much easier thanks to
409 Dan Milstein's new prefilter test suite.
415 Dan Milstein's new prefilter test suite.
410
416
411 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
417 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
412
418
413 * IPython/iplib.py (split_user_input): fix input splitting so we
419 * IPython/iplib.py (split_user_input): fix input splitting so we
414 don't attempt attribute accesses on things that can't possibly be
420 don't attempt attribute accesses on things that can't possibly be
415 valid Python attributes. After a bug report by Alex Schmolck.
421 valid Python attributes. After a bug report by Alex Schmolck.
416 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
422 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
417 %magic with explicit % prefix.
423 %magic with explicit % prefix.
418
424
419 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
425 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
420
426
421 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
427 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
422 avoid a DeprecationWarning from GTK.
428 avoid a DeprecationWarning from GTK.
423
429
424 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
430 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
425
431
426 * IPython/genutils.py (clock): I modified clock() to return total
432 * IPython/genutils.py (clock): I modified clock() to return total
427 time, user+system. This is a more commonly needed metric. I also
433 time, user+system. This is a more commonly needed metric. I also
428 introduced the new clocku/clocks to get only user/system time if
434 introduced the new clocku/clocks to get only user/system time if
429 one wants those instead.
435 one wants those instead.
430
436
431 ***WARNING: API CHANGE*** clock() used to return only user time,
437 ***WARNING: API CHANGE*** clock() used to return only user time,
432 so if you want exactly the same results as before, use clocku
438 so if you want exactly the same results as before, use clocku
433 instead.
439 instead.
434
440
435 2007-02-22 Ville Vainio <vivainio@gmail.com>
441 2007-02-22 Ville Vainio <vivainio@gmail.com>
436
442
437 * IPython/Extensions/ipy_p4.py: Extension for improved
443 * IPython/Extensions/ipy_p4.py: Extension for improved
438 p4 (perforce version control system) experience.
444 p4 (perforce version control system) experience.
439 Adds %p4 magic with p4 command completion and
445 Adds %p4 magic with p4 command completion and
440 automatic -G argument (marshall output as python dict)
446 automatic -G argument (marshall output as python dict)
441
447
442 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
448 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
443
449
444 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
450 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
445 stop marks.
451 stop marks.
446 (ClearingMixin): a simple mixin to easily make a Demo class clear
452 (ClearingMixin): a simple mixin to easily make a Demo class clear
447 the screen in between blocks and have empty marquees. The
453 the screen in between blocks and have empty marquees. The
448 ClearDemo and ClearIPDemo classes that use it are included.
454 ClearDemo and ClearIPDemo classes that use it are included.
449
455
450 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
456 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
451
457
452 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
458 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
453 protect against exceptions at Python shutdown time. Patch
459 protect against exceptions at Python shutdown time. Patch
454 sumbmitted to upstream.
460 sumbmitted to upstream.
455
461
456 2007-02-14 Walter Doerwald <walter@livinglogic.de>
462 2007-02-14 Walter Doerwald <walter@livinglogic.de>
457
463
458 * IPython/Extensions/ibrowse.py: If entering the first object level
464 * IPython/Extensions/ibrowse.py: If entering the first object level
459 (i.e. the object for which the browser has been started) fails,
465 (i.e. the object for which the browser has been started) fails,
460 now the error is raised directly (aborting the browser) instead of
466 now the error is raised directly (aborting the browser) instead of
461 running into an empty levels list later.
467 running into an empty levels list later.
462
468
463 2007-02-03 Walter Doerwald <walter@livinglogic.de>
469 2007-02-03 Walter Doerwald <walter@livinglogic.de>
464
470
465 * IPython/Extensions/ipipe.py: Add an xrepr implementation
471 * IPython/Extensions/ipipe.py: Add an xrepr implementation
466 for the noitem object.
472 for the noitem object.
467
473
468 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
474 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
469
475
470 * IPython/completer.py (Completer.attr_matches): Fix small
476 * IPython/completer.py (Completer.attr_matches): Fix small
471 tab-completion bug with Enthought Traits objects with units.
477 tab-completion bug with Enthought Traits objects with units.
472 Thanks to a bug report by Tom Denniston
478 Thanks to a bug report by Tom Denniston
473 <tom.denniston-AT-alum.dartmouth.org>.
479 <tom.denniston-AT-alum.dartmouth.org>.
474
480
475 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
481 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
476
482
477 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
483 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
478 bug where only .ipy or .py would be completed. Once the first
484 bug where only .ipy or .py would be completed. Once the first
479 argument to %run has been given, all completions are valid because
485 argument to %run has been given, all completions are valid because
480 they are the arguments to the script, which may well be non-python
486 they are the arguments to the script, which may well be non-python
481 filenames.
487 filenames.
482
488
483 * IPython/irunner.py (InteractiveRunner.run_source): major updates
489 * IPython/irunner.py (InteractiveRunner.run_source): major updates
484 to irunner to allow it to correctly support real doctesting of
490 to irunner to allow it to correctly support real doctesting of
485 out-of-process ipython code.
491 out-of-process ipython code.
486
492
487 * IPython/Magic.py (magic_cd): Make the setting of the terminal
493 * IPython/Magic.py (magic_cd): Make the setting of the terminal
488 title an option (-noterm_title) because it completely breaks
494 title an option (-noterm_title) because it completely breaks
489 doctesting.
495 doctesting.
490
496
491 * IPython/demo.py: fix IPythonDemo class that was not actually working.
497 * IPython/demo.py: fix IPythonDemo class that was not actually working.
492
498
493 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
499 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
494
500
495 * IPython/irunner.py (main): fix small bug where extensions were
501 * IPython/irunner.py (main): fix small bug where extensions were
496 not being correctly recognized.
502 not being correctly recognized.
497
503
498 2007-01-23 Walter Doerwald <walter@livinglogic.de>
504 2007-01-23 Walter Doerwald <walter@livinglogic.de>
499
505
500 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
506 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
501 a string containing a single line yields the string itself as the
507 a string containing a single line yields the string itself as the
502 only item.
508 only item.
503
509
504 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
510 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
505 object if it's the same as the one on the last level (This avoids
511 object if it's the same as the one on the last level (This avoids
506 infinite recursion for one line strings).
512 infinite recursion for one line strings).
507
513
508 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
514 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
509
515
510 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
516 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
511 all output streams before printing tracebacks. This ensures that
517 all output streams before printing tracebacks. This ensures that
512 user output doesn't end up interleaved with traceback output.
518 user output doesn't end up interleaved with traceback output.
513
519
514 2007-01-10 Ville Vainio <vivainio@gmail.com>
520 2007-01-10 Ville Vainio <vivainio@gmail.com>
515
521
516 * Extensions/envpersist.py: Turbocharged %env that remembers
522 * Extensions/envpersist.py: Turbocharged %env that remembers
517 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
523 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
518 "%env VISUAL=jed".
524 "%env VISUAL=jed".
519
525
520 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
526 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
521
527
522 * IPython/iplib.py (showtraceback): ensure that we correctly call
528 * IPython/iplib.py (showtraceback): ensure that we correctly call
523 custom handlers in all cases (some with pdb were slipping through,
529 custom handlers in all cases (some with pdb were slipping through,
524 but I'm not exactly sure why).
530 but I'm not exactly sure why).
525
531
526 * IPython/Debugger.py (Tracer.__init__): added new class to
532 * IPython/Debugger.py (Tracer.__init__): added new class to
527 support set_trace-like usage of IPython's enhanced debugger.
533 support set_trace-like usage of IPython's enhanced debugger.
528
534
529 2006-12-24 Ville Vainio <vivainio@gmail.com>
535 2006-12-24 Ville Vainio <vivainio@gmail.com>
530
536
531 * ipmaker.py: more informative message when ipy_user_conf
537 * ipmaker.py: more informative message when ipy_user_conf
532 import fails (suggest running %upgrade).
538 import fails (suggest running %upgrade).
533
539
534 * tools/run_ipy_in_profiler.py: Utility to see where
540 * tools/run_ipy_in_profiler.py: Utility to see where
535 the time during IPython startup is spent.
541 the time during IPython startup is spent.
536
542
537 2006-12-20 Ville Vainio <vivainio@gmail.com>
543 2006-12-20 Ville Vainio <vivainio@gmail.com>
538
544
539 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
545 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
540
546
541 * ipapi.py: Add new ipapi method, expand_alias.
547 * ipapi.py: Add new ipapi method, expand_alias.
542
548
543 * Release.py: Bump up version to 0.7.4.svn
549 * Release.py: Bump up version to 0.7.4.svn
544
550
545 2006-12-17 Ville Vainio <vivainio@gmail.com>
551 2006-12-17 Ville Vainio <vivainio@gmail.com>
546
552
547 * Extensions/jobctrl.py: Fixed &cmd arg arg...
553 * Extensions/jobctrl.py: Fixed &cmd arg arg...
548 to work properly on posix too
554 to work properly on posix too
549
555
550 * Release.py: Update revnum (version is still just 0.7.3).
556 * Release.py: Update revnum (version is still just 0.7.3).
551
557
552 2006-12-15 Ville Vainio <vivainio@gmail.com>
558 2006-12-15 Ville Vainio <vivainio@gmail.com>
553
559
554 * scripts/ipython_win_post_install: create ipython.py in
560 * scripts/ipython_win_post_install: create ipython.py in
555 prefix + "/scripts".
561 prefix + "/scripts".
556
562
557 * Release.py: Update version to 0.7.3.
563 * Release.py: Update version to 0.7.3.
558
564
559 2006-12-14 Ville Vainio <vivainio@gmail.com>
565 2006-12-14 Ville Vainio <vivainio@gmail.com>
560
566
561 * scripts/ipython_win_post_install: Overwrite old shortcuts
567 * scripts/ipython_win_post_install: Overwrite old shortcuts
562 if they already exist
568 if they already exist
563
569
564 * Release.py: release 0.7.3rc2
570 * Release.py: release 0.7.3rc2
565
571
566 2006-12-13 Ville Vainio <vivainio@gmail.com>
572 2006-12-13 Ville Vainio <vivainio@gmail.com>
567
573
568 * Branch and update Release.py for 0.7.3rc1
574 * Branch and update Release.py for 0.7.3rc1
569
575
570 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
576 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
571
577
572 * IPython/Shell.py (IPShellWX): update for current WX naming
578 * IPython/Shell.py (IPShellWX): update for current WX naming
573 conventions, to avoid a deprecation warning with current WX
579 conventions, to avoid a deprecation warning with current WX
574 versions. Thanks to a report by Danny Shevitz.
580 versions. Thanks to a report by Danny Shevitz.
575
581
576 2006-12-12 Ville Vainio <vivainio@gmail.com>
582 2006-12-12 Ville Vainio <vivainio@gmail.com>
577
583
578 * ipmaker.py: apply david cournapeau's patch to make
584 * ipmaker.py: apply david cournapeau's patch to make
579 import_some work properly even when ipythonrc does
585 import_some work properly even when ipythonrc does
580 import_some on empty list (it was an old bug!).
586 import_some on empty list (it was an old bug!).
581
587
582 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
588 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
583 Add deprecation note to ipythonrc and a url to wiki
589 Add deprecation note to ipythonrc and a url to wiki
584 in ipy_user_conf.py
590 in ipy_user_conf.py
585
591
586
592
587 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
593 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
588 as if it was typed on IPython command prompt, i.e.
594 as if it was typed on IPython command prompt, i.e.
589 as IPython script.
595 as IPython script.
590
596
591 * example-magic.py, magic_grepl.py: remove outdated examples
597 * example-magic.py, magic_grepl.py: remove outdated examples
592
598
593 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
599 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
594
600
595 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
601 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
596 is called before any exception has occurred.
602 is called before any exception has occurred.
597
603
598 2006-12-08 Ville Vainio <vivainio@gmail.com>
604 2006-12-08 Ville Vainio <vivainio@gmail.com>
599
605
600 * Extensions/ipy_stock_completers.py: fix cd completer
606 * Extensions/ipy_stock_completers.py: fix cd completer
601 to translate /'s to \'s again.
607 to translate /'s to \'s again.
602
608
603 * completer.py: prevent traceback on file completions w/
609 * completer.py: prevent traceback on file completions w/
604 backslash.
610 backslash.
605
611
606 * Release.py: Update release number to 0.7.3b3 for release
612 * Release.py: Update release number to 0.7.3b3 for release
607
613
608 2006-12-07 Ville Vainio <vivainio@gmail.com>
614 2006-12-07 Ville Vainio <vivainio@gmail.com>
609
615
610 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
616 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
611 while executing external code. Provides more shell-like behaviour
617 while executing external code. Provides more shell-like behaviour
612 and overall better response to ctrl + C / ctrl + break.
618 and overall better response to ctrl + C / ctrl + break.
613
619
614 * tools/make_tarball.py: new script to create tarball straight from svn
620 * tools/make_tarball.py: new script to create tarball straight from svn
615 (setup.py sdist doesn't work on win32).
621 (setup.py sdist doesn't work on win32).
616
622
617 * Extensions/ipy_stock_completers.py: fix cd completer to give up
623 * Extensions/ipy_stock_completers.py: fix cd completer to give up
618 on dirnames with spaces and use the default completer instead.
624 on dirnames with spaces and use the default completer instead.
619
625
620 * Revision.py: Change version to 0.7.3b2 for release.
626 * Revision.py: Change version to 0.7.3b2 for release.
621
627
622 2006-12-05 Ville Vainio <vivainio@gmail.com>
628 2006-12-05 Ville Vainio <vivainio@gmail.com>
623
629
624 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
630 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
625 pydb patch 4 (rm debug printing, py 2.5 checking)
631 pydb patch 4 (rm debug printing, py 2.5 checking)
626
632
627 2006-11-30 Walter Doerwald <walter@livinglogic.de>
633 2006-11-30 Walter Doerwald <walter@livinglogic.de>
628 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
634 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
629 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
635 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
630 "refreshfind" (mapped to "R") does the same but tries to go back to the same
636 "refreshfind" (mapped to "R") does the same but tries to go back to the same
631 object the cursor was on before the refresh. The command "markrange" is
637 object the cursor was on before the refresh. The command "markrange" is
632 mapped to "%" now.
638 mapped to "%" now.
633 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
639 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
634
640
635 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
641 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
636
642
637 * IPython/Magic.py (magic_debug): new %debug magic to activate the
643 * IPython/Magic.py (magic_debug): new %debug magic to activate the
638 interactive debugger on the last traceback, without having to call
644 interactive debugger on the last traceback, without having to call
639 %pdb and rerun your code. Made minor changes in various modules,
645 %pdb and rerun your code. Made minor changes in various modules,
640 should automatically recognize pydb if available.
646 should automatically recognize pydb if available.
641
647
642 2006-11-28 Ville Vainio <vivainio@gmail.com>
648 2006-11-28 Ville Vainio <vivainio@gmail.com>
643
649
644 * completer.py: If the text start with !, show file completions
650 * completer.py: If the text start with !, show file completions
645 properly. This helps when trying to complete command name
651 properly. This helps when trying to complete command name
646 for shell escapes.
652 for shell escapes.
647
653
648 2006-11-27 Ville Vainio <vivainio@gmail.com>
654 2006-11-27 Ville Vainio <vivainio@gmail.com>
649
655
650 * ipy_stock_completers.py: bzr completer submitted by Stefan van
656 * ipy_stock_completers.py: bzr completer submitted by Stefan van
651 der Walt. Clean up svn and hg completers by using a common
657 der Walt. Clean up svn and hg completers by using a common
652 vcs_completer.
658 vcs_completer.
653
659
654 2006-11-26 Ville Vainio <vivainio@gmail.com>
660 2006-11-26 Ville Vainio <vivainio@gmail.com>
655
661
656 * Remove ipconfig and %config; you should use _ip.options structure
662 * Remove ipconfig and %config; you should use _ip.options structure
657 directly instead!
663 directly instead!
658
664
659 * genutils.py: add wrap_deprecated function for deprecating callables
665 * genutils.py: add wrap_deprecated function for deprecating callables
660
666
661 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
667 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
662 _ip.system instead. ipalias is redundant.
668 _ip.system instead. ipalias is redundant.
663
669
664 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
670 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
665 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
671 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
666 explicit.
672 explicit.
667
673
668 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
674 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
669 completer. Try it by entering 'hg ' and pressing tab.
675 completer. Try it by entering 'hg ' and pressing tab.
670
676
671 * macro.py: Give Macro a useful __repr__ method
677 * macro.py: Give Macro a useful __repr__ method
672
678
673 * Magic.py: %whos abbreviates the typename of Macro for brevity.
679 * Magic.py: %whos abbreviates the typename of Macro for brevity.
674
680
675 2006-11-24 Walter Doerwald <walter@livinglogic.de>
681 2006-11-24 Walter Doerwald <walter@livinglogic.de>
676 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
682 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
677 we don't get a duplicate ipipe module, where registration of the xrepr
683 we don't get a duplicate ipipe module, where registration of the xrepr
678 implementation for Text is useless.
684 implementation for Text is useless.
679
685
680 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
686 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
681
687
682 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
688 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
683
689
684 2006-11-24 Ville Vainio <vivainio@gmail.com>
690 2006-11-24 Ville Vainio <vivainio@gmail.com>
685
691
686 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
692 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
687 try to use "cProfile" instead of the slower pure python
693 try to use "cProfile" instead of the slower pure python
688 "profile"
694 "profile"
689
695
690 2006-11-23 Ville Vainio <vivainio@gmail.com>
696 2006-11-23 Ville Vainio <vivainio@gmail.com>
691
697
692 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
698 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
693 Qt+IPython+Designer link in documentation.
699 Qt+IPython+Designer link in documentation.
694
700
695 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
701 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
696 correct Pdb object to %pydb.
702 correct Pdb object to %pydb.
697
703
698
704
699 2006-11-22 Walter Doerwald <walter@livinglogic.de>
705 2006-11-22 Walter Doerwald <walter@livinglogic.de>
700 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
706 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
701 generic xrepr(), otherwise the list implementation would kick in.
707 generic xrepr(), otherwise the list implementation would kick in.
702
708
703 2006-11-21 Ville Vainio <vivainio@gmail.com>
709 2006-11-21 Ville Vainio <vivainio@gmail.com>
704
710
705 * upgrade_dir.py: Now actually overwrites a nonmodified user file
711 * upgrade_dir.py: Now actually overwrites a nonmodified user file
706 with one from UserConfig.
712 with one from UserConfig.
707
713
708 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
714 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
709 it was missing which broke the sh profile.
715 it was missing which broke the sh profile.
710
716
711 * completer.py: file completer now uses explicit '/' instead
717 * completer.py: file completer now uses explicit '/' instead
712 of os.path.join, expansion of 'foo' was broken on win32
718 of os.path.join, expansion of 'foo' was broken on win32
713 if there was one directory with name 'foobar'.
719 if there was one directory with name 'foobar'.
714
720
715 * A bunch of patches from Kirill Smelkov:
721 * A bunch of patches from Kirill Smelkov:
716
722
717 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
723 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
718
724
719 * [patch 7/9] Implement %page -r (page in raw mode) -
725 * [patch 7/9] Implement %page -r (page in raw mode) -
720
726
721 * [patch 5/9] ScientificPython webpage has moved
727 * [patch 5/9] ScientificPython webpage has moved
722
728
723 * [patch 4/9] The manual mentions %ds, should be %dhist
729 * [patch 4/9] The manual mentions %ds, should be %dhist
724
730
725 * [patch 3/9] Kill old bits from %prun doc.
731 * [patch 3/9] Kill old bits from %prun doc.
726
732
727 * [patch 1/9] Fix typos here and there.
733 * [patch 1/9] Fix typos here and there.
728
734
729 2006-11-08 Ville Vainio <vivainio@gmail.com>
735 2006-11-08 Ville Vainio <vivainio@gmail.com>
730
736
731 * completer.py (attr_matches): catch all exceptions raised
737 * completer.py (attr_matches): catch all exceptions raised
732 by eval of expr with dots.
738 by eval of expr with dots.
733
739
734 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
740 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
735
741
736 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
742 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
737 input if it starts with whitespace. This allows you to paste
743 input if it starts with whitespace. This allows you to paste
738 indented input from any editor without manually having to type in
744 indented input from any editor without manually having to type in
739 the 'if 1:', which is convenient when working interactively.
745 the 'if 1:', which is convenient when working interactively.
740 Slightly modifed version of a patch by Bo Peng
746 Slightly modifed version of a patch by Bo Peng
741 <bpeng-AT-rice.edu>.
747 <bpeng-AT-rice.edu>.
742
748
743 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
749 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
744
750
745 * IPython/irunner.py (main): modified irunner so it automatically
751 * IPython/irunner.py (main): modified irunner so it automatically
746 recognizes the right runner to use based on the extension (.py for
752 recognizes the right runner to use based on the extension (.py for
747 python, .ipy for ipython and .sage for sage).
753 python, .ipy for ipython and .sage for sage).
748
754
749 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
755 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
750 visible in ipapi as ip.config(), to programatically control the
756 visible in ipapi as ip.config(), to programatically control the
751 internal rc object. There's an accompanying %config magic for
757 internal rc object. There's an accompanying %config magic for
752 interactive use, which has been enhanced to match the
758 interactive use, which has been enhanced to match the
753 funtionality in ipconfig.
759 funtionality in ipconfig.
754
760
755 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
761 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
756 so it's not just a toggle, it now takes an argument. Add support
762 so it's not just a toggle, it now takes an argument. Add support
757 for a customizable header when making system calls, as the new
763 for a customizable header when making system calls, as the new
758 system_header variable in the ipythonrc file.
764 system_header variable in the ipythonrc file.
759
765
760 2006-11-03 Walter Doerwald <walter@livinglogic.de>
766 2006-11-03 Walter Doerwald <walter@livinglogic.de>
761
767
762 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
768 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
763 generic functions (using Philip J. Eby's simplegeneric package).
769 generic functions (using Philip J. Eby's simplegeneric package).
764 This makes it possible to customize the display of third-party classes
770 This makes it possible to customize the display of third-party classes
765 without having to monkeypatch them. xiter() no longer supports a mode
771 without having to monkeypatch them. xiter() no longer supports a mode
766 argument and the XMode class has been removed. The same functionality can
772 argument and the XMode class has been removed. The same functionality can
767 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
773 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
768 One consequence of the switch to generic functions is that xrepr() and
774 One consequence of the switch to generic functions is that xrepr() and
769 xattrs() implementation must define the default value for the mode
775 xattrs() implementation must define the default value for the mode
770 argument themselves and xattrs() implementations must return real
776 argument themselves and xattrs() implementations must return real
771 descriptors.
777 descriptors.
772
778
773 * IPython/external: This new subpackage will contain all third-party
779 * IPython/external: This new subpackage will contain all third-party
774 packages that are bundled with IPython. (The first one is simplegeneric).
780 packages that are bundled with IPython. (The first one is simplegeneric).
775
781
776 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
782 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
777 directory which as been dropped in r1703.
783 directory which as been dropped in r1703.
778
784
779 * IPython/Extensions/ipipe.py (iless): Fixed.
785 * IPython/Extensions/ipipe.py (iless): Fixed.
780
786
781 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
787 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
782
788
783 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
789 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
784
790
785 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
791 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
786 handling in variable expansion so that shells and magics recognize
792 handling in variable expansion so that shells and magics recognize
787 function local scopes correctly. Bug reported by Brian.
793 function local scopes correctly. Bug reported by Brian.
788
794
789 * scripts/ipython: remove the very first entry in sys.path which
795 * scripts/ipython: remove the very first entry in sys.path which
790 Python auto-inserts for scripts, so that sys.path under IPython is
796 Python auto-inserts for scripts, so that sys.path under IPython is
791 as similar as possible to that under plain Python.
797 as similar as possible to that under plain Python.
792
798
793 * IPython/completer.py (IPCompleter.file_matches): Fix
799 * IPython/completer.py (IPCompleter.file_matches): Fix
794 tab-completion so that quotes are not closed unless the completion
800 tab-completion so that quotes are not closed unless the completion
795 is unambiguous. After a request by Stefan. Minor cleanups in
801 is unambiguous. After a request by Stefan. Minor cleanups in
796 ipy_stock_completers.
802 ipy_stock_completers.
797
803
798 2006-11-02 Ville Vainio <vivainio@gmail.com>
804 2006-11-02 Ville Vainio <vivainio@gmail.com>
799
805
800 * ipy_stock_completers.py: Add %run and %cd completers.
806 * ipy_stock_completers.py: Add %run and %cd completers.
801
807
802 * completer.py: Try running custom completer for both
808 * completer.py: Try running custom completer for both
803 "foo" and "%foo" if the command is just "foo". Ignore case
809 "foo" and "%foo" if the command is just "foo". Ignore case
804 when filtering possible completions.
810 when filtering possible completions.
805
811
806 * UserConfig/ipy_user_conf.py: install stock completers as default
812 * UserConfig/ipy_user_conf.py: install stock completers as default
807
813
808 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
814 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
809 simplified readline history save / restore through a wrapper
815 simplified readline history save / restore through a wrapper
810 function
816 function
811
817
812
818
813 2006-10-31 Ville Vainio <vivainio@gmail.com>
819 2006-10-31 Ville Vainio <vivainio@gmail.com>
814
820
815 * strdispatch.py, completer.py, ipy_stock_completers.py:
821 * strdispatch.py, completer.py, ipy_stock_completers.py:
816 Allow str_key ("command") in completer hooks. Implement
822 Allow str_key ("command") in completer hooks. Implement
817 trivial completer for 'import' (stdlib modules only). Rename
823 trivial completer for 'import' (stdlib modules only). Rename
818 ipy_linux_package_managers.py to ipy_stock_completers.py.
824 ipy_linux_package_managers.py to ipy_stock_completers.py.
819 SVN completer.
825 SVN completer.
820
826
821 * Extensions/ledit.py: %magic line editor for easily and
827 * Extensions/ledit.py: %magic line editor for easily and
822 incrementally manipulating lists of strings. The magic command
828 incrementally manipulating lists of strings. The magic command
823 name is %led.
829 name is %led.
824
830
825 2006-10-30 Ville Vainio <vivainio@gmail.com>
831 2006-10-30 Ville Vainio <vivainio@gmail.com>
826
832
827 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
833 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
828 Bernsteins's patches for pydb integration.
834 Bernsteins's patches for pydb integration.
829 http://bashdb.sourceforge.net/pydb/
835 http://bashdb.sourceforge.net/pydb/
830
836
831 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
837 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
832 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
838 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
833 custom completer hook to allow the users to implement their own
839 custom completer hook to allow the users to implement their own
834 completers. See ipy_linux_package_managers.py for example. The
840 completers. See ipy_linux_package_managers.py for example. The
835 hook name is 'complete_command'.
841 hook name is 'complete_command'.
836
842
837 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
843 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
838
844
839 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
845 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
840 Numeric leftovers.
846 Numeric leftovers.
841
847
842 * ipython.el (py-execute-region): apply Stefan's patch to fix
848 * ipython.el (py-execute-region): apply Stefan's patch to fix
843 garbled results if the python shell hasn't been previously started.
849 garbled results if the python shell hasn't been previously started.
844
850
845 * IPython/genutils.py (arg_split): moved to genutils, since it's a
851 * IPython/genutils.py (arg_split): moved to genutils, since it's a
846 pretty generic function and useful for other things.
852 pretty generic function and useful for other things.
847
853
848 * IPython/OInspect.py (getsource): Add customizable source
854 * IPython/OInspect.py (getsource): Add customizable source
849 extractor. After a request/patch form W. Stein (SAGE).
855 extractor. After a request/patch form W. Stein (SAGE).
850
856
851 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
857 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
852 window size to a more reasonable value from what pexpect does,
858 window size to a more reasonable value from what pexpect does,
853 since their choice causes wrapping bugs with long input lines.
859 since their choice causes wrapping bugs with long input lines.
854
860
855 2006-10-28 Ville Vainio <vivainio@gmail.com>
861 2006-10-28 Ville Vainio <vivainio@gmail.com>
856
862
857 * Magic.py (%run): Save and restore the readline history from
863 * Magic.py (%run): Save and restore the readline history from
858 file around %run commands to prevent side effects from
864 file around %run commands to prevent side effects from
859 %runned programs that might use readline (e.g. pydb).
865 %runned programs that might use readline (e.g. pydb).
860
866
861 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
867 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
862 invoking the pydb enhanced debugger.
868 invoking the pydb enhanced debugger.
863
869
864 2006-10-23 Walter Doerwald <walter@livinglogic.de>
870 2006-10-23 Walter Doerwald <walter@livinglogic.de>
865
871
866 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
872 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
867 call the base class method and propagate the return value to
873 call the base class method and propagate the return value to
868 ifile. This is now done by path itself.
874 ifile. This is now done by path itself.
869
875
870 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
876 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
871
877
872 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
878 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
873 api: set_crash_handler(), to expose the ability to change the
879 api: set_crash_handler(), to expose the ability to change the
874 internal crash handler.
880 internal crash handler.
875
881
876 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
882 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
877 the various parameters of the crash handler so that apps using
883 the various parameters of the crash handler so that apps using
878 IPython as their engine can customize crash handling. Ipmlemented
884 IPython as their engine can customize crash handling. Ipmlemented
879 at the request of SAGE.
885 at the request of SAGE.
880
886
881 2006-10-14 Ville Vainio <vivainio@gmail.com>
887 2006-10-14 Ville Vainio <vivainio@gmail.com>
882
888
883 * Magic.py, ipython.el: applied first "safe" part of Rocky
889 * Magic.py, ipython.el: applied first "safe" part of Rocky
884 Bernstein's patch set for pydb integration.
890 Bernstein's patch set for pydb integration.
885
891
886 * Magic.py (%unalias, %alias): %store'd aliases can now be
892 * Magic.py (%unalias, %alias): %store'd aliases can now be
887 removed with '%unalias'. %alias w/o args now shows most
893 removed with '%unalias'. %alias w/o args now shows most
888 interesting (stored / manually defined) aliases last
894 interesting (stored / manually defined) aliases last
889 where they catch the eye w/o scrolling.
895 where they catch the eye w/o scrolling.
890
896
891 * Magic.py (%rehashx), ext_rehashdir.py: files with
897 * Magic.py (%rehashx), ext_rehashdir.py: files with
892 'py' extension are always considered executable, even
898 'py' extension are always considered executable, even
893 when not in PATHEXT environment variable.
899 when not in PATHEXT environment variable.
894
900
895 2006-10-12 Ville Vainio <vivainio@gmail.com>
901 2006-10-12 Ville Vainio <vivainio@gmail.com>
896
902
897 * jobctrl.py: Add new "jobctrl" extension for spawning background
903 * jobctrl.py: Add new "jobctrl" extension for spawning background
898 processes with "&find /". 'import jobctrl' to try it out. Requires
904 processes with "&find /". 'import jobctrl' to try it out. Requires
899 'subprocess' module, standard in python 2.4+.
905 'subprocess' module, standard in python 2.4+.
900
906
901 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
907 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
902 so if foo -> bar and bar -> baz, then foo -> baz.
908 so if foo -> bar and bar -> baz, then foo -> baz.
903
909
904 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
910 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
905
911
906 * IPython/Magic.py (Magic.parse_options): add a new posix option
912 * IPython/Magic.py (Magic.parse_options): add a new posix option
907 to allow parsing of input args in magics that doesn't strip quotes
913 to allow parsing of input args in magics that doesn't strip quotes
908 (if posix=False). This also closes %timeit bug reported by
914 (if posix=False). This also closes %timeit bug reported by
909 Stefan.
915 Stefan.
910
916
911 2006-10-03 Ville Vainio <vivainio@gmail.com>
917 2006-10-03 Ville Vainio <vivainio@gmail.com>
912
918
913 * iplib.py (raw_input, interact): Return ValueError catching for
919 * iplib.py (raw_input, interact): Return ValueError catching for
914 raw_input. Fixes infinite loop for sys.stdin.close() or
920 raw_input. Fixes infinite loop for sys.stdin.close() or
915 sys.stdout.close().
921 sys.stdout.close().
916
922
917 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
923 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
918
924
919 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
925 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
920 to help in handling doctests. irunner is now pretty useful for
926 to help in handling doctests. irunner is now pretty useful for
921 running standalone scripts and simulate a full interactive session
927 running standalone scripts and simulate a full interactive session
922 in a format that can be then pasted as a doctest.
928 in a format that can be then pasted as a doctest.
923
929
924 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
930 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
925 on top of the default (useless) ones. This also fixes the nasty
931 on top of the default (useless) ones. This also fixes the nasty
926 way in which 2.5's Quitter() exits (reverted [1785]).
932 way in which 2.5's Quitter() exits (reverted [1785]).
927
933
928 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
934 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
929 2.5.
935 2.5.
930
936
931 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
937 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
932 color scheme is updated as well when color scheme is changed
938 color scheme is updated as well when color scheme is changed
933 interactively.
939 interactively.
934
940
935 2006-09-27 Ville Vainio <vivainio@gmail.com>
941 2006-09-27 Ville Vainio <vivainio@gmail.com>
936
942
937 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
943 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
938 infinite loop and just exit. It's a hack, but will do for a while.
944 infinite loop and just exit. It's a hack, but will do for a while.
939
945
940 2006-08-25 Walter Doerwald <walter@livinglogic.de>
946 2006-08-25 Walter Doerwald <walter@livinglogic.de>
941
947
942 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
948 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
943 the constructor, this makes it possible to get a list of only directories
949 the constructor, this makes it possible to get a list of only directories
944 or only files.
950 or only files.
945
951
946 2006-08-12 Ville Vainio <vivainio@gmail.com>
952 2006-08-12 Ville Vainio <vivainio@gmail.com>
947
953
948 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
954 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
949 they broke unittest
955 they broke unittest
950
956
951 2006-08-11 Ville Vainio <vivainio@gmail.com>
957 2006-08-11 Ville Vainio <vivainio@gmail.com>
952
958
953 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
959 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
954 by resolving issue properly, i.e. by inheriting FakeModule
960 by resolving issue properly, i.e. by inheriting FakeModule
955 from types.ModuleType. Pickling ipython interactive data
961 from types.ModuleType. Pickling ipython interactive data
956 should still work as usual (testing appreciated).
962 should still work as usual (testing appreciated).
957
963
958 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
964 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
959
965
960 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
966 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
961 running under python 2.3 with code from 2.4 to fix a bug with
967 running under python 2.3 with code from 2.4 to fix a bug with
962 help(). Reported by the Debian maintainers, Norbert Tretkowski
968 help(). Reported by the Debian maintainers, Norbert Tretkowski
963 <norbert-AT-tretkowski.de> and Alexandre Fayolle
969 <norbert-AT-tretkowski.de> and Alexandre Fayolle
964 <afayolle-AT-debian.org>.
970 <afayolle-AT-debian.org>.
965
971
966 2006-08-04 Walter Doerwald <walter@livinglogic.de>
972 2006-08-04 Walter Doerwald <walter@livinglogic.de>
967
973
968 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
974 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
969 (which was displaying "quit" twice).
975 (which was displaying "quit" twice).
970
976
971 2006-07-28 Walter Doerwald <walter@livinglogic.de>
977 2006-07-28 Walter Doerwald <walter@livinglogic.de>
972
978
973 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
979 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
974 the mode argument).
980 the mode argument).
975
981
976 2006-07-27 Walter Doerwald <walter@livinglogic.de>
982 2006-07-27 Walter Doerwald <walter@livinglogic.de>
977
983
978 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
984 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
979 not running under IPython.
985 not running under IPython.
980
986
981 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
987 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
982 and make it iterable (iterating over the attribute itself). Add two new
988 and make it iterable (iterating over the attribute itself). Add two new
983 magic strings for __xattrs__(): If the string starts with "-", the attribute
989 magic strings for __xattrs__(): If the string starts with "-", the attribute
984 will not be displayed in ibrowse's detail view (but it can still be
990 will not be displayed in ibrowse's detail view (but it can still be
985 iterated over). This makes it possible to add attributes that are large
991 iterated over). This makes it possible to add attributes that are large
986 lists or generator methods to the detail view. Replace magic attribute names
992 lists or generator methods to the detail view. Replace magic attribute names
987 and _attrname() and _getattr() with "descriptors": For each type of magic
993 and _attrname() and _getattr() with "descriptors": For each type of magic
988 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
994 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
989 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
995 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
990 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
996 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
991 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
997 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
992 are still supported.
998 are still supported.
993
999
994 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1000 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
995 fails in ibrowse.fetch(), the exception object is added as the last item
1001 fails in ibrowse.fetch(), the exception object is added as the last item
996 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1002 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
997 a generator throws an exception midway through execution.
1003 a generator throws an exception midway through execution.
998
1004
999 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1005 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1000 encoding into methods.
1006 encoding into methods.
1001
1007
1002 2006-07-26 Ville Vainio <vivainio@gmail.com>
1008 2006-07-26 Ville Vainio <vivainio@gmail.com>
1003
1009
1004 * iplib.py: history now stores multiline input as single
1010 * iplib.py: history now stores multiline input as single
1005 history entries. Patch by Jorgen Cederlof.
1011 history entries. Patch by Jorgen Cederlof.
1006
1012
1007 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1013 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1008
1014
1009 * IPython/Extensions/ibrowse.py: Make cursor visible over
1015 * IPython/Extensions/ibrowse.py: Make cursor visible over
1010 non existing attributes.
1016 non existing attributes.
1011
1017
1012 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1018 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1013
1019
1014 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1020 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1015 error output of the running command doesn't mess up the screen.
1021 error output of the running command doesn't mess up the screen.
1016
1022
1017 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1023 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1018
1024
1019 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1025 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1020 argument. This sorts the items themselves.
1026 argument. This sorts the items themselves.
1021
1027
1022 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1028 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1023
1029
1024 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1030 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1025 Compile expression strings into code objects. This should speed
1031 Compile expression strings into code objects. This should speed
1026 up ifilter and friends somewhat.
1032 up ifilter and friends somewhat.
1027
1033
1028 2006-07-08 Ville Vainio <vivainio@gmail.com>
1034 2006-07-08 Ville Vainio <vivainio@gmail.com>
1029
1035
1030 * Magic.py: %cpaste now strips > from the beginning of lines
1036 * Magic.py: %cpaste now strips > from the beginning of lines
1031 to ease pasting quoted code from emails. Contributed by
1037 to ease pasting quoted code from emails. Contributed by
1032 Stefan van der Walt.
1038 Stefan van der Walt.
1033
1039
1034 2006-06-29 Ville Vainio <vivainio@gmail.com>
1040 2006-06-29 Ville Vainio <vivainio@gmail.com>
1035
1041
1036 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1042 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1037 mode, patch contributed by Darren Dale. NEEDS TESTING!
1043 mode, patch contributed by Darren Dale. NEEDS TESTING!
1038
1044
1039 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1045 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1040
1046
1041 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1047 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1042 a blue background. Fix fetching new display rows when the browser
1048 a blue background. Fix fetching new display rows when the browser
1043 scrolls more than a screenful (e.g. by using the goto command).
1049 scrolls more than a screenful (e.g. by using the goto command).
1044
1050
1045 2006-06-27 Ville Vainio <vivainio@gmail.com>
1051 2006-06-27 Ville Vainio <vivainio@gmail.com>
1046
1052
1047 * Magic.py (_inspect, _ofind) Apply David Huard's
1053 * Magic.py (_inspect, _ofind) Apply David Huard's
1048 patch for displaying the correct docstring for 'property'
1054 patch for displaying the correct docstring for 'property'
1049 attributes.
1055 attributes.
1050
1056
1051 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1057 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1052
1058
1053 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1059 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1054 commands into the methods implementing them.
1060 commands into the methods implementing them.
1055
1061
1056 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1062 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1057
1063
1058 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1064 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1059 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1065 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1060 autoindent support was authored by Jin Liu.
1066 autoindent support was authored by Jin Liu.
1061
1067
1062 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1068 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1063
1069
1064 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1070 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1065 for keymaps with a custom class that simplifies handling.
1071 for keymaps with a custom class that simplifies handling.
1066
1072
1067 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1073 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1068
1074
1069 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1075 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1070 resizing. This requires Python 2.5 to work.
1076 resizing. This requires Python 2.5 to work.
1071
1077
1072 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1078 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1073
1079
1074 * IPython/Extensions/ibrowse.py: Add two new commands to
1080 * IPython/Extensions/ibrowse.py: Add two new commands to
1075 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1081 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1076 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1082 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1077 attributes again. Remapped the help command to "?". Display
1083 attributes again. Remapped the help command to "?". Display
1078 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1084 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1079 as keys for the "home" and "end" commands. Add three new commands
1085 as keys for the "home" and "end" commands. Add three new commands
1080 to the input mode for "find" and friends: "delend" (CTRL-K)
1086 to the input mode for "find" and friends: "delend" (CTRL-K)
1081 deletes to the end of line. "incsearchup" searches upwards in the
1087 deletes to the end of line. "incsearchup" searches upwards in the
1082 command history for an input that starts with the text before the cursor.
1088 command history for an input that starts with the text before the cursor.
1083 "incsearchdown" does the same downwards. Removed a bogus mapping of
1089 "incsearchdown" does the same downwards. Removed a bogus mapping of
1084 the x key to "delete".
1090 the x key to "delete".
1085
1091
1086 2006-06-15 Ville Vainio <vivainio@gmail.com>
1092 2006-06-15 Ville Vainio <vivainio@gmail.com>
1087
1093
1088 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1094 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1089 used to create prompts dynamically, instead of the "old" way of
1095 used to create prompts dynamically, instead of the "old" way of
1090 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1096 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1091 way still works (it's invoked by the default hook), of course.
1097 way still works (it's invoked by the default hook), of course.
1092
1098
1093 * Prompts.py: added generate_output_prompt hook for altering output
1099 * Prompts.py: added generate_output_prompt hook for altering output
1094 prompt
1100 prompt
1095
1101
1096 * Release.py: Changed version string to 0.7.3.svn.
1102 * Release.py: Changed version string to 0.7.3.svn.
1097
1103
1098 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1104 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1099
1105
1100 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1106 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1101 the call to fetch() always tries to fetch enough data for at least one
1107 the call to fetch() always tries to fetch enough data for at least one
1102 full screen. This makes it possible to simply call moveto(0,0,True) in
1108 full screen. This makes it possible to simply call moveto(0,0,True) in
1103 the constructor. Fix typos and removed the obsolete goto attribute.
1109 the constructor. Fix typos and removed the obsolete goto attribute.
1104
1110
1105 2006-06-12 Ville Vainio <vivainio@gmail.com>
1111 2006-06-12 Ville Vainio <vivainio@gmail.com>
1106
1112
1107 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1113 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1108 allowing $variable interpolation within multiline statements,
1114 allowing $variable interpolation within multiline statements,
1109 though so far only with "sh" profile for a testing period.
1115 though so far only with "sh" profile for a testing period.
1110 The patch also enables splitting long commands with \ but it
1116 The patch also enables splitting long commands with \ but it
1111 doesn't work properly yet.
1117 doesn't work properly yet.
1112
1118
1113 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1119 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1114
1120
1115 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1121 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1116 input history and the position of the cursor in the input history for
1122 input history and the position of the cursor in the input history for
1117 the find, findbackwards and goto command.
1123 the find, findbackwards and goto command.
1118
1124
1119 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1125 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1120
1126
1121 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1127 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1122 implements the basic functionality of browser commands that require
1128 implements the basic functionality of browser commands that require
1123 input. Reimplement the goto, find and findbackwards commands as
1129 input. Reimplement the goto, find and findbackwards commands as
1124 subclasses of _CommandInput. Add an input history and keymaps to those
1130 subclasses of _CommandInput. Add an input history and keymaps to those
1125 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1131 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1126 execute commands.
1132 execute commands.
1127
1133
1128 2006-06-07 Ville Vainio <vivainio@gmail.com>
1134 2006-06-07 Ville Vainio <vivainio@gmail.com>
1129
1135
1130 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1136 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1131 running the batch files instead of leaving the session open.
1137 running the batch files instead of leaving the session open.
1132
1138
1133 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1139 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1134
1140
1135 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1141 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1136 the original fix was incomplete. Patch submitted by W. Maier.
1142 the original fix was incomplete. Patch submitted by W. Maier.
1137
1143
1138 2006-06-07 Ville Vainio <vivainio@gmail.com>
1144 2006-06-07 Ville Vainio <vivainio@gmail.com>
1139
1145
1140 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1146 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1141 Confirmation prompts can be supressed by 'quiet' option.
1147 Confirmation prompts can be supressed by 'quiet' option.
1142 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1148 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1143
1149
1144 2006-06-06 *** Released version 0.7.2
1150 2006-06-06 *** Released version 0.7.2
1145
1151
1146 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1152 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1147
1153
1148 * IPython/Release.py (version): Made 0.7.2 final for release.
1154 * IPython/Release.py (version): Made 0.7.2 final for release.
1149 Repo tagged and release cut.
1155 Repo tagged and release cut.
1150
1156
1151 2006-06-05 Ville Vainio <vivainio@gmail.com>
1157 2006-06-05 Ville Vainio <vivainio@gmail.com>
1152
1158
1153 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1159 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1154 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1160 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1155
1161
1156 * upgrade_dir.py: try import 'path' module a bit harder
1162 * upgrade_dir.py: try import 'path' module a bit harder
1157 (for %upgrade)
1163 (for %upgrade)
1158
1164
1159 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1165 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1160
1166
1161 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1167 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1162 instead of looping 20 times.
1168 instead of looping 20 times.
1163
1169
1164 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1170 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1165 correctly at initialization time. Bug reported by Krishna Mohan
1171 correctly at initialization time. Bug reported by Krishna Mohan
1166 Gundu <gkmohan-AT-gmail.com> on the user list.
1172 Gundu <gkmohan-AT-gmail.com> on the user list.
1167
1173
1168 * IPython/Release.py (version): Mark 0.7.2 version to start
1174 * IPython/Release.py (version): Mark 0.7.2 version to start
1169 testing for release on 06/06.
1175 testing for release on 06/06.
1170
1176
1171 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1177 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1172
1178
1173 * scripts/irunner: thin script interface so users don't have to
1179 * scripts/irunner: thin script interface so users don't have to
1174 find the module and call it as an executable, since modules rarely
1180 find the module and call it as an executable, since modules rarely
1175 live in people's PATH.
1181 live in people's PATH.
1176
1182
1177 * IPython/irunner.py (InteractiveRunner.__init__): added
1183 * IPython/irunner.py (InteractiveRunner.__init__): added
1178 delaybeforesend attribute to control delays with newer versions of
1184 delaybeforesend attribute to control delays with newer versions of
1179 pexpect. Thanks to detailed help from pexpect's author, Noah
1185 pexpect. Thanks to detailed help from pexpect's author, Noah
1180 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1186 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1181 correctly (it works in NoColor mode).
1187 correctly (it works in NoColor mode).
1182
1188
1183 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1189 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1184 SAGE list, from improper log() calls.
1190 SAGE list, from improper log() calls.
1185
1191
1186 2006-05-31 Ville Vainio <vivainio@gmail.com>
1192 2006-05-31 Ville Vainio <vivainio@gmail.com>
1187
1193
1188 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1194 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1189 with args in parens to work correctly with dirs that have spaces.
1195 with args in parens to work correctly with dirs that have spaces.
1190
1196
1191 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1197 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1192
1198
1193 * IPython/Logger.py (Logger.logstart): add option to log raw input
1199 * IPython/Logger.py (Logger.logstart): add option to log raw input
1194 instead of the processed one. A -r flag was added to the
1200 instead of the processed one. A -r flag was added to the
1195 %logstart magic used for controlling logging.
1201 %logstart magic used for controlling logging.
1196
1202
1197 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1203 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1198
1204
1199 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1205 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1200 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1206 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1201 recognize the option. After a bug report by Will Maier. This
1207 recognize the option. After a bug report by Will Maier. This
1202 closes #64 (will do it after confirmation from W. Maier).
1208 closes #64 (will do it after confirmation from W. Maier).
1203
1209
1204 * IPython/irunner.py: New module to run scripts as if manually
1210 * IPython/irunner.py: New module to run scripts as if manually
1205 typed into an interactive environment, based on pexpect. After a
1211 typed into an interactive environment, based on pexpect. After a
1206 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1212 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1207 ipython-user list. Simple unittests in the tests/ directory.
1213 ipython-user list. Simple unittests in the tests/ directory.
1208
1214
1209 * tools/release: add Will Maier, OpenBSD port maintainer, to
1215 * tools/release: add Will Maier, OpenBSD port maintainer, to
1210 recepients list. We are now officially part of the OpenBSD ports:
1216 recepients list. We are now officially part of the OpenBSD ports:
1211 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1217 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1212 work.
1218 work.
1213
1219
1214 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1220 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1215
1221
1216 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1222 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1217 so that it doesn't break tkinter apps.
1223 so that it doesn't break tkinter apps.
1218
1224
1219 * IPython/iplib.py (_prefilter): fix bug where aliases would
1225 * IPython/iplib.py (_prefilter): fix bug where aliases would
1220 shadow variables when autocall was fully off. Reported by SAGE
1226 shadow variables when autocall was fully off. Reported by SAGE
1221 author William Stein.
1227 author William Stein.
1222
1228
1223 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1229 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1224 at what detail level strings are computed when foo? is requested.
1230 at what detail level strings are computed when foo? is requested.
1225 This allows users to ask for example that the string form of an
1231 This allows users to ask for example that the string form of an
1226 object is only computed when foo?? is called, or even never, by
1232 object is only computed when foo?? is called, or even never, by
1227 setting the object_info_string_level >= 2 in the configuration
1233 setting the object_info_string_level >= 2 in the configuration
1228 file. This new option has been added and documented. After a
1234 file. This new option has been added and documented. After a
1229 request by SAGE to be able to control the printing of very large
1235 request by SAGE to be able to control the printing of very large
1230 objects more easily.
1236 objects more easily.
1231
1237
1232 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1238 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1233
1239
1234 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1240 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1235 from sys.argv, to be 100% consistent with how Python itself works
1241 from sys.argv, to be 100% consistent with how Python itself works
1236 (as seen for example with python -i file.py). After a bug report
1242 (as seen for example with python -i file.py). After a bug report
1237 by Jeffrey Collins.
1243 by Jeffrey Collins.
1238
1244
1239 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1245 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1240 nasty bug which was preventing custom namespaces with -pylab,
1246 nasty bug which was preventing custom namespaces with -pylab,
1241 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1247 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1242 compatibility (long gone from mpl).
1248 compatibility (long gone from mpl).
1243
1249
1244 * IPython/ipapi.py (make_session): name change: create->make. We
1250 * IPython/ipapi.py (make_session): name change: create->make. We
1245 use make in other places (ipmaker,...), it's shorter and easier to
1251 use make in other places (ipmaker,...), it's shorter and easier to
1246 type and say, etc. I'm trying to clean things before 0.7.2 so
1252 type and say, etc. I'm trying to clean things before 0.7.2 so
1247 that I can keep things stable wrt to ipapi in the chainsaw branch.
1253 that I can keep things stable wrt to ipapi in the chainsaw branch.
1248
1254
1249 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1255 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1250 python-mode recognizes our debugger mode. Add support for
1256 python-mode recognizes our debugger mode. Add support for
1251 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1257 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1252 <m.liu.jin-AT-gmail.com> originally written by
1258 <m.liu.jin-AT-gmail.com> originally written by
1253 doxgen-AT-newsmth.net (with minor modifications for xemacs
1259 doxgen-AT-newsmth.net (with minor modifications for xemacs
1254 compatibility)
1260 compatibility)
1255
1261
1256 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1262 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1257 tracebacks when walking the stack so that the stack tracking system
1263 tracebacks when walking the stack so that the stack tracking system
1258 in emacs' python-mode can identify the frames correctly.
1264 in emacs' python-mode can identify the frames correctly.
1259
1265
1260 * IPython/ipmaker.py (make_IPython): make the internal (and
1266 * IPython/ipmaker.py (make_IPython): make the internal (and
1261 default config) autoedit_syntax value false by default. Too many
1267 default config) autoedit_syntax value false by default. Too many
1262 users have complained to me (both on and off-list) about problems
1268 users have complained to me (both on and off-list) about problems
1263 with this option being on by default, so I'm making it default to
1269 with this option being on by default, so I'm making it default to
1264 off. It can still be enabled by anyone via the usual mechanisms.
1270 off. It can still be enabled by anyone via the usual mechanisms.
1265
1271
1266 * IPython/completer.py (Completer.attr_matches): add support for
1272 * IPython/completer.py (Completer.attr_matches): add support for
1267 PyCrust-style _getAttributeNames magic method. Patch contributed
1273 PyCrust-style _getAttributeNames magic method. Patch contributed
1268 by <mscott-AT-goldenspud.com>. Closes #50.
1274 by <mscott-AT-goldenspud.com>. Closes #50.
1269
1275
1270 * IPython/iplib.py (InteractiveShell.__init__): remove the
1276 * IPython/iplib.py (InteractiveShell.__init__): remove the
1271 deletion of exit/quit from __builtin__, which can break
1277 deletion of exit/quit from __builtin__, which can break
1272 third-party tools like the Zope debugging console. The
1278 third-party tools like the Zope debugging console. The
1273 %exit/%quit magics remain. In general, it's probably a good idea
1279 %exit/%quit magics remain. In general, it's probably a good idea
1274 not to delete anything from __builtin__, since we never know what
1280 not to delete anything from __builtin__, since we never know what
1275 that will break. In any case, python now (for 2.5) will support
1281 that will break. In any case, python now (for 2.5) will support
1276 'real' exit/quit, so this issue is moot. Closes #55.
1282 'real' exit/quit, so this issue is moot. Closes #55.
1277
1283
1278 * IPython/genutils.py (with_obj): rename the 'with' function to
1284 * IPython/genutils.py (with_obj): rename the 'with' function to
1279 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1285 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1280 becomes a language keyword. Closes #53.
1286 becomes a language keyword. Closes #53.
1281
1287
1282 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1288 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1283 __file__ attribute to this so it fools more things into thinking
1289 __file__ attribute to this so it fools more things into thinking
1284 it is a real module. Closes #59.
1290 it is a real module. Closes #59.
1285
1291
1286 * IPython/Magic.py (magic_edit): add -n option to open the editor
1292 * IPython/Magic.py (magic_edit): add -n option to open the editor
1287 at a specific line number. After a patch by Stefan van der Walt.
1293 at a specific line number. After a patch by Stefan van der Walt.
1288
1294
1289 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1295 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1290
1296
1291 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1297 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1292 reason the file could not be opened. After automatic crash
1298 reason the file could not be opened. After automatic crash
1293 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1299 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1294 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1300 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1295 (_should_recompile): Don't fire editor if using %bg, since there
1301 (_should_recompile): Don't fire editor if using %bg, since there
1296 is no file in the first place. From the same report as above.
1302 is no file in the first place. From the same report as above.
1297 (raw_input): protect against faulty third-party prefilters. After
1303 (raw_input): protect against faulty third-party prefilters. After
1298 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1304 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1299 while running under SAGE.
1305 while running under SAGE.
1300
1306
1301 2006-05-23 Ville Vainio <vivainio@gmail.com>
1307 2006-05-23 Ville Vainio <vivainio@gmail.com>
1302
1308
1303 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1309 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1304 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1310 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1305 now returns None (again), unless dummy is specifically allowed by
1311 now returns None (again), unless dummy is specifically allowed by
1306 ipapi.get(allow_dummy=True).
1312 ipapi.get(allow_dummy=True).
1307
1313
1308 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1314 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1309
1315
1310 * IPython: remove all 2.2-compatibility objects and hacks from
1316 * IPython: remove all 2.2-compatibility objects and hacks from
1311 everywhere, since we only support 2.3 at this point. Docs
1317 everywhere, since we only support 2.3 at this point. Docs
1312 updated.
1318 updated.
1313
1319
1314 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1320 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1315 Anything requiring extra validation can be turned into a Python
1321 Anything requiring extra validation can be turned into a Python
1316 property in the future. I used a property for the db one b/c
1322 property in the future. I used a property for the db one b/c
1317 there was a nasty circularity problem with the initialization
1323 there was a nasty circularity problem with the initialization
1318 order, which right now I don't have time to clean up.
1324 order, which right now I don't have time to clean up.
1319
1325
1320 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1326 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1321 another locking bug reported by Jorgen. I'm not 100% sure though,
1327 another locking bug reported by Jorgen. I'm not 100% sure though,
1322 so more testing is needed...
1328 so more testing is needed...
1323
1329
1324 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1330 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1325
1331
1326 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1332 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1327 local variables from any routine in user code (typically executed
1333 local variables from any routine in user code (typically executed
1328 with %run) directly into the interactive namespace. Very useful
1334 with %run) directly into the interactive namespace. Very useful
1329 when doing complex debugging.
1335 when doing complex debugging.
1330 (IPythonNotRunning): Changed the default None object to a dummy
1336 (IPythonNotRunning): Changed the default None object to a dummy
1331 whose attributes can be queried as well as called without
1337 whose attributes can be queried as well as called without
1332 exploding, to ease writing code which works transparently both in
1338 exploding, to ease writing code which works transparently both in
1333 and out of ipython and uses some of this API.
1339 and out of ipython and uses some of this API.
1334
1340
1335 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1341 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1336
1342
1337 * IPython/hooks.py (result_display): Fix the fact that our display
1343 * IPython/hooks.py (result_display): Fix the fact that our display
1338 hook was using str() instead of repr(), as the default python
1344 hook was using str() instead of repr(), as the default python
1339 console does. This had gone unnoticed b/c it only happened if
1345 console does. This had gone unnoticed b/c it only happened if
1340 %Pprint was off, but the inconsistency was there.
1346 %Pprint was off, but the inconsistency was there.
1341
1347
1342 2006-05-15 Ville Vainio <vivainio@gmail.com>
1348 2006-05-15 Ville Vainio <vivainio@gmail.com>
1343
1349
1344 * Oinspect.py: Only show docstring for nonexisting/binary files
1350 * Oinspect.py: Only show docstring for nonexisting/binary files
1345 when doing object??, closing ticket #62
1351 when doing object??, closing ticket #62
1346
1352
1347 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1353 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1348
1354
1349 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1355 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1350 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1356 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1351 was being released in a routine which hadn't checked if it had
1357 was being released in a routine which hadn't checked if it had
1352 been the one to acquire it.
1358 been the one to acquire it.
1353
1359
1354 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1360 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1355
1361
1356 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1362 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1357
1363
1358 2006-04-11 Ville Vainio <vivainio@gmail.com>
1364 2006-04-11 Ville Vainio <vivainio@gmail.com>
1359
1365
1360 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1366 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1361 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1367 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1362 prefilters, allowing stuff like magics and aliases in the file.
1368 prefilters, allowing stuff like magics and aliases in the file.
1363
1369
1364 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1370 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1365 added. Supported now are "%clear in" and "%clear out" (clear input and
1371 added. Supported now are "%clear in" and "%clear out" (clear input and
1366 output history, respectively). Also fixed CachedOutput.flush to
1372 output history, respectively). Also fixed CachedOutput.flush to
1367 properly flush the output cache.
1373 properly flush the output cache.
1368
1374
1369 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1375 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1370 half-success (and fail explicitly).
1376 half-success (and fail explicitly).
1371
1377
1372 2006-03-28 Ville Vainio <vivainio@gmail.com>
1378 2006-03-28 Ville Vainio <vivainio@gmail.com>
1373
1379
1374 * iplib.py: Fix quoting of aliases so that only argless ones
1380 * iplib.py: Fix quoting of aliases so that only argless ones
1375 are quoted
1381 are quoted
1376
1382
1377 2006-03-28 Ville Vainio <vivainio@gmail.com>
1383 2006-03-28 Ville Vainio <vivainio@gmail.com>
1378
1384
1379 * iplib.py: Quote aliases with spaces in the name.
1385 * iplib.py: Quote aliases with spaces in the name.
1380 "c:\program files\blah\bin" is now legal alias target.
1386 "c:\program files\blah\bin" is now legal alias target.
1381
1387
1382 * ext_rehashdir.py: Space no longer allowed as arg
1388 * ext_rehashdir.py: Space no longer allowed as arg
1383 separator, since space is legal in path names.
1389 separator, since space is legal in path names.
1384
1390
1385 2006-03-16 Ville Vainio <vivainio@gmail.com>
1391 2006-03-16 Ville Vainio <vivainio@gmail.com>
1386
1392
1387 * upgrade_dir.py: Take path.py from Extensions, correcting
1393 * upgrade_dir.py: Take path.py from Extensions, correcting
1388 %upgrade magic
1394 %upgrade magic
1389
1395
1390 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1396 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1391
1397
1392 * hooks.py: Only enclose editor binary in quotes if legal and
1398 * hooks.py: Only enclose editor binary in quotes if legal and
1393 necessary (space in the name, and is an existing file). Fixes a bug
1399 necessary (space in the name, and is an existing file). Fixes a bug
1394 reported by Zachary Pincus.
1400 reported by Zachary Pincus.
1395
1401
1396 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1402 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1397
1403
1398 * Manual: thanks to a tip on proper color handling for Emacs, by
1404 * Manual: thanks to a tip on proper color handling for Emacs, by
1399 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1405 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1400
1406
1401 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1407 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1402 by applying the provided patch. Thanks to Liu Jin
1408 by applying the provided patch. Thanks to Liu Jin
1403 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1409 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1404 XEmacs/Linux, I'm trusting the submitter that it actually helps
1410 XEmacs/Linux, I'm trusting the submitter that it actually helps
1405 under win32/GNU Emacs. Will revisit if any problems are reported.
1411 under win32/GNU Emacs. Will revisit if any problems are reported.
1406
1412
1407 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1413 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1408
1414
1409 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1415 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1410 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1416 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1411
1417
1412 2006-03-12 Ville Vainio <vivainio@gmail.com>
1418 2006-03-12 Ville Vainio <vivainio@gmail.com>
1413
1419
1414 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1420 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1415 Torsten Marek.
1421 Torsten Marek.
1416
1422
1417 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1423 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1418
1424
1419 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1425 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1420 line ranges works again.
1426 line ranges works again.
1421
1427
1422 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1428 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1423
1429
1424 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1430 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1425 and friends, after a discussion with Zach Pincus on ipython-user.
1431 and friends, after a discussion with Zach Pincus on ipython-user.
1426 I'm not 100% sure, but after thinking about it quite a bit, it may
1432 I'm not 100% sure, but after thinking about it quite a bit, it may
1427 be OK. Testing with the multithreaded shells didn't reveal any
1433 be OK. Testing with the multithreaded shells didn't reveal any
1428 problems, but let's keep an eye out.
1434 problems, but let's keep an eye out.
1429
1435
1430 In the process, I fixed a few things which were calling
1436 In the process, I fixed a few things which were calling
1431 self.InteractiveTB() directly (like safe_execfile), which is a
1437 self.InteractiveTB() directly (like safe_execfile), which is a
1432 mistake: ALL exception reporting should be done by calling
1438 mistake: ALL exception reporting should be done by calling
1433 self.showtraceback(), which handles state and tab-completion and
1439 self.showtraceback(), which handles state and tab-completion and
1434 more.
1440 more.
1435
1441
1436 2006-03-01 Ville Vainio <vivainio@gmail.com>
1442 2006-03-01 Ville Vainio <vivainio@gmail.com>
1437
1443
1438 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1444 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1439 To use, do "from ipipe import *".
1445 To use, do "from ipipe import *".
1440
1446
1441 2006-02-24 Ville Vainio <vivainio@gmail.com>
1447 2006-02-24 Ville Vainio <vivainio@gmail.com>
1442
1448
1443 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1449 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1444 "cleanly" and safely than the older upgrade mechanism.
1450 "cleanly" and safely than the older upgrade mechanism.
1445
1451
1446 2006-02-21 Ville Vainio <vivainio@gmail.com>
1452 2006-02-21 Ville Vainio <vivainio@gmail.com>
1447
1453
1448 * Magic.py: %save works again.
1454 * Magic.py: %save works again.
1449
1455
1450 2006-02-15 Ville Vainio <vivainio@gmail.com>
1456 2006-02-15 Ville Vainio <vivainio@gmail.com>
1451
1457
1452 * Magic.py: %Pprint works again
1458 * Magic.py: %Pprint works again
1453
1459
1454 * Extensions/ipy_sane_defaults.py: Provide everything provided
1460 * Extensions/ipy_sane_defaults.py: Provide everything provided
1455 in default ipythonrc, to make it possible to have a completely empty
1461 in default ipythonrc, to make it possible to have a completely empty
1456 ipythonrc (and thus completely rc-file free configuration)
1462 ipythonrc (and thus completely rc-file free configuration)
1457
1463
1458 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1464 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1459
1465
1460 * IPython/hooks.py (editor): quote the call to the editor command,
1466 * IPython/hooks.py (editor): quote the call to the editor command,
1461 to allow commands with spaces in them. Problem noted by watching
1467 to allow commands with spaces in them. Problem noted by watching
1462 Ian Oswald's video about textpad under win32 at
1468 Ian Oswald's video about textpad under win32 at
1463 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1469 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1464
1470
1465 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1471 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1466 describing magics (we haven't used @ for a loong time).
1472 describing magics (we haven't used @ for a loong time).
1467
1473
1468 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1474 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1469 contributed by marienz to close
1475 contributed by marienz to close
1470 http://www.scipy.net/roundup/ipython/issue53.
1476 http://www.scipy.net/roundup/ipython/issue53.
1471
1477
1472 2006-02-10 Ville Vainio <vivainio@gmail.com>
1478 2006-02-10 Ville Vainio <vivainio@gmail.com>
1473
1479
1474 * genutils.py: getoutput now works in win32 too
1480 * genutils.py: getoutput now works in win32 too
1475
1481
1476 * completer.py: alias and magic completion only invoked
1482 * completer.py: alias and magic completion only invoked
1477 at the first "item" in the line, to avoid "cd %store"
1483 at the first "item" in the line, to avoid "cd %store"
1478 nonsense.
1484 nonsense.
1479
1485
1480 2006-02-09 Ville Vainio <vivainio@gmail.com>
1486 2006-02-09 Ville Vainio <vivainio@gmail.com>
1481
1487
1482 * test/*: Added a unit testing framework (finally).
1488 * test/*: Added a unit testing framework (finally).
1483 '%run runtests.py' to run test_*.
1489 '%run runtests.py' to run test_*.
1484
1490
1485 * ipapi.py: Exposed runlines and set_custom_exc
1491 * ipapi.py: Exposed runlines and set_custom_exc
1486
1492
1487 2006-02-07 Ville Vainio <vivainio@gmail.com>
1493 2006-02-07 Ville Vainio <vivainio@gmail.com>
1488
1494
1489 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1495 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1490 instead use "f(1 2)" as before.
1496 instead use "f(1 2)" as before.
1491
1497
1492 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1498 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1493
1499
1494 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1500 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1495 facilities, for demos processed by the IPython input filter
1501 facilities, for demos processed by the IPython input filter
1496 (IPythonDemo), and for running a script one-line-at-a-time as a
1502 (IPythonDemo), and for running a script one-line-at-a-time as a
1497 demo, both for pure Python (LineDemo) and for IPython-processed
1503 demo, both for pure Python (LineDemo) and for IPython-processed
1498 input (IPythonLineDemo). After a request by Dave Kohel, from the
1504 input (IPythonLineDemo). After a request by Dave Kohel, from the
1499 SAGE team.
1505 SAGE team.
1500 (Demo.edit): added an edit() method to the demo objects, to edit
1506 (Demo.edit): added an edit() method to the demo objects, to edit
1501 the in-memory copy of the last executed block.
1507 the in-memory copy of the last executed block.
1502
1508
1503 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1509 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1504 processing to %edit, %macro and %save. These commands can now be
1510 processing to %edit, %macro and %save. These commands can now be
1505 invoked on the unprocessed input as it was typed by the user
1511 invoked on the unprocessed input as it was typed by the user
1506 (without any prefilters applied). After requests by the SAGE team
1512 (without any prefilters applied). After requests by the SAGE team
1507 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1513 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1508
1514
1509 2006-02-01 Ville Vainio <vivainio@gmail.com>
1515 2006-02-01 Ville Vainio <vivainio@gmail.com>
1510
1516
1511 * setup.py, eggsetup.py: easy_install ipython==dev works
1517 * setup.py, eggsetup.py: easy_install ipython==dev works
1512 correctly now (on Linux)
1518 correctly now (on Linux)
1513
1519
1514 * ipy_user_conf,ipmaker: user config changes, removed spurious
1520 * ipy_user_conf,ipmaker: user config changes, removed spurious
1515 warnings
1521 warnings
1516
1522
1517 * iplib: if rc.banner is string, use it as is.
1523 * iplib: if rc.banner is string, use it as is.
1518
1524
1519 * Magic: %pycat accepts a string argument and pages it's contents.
1525 * Magic: %pycat accepts a string argument and pages it's contents.
1520
1526
1521
1527
1522 2006-01-30 Ville Vainio <vivainio@gmail.com>
1528 2006-01-30 Ville Vainio <vivainio@gmail.com>
1523
1529
1524 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1530 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1525 Now %store and bookmarks work through PickleShare, meaning that
1531 Now %store and bookmarks work through PickleShare, meaning that
1526 concurrent access is possible and all ipython sessions see the
1532 concurrent access is possible and all ipython sessions see the
1527 same database situation all the time, instead of snapshot of
1533 same database situation all the time, instead of snapshot of
1528 the situation when the session was started. Hence, %bookmark
1534 the situation when the session was started. Hence, %bookmark
1529 results are immediately accessible from othes sessions. The database
1535 results are immediately accessible from othes sessions. The database
1530 is also available for use by user extensions. See:
1536 is also available for use by user extensions. See:
1531 http://www.python.org/pypi/pickleshare
1537 http://www.python.org/pypi/pickleshare
1532
1538
1533 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1539 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1534
1540
1535 * aliases can now be %store'd
1541 * aliases can now be %store'd
1536
1542
1537 * path.py moved to Extensions so that pickleshare does not need
1543 * path.py moved to Extensions so that pickleshare does not need
1538 IPython-specific import. Extensions added to pythonpath right
1544 IPython-specific import. Extensions added to pythonpath right
1539 at __init__.
1545 at __init__.
1540
1546
1541 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1547 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1542 called with _ip.system and the pre-transformed command string.
1548 called with _ip.system and the pre-transformed command string.
1543
1549
1544 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1550 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1545
1551
1546 * IPython/iplib.py (interact): Fix that we were not catching
1552 * IPython/iplib.py (interact): Fix that we were not catching
1547 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1553 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1548 logic here had to change, but it's fixed now.
1554 logic here had to change, but it's fixed now.
1549
1555
1550 2006-01-29 Ville Vainio <vivainio@gmail.com>
1556 2006-01-29 Ville Vainio <vivainio@gmail.com>
1551
1557
1552 * iplib.py: Try to import pyreadline on Windows.
1558 * iplib.py: Try to import pyreadline on Windows.
1553
1559
1554 2006-01-27 Ville Vainio <vivainio@gmail.com>
1560 2006-01-27 Ville Vainio <vivainio@gmail.com>
1555
1561
1556 * iplib.py: Expose ipapi as _ip in builtin namespace.
1562 * iplib.py: Expose ipapi as _ip in builtin namespace.
1557 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1563 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1558 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1564 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1559 syntax now produce _ip.* variant of the commands.
1565 syntax now produce _ip.* variant of the commands.
1560
1566
1561 * "_ip.options().autoedit_syntax = 2" automatically throws
1567 * "_ip.options().autoedit_syntax = 2" automatically throws
1562 user to editor for syntax error correction without prompting.
1568 user to editor for syntax error correction without prompting.
1563
1569
1564 2006-01-27 Ville Vainio <vivainio@gmail.com>
1570 2006-01-27 Ville Vainio <vivainio@gmail.com>
1565
1571
1566 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1572 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1567 'ipython' at argv[0]) executed through command line.
1573 'ipython' at argv[0]) executed through command line.
1568 NOTE: this DEPRECATES calling ipython with multiple scripts
1574 NOTE: this DEPRECATES calling ipython with multiple scripts
1569 ("ipython a.py b.py c.py")
1575 ("ipython a.py b.py c.py")
1570
1576
1571 * iplib.py, hooks.py: Added configurable input prefilter,
1577 * iplib.py, hooks.py: Added configurable input prefilter,
1572 named 'input_prefilter'. See ext_rescapture.py for example
1578 named 'input_prefilter'. See ext_rescapture.py for example
1573 usage.
1579 usage.
1574
1580
1575 * ext_rescapture.py, Magic.py: Better system command output capture
1581 * ext_rescapture.py, Magic.py: Better system command output capture
1576 through 'var = !ls' (deprecates user-visible %sc). Same notation
1582 through 'var = !ls' (deprecates user-visible %sc). Same notation
1577 applies for magics, 'var = %alias' assigns alias list to var.
1583 applies for magics, 'var = %alias' assigns alias list to var.
1578
1584
1579 * ipapi.py: added meta() for accessing extension-usable data store.
1585 * ipapi.py: added meta() for accessing extension-usable data store.
1580
1586
1581 * iplib.py: added InteractiveShell.getapi(). New magics should be
1587 * iplib.py: added InteractiveShell.getapi(). New magics should be
1582 written doing self.getapi() instead of using the shell directly.
1588 written doing self.getapi() instead of using the shell directly.
1583
1589
1584 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1590 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1585 %store foo >> ~/myfoo.txt to store variables to files (in clean
1591 %store foo >> ~/myfoo.txt to store variables to files (in clean
1586 textual form, not a restorable pickle).
1592 textual form, not a restorable pickle).
1587
1593
1588 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1594 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1589
1595
1590 * usage.py, Magic.py: added %quickref
1596 * usage.py, Magic.py: added %quickref
1591
1597
1592 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1598 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1593
1599
1594 * GetoptErrors when invoking magics etc. with wrong args
1600 * GetoptErrors when invoking magics etc. with wrong args
1595 are now more helpful:
1601 are now more helpful:
1596 GetoptError: option -l not recognized (allowed: "qb" )
1602 GetoptError: option -l not recognized (allowed: "qb" )
1597
1603
1598 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1604 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1599
1605
1600 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1606 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1601 computationally intensive blocks don't appear to stall the demo.
1607 computationally intensive blocks don't appear to stall the demo.
1602
1608
1603 2006-01-24 Ville Vainio <vivainio@gmail.com>
1609 2006-01-24 Ville Vainio <vivainio@gmail.com>
1604
1610
1605 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1611 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1606 value to manipulate resulting history entry.
1612 value to manipulate resulting history entry.
1607
1613
1608 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1614 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1609 to instance methods of IPApi class, to make extending an embedded
1615 to instance methods of IPApi class, to make extending an embedded
1610 IPython feasible. See ext_rehashdir.py for example usage.
1616 IPython feasible. See ext_rehashdir.py for example usage.
1611
1617
1612 * Merged 1071-1076 from branches/0.7.1
1618 * Merged 1071-1076 from branches/0.7.1
1613
1619
1614
1620
1615 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1621 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1616
1622
1617 * tools/release (daystamp): Fix build tools to use the new
1623 * tools/release (daystamp): Fix build tools to use the new
1618 eggsetup.py script to build lightweight eggs.
1624 eggsetup.py script to build lightweight eggs.
1619
1625
1620 * Applied changesets 1062 and 1064 before 0.7.1 release.
1626 * Applied changesets 1062 and 1064 before 0.7.1 release.
1621
1627
1622 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1628 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1623 see the raw input history (without conversions like %ls ->
1629 see the raw input history (without conversions like %ls ->
1624 ipmagic("ls")). After a request from W. Stein, SAGE
1630 ipmagic("ls")). After a request from W. Stein, SAGE
1625 (http://modular.ucsd.edu/sage) developer. This information is
1631 (http://modular.ucsd.edu/sage) developer. This information is
1626 stored in the input_hist_raw attribute of the IPython instance, so
1632 stored in the input_hist_raw attribute of the IPython instance, so
1627 developers can access it if needed (it's an InputList instance).
1633 developers can access it if needed (it's an InputList instance).
1628
1634
1629 * Versionstring = 0.7.2.svn
1635 * Versionstring = 0.7.2.svn
1630
1636
1631 * eggsetup.py: A separate script for constructing eggs, creates
1637 * eggsetup.py: A separate script for constructing eggs, creates
1632 proper launch scripts even on Windows (an .exe file in
1638 proper launch scripts even on Windows (an .exe file in
1633 \python24\scripts).
1639 \python24\scripts).
1634
1640
1635 * ipapi.py: launch_new_instance, launch entry point needed for the
1641 * ipapi.py: launch_new_instance, launch entry point needed for the
1636 egg.
1642 egg.
1637
1643
1638 2006-01-23 Ville Vainio <vivainio@gmail.com>
1644 2006-01-23 Ville Vainio <vivainio@gmail.com>
1639
1645
1640 * Added %cpaste magic for pasting python code
1646 * Added %cpaste magic for pasting python code
1641
1647
1642 2006-01-22 Ville Vainio <vivainio@gmail.com>
1648 2006-01-22 Ville Vainio <vivainio@gmail.com>
1643
1649
1644 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1650 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1645
1651
1646 * Versionstring = 0.7.2.svn
1652 * Versionstring = 0.7.2.svn
1647
1653
1648 * eggsetup.py: A separate script for constructing eggs, creates
1654 * eggsetup.py: A separate script for constructing eggs, creates
1649 proper launch scripts even on Windows (an .exe file in
1655 proper launch scripts even on Windows (an .exe file in
1650 \python24\scripts).
1656 \python24\scripts).
1651
1657
1652 * ipapi.py: launch_new_instance, launch entry point needed for the
1658 * ipapi.py: launch_new_instance, launch entry point needed for the
1653 egg.
1659 egg.
1654
1660
1655 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1661 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1656
1662
1657 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1663 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1658 %pfile foo would print the file for foo even if it was a binary.
1664 %pfile foo would print the file for foo even if it was a binary.
1659 Now, extensions '.so' and '.dll' are skipped.
1665 Now, extensions '.so' and '.dll' are skipped.
1660
1666
1661 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1667 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1662 bug, where macros would fail in all threaded modes. I'm not 100%
1668 bug, where macros would fail in all threaded modes. I'm not 100%
1663 sure, so I'm going to put out an rc instead of making a release
1669 sure, so I'm going to put out an rc instead of making a release
1664 today, and wait for feedback for at least a few days.
1670 today, and wait for feedback for at least a few days.
1665
1671
1666 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1672 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1667 it...) the handling of pasting external code with autoindent on.
1673 it...) the handling of pasting external code with autoindent on.
1668 To get out of a multiline input, the rule will appear for most
1674 To get out of a multiline input, the rule will appear for most
1669 users unchanged: two blank lines or change the indent level
1675 users unchanged: two blank lines or change the indent level
1670 proposed by IPython. But there is a twist now: you can
1676 proposed by IPython. But there is a twist now: you can
1671 add/subtract only *one or two spaces*. If you add/subtract three
1677 add/subtract only *one or two spaces*. If you add/subtract three
1672 or more (unless you completely delete the line), IPython will
1678 or more (unless you completely delete the line), IPython will
1673 accept that line, and you'll need to enter a second one of pure
1679 accept that line, and you'll need to enter a second one of pure
1674 whitespace. I know it sounds complicated, but I can't find a
1680 whitespace. I know it sounds complicated, but I can't find a
1675 different solution that covers all the cases, with the right
1681 different solution that covers all the cases, with the right
1676 heuristics. Hopefully in actual use, nobody will really notice
1682 heuristics. Hopefully in actual use, nobody will really notice
1677 all these strange rules and things will 'just work'.
1683 all these strange rules and things will 'just work'.
1678
1684
1679 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1685 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1680
1686
1681 * IPython/iplib.py (interact): catch exceptions which can be
1687 * IPython/iplib.py (interact): catch exceptions which can be
1682 triggered asynchronously by signal handlers. Thanks to an
1688 triggered asynchronously by signal handlers. Thanks to an
1683 automatic crash report, submitted by Colin Kingsley
1689 automatic crash report, submitted by Colin Kingsley
1684 <tercel-AT-gentoo.org>.
1690 <tercel-AT-gentoo.org>.
1685
1691
1686 2006-01-20 Ville Vainio <vivainio@gmail.com>
1692 2006-01-20 Ville Vainio <vivainio@gmail.com>
1687
1693
1688 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1694 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1689 (%rehashdir, very useful, try it out) of how to extend ipython
1695 (%rehashdir, very useful, try it out) of how to extend ipython
1690 with new magics. Also added Extensions dir to pythonpath to make
1696 with new magics. Also added Extensions dir to pythonpath to make
1691 importing extensions easy.
1697 importing extensions easy.
1692
1698
1693 * %store now complains when trying to store interactively declared
1699 * %store now complains when trying to store interactively declared
1694 classes / instances of those classes.
1700 classes / instances of those classes.
1695
1701
1696 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1702 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1697 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1703 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1698 if they exist, and ipy_user_conf.py with some defaults is created for
1704 if they exist, and ipy_user_conf.py with some defaults is created for
1699 the user.
1705 the user.
1700
1706
1701 * Startup rehashing done by the config file, not InterpreterExec.
1707 * Startup rehashing done by the config file, not InterpreterExec.
1702 This means system commands are available even without selecting the
1708 This means system commands are available even without selecting the
1703 pysh profile. It's the sensible default after all.
1709 pysh profile. It's the sensible default after all.
1704
1710
1705 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1711 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1706
1712
1707 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1713 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1708 multiline code with autoindent on working. But I am really not
1714 multiline code with autoindent on working. But I am really not
1709 sure, so this needs more testing. Will commit a debug-enabled
1715 sure, so this needs more testing. Will commit a debug-enabled
1710 version for now, while I test it some more, so that Ville and
1716 version for now, while I test it some more, so that Ville and
1711 others may also catch any problems. Also made
1717 others may also catch any problems. Also made
1712 self.indent_current_str() a method, to ensure that there's no
1718 self.indent_current_str() a method, to ensure that there's no
1713 chance of the indent space count and the corresponding string
1719 chance of the indent space count and the corresponding string
1714 falling out of sync. All code needing the string should just call
1720 falling out of sync. All code needing the string should just call
1715 the method.
1721 the method.
1716
1722
1717 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1723 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1718
1724
1719 * IPython/Magic.py (magic_edit): fix check for when users don't
1725 * IPython/Magic.py (magic_edit): fix check for when users don't
1720 save their output files, the try/except was in the wrong section.
1726 save their output files, the try/except was in the wrong section.
1721
1727
1722 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1728 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1723
1729
1724 * IPython/Magic.py (magic_run): fix __file__ global missing from
1730 * IPython/Magic.py (magic_run): fix __file__ global missing from
1725 script's namespace when executed via %run. After a report by
1731 script's namespace when executed via %run. After a report by
1726 Vivian.
1732 Vivian.
1727
1733
1728 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1734 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1729 when using python 2.4. The parent constructor changed in 2.4, and
1735 when using python 2.4. The parent constructor changed in 2.4, and
1730 we need to track it directly (we can't call it, as it messes up
1736 we need to track it directly (we can't call it, as it messes up
1731 readline and tab-completion inside our pdb would stop working).
1737 readline and tab-completion inside our pdb would stop working).
1732 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1738 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1733
1739
1734 2006-01-16 Ville Vainio <vivainio@gmail.com>
1740 2006-01-16 Ville Vainio <vivainio@gmail.com>
1735
1741
1736 * Ipython/magic.py: Reverted back to old %edit functionality
1742 * Ipython/magic.py: Reverted back to old %edit functionality
1737 that returns file contents on exit.
1743 that returns file contents on exit.
1738
1744
1739 * IPython/path.py: Added Jason Orendorff's "path" module to
1745 * IPython/path.py: Added Jason Orendorff's "path" module to
1740 IPython tree, http://www.jorendorff.com/articles/python/path/.
1746 IPython tree, http://www.jorendorff.com/articles/python/path/.
1741 You can get path objects conveniently through %sc, and !!, e.g.:
1747 You can get path objects conveniently through %sc, and !!, e.g.:
1742 sc files=ls
1748 sc files=ls
1743 for p in files.paths: # or files.p
1749 for p in files.paths: # or files.p
1744 print p,p.mtime
1750 print p,p.mtime
1745
1751
1746 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1752 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1747 now work again without considering the exclusion regexp -
1753 now work again without considering the exclusion regexp -
1748 hence, things like ',foo my/path' turn to 'foo("my/path")'
1754 hence, things like ',foo my/path' turn to 'foo("my/path")'
1749 instead of syntax error.
1755 instead of syntax error.
1750
1756
1751
1757
1752 2006-01-14 Ville Vainio <vivainio@gmail.com>
1758 2006-01-14 Ville Vainio <vivainio@gmail.com>
1753
1759
1754 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1760 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1755 ipapi decorators for python 2.4 users, options() provides access to rc
1761 ipapi decorators for python 2.4 users, options() provides access to rc
1756 data.
1762 data.
1757
1763
1758 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1764 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1759 as path separators (even on Linux ;-). Space character after
1765 as path separators (even on Linux ;-). Space character after
1760 backslash (as yielded by tab completer) is still space;
1766 backslash (as yielded by tab completer) is still space;
1761 "%cd long\ name" works as expected.
1767 "%cd long\ name" works as expected.
1762
1768
1763 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1769 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1764 as "chain of command", with priority. API stays the same,
1770 as "chain of command", with priority. API stays the same,
1765 TryNext exception raised by a hook function signals that
1771 TryNext exception raised by a hook function signals that
1766 current hook failed and next hook should try handling it, as
1772 current hook failed and next hook should try handling it, as
1767 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1773 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1768 requested configurable display hook, which is now implemented.
1774 requested configurable display hook, which is now implemented.
1769
1775
1770 2006-01-13 Ville Vainio <vivainio@gmail.com>
1776 2006-01-13 Ville Vainio <vivainio@gmail.com>
1771
1777
1772 * IPython/platutils*.py: platform specific utility functions,
1778 * IPython/platutils*.py: platform specific utility functions,
1773 so far only set_term_title is implemented (change terminal
1779 so far only set_term_title is implemented (change terminal
1774 label in windowing systems). %cd now changes the title to
1780 label in windowing systems). %cd now changes the title to
1775 current dir.
1781 current dir.
1776
1782
1777 * IPython/Release.py: Added myself to "authors" list,
1783 * IPython/Release.py: Added myself to "authors" list,
1778 had to create new files.
1784 had to create new files.
1779
1785
1780 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1786 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1781 shell escape; not a known bug but had potential to be one in the
1787 shell escape; not a known bug but had potential to be one in the
1782 future.
1788 future.
1783
1789
1784 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1790 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1785 extension API for IPython! See the module for usage example. Fix
1791 extension API for IPython! See the module for usage example. Fix
1786 OInspect for docstring-less magic functions.
1792 OInspect for docstring-less magic functions.
1787
1793
1788
1794
1789 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1795 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1790
1796
1791 * IPython/iplib.py (raw_input): temporarily deactivate all
1797 * IPython/iplib.py (raw_input): temporarily deactivate all
1792 attempts at allowing pasting of code with autoindent on. It
1798 attempts at allowing pasting of code with autoindent on. It
1793 introduced bugs (reported by Prabhu) and I can't seem to find a
1799 introduced bugs (reported by Prabhu) and I can't seem to find a
1794 robust combination which works in all cases. Will have to revisit
1800 robust combination which works in all cases. Will have to revisit
1795 later.
1801 later.
1796
1802
1797 * IPython/genutils.py: remove isspace() function. We've dropped
1803 * IPython/genutils.py: remove isspace() function. We've dropped
1798 2.2 compatibility, so it's OK to use the string method.
1804 2.2 compatibility, so it's OK to use the string method.
1799
1805
1800 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1806 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1801
1807
1802 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1808 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1803 matching what NOT to autocall on, to include all python binary
1809 matching what NOT to autocall on, to include all python binary
1804 operators (including things like 'and', 'or', 'is' and 'in').
1810 operators (including things like 'and', 'or', 'is' and 'in').
1805 Prompted by a bug report on 'foo & bar', but I realized we had
1811 Prompted by a bug report on 'foo & bar', but I realized we had
1806 many more potential bug cases with other operators. The regexp is
1812 many more potential bug cases with other operators. The regexp is
1807 self.re_exclude_auto, it's fairly commented.
1813 self.re_exclude_auto, it's fairly commented.
1808
1814
1809 2006-01-12 Ville Vainio <vivainio@gmail.com>
1815 2006-01-12 Ville Vainio <vivainio@gmail.com>
1810
1816
1811 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1817 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1812 Prettified and hardened string/backslash quoting with ipsystem(),
1818 Prettified and hardened string/backslash quoting with ipsystem(),
1813 ipalias() and ipmagic(). Now even \ characters are passed to
1819 ipalias() and ipmagic(). Now even \ characters are passed to
1814 %magics, !shell escapes and aliases exactly as they are in the
1820 %magics, !shell escapes and aliases exactly as they are in the
1815 ipython command line. Should improve backslash experience,
1821 ipython command line. Should improve backslash experience,
1816 particularly in Windows (path delimiter for some commands that
1822 particularly in Windows (path delimiter for some commands that
1817 won't understand '/'), but Unix benefits as well (regexps). %cd
1823 won't understand '/'), but Unix benefits as well (regexps). %cd
1818 magic still doesn't support backslash path delimiters, though. Also
1824 magic still doesn't support backslash path delimiters, though. Also
1819 deleted all pretense of supporting multiline command strings in
1825 deleted all pretense of supporting multiline command strings in
1820 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1826 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1821
1827
1822 * doc/build_doc_instructions.txt added. Documentation on how to
1828 * doc/build_doc_instructions.txt added. Documentation on how to
1823 use doc/update_manual.py, added yesterday. Both files contributed
1829 use doc/update_manual.py, added yesterday. Both files contributed
1824 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1830 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1825 doc/*.sh for deprecation at a later date.
1831 doc/*.sh for deprecation at a later date.
1826
1832
1827 * /ipython.py Added ipython.py to root directory for
1833 * /ipython.py Added ipython.py to root directory for
1828 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1834 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1829 ipython.py) and development convenience (no need to keep doing
1835 ipython.py) and development convenience (no need to keep doing
1830 "setup.py install" between changes).
1836 "setup.py install" between changes).
1831
1837
1832 * Made ! and !! shell escapes work (again) in multiline expressions:
1838 * Made ! and !! shell escapes work (again) in multiline expressions:
1833 if 1:
1839 if 1:
1834 !ls
1840 !ls
1835 !!ls
1841 !!ls
1836
1842
1837 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1843 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1838
1844
1839 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1845 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1840 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1846 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1841 module in case-insensitive installation. Was causing crashes
1847 module in case-insensitive installation. Was causing crashes
1842 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1848 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1843
1849
1844 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1850 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1845 <marienz-AT-gentoo.org>, closes
1851 <marienz-AT-gentoo.org>, closes
1846 http://www.scipy.net/roundup/ipython/issue51.
1852 http://www.scipy.net/roundup/ipython/issue51.
1847
1853
1848 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1854 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1849
1855
1850 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1856 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1851 problem of excessive CPU usage under *nix and keyboard lag under
1857 problem of excessive CPU usage under *nix and keyboard lag under
1852 win32.
1858 win32.
1853
1859
1854 2006-01-10 *** Released version 0.7.0
1860 2006-01-10 *** Released version 0.7.0
1855
1861
1856 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1862 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1857
1863
1858 * IPython/Release.py (revision): tag version number to 0.7.0,
1864 * IPython/Release.py (revision): tag version number to 0.7.0,
1859 ready for release.
1865 ready for release.
1860
1866
1861 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1867 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1862 it informs the user of the name of the temp. file used. This can
1868 it informs the user of the name of the temp. file used. This can
1863 help if you decide later to reuse that same file, so you know
1869 help if you decide later to reuse that same file, so you know
1864 where to copy the info from.
1870 where to copy the info from.
1865
1871
1866 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1872 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1867
1873
1868 * setup_bdist_egg.py: little script to build an egg. Added
1874 * setup_bdist_egg.py: little script to build an egg. Added
1869 support in the release tools as well.
1875 support in the release tools as well.
1870
1876
1871 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1877 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1872
1878
1873 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1879 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1874 version selection (new -wxversion command line and ipythonrc
1880 version selection (new -wxversion command line and ipythonrc
1875 parameter). Patch contributed by Arnd Baecker
1881 parameter). Patch contributed by Arnd Baecker
1876 <arnd.baecker-AT-web.de>.
1882 <arnd.baecker-AT-web.de>.
1877
1883
1878 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1884 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1879 embedded instances, for variables defined at the interactive
1885 embedded instances, for variables defined at the interactive
1880 prompt of the embedded ipython. Reported by Arnd.
1886 prompt of the embedded ipython. Reported by Arnd.
1881
1887
1882 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1888 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1883 it can be used as a (stateful) toggle, or with a direct parameter.
1889 it can be used as a (stateful) toggle, or with a direct parameter.
1884
1890
1885 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1891 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1886 could be triggered in certain cases and cause the traceback
1892 could be triggered in certain cases and cause the traceback
1887 printer not to work.
1893 printer not to work.
1888
1894
1889 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1895 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1890
1896
1891 * IPython/iplib.py (_should_recompile): Small fix, closes
1897 * IPython/iplib.py (_should_recompile): Small fix, closes
1892 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1898 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1893
1899
1894 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1900 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1895
1901
1896 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1902 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1897 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1903 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1898 Moad for help with tracking it down.
1904 Moad for help with tracking it down.
1899
1905
1900 * IPython/iplib.py (handle_auto): fix autocall handling for
1906 * IPython/iplib.py (handle_auto): fix autocall handling for
1901 objects which support BOTH __getitem__ and __call__ (so that f [x]
1907 objects which support BOTH __getitem__ and __call__ (so that f [x]
1902 is left alone, instead of becoming f([x]) automatically).
1908 is left alone, instead of becoming f([x]) automatically).
1903
1909
1904 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1910 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1905 Ville's patch.
1911 Ville's patch.
1906
1912
1907 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1913 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1908
1914
1909 * IPython/iplib.py (handle_auto): changed autocall semantics to
1915 * IPython/iplib.py (handle_auto): changed autocall semantics to
1910 include 'smart' mode, where the autocall transformation is NOT
1916 include 'smart' mode, where the autocall transformation is NOT
1911 applied if there are no arguments on the line. This allows you to
1917 applied if there are no arguments on the line. This allows you to
1912 just type 'foo' if foo is a callable to see its internal form,
1918 just type 'foo' if foo is a callable to see its internal form,
1913 instead of having it called with no arguments (typically a
1919 instead of having it called with no arguments (typically a
1914 mistake). The old 'full' autocall still exists: for that, you
1920 mistake). The old 'full' autocall still exists: for that, you
1915 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1921 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1916
1922
1917 * IPython/completer.py (Completer.attr_matches): add
1923 * IPython/completer.py (Completer.attr_matches): add
1918 tab-completion support for Enthoughts' traits. After a report by
1924 tab-completion support for Enthoughts' traits. After a report by
1919 Arnd and a patch by Prabhu.
1925 Arnd and a patch by Prabhu.
1920
1926
1921 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1927 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1922
1928
1923 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1929 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1924 Schmolck's patch to fix inspect.getinnerframes().
1930 Schmolck's patch to fix inspect.getinnerframes().
1925
1931
1926 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1932 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1927 for embedded instances, regarding handling of namespaces and items
1933 for embedded instances, regarding handling of namespaces and items
1928 added to the __builtin__ one. Multiple embedded instances and
1934 added to the __builtin__ one. Multiple embedded instances and
1929 recursive embeddings should work better now (though I'm not sure
1935 recursive embeddings should work better now (though I'm not sure
1930 I've got all the corner cases fixed, that code is a bit of a brain
1936 I've got all the corner cases fixed, that code is a bit of a brain
1931 twister).
1937 twister).
1932
1938
1933 * IPython/Magic.py (magic_edit): added support to edit in-memory
1939 * IPython/Magic.py (magic_edit): added support to edit in-memory
1934 macros (automatically creates the necessary temp files). %edit
1940 macros (automatically creates the necessary temp files). %edit
1935 also doesn't return the file contents anymore, it's just noise.
1941 also doesn't return the file contents anymore, it's just noise.
1936
1942
1937 * IPython/completer.py (Completer.attr_matches): revert change to
1943 * IPython/completer.py (Completer.attr_matches): revert change to
1938 complete only on attributes listed in __all__. I realized it
1944 complete only on attributes listed in __all__. I realized it
1939 cripples the tab-completion system as a tool for exploring the
1945 cripples the tab-completion system as a tool for exploring the
1940 internals of unknown libraries (it renders any non-__all__
1946 internals of unknown libraries (it renders any non-__all__
1941 attribute off-limits). I got bit by this when trying to see
1947 attribute off-limits). I got bit by this when trying to see
1942 something inside the dis module.
1948 something inside the dis module.
1943
1949
1944 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1950 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1945
1951
1946 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1952 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1947 namespace for users and extension writers to hold data in. This
1953 namespace for users and extension writers to hold data in. This
1948 follows the discussion in
1954 follows the discussion in
1949 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1955 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1950
1956
1951 * IPython/completer.py (IPCompleter.complete): small patch to help
1957 * IPython/completer.py (IPCompleter.complete): small patch to help
1952 tab-completion under Emacs, after a suggestion by John Barnard
1958 tab-completion under Emacs, after a suggestion by John Barnard
1953 <barnarj-AT-ccf.org>.
1959 <barnarj-AT-ccf.org>.
1954
1960
1955 * IPython/Magic.py (Magic.extract_input_slices): added support for
1961 * IPython/Magic.py (Magic.extract_input_slices): added support for
1956 the slice notation in magics to use N-M to represent numbers N...M
1962 the slice notation in magics to use N-M to represent numbers N...M
1957 (closed endpoints). This is used by %macro and %save.
1963 (closed endpoints). This is used by %macro and %save.
1958
1964
1959 * IPython/completer.py (Completer.attr_matches): for modules which
1965 * IPython/completer.py (Completer.attr_matches): for modules which
1960 define __all__, complete only on those. After a patch by Jeffrey
1966 define __all__, complete only on those. After a patch by Jeffrey
1961 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1967 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1962 speed up this routine.
1968 speed up this routine.
1963
1969
1964 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1970 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1965 don't know if this is the end of it, but the behavior now is
1971 don't know if this is the end of it, but the behavior now is
1966 certainly much more correct. Note that coupled with macros,
1972 certainly much more correct. Note that coupled with macros,
1967 slightly surprising (at first) behavior may occur: a macro will in
1973 slightly surprising (at first) behavior may occur: a macro will in
1968 general expand to multiple lines of input, so upon exiting, the
1974 general expand to multiple lines of input, so upon exiting, the
1969 in/out counters will both be bumped by the corresponding amount
1975 in/out counters will both be bumped by the corresponding amount
1970 (as if the macro's contents had been typed interactively). Typing
1976 (as if the macro's contents had been typed interactively). Typing
1971 %hist will reveal the intermediate (silently processed) lines.
1977 %hist will reveal the intermediate (silently processed) lines.
1972
1978
1973 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1979 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1974 pickle to fail (%run was overwriting __main__ and not restoring
1980 pickle to fail (%run was overwriting __main__ and not restoring
1975 it, but pickle relies on __main__ to operate).
1981 it, but pickle relies on __main__ to operate).
1976
1982
1977 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1983 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1978 using properties, but forgot to make the main InteractiveShell
1984 using properties, but forgot to make the main InteractiveShell
1979 class a new-style class. Properties fail silently, and
1985 class a new-style class. Properties fail silently, and
1980 mysteriously, with old-style class (getters work, but
1986 mysteriously, with old-style class (getters work, but
1981 setters don't do anything).
1987 setters don't do anything).
1982
1988
1983 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1989 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1984
1990
1985 * IPython/Magic.py (magic_history): fix history reporting bug (I
1991 * IPython/Magic.py (magic_history): fix history reporting bug (I
1986 know some nasties are still there, I just can't seem to find a
1992 know some nasties are still there, I just can't seem to find a
1987 reproducible test case to track them down; the input history is
1993 reproducible test case to track them down; the input history is
1988 falling out of sync...)
1994 falling out of sync...)
1989
1995
1990 * IPython/iplib.py (handle_shell_escape): fix bug where both
1996 * IPython/iplib.py (handle_shell_escape): fix bug where both
1991 aliases and system accesses where broken for indented code (such
1997 aliases and system accesses where broken for indented code (such
1992 as loops).
1998 as loops).
1993
1999
1994 * IPython/genutils.py (shell): fix small but critical bug for
2000 * IPython/genutils.py (shell): fix small but critical bug for
1995 win32 system access.
2001 win32 system access.
1996
2002
1997 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2003 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1998
2004
1999 * IPython/iplib.py (showtraceback): remove use of the
2005 * IPython/iplib.py (showtraceback): remove use of the
2000 sys.last_{type/value/traceback} structures, which are non
2006 sys.last_{type/value/traceback} structures, which are non
2001 thread-safe.
2007 thread-safe.
2002 (_prefilter): change control flow to ensure that we NEVER
2008 (_prefilter): change control flow to ensure that we NEVER
2003 introspect objects when autocall is off. This will guarantee that
2009 introspect objects when autocall is off. This will guarantee that
2004 having an input line of the form 'x.y', where access to attribute
2010 having an input line of the form 'x.y', where access to attribute
2005 'y' has side effects, doesn't trigger the side effect TWICE. It
2011 'y' has side effects, doesn't trigger the side effect TWICE. It
2006 is important to note that, with autocall on, these side effects
2012 is important to note that, with autocall on, these side effects
2007 can still happen.
2013 can still happen.
2008 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2014 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2009 trio. IPython offers these three kinds of special calls which are
2015 trio. IPython offers these three kinds of special calls which are
2010 not python code, and it's a good thing to have their call method
2016 not python code, and it's a good thing to have their call method
2011 be accessible as pure python functions (not just special syntax at
2017 be accessible as pure python functions (not just special syntax at
2012 the command line). It gives us a better internal implementation
2018 the command line). It gives us a better internal implementation
2013 structure, as well as exposing these for user scripting more
2019 structure, as well as exposing these for user scripting more
2014 cleanly.
2020 cleanly.
2015
2021
2016 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2022 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2017 file. Now that they'll be more likely to be used with the
2023 file. Now that they'll be more likely to be used with the
2018 persistance system (%store), I want to make sure their module path
2024 persistance system (%store), I want to make sure their module path
2019 doesn't change in the future, so that we don't break things for
2025 doesn't change in the future, so that we don't break things for
2020 users' persisted data.
2026 users' persisted data.
2021
2027
2022 * IPython/iplib.py (autoindent_update): move indentation
2028 * IPython/iplib.py (autoindent_update): move indentation
2023 management into the _text_ processing loop, not the keyboard
2029 management into the _text_ processing loop, not the keyboard
2024 interactive one. This is necessary to correctly process non-typed
2030 interactive one. This is necessary to correctly process non-typed
2025 multiline input (such as macros).
2031 multiline input (such as macros).
2026
2032
2027 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2033 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2028 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2034 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2029 which was producing problems in the resulting manual.
2035 which was producing problems in the resulting manual.
2030 (magic_whos): improve reporting of instances (show their class,
2036 (magic_whos): improve reporting of instances (show their class,
2031 instead of simply printing 'instance' which isn't terribly
2037 instead of simply printing 'instance' which isn't terribly
2032 informative).
2038 informative).
2033
2039
2034 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2040 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2035 (minor mods) to support network shares under win32.
2041 (minor mods) to support network shares under win32.
2036
2042
2037 * IPython/winconsole.py (get_console_size): add new winconsole
2043 * IPython/winconsole.py (get_console_size): add new winconsole
2038 module and fixes to page_dumb() to improve its behavior under
2044 module and fixes to page_dumb() to improve its behavior under
2039 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2045 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2040
2046
2041 * IPython/Magic.py (Macro): simplified Macro class to just
2047 * IPython/Magic.py (Macro): simplified Macro class to just
2042 subclass list. We've had only 2.2 compatibility for a very long
2048 subclass list. We've had only 2.2 compatibility for a very long
2043 time, yet I was still avoiding subclassing the builtin types. No
2049 time, yet I was still avoiding subclassing the builtin types. No
2044 more (I'm also starting to use properties, though I won't shift to
2050 more (I'm also starting to use properties, though I won't shift to
2045 2.3-specific features quite yet).
2051 2.3-specific features quite yet).
2046 (magic_store): added Ville's patch for lightweight variable
2052 (magic_store): added Ville's patch for lightweight variable
2047 persistence, after a request on the user list by Matt Wilkie
2053 persistence, after a request on the user list by Matt Wilkie
2048 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2054 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2049 details.
2055 details.
2050
2056
2051 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2057 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2052 changed the default logfile name from 'ipython.log' to
2058 changed the default logfile name from 'ipython.log' to
2053 'ipython_log.py'. These logs are real python files, and now that
2059 'ipython_log.py'. These logs are real python files, and now that
2054 we have much better multiline support, people are more likely to
2060 we have much better multiline support, people are more likely to
2055 want to use them as such. Might as well name them correctly.
2061 want to use them as such. Might as well name them correctly.
2056
2062
2057 * IPython/Magic.py: substantial cleanup. While we can't stop
2063 * IPython/Magic.py: substantial cleanup. While we can't stop
2058 using magics as mixins, due to the existing customizations 'out
2064 using magics as mixins, due to the existing customizations 'out
2059 there' which rely on the mixin naming conventions, at least I
2065 there' which rely on the mixin naming conventions, at least I
2060 cleaned out all cross-class name usage. So once we are OK with
2066 cleaned out all cross-class name usage. So once we are OK with
2061 breaking compatibility, the two systems can be separated.
2067 breaking compatibility, the two systems can be separated.
2062
2068
2063 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2069 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2064 anymore, and the class is a fair bit less hideous as well. New
2070 anymore, and the class is a fair bit less hideous as well. New
2065 features were also introduced: timestamping of input, and logging
2071 features were also introduced: timestamping of input, and logging
2066 of output results. These are user-visible with the -t and -o
2072 of output results. These are user-visible with the -t and -o
2067 options to %logstart. Closes
2073 options to %logstart. Closes
2068 http://www.scipy.net/roundup/ipython/issue11 and a request by
2074 http://www.scipy.net/roundup/ipython/issue11 and a request by
2069 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2075 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2070
2076
2071 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2077 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2072
2078
2073 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2079 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2074 better handle backslashes in paths. See the thread 'More Windows
2080 better handle backslashes in paths. See the thread 'More Windows
2075 questions part 2 - \/ characters revisited' on the iypthon user
2081 questions part 2 - \/ characters revisited' on the iypthon user
2076 list:
2082 list:
2077 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2083 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2078
2084
2079 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2085 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2080
2086
2081 (InteractiveShell.__init__): change threaded shells to not use the
2087 (InteractiveShell.__init__): change threaded shells to not use the
2082 ipython crash handler. This was causing more problems than not,
2088 ipython crash handler. This was causing more problems than not,
2083 as exceptions in the main thread (GUI code, typically) would
2089 as exceptions in the main thread (GUI code, typically) would
2084 always show up as a 'crash', when they really weren't.
2090 always show up as a 'crash', when they really weren't.
2085
2091
2086 The colors and exception mode commands (%colors/%xmode) have been
2092 The colors and exception mode commands (%colors/%xmode) have been
2087 synchronized to also take this into account, so users can get
2093 synchronized to also take this into account, so users can get
2088 verbose exceptions for their threaded code as well. I also added
2094 verbose exceptions for their threaded code as well. I also added
2089 support for activating pdb inside this exception handler as well,
2095 support for activating pdb inside this exception handler as well,
2090 so now GUI authors can use IPython's enhanced pdb at runtime.
2096 so now GUI authors can use IPython's enhanced pdb at runtime.
2091
2097
2092 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2098 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2093 true by default, and add it to the shipped ipythonrc file. Since
2099 true by default, and add it to the shipped ipythonrc file. Since
2094 this asks the user before proceeding, I think it's OK to make it
2100 this asks the user before proceeding, I think it's OK to make it
2095 true by default.
2101 true by default.
2096
2102
2097 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2103 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2098 of the previous special-casing of input in the eval loop. I think
2104 of the previous special-casing of input in the eval loop. I think
2099 this is cleaner, as they really are commands and shouldn't have
2105 this is cleaner, as they really are commands and shouldn't have
2100 a special role in the middle of the core code.
2106 a special role in the middle of the core code.
2101
2107
2102 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2108 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2103
2109
2104 * IPython/iplib.py (edit_syntax_error): added support for
2110 * IPython/iplib.py (edit_syntax_error): added support for
2105 automatically reopening the editor if the file had a syntax error
2111 automatically reopening the editor if the file had a syntax error
2106 in it. Thanks to scottt who provided the patch at:
2112 in it. Thanks to scottt who provided the patch at:
2107 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2113 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2108 version committed).
2114 version committed).
2109
2115
2110 * IPython/iplib.py (handle_normal): add suport for multi-line
2116 * IPython/iplib.py (handle_normal): add suport for multi-line
2111 input with emtpy lines. This fixes
2117 input with emtpy lines. This fixes
2112 http://www.scipy.net/roundup/ipython/issue43 and a similar
2118 http://www.scipy.net/roundup/ipython/issue43 and a similar
2113 discussion on the user list.
2119 discussion on the user list.
2114
2120
2115 WARNING: a behavior change is necessarily introduced to support
2121 WARNING: a behavior change is necessarily introduced to support
2116 blank lines: now a single blank line with whitespace does NOT
2122 blank lines: now a single blank line with whitespace does NOT
2117 break the input loop, which means that when autoindent is on, by
2123 break the input loop, which means that when autoindent is on, by
2118 default hitting return on the next (indented) line does NOT exit.
2124 default hitting return on the next (indented) line does NOT exit.
2119
2125
2120 Instead, to exit a multiline input you can either have:
2126 Instead, to exit a multiline input you can either have:
2121
2127
2122 - TWO whitespace lines (just hit return again), or
2128 - TWO whitespace lines (just hit return again), or
2123 - a single whitespace line of a different length than provided
2129 - a single whitespace line of a different length than provided
2124 by the autoindent (add or remove a space).
2130 by the autoindent (add or remove a space).
2125
2131
2126 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2132 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2127 module to better organize all readline-related functionality.
2133 module to better organize all readline-related functionality.
2128 I've deleted FlexCompleter and put all completion clases here.
2134 I've deleted FlexCompleter and put all completion clases here.
2129
2135
2130 * IPython/iplib.py (raw_input): improve indentation management.
2136 * IPython/iplib.py (raw_input): improve indentation management.
2131 It is now possible to paste indented code with autoindent on, and
2137 It is now possible to paste indented code with autoindent on, and
2132 the code is interpreted correctly (though it still looks bad on
2138 the code is interpreted correctly (though it still looks bad on
2133 screen, due to the line-oriented nature of ipython).
2139 screen, due to the line-oriented nature of ipython).
2134 (MagicCompleter.complete): change behavior so that a TAB key on an
2140 (MagicCompleter.complete): change behavior so that a TAB key on an
2135 otherwise empty line actually inserts a tab, instead of completing
2141 otherwise empty line actually inserts a tab, instead of completing
2136 on the entire global namespace. This makes it easier to use the
2142 on the entire global namespace. This makes it easier to use the
2137 TAB key for indentation. After a request by Hans Meine
2143 TAB key for indentation. After a request by Hans Meine
2138 <hans_meine-AT-gmx.net>
2144 <hans_meine-AT-gmx.net>
2139 (_prefilter): add support so that typing plain 'exit' or 'quit'
2145 (_prefilter): add support so that typing plain 'exit' or 'quit'
2140 does a sensible thing. Originally I tried to deviate as little as
2146 does a sensible thing. Originally I tried to deviate as little as
2141 possible from the default python behavior, but even that one may
2147 possible from the default python behavior, but even that one may
2142 change in this direction (thread on python-dev to that effect).
2148 change in this direction (thread on python-dev to that effect).
2143 Regardless, ipython should do the right thing even if CPython's
2149 Regardless, ipython should do the right thing even if CPython's
2144 '>>>' prompt doesn't.
2150 '>>>' prompt doesn't.
2145 (InteractiveShell): removed subclassing code.InteractiveConsole
2151 (InteractiveShell): removed subclassing code.InteractiveConsole
2146 class. By now we'd overridden just about all of its methods: I've
2152 class. By now we'd overridden just about all of its methods: I've
2147 copied the remaining two over, and now ipython is a standalone
2153 copied the remaining two over, and now ipython is a standalone
2148 class. This will provide a clearer picture for the chainsaw
2154 class. This will provide a clearer picture for the chainsaw
2149 branch refactoring.
2155 branch refactoring.
2150
2156
2151 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2157 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2152
2158
2153 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2159 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2154 failures for objects which break when dir() is called on them.
2160 failures for objects which break when dir() is called on them.
2155
2161
2156 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2162 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2157 distinct local and global namespaces in the completer API. This
2163 distinct local and global namespaces in the completer API. This
2158 change allows us to properly handle completion with distinct
2164 change allows us to properly handle completion with distinct
2159 scopes, including in embedded instances (this had never really
2165 scopes, including in embedded instances (this had never really
2160 worked correctly).
2166 worked correctly).
2161
2167
2162 Note: this introduces a change in the constructor for
2168 Note: this introduces a change in the constructor for
2163 MagicCompleter, as a new global_namespace parameter is now the
2169 MagicCompleter, as a new global_namespace parameter is now the
2164 second argument (the others were bumped one position).
2170 second argument (the others were bumped one position).
2165
2171
2166 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2172 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2167
2173
2168 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2174 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2169 embedded instances (which can be done now thanks to Vivian's
2175 embedded instances (which can be done now thanks to Vivian's
2170 frame-handling fixes for pdb).
2176 frame-handling fixes for pdb).
2171 (InteractiveShell.__init__): Fix namespace handling problem in
2177 (InteractiveShell.__init__): Fix namespace handling problem in
2172 embedded instances. We were overwriting __main__ unconditionally,
2178 embedded instances. We were overwriting __main__ unconditionally,
2173 and this should only be done for 'full' (non-embedded) IPython;
2179 and this should only be done for 'full' (non-embedded) IPython;
2174 embedded instances must respect the caller's __main__. Thanks to
2180 embedded instances must respect the caller's __main__. Thanks to
2175 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2181 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2176
2182
2177 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2183 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2178
2184
2179 * setup.py: added download_url to setup(). This registers the
2185 * setup.py: added download_url to setup(). This registers the
2180 download address at PyPI, which is not only useful to humans
2186 download address at PyPI, which is not only useful to humans
2181 browsing the site, but is also picked up by setuptools (the Eggs
2187 browsing the site, but is also picked up by setuptools (the Eggs
2182 machinery). Thanks to Ville and R. Kern for the info/discussion
2188 machinery). Thanks to Ville and R. Kern for the info/discussion
2183 on this.
2189 on this.
2184
2190
2185 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2191 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2186
2192
2187 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2193 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2188 This brings a lot of nice functionality to the pdb mode, which now
2194 This brings a lot of nice functionality to the pdb mode, which now
2189 has tab-completion, syntax highlighting, and better stack handling
2195 has tab-completion, syntax highlighting, and better stack handling
2190 than before. Many thanks to Vivian De Smedt
2196 than before. Many thanks to Vivian De Smedt
2191 <vivian-AT-vdesmedt.com> for the original patches.
2197 <vivian-AT-vdesmedt.com> for the original patches.
2192
2198
2193 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2199 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2194
2200
2195 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2201 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2196 sequence to consistently accept the banner argument. The
2202 sequence to consistently accept the banner argument. The
2197 inconsistency was tripping SAGE, thanks to Gary Zablackis
2203 inconsistency was tripping SAGE, thanks to Gary Zablackis
2198 <gzabl-AT-yahoo.com> for the report.
2204 <gzabl-AT-yahoo.com> for the report.
2199
2205
2200 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2206 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2201
2207
2202 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2208 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2203 Fix bug where a naked 'alias' call in the ipythonrc file would
2209 Fix bug where a naked 'alias' call in the ipythonrc file would
2204 cause a crash. Bug reported by Jorgen Stenarson.
2210 cause a crash. Bug reported by Jorgen Stenarson.
2205
2211
2206 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2212 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2207
2213
2208 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2214 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2209 startup time.
2215 startup time.
2210
2216
2211 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2217 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2212 instances had introduced a bug with globals in normal code. Now
2218 instances had introduced a bug with globals in normal code. Now
2213 it's working in all cases.
2219 it's working in all cases.
2214
2220
2215 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2221 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2216 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2222 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2217 has been introduced to set the default case sensitivity of the
2223 has been introduced to set the default case sensitivity of the
2218 searches. Users can still select either mode at runtime on a
2224 searches. Users can still select either mode at runtime on a
2219 per-search basis.
2225 per-search basis.
2220
2226
2221 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2227 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2222
2228
2223 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2229 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2224 attributes in wildcard searches for subclasses. Modified version
2230 attributes in wildcard searches for subclasses. Modified version
2225 of a patch by Jorgen.
2231 of a patch by Jorgen.
2226
2232
2227 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2233 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2228
2234
2229 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2235 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2230 embedded instances. I added a user_global_ns attribute to the
2236 embedded instances. I added a user_global_ns attribute to the
2231 InteractiveShell class to handle this.
2237 InteractiveShell class to handle this.
2232
2238
2233 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2239 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2234
2240
2235 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2241 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2236 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2242 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2237 (reported under win32, but may happen also in other platforms).
2243 (reported under win32, but may happen also in other platforms).
2238 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2244 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2239
2245
2240 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2246 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2241
2247
2242 * IPython/Magic.py (magic_psearch): new support for wildcard
2248 * IPython/Magic.py (magic_psearch): new support for wildcard
2243 patterns. Now, typing ?a*b will list all names which begin with a
2249 patterns. Now, typing ?a*b will list all names which begin with a
2244 and end in b, for example. The %psearch magic has full
2250 and end in b, for example. The %psearch magic has full
2245 docstrings. Many thanks to JΓΆrgen Stenarson
2251 docstrings. Many thanks to JΓΆrgen Stenarson
2246 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2252 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2247 implementing this functionality.
2253 implementing this functionality.
2248
2254
2249 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2255 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2250
2256
2251 * Manual: fixed long-standing annoyance of double-dashes (as in
2257 * Manual: fixed long-standing annoyance of double-dashes (as in
2252 --prefix=~, for example) being stripped in the HTML version. This
2258 --prefix=~, for example) being stripped in the HTML version. This
2253 is a latex2html bug, but a workaround was provided. Many thanks
2259 is a latex2html bug, but a workaround was provided. Many thanks
2254 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2260 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2255 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2261 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2256 rolling. This seemingly small issue had tripped a number of users
2262 rolling. This seemingly small issue had tripped a number of users
2257 when first installing, so I'm glad to see it gone.
2263 when first installing, so I'm glad to see it gone.
2258
2264
2259 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2265 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2260
2266
2261 * IPython/Extensions/numeric_formats.py: fix missing import,
2267 * IPython/Extensions/numeric_formats.py: fix missing import,
2262 reported by Stephen Walton.
2268 reported by Stephen Walton.
2263
2269
2264 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2270 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2265
2271
2266 * IPython/demo.py: finish demo module, fully documented now.
2272 * IPython/demo.py: finish demo module, fully documented now.
2267
2273
2268 * IPython/genutils.py (file_read): simple little utility to read a
2274 * IPython/genutils.py (file_read): simple little utility to read a
2269 file and ensure it's closed afterwards.
2275 file and ensure it's closed afterwards.
2270
2276
2271 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2277 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2272
2278
2273 * IPython/demo.py (Demo.__init__): added support for individually
2279 * IPython/demo.py (Demo.__init__): added support for individually
2274 tagging blocks for automatic execution.
2280 tagging blocks for automatic execution.
2275
2281
2276 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2282 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2277 syntax-highlighted python sources, requested by John.
2283 syntax-highlighted python sources, requested by John.
2278
2284
2279 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2285 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2280
2286
2281 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2287 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2282 finishing.
2288 finishing.
2283
2289
2284 * IPython/genutils.py (shlex_split): moved from Magic to here,
2290 * IPython/genutils.py (shlex_split): moved from Magic to here,
2285 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2291 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2286
2292
2287 * IPython/demo.py (Demo.__init__): added support for silent
2293 * IPython/demo.py (Demo.__init__): added support for silent
2288 blocks, improved marks as regexps, docstrings written.
2294 blocks, improved marks as regexps, docstrings written.
2289 (Demo.__init__): better docstring, added support for sys.argv.
2295 (Demo.__init__): better docstring, added support for sys.argv.
2290
2296
2291 * IPython/genutils.py (marquee): little utility used by the demo
2297 * IPython/genutils.py (marquee): little utility used by the demo
2292 code, handy in general.
2298 code, handy in general.
2293
2299
2294 * IPython/demo.py (Demo.__init__): new class for interactive
2300 * IPython/demo.py (Demo.__init__): new class for interactive
2295 demos. Not documented yet, I just wrote it in a hurry for
2301 demos. Not documented yet, I just wrote it in a hurry for
2296 scipy'05. Will docstring later.
2302 scipy'05. Will docstring later.
2297
2303
2298 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2304 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2299
2305
2300 * IPython/Shell.py (sigint_handler): Drastic simplification which
2306 * IPython/Shell.py (sigint_handler): Drastic simplification which
2301 also seems to make Ctrl-C work correctly across threads! This is
2307 also seems to make Ctrl-C work correctly across threads! This is
2302 so simple, that I can't beleive I'd missed it before. Needs more
2308 so simple, that I can't beleive I'd missed it before. Needs more
2303 testing, though.
2309 testing, though.
2304 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2310 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2305 like this before...
2311 like this before...
2306
2312
2307 * IPython/genutils.py (get_home_dir): add protection against
2313 * IPython/genutils.py (get_home_dir): add protection against
2308 non-dirs in win32 registry.
2314 non-dirs in win32 registry.
2309
2315
2310 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2316 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2311 bug where dict was mutated while iterating (pysh crash).
2317 bug where dict was mutated while iterating (pysh crash).
2312
2318
2313 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2319 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2314
2320
2315 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2321 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2316 spurious newlines added by this routine. After a report by
2322 spurious newlines added by this routine. After a report by
2317 F. Mantegazza.
2323 F. Mantegazza.
2318
2324
2319 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2325 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2320
2326
2321 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2327 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2322 calls. These were a leftover from the GTK 1.x days, and can cause
2328 calls. These were a leftover from the GTK 1.x days, and can cause
2323 problems in certain cases (after a report by John Hunter).
2329 problems in certain cases (after a report by John Hunter).
2324
2330
2325 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2331 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2326 os.getcwd() fails at init time. Thanks to patch from David Remahl
2332 os.getcwd() fails at init time. Thanks to patch from David Remahl
2327 <chmod007-AT-mac.com>.
2333 <chmod007-AT-mac.com>.
2328 (InteractiveShell.__init__): prevent certain special magics from
2334 (InteractiveShell.__init__): prevent certain special magics from
2329 being shadowed by aliases. Closes
2335 being shadowed by aliases. Closes
2330 http://www.scipy.net/roundup/ipython/issue41.
2336 http://www.scipy.net/roundup/ipython/issue41.
2331
2337
2332 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2338 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2333
2339
2334 * IPython/iplib.py (InteractiveShell.complete): Added new
2340 * IPython/iplib.py (InteractiveShell.complete): Added new
2335 top-level completion method to expose the completion mechanism
2341 top-level completion method to expose the completion mechanism
2336 beyond readline-based environments.
2342 beyond readline-based environments.
2337
2343
2338 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2344 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2339
2345
2340 * tools/ipsvnc (svnversion): fix svnversion capture.
2346 * tools/ipsvnc (svnversion): fix svnversion capture.
2341
2347
2342 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2348 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2343 attribute to self, which was missing. Before, it was set by a
2349 attribute to self, which was missing. Before, it was set by a
2344 routine which in certain cases wasn't being called, so the
2350 routine which in certain cases wasn't being called, so the
2345 instance could end up missing the attribute. This caused a crash.
2351 instance could end up missing the attribute. This caused a crash.
2346 Closes http://www.scipy.net/roundup/ipython/issue40.
2352 Closes http://www.scipy.net/roundup/ipython/issue40.
2347
2353
2348 2005-08-16 Fernando Perez <fperez@colorado.edu>
2354 2005-08-16 Fernando Perez <fperez@colorado.edu>
2349
2355
2350 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2356 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2351 contains non-string attribute. Closes
2357 contains non-string attribute. Closes
2352 http://www.scipy.net/roundup/ipython/issue38.
2358 http://www.scipy.net/roundup/ipython/issue38.
2353
2359
2354 2005-08-14 Fernando Perez <fperez@colorado.edu>
2360 2005-08-14 Fernando Perez <fperez@colorado.edu>
2355
2361
2356 * tools/ipsvnc: Minor improvements, to add changeset info.
2362 * tools/ipsvnc: Minor improvements, to add changeset info.
2357
2363
2358 2005-08-12 Fernando Perez <fperez@colorado.edu>
2364 2005-08-12 Fernando Perez <fperez@colorado.edu>
2359
2365
2360 * IPython/iplib.py (runsource): remove self.code_to_run_src
2366 * IPython/iplib.py (runsource): remove self.code_to_run_src
2361 attribute. I realized this is nothing more than
2367 attribute. I realized this is nothing more than
2362 '\n'.join(self.buffer), and having the same data in two different
2368 '\n'.join(self.buffer), and having the same data in two different
2363 places is just asking for synchronization bugs. This may impact
2369 places is just asking for synchronization bugs. This may impact
2364 people who have custom exception handlers, so I need to warn
2370 people who have custom exception handlers, so I need to warn
2365 ipython-dev about it (F. Mantegazza may use them).
2371 ipython-dev about it (F. Mantegazza may use them).
2366
2372
2367 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2373 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2368
2374
2369 * IPython/genutils.py: fix 2.2 compatibility (generators)
2375 * IPython/genutils.py: fix 2.2 compatibility (generators)
2370
2376
2371 2005-07-18 Fernando Perez <fperez@colorado.edu>
2377 2005-07-18 Fernando Perez <fperez@colorado.edu>
2372
2378
2373 * IPython/genutils.py (get_home_dir): fix to help users with
2379 * IPython/genutils.py (get_home_dir): fix to help users with
2374 invalid $HOME under win32.
2380 invalid $HOME under win32.
2375
2381
2376 2005-07-17 Fernando Perez <fperez@colorado.edu>
2382 2005-07-17 Fernando Perez <fperez@colorado.edu>
2377
2383
2378 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2384 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2379 some old hacks and clean up a bit other routines; code should be
2385 some old hacks and clean up a bit other routines; code should be
2380 simpler and a bit faster.
2386 simpler and a bit faster.
2381
2387
2382 * IPython/iplib.py (interact): removed some last-resort attempts
2388 * IPython/iplib.py (interact): removed some last-resort attempts
2383 to survive broken stdout/stderr. That code was only making it
2389 to survive broken stdout/stderr. That code was only making it
2384 harder to abstract out the i/o (necessary for gui integration),
2390 harder to abstract out the i/o (necessary for gui integration),
2385 and the crashes it could prevent were extremely rare in practice
2391 and the crashes it could prevent were extremely rare in practice
2386 (besides being fully user-induced in a pretty violent manner).
2392 (besides being fully user-induced in a pretty violent manner).
2387
2393
2388 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2394 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2389 Nothing major yet, but the code is simpler to read; this should
2395 Nothing major yet, but the code is simpler to read; this should
2390 make it easier to do more serious modifications in the future.
2396 make it easier to do more serious modifications in the future.
2391
2397
2392 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2398 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2393 which broke in .15 (thanks to a report by Ville).
2399 which broke in .15 (thanks to a report by Ville).
2394
2400
2395 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2401 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2396 be quite correct, I know next to nothing about unicode). This
2402 be quite correct, I know next to nothing about unicode). This
2397 will allow unicode strings to be used in prompts, amongst other
2403 will allow unicode strings to be used in prompts, amongst other
2398 cases. It also will prevent ipython from crashing when unicode
2404 cases. It also will prevent ipython from crashing when unicode
2399 shows up unexpectedly in many places. If ascii encoding fails, we
2405 shows up unexpectedly in many places. If ascii encoding fails, we
2400 assume utf_8. Currently the encoding is not a user-visible
2406 assume utf_8. Currently the encoding is not a user-visible
2401 setting, though it could be made so if there is demand for it.
2407 setting, though it could be made so if there is demand for it.
2402
2408
2403 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2409 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2404
2410
2405 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2411 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2406
2412
2407 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2413 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2408
2414
2409 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2415 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2410 code can work transparently for 2.2/2.3.
2416 code can work transparently for 2.2/2.3.
2411
2417
2412 2005-07-16 Fernando Perez <fperez@colorado.edu>
2418 2005-07-16 Fernando Perez <fperez@colorado.edu>
2413
2419
2414 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2420 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2415 out of the color scheme table used for coloring exception
2421 out of the color scheme table used for coloring exception
2416 tracebacks. This allows user code to add new schemes at runtime.
2422 tracebacks. This allows user code to add new schemes at runtime.
2417 This is a minimally modified version of the patch at
2423 This is a minimally modified version of the patch at
2418 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2424 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2419 for the contribution.
2425 for the contribution.
2420
2426
2421 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2427 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2422 slightly modified version of the patch in
2428 slightly modified version of the patch in
2423 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2429 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2424 to remove the previous try/except solution (which was costlier).
2430 to remove the previous try/except solution (which was costlier).
2425 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2431 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2426
2432
2427 2005-06-08 Fernando Perez <fperez@colorado.edu>
2433 2005-06-08 Fernando Perez <fperez@colorado.edu>
2428
2434
2429 * IPython/iplib.py (write/write_err): Add methods to abstract all
2435 * IPython/iplib.py (write/write_err): Add methods to abstract all
2430 I/O a bit more.
2436 I/O a bit more.
2431
2437
2432 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2438 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2433 warning, reported by Aric Hagberg, fix by JD Hunter.
2439 warning, reported by Aric Hagberg, fix by JD Hunter.
2434
2440
2435 2005-06-02 *** Released version 0.6.15
2441 2005-06-02 *** Released version 0.6.15
2436
2442
2437 2005-06-01 Fernando Perez <fperez@colorado.edu>
2443 2005-06-01 Fernando Perez <fperez@colorado.edu>
2438
2444
2439 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2445 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2440 tab-completion of filenames within open-quoted strings. Note that
2446 tab-completion of filenames within open-quoted strings. Note that
2441 this requires that in ~/.ipython/ipythonrc, users change the
2447 this requires that in ~/.ipython/ipythonrc, users change the
2442 readline delimiters configuration to read:
2448 readline delimiters configuration to read:
2443
2449
2444 readline_remove_delims -/~
2450 readline_remove_delims -/~
2445
2451
2446
2452
2447 2005-05-31 *** Released version 0.6.14
2453 2005-05-31 *** Released version 0.6.14
2448
2454
2449 2005-05-29 Fernando Perez <fperez@colorado.edu>
2455 2005-05-29 Fernando Perez <fperez@colorado.edu>
2450
2456
2451 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2457 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2452 with files not on the filesystem. Reported by Eliyahu Sandler
2458 with files not on the filesystem. Reported by Eliyahu Sandler
2453 <eli@gondolin.net>
2459 <eli@gondolin.net>
2454
2460
2455 2005-05-22 Fernando Perez <fperez@colorado.edu>
2461 2005-05-22 Fernando Perez <fperez@colorado.edu>
2456
2462
2457 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2463 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2458 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2464 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2459
2465
2460 2005-05-19 Fernando Perez <fperez@colorado.edu>
2466 2005-05-19 Fernando Perez <fperez@colorado.edu>
2461
2467
2462 * IPython/iplib.py (safe_execfile): close a file which could be
2468 * IPython/iplib.py (safe_execfile): close a file which could be
2463 left open (causing problems in win32, which locks open files).
2469 left open (causing problems in win32, which locks open files).
2464 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2470 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2465
2471
2466 2005-05-18 Fernando Perez <fperez@colorado.edu>
2472 2005-05-18 Fernando Perez <fperez@colorado.edu>
2467
2473
2468 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2474 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2469 keyword arguments correctly to safe_execfile().
2475 keyword arguments correctly to safe_execfile().
2470
2476
2471 2005-05-13 Fernando Perez <fperez@colorado.edu>
2477 2005-05-13 Fernando Perez <fperez@colorado.edu>
2472
2478
2473 * ipython.1: Added info about Qt to manpage, and threads warning
2479 * ipython.1: Added info about Qt to manpage, and threads warning
2474 to usage page (invoked with --help).
2480 to usage page (invoked with --help).
2475
2481
2476 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2482 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2477 new matcher (it goes at the end of the priority list) to do
2483 new matcher (it goes at the end of the priority list) to do
2478 tab-completion on named function arguments. Submitted by George
2484 tab-completion on named function arguments. Submitted by George
2479 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2485 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2480 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2486 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2481 for more details.
2487 for more details.
2482
2488
2483 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2489 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2484 SystemExit exceptions in the script being run. Thanks to a report
2490 SystemExit exceptions in the script being run. Thanks to a report
2485 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2491 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2486 producing very annoying behavior when running unit tests.
2492 producing very annoying behavior when running unit tests.
2487
2493
2488 2005-05-12 Fernando Perez <fperez@colorado.edu>
2494 2005-05-12 Fernando Perez <fperez@colorado.edu>
2489
2495
2490 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2496 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2491 which I'd broken (again) due to a changed regexp. In the process,
2497 which I'd broken (again) due to a changed regexp. In the process,
2492 added ';' as an escape to auto-quote the whole line without
2498 added ';' as an escape to auto-quote the whole line without
2493 splitting its arguments. Thanks to a report by Jerry McRae
2499 splitting its arguments. Thanks to a report by Jerry McRae
2494 <qrs0xyc02-AT-sneakemail.com>.
2500 <qrs0xyc02-AT-sneakemail.com>.
2495
2501
2496 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2502 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2497 possible crashes caused by a TokenError. Reported by Ed Schofield
2503 possible crashes caused by a TokenError. Reported by Ed Schofield
2498 <schofield-AT-ftw.at>.
2504 <schofield-AT-ftw.at>.
2499
2505
2500 2005-05-06 Fernando Perez <fperez@colorado.edu>
2506 2005-05-06 Fernando Perez <fperez@colorado.edu>
2501
2507
2502 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2508 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2503
2509
2504 2005-04-29 Fernando Perez <fperez@colorado.edu>
2510 2005-04-29 Fernando Perez <fperez@colorado.edu>
2505
2511
2506 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2512 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2507 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2513 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2508 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2514 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2509 which provides support for Qt interactive usage (similar to the
2515 which provides support for Qt interactive usage (similar to the
2510 existing one for WX and GTK). This had been often requested.
2516 existing one for WX and GTK). This had been often requested.
2511
2517
2512 2005-04-14 *** Released version 0.6.13
2518 2005-04-14 *** Released version 0.6.13
2513
2519
2514 2005-04-08 Fernando Perez <fperez@colorado.edu>
2520 2005-04-08 Fernando Perez <fperez@colorado.edu>
2515
2521
2516 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2522 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2517 from _ofind, which gets called on almost every input line. Now,
2523 from _ofind, which gets called on almost every input line. Now,
2518 we only try to get docstrings if they are actually going to be
2524 we only try to get docstrings if they are actually going to be
2519 used (the overhead of fetching unnecessary docstrings can be
2525 used (the overhead of fetching unnecessary docstrings can be
2520 noticeable for certain objects, such as Pyro proxies).
2526 noticeable for certain objects, such as Pyro proxies).
2521
2527
2522 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2528 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2523 for completers. For some reason I had been passing them the state
2529 for completers. For some reason I had been passing them the state
2524 variable, which completers never actually need, and was in
2530 variable, which completers never actually need, and was in
2525 conflict with the rlcompleter API. Custom completers ONLY need to
2531 conflict with the rlcompleter API. Custom completers ONLY need to
2526 take the text parameter.
2532 take the text parameter.
2527
2533
2528 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2534 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2529 work correctly in pysh. I've also moved all the logic which used
2535 work correctly in pysh. I've also moved all the logic which used
2530 to be in pysh.py here, which will prevent problems with future
2536 to be in pysh.py here, which will prevent problems with future
2531 upgrades. However, this time I must warn users to update their
2537 upgrades. However, this time I must warn users to update their
2532 pysh profile to include the line
2538 pysh profile to include the line
2533
2539
2534 import_all IPython.Extensions.InterpreterExec
2540 import_all IPython.Extensions.InterpreterExec
2535
2541
2536 because otherwise things won't work for them. They MUST also
2542 because otherwise things won't work for them. They MUST also
2537 delete pysh.py and the line
2543 delete pysh.py and the line
2538
2544
2539 execfile pysh.py
2545 execfile pysh.py
2540
2546
2541 from their ipythonrc-pysh.
2547 from their ipythonrc-pysh.
2542
2548
2543 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2549 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2544 robust in the face of objects whose dir() returns non-strings
2550 robust in the face of objects whose dir() returns non-strings
2545 (which it shouldn't, but some broken libs like ITK do). Thanks to
2551 (which it shouldn't, but some broken libs like ITK do). Thanks to
2546 a patch by John Hunter (implemented differently, though). Also
2552 a patch by John Hunter (implemented differently, though). Also
2547 minor improvements by using .extend instead of + on lists.
2553 minor improvements by using .extend instead of + on lists.
2548
2554
2549 * pysh.py:
2555 * pysh.py:
2550
2556
2551 2005-04-06 Fernando Perez <fperez@colorado.edu>
2557 2005-04-06 Fernando Perez <fperez@colorado.edu>
2552
2558
2553 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2559 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2554 by default, so that all users benefit from it. Those who don't
2560 by default, so that all users benefit from it. Those who don't
2555 want it can still turn it off.
2561 want it can still turn it off.
2556
2562
2557 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2563 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2558 config file, I'd forgotten about this, so users were getting it
2564 config file, I'd forgotten about this, so users were getting it
2559 off by default.
2565 off by default.
2560
2566
2561 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2567 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2562 consistency. Now magics can be called in multiline statements,
2568 consistency. Now magics can be called in multiline statements,
2563 and python variables can be expanded in magic calls via $var.
2569 and python variables can be expanded in magic calls via $var.
2564 This makes the magic system behave just like aliases or !system
2570 This makes the magic system behave just like aliases or !system
2565 calls.
2571 calls.
2566
2572
2567 2005-03-28 Fernando Perez <fperez@colorado.edu>
2573 2005-03-28 Fernando Perez <fperez@colorado.edu>
2568
2574
2569 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2575 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2570 expensive string additions for building command. Add support for
2576 expensive string additions for building command. Add support for
2571 trailing ';' when autocall is used.
2577 trailing ';' when autocall is used.
2572
2578
2573 2005-03-26 Fernando Perez <fperez@colorado.edu>
2579 2005-03-26 Fernando Perez <fperez@colorado.edu>
2574
2580
2575 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2581 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2576 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2582 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2577 ipython.el robust against prompts with any number of spaces
2583 ipython.el robust against prompts with any number of spaces
2578 (including 0) after the ':' character.
2584 (including 0) after the ':' character.
2579
2585
2580 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2586 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2581 continuation prompt, which misled users to think the line was
2587 continuation prompt, which misled users to think the line was
2582 already indented. Closes debian Bug#300847, reported to me by
2588 already indented. Closes debian Bug#300847, reported to me by
2583 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2589 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2584
2590
2585 2005-03-23 Fernando Perez <fperez@colorado.edu>
2591 2005-03-23 Fernando Perez <fperez@colorado.edu>
2586
2592
2587 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2593 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2588 properly aligned if they have embedded newlines.
2594 properly aligned if they have embedded newlines.
2589
2595
2590 * IPython/iplib.py (runlines): Add a public method to expose
2596 * IPython/iplib.py (runlines): Add a public method to expose
2591 IPython's code execution machinery, so that users can run strings
2597 IPython's code execution machinery, so that users can run strings
2592 as if they had been typed at the prompt interactively.
2598 as if they had been typed at the prompt interactively.
2593 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2599 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2594 methods which can call the system shell, but with python variable
2600 methods which can call the system shell, but with python variable
2595 expansion. The three such methods are: __IPYTHON__.system,
2601 expansion. The three such methods are: __IPYTHON__.system,
2596 .getoutput and .getoutputerror. These need to be documented in a
2602 .getoutput and .getoutputerror. These need to be documented in a
2597 'public API' section (to be written) of the manual.
2603 'public API' section (to be written) of the manual.
2598
2604
2599 2005-03-20 Fernando Perez <fperez@colorado.edu>
2605 2005-03-20 Fernando Perez <fperez@colorado.edu>
2600
2606
2601 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2607 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2602 for custom exception handling. This is quite powerful, and it
2608 for custom exception handling. This is quite powerful, and it
2603 allows for user-installable exception handlers which can trap
2609 allows for user-installable exception handlers which can trap
2604 custom exceptions at runtime and treat them separately from
2610 custom exceptions at runtime and treat them separately from
2605 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2611 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2606 Mantegazza <mantegazza-AT-ill.fr>.
2612 Mantegazza <mantegazza-AT-ill.fr>.
2607 (InteractiveShell.set_custom_completer): public API function to
2613 (InteractiveShell.set_custom_completer): public API function to
2608 add new completers at runtime.
2614 add new completers at runtime.
2609
2615
2610 2005-03-19 Fernando Perez <fperez@colorado.edu>
2616 2005-03-19 Fernando Perez <fperez@colorado.edu>
2611
2617
2612 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2618 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2613 allow objects which provide their docstrings via non-standard
2619 allow objects which provide their docstrings via non-standard
2614 mechanisms (like Pyro proxies) to still be inspected by ipython's
2620 mechanisms (like Pyro proxies) to still be inspected by ipython's
2615 ? system.
2621 ? system.
2616
2622
2617 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2623 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2618 automatic capture system. I tried quite hard to make it work
2624 automatic capture system. I tried quite hard to make it work
2619 reliably, and simply failed. I tried many combinations with the
2625 reliably, and simply failed. I tried many combinations with the
2620 subprocess module, but eventually nothing worked in all needed
2626 subprocess module, but eventually nothing worked in all needed
2621 cases (not blocking stdin for the child, duplicating stdout
2627 cases (not blocking stdin for the child, duplicating stdout
2622 without blocking, etc). The new %sc/%sx still do capture to these
2628 without blocking, etc). The new %sc/%sx still do capture to these
2623 magical list/string objects which make shell use much more
2629 magical list/string objects which make shell use much more
2624 conveninent, so not all is lost.
2630 conveninent, so not all is lost.
2625
2631
2626 XXX - FIX MANUAL for the change above!
2632 XXX - FIX MANUAL for the change above!
2627
2633
2628 (runsource): I copied code.py's runsource() into ipython to modify
2634 (runsource): I copied code.py's runsource() into ipython to modify
2629 it a bit. Now the code object and source to be executed are
2635 it a bit. Now the code object and source to be executed are
2630 stored in ipython. This makes this info accessible to third-party
2636 stored in ipython. This makes this info accessible to third-party
2631 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2637 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2632 Mantegazza <mantegazza-AT-ill.fr>.
2638 Mantegazza <mantegazza-AT-ill.fr>.
2633
2639
2634 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2640 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2635 history-search via readline (like C-p/C-n). I'd wanted this for a
2641 history-search via readline (like C-p/C-n). I'd wanted this for a
2636 long time, but only recently found out how to do it. For users
2642 long time, but only recently found out how to do it. For users
2637 who already have their ipythonrc files made and want this, just
2643 who already have their ipythonrc files made and want this, just
2638 add:
2644 add:
2639
2645
2640 readline_parse_and_bind "\e[A": history-search-backward
2646 readline_parse_and_bind "\e[A": history-search-backward
2641 readline_parse_and_bind "\e[B": history-search-forward
2647 readline_parse_and_bind "\e[B": history-search-forward
2642
2648
2643 2005-03-18 Fernando Perez <fperez@colorado.edu>
2649 2005-03-18 Fernando Perez <fperez@colorado.edu>
2644
2650
2645 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2651 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2646 LSString and SList classes which allow transparent conversions
2652 LSString and SList classes which allow transparent conversions
2647 between list mode and whitespace-separated string.
2653 between list mode and whitespace-separated string.
2648 (magic_r): Fix recursion problem in %r.
2654 (magic_r): Fix recursion problem in %r.
2649
2655
2650 * IPython/genutils.py (LSString): New class to be used for
2656 * IPython/genutils.py (LSString): New class to be used for
2651 automatic storage of the results of all alias/system calls in _o
2657 automatic storage of the results of all alias/system calls in _o
2652 and _e (stdout/err). These provide a .l/.list attribute which
2658 and _e (stdout/err). These provide a .l/.list attribute which
2653 does automatic splitting on newlines. This means that for most
2659 does automatic splitting on newlines. This means that for most
2654 uses, you'll never need to do capturing of output with %sc/%sx
2660 uses, you'll never need to do capturing of output with %sc/%sx
2655 anymore, since ipython keeps this always done for you. Note that
2661 anymore, since ipython keeps this always done for you. Note that
2656 only the LAST results are stored, the _o/e variables are
2662 only the LAST results are stored, the _o/e variables are
2657 overwritten on each call. If you need to save their contents
2663 overwritten on each call. If you need to save their contents
2658 further, simply bind them to any other name.
2664 further, simply bind them to any other name.
2659
2665
2660 2005-03-17 Fernando Perez <fperez@colorado.edu>
2666 2005-03-17 Fernando Perez <fperez@colorado.edu>
2661
2667
2662 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2668 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2663 prompt namespace handling.
2669 prompt namespace handling.
2664
2670
2665 2005-03-16 Fernando Perez <fperez@colorado.edu>
2671 2005-03-16 Fernando Perez <fperez@colorado.edu>
2666
2672
2667 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2673 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2668 classic prompts to be '>>> ' (final space was missing, and it
2674 classic prompts to be '>>> ' (final space was missing, and it
2669 trips the emacs python mode).
2675 trips the emacs python mode).
2670 (BasePrompt.__str__): Added safe support for dynamic prompt
2676 (BasePrompt.__str__): Added safe support for dynamic prompt
2671 strings. Now you can set your prompt string to be '$x', and the
2677 strings. Now you can set your prompt string to be '$x', and the
2672 value of x will be printed from your interactive namespace. The
2678 value of x will be printed from your interactive namespace. The
2673 interpolation syntax includes the full Itpl support, so
2679 interpolation syntax includes the full Itpl support, so
2674 ${foo()+x+bar()} is a valid prompt string now, and the function
2680 ${foo()+x+bar()} is a valid prompt string now, and the function
2675 calls will be made at runtime.
2681 calls will be made at runtime.
2676
2682
2677 2005-03-15 Fernando Perez <fperez@colorado.edu>
2683 2005-03-15 Fernando Perez <fperez@colorado.edu>
2678
2684
2679 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2685 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2680 avoid name clashes in pylab. %hist still works, it just forwards
2686 avoid name clashes in pylab. %hist still works, it just forwards
2681 the call to %history.
2687 the call to %history.
2682
2688
2683 2005-03-02 *** Released version 0.6.12
2689 2005-03-02 *** Released version 0.6.12
2684
2690
2685 2005-03-02 Fernando Perez <fperez@colorado.edu>
2691 2005-03-02 Fernando Perez <fperez@colorado.edu>
2686
2692
2687 * IPython/iplib.py (handle_magic): log magic calls properly as
2693 * IPython/iplib.py (handle_magic): log magic calls properly as
2688 ipmagic() function calls.
2694 ipmagic() function calls.
2689
2695
2690 * IPython/Magic.py (magic_time): Improved %time to support
2696 * IPython/Magic.py (magic_time): Improved %time to support
2691 statements and provide wall-clock as well as CPU time.
2697 statements and provide wall-clock as well as CPU time.
2692
2698
2693 2005-02-27 Fernando Perez <fperez@colorado.edu>
2699 2005-02-27 Fernando Perez <fperez@colorado.edu>
2694
2700
2695 * IPython/hooks.py: New hooks module, to expose user-modifiable
2701 * IPython/hooks.py: New hooks module, to expose user-modifiable
2696 IPython functionality in a clean manner. For now only the editor
2702 IPython functionality in a clean manner. For now only the editor
2697 hook is actually written, and other thigns which I intend to turn
2703 hook is actually written, and other thigns which I intend to turn
2698 into proper hooks aren't yet there. The display and prefilter
2704 into proper hooks aren't yet there. The display and prefilter
2699 stuff, for example, should be hooks. But at least now the
2705 stuff, for example, should be hooks. But at least now the
2700 framework is in place, and the rest can be moved here with more
2706 framework is in place, and the rest can be moved here with more
2701 time later. IPython had had a .hooks variable for a long time for
2707 time later. IPython had had a .hooks variable for a long time for
2702 this purpose, but I'd never actually used it for anything.
2708 this purpose, but I'd never actually used it for anything.
2703
2709
2704 2005-02-26 Fernando Perez <fperez@colorado.edu>
2710 2005-02-26 Fernando Perez <fperez@colorado.edu>
2705
2711
2706 * IPython/ipmaker.py (make_IPython): make the default ipython
2712 * IPython/ipmaker.py (make_IPython): make the default ipython
2707 directory be called _ipython under win32, to follow more the
2713 directory be called _ipython under win32, to follow more the
2708 naming peculiarities of that platform (where buggy software like
2714 naming peculiarities of that platform (where buggy software like
2709 Visual Sourcesafe breaks with .named directories). Reported by
2715 Visual Sourcesafe breaks with .named directories). Reported by
2710 Ville Vainio.
2716 Ville Vainio.
2711
2717
2712 2005-02-23 Fernando Perez <fperez@colorado.edu>
2718 2005-02-23 Fernando Perez <fperez@colorado.edu>
2713
2719
2714 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2720 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2715 auto_aliases for win32 which were causing problems. Users can
2721 auto_aliases for win32 which were causing problems. Users can
2716 define the ones they personally like.
2722 define the ones they personally like.
2717
2723
2718 2005-02-21 Fernando Perez <fperez@colorado.edu>
2724 2005-02-21 Fernando Perez <fperez@colorado.edu>
2719
2725
2720 * IPython/Magic.py (magic_time): new magic to time execution of
2726 * IPython/Magic.py (magic_time): new magic to time execution of
2721 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2727 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2722
2728
2723 2005-02-19 Fernando Perez <fperez@colorado.edu>
2729 2005-02-19 Fernando Perez <fperez@colorado.edu>
2724
2730
2725 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2731 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2726 into keys (for prompts, for example).
2732 into keys (for prompts, for example).
2727
2733
2728 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2734 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2729 prompts in case users want them. This introduces a small behavior
2735 prompts in case users want them. This introduces a small behavior
2730 change: ipython does not automatically add a space to all prompts
2736 change: ipython does not automatically add a space to all prompts
2731 anymore. To get the old prompts with a space, users should add it
2737 anymore. To get the old prompts with a space, users should add it
2732 manually to their ipythonrc file, so for example prompt_in1 should
2738 manually to their ipythonrc file, so for example prompt_in1 should
2733 now read 'In [\#]: ' instead of 'In [\#]:'.
2739 now read 'In [\#]: ' instead of 'In [\#]:'.
2734 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2740 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2735 file) to control left-padding of secondary prompts.
2741 file) to control left-padding of secondary prompts.
2736
2742
2737 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2743 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2738 the profiler can't be imported. Fix for Debian, which removed
2744 the profiler can't be imported. Fix for Debian, which removed
2739 profile.py because of License issues. I applied a slightly
2745 profile.py because of License issues. I applied a slightly
2740 modified version of the original Debian patch at
2746 modified version of the original Debian patch at
2741 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2747 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2742
2748
2743 2005-02-17 Fernando Perez <fperez@colorado.edu>
2749 2005-02-17 Fernando Perez <fperez@colorado.edu>
2744
2750
2745 * IPython/genutils.py (native_line_ends): Fix bug which would
2751 * IPython/genutils.py (native_line_ends): Fix bug which would
2746 cause improper line-ends under win32 b/c I was not opening files
2752 cause improper line-ends under win32 b/c I was not opening files
2747 in binary mode. Bug report and fix thanks to Ville.
2753 in binary mode. Bug report and fix thanks to Ville.
2748
2754
2749 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2755 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2750 trying to catch spurious foo[1] autocalls. My fix actually broke
2756 trying to catch spurious foo[1] autocalls. My fix actually broke
2751 ',/' autoquote/call with explicit escape (bad regexp).
2757 ',/' autoquote/call with explicit escape (bad regexp).
2752
2758
2753 2005-02-15 *** Released version 0.6.11
2759 2005-02-15 *** Released version 0.6.11
2754
2760
2755 2005-02-14 Fernando Perez <fperez@colorado.edu>
2761 2005-02-14 Fernando Perez <fperez@colorado.edu>
2756
2762
2757 * IPython/background_jobs.py: New background job management
2763 * IPython/background_jobs.py: New background job management
2758 subsystem. This is implemented via a new set of classes, and
2764 subsystem. This is implemented via a new set of classes, and
2759 IPython now provides a builtin 'jobs' object for background job
2765 IPython now provides a builtin 'jobs' object for background job
2760 execution. A convenience %bg magic serves as a lightweight
2766 execution. A convenience %bg magic serves as a lightweight
2761 frontend for starting the more common type of calls. This was
2767 frontend for starting the more common type of calls. This was
2762 inspired by discussions with B. Granger and the BackgroundCommand
2768 inspired by discussions with B. Granger and the BackgroundCommand
2763 class described in the book Python Scripting for Computational
2769 class described in the book Python Scripting for Computational
2764 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2770 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2765 (although ultimately no code from this text was used, as IPython's
2771 (although ultimately no code from this text was used, as IPython's
2766 system is a separate implementation).
2772 system is a separate implementation).
2767
2773
2768 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2774 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2769 to control the completion of single/double underscore names
2775 to control the completion of single/double underscore names
2770 separately. As documented in the example ipytonrc file, the
2776 separately. As documented in the example ipytonrc file, the
2771 readline_omit__names variable can now be set to 2, to omit even
2777 readline_omit__names variable can now be set to 2, to omit even
2772 single underscore names. Thanks to a patch by Brian Wong
2778 single underscore names. Thanks to a patch by Brian Wong
2773 <BrianWong-AT-AirgoNetworks.Com>.
2779 <BrianWong-AT-AirgoNetworks.Com>.
2774 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2780 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2775 be autocalled as foo([1]) if foo were callable. A problem for
2781 be autocalled as foo([1]) if foo were callable. A problem for
2776 things which are both callable and implement __getitem__.
2782 things which are both callable and implement __getitem__.
2777 (init_readline): Fix autoindentation for win32. Thanks to a patch
2783 (init_readline): Fix autoindentation for win32. Thanks to a patch
2778 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2784 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2779
2785
2780 2005-02-12 Fernando Perez <fperez@colorado.edu>
2786 2005-02-12 Fernando Perez <fperez@colorado.edu>
2781
2787
2782 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2788 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2783 which I had written long ago to sort out user error messages which
2789 which I had written long ago to sort out user error messages which
2784 may occur during startup. This seemed like a good idea initially,
2790 may occur during startup. This seemed like a good idea initially,
2785 but it has proven a disaster in retrospect. I don't want to
2791 but it has proven a disaster in retrospect. I don't want to
2786 change much code for now, so my fix is to set the internal 'debug'
2792 change much code for now, so my fix is to set the internal 'debug'
2787 flag to true everywhere, whose only job was precisely to control
2793 flag to true everywhere, whose only job was precisely to control
2788 this subsystem. This closes issue 28 (as well as avoiding all
2794 this subsystem. This closes issue 28 (as well as avoiding all
2789 sorts of strange hangups which occur from time to time).
2795 sorts of strange hangups which occur from time to time).
2790
2796
2791 2005-02-07 Fernando Perez <fperez@colorado.edu>
2797 2005-02-07 Fernando Perez <fperez@colorado.edu>
2792
2798
2793 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2799 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2794 previous call produced a syntax error.
2800 previous call produced a syntax error.
2795
2801
2796 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2802 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2797 classes without constructor.
2803 classes without constructor.
2798
2804
2799 2005-02-06 Fernando Perez <fperez@colorado.edu>
2805 2005-02-06 Fernando Perez <fperez@colorado.edu>
2800
2806
2801 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2807 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2802 completions with the results of each matcher, so we return results
2808 completions with the results of each matcher, so we return results
2803 to the user from all namespaces. This breaks with ipython
2809 to the user from all namespaces. This breaks with ipython
2804 tradition, but I think it's a nicer behavior. Now you get all
2810 tradition, but I think it's a nicer behavior. Now you get all
2805 possible completions listed, from all possible namespaces (python,
2811 possible completions listed, from all possible namespaces (python,
2806 filesystem, magics...) After a request by John Hunter
2812 filesystem, magics...) After a request by John Hunter
2807 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2813 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2808
2814
2809 2005-02-05 Fernando Perez <fperez@colorado.edu>
2815 2005-02-05 Fernando Perez <fperez@colorado.edu>
2810
2816
2811 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2817 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2812 the call had quote characters in it (the quotes were stripped).
2818 the call had quote characters in it (the quotes were stripped).
2813
2819
2814 2005-01-31 Fernando Perez <fperez@colorado.edu>
2820 2005-01-31 Fernando Perez <fperez@colorado.edu>
2815
2821
2816 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2822 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2817 Itpl.itpl() to make the code more robust against psyco
2823 Itpl.itpl() to make the code more robust against psyco
2818 optimizations.
2824 optimizations.
2819
2825
2820 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2826 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2821 of causing an exception. Quicker, cleaner.
2827 of causing an exception. Quicker, cleaner.
2822
2828
2823 2005-01-28 Fernando Perez <fperez@colorado.edu>
2829 2005-01-28 Fernando Perez <fperez@colorado.edu>
2824
2830
2825 * scripts/ipython_win_post_install.py (install): hardcode
2831 * scripts/ipython_win_post_install.py (install): hardcode
2826 sys.prefix+'python.exe' as the executable path. It turns out that
2832 sys.prefix+'python.exe' as the executable path. It turns out that
2827 during the post-installation run, sys.executable resolves to the
2833 during the post-installation run, sys.executable resolves to the
2828 name of the binary installer! I should report this as a distutils
2834 name of the binary installer! I should report this as a distutils
2829 bug, I think. I updated the .10 release with this tiny fix, to
2835 bug, I think. I updated the .10 release with this tiny fix, to
2830 avoid annoying the lists further.
2836 avoid annoying the lists further.
2831
2837
2832 2005-01-27 *** Released version 0.6.10
2838 2005-01-27 *** Released version 0.6.10
2833
2839
2834 2005-01-27 Fernando Perez <fperez@colorado.edu>
2840 2005-01-27 Fernando Perez <fperez@colorado.edu>
2835
2841
2836 * IPython/numutils.py (norm): Added 'inf' as optional name for
2842 * IPython/numutils.py (norm): Added 'inf' as optional name for
2837 L-infinity norm, included references to mathworld.com for vector
2843 L-infinity norm, included references to mathworld.com for vector
2838 norm definitions.
2844 norm definitions.
2839 (amin/amax): added amin/amax for array min/max. Similar to what
2845 (amin/amax): added amin/amax for array min/max. Similar to what
2840 pylab ships with after the recent reorganization of names.
2846 pylab ships with after the recent reorganization of names.
2841 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2847 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2842
2848
2843 * ipython.el: committed Alex's recent fixes and improvements.
2849 * ipython.el: committed Alex's recent fixes and improvements.
2844 Tested with python-mode from CVS, and it looks excellent. Since
2850 Tested with python-mode from CVS, and it looks excellent. Since
2845 python-mode hasn't released anything in a while, I'm temporarily
2851 python-mode hasn't released anything in a while, I'm temporarily
2846 putting a copy of today's CVS (v 4.70) of python-mode in:
2852 putting a copy of today's CVS (v 4.70) of python-mode in:
2847 http://ipython.scipy.org/tmp/python-mode.el
2853 http://ipython.scipy.org/tmp/python-mode.el
2848
2854
2849 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2855 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2850 sys.executable for the executable name, instead of assuming it's
2856 sys.executable for the executable name, instead of assuming it's
2851 called 'python.exe' (the post-installer would have produced broken
2857 called 'python.exe' (the post-installer would have produced broken
2852 setups on systems with a differently named python binary).
2858 setups on systems with a differently named python binary).
2853
2859
2854 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2860 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2855 references to os.linesep, to make the code more
2861 references to os.linesep, to make the code more
2856 platform-independent. This is also part of the win32 coloring
2862 platform-independent. This is also part of the win32 coloring
2857 fixes.
2863 fixes.
2858
2864
2859 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2865 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2860 lines, which actually cause coloring bugs because the length of
2866 lines, which actually cause coloring bugs because the length of
2861 the line is very difficult to correctly compute with embedded
2867 the line is very difficult to correctly compute with embedded
2862 escapes. This was the source of all the coloring problems under
2868 escapes. This was the source of all the coloring problems under
2863 Win32. I think that _finally_, Win32 users have a properly
2869 Win32. I think that _finally_, Win32 users have a properly
2864 working ipython in all respects. This would never have happened
2870 working ipython in all respects. This would never have happened
2865 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2871 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2866
2872
2867 2005-01-26 *** Released version 0.6.9
2873 2005-01-26 *** Released version 0.6.9
2868
2874
2869 2005-01-25 Fernando Perez <fperez@colorado.edu>
2875 2005-01-25 Fernando Perez <fperez@colorado.edu>
2870
2876
2871 * setup.py: finally, we have a true Windows installer, thanks to
2877 * setup.py: finally, we have a true Windows installer, thanks to
2872 the excellent work of Viktor Ransmayr
2878 the excellent work of Viktor Ransmayr
2873 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2879 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2874 Windows users. The setup routine is quite a bit cleaner thanks to
2880 Windows users. The setup routine is quite a bit cleaner thanks to
2875 this, and the post-install script uses the proper functions to
2881 this, and the post-install script uses the proper functions to
2876 allow a clean de-installation using the standard Windows Control
2882 allow a clean de-installation using the standard Windows Control
2877 Panel.
2883 Panel.
2878
2884
2879 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2885 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2880 environment variable under all OSes (including win32) if
2886 environment variable under all OSes (including win32) if
2881 available. This will give consistency to win32 users who have set
2887 available. This will give consistency to win32 users who have set
2882 this variable for any reason. If os.environ['HOME'] fails, the
2888 this variable for any reason. If os.environ['HOME'] fails, the
2883 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2889 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2884
2890
2885 2005-01-24 Fernando Perez <fperez@colorado.edu>
2891 2005-01-24 Fernando Perez <fperez@colorado.edu>
2886
2892
2887 * IPython/numutils.py (empty_like): add empty_like(), similar to
2893 * IPython/numutils.py (empty_like): add empty_like(), similar to
2888 zeros_like() but taking advantage of the new empty() Numeric routine.
2894 zeros_like() but taking advantage of the new empty() Numeric routine.
2889
2895
2890 2005-01-23 *** Released version 0.6.8
2896 2005-01-23 *** Released version 0.6.8
2891
2897
2892 2005-01-22 Fernando Perez <fperez@colorado.edu>
2898 2005-01-22 Fernando Perez <fperez@colorado.edu>
2893
2899
2894 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2900 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2895 automatic show() calls. After discussing things with JDH, it
2901 automatic show() calls. After discussing things with JDH, it
2896 turns out there are too many corner cases where this can go wrong.
2902 turns out there are too many corner cases where this can go wrong.
2897 It's best not to try to be 'too smart', and simply have ipython
2903 It's best not to try to be 'too smart', and simply have ipython
2898 reproduce as much as possible the default behavior of a normal
2904 reproduce as much as possible the default behavior of a normal
2899 python shell.
2905 python shell.
2900
2906
2901 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2907 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2902 line-splitting regexp and _prefilter() to avoid calling getattr()
2908 line-splitting regexp and _prefilter() to avoid calling getattr()
2903 on assignments. This closes
2909 on assignments. This closes
2904 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2910 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2905 readline uses getattr(), so a simple <TAB> keypress is still
2911 readline uses getattr(), so a simple <TAB> keypress is still
2906 enough to trigger getattr() calls on an object.
2912 enough to trigger getattr() calls on an object.
2907
2913
2908 2005-01-21 Fernando Perez <fperez@colorado.edu>
2914 2005-01-21 Fernando Perez <fperez@colorado.edu>
2909
2915
2910 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2916 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2911 docstring under pylab so it doesn't mask the original.
2917 docstring under pylab so it doesn't mask the original.
2912
2918
2913 2005-01-21 *** Released version 0.6.7
2919 2005-01-21 *** Released version 0.6.7
2914
2920
2915 2005-01-21 Fernando Perez <fperez@colorado.edu>
2921 2005-01-21 Fernando Perez <fperez@colorado.edu>
2916
2922
2917 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2923 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2918 signal handling for win32 users in multithreaded mode.
2924 signal handling for win32 users in multithreaded mode.
2919
2925
2920 2005-01-17 Fernando Perez <fperez@colorado.edu>
2926 2005-01-17 Fernando Perez <fperez@colorado.edu>
2921
2927
2922 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2928 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2923 instances with no __init__. After a crash report by Norbert Nemec
2929 instances with no __init__. After a crash report by Norbert Nemec
2924 <Norbert-AT-nemec-online.de>.
2930 <Norbert-AT-nemec-online.de>.
2925
2931
2926 2005-01-14 Fernando Perez <fperez@colorado.edu>
2932 2005-01-14 Fernando Perez <fperez@colorado.edu>
2927
2933
2928 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2934 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2929 names for verbose exceptions, when multiple dotted names and the
2935 names for verbose exceptions, when multiple dotted names and the
2930 'parent' object were present on the same line.
2936 'parent' object were present on the same line.
2931
2937
2932 2005-01-11 Fernando Perez <fperez@colorado.edu>
2938 2005-01-11 Fernando Perez <fperez@colorado.edu>
2933
2939
2934 * IPython/genutils.py (flag_calls): new utility to trap and flag
2940 * IPython/genutils.py (flag_calls): new utility to trap and flag
2935 calls in functions. I need it to clean up matplotlib support.
2941 calls in functions. I need it to clean up matplotlib support.
2936 Also removed some deprecated code in genutils.
2942 Also removed some deprecated code in genutils.
2937
2943
2938 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2944 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2939 that matplotlib scripts called with %run, which don't call show()
2945 that matplotlib scripts called with %run, which don't call show()
2940 themselves, still have their plotting windows open.
2946 themselves, still have their plotting windows open.
2941
2947
2942 2005-01-05 Fernando Perez <fperez@colorado.edu>
2948 2005-01-05 Fernando Perez <fperez@colorado.edu>
2943
2949
2944 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2950 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2945 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2951 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2946
2952
2947 2004-12-19 Fernando Perez <fperez@colorado.edu>
2953 2004-12-19 Fernando Perez <fperez@colorado.edu>
2948
2954
2949 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2955 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2950 parent_runcode, which was an eyesore. The same result can be
2956 parent_runcode, which was an eyesore. The same result can be
2951 obtained with Python's regular superclass mechanisms.
2957 obtained with Python's regular superclass mechanisms.
2952
2958
2953 2004-12-17 Fernando Perez <fperez@colorado.edu>
2959 2004-12-17 Fernando Perez <fperez@colorado.edu>
2954
2960
2955 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2961 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2956 reported by Prabhu.
2962 reported by Prabhu.
2957 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2963 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2958 sys.stderr) instead of explicitly calling sys.stderr. This helps
2964 sys.stderr) instead of explicitly calling sys.stderr. This helps
2959 maintain our I/O abstractions clean, for future GUI embeddings.
2965 maintain our I/O abstractions clean, for future GUI embeddings.
2960
2966
2961 * IPython/genutils.py (info): added new utility for sys.stderr
2967 * IPython/genutils.py (info): added new utility for sys.stderr
2962 unified info message handling (thin wrapper around warn()).
2968 unified info message handling (thin wrapper around warn()).
2963
2969
2964 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2970 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2965 composite (dotted) names on verbose exceptions.
2971 composite (dotted) names on verbose exceptions.
2966 (VerboseTB.nullrepr): harden against another kind of errors which
2972 (VerboseTB.nullrepr): harden against another kind of errors which
2967 Python's inspect module can trigger, and which were crashing
2973 Python's inspect module can trigger, and which were crashing
2968 IPython. Thanks to a report by Marco Lombardi
2974 IPython. Thanks to a report by Marco Lombardi
2969 <mlombard-AT-ma010192.hq.eso.org>.
2975 <mlombard-AT-ma010192.hq.eso.org>.
2970
2976
2971 2004-12-13 *** Released version 0.6.6
2977 2004-12-13 *** Released version 0.6.6
2972
2978
2973 2004-12-12 Fernando Perez <fperez@colorado.edu>
2979 2004-12-12 Fernando Perez <fperez@colorado.edu>
2974
2980
2975 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2981 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2976 generated by pygtk upon initialization if it was built without
2982 generated by pygtk upon initialization if it was built without
2977 threads (for matplotlib users). After a crash reported by
2983 threads (for matplotlib users). After a crash reported by
2978 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2984 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2979
2985
2980 * IPython/ipmaker.py (make_IPython): fix small bug in the
2986 * IPython/ipmaker.py (make_IPython): fix small bug in the
2981 import_some parameter for multiple imports.
2987 import_some parameter for multiple imports.
2982
2988
2983 * IPython/iplib.py (ipmagic): simplified the interface of
2989 * IPython/iplib.py (ipmagic): simplified the interface of
2984 ipmagic() to take a single string argument, just as it would be
2990 ipmagic() to take a single string argument, just as it would be
2985 typed at the IPython cmd line.
2991 typed at the IPython cmd line.
2986 (ipalias): Added new ipalias() with an interface identical to
2992 (ipalias): Added new ipalias() with an interface identical to
2987 ipmagic(). This completes exposing a pure python interface to the
2993 ipmagic(). This completes exposing a pure python interface to the
2988 alias and magic system, which can be used in loops or more complex
2994 alias and magic system, which can be used in loops or more complex
2989 code where IPython's automatic line mangling is not active.
2995 code where IPython's automatic line mangling is not active.
2990
2996
2991 * IPython/genutils.py (timing): changed interface of timing to
2997 * IPython/genutils.py (timing): changed interface of timing to
2992 simply run code once, which is the most common case. timings()
2998 simply run code once, which is the most common case. timings()
2993 remains unchanged, for the cases where you want multiple runs.
2999 remains unchanged, for the cases where you want multiple runs.
2994
3000
2995 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3001 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2996 bug where Python2.2 crashes with exec'ing code which does not end
3002 bug where Python2.2 crashes with exec'ing code which does not end
2997 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3003 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2998 before.
3004 before.
2999
3005
3000 2004-12-10 Fernando Perez <fperez@colorado.edu>
3006 2004-12-10 Fernando Perez <fperez@colorado.edu>
3001
3007
3002 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3008 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3003 -t to -T, to accomodate the new -t flag in %run (the %run and
3009 -t to -T, to accomodate the new -t flag in %run (the %run and
3004 %prun options are kind of intermixed, and it's not easy to change
3010 %prun options are kind of intermixed, and it's not easy to change
3005 this with the limitations of python's getopt).
3011 this with the limitations of python's getopt).
3006
3012
3007 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3013 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3008 the execution of scripts. It's not as fine-tuned as timeit.py,
3014 the execution of scripts. It's not as fine-tuned as timeit.py,
3009 but it works from inside ipython (and under 2.2, which lacks
3015 but it works from inside ipython (and under 2.2, which lacks
3010 timeit.py). Optionally a number of runs > 1 can be given for
3016 timeit.py). Optionally a number of runs > 1 can be given for
3011 timing very short-running code.
3017 timing very short-running code.
3012
3018
3013 * IPython/genutils.py (uniq_stable): new routine which returns a
3019 * IPython/genutils.py (uniq_stable): new routine which returns a
3014 list of unique elements in any iterable, but in stable order of
3020 list of unique elements in any iterable, but in stable order of
3015 appearance. I needed this for the ultraTB fixes, and it's a handy
3021 appearance. I needed this for the ultraTB fixes, and it's a handy
3016 utility.
3022 utility.
3017
3023
3018 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3024 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3019 dotted names in Verbose exceptions. This had been broken since
3025 dotted names in Verbose exceptions. This had been broken since
3020 the very start, now x.y will properly be printed in a Verbose
3026 the very start, now x.y will properly be printed in a Verbose
3021 traceback, instead of x being shown and y appearing always as an
3027 traceback, instead of x being shown and y appearing always as an
3022 'undefined global'. Getting this to work was a bit tricky,
3028 'undefined global'. Getting this to work was a bit tricky,
3023 because by default python tokenizers are stateless. Saved by
3029 because by default python tokenizers are stateless. Saved by
3024 python's ability to easily add a bit of state to an arbitrary
3030 python's ability to easily add a bit of state to an arbitrary
3025 function (without needing to build a full-blown callable object).
3031 function (without needing to build a full-blown callable object).
3026
3032
3027 Also big cleanup of this code, which had horrendous runtime
3033 Also big cleanup of this code, which had horrendous runtime
3028 lookups of zillions of attributes for colorization. Moved all
3034 lookups of zillions of attributes for colorization. Moved all
3029 this code into a few templates, which make it cleaner and quicker.
3035 this code into a few templates, which make it cleaner and quicker.
3030
3036
3031 Printout quality was also improved for Verbose exceptions: one
3037 Printout quality was also improved for Verbose exceptions: one
3032 variable per line, and memory addresses are printed (this can be
3038 variable per line, and memory addresses are printed (this can be
3033 quite handy in nasty debugging situations, which is what Verbose
3039 quite handy in nasty debugging situations, which is what Verbose
3034 is for).
3040 is for).
3035
3041
3036 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3042 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3037 the command line as scripts to be loaded by embedded instances.
3043 the command line as scripts to be loaded by embedded instances.
3038 Doing so has the potential for an infinite recursion if there are
3044 Doing so has the potential for an infinite recursion if there are
3039 exceptions thrown in the process. This fixes a strange crash
3045 exceptions thrown in the process. This fixes a strange crash
3040 reported by Philippe MULLER <muller-AT-irit.fr>.
3046 reported by Philippe MULLER <muller-AT-irit.fr>.
3041
3047
3042 2004-12-09 Fernando Perez <fperez@colorado.edu>
3048 2004-12-09 Fernando Perez <fperez@colorado.edu>
3043
3049
3044 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3050 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3045 to reflect new names in matplotlib, which now expose the
3051 to reflect new names in matplotlib, which now expose the
3046 matlab-compatible interface via a pylab module instead of the
3052 matlab-compatible interface via a pylab module instead of the
3047 'matlab' name. The new code is backwards compatible, so users of
3053 'matlab' name. The new code is backwards compatible, so users of
3048 all matplotlib versions are OK. Patch by J. Hunter.
3054 all matplotlib versions are OK. Patch by J. Hunter.
3049
3055
3050 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3056 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3051 of __init__ docstrings for instances (class docstrings are already
3057 of __init__ docstrings for instances (class docstrings are already
3052 automatically printed). Instances with customized docstrings
3058 automatically printed). Instances with customized docstrings
3053 (indep. of the class) are also recognized and all 3 separate
3059 (indep. of the class) are also recognized and all 3 separate
3054 docstrings are printed (instance, class, constructor). After some
3060 docstrings are printed (instance, class, constructor). After some
3055 comments/suggestions by J. Hunter.
3061 comments/suggestions by J. Hunter.
3056
3062
3057 2004-12-05 Fernando Perez <fperez@colorado.edu>
3063 2004-12-05 Fernando Perez <fperez@colorado.edu>
3058
3064
3059 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3065 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3060 warnings when tab-completion fails and triggers an exception.
3066 warnings when tab-completion fails and triggers an exception.
3061
3067
3062 2004-12-03 Fernando Perez <fperez@colorado.edu>
3068 2004-12-03 Fernando Perez <fperez@colorado.edu>
3063
3069
3064 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3070 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3065 be triggered when using 'run -p'. An incorrect option flag was
3071 be triggered when using 'run -p'. An incorrect option flag was
3066 being set ('d' instead of 'D').
3072 being set ('d' instead of 'D').
3067 (manpage): fix missing escaped \- sign.
3073 (manpage): fix missing escaped \- sign.
3068
3074
3069 2004-11-30 *** Released version 0.6.5
3075 2004-11-30 *** Released version 0.6.5
3070
3076
3071 2004-11-30 Fernando Perez <fperez@colorado.edu>
3077 2004-11-30 Fernando Perez <fperez@colorado.edu>
3072
3078
3073 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3079 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3074 setting with -d option.
3080 setting with -d option.
3075
3081
3076 * setup.py (docfiles): Fix problem where the doc glob I was using
3082 * setup.py (docfiles): Fix problem where the doc glob I was using
3077 was COMPLETELY BROKEN. It was giving the right files by pure
3083 was COMPLETELY BROKEN. It was giving the right files by pure
3078 accident, but failed once I tried to include ipython.el. Note:
3084 accident, but failed once I tried to include ipython.el. Note:
3079 glob() does NOT allow you to do exclusion on multiple endings!
3085 glob() does NOT allow you to do exclusion on multiple endings!
3080
3086
3081 2004-11-29 Fernando Perez <fperez@colorado.edu>
3087 2004-11-29 Fernando Perez <fperez@colorado.edu>
3082
3088
3083 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3089 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3084 the manpage as the source. Better formatting & consistency.
3090 the manpage as the source. Better formatting & consistency.
3085
3091
3086 * IPython/Magic.py (magic_run): Added new -d option, to run
3092 * IPython/Magic.py (magic_run): Added new -d option, to run
3087 scripts under the control of the python pdb debugger. Note that
3093 scripts under the control of the python pdb debugger. Note that
3088 this required changing the %prun option -d to -D, to avoid a clash
3094 this required changing the %prun option -d to -D, to avoid a clash
3089 (since %run must pass options to %prun, and getopt is too dumb to
3095 (since %run must pass options to %prun, and getopt is too dumb to
3090 handle options with string values with embedded spaces). Thanks
3096 handle options with string values with embedded spaces). Thanks
3091 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3097 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3092 (magic_who_ls): added type matching to %who and %whos, so that one
3098 (magic_who_ls): added type matching to %who and %whos, so that one
3093 can filter their output to only include variables of certain
3099 can filter their output to only include variables of certain
3094 types. Another suggestion by Matthew.
3100 types. Another suggestion by Matthew.
3095 (magic_whos): Added memory summaries in kb and Mb for arrays.
3101 (magic_whos): Added memory summaries in kb and Mb for arrays.
3096 (magic_who): Improve formatting (break lines every 9 vars).
3102 (magic_who): Improve formatting (break lines every 9 vars).
3097
3103
3098 2004-11-28 Fernando Perez <fperez@colorado.edu>
3104 2004-11-28 Fernando Perez <fperez@colorado.edu>
3099
3105
3100 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3106 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3101 cache when empty lines were present.
3107 cache when empty lines were present.
3102
3108
3103 2004-11-24 Fernando Perez <fperez@colorado.edu>
3109 2004-11-24 Fernando Perez <fperez@colorado.edu>
3104
3110
3105 * IPython/usage.py (__doc__): document the re-activated threading
3111 * IPython/usage.py (__doc__): document the re-activated threading
3106 options for WX and GTK.
3112 options for WX and GTK.
3107
3113
3108 2004-11-23 Fernando Perez <fperez@colorado.edu>
3114 2004-11-23 Fernando Perez <fperez@colorado.edu>
3109
3115
3110 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3116 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3111 the -wthread and -gthread options, along with a new -tk one to try
3117 the -wthread and -gthread options, along with a new -tk one to try
3112 and coordinate Tk threading with wx/gtk. The tk support is very
3118 and coordinate Tk threading with wx/gtk. The tk support is very
3113 platform dependent, since it seems to require Tcl and Tk to be
3119 platform dependent, since it seems to require Tcl and Tk to be
3114 built with threads (Fedora1/2 appears NOT to have it, but in
3120 built with threads (Fedora1/2 appears NOT to have it, but in
3115 Prabhu's Debian boxes it works OK). But even with some Tk
3121 Prabhu's Debian boxes it works OK). But even with some Tk
3116 limitations, this is a great improvement.
3122 limitations, this is a great improvement.
3117
3123
3118 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3124 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3119 info in user prompts. Patch by Prabhu.
3125 info in user prompts. Patch by Prabhu.
3120
3126
3121 2004-11-18 Fernando Perez <fperez@colorado.edu>
3127 2004-11-18 Fernando Perez <fperez@colorado.edu>
3122
3128
3123 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3129 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3124 EOFErrors and bail, to avoid infinite loops if a non-terminating
3130 EOFErrors and bail, to avoid infinite loops if a non-terminating
3125 file is fed into ipython. Patch submitted in issue 19 by user,
3131 file is fed into ipython. Patch submitted in issue 19 by user,
3126 many thanks.
3132 many thanks.
3127
3133
3128 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3134 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3129 autoquote/parens in continuation prompts, which can cause lots of
3135 autoquote/parens in continuation prompts, which can cause lots of
3130 problems. Closes roundup issue 20.
3136 problems. Closes roundup issue 20.
3131
3137
3132 2004-11-17 Fernando Perez <fperez@colorado.edu>
3138 2004-11-17 Fernando Perez <fperez@colorado.edu>
3133
3139
3134 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3140 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3135 reported as debian bug #280505. I'm not sure my local changelog
3141 reported as debian bug #280505. I'm not sure my local changelog
3136 entry has the proper debian format (Jack?).
3142 entry has the proper debian format (Jack?).
3137
3143
3138 2004-11-08 *** Released version 0.6.4
3144 2004-11-08 *** Released version 0.6.4
3139
3145
3140 2004-11-08 Fernando Perez <fperez@colorado.edu>
3146 2004-11-08 Fernando Perez <fperez@colorado.edu>
3141
3147
3142 * IPython/iplib.py (init_readline): Fix exit message for Windows
3148 * IPython/iplib.py (init_readline): Fix exit message for Windows
3143 when readline is active. Thanks to a report by Eric Jones
3149 when readline is active. Thanks to a report by Eric Jones
3144 <eric-AT-enthought.com>.
3150 <eric-AT-enthought.com>.
3145
3151
3146 2004-11-07 Fernando Perez <fperez@colorado.edu>
3152 2004-11-07 Fernando Perez <fperez@colorado.edu>
3147
3153
3148 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3154 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3149 sometimes seen by win2k/cygwin users.
3155 sometimes seen by win2k/cygwin users.
3150
3156
3151 2004-11-06 Fernando Perez <fperez@colorado.edu>
3157 2004-11-06 Fernando Perez <fperez@colorado.edu>
3152
3158
3153 * IPython/iplib.py (interact): Change the handling of %Exit from
3159 * IPython/iplib.py (interact): Change the handling of %Exit from
3154 trying to propagate a SystemExit to an internal ipython flag.
3160 trying to propagate a SystemExit to an internal ipython flag.
3155 This is less elegant than using Python's exception mechanism, but
3161 This is less elegant than using Python's exception mechanism, but
3156 I can't get that to work reliably with threads, so under -pylab
3162 I can't get that to work reliably with threads, so under -pylab
3157 %Exit was hanging IPython. Cross-thread exception handling is
3163 %Exit was hanging IPython. Cross-thread exception handling is
3158 really a bitch. Thaks to a bug report by Stephen Walton
3164 really a bitch. Thaks to a bug report by Stephen Walton
3159 <stephen.walton-AT-csun.edu>.
3165 <stephen.walton-AT-csun.edu>.
3160
3166
3161 2004-11-04 Fernando Perez <fperez@colorado.edu>
3167 2004-11-04 Fernando Perez <fperez@colorado.edu>
3162
3168
3163 * IPython/iplib.py (raw_input_original): store a pointer to the
3169 * IPython/iplib.py (raw_input_original): store a pointer to the
3164 true raw_input to harden against code which can modify it
3170 true raw_input to harden against code which can modify it
3165 (wx.py.PyShell does this and would otherwise crash ipython).
3171 (wx.py.PyShell does this and would otherwise crash ipython).
3166 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3172 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3167
3173
3168 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3174 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3169 Ctrl-C problem, which does not mess up the input line.
3175 Ctrl-C problem, which does not mess up the input line.
3170
3176
3171 2004-11-03 Fernando Perez <fperez@colorado.edu>
3177 2004-11-03 Fernando Perez <fperez@colorado.edu>
3172
3178
3173 * IPython/Release.py: Changed licensing to BSD, in all files.
3179 * IPython/Release.py: Changed licensing to BSD, in all files.
3174 (name): lowercase name for tarball/RPM release.
3180 (name): lowercase name for tarball/RPM release.
3175
3181
3176 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3182 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3177 use throughout ipython.
3183 use throughout ipython.
3178
3184
3179 * IPython/Magic.py (Magic._ofind): Switch to using the new
3185 * IPython/Magic.py (Magic._ofind): Switch to using the new
3180 OInspect.getdoc() function.
3186 OInspect.getdoc() function.
3181
3187
3182 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3188 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3183 of the line currently being canceled via Ctrl-C. It's extremely
3189 of the line currently being canceled via Ctrl-C. It's extremely
3184 ugly, but I don't know how to do it better (the problem is one of
3190 ugly, but I don't know how to do it better (the problem is one of
3185 handling cross-thread exceptions).
3191 handling cross-thread exceptions).
3186
3192
3187 2004-10-28 Fernando Perez <fperez@colorado.edu>
3193 2004-10-28 Fernando Perez <fperez@colorado.edu>
3188
3194
3189 * IPython/Shell.py (signal_handler): add signal handlers to trap
3195 * IPython/Shell.py (signal_handler): add signal handlers to trap
3190 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3196 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3191 report by Francesc Alted.
3197 report by Francesc Alted.
3192
3198
3193 2004-10-21 Fernando Perez <fperez@colorado.edu>
3199 2004-10-21 Fernando Perez <fperez@colorado.edu>
3194
3200
3195 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3201 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3196 to % for pysh syntax extensions.
3202 to % for pysh syntax extensions.
3197
3203
3198 2004-10-09 Fernando Perez <fperez@colorado.edu>
3204 2004-10-09 Fernando Perez <fperez@colorado.edu>
3199
3205
3200 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3206 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3201 arrays to print a more useful summary, without calling str(arr).
3207 arrays to print a more useful summary, without calling str(arr).
3202 This avoids the problem of extremely lengthy computations which
3208 This avoids the problem of extremely lengthy computations which
3203 occur if arr is large, and appear to the user as a system lockup
3209 occur if arr is large, and appear to the user as a system lockup
3204 with 100% cpu activity. After a suggestion by Kristian Sandberg
3210 with 100% cpu activity. After a suggestion by Kristian Sandberg
3205 <Kristian.Sandberg@colorado.edu>.
3211 <Kristian.Sandberg@colorado.edu>.
3206 (Magic.__init__): fix bug in global magic escapes not being
3212 (Magic.__init__): fix bug in global magic escapes not being
3207 correctly set.
3213 correctly set.
3208
3214
3209 2004-10-08 Fernando Perez <fperez@colorado.edu>
3215 2004-10-08 Fernando Perez <fperez@colorado.edu>
3210
3216
3211 * IPython/Magic.py (__license__): change to absolute imports of
3217 * IPython/Magic.py (__license__): change to absolute imports of
3212 ipython's own internal packages, to start adapting to the absolute
3218 ipython's own internal packages, to start adapting to the absolute
3213 import requirement of PEP-328.
3219 import requirement of PEP-328.
3214
3220
3215 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3221 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3216 files, and standardize author/license marks through the Release
3222 files, and standardize author/license marks through the Release
3217 module instead of having per/file stuff (except for files with
3223 module instead of having per/file stuff (except for files with
3218 particular licenses, like the MIT/PSF-licensed codes).
3224 particular licenses, like the MIT/PSF-licensed codes).
3219
3225
3220 * IPython/Debugger.py: remove dead code for python 2.1
3226 * IPython/Debugger.py: remove dead code for python 2.1
3221
3227
3222 2004-10-04 Fernando Perez <fperez@colorado.edu>
3228 2004-10-04 Fernando Perez <fperez@colorado.edu>
3223
3229
3224 * IPython/iplib.py (ipmagic): New function for accessing magics
3230 * IPython/iplib.py (ipmagic): New function for accessing magics
3225 via a normal python function call.
3231 via a normal python function call.
3226
3232
3227 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3233 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3228 from '@' to '%', to accomodate the new @decorator syntax of python
3234 from '@' to '%', to accomodate the new @decorator syntax of python
3229 2.4.
3235 2.4.
3230
3236
3231 2004-09-29 Fernando Perez <fperez@colorado.edu>
3237 2004-09-29 Fernando Perez <fperez@colorado.edu>
3232
3238
3233 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3239 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3234 matplotlib.use to prevent running scripts which try to switch
3240 matplotlib.use to prevent running scripts which try to switch
3235 interactive backends from within ipython. This will just crash
3241 interactive backends from within ipython. This will just crash
3236 the python interpreter, so we can't allow it (but a detailed error
3242 the python interpreter, so we can't allow it (but a detailed error
3237 is given to the user).
3243 is given to the user).
3238
3244
3239 2004-09-28 Fernando Perez <fperez@colorado.edu>
3245 2004-09-28 Fernando Perez <fperez@colorado.edu>
3240
3246
3241 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3247 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3242 matplotlib-related fixes so that using @run with non-matplotlib
3248 matplotlib-related fixes so that using @run with non-matplotlib
3243 scripts doesn't pop up spurious plot windows. This requires
3249 scripts doesn't pop up spurious plot windows. This requires
3244 matplotlib >= 0.63, where I had to make some changes as well.
3250 matplotlib >= 0.63, where I had to make some changes as well.
3245
3251
3246 * IPython/ipmaker.py (make_IPython): update version requirement to
3252 * IPython/ipmaker.py (make_IPython): update version requirement to
3247 python 2.2.
3253 python 2.2.
3248
3254
3249 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3255 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3250 banner arg for embedded customization.
3256 banner arg for embedded customization.
3251
3257
3252 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3258 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3253 explicit uses of __IP as the IPython's instance name. Now things
3259 explicit uses of __IP as the IPython's instance name. Now things
3254 are properly handled via the shell.name value. The actual code
3260 are properly handled via the shell.name value. The actual code
3255 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3261 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3256 is much better than before. I'll clean things completely when the
3262 is much better than before. I'll clean things completely when the
3257 magic stuff gets a real overhaul.
3263 magic stuff gets a real overhaul.
3258
3264
3259 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3265 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3260 minor changes to debian dir.
3266 minor changes to debian dir.
3261
3267
3262 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3268 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3263 pointer to the shell itself in the interactive namespace even when
3269 pointer to the shell itself in the interactive namespace even when
3264 a user-supplied dict is provided. This is needed for embedding
3270 a user-supplied dict is provided. This is needed for embedding
3265 purposes (found by tests with Michel Sanner).
3271 purposes (found by tests with Michel Sanner).
3266
3272
3267 2004-09-27 Fernando Perez <fperez@colorado.edu>
3273 2004-09-27 Fernando Perez <fperez@colorado.edu>
3268
3274
3269 * IPython/UserConfig/ipythonrc: remove []{} from
3275 * IPython/UserConfig/ipythonrc: remove []{} from
3270 readline_remove_delims, so that things like [modname.<TAB> do
3276 readline_remove_delims, so that things like [modname.<TAB> do
3271 proper completion. This disables [].TAB, but that's a less common
3277 proper completion. This disables [].TAB, but that's a less common
3272 case than module names in list comprehensions, for example.
3278 case than module names in list comprehensions, for example.
3273 Thanks to a report by Andrea Riciputi.
3279 Thanks to a report by Andrea Riciputi.
3274
3280
3275 2004-09-09 Fernando Perez <fperez@colorado.edu>
3281 2004-09-09 Fernando Perez <fperez@colorado.edu>
3276
3282
3277 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3283 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3278 blocking problems in win32 and osx. Fix by John.
3284 blocking problems in win32 and osx. Fix by John.
3279
3285
3280 2004-09-08 Fernando Perez <fperez@colorado.edu>
3286 2004-09-08 Fernando Perez <fperez@colorado.edu>
3281
3287
3282 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3288 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3283 for Win32 and OSX. Fix by John Hunter.
3289 for Win32 and OSX. Fix by John Hunter.
3284
3290
3285 2004-08-30 *** Released version 0.6.3
3291 2004-08-30 *** Released version 0.6.3
3286
3292
3287 2004-08-30 Fernando Perez <fperez@colorado.edu>
3293 2004-08-30 Fernando Perez <fperez@colorado.edu>
3288
3294
3289 * setup.py (isfile): Add manpages to list of dependent files to be
3295 * setup.py (isfile): Add manpages to list of dependent files to be
3290 updated.
3296 updated.
3291
3297
3292 2004-08-27 Fernando Perez <fperez@colorado.edu>
3298 2004-08-27 Fernando Perez <fperez@colorado.edu>
3293
3299
3294 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3300 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3295 for now. They don't really work with standalone WX/GTK code
3301 for now. They don't really work with standalone WX/GTK code
3296 (though matplotlib IS working fine with both of those backends).
3302 (though matplotlib IS working fine with both of those backends).
3297 This will neeed much more testing. I disabled most things with
3303 This will neeed much more testing. I disabled most things with
3298 comments, so turning it back on later should be pretty easy.
3304 comments, so turning it back on later should be pretty easy.
3299
3305
3300 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3306 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3301 autocalling of expressions like r'foo', by modifying the line
3307 autocalling of expressions like r'foo', by modifying the line
3302 split regexp. Closes
3308 split regexp. Closes
3303 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3309 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3304 Riley <ipythonbugs-AT-sabi.net>.
3310 Riley <ipythonbugs-AT-sabi.net>.
3305 (InteractiveShell.mainloop): honor --nobanner with banner
3311 (InteractiveShell.mainloop): honor --nobanner with banner
3306 extensions.
3312 extensions.
3307
3313
3308 * IPython/Shell.py: Significant refactoring of all classes, so
3314 * IPython/Shell.py: Significant refactoring of all classes, so
3309 that we can really support ALL matplotlib backends and threading
3315 that we can really support ALL matplotlib backends and threading
3310 models (John spotted a bug with Tk which required this). Now we
3316 models (John spotted a bug with Tk which required this). Now we
3311 should support single-threaded, WX-threads and GTK-threads, both
3317 should support single-threaded, WX-threads and GTK-threads, both
3312 for generic code and for matplotlib.
3318 for generic code and for matplotlib.
3313
3319
3314 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3320 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3315 -pylab, to simplify things for users. Will also remove the pylab
3321 -pylab, to simplify things for users. Will also remove the pylab
3316 profile, since now all of matplotlib configuration is directly
3322 profile, since now all of matplotlib configuration is directly
3317 handled here. This also reduces startup time.
3323 handled here. This also reduces startup time.
3318
3324
3319 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3325 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3320 shell wasn't being correctly called. Also in IPShellWX.
3326 shell wasn't being correctly called. Also in IPShellWX.
3321
3327
3322 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3328 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3323 fine-tune banner.
3329 fine-tune banner.
3324
3330
3325 * IPython/numutils.py (spike): Deprecate these spike functions,
3331 * IPython/numutils.py (spike): Deprecate these spike functions,
3326 delete (long deprecated) gnuplot_exec handler.
3332 delete (long deprecated) gnuplot_exec handler.
3327
3333
3328 2004-08-26 Fernando Perez <fperez@colorado.edu>
3334 2004-08-26 Fernando Perez <fperez@colorado.edu>
3329
3335
3330 * ipython.1: Update for threading options, plus some others which
3336 * ipython.1: Update for threading options, plus some others which
3331 were missing.
3337 were missing.
3332
3338
3333 * IPython/ipmaker.py (__call__): Added -wthread option for
3339 * IPython/ipmaker.py (__call__): Added -wthread option for
3334 wxpython thread handling. Make sure threading options are only
3340 wxpython thread handling. Make sure threading options are only
3335 valid at the command line.
3341 valid at the command line.
3336
3342
3337 * scripts/ipython: moved shell selection into a factory function
3343 * scripts/ipython: moved shell selection into a factory function
3338 in Shell.py, to keep the starter script to a minimum.
3344 in Shell.py, to keep the starter script to a minimum.
3339
3345
3340 2004-08-25 Fernando Perez <fperez@colorado.edu>
3346 2004-08-25 Fernando Perez <fperez@colorado.edu>
3341
3347
3342 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3348 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3343 John. Along with some recent changes he made to matplotlib, the
3349 John. Along with some recent changes he made to matplotlib, the
3344 next versions of both systems should work very well together.
3350 next versions of both systems should work very well together.
3345
3351
3346 2004-08-24 Fernando Perez <fperez@colorado.edu>
3352 2004-08-24 Fernando Perez <fperez@colorado.edu>
3347
3353
3348 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3354 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3349 tried to switch the profiling to using hotshot, but I'm getting
3355 tried to switch the profiling to using hotshot, but I'm getting
3350 strange errors from prof.runctx() there. I may be misreading the
3356 strange errors from prof.runctx() there. I may be misreading the
3351 docs, but it looks weird. For now the profiling code will
3357 docs, but it looks weird. For now the profiling code will
3352 continue to use the standard profiler.
3358 continue to use the standard profiler.
3353
3359
3354 2004-08-23 Fernando Perez <fperez@colorado.edu>
3360 2004-08-23 Fernando Perez <fperez@colorado.edu>
3355
3361
3356 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3362 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3357 threaded shell, by John Hunter. It's not quite ready yet, but
3363 threaded shell, by John Hunter. It's not quite ready yet, but
3358 close.
3364 close.
3359
3365
3360 2004-08-22 Fernando Perez <fperez@colorado.edu>
3366 2004-08-22 Fernando Perez <fperez@colorado.edu>
3361
3367
3362 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3368 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3363 in Magic and ultraTB.
3369 in Magic and ultraTB.
3364
3370
3365 * ipython.1: document threading options in manpage.
3371 * ipython.1: document threading options in manpage.
3366
3372
3367 * scripts/ipython: Changed name of -thread option to -gthread,
3373 * scripts/ipython: Changed name of -thread option to -gthread,
3368 since this is GTK specific. I want to leave the door open for a
3374 since this is GTK specific. I want to leave the door open for a
3369 -wthread option for WX, which will most likely be necessary. This
3375 -wthread option for WX, which will most likely be necessary. This
3370 change affects usage and ipmaker as well.
3376 change affects usage and ipmaker as well.
3371
3377
3372 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3378 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3373 handle the matplotlib shell issues. Code by John Hunter
3379 handle the matplotlib shell issues. Code by John Hunter
3374 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3380 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3375 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3381 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3376 broken (and disabled for end users) for now, but it puts the
3382 broken (and disabled for end users) for now, but it puts the
3377 infrastructure in place.
3383 infrastructure in place.
3378
3384
3379 2004-08-21 Fernando Perez <fperez@colorado.edu>
3385 2004-08-21 Fernando Perez <fperez@colorado.edu>
3380
3386
3381 * ipythonrc-pylab: Add matplotlib support.
3387 * ipythonrc-pylab: Add matplotlib support.
3382
3388
3383 * matplotlib_config.py: new files for matplotlib support, part of
3389 * matplotlib_config.py: new files for matplotlib support, part of
3384 the pylab profile.
3390 the pylab profile.
3385
3391
3386 * IPython/usage.py (__doc__): documented the threading options.
3392 * IPython/usage.py (__doc__): documented the threading options.
3387
3393
3388 2004-08-20 Fernando Perez <fperez@colorado.edu>
3394 2004-08-20 Fernando Perez <fperez@colorado.edu>
3389
3395
3390 * ipython: Modified the main calling routine to handle the -thread
3396 * ipython: Modified the main calling routine to handle the -thread
3391 and -mpthread options. This needs to be done as a top-level hack,
3397 and -mpthread options. This needs to be done as a top-level hack,
3392 because it determines which class to instantiate for IPython
3398 because it determines which class to instantiate for IPython
3393 itself.
3399 itself.
3394
3400
3395 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3401 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3396 classes to support multithreaded GTK operation without blocking,
3402 classes to support multithreaded GTK operation without blocking,
3397 and matplotlib with all backends. This is a lot of still very
3403 and matplotlib with all backends. This is a lot of still very
3398 experimental code, and threads are tricky. So it may still have a
3404 experimental code, and threads are tricky. So it may still have a
3399 few rough edges... This code owes a lot to
3405 few rough edges... This code owes a lot to
3400 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3406 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3401 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3407 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3402 to John Hunter for all the matplotlib work.
3408 to John Hunter for all the matplotlib work.
3403
3409
3404 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3410 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3405 options for gtk thread and matplotlib support.
3411 options for gtk thread and matplotlib support.
3406
3412
3407 2004-08-16 Fernando Perez <fperez@colorado.edu>
3413 2004-08-16 Fernando Perez <fperez@colorado.edu>
3408
3414
3409 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3415 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3410 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3416 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3411 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3417 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3412
3418
3413 2004-08-11 Fernando Perez <fperez@colorado.edu>
3419 2004-08-11 Fernando Perez <fperez@colorado.edu>
3414
3420
3415 * setup.py (isfile): Fix build so documentation gets updated for
3421 * setup.py (isfile): Fix build so documentation gets updated for
3416 rpms (it was only done for .tgz builds).
3422 rpms (it was only done for .tgz builds).
3417
3423
3418 2004-08-10 Fernando Perez <fperez@colorado.edu>
3424 2004-08-10 Fernando Perez <fperez@colorado.edu>
3419
3425
3420 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3426 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3421
3427
3422 * iplib.py : Silence syntax error exceptions in tab-completion.
3428 * iplib.py : Silence syntax error exceptions in tab-completion.
3423
3429
3424 2004-08-05 Fernando Perez <fperez@colorado.edu>
3430 2004-08-05 Fernando Perez <fperez@colorado.edu>
3425
3431
3426 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3432 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3427 'color off' mark for continuation prompts. This was causing long
3433 'color off' mark for continuation prompts. This was causing long
3428 continuation lines to mis-wrap.
3434 continuation lines to mis-wrap.
3429
3435
3430 2004-08-01 Fernando Perez <fperez@colorado.edu>
3436 2004-08-01 Fernando Perez <fperez@colorado.edu>
3431
3437
3432 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3438 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3433 for building ipython to be a parameter. All this is necessary
3439 for building ipython to be a parameter. All this is necessary
3434 right now to have a multithreaded version, but this insane
3440 right now to have a multithreaded version, but this insane
3435 non-design will be cleaned up soon. For now, it's a hack that
3441 non-design will be cleaned up soon. For now, it's a hack that
3436 works.
3442 works.
3437
3443
3438 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3444 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3439 args in various places. No bugs so far, but it's a dangerous
3445 args in various places. No bugs so far, but it's a dangerous
3440 practice.
3446 practice.
3441
3447
3442 2004-07-31 Fernando Perez <fperez@colorado.edu>
3448 2004-07-31 Fernando Perez <fperez@colorado.edu>
3443
3449
3444 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3450 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3445 fix completion of files with dots in their names under most
3451 fix completion of files with dots in their names under most
3446 profiles (pysh was OK because the completion order is different).
3452 profiles (pysh was OK because the completion order is different).
3447
3453
3448 2004-07-27 Fernando Perez <fperez@colorado.edu>
3454 2004-07-27 Fernando Perez <fperez@colorado.edu>
3449
3455
3450 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3456 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3451 keywords manually, b/c the one in keyword.py was removed in python
3457 keywords manually, b/c the one in keyword.py was removed in python
3452 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3458 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3453 This is NOT a bug under python 2.3 and earlier.
3459 This is NOT a bug under python 2.3 and earlier.
3454
3460
3455 2004-07-26 Fernando Perez <fperez@colorado.edu>
3461 2004-07-26 Fernando Perez <fperez@colorado.edu>
3456
3462
3457 * IPython/ultraTB.py (VerboseTB.text): Add another
3463 * IPython/ultraTB.py (VerboseTB.text): Add another
3458 linecache.checkcache() call to try to prevent inspect.py from
3464 linecache.checkcache() call to try to prevent inspect.py from
3459 crashing under python 2.3. I think this fixes
3465 crashing under python 2.3. I think this fixes
3460 http://www.scipy.net/roundup/ipython/issue17.
3466 http://www.scipy.net/roundup/ipython/issue17.
3461
3467
3462 2004-07-26 *** Released version 0.6.2
3468 2004-07-26 *** Released version 0.6.2
3463
3469
3464 2004-07-26 Fernando Perez <fperez@colorado.edu>
3470 2004-07-26 Fernando Perez <fperez@colorado.edu>
3465
3471
3466 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3472 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3467 fail for any number.
3473 fail for any number.
3468 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3474 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3469 empty bookmarks.
3475 empty bookmarks.
3470
3476
3471 2004-07-26 *** Released version 0.6.1
3477 2004-07-26 *** Released version 0.6.1
3472
3478
3473 2004-07-26 Fernando Perez <fperez@colorado.edu>
3479 2004-07-26 Fernando Perez <fperez@colorado.edu>
3474
3480
3475 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3481 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3476
3482
3477 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3483 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3478 escaping '()[]{}' in filenames.
3484 escaping '()[]{}' in filenames.
3479
3485
3480 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3486 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3481 Python 2.2 users who lack a proper shlex.split.
3487 Python 2.2 users who lack a proper shlex.split.
3482
3488
3483 2004-07-19 Fernando Perez <fperez@colorado.edu>
3489 2004-07-19 Fernando Perez <fperez@colorado.edu>
3484
3490
3485 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3491 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3486 for reading readline's init file. I follow the normal chain:
3492 for reading readline's init file. I follow the normal chain:
3487 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3493 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3488 report by Mike Heeter. This closes
3494 report by Mike Heeter. This closes
3489 http://www.scipy.net/roundup/ipython/issue16.
3495 http://www.scipy.net/roundup/ipython/issue16.
3490
3496
3491 2004-07-18 Fernando Perez <fperez@colorado.edu>
3497 2004-07-18 Fernando Perez <fperez@colorado.edu>
3492
3498
3493 * IPython/iplib.py (__init__): Add better handling of '\' under
3499 * IPython/iplib.py (__init__): Add better handling of '\' under
3494 Win32 for filenames. After a patch by Ville.
3500 Win32 for filenames. After a patch by Ville.
3495
3501
3496 2004-07-17 Fernando Perez <fperez@colorado.edu>
3502 2004-07-17 Fernando Perez <fperez@colorado.edu>
3497
3503
3498 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3504 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3499 autocalling would be triggered for 'foo is bar' if foo is
3505 autocalling would be triggered for 'foo is bar' if foo is
3500 callable. I also cleaned up the autocall detection code to use a
3506 callable. I also cleaned up the autocall detection code to use a
3501 regexp, which is faster. Bug reported by Alexander Schmolck.
3507 regexp, which is faster. Bug reported by Alexander Schmolck.
3502
3508
3503 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3509 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3504 '?' in them would confuse the help system. Reported by Alex
3510 '?' in them would confuse the help system. Reported by Alex
3505 Schmolck.
3511 Schmolck.
3506
3512
3507 2004-07-16 Fernando Perez <fperez@colorado.edu>
3513 2004-07-16 Fernando Perez <fperez@colorado.edu>
3508
3514
3509 * IPython/GnuplotInteractive.py (__all__): added plot2.
3515 * IPython/GnuplotInteractive.py (__all__): added plot2.
3510
3516
3511 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3517 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3512 plotting dictionaries, lists or tuples of 1d arrays.
3518 plotting dictionaries, lists or tuples of 1d arrays.
3513
3519
3514 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3520 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3515 optimizations.
3521 optimizations.
3516
3522
3517 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3523 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3518 the information which was there from Janko's original IPP code:
3524 the information which was there from Janko's original IPP code:
3519
3525
3520 03.05.99 20:53 porto.ifm.uni-kiel.de
3526 03.05.99 20:53 porto.ifm.uni-kiel.de
3521 --Started changelog.
3527 --Started changelog.
3522 --make clear do what it say it does
3528 --make clear do what it say it does
3523 --added pretty output of lines from inputcache
3529 --added pretty output of lines from inputcache
3524 --Made Logger a mixin class, simplifies handling of switches
3530 --Made Logger a mixin class, simplifies handling of switches
3525 --Added own completer class. .string<TAB> expands to last history
3531 --Added own completer class. .string<TAB> expands to last history
3526 line which starts with string. The new expansion is also present
3532 line which starts with string. The new expansion is also present
3527 with Ctrl-r from the readline library. But this shows, who this
3533 with Ctrl-r from the readline library. But this shows, who this
3528 can be done for other cases.
3534 can be done for other cases.
3529 --Added convention that all shell functions should accept a
3535 --Added convention that all shell functions should accept a
3530 parameter_string This opens the door for different behaviour for
3536 parameter_string This opens the door for different behaviour for
3531 each function. @cd is a good example of this.
3537 each function. @cd is a good example of this.
3532
3538
3533 04.05.99 12:12 porto.ifm.uni-kiel.de
3539 04.05.99 12:12 porto.ifm.uni-kiel.de
3534 --added logfile rotation
3540 --added logfile rotation
3535 --added new mainloop method which freezes first the namespace
3541 --added new mainloop method which freezes first the namespace
3536
3542
3537 07.05.99 21:24 porto.ifm.uni-kiel.de
3543 07.05.99 21:24 porto.ifm.uni-kiel.de
3538 --added the docreader classes. Now there is a help system.
3544 --added the docreader classes. Now there is a help system.
3539 -This is only a first try. Currently it's not easy to put new
3545 -This is only a first try. Currently it's not easy to put new
3540 stuff in the indices. But this is the way to go. Info would be
3546 stuff in the indices. But this is the way to go. Info would be
3541 better, but HTML is every where and not everybody has an info
3547 better, but HTML is every where and not everybody has an info
3542 system installed and it's not so easy to change html-docs to info.
3548 system installed and it's not so easy to change html-docs to info.
3543 --added global logfile option
3549 --added global logfile option
3544 --there is now a hook for object inspection method pinfo needs to
3550 --there is now a hook for object inspection method pinfo needs to
3545 be provided for this. Can be reached by two '??'.
3551 be provided for this. Can be reached by two '??'.
3546
3552
3547 08.05.99 20:51 porto.ifm.uni-kiel.de
3553 08.05.99 20:51 porto.ifm.uni-kiel.de
3548 --added a README
3554 --added a README
3549 --bug in rc file. Something has changed so functions in the rc
3555 --bug in rc file. Something has changed so functions in the rc
3550 file need to reference the shell and not self. Not clear if it's a
3556 file need to reference the shell and not self. Not clear if it's a
3551 bug or feature.
3557 bug or feature.
3552 --changed rc file for new behavior
3558 --changed rc file for new behavior
3553
3559
3554 2004-07-15 Fernando Perez <fperez@colorado.edu>
3560 2004-07-15 Fernando Perez <fperez@colorado.edu>
3555
3561
3556 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3562 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3557 cache was falling out of sync in bizarre manners when multi-line
3563 cache was falling out of sync in bizarre manners when multi-line
3558 input was present. Minor optimizations and cleanup.
3564 input was present. Minor optimizations and cleanup.
3559
3565
3560 (Logger): Remove old Changelog info for cleanup. This is the
3566 (Logger): Remove old Changelog info for cleanup. This is the
3561 information which was there from Janko's original code:
3567 information which was there from Janko's original code:
3562
3568
3563 Changes to Logger: - made the default log filename a parameter
3569 Changes to Logger: - made the default log filename a parameter
3564
3570
3565 - put a check for lines beginning with !@? in log(). Needed
3571 - put a check for lines beginning with !@? in log(). Needed
3566 (even if the handlers properly log their lines) for mid-session
3572 (even if the handlers properly log their lines) for mid-session
3567 logging activation to work properly. Without this, lines logged
3573 logging activation to work properly. Without this, lines logged
3568 in mid session, which get read from the cache, would end up
3574 in mid session, which get read from the cache, would end up
3569 'bare' (with !@? in the open) in the log. Now they are caught
3575 'bare' (with !@? in the open) in the log. Now they are caught
3570 and prepended with a #.
3576 and prepended with a #.
3571
3577
3572 * IPython/iplib.py (InteractiveShell.init_readline): added check
3578 * IPython/iplib.py (InteractiveShell.init_readline): added check
3573 in case MagicCompleter fails to be defined, so we don't crash.
3579 in case MagicCompleter fails to be defined, so we don't crash.
3574
3580
3575 2004-07-13 Fernando Perez <fperez@colorado.edu>
3581 2004-07-13 Fernando Perez <fperez@colorado.edu>
3576
3582
3577 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3583 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3578 of EPS if the requested filename ends in '.eps'.
3584 of EPS if the requested filename ends in '.eps'.
3579
3585
3580 2004-07-04 Fernando Perez <fperez@colorado.edu>
3586 2004-07-04 Fernando Perez <fperez@colorado.edu>
3581
3587
3582 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3588 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3583 escaping of quotes when calling the shell.
3589 escaping of quotes when calling the shell.
3584
3590
3585 2004-07-02 Fernando Perez <fperez@colorado.edu>
3591 2004-07-02 Fernando Perez <fperez@colorado.edu>
3586
3592
3587 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3593 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3588 gettext not working because we were clobbering '_'. Fixes
3594 gettext not working because we were clobbering '_'. Fixes
3589 http://www.scipy.net/roundup/ipython/issue6.
3595 http://www.scipy.net/roundup/ipython/issue6.
3590
3596
3591 2004-07-01 Fernando Perez <fperez@colorado.edu>
3597 2004-07-01 Fernando Perez <fperez@colorado.edu>
3592
3598
3593 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3599 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3594 into @cd. Patch by Ville.
3600 into @cd. Patch by Ville.
3595
3601
3596 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3602 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3597 new function to store things after ipmaker runs. Patch by Ville.
3603 new function to store things after ipmaker runs. Patch by Ville.
3598 Eventually this will go away once ipmaker is removed and the class
3604 Eventually this will go away once ipmaker is removed and the class
3599 gets cleaned up, but for now it's ok. Key functionality here is
3605 gets cleaned up, but for now it's ok. Key functionality here is
3600 the addition of the persistent storage mechanism, a dict for
3606 the addition of the persistent storage mechanism, a dict for
3601 keeping data across sessions (for now just bookmarks, but more can
3607 keeping data across sessions (for now just bookmarks, but more can
3602 be implemented later).
3608 be implemented later).
3603
3609
3604 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3610 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3605 persistent across sections. Patch by Ville, I modified it
3611 persistent across sections. Patch by Ville, I modified it
3606 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3612 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3607 added a '-l' option to list all bookmarks.
3613 added a '-l' option to list all bookmarks.
3608
3614
3609 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3615 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3610 center for cleanup. Registered with atexit.register(). I moved
3616 center for cleanup. Registered with atexit.register(). I moved
3611 here the old exit_cleanup(). After a patch by Ville.
3617 here the old exit_cleanup(). After a patch by Ville.
3612
3618
3613 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3619 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3614 characters in the hacked shlex_split for python 2.2.
3620 characters in the hacked shlex_split for python 2.2.
3615
3621
3616 * IPython/iplib.py (file_matches): more fixes to filenames with
3622 * IPython/iplib.py (file_matches): more fixes to filenames with
3617 whitespace in them. It's not perfect, but limitations in python's
3623 whitespace in them. It's not perfect, but limitations in python's
3618 readline make it impossible to go further.
3624 readline make it impossible to go further.
3619
3625
3620 2004-06-29 Fernando Perez <fperez@colorado.edu>
3626 2004-06-29 Fernando Perez <fperez@colorado.edu>
3621
3627
3622 * IPython/iplib.py (file_matches): escape whitespace correctly in
3628 * IPython/iplib.py (file_matches): escape whitespace correctly in
3623 filename completions. Bug reported by Ville.
3629 filename completions. Bug reported by Ville.
3624
3630
3625 2004-06-28 Fernando Perez <fperez@colorado.edu>
3631 2004-06-28 Fernando Perez <fperez@colorado.edu>
3626
3632
3627 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3633 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3628 the history file will be called 'history-PROFNAME' (or just
3634 the history file will be called 'history-PROFNAME' (or just
3629 'history' if no profile is loaded). I was getting annoyed at
3635 'history' if no profile is loaded). I was getting annoyed at
3630 getting my Numerical work history clobbered by pysh sessions.
3636 getting my Numerical work history clobbered by pysh sessions.
3631
3637
3632 * IPython/iplib.py (InteractiveShell.__init__): Internal
3638 * IPython/iplib.py (InteractiveShell.__init__): Internal
3633 getoutputerror() function so that we can honor the system_verbose
3639 getoutputerror() function so that we can honor the system_verbose
3634 flag for _all_ system calls. I also added escaping of #
3640 flag for _all_ system calls. I also added escaping of #
3635 characters here to avoid confusing Itpl.
3641 characters here to avoid confusing Itpl.
3636
3642
3637 * IPython/Magic.py (shlex_split): removed call to shell in
3643 * IPython/Magic.py (shlex_split): removed call to shell in
3638 parse_options and replaced it with shlex.split(). The annoying
3644 parse_options and replaced it with shlex.split(). The annoying
3639 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3645 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3640 to backport it from 2.3, with several frail hacks (the shlex
3646 to backport it from 2.3, with several frail hacks (the shlex
3641 module is rather limited in 2.2). Thanks to a suggestion by Ville
3647 module is rather limited in 2.2). Thanks to a suggestion by Ville
3642 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3648 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3643 problem.
3649 problem.
3644
3650
3645 (Magic.magic_system_verbose): new toggle to print the actual
3651 (Magic.magic_system_verbose): new toggle to print the actual
3646 system calls made by ipython. Mainly for debugging purposes.
3652 system calls made by ipython. Mainly for debugging purposes.
3647
3653
3648 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3654 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3649 doesn't support persistence. Reported (and fix suggested) by
3655 doesn't support persistence. Reported (and fix suggested) by
3650 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3656 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3651
3657
3652 2004-06-26 Fernando Perez <fperez@colorado.edu>
3658 2004-06-26 Fernando Perez <fperez@colorado.edu>
3653
3659
3654 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3660 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3655 continue prompts.
3661 continue prompts.
3656
3662
3657 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3663 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3658 function (basically a big docstring) and a few more things here to
3664 function (basically a big docstring) and a few more things here to
3659 speedup startup. pysh.py is now very lightweight. We want because
3665 speedup startup. pysh.py is now very lightweight. We want because
3660 it gets execfile'd, while InterpreterExec gets imported, so
3666 it gets execfile'd, while InterpreterExec gets imported, so
3661 byte-compilation saves time.
3667 byte-compilation saves time.
3662
3668
3663 2004-06-25 Fernando Perez <fperez@colorado.edu>
3669 2004-06-25 Fernando Perez <fperez@colorado.edu>
3664
3670
3665 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3671 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3666 -NUM', which was recently broken.
3672 -NUM', which was recently broken.
3667
3673
3668 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3674 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3669 in multi-line input (but not !!, which doesn't make sense there).
3675 in multi-line input (but not !!, which doesn't make sense there).
3670
3676
3671 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3677 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3672 It's just too useful, and people can turn it off in the less
3678 It's just too useful, and people can turn it off in the less
3673 common cases where it's a problem.
3679 common cases where it's a problem.
3674
3680
3675 2004-06-24 Fernando Perez <fperez@colorado.edu>
3681 2004-06-24 Fernando Perez <fperez@colorado.edu>
3676
3682
3677 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3683 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3678 special syntaxes (like alias calling) is now allied in multi-line
3684 special syntaxes (like alias calling) is now allied in multi-line
3679 input. This is still _very_ experimental, but it's necessary for
3685 input. This is still _very_ experimental, but it's necessary for
3680 efficient shell usage combining python looping syntax with system
3686 efficient shell usage combining python looping syntax with system
3681 calls. For now it's restricted to aliases, I don't think it
3687 calls. For now it's restricted to aliases, I don't think it
3682 really even makes sense to have this for magics.
3688 really even makes sense to have this for magics.
3683
3689
3684 2004-06-23 Fernando Perez <fperez@colorado.edu>
3690 2004-06-23 Fernando Perez <fperez@colorado.edu>
3685
3691
3686 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3692 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3687 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3693 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3688
3694
3689 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3695 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3690 extensions under Windows (after code sent by Gary Bishop). The
3696 extensions under Windows (after code sent by Gary Bishop). The
3691 extensions considered 'executable' are stored in IPython's rc
3697 extensions considered 'executable' are stored in IPython's rc
3692 structure as win_exec_ext.
3698 structure as win_exec_ext.
3693
3699
3694 * IPython/genutils.py (shell): new function, like system() but
3700 * IPython/genutils.py (shell): new function, like system() but
3695 without return value. Very useful for interactive shell work.
3701 without return value. Very useful for interactive shell work.
3696
3702
3697 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3703 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3698 delete aliases.
3704 delete aliases.
3699
3705
3700 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3706 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3701 sure that the alias table doesn't contain python keywords.
3707 sure that the alias table doesn't contain python keywords.
3702
3708
3703 2004-06-21 Fernando Perez <fperez@colorado.edu>
3709 2004-06-21 Fernando Perez <fperez@colorado.edu>
3704
3710
3705 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3711 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3706 non-existent items are found in $PATH. Reported by Thorsten.
3712 non-existent items are found in $PATH. Reported by Thorsten.
3707
3713
3708 2004-06-20 Fernando Perez <fperez@colorado.edu>
3714 2004-06-20 Fernando Perez <fperez@colorado.edu>
3709
3715
3710 * IPython/iplib.py (complete): modified the completer so that the
3716 * IPython/iplib.py (complete): modified the completer so that the
3711 order of priorities can be easily changed at runtime.
3717 order of priorities can be easily changed at runtime.
3712
3718
3713 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3719 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3714 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3720 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3715
3721
3716 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3722 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3717 expand Python variables prepended with $ in all system calls. The
3723 expand Python variables prepended with $ in all system calls. The
3718 same was done to InteractiveShell.handle_shell_escape. Now all
3724 same was done to InteractiveShell.handle_shell_escape. Now all
3719 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3725 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3720 expansion of python variables and expressions according to the
3726 expansion of python variables and expressions according to the
3721 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3727 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3722
3728
3723 Though PEP-215 has been rejected, a similar (but simpler) one
3729 Though PEP-215 has been rejected, a similar (but simpler) one
3724 seems like it will go into Python 2.4, PEP-292 -
3730 seems like it will go into Python 2.4, PEP-292 -
3725 http://www.python.org/peps/pep-0292.html.
3731 http://www.python.org/peps/pep-0292.html.
3726
3732
3727 I'll keep the full syntax of PEP-215, since IPython has since the
3733 I'll keep the full syntax of PEP-215, since IPython has since the
3728 start used Ka-Ping Yee's reference implementation discussed there
3734 start used Ka-Ping Yee's reference implementation discussed there
3729 (Itpl), and I actually like the powerful semantics it offers.
3735 (Itpl), and I actually like the powerful semantics it offers.
3730
3736
3731 In order to access normal shell variables, the $ has to be escaped
3737 In order to access normal shell variables, the $ has to be escaped
3732 via an extra $. For example:
3738 via an extra $. For example:
3733
3739
3734 In [7]: PATH='a python variable'
3740 In [7]: PATH='a python variable'
3735
3741
3736 In [8]: !echo $PATH
3742 In [8]: !echo $PATH
3737 a python variable
3743 a python variable
3738
3744
3739 In [9]: !echo $$PATH
3745 In [9]: !echo $$PATH
3740 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3746 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3741
3747
3742 (Magic.parse_options): escape $ so the shell doesn't evaluate
3748 (Magic.parse_options): escape $ so the shell doesn't evaluate
3743 things prematurely.
3749 things prematurely.
3744
3750
3745 * IPython/iplib.py (InteractiveShell.call_alias): added the
3751 * IPython/iplib.py (InteractiveShell.call_alias): added the
3746 ability for aliases to expand python variables via $.
3752 ability for aliases to expand python variables via $.
3747
3753
3748 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3754 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3749 system, now there's a @rehash/@rehashx pair of magics. These work
3755 system, now there's a @rehash/@rehashx pair of magics. These work
3750 like the csh rehash command, and can be invoked at any time. They
3756 like the csh rehash command, and can be invoked at any time. They
3751 build a table of aliases to everything in the user's $PATH
3757 build a table of aliases to everything in the user's $PATH
3752 (@rehash uses everything, @rehashx is slower but only adds
3758 (@rehash uses everything, @rehashx is slower but only adds
3753 executable files). With this, the pysh.py-based shell profile can
3759 executable files). With this, the pysh.py-based shell profile can
3754 now simply call rehash upon startup, and full access to all
3760 now simply call rehash upon startup, and full access to all
3755 programs in the user's path is obtained.
3761 programs in the user's path is obtained.
3756
3762
3757 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3763 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3758 functionality is now fully in place. I removed the old dynamic
3764 functionality is now fully in place. I removed the old dynamic
3759 code generation based approach, in favor of a much lighter one
3765 code generation based approach, in favor of a much lighter one
3760 based on a simple dict. The advantage is that this allows me to
3766 based on a simple dict. The advantage is that this allows me to
3761 now have thousands of aliases with negligible cost (unthinkable
3767 now have thousands of aliases with negligible cost (unthinkable
3762 with the old system).
3768 with the old system).
3763
3769
3764 2004-06-19 Fernando Perez <fperez@colorado.edu>
3770 2004-06-19 Fernando Perez <fperez@colorado.edu>
3765
3771
3766 * IPython/iplib.py (__init__): extended MagicCompleter class to
3772 * IPython/iplib.py (__init__): extended MagicCompleter class to
3767 also complete (last in priority) on user aliases.
3773 also complete (last in priority) on user aliases.
3768
3774
3769 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3775 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3770 call to eval.
3776 call to eval.
3771 (ItplNS.__init__): Added a new class which functions like Itpl,
3777 (ItplNS.__init__): Added a new class which functions like Itpl,
3772 but allows configuring the namespace for the evaluation to occur
3778 but allows configuring the namespace for the evaluation to occur
3773 in.
3779 in.
3774
3780
3775 2004-06-18 Fernando Perez <fperez@colorado.edu>
3781 2004-06-18 Fernando Perez <fperez@colorado.edu>
3776
3782
3777 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3783 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3778 better message when 'exit' or 'quit' are typed (a common newbie
3784 better message when 'exit' or 'quit' are typed (a common newbie
3779 confusion).
3785 confusion).
3780
3786
3781 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3787 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3782 check for Windows users.
3788 check for Windows users.
3783
3789
3784 * IPython/iplib.py (InteractiveShell.user_setup): removed
3790 * IPython/iplib.py (InteractiveShell.user_setup): removed
3785 disabling of colors for Windows. I'll test at runtime and issue a
3791 disabling of colors for Windows. I'll test at runtime and issue a
3786 warning if Gary's readline isn't found, as to nudge users to
3792 warning if Gary's readline isn't found, as to nudge users to
3787 download it.
3793 download it.
3788
3794
3789 2004-06-16 Fernando Perez <fperez@colorado.edu>
3795 2004-06-16 Fernando Perez <fperez@colorado.edu>
3790
3796
3791 * IPython/genutils.py (Stream.__init__): changed to print errors
3797 * IPython/genutils.py (Stream.__init__): changed to print errors
3792 to sys.stderr. I had a circular dependency here. Now it's
3798 to sys.stderr. I had a circular dependency here. Now it's
3793 possible to run ipython as IDLE's shell (consider this pre-alpha,
3799 possible to run ipython as IDLE's shell (consider this pre-alpha,
3794 since true stdout things end up in the starting terminal instead
3800 since true stdout things end up in the starting terminal instead
3795 of IDLE's out).
3801 of IDLE's out).
3796
3802
3797 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3803 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3798 users who haven't # updated their prompt_in2 definitions. Remove
3804 users who haven't # updated their prompt_in2 definitions. Remove
3799 eventually.
3805 eventually.
3800 (multiple_replace): added credit to original ASPN recipe.
3806 (multiple_replace): added credit to original ASPN recipe.
3801
3807
3802 2004-06-15 Fernando Perez <fperez@colorado.edu>
3808 2004-06-15 Fernando Perez <fperez@colorado.edu>
3803
3809
3804 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3810 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3805 list of auto-defined aliases.
3811 list of auto-defined aliases.
3806
3812
3807 2004-06-13 Fernando Perez <fperez@colorado.edu>
3813 2004-06-13 Fernando Perez <fperez@colorado.edu>
3808
3814
3809 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3815 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3810 install was really requested (so setup.py can be used for other
3816 install was really requested (so setup.py can be used for other
3811 things under Windows).
3817 things under Windows).
3812
3818
3813 2004-06-10 Fernando Perez <fperez@colorado.edu>
3819 2004-06-10 Fernando Perez <fperez@colorado.edu>
3814
3820
3815 * IPython/Logger.py (Logger.create_log): Manually remove any old
3821 * IPython/Logger.py (Logger.create_log): Manually remove any old
3816 backup, since os.remove may fail under Windows. Fixes bug
3822 backup, since os.remove may fail under Windows. Fixes bug
3817 reported by Thorsten.
3823 reported by Thorsten.
3818
3824
3819 2004-06-09 Fernando Perez <fperez@colorado.edu>
3825 2004-06-09 Fernando Perez <fperez@colorado.edu>
3820
3826
3821 * examples/example-embed.py: fixed all references to %n (replaced
3827 * examples/example-embed.py: fixed all references to %n (replaced
3822 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3828 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3823 for all examples and the manual as well.
3829 for all examples and the manual as well.
3824
3830
3825 2004-06-08 Fernando Perez <fperez@colorado.edu>
3831 2004-06-08 Fernando Perez <fperez@colorado.edu>
3826
3832
3827 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3833 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3828 alignment and color management. All 3 prompt subsystems now
3834 alignment and color management. All 3 prompt subsystems now
3829 inherit from BasePrompt.
3835 inherit from BasePrompt.
3830
3836
3831 * tools/release: updates for windows installer build and tag rpms
3837 * tools/release: updates for windows installer build and tag rpms
3832 with python version (since paths are fixed).
3838 with python version (since paths are fixed).
3833
3839
3834 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3840 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3835 which will become eventually obsolete. Also fixed the default
3841 which will become eventually obsolete. Also fixed the default
3836 prompt_in2 to use \D, so at least new users start with the correct
3842 prompt_in2 to use \D, so at least new users start with the correct
3837 defaults.
3843 defaults.
3838 WARNING: Users with existing ipythonrc files will need to apply
3844 WARNING: Users with existing ipythonrc files will need to apply
3839 this fix manually!
3845 this fix manually!
3840
3846
3841 * setup.py: make windows installer (.exe). This is finally the
3847 * setup.py: make windows installer (.exe). This is finally the
3842 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3848 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3843 which I hadn't included because it required Python 2.3 (or recent
3849 which I hadn't included because it required Python 2.3 (or recent
3844 distutils).
3850 distutils).
3845
3851
3846 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3852 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3847 usage of new '\D' escape.
3853 usage of new '\D' escape.
3848
3854
3849 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3855 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3850 lacks os.getuid())
3856 lacks os.getuid())
3851 (CachedOutput.set_colors): Added the ability to turn coloring
3857 (CachedOutput.set_colors): Added the ability to turn coloring
3852 on/off with @colors even for manually defined prompt colors. It
3858 on/off with @colors even for manually defined prompt colors. It
3853 uses a nasty global, but it works safely and via the generic color
3859 uses a nasty global, but it works safely and via the generic color
3854 handling mechanism.
3860 handling mechanism.
3855 (Prompt2.__init__): Introduced new escape '\D' for continuation
3861 (Prompt2.__init__): Introduced new escape '\D' for continuation
3856 prompts. It represents the counter ('\#') as dots.
3862 prompts. It represents the counter ('\#') as dots.
3857 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3863 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3858 need to update their ipythonrc files and replace '%n' with '\D' in
3864 need to update their ipythonrc files and replace '%n' with '\D' in
3859 their prompt_in2 settings everywhere. Sorry, but there's
3865 their prompt_in2 settings everywhere. Sorry, but there's
3860 otherwise no clean way to get all prompts to properly align. The
3866 otherwise no clean way to get all prompts to properly align. The
3861 ipythonrc shipped with IPython has been updated.
3867 ipythonrc shipped with IPython has been updated.
3862
3868
3863 2004-06-07 Fernando Perez <fperez@colorado.edu>
3869 2004-06-07 Fernando Perez <fperez@colorado.edu>
3864
3870
3865 * setup.py (isfile): Pass local_icons option to latex2html, so the
3871 * setup.py (isfile): Pass local_icons option to latex2html, so the
3866 resulting HTML file is self-contained. Thanks to
3872 resulting HTML file is self-contained. Thanks to
3867 dryice-AT-liu.com.cn for the tip.
3873 dryice-AT-liu.com.cn for the tip.
3868
3874
3869 * pysh.py: I created a new profile 'shell', which implements a
3875 * pysh.py: I created a new profile 'shell', which implements a
3870 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3876 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3871 system shell, nor will it become one anytime soon. It's mainly
3877 system shell, nor will it become one anytime soon. It's mainly
3872 meant to illustrate the use of the new flexible bash-like prompts.
3878 meant to illustrate the use of the new flexible bash-like prompts.
3873 I guess it could be used by hardy souls for true shell management,
3879 I guess it could be used by hardy souls for true shell management,
3874 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3880 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3875 profile. This uses the InterpreterExec extension provided by
3881 profile. This uses the InterpreterExec extension provided by
3876 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3882 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3877
3883
3878 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3884 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3879 auto-align itself with the length of the previous input prompt
3885 auto-align itself with the length of the previous input prompt
3880 (taking into account the invisible color escapes).
3886 (taking into account the invisible color escapes).
3881 (CachedOutput.__init__): Large restructuring of this class. Now
3887 (CachedOutput.__init__): Large restructuring of this class. Now
3882 all three prompts (primary1, primary2, output) are proper objects,
3888 all three prompts (primary1, primary2, output) are proper objects,
3883 managed by the 'parent' CachedOutput class. The code is still a
3889 managed by the 'parent' CachedOutput class. The code is still a
3884 bit hackish (all prompts share state via a pointer to the cache),
3890 bit hackish (all prompts share state via a pointer to the cache),
3885 but it's overall far cleaner than before.
3891 but it's overall far cleaner than before.
3886
3892
3887 * IPython/genutils.py (getoutputerror): modified to add verbose,
3893 * IPython/genutils.py (getoutputerror): modified to add verbose,
3888 debug and header options. This makes the interface of all getout*
3894 debug and header options. This makes the interface of all getout*
3889 functions uniform.
3895 functions uniform.
3890 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3896 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3891
3897
3892 * IPython/Magic.py (Magic.default_option): added a function to
3898 * IPython/Magic.py (Magic.default_option): added a function to
3893 allow registering default options for any magic command. This
3899 allow registering default options for any magic command. This
3894 makes it easy to have profiles which customize the magics globally
3900 makes it easy to have profiles which customize the magics globally
3895 for a certain use. The values set through this function are
3901 for a certain use. The values set through this function are
3896 picked up by the parse_options() method, which all magics should
3902 picked up by the parse_options() method, which all magics should
3897 use to parse their options.
3903 use to parse their options.
3898
3904
3899 * IPython/genutils.py (warn): modified the warnings framework to
3905 * IPython/genutils.py (warn): modified the warnings framework to
3900 use the Term I/O class. I'm trying to slowly unify all of
3906 use the Term I/O class. I'm trying to slowly unify all of
3901 IPython's I/O operations to pass through Term.
3907 IPython's I/O operations to pass through Term.
3902
3908
3903 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3909 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3904 the secondary prompt to correctly match the length of the primary
3910 the secondary prompt to correctly match the length of the primary
3905 one for any prompt. Now multi-line code will properly line up
3911 one for any prompt. Now multi-line code will properly line up
3906 even for path dependent prompts, such as the new ones available
3912 even for path dependent prompts, such as the new ones available
3907 via the prompt_specials.
3913 via the prompt_specials.
3908
3914
3909 2004-06-06 Fernando Perez <fperez@colorado.edu>
3915 2004-06-06 Fernando Perez <fperez@colorado.edu>
3910
3916
3911 * IPython/Prompts.py (prompt_specials): Added the ability to have
3917 * IPython/Prompts.py (prompt_specials): Added the ability to have
3912 bash-like special sequences in the prompts, which get
3918 bash-like special sequences in the prompts, which get
3913 automatically expanded. Things like hostname, current working
3919 automatically expanded. Things like hostname, current working
3914 directory and username are implemented already, but it's easy to
3920 directory and username are implemented already, but it's easy to
3915 add more in the future. Thanks to a patch by W.J. van der Laan
3921 add more in the future. Thanks to a patch by W.J. van der Laan
3916 <gnufnork-AT-hetdigitalegat.nl>
3922 <gnufnork-AT-hetdigitalegat.nl>
3917 (prompt_specials): Added color support for prompt strings, so
3923 (prompt_specials): Added color support for prompt strings, so
3918 users can define arbitrary color setups for their prompts.
3924 users can define arbitrary color setups for their prompts.
3919
3925
3920 2004-06-05 Fernando Perez <fperez@colorado.edu>
3926 2004-06-05 Fernando Perez <fperez@colorado.edu>
3921
3927
3922 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3928 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3923 code to load Gary Bishop's readline and configure it
3929 code to load Gary Bishop's readline and configure it
3924 automatically. Thanks to Gary for help on this.
3930 automatically. Thanks to Gary for help on this.
3925
3931
3926 2004-06-01 Fernando Perez <fperez@colorado.edu>
3932 2004-06-01 Fernando Perez <fperez@colorado.edu>
3927
3933
3928 * IPython/Logger.py (Logger.create_log): fix bug for logging
3934 * IPython/Logger.py (Logger.create_log): fix bug for logging
3929 with no filename (previous fix was incomplete).
3935 with no filename (previous fix was incomplete).
3930
3936
3931 2004-05-25 Fernando Perez <fperez@colorado.edu>
3937 2004-05-25 Fernando Perez <fperez@colorado.edu>
3932
3938
3933 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3939 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3934 parens would get passed to the shell.
3940 parens would get passed to the shell.
3935
3941
3936 2004-05-20 Fernando Perez <fperez@colorado.edu>
3942 2004-05-20 Fernando Perez <fperez@colorado.edu>
3937
3943
3938 * IPython/Magic.py (Magic.magic_prun): changed default profile
3944 * IPython/Magic.py (Magic.magic_prun): changed default profile
3939 sort order to 'time' (the more common profiling need).
3945 sort order to 'time' (the more common profiling need).
3940
3946
3941 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3947 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3942 so that source code shown is guaranteed in sync with the file on
3948 so that source code shown is guaranteed in sync with the file on
3943 disk (also changed in psource). Similar fix to the one for
3949 disk (also changed in psource). Similar fix to the one for
3944 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3950 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3945 <yann.ledu-AT-noos.fr>.
3951 <yann.ledu-AT-noos.fr>.
3946
3952
3947 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3953 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3948 with a single option would not be correctly parsed. Closes
3954 with a single option would not be correctly parsed. Closes
3949 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3955 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3950 introduced in 0.6.0 (on 2004-05-06).
3956 introduced in 0.6.0 (on 2004-05-06).
3951
3957
3952 2004-05-13 *** Released version 0.6.0
3958 2004-05-13 *** Released version 0.6.0
3953
3959
3954 2004-05-13 Fernando Perez <fperez@colorado.edu>
3960 2004-05-13 Fernando Perez <fperez@colorado.edu>
3955
3961
3956 * debian/: Added debian/ directory to CVS, so that debian support
3962 * debian/: Added debian/ directory to CVS, so that debian support
3957 is publicly accessible. The debian package is maintained by Jack
3963 is publicly accessible. The debian package is maintained by Jack
3958 Moffit <jack-AT-xiph.org>.
3964 Moffit <jack-AT-xiph.org>.
3959
3965
3960 * Documentation: included the notes about an ipython-based system
3966 * Documentation: included the notes about an ipython-based system
3961 shell (the hypothetical 'pysh') into the new_design.pdf document,
3967 shell (the hypothetical 'pysh') into the new_design.pdf document,
3962 so that these ideas get distributed to users along with the
3968 so that these ideas get distributed to users along with the
3963 official documentation.
3969 official documentation.
3964
3970
3965 2004-05-10 Fernando Perez <fperez@colorado.edu>
3971 2004-05-10 Fernando Perez <fperez@colorado.edu>
3966
3972
3967 * IPython/Logger.py (Logger.create_log): fix recently introduced
3973 * IPython/Logger.py (Logger.create_log): fix recently introduced
3968 bug (misindented line) where logstart would fail when not given an
3974 bug (misindented line) where logstart would fail when not given an
3969 explicit filename.
3975 explicit filename.
3970
3976
3971 2004-05-09 Fernando Perez <fperez@colorado.edu>
3977 2004-05-09 Fernando Perez <fperez@colorado.edu>
3972
3978
3973 * IPython/Magic.py (Magic.parse_options): skip system call when
3979 * IPython/Magic.py (Magic.parse_options): skip system call when
3974 there are no options to look for. Faster, cleaner for the common
3980 there are no options to look for. Faster, cleaner for the common
3975 case.
3981 case.
3976
3982
3977 * Documentation: many updates to the manual: describing Windows
3983 * Documentation: many updates to the manual: describing Windows
3978 support better, Gnuplot updates, credits, misc small stuff. Also
3984 support better, Gnuplot updates, credits, misc small stuff. Also
3979 updated the new_design doc a bit.
3985 updated the new_design doc a bit.
3980
3986
3981 2004-05-06 *** Released version 0.6.0.rc1
3987 2004-05-06 *** Released version 0.6.0.rc1
3982
3988
3983 2004-05-06 Fernando Perez <fperez@colorado.edu>
3989 2004-05-06 Fernando Perez <fperez@colorado.edu>
3984
3990
3985 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3991 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3986 operations to use the vastly more efficient list/''.join() method.
3992 operations to use the vastly more efficient list/''.join() method.
3987 (FormattedTB.text): Fix
3993 (FormattedTB.text): Fix
3988 http://www.scipy.net/roundup/ipython/issue12 - exception source
3994 http://www.scipy.net/roundup/ipython/issue12 - exception source
3989 extract not updated after reload. Thanks to Mike Salib
3995 extract not updated after reload. Thanks to Mike Salib
3990 <msalib-AT-mit.edu> for pinning the source of the problem.
3996 <msalib-AT-mit.edu> for pinning the source of the problem.
3991 Fortunately, the solution works inside ipython and doesn't require
3997 Fortunately, the solution works inside ipython and doesn't require
3992 any changes to python proper.
3998 any changes to python proper.
3993
3999
3994 * IPython/Magic.py (Magic.parse_options): Improved to process the
4000 * IPython/Magic.py (Magic.parse_options): Improved to process the
3995 argument list as a true shell would (by actually using the
4001 argument list as a true shell would (by actually using the
3996 underlying system shell). This way, all @magics automatically get
4002 underlying system shell). This way, all @magics automatically get
3997 shell expansion for variables. Thanks to a comment by Alex
4003 shell expansion for variables. Thanks to a comment by Alex
3998 Schmolck.
4004 Schmolck.
3999
4005
4000 2004-04-04 Fernando Perez <fperez@colorado.edu>
4006 2004-04-04 Fernando Perez <fperez@colorado.edu>
4001
4007
4002 * IPython/iplib.py (InteractiveShell.interact): Added a special
4008 * IPython/iplib.py (InteractiveShell.interact): Added a special
4003 trap for a debugger quit exception, which is basically impossible
4009 trap for a debugger quit exception, which is basically impossible
4004 to handle by normal mechanisms, given what pdb does to the stack.
4010 to handle by normal mechanisms, given what pdb does to the stack.
4005 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4011 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4006
4012
4007 2004-04-03 Fernando Perez <fperez@colorado.edu>
4013 2004-04-03 Fernando Perez <fperez@colorado.edu>
4008
4014
4009 * IPython/genutils.py (Term): Standardized the names of the Term
4015 * IPython/genutils.py (Term): Standardized the names of the Term
4010 class streams to cin/cout/cerr, following C++ naming conventions
4016 class streams to cin/cout/cerr, following C++ naming conventions
4011 (I can't use in/out/err because 'in' is not a valid attribute
4017 (I can't use in/out/err because 'in' is not a valid attribute
4012 name).
4018 name).
4013
4019
4014 * IPython/iplib.py (InteractiveShell.interact): don't increment
4020 * IPython/iplib.py (InteractiveShell.interact): don't increment
4015 the prompt if there's no user input. By Daniel 'Dang' Griffith
4021 the prompt if there's no user input. By Daniel 'Dang' Griffith
4016 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4022 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4017 Francois Pinard.
4023 Francois Pinard.
4018
4024
4019 2004-04-02 Fernando Perez <fperez@colorado.edu>
4025 2004-04-02 Fernando Perez <fperez@colorado.edu>
4020
4026
4021 * IPython/genutils.py (Stream.__init__): Modified to survive at
4027 * IPython/genutils.py (Stream.__init__): Modified to survive at
4022 least importing in contexts where stdin/out/err aren't true file
4028 least importing in contexts where stdin/out/err aren't true file
4023 objects, such as PyCrust (they lack fileno() and mode). However,
4029 objects, such as PyCrust (they lack fileno() and mode). However,
4024 the recovery facilities which rely on these things existing will
4030 the recovery facilities which rely on these things existing will
4025 not work.
4031 not work.
4026
4032
4027 2004-04-01 Fernando Perez <fperez@colorado.edu>
4033 2004-04-01 Fernando Perez <fperez@colorado.edu>
4028
4034
4029 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4035 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4030 use the new getoutputerror() function, so it properly
4036 use the new getoutputerror() function, so it properly
4031 distinguishes stdout/err.
4037 distinguishes stdout/err.
4032
4038
4033 * IPython/genutils.py (getoutputerror): added a function to
4039 * IPython/genutils.py (getoutputerror): added a function to
4034 capture separately the standard output and error of a command.
4040 capture separately the standard output and error of a command.
4035 After a comment from dang on the mailing lists. This code is
4041 After a comment from dang on the mailing lists. This code is
4036 basically a modified version of commands.getstatusoutput(), from
4042 basically a modified version of commands.getstatusoutput(), from
4037 the standard library.
4043 the standard library.
4038
4044
4039 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4045 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4040 '!!' as a special syntax (shorthand) to access @sx.
4046 '!!' as a special syntax (shorthand) to access @sx.
4041
4047
4042 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4048 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4043 command and return its output as a list split on '\n'.
4049 command and return its output as a list split on '\n'.
4044
4050
4045 2004-03-31 Fernando Perez <fperez@colorado.edu>
4051 2004-03-31 Fernando Perez <fperez@colorado.edu>
4046
4052
4047 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4053 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4048 method to dictionaries used as FakeModule instances if they lack
4054 method to dictionaries used as FakeModule instances if they lack
4049 it. At least pydoc in python2.3 breaks for runtime-defined
4055 it. At least pydoc in python2.3 breaks for runtime-defined
4050 functions without this hack. At some point I need to _really_
4056 functions without this hack. At some point I need to _really_
4051 understand what FakeModule is doing, because it's a gross hack.
4057 understand what FakeModule is doing, because it's a gross hack.
4052 But it solves Arnd's problem for now...
4058 But it solves Arnd's problem for now...
4053
4059
4054 2004-02-27 Fernando Perez <fperez@colorado.edu>
4060 2004-02-27 Fernando Perez <fperez@colorado.edu>
4055
4061
4056 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4062 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4057 mode would behave erratically. Also increased the number of
4063 mode would behave erratically. Also increased the number of
4058 possible logs in rotate mod to 999. Thanks to Rod Holland
4064 possible logs in rotate mod to 999. Thanks to Rod Holland
4059 <rhh@StructureLABS.com> for the report and fixes.
4065 <rhh@StructureLABS.com> for the report and fixes.
4060
4066
4061 2004-02-26 Fernando Perez <fperez@colorado.edu>
4067 2004-02-26 Fernando Perez <fperez@colorado.edu>
4062
4068
4063 * IPython/genutils.py (page): Check that the curses module really
4069 * IPython/genutils.py (page): Check that the curses module really
4064 has the initscr attribute before trying to use it. For some
4070 has the initscr attribute before trying to use it. For some
4065 reason, the Solaris curses module is missing this. I think this
4071 reason, the Solaris curses module is missing this. I think this
4066 should be considered a Solaris python bug, but I'm not sure.
4072 should be considered a Solaris python bug, but I'm not sure.
4067
4073
4068 2004-01-17 Fernando Perez <fperez@colorado.edu>
4074 2004-01-17 Fernando Perez <fperez@colorado.edu>
4069
4075
4070 * IPython/genutils.py (Stream.__init__): Changes to try to make
4076 * IPython/genutils.py (Stream.__init__): Changes to try to make
4071 ipython robust against stdin/out/err being closed by the user.
4077 ipython robust against stdin/out/err being closed by the user.
4072 This is 'user error' (and blocks a normal python session, at least
4078 This is 'user error' (and blocks a normal python session, at least
4073 the stdout case). However, Ipython should be able to survive such
4079 the stdout case). However, Ipython should be able to survive such
4074 instances of abuse as gracefully as possible. To simplify the
4080 instances of abuse as gracefully as possible. To simplify the
4075 coding and maintain compatibility with Gary Bishop's Term
4081 coding and maintain compatibility with Gary Bishop's Term
4076 contributions, I've made use of classmethods for this. I think
4082 contributions, I've made use of classmethods for this. I think
4077 this introduces a dependency on python 2.2.
4083 this introduces a dependency on python 2.2.
4078
4084
4079 2004-01-13 Fernando Perez <fperez@colorado.edu>
4085 2004-01-13 Fernando Perez <fperez@colorado.edu>
4080
4086
4081 * IPython/numutils.py (exp_safe): simplified the code a bit and
4087 * IPython/numutils.py (exp_safe): simplified the code a bit and
4082 removed the need for importing the kinds module altogether.
4088 removed the need for importing the kinds module altogether.
4083
4089
4084 2004-01-06 Fernando Perez <fperez@colorado.edu>
4090 2004-01-06 Fernando Perez <fperez@colorado.edu>
4085
4091
4086 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4092 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4087 a magic function instead, after some community feedback. No
4093 a magic function instead, after some community feedback. No
4088 special syntax will exist for it, but its name is deliberately
4094 special syntax will exist for it, but its name is deliberately
4089 very short.
4095 very short.
4090
4096
4091 2003-12-20 Fernando Perez <fperez@colorado.edu>
4097 2003-12-20 Fernando Perez <fperez@colorado.edu>
4092
4098
4093 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4099 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4094 new functionality, to automagically assign the result of a shell
4100 new functionality, to automagically assign the result of a shell
4095 command to a variable. I'll solicit some community feedback on
4101 command to a variable. I'll solicit some community feedback on
4096 this before making it permanent.
4102 this before making it permanent.
4097
4103
4098 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4104 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4099 requested about callables for which inspect couldn't obtain a
4105 requested about callables for which inspect couldn't obtain a
4100 proper argspec. Thanks to a crash report sent by Etienne
4106 proper argspec. Thanks to a crash report sent by Etienne
4101 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4107 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4102
4108
4103 2003-12-09 Fernando Perez <fperez@colorado.edu>
4109 2003-12-09 Fernando Perez <fperez@colorado.edu>
4104
4110
4105 * IPython/genutils.py (page): patch for the pager to work across
4111 * IPython/genutils.py (page): patch for the pager to work across
4106 various versions of Windows. By Gary Bishop.
4112 various versions of Windows. By Gary Bishop.
4107
4113
4108 2003-12-04 Fernando Perez <fperez@colorado.edu>
4114 2003-12-04 Fernando Perez <fperez@colorado.edu>
4109
4115
4110 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4116 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4111 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4117 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4112 While I tested this and it looks ok, there may still be corner
4118 While I tested this and it looks ok, there may still be corner
4113 cases I've missed.
4119 cases I've missed.
4114
4120
4115 2003-12-01 Fernando Perez <fperez@colorado.edu>
4121 2003-12-01 Fernando Perez <fperez@colorado.edu>
4116
4122
4117 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4123 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4118 where a line like 'p,q=1,2' would fail because the automagic
4124 where a line like 'p,q=1,2' would fail because the automagic
4119 system would be triggered for @p.
4125 system would be triggered for @p.
4120
4126
4121 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4127 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4122 cleanups, code unmodified.
4128 cleanups, code unmodified.
4123
4129
4124 * IPython/genutils.py (Term): added a class for IPython to handle
4130 * IPython/genutils.py (Term): added a class for IPython to handle
4125 output. In most cases it will just be a proxy for stdout/err, but
4131 output. In most cases it will just be a proxy for stdout/err, but
4126 having this allows modifications to be made for some platforms,
4132 having this allows modifications to be made for some platforms,
4127 such as handling color escapes under Windows. All of this code
4133 such as handling color escapes under Windows. All of this code
4128 was contributed by Gary Bishop, with minor modifications by me.
4134 was contributed by Gary Bishop, with minor modifications by me.
4129 The actual changes affect many files.
4135 The actual changes affect many files.
4130
4136
4131 2003-11-30 Fernando Perez <fperez@colorado.edu>
4137 2003-11-30 Fernando Perez <fperez@colorado.edu>
4132
4138
4133 * IPython/iplib.py (file_matches): new completion code, courtesy
4139 * IPython/iplib.py (file_matches): new completion code, courtesy
4134 of Jeff Collins. This enables filename completion again under
4140 of Jeff Collins. This enables filename completion again under
4135 python 2.3, which disabled it at the C level.
4141 python 2.3, which disabled it at the C level.
4136
4142
4137 2003-11-11 Fernando Perez <fperez@colorado.edu>
4143 2003-11-11 Fernando Perez <fperez@colorado.edu>
4138
4144
4139 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4145 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4140 for Numeric.array(map(...)), but often convenient.
4146 for Numeric.array(map(...)), but often convenient.
4141
4147
4142 2003-11-05 Fernando Perez <fperez@colorado.edu>
4148 2003-11-05 Fernando Perez <fperez@colorado.edu>
4143
4149
4144 * IPython/numutils.py (frange): Changed a call from int() to
4150 * IPython/numutils.py (frange): Changed a call from int() to
4145 int(round()) to prevent a problem reported with arange() in the
4151 int(round()) to prevent a problem reported with arange() in the
4146 numpy list.
4152 numpy list.
4147
4153
4148 2003-10-06 Fernando Perez <fperez@colorado.edu>
4154 2003-10-06 Fernando Perez <fperez@colorado.edu>
4149
4155
4150 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4156 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4151 prevent crashes if sys lacks an argv attribute (it happens with
4157 prevent crashes if sys lacks an argv attribute (it happens with
4152 embedded interpreters which build a bare-bones sys module).
4158 embedded interpreters which build a bare-bones sys module).
4153 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4159 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4154
4160
4155 2003-09-24 Fernando Perez <fperez@colorado.edu>
4161 2003-09-24 Fernando Perez <fperez@colorado.edu>
4156
4162
4157 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4163 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4158 to protect against poorly written user objects where __getattr__
4164 to protect against poorly written user objects where __getattr__
4159 raises exceptions other than AttributeError. Thanks to a bug
4165 raises exceptions other than AttributeError. Thanks to a bug
4160 report by Oliver Sander <osander-AT-gmx.de>.
4166 report by Oliver Sander <osander-AT-gmx.de>.
4161
4167
4162 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4168 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4163 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4169 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4164
4170
4165 2003-09-09 Fernando Perez <fperez@colorado.edu>
4171 2003-09-09 Fernando Perez <fperez@colorado.edu>
4166
4172
4167 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4173 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4168 unpacking a list whith a callable as first element would
4174 unpacking a list whith a callable as first element would
4169 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4175 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4170 Collins.
4176 Collins.
4171
4177
4172 2003-08-25 *** Released version 0.5.0
4178 2003-08-25 *** Released version 0.5.0
4173
4179
4174 2003-08-22 Fernando Perez <fperez@colorado.edu>
4180 2003-08-22 Fernando Perez <fperez@colorado.edu>
4175
4181
4176 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4182 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4177 improperly defined user exceptions. Thanks to feedback from Mark
4183 improperly defined user exceptions. Thanks to feedback from Mark
4178 Russell <mrussell-AT-verio.net>.
4184 Russell <mrussell-AT-verio.net>.
4179
4185
4180 2003-08-20 Fernando Perez <fperez@colorado.edu>
4186 2003-08-20 Fernando Perez <fperez@colorado.edu>
4181
4187
4182 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4188 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4183 printing so that it would print multi-line string forms starting
4189 printing so that it would print multi-line string forms starting
4184 with a new line. This way the formatting is better respected for
4190 with a new line. This way the formatting is better respected for
4185 objects which work hard to make nice string forms.
4191 objects which work hard to make nice string forms.
4186
4192
4187 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4193 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4188 autocall would overtake data access for objects with both
4194 autocall would overtake data access for objects with both
4189 __getitem__ and __call__.
4195 __getitem__ and __call__.
4190
4196
4191 2003-08-19 *** Released version 0.5.0-rc1
4197 2003-08-19 *** Released version 0.5.0-rc1
4192
4198
4193 2003-08-19 Fernando Perez <fperez@colorado.edu>
4199 2003-08-19 Fernando Perez <fperez@colorado.edu>
4194
4200
4195 * IPython/deep_reload.py (load_tail): single tiny change here
4201 * IPython/deep_reload.py (load_tail): single tiny change here
4196 seems to fix the long-standing bug of dreload() failing to work
4202 seems to fix the long-standing bug of dreload() failing to work
4197 for dotted names. But this module is pretty tricky, so I may have
4203 for dotted names. But this module is pretty tricky, so I may have
4198 missed some subtlety. Needs more testing!.
4204 missed some subtlety. Needs more testing!.
4199
4205
4200 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4206 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4201 exceptions which have badly implemented __str__ methods.
4207 exceptions which have badly implemented __str__ methods.
4202 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4208 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4203 which I've been getting reports about from Python 2.3 users. I
4209 which I've been getting reports about from Python 2.3 users. I
4204 wish I had a simple test case to reproduce the problem, so I could
4210 wish I had a simple test case to reproduce the problem, so I could
4205 either write a cleaner workaround or file a bug report if
4211 either write a cleaner workaround or file a bug report if
4206 necessary.
4212 necessary.
4207
4213
4208 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4214 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4209 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4215 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4210 a bug report by Tjabo Kloppenburg.
4216 a bug report by Tjabo Kloppenburg.
4211
4217
4212 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4218 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4213 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4219 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4214 seems rather unstable. Thanks to a bug report by Tjabo
4220 seems rather unstable. Thanks to a bug report by Tjabo
4215 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4221 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4216
4222
4217 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4223 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4218 this out soon because of the critical fixes in the inner loop for
4224 this out soon because of the critical fixes in the inner loop for
4219 generators.
4225 generators.
4220
4226
4221 * IPython/Magic.py (Magic.getargspec): removed. This (and
4227 * IPython/Magic.py (Magic.getargspec): removed. This (and
4222 _get_def) have been obsoleted by OInspect for a long time, I
4228 _get_def) have been obsoleted by OInspect for a long time, I
4223 hadn't noticed that they were dead code.
4229 hadn't noticed that they were dead code.
4224 (Magic._ofind): restored _ofind functionality for a few literals
4230 (Magic._ofind): restored _ofind functionality for a few literals
4225 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4231 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4226 for things like "hello".capitalize?, since that would require a
4232 for things like "hello".capitalize?, since that would require a
4227 potentially dangerous eval() again.
4233 potentially dangerous eval() again.
4228
4234
4229 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4235 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4230 logic a bit more to clean up the escapes handling and minimize the
4236 logic a bit more to clean up the escapes handling and minimize the
4231 use of _ofind to only necessary cases. The interactive 'feel' of
4237 use of _ofind to only necessary cases. The interactive 'feel' of
4232 IPython should have improved quite a bit with the changes in
4238 IPython should have improved quite a bit with the changes in
4233 _prefilter and _ofind (besides being far safer than before).
4239 _prefilter and _ofind (besides being far safer than before).
4234
4240
4235 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4241 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4236 obscure, never reported). Edit would fail to find the object to
4242 obscure, never reported). Edit would fail to find the object to
4237 edit under some circumstances.
4243 edit under some circumstances.
4238 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4244 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4239 which were causing double-calling of generators. Those eval calls
4245 which were causing double-calling of generators. Those eval calls
4240 were _very_ dangerous, since code with side effects could be
4246 were _very_ dangerous, since code with side effects could be
4241 triggered. As they say, 'eval is evil'... These were the
4247 triggered. As they say, 'eval is evil'... These were the
4242 nastiest evals in IPython. Besides, _ofind is now far simpler,
4248 nastiest evals in IPython. Besides, _ofind is now far simpler,
4243 and it should also be quite a bit faster. Its use of inspect is
4249 and it should also be quite a bit faster. Its use of inspect is
4244 also safer, so perhaps some of the inspect-related crashes I've
4250 also safer, so perhaps some of the inspect-related crashes I've
4245 seen lately with Python 2.3 might be taken care of. That will
4251 seen lately with Python 2.3 might be taken care of. That will
4246 need more testing.
4252 need more testing.
4247
4253
4248 2003-08-17 Fernando Perez <fperez@colorado.edu>
4254 2003-08-17 Fernando Perez <fperez@colorado.edu>
4249
4255
4250 * IPython/iplib.py (InteractiveShell._prefilter): significant
4256 * IPython/iplib.py (InteractiveShell._prefilter): significant
4251 simplifications to the logic for handling user escapes. Faster
4257 simplifications to the logic for handling user escapes. Faster
4252 and simpler code.
4258 and simpler code.
4253
4259
4254 2003-08-14 Fernando Perez <fperez@colorado.edu>
4260 2003-08-14 Fernando Perez <fperez@colorado.edu>
4255
4261
4256 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4262 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4257 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4263 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4258 but it should be quite a bit faster. And the recursive version
4264 but it should be quite a bit faster. And the recursive version
4259 generated O(log N) intermediate storage for all rank>1 arrays,
4265 generated O(log N) intermediate storage for all rank>1 arrays,
4260 even if they were contiguous.
4266 even if they were contiguous.
4261 (l1norm): Added this function.
4267 (l1norm): Added this function.
4262 (norm): Added this function for arbitrary norms (including
4268 (norm): Added this function for arbitrary norms (including
4263 l-infinity). l1 and l2 are still special cases for convenience
4269 l-infinity). l1 and l2 are still special cases for convenience
4264 and speed.
4270 and speed.
4265
4271
4266 2003-08-03 Fernando Perez <fperez@colorado.edu>
4272 2003-08-03 Fernando Perez <fperez@colorado.edu>
4267
4273
4268 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4274 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4269 exceptions, which now raise PendingDeprecationWarnings in Python
4275 exceptions, which now raise PendingDeprecationWarnings in Python
4270 2.3. There were some in Magic and some in Gnuplot2.
4276 2.3. There were some in Magic and some in Gnuplot2.
4271
4277
4272 2003-06-30 Fernando Perez <fperez@colorado.edu>
4278 2003-06-30 Fernando Perez <fperez@colorado.edu>
4273
4279
4274 * IPython/genutils.py (page): modified to call curses only for
4280 * IPython/genutils.py (page): modified to call curses only for
4275 terminals where TERM=='xterm'. After problems under many other
4281 terminals where TERM=='xterm'. After problems under many other
4276 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4282 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4277
4283
4278 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4284 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4279 would be triggered when readline was absent. This was just an old
4285 would be triggered when readline was absent. This was just an old
4280 debugging statement I'd forgotten to take out.
4286 debugging statement I'd forgotten to take out.
4281
4287
4282 2003-06-20 Fernando Perez <fperez@colorado.edu>
4288 2003-06-20 Fernando Perez <fperez@colorado.edu>
4283
4289
4284 * IPython/genutils.py (clock): modified to return only user time
4290 * IPython/genutils.py (clock): modified to return only user time
4285 (not counting system time), after a discussion on scipy. While
4291 (not counting system time), after a discussion on scipy. While
4286 system time may be a useful quantity occasionally, it may much
4292 system time may be a useful quantity occasionally, it may much
4287 more easily be skewed by occasional swapping or other similar
4293 more easily be skewed by occasional swapping or other similar
4288 activity.
4294 activity.
4289
4295
4290 2003-06-05 Fernando Perez <fperez@colorado.edu>
4296 2003-06-05 Fernando Perez <fperez@colorado.edu>
4291
4297
4292 * IPython/numutils.py (identity): new function, for building
4298 * IPython/numutils.py (identity): new function, for building
4293 arbitrary rank Kronecker deltas (mostly backwards compatible with
4299 arbitrary rank Kronecker deltas (mostly backwards compatible with
4294 Numeric.identity)
4300 Numeric.identity)
4295
4301
4296 2003-06-03 Fernando Perez <fperez@colorado.edu>
4302 2003-06-03 Fernando Perez <fperez@colorado.edu>
4297
4303
4298 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4304 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4299 arguments passed to magics with spaces, to allow trailing '\' to
4305 arguments passed to magics with spaces, to allow trailing '\' to
4300 work normally (mainly for Windows users).
4306 work normally (mainly for Windows users).
4301
4307
4302 2003-05-29 Fernando Perez <fperez@colorado.edu>
4308 2003-05-29 Fernando Perez <fperez@colorado.edu>
4303
4309
4304 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4310 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4305 instead of pydoc.help. This fixes a bizarre behavior where
4311 instead of pydoc.help. This fixes a bizarre behavior where
4306 printing '%s' % locals() would trigger the help system. Now
4312 printing '%s' % locals() would trigger the help system. Now
4307 ipython behaves like normal python does.
4313 ipython behaves like normal python does.
4308
4314
4309 Note that if one does 'from pydoc import help', the bizarre
4315 Note that if one does 'from pydoc import help', the bizarre
4310 behavior returns, but this will also happen in normal python, so
4316 behavior returns, but this will also happen in normal python, so
4311 it's not an ipython bug anymore (it has to do with how pydoc.help
4317 it's not an ipython bug anymore (it has to do with how pydoc.help
4312 is implemented).
4318 is implemented).
4313
4319
4314 2003-05-22 Fernando Perez <fperez@colorado.edu>
4320 2003-05-22 Fernando Perez <fperez@colorado.edu>
4315
4321
4316 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4322 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4317 return [] instead of None when nothing matches, also match to end
4323 return [] instead of None when nothing matches, also match to end
4318 of line. Patch by Gary Bishop.
4324 of line. Patch by Gary Bishop.
4319
4325
4320 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4326 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4321 protection as before, for files passed on the command line. This
4327 protection as before, for files passed on the command line. This
4322 prevents the CrashHandler from kicking in if user files call into
4328 prevents the CrashHandler from kicking in if user files call into
4323 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4329 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4324 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4330 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4325
4331
4326 2003-05-20 *** Released version 0.4.0
4332 2003-05-20 *** Released version 0.4.0
4327
4333
4328 2003-05-20 Fernando Perez <fperez@colorado.edu>
4334 2003-05-20 Fernando Perez <fperez@colorado.edu>
4329
4335
4330 * setup.py: added support for manpages. It's a bit hackish b/c of
4336 * setup.py: added support for manpages. It's a bit hackish b/c of
4331 a bug in the way the bdist_rpm distutils target handles gzipped
4337 a bug in the way the bdist_rpm distutils target handles gzipped
4332 manpages, but it works. After a patch by Jack.
4338 manpages, but it works. After a patch by Jack.
4333
4339
4334 2003-05-19 Fernando Perez <fperez@colorado.edu>
4340 2003-05-19 Fernando Perez <fperez@colorado.edu>
4335
4341
4336 * IPython/numutils.py: added a mockup of the kinds module, since
4342 * IPython/numutils.py: added a mockup of the kinds module, since
4337 it was recently removed from Numeric. This way, numutils will
4343 it was recently removed from Numeric. This way, numutils will
4338 work for all users even if they are missing kinds.
4344 work for all users even if they are missing kinds.
4339
4345
4340 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4346 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4341 failure, which can occur with SWIG-wrapped extensions. After a
4347 failure, which can occur with SWIG-wrapped extensions. After a
4342 crash report from Prabhu.
4348 crash report from Prabhu.
4343
4349
4344 2003-05-16 Fernando Perez <fperez@colorado.edu>
4350 2003-05-16 Fernando Perez <fperez@colorado.edu>
4345
4351
4346 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4352 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4347 protect ipython from user code which may call directly
4353 protect ipython from user code which may call directly
4348 sys.excepthook (this looks like an ipython crash to the user, even
4354 sys.excepthook (this looks like an ipython crash to the user, even
4349 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4355 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4350 This is especially important to help users of WxWindows, but may
4356 This is especially important to help users of WxWindows, but may
4351 also be useful in other cases.
4357 also be useful in other cases.
4352
4358
4353 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4359 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4354 an optional tb_offset to be specified, and to preserve exception
4360 an optional tb_offset to be specified, and to preserve exception
4355 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4361 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4356
4362
4357 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4363 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4358
4364
4359 2003-05-15 Fernando Perez <fperez@colorado.edu>
4365 2003-05-15 Fernando Perez <fperez@colorado.edu>
4360
4366
4361 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4367 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4362 installing for a new user under Windows.
4368 installing for a new user under Windows.
4363
4369
4364 2003-05-12 Fernando Perez <fperez@colorado.edu>
4370 2003-05-12 Fernando Perez <fperez@colorado.edu>
4365
4371
4366 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4372 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4367 handler for Emacs comint-based lines. Currently it doesn't do
4373 handler for Emacs comint-based lines. Currently it doesn't do
4368 much (but importantly, it doesn't update the history cache). In
4374 much (but importantly, it doesn't update the history cache). In
4369 the future it may be expanded if Alex needs more functionality
4375 the future it may be expanded if Alex needs more functionality
4370 there.
4376 there.
4371
4377
4372 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4378 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4373 info to crash reports.
4379 info to crash reports.
4374
4380
4375 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4381 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4376 just like Python's -c. Also fixed crash with invalid -color
4382 just like Python's -c. Also fixed crash with invalid -color
4377 option value at startup. Thanks to Will French
4383 option value at startup. Thanks to Will French
4378 <wfrench-AT-bestweb.net> for the bug report.
4384 <wfrench-AT-bestweb.net> for the bug report.
4379
4385
4380 2003-05-09 Fernando Perez <fperez@colorado.edu>
4386 2003-05-09 Fernando Perez <fperez@colorado.edu>
4381
4387
4382 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4388 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4383 to EvalDict (it's a mapping, after all) and simplified its code
4389 to EvalDict (it's a mapping, after all) and simplified its code
4384 quite a bit, after a nice discussion on c.l.py where Gustavo
4390 quite a bit, after a nice discussion on c.l.py where Gustavo
4385 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4391 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4386
4392
4387 2003-04-30 Fernando Perez <fperez@colorado.edu>
4393 2003-04-30 Fernando Perez <fperez@colorado.edu>
4388
4394
4389 * IPython/genutils.py (timings_out): modified it to reduce its
4395 * IPython/genutils.py (timings_out): modified it to reduce its
4390 overhead in the common reps==1 case.
4396 overhead in the common reps==1 case.
4391
4397
4392 2003-04-29 Fernando Perez <fperez@colorado.edu>
4398 2003-04-29 Fernando Perez <fperez@colorado.edu>
4393
4399
4394 * IPython/genutils.py (timings_out): Modified to use the resource
4400 * IPython/genutils.py (timings_out): Modified to use the resource
4395 module, which avoids the wraparound problems of time.clock().
4401 module, which avoids the wraparound problems of time.clock().
4396
4402
4397 2003-04-17 *** Released version 0.2.15pre4
4403 2003-04-17 *** Released version 0.2.15pre4
4398
4404
4399 2003-04-17 Fernando Perez <fperez@colorado.edu>
4405 2003-04-17 Fernando Perez <fperez@colorado.edu>
4400
4406
4401 * setup.py (scriptfiles): Split windows-specific stuff over to a
4407 * setup.py (scriptfiles): Split windows-specific stuff over to a
4402 separate file, in an attempt to have a Windows GUI installer.
4408 separate file, in an attempt to have a Windows GUI installer.
4403 That didn't work, but part of the groundwork is done.
4409 That didn't work, but part of the groundwork is done.
4404
4410
4405 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4411 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4406 indent/unindent with 4 spaces. Particularly useful in combination
4412 indent/unindent with 4 spaces. Particularly useful in combination
4407 with the new auto-indent option.
4413 with the new auto-indent option.
4408
4414
4409 2003-04-16 Fernando Perez <fperez@colorado.edu>
4415 2003-04-16 Fernando Perez <fperez@colorado.edu>
4410
4416
4411 * IPython/Magic.py: various replacements of self.rc for
4417 * IPython/Magic.py: various replacements of self.rc for
4412 self.shell.rc. A lot more remains to be done to fully disentangle
4418 self.shell.rc. A lot more remains to be done to fully disentangle
4413 this class from the main Shell class.
4419 this class from the main Shell class.
4414
4420
4415 * IPython/GnuplotRuntime.py: added checks for mouse support so
4421 * IPython/GnuplotRuntime.py: added checks for mouse support so
4416 that we don't try to enable it if the current gnuplot doesn't
4422 that we don't try to enable it if the current gnuplot doesn't
4417 really support it. Also added checks so that we don't try to
4423 really support it. Also added checks so that we don't try to
4418 enable persist under Windows (where Gnuplot doesn't recognize the
4424 enable persist under Windows (where Gnuplot doesn't recognize the
4419 option).
4425 option).
4420
4426
4421 * IPython/iplib.py (InteractiveShell.interact): Added optional
4427 * IPython/iplib.py (InteractiveShell.interact): Added optional
4422 auto-indenting code, after a patch by King C. Shu
4428 auto-indenting code, after a patch by King C. Shu
4423 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4429 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4424 get along well with pasting indented code. If I ever figure out
4430 get along well with pasting indented code. If I ever figure out
4425 how to make that part go well, it will become on by default.
4431 how to make that part go well, it will become on by default.
4426
4432
4427 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4433 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4428 crash ipython if there was an unmatched '%' in the user's prompt
4434 crash ipython if there was an unmatched '%' in the user's prompt
4429 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4435 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4430
4436
4431 * IPython/iplib.py (InteractiveShell.interact): removed the
4437 * IPython/iplib.py (InteractiveShell.interact): removed the
4432 ability to ask the user whether he wants to crash or not at the
4438 ability to ask the user whether he wants to crash or not at the
4433 'last line' exception handler. Calling functions at that point
4439 'last line' exception handler. Calling functions at that point
4434 changes the stack, and the error reports would have incorrect
4440 changes the stack, and the error reports would have incorrect
4435 tracebacks.
4441 tracebacks.
4436
4442
4437 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4443 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4438 pass through a peger a pretty-printed form of any object. After a
4444 pass through a peger a pretty-printed form of any object. After a
4439 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4445 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4440
4446
4441 2003-04-14 Fernando Perez <fperez@colorado.edu>
4447 2003-04-14 Fernando Perez <fperez@colorado.edu>
4442
4448
4443 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4449 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4444 all files in ~ would be modified at first install (instead of
4450 all files in ~ would be modified at first install (instead of
4445 ~/.ipython). This could be potentially disastrous, as the
4451 ~/.ipython). This could be potentially disastrous, as the
4446 modification (make line-endings native) could damage binary files.
4452 modification (make line-endings native) could damage binary files.
4447
4453
4448 2003-04-10 Fernando Perez <fperez@colorado.edu>
4454 2003-04-10 Fernando Perez <fperez@colorado.edu>
4449
4455
4450 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4456 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4451 handle only lines which are invalid python. This now means that
4457 handle only lines which are invalid python. This now means that
4452 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4458 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4453 for the bug report.
4459 for the bug report.
4454
4460
4455 2003-04-01 Fernando Perez <fperez@colorado.edu>
4461 2003-04-01 Fernando Perez <fperez@colorado.edu>
4456
4462
4457 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4463 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4458 where failing to set sys.last_traceback would crash pdb.pm().
4464 where failing to set sys.last_traceback would crash pdb.pm().
4459 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4465 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4460 report.
4466 report.
4461
4467
4462 2003-03-25 Fernando Perez <fperez@colorado.edu>
4468 2003-03-25 Fernando Perez <fperez@colorado.edu>
4463
4469
4464 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4470 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4465 before printing it (it had a lot of spurious blank lines at the
4471 before printing it (it had a lot of spurious blank lines at the
4466 end).
4472 end).
4467
4473
4468 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4474 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4469 output would be sent 21 times! Obviously people don't use this
4475 output would be sent 21 times! Obviously people don't use this
4470 too often, or I would have heard about it.
4476 too often, or I would have heard about it.
4471
4477
4472 2003-03-24 Fernando Perez <fperez@colorado.edu>
4478 2003-03-24 Fernando Perez <fperez@colorado.edu>
4473
4479
4474 * setup.py (scriptfiles): renamed the data_files parameter from
4480 * setup.py (scriptfiles): renamed the data_files parameter from
4475 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4481 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4476 for the patch.
4482 for the patch.
4477
4483
4478 2003-03-20 Fernando Perez <fperez@colorado.edu>
4484 2003-03-20 Fernando Perez <fperez@colorado.edu>
4479
4485
4480 * IPython/genutils.py (error): added error() and fatal()
4486 * IPython/genutils.py (error): added error() and fatal()
4481 functions.
4487 functions.
4482
4488
4483 2003-03-18 *** Released version 0.2.15pre3
4489 2003-03-18 *** Released version 0.2.15pre3
4484
4490
4485 2003-03-18 Fernando Perez <fperez@colorado.edu>
4491 2003-03-18 Fernando Perez <fperez@colorado.edu>
4486
4492
4487 * setupext/install_data_ext.py
4493 * setupext/install_data_ext.py
4488 (install_data_ext.initialize_options): Class contributed by Jack
4494 (install_data_ext.initialize_options): Class contributed by Jack
4489 Moffit for fixing the old distutils hack. He is sending this to
4495 Moffit for fixing the old distutils hack. He is sending this to
4490 the distutils folks so in the future we may not need it as a
4496 the distutils folks so in the future we may not need it as a
4491 private fix.
4497 private fix.
4492
4498
4493 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4499 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4494 changes for Debian packaging. See his patch for full details.
4500 changes for Debian packaging. See his patch for full details.
4495 The old distutils hack of making the ipythonrc* files carry a
4501 The old distutils hack of making the ipythonrc* files carry a
4496 bogus .py extension is gone, at last. Examples were moved to a
4502 bogus .py extension is gone, at last. Examples were moved to a
4497 separate subdir under doc/, and the separate executable scripts
4503 separate subdir under doc/, and the separate executable scripts
4498 now live in their own directory. Overall a great cleanup. The
4504 now live in their own directory. Overall a great cleanup. The
4499 manual was updated to use the new files, and setup.py has been
4505 manual was updated to use the new files, and setup.py has been
4500 fixed for this setup.
4506 fixed for this setup.
4501
4507
4502 * IPython/PyColorize.py (Parser.usage): made non-executable and
4508 * IPython/PyColorize.py (Parser.usage): made non-executable and
4503 created a pycolor wrapper around it to be included as a script.
4509 created a pycolor wrapper around it to be included as a script.
4504
4510
4505 2003-03-12 *** Released version 0.2.15pre2
4511 2003-03-12 *** Released version 0.2.15pre2
4506
4512
4507 2003-03-12 Fernando Perez <fperez@colorado.edu>
4513 2003-03-12 Fernando Perez <fperez@colorado.edu>
4508
4514
4509 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4515 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4510 long-standing problem with garbage characters in some terminals.
4516 long-standing problem with garbage characters in some terminals.
4511 The issue was really that the \001 and \002 escapes must _only_ be
4517 The issue was really that the \001 and \002 escapes must _only_ be
4512 passed to input prompts (which call readline), but _never_ to
4518 passed to input prompts (which call readline), but _never_ to
4513 normal text to be printed on screen. I changed ColorANSI to have
4519 normal text to be printed on screen. I changed ColorANSI to have
4514 two classes: TermColors and InputTermColors, each with the
4520 two classes: TermColors and InputTermColors, each with the
4515 appropriate escapes for input prompts or normal text. The code in
4521 appropriate escapes for input prompts or normal text. The code in
4516 Prompts.py got slightly more complicated, but this very old and
4522 Prompts.py got slightly more complicated, but this very old and
4517 annoying bug is finally fixed.
4523 annoying bug is finally fixed.
4518
4524
4519 All the credit for nailing down the real origin of this problem
4525 All the credit for nailing down the real origin of this problem
4520 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4526 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4521 *Many* thanks to him for spending quite a bit of effort on this.
4527 *Many* thanks to him for spending quite a bit of effort on this.
4522
4528
4523 2003-03-05 *** Released version 0.2.15pre1
4529 2003-03-05 *** Released version 0.2.15pre1
4524
4530
4525 2003-03-03 Fernando Perez <fperez@colorado.edu>
4531 2003-03-03 Fernando Perez <fperez@colorado.edu>
4526
4532
4527 * IPython/FakeModule.py: Moved the former _FakeModule to a
4533 * IPython/FakeModule.py: Moved the former _FakeModule to a
4528 separate file, because it's also needed by Magic (to fix a similar
4534 separate file, because it's also needed by Magic (to fix a similar
4529 pickle-related issue in @run).
4535 pickle-related issue in @run).
4530
4536
4531 2003-03-02 Fernando Perez <fperez@colorado.edu>
4537 2003-03-02 Fernando Perez <fperez@colorado.edu>
4532
4538
4533 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4539 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4534 the autocall option at runtime.
4540 the autocall option at runtime.
4535 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4541 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4536 across Magic.py to start separating Magic from InteractiveShell.
4542 across Magic.py to start separating Magic from InteractiveShell.
4537 (Magic._ofind): Fixed to return proper namespace for dotted
4543 (Magic._ofind): Fixed to return proper namespace for dotted
4538 names. Before, a dotted name would always return 'not currently
4544 names. Before, a dotted name would always return 'not currently
4539 defined', because it would find the 'parent'. s.x would be found,
4545 defined', because it would find the 'parent'. s.x would be found,
4540 but since 'x' isn't defined by itself, it would get confused.
4546 but since 'x' isn't defined by itself, it would get confused.
4541 (Magic.magic_run): Fixed pickling problems reported by Ralf
4547 (Magic.magic_run): Fixed pickling problems reported by Ralf
4542 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4548 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4543 that I'd used when Mike Heeter reported similar issues at the
4549 that I'd used when Mike Heeter reported similar issues at the
4544 top-level, but now for @run. It boils down to injecting the
4550 top-level, but now for @run. It boils down to injecting the
4545 namespace where code is being executed with something that looks
4551 namespace where code is being executed with something that looks
4546 enough like a module to fool pickle.dump(). Since a pickle stores
4552 enough like a module to fool pickle.dump(). Since a pickle stores
4547 a named reference to the importing module, we need this for
4553 a named reference to the importing module, we need this for
4548 pickles to save something sensible.
4554 pickles to save something sensible.
4549
4555
4550 * IPython/ipmaker.py (make_IPython): added an autocall option.
4556 * IPython/ipmaker.py (make_IPython): added an autocall option.
4551
4557
4552 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4558 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4553 the auto-eval code. Now autocalling is an option, and the code is
4559 the auto-eval code. Now autocalling is an option, and the code is
4554 also vastly safer. There is no more eval() involved at all.
4560 also vastly safer. There is no more eval() involved at all.
4555
4561
4556 2003-03-01 Fernando Perez <fperez@colorado.edu>
4562 2003-03-01 Fernando Perez <fperez@colorado.edu>
4557
4563
4558 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4564 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4559 dict with named keys instead of a tuple.
4565 dict with named keys instead of a tuple.
4560
4566
4561 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4567 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4562
4568
4563 * setup.py (make_shortcut): Fixed message about directories
4569 * setup.py (make_shortcut): Fixed message about directories
4564 created during Windows installation (the directories were ok, just
4570 created during Windows installation (the directories were ok, just
4565 the printed message was misleading). Thanks to Chris Liechti
4571 the printed message was misleading). Thanks to Chris Liechti
4566 <cliechti-AT-gmx.net> for the heads up.
4572 <cliechti-AT-gmx.net> for the heads up.
4567
4573
4568 2003-02-21 Fernando Perez <fperez@colorado.edu>
4574 2003-02-21 Fernando Perez <fperez@colorado.edu>
4569
4575
4570 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4576 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4571 of ValueError exception when checking for auto-execution. This
4577 of ValueError exception when checking for auto-execution. This
4572 one is raised by things like Numeric arrays arr.flat when the
4578 one is raised by things like Numeric arrays arr.flat when the
4573 array is non-contiguous.
4579 array is non-contiguous.
4574
4580
4575 2003-01-31 Fernando Perez <fperez@colorado.edu>
4581 2003-01-31 Fernando Perez <fperez@colorado.edu>
4576
4582
4577 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4583 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4578 not return any value at all (even though the command would get
4584 not return any value at all (even though the command would get
4579 executed).
4585 executed).
4580 (xsys): Flush stdout right after printing the command to ensure
4586 (xsys): Flush stdout right after printing the command to ensure
4581 proper ordering of commands and command output in the total
4587 proper ordering of commands and command output in the total
4582 output.
4588 output.
4583 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4589 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4584 system/getoutput as defaults. The old ones are kept for
4590 system/getoutput as defaults. The old ones are kept for
4585 compatibility reasons, so no code which uses this library needs
4591 compatibility reasons, so no code which uses this library needs
4586 changing.
4592 changing.
4587
4593
4588 2003-01-27 *** Released version 0.2.14
4594 2003-01-27 *** Released version 0.2.14
4589
4595
4590 2003-01-25 Fernando Perez <fperez@colorado.edu>
4596 2003-01-25 Fernando Perez <fperez@colorado.edu>
4591
4597
4592 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4598 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4593 functions defined in previous edit sessions could not be re-edited
4599 functions defined in previous edit sessions could not be re-edited
4594 (because the temp files were immediately removed). Now temp files
4600 (because the temp files were immediately removed). Now temp files
4595 are removed only at IPython's exit.
4601 are removed only at IPython's exit.
4596 (Magic.magic_run): Improved @run to perform shell-like expansions
4602 (Magic.magic_run): Improved @run to perform shell-like expansions
4597 on its arguments (~users and $VARS). With this, @run becomes more
4603 on its arguments (~users and $VARS). With this, @run becomes more
4598 like a normal command-line.
4604 like a normal command-line.
4599
4605
4600 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4606 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4601 bugs related to embedding and cleaned up that code. A fairly
4607 bugs related to embedding and cleaned up that code. A fairly
4602 important one was the impossibility to access the global namespace
4608 important one was the impossibility to access the global namespace
4603 through the embedded IPython (only local variables were visible).
4609 through the embedded IPython (only local variables were visible).
4604
4610
4605 2003-01-14 Fernando Perez <fperez@colorado.edu>
4611 2003-01-14 Fernando Perez <fperez@colorado.edu>
4606
4612
4607 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4613 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4608 auto-calling to be a bit more conservative. Now it doesn't get
4614 auto-calling to be a bit more conservative. Now it doesn't get
4609 triggered if any of '!=()<>' are in the rest of the input line, to
4615 triggered if any of '!=()<>' are in the rest of the input line, to
4610 allow comparing callables. Thanks to Alex for the heads up.
4616 allow comparing callables. Thanks to Alex for the heads up.
4611
4617
4612 2003-01-07 Fernando Perez <fperez@colorado.edu>
4618 2003-01-07 Fernando Perez <fperez@colorado.edu>
4613
4619
4614 * IPython/genutils.py (page): fixed estimation of the number of
4620 * IPython/genutils.py (page): fixed estimation of the number of
4615 lines in a string to be paged to simply count newlines. This
4621 lines in a string to be paged to simply count newlines. This
4616 prevents over-guessing due to embedded escape sequences. A better
4622 prevents over-guessing due to embedded escape sequences. A better
4617 long-term solution would involve stripping out the control chars
4623 long-term solution would involve stripping out the control chars
4618 for the count, but it's potentially so expensive I just don't
4624 for the count, but it's potentially so expensive I just don't
4619 think it's worth doing.
4625 think it's worth doing.
4620
4626
4621 2002-12-19 *** Released version 0.2.14pre50
4627 2002-12-19 *** Released version 0.2.14pre50
4622
4628
4623 2002-12-19 Fernando Perez <fperez@colorado.edu>
4629 2002-12-19 Fernando Perez <fperez@colorado.edu>
4624
4630
4625 * tools/release (version): Changed release scripts to inform
4631 * tools/release (version): Changed release scripts to inform
4626 Andrea and build a NEWS file with a list of recent changes.
4632 Andrea and build a NEWS file with a list of recent changes.
4627
4633
4628 * IPython/ColorANSI.py (__all__): changed terminal detection
4634 * IPython/ColorANSI.py (__all__): changed terminal detection
4629 code. Seems to work better for xterms without breaking
4635 code. Seems to work better for xterms without breaking
4630 konsole. Will need more testing to determine if WinXP and Mac OSX
4636 konsole. Will need more testing to determine if WinXP and Mac OSX
4631 also work ok.
4637 also work ok.
4632
4638
4633 2002-12-18 *** Released version 0.2.14pre49
4639 2002-12-18 *** Released version 0.2.14pre49
4634
4640
4635 2002-12-18 Fernando Perez <fperez@colorado.edu>
4641 2002-12-18 Fernando Perez <fperez@colorado.edu>
4636
4642
4637 * Docs: added new info about Mac OSX, from Andrea.
4643 * Docs: added new info about Mac OSX, from Andrea.
4638
4644
4639 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4645 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4640 allow direct plotting of python strings whose format is the same
4646 allow direct plotting of python strings whose format is the same
4641 of gnuplot data files.
4647 of gnuplot data files.
4642
4648
4643 2002-12-16 Fernando Perez <fperez@colorado.edu>
4649 2002-12-16 Fernando Perez <fperez@colorado.edu>
4644
4650
4645 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4651 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4646 value of exit question to be acknowledged.
4652 value of exit question to be acknowledged.
4647
4653
4648 2002-12-03 Fernando Perez <fperez@colorado.edu>
4654 2002-12-03 Fernando Perez <fperez@colorado.edu>
4649
4655
4650 * IPython/ipmaker.py: removed generators, which had been added
4656 * IPython/ipmaker.py: removed generators, which had been added
4651 by mistake in an earlier debugging run. This was causing trouble
4657 by mistake in an earlier debugging run. This was causing trouble
4652 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4658 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4653 for pointing this out.
4659 for pointing this out.
4654
4660
4655 2002-11-17 Fernando Perez <fperez@colorado.edu>
4661 2002-11-17 Fernando Perez <fperez@colorado.edu>
4656
4662
4657 * Manual: updated the Gnuplot section.
4663 * Manual: updated the Gnuplot section.
4658
4664
4659 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4665 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4660 a much better split of what goes in Runtime and what goes in
4666 a much better split of what goes in Runtime and what goes in
4661 Interactive.
4667 Interactive.
4662
4668
4663 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4669 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4664 being imported from iplib.
4670 being imported from iplib.
4665
4671
4666 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4672 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4667 for command-passing. Now the global Gnuplot instance is called
4673 for command-passing. Now the global Gnuplot instance is called
4668 'gp' instead of 'g', which was really a far too fragile and
4674 'gp' instead of 'g', which was really a far too fragile and
4669 common name.
4675 common name.
4670
4676
4671 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4677 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4672 bounding boxes generated by Gnuplot for square plots.
4678 bounding boxes generated by Gnuplot for square plots.
4673
4679
4674 * IPython/genutils.py (popkey): new function added. I should
4680 * IPython/genutils.py (popkey): new function added. I should
4675 suggest this on c.l.py as a dict method, it seems useful.
4681 suggest this on c.l.py as a dict method, it seems useful.
4676
4682
4677 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4683 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4678 to transparently handle PostScript generation. MUCH better than
4684 to transparently handle PostScript generation. MUCH better than
4679 the previous plot_eps/replot_eps (which I removed now). The code
4685 the previous plot_eps/replot_eps (which I removed now). The code
4680 is also fairly clean and well documented now (including
4686 is also fairly clean and well documented now (including
4681 docstrings).
4687 docstrings).
4682
4688
4683 2002-11-13 Fernando Perez <fperez@colorado.edu>
4689 2002-11-13 Fernando Perez <fperez@colorado.edu>
4684
4690
4685 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4691 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4686 (inconsistent with options).
4692 (inconsistent with options).
4687
4693
4688 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4694 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4689 manually disabled, I don't know why. Fixed it.
4695 manually disabled, I don't know why. Fixed it.
4690 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4696 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4691 eps output.
4697 eps output.
4692
4698
4693 2002-11-12 Fernando Perez <fperez@colorado.edu>
4699 2002-11-12 Fernando Perez <fperez@colorado.edu>
4694
4700
4695 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4701 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4696 don't propagate up to caller. Fixes crash reported by François
4702 don't propagate up to caller. Fixes crash reported by François
4697 Pinard.
4703 Pinard.
4698
4704
4699 2002-11-09 Fernando Perez <fperez@colorado.edu>
4705 2002-11-09 Fernando Perez <fperez@colorado.edu>
4700
4706
4701 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4707 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4702 history file for new users.
4708 history file for new users.
4703 (make_IPython): fixed bug where initial install would leave the
4709 (make_IPython): fixed bug where initial install would leave the
4704 user running in the .ipython dir.
4710 user running in the .ipython dir.
4705 (make_IPython): fixed bug where config dir .ipython would be
4711 (make_IPython): fixed bug where config dir .ipython would be
4706 created regardless of the given -ipythondir option. Thanks to Cory
4712 created regardless of the given -ipythondir option. Thanks to Cory
4707 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4713 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4708
4714
4709 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4715 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4710 type confirmations. Will need to use it in all of IPython's code
4716 type confirmations. Will need to use it in all of IPython's code
4711 consistently.
4717 consistently.
4712
4718
4713 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4719 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4714 context to print 31 lines instead of the default 5. This will make
4720 context to print 31 lines instead of the default 5. This will make
4715 the crash reports extremely detailed in case the problem is in
4721 the crash reports extremely detailed in case the problem is in
4716 libraries I don't have access to.
4722 libraries I don't have access to.
4717
4723
4718 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4724 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4719 line of defense' code to still crash, but giving users fair
4725 line of defense' code to still crash, but giving users fair
4720 warning. I don't want internal errors to go unreported: if there's
4726 warning. I don't want internal errors to go unreported: if there's
4721 an internal problem, IPython should crash and generate a full
4727 an internal problem, IPython should crash and generate a full
4722 report.
4728 report.
4723
4729
4724 2002-11-08 Fernando Perez <fperez@colorado.edu>
4730 2002-11-08 Fernando Perez <fperez@colorado.edu>
4725
4731
4726 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4732 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4727 otherwise uncaught exceptions which can appear if people set
4733 otherwise uncaught exceptions which can appear if people set
4728 sys.stdout to something badly broken. Thanks to a crash report
4734 sys.stdout to something badly broken. Thanks to a crash report
4729 from henni-AT-mail.brainbot.com.
4735 from henni-AT-mail.brainbot.com.
4730
4736
4731 2002-11-04 Fernando Perez <fperez@colorado.edu>
4737 2002-11-04 Fernando Perez <fperez@colorado.edu>
4732
4738
4733 * IPython/iplib.py (InteractiveShell.interact): added
4739 * IPython/iplib.py (InteractiveShell.interact): added
4734 __IPYTHON__active to the builtins. It's a flag which goes on when
4740 __IPYTHON__active to the builtins. It's a flag which goes on when
4735 the interaction starts and goes off again when it stops. This
4741 the interaction starts and goes off again when it stops. This
4736 allows embedding code to detect being inside IPython. Before this
4742 allows embedding code to detect being inside IPython. Before this
4737 was done via __IPYTHON__, but that only shows that an IPython
4743 was done via __IPYTHON__, but that only shows that an IPython
4738 instance has been created.
4744 instance has been created.
4739
4745
4740 * IPython/Magic.py (Magic.magic_env): I realized that in a
4746 * IPython/Magic.py (Magic.magic_env): I realized that in a
4741 UserDict, instance.data holds the data as a normal dict. So I
4747 UserDict, instance.data holds the data as a normal dict. So I
4742 modified @env to return os.environ.data instead of rebuilding a
4748 modified @env to return os.environ.data instead of rebuilding a
4743 dict by hand.
4749 dict by hand.
4744
4750
4745 2002-11-02 Fernando Perez <fperez@colorado.edu>
4751 2002-11-02 Fernando Perez <fperez@colorado.edu>
4746
4752
4747 * IPython/genutils.py (warn): changed so that level 1 prints no
4753 * IPython/genutils.py (warn): changed so that level 1 prints no
4748 header. Level 2 is now the default (with 'WARNING' header, as
4754 header. Level 2 is now the default (with 'WARNING' header, as
4749 before). I think I tracked all places where changes were needed in
4755 before). I think I tracked all places where changes were needed in
4750 IPython, but outside code using the old level numbering may have
4756 IPython, but outside code using the old level numbering may have
4751 broken.
4757 broken.
4752
4758
4753 * IPython/iplib.py (InteractiveShell.runcode): added this to
4759 * IPython/iplib.py (InteractiveShell.runcode): added this to
4754 handle the tracebacks in SystemExit traps correctly. The previous
4760 handle the tracebacks in SystemExit traps correctly. The previous
4755 code (through interact) was printing more of the stack than
4761 code (through interact) was printing more of the stack than
4756 necessary, showing IPython internal code to the user.
4762 necessary, showing IPython internal code to the user.
4757
4763
4758 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4764 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4759 default. Now that the default at the confirmation prompt is yes,
4765 default. Now that the default at the confirmation prompt is yes,
4760 it's not so intrusive. François' argument that ipython sessions
4766 it's not so intrusive. François' argument that ipython sessions
4761 tend to be complex enough not to lose them from an accidental C-d,
4767 tend to be complex enough not to lose them from an accidental C-d,
4762 is a valid one.
4768 is a valid one.
4763
4769
4764 * IPython/iplib.py (InteractiveShell.interact): added a
4770 * IPython/iplib.py (InteractiveShell.interact): added a
4765 showtraceback() call to the SystemExit trap, and modified the exit
4771 showtraceback() call to the SystemExit trap, and modified the exit
4766 confirmation to have yes as the default.
4772 confirmation to have yes as the default.
4767
4773
4768 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4774 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4769 this file. It's been gone from the code for a long time, this was
4775 this file. It's been gone from the code for a long time, this was
4770 simply leftover junk.
4776 simply leftover junk.
4771
4777
4772 2002-11-01 Fernando Perez <fperez@colorado.edu>
4778 2002-11-01 Fernando Perez <fperez@colorado.edu>
4773
4779
4774 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4780 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4775 added. If set, IPython now traps EOF and asks for
4781 added. If set, IPython now traps EOF and asks for
4776 confirmation. After a request by François Pinard.
4782 confirmation. After a request by François Pinard.
4777
4783
4778 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4784 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4779 of @abort, and with a new (better) mechanism for handling the
4785 of @abort, and with a new (better) mechanism for handling the
4780 exceptions.
4786 exceptions.
4781
4787
4782 2002-10-27 Fernando Perez <fperez@colorado.edu>
4788 2002-10-27 Fernando Perez <fperez@colorado.edu>
4783
4789
4784 * IPython/usage.py (__doc__): updated the --help information and
4790 * IPython/usage.py (__doc__): updated the --help information and
4785 the ipythonrc file to indicate that -log generates
4791 the ipythonrc file to indicate that -log generates
4786 ./ipython.log. Also fixed the corresponding info in @logstart.
4792 ./ipython.log. Also fixed the corresponding info in @logstart.
4787 This and several other fixes in the manuals thanks to reports by
4793 This and several other fixes in the manuals thanks to reports by
4788 François Pinard <pinard-AT-iro.umontreal.ca>.
4794 François Pinard <pinard-AT-iro.umontreal.ca>.
4789
4795
4790 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4796 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4791 refer to @logstart (instead of @log, which doesn't exist).
4797 refer to @logstart (instead of @log, which doesn't exist).
4792
4798
4793 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4799 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4794 AttributeError crash. Thanks to Christopher Armstrong
4800 AttributeError crash. Thanks to Christopher Armstrong
4795 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4801 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4796 introduced recently (in 0.2.14pre37) with the fix to the eval
4802 introduced recently (in 0.2.14pre37) with the fix to the eval
4797 problem mentioned below.
4803 problem mentioned below.
4798
4804
4799 2002-10-17 Fernando Perez <fperez@colorado.edu>
4805 2002-10-17 Fernando Perez <fperez@colorado.edu>
4800
4806
4801 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4807 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4802 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4808 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4803
4809
4804 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4810 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4805 this function to fix a problem reported by Alex Schmolck. He saw
4811 this function to fix a problem reported by Alex Schmolck. He saw
4806 it with list comprehensions and generators, which were getting
4812 it with list comprehensions and generators, which were getting
4807 called twice. The real problem was an 'eval' call in testing for
4813 called twice. The real problem was an 'eval' call in testing for
4808 automagic which was evaluating the input line silently.
4814 automagic which was evaluating the input line silently.
4809
4815
4810 This is a potentially very nasty bug, if the input has side
4816 This is a potentially very nasty bug, if the input has side
4811 effects which must not be repeated. The code is much cleaner now,
4817 effects which must not be repeated. The code is much cleaner now,
4812 without any blanket 'except' left and with a regexp test for
4818 without any blanket 'except' left and with a regexp test for
4813 actual function names.
4819 actual function names.
4814
4820
4815 But an eval remains, which I'm not fully comfortable with. I just
4821 But an eval remains, which I'm not fully comfortable with. I just
4816 don't know how to find out if an expression could be a callable in
4822 don't know how to find out if an expression could be a callable in
4817 the user's namespace without doing an eval on the string. However
4823 the user's namespace without doing an eval on the string. However
4818 that string is now much more strictly checked so that no code
4824 that string is now much more strictly checked so that no code
4819 slips by, so the eval should only happen for things that can
4825 slips by, so the eval should only happen for things that can
4820 really be only function/method names.
4826 really be only function/method names.
4821
4827
4822 2002-10-15 Fernando Perez <fperez@colorado.edu>
4828 2002-10-15 Fernando Perez <fperez@colorado.edu>
4823
4829
4824 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4830 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4825 OSX information to main manual, removed README_Mac_OSX file from
4831 OSX information to main manual, removed README_Mac_OSX file from
4826 distribution. Also updated credits for recent additions.
4832 distribution. Also updated credits for recent additions.
4827
4833
4828 2002-10-10 Fernando Perez <fperez@colorado.edu>
4834 2002-10-10 Fernando Perez <fperez@colorado.edu>
4829
4835
4830 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4836 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4831 terminal-related issues. Many thanks to Andrea Riciputi
4837 terminal-related issues. Many thanks to Andrea Riciputi
4832 <andrea.riciputi-AT-libero.it> for writing it.
4838 <andrea.riciputi-AT-libero.it> for writing it.
4833
4839
4834 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4840 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4835 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4841 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4836
4842
4837 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4843 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4838 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4844 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4839 <syver-en-AT-online.no> who both submitted patches for this problem.
4845 <syver-en-AT-online.no> who both submitted patches for this problem.
4840
4846
4841 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4847 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4842 global embedding to make sure that things don't overwrite user
4848 global embedding to make sure that things don't overwrite user
4843 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4849 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4844
4850
4845 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4851 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4846 compatibility. Thanks to Hayden Callow
4852 compatibility. Thanks to Hayden Callow
4847 <h.callow-AT-elec.canterbury.ac.nz>
4853 <h.callow-AT-elec.canterbury.ac.nz>
4848
4854
4849 2002-10-04 Fernando Perez <fperez@colorado.edu>
4855 2002-10-04 Fernando Perez <fperez@colorado.edu>
4850
4856
4851 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4857 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4852 Gnuplot.File objects.
4858 Gnuplot.File objects.
4853
4859
4854 2002-07-23 Fernando Perez <fperez@colorado.edu>
4860 2002-07-23 Fernando Perez <fperez@colorado.edu>
4855
4861
4856 * IPython/genutils.py (timing): Added timings() and timing() for
4862 * IPython/genutils.py (timing): Added timings() and timing() for
4857 quick access to the most commonly needed data, the execution
4863 quick access to the most commonly needed data, the execution
4858 times. Old timing() renamed to timings_out().
4864 times. Old timing() renamed to timings_out().
4859
4865
4860 2002-07-18 Fernando Perez <fperez@colorado.edu>
4866 2002-07-18 Fernando Perez <fperez@colorado.edu>
4861
4867
4862 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4868 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4863 bug with nested instances disrupting the parent's tab completion.
4869 bug with nested instances disrupting the parent's tab completion.
4864
4870
4865 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4871 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4866 all_completions code to begin the emacs integration.
4872 all_completions code to begin the emacs integration.
4867
4873
4868 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4874 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4869 argument to allow titling individual arrays when plotting.
4875 argument to allow titling individual arrays when plotting.
4870
4876
4871 2002-07-15 Fernando Perez <fperez@colorado.edu>
4877 2002-07-15 Fernando Perez <fperez@colorado.edu>
4872
4878
4873 * setup.py (make_shortcut): changed to retrieve the value of
4879 * setup.py (make_shortcut): changed to retrieve the value of
4874 'Program Files' directory from the registry (this value changes in
4880 'Program Files' directory from the registry (this value changes in
4875 non-english versions of Windows). Thanks to Thomas Fanslau
4881 non-english versions of Windows). Thanks to Thomas Fanslau
4876 <tfanslau-AT-gmx.de> for the report.
4882 <tfanslau-AT-gmx.de> for the report.
4877
4883
4878 2002-07-10 Fernando Perez <fperez@colorado.edu>
4884 2002-07-10 Fernando Perez <fperez@colorado.edu>
4879
4885
4880 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4886 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4881 a bug in pdb, which crashes if a line with only whitespace is
4887 a bug in pdb, which crashes if a line with only whitespace is
4882 entered. Bug report submitted to sourceforge.
4888 entered. Bug report submitted to sourceforge.
4883
4889
4884 2002-07-09 Fernando Perez <fperez@colorado.edu>
4890 2002-07-09 Fernando Perez <fperez@colorado.edu>
4885
4891
4886 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4892 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4887 reporting exceptions (it's a bug in inspect.py, I just set a
4893 reporting exceptions (it's a bug in inspect.py, I just set a
4888 workaround).
4894 workaround).
4889
4895
4890 2002-07-08 Fernando Perez <fperez@colorado.edu>
4896 2002-07-08 Fernando Perez <fperez@colorado.edu>
4891
4897
4892 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4898 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4893 __IPYTHON__ in __builtins__ to show up in user_ns.
4899 __IPYTHON__ in __builtins__ to show up in user_ns.
4894
4900
4895 2002-07-03 Fernando Perez <fperez@colorado.edu>
4901 2002-07-03 Fernando Perez <fperez@colorado.edu>
4896
4902
4897 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4903 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4898 name from @gp_set_instance to @gp_set_default.
4904 name from @gp_set_instance to @gp_set_default.
4899
4905
4900 * IPython/ipmaker.py (make_IPython): default editor value set to
4906 * IPython/ipmaker.py (make_IPython): default editor value set to
4901 '0' (a string), to match the rc file. Otherwise will crash when
4907 '0' (a string), to match the rc file. Otherwise will crash when
4902 .strip() is called on it.
4908 .strip() is called on it.
4903
4909
4904
4910
4905 2002-06-28 Fernando Perez <fperez@colorado.edu>
4911 2002-06-28 Fernando Perez <fperez@colorado.edu>
4906
4912
4907 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4913 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4908 of files in current directory when a file is executed via
4914 of files in current directory when a file is executed via
4909 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4915 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4910
4916
4911 * setup.py (manfiles): fix for rpm builds, submitted by RA
4917 * setup.py (manfiles): fix for rpm builds, submitted by RA
4912 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4918 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4913
4919
4914 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4920 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4915 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4921 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4916 string!). A. Schmolck caught this one.
4922 string!). A. Schmolck caught this one.
4917
4923
4918 2002-06-27 Fernando Perez <fperez@colorado.edu>
4924 2002-06-27 Fernando Perez <fperez@colorado.edu>
4919
4925
4920 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4926 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4921 defined files at the cmd line. __name__ wasn't being set to
4927 defined files at the cmd line. __name__ wasn't being set to
4922 __main__.
4928 __main__.
4923
4929
4924 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4930 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4925 regular lists and tuples besides Numeric arrays.
4931 regular lists and tuples besides Numeric arrays.
4926
4932
4927 * IPython/Prompts.py (CachedOutput.__call__): Added output
4933 * IPython/Prompts.py (CachedOutput.__call__): Added output
4928 supression for input ending with ';'. Similar to Mathematica and
4934 supression for input ending with ';'. Similar to Mathematica and
4929 Matlab. The _* vars and Out[] list are still updated, just like
4935 Matlab. The _* vars and Out[] list are still updated, just like
4930 Mathematica behaves.
4936 Mathematica behaves.
4931
4937
4932 2002-06-25 Fernando Perez <fperez@colorado.edu>
4938 2002-06-25 Fernando Perez <fperez@colorado.edu>
4933
4939
4934 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4940 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4935 .ini extensions for profiels under Windows.
4941 .ini extensions for profiels under Windows.
4936
4942
4937 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4943 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4938 string form. Fix contributed by Alexander Schmolck
4944 string form. Fix contributed by Alexander Schmolck
4939 <a.schmolck-AT-gmx.net>
4945 <a.schmolck-AT-gmx.net>
4940
4946
4941 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4947 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4942 pre-configured Gnuplot instance.
4948 pre-configured Gnuplot instance.
4943
4949
4944 2002-06-21 Fernando Perez <fperez@colorado.edu>
4950 2002-06-21 Fernando Perez <fperez@colorado.edu>
4945
4951
4946 * IPython/numutils.py (exp_safe): new function, works around the
4952 * IPython/numutils.py (exp_safe): new function, works around the
4947 underflow problems in Numeric.
4953 underflow problems in Numeric.
4948 (log2): New fn. Safe log in base 2: returns exact integer answer
4954 (log2): New fn. Safe log in base 2: returns exact integer answer
4949 for exact integer powers of 2.
4955 for exact integer powers of 2.
4950
4956
4951 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4957 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4952 properly.
4958 properly.
4953
4959
4954 2002-06-20 Fernando Perez <fperez@colorado.edu>
4960 2002-06-20 Fernando Perez <fperez@colorado.edu>
4955
4961
4956 * IPython/genutils.py (timing): new function like
4962 * IPython/genutils.py (timing): new function like
4957 Mathematica's. Similar to time_test, but returns more info.
4963 Mathematica's. Similar to time_test, but returns more info.
4958
4964
4959 2002-06-18 Fernando Perez <fperez@colorado.edu>
4965 2002-06-18 Fernando Perez <fperez@colorado.edu>
4960
4966
4961 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4967 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4962 according to Mike Heeter's suggestions.
4968 according to Mike Heeter's suggestions.
4963
4969
4964 2002-06-16 Fernando Perez <fperez@colorado.edu>
4970 2002-06-16 Fernando Perez <fperez@colorado.edu>
4965
4971
4966 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4972 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4967 system. GnuplotMagic is gone as a user-directory option. New files
4973 system. GnuplotMagic is gone as a user-directory option. New files
4968 make it easier to use all the gnuplot stuff both from external
4974 make it easier to use all the gnuplot stuff both from external
4969 programs as well as from IPython. Had to rewrite part of
4975 programs as well as from IPython. Had to rewrite part of
4970 hardcopy() b/c of a strange bug: often the ps files simply don't
4976 hardcopy() b/c of a strange bug: often the ps files simply don't
4971 get created, and require a repeat of the command (often several
4977 get created, and require a repeat of the command (often several
4972 times).
4978 times).
4973
4979
4974 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4980 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4975 resolve output channel at call time, so that if sys.stderr has
4981 resolve output channel at call time, so that if sys.stderr has
4976 been redirected by user this gets honored.
4982 been redirected by user this gets honored.
4977
4983
4978 2002-06-13 Fernando Perez <fperez@colorado.edu>
4984 2002-06-13 Fernando Perez <fperez@colorado.edu>
4979
4985
4980 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4986 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4981 IPShell. Kept a copy with the old names to avoid breaking people's
4987 IPShell. Kept a copy with the old names to avoid breaking people's
4982 embedded code.
4988 embedded code.
4983
4989
4984 * IPython/ipython: simplified it to the bare minimum after
4990 * IPython/ipython: simplified it to the bare minimum after
4985 Holger's suggestions. Added info about how to use it in
4991 Holger's suggestions. Added info about how to use it in
4986 PYTHONSTARTUP.
4992 PYTHONSTARTUP.
4987
4993
4988 * IPython/Shell.py (IPythonShell): changed the options passing
4994 * IPython/Shell.py (IPythonShell): changed the options passing
4989 from a string with funky %s replacements to a straight list. Maybe
4995 from a string with funky %s replacements to a straight list. Maybe
4990 a bit more typing, but it follows sys.argv conventions, so there's
4996 a bit more typing, but it follows sys.argv conventions, so there's
4991 less special-casing to remember.
4997 less special-casing to remember.
4992
4998
4993 2002-06-12 Fernando Perez <fperez@colorado.edu>
4999 2002-06-12 Fernando Perez <fperez@colorado.edu>
4994
5000
4995 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5001 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4996 command. Thanks to a suggestion by Mike Heeter.
5002 command. Thanks to a suggestion by Mike Heeter.
4997 (Magic.magic_pfile): added behavior to look at filenames if given
5003 (Magic.magic_pfile): added behavior to look at filenames if given
4998 arg is not a defined object.
5004 arg is not a defined object.
4999 (Magic.magic_save): New @save function to save code snippets. Also
5005 (Magic.magic_save): New @save function to save code snippets. Also
5000 a Mike Heeter idea.
5006 a Mike Heeter idea.
5001
5007
5002 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5008 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5003 plot() and replot(). Much more convenient now, especially for
5009 plot() and replot(). Much more convenient now, especially for
5004 interactive use.
5010 interactive use.
5005
5011
5006 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5012 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5007 filenames.
5013 filenames.
5008
5014
5009 2002-06-02 Fernando Perez <fperez@colorado.edu>
5015 2002-06-02 Fernando Perez <fperez@colorado.edu>
5010
5016
5011 * IPython/Struct.py (Struct.__init__): modified to admit
5017 * IPython/Struct.py (Struct.__init__): modified to admit
5012 initialization via another struct.
5018 initialization via another struct.
5013
5019
5014 * IPython/genutils.py (SystemExec.__init__): New stateful
5020 * IPython/genutils.py (SystemExec.__init__): New stateful
5015 interface to xsys and bq. Useful for writing system scripts.
5021 interface to xsys and bq. Useful for writing system scripts.
5016
5022
5017 2002-05-30 Fernando Perez <fperez@colorado.edu>
5023 2002-05-30 Fernando Perez <fperez@colorado.edu>
5018
5024
5019 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5025 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5020 documents. This will make the user download smaller (it's getting
5026 documents. This will make the user download smaller (it's getting
5021 too big).
5027 too big).
5022
5028
5023 2002-05-29 Fernando Perez <fperez@colorado.edu>
5029 2002-05-29 Fernando Perez <fperez@colorado.edu>
5024
5030
5025 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5031 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5026 fix problems with shelve and pickle. Seems to work, but I don't
5032 fix problems with shelve and pickle. Seems to work, but I don't
5027 know if corner cases break it. Thanks to Mike Heeter
5033 know if corner cases break it. Thanks to Mike Heeter
5028 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5034 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5029
5035
5030 2002-05-24 Fernando Perez <fperez@colorado.edu>
5036 2002-05-24 Fernando Perez <fperez@colorado.edu>
5031
5037
5032 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5038 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5033 macros having broken.
5039 macros having broken.
5034
5040
5035 2002-05-21 Fernando Perez <fperez@colorado.edu>
5041 2002-05-21 Fernando Perez <fperez@colorado.edu>
5036
5042
5037 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5043 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5038 introduced logging bug: all history before logging started was
5044 introduced logging bug: all history before logging started was
5039 being written one character per line! This came from the redesign
5045 being written one character per line! This came from the redesign
5040 of the input history as a special list which slices to strings,
5046 of the input history as a special list which slices to strings,
5041 not to lists.
5047 not to lists.
5042
5048
5043 2002-05-20 Fernando Perez <fperez@colorado.edu>
5049 2002-05-20 Fernando Perez <fperez@colorado.edu>
5044
5050
5045 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5051 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5046 be an attribute of all classes in this module. The design of these
5052 be an attribute of all classes in this module. The design of these
5047 classes needs some serious overhauling.
5053 classes needs some serious overhauling.
5048
5054
5049 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5055 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5050 which was ignoring '_' in option names.
5056 which was ignoring '_' in option names.
5051
5057
5052 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5058 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5053 'Verbose_novars' to 'Context' and made it the new default. It's a
5059 'Verbose_novars' to 'Context' and made it the new default. It's a
5054 bit more readable and also safer than verbose.
5060 bit more readable and also safer than verbose.
5055
5061
5056 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5062 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5057 triple-quoted strings.
5063 triple-quoted strings.
5058
5064
5059 * IPython/OInspect.py (__all__): new module exposing the object
5065 * IPython/OInspect.py (__all__): new module exposing the object
5060 introspection facilities. Now the corresponding magics are dummy
5066 introspection facilities. Now the corresponding magics are dummy
5061 wrappers around this. Having this module will make it much easier
5067 wrappers around this. Having this module will make it much easier
5062 to put these functions into our modified pdb.
5068 to put these functions into our modified pdb.
5063 This new object inspector system uses the new colorizing module,
5069 This new object inspector system uses the new colorizing module,
5064 so source code and other things are nicely syntax highlighted.
5070 so source code and other things are nicely syntax highlighted.
5065
5071
5066 2002-05-18 Fernando Perez <fperez@colorado.edu>
5072 2002-05-18 Fernando Perez <fperez@colorado.edu>
5067
5073
5068 * IPython/ColorANSI.py: Split the coloring tools into a separate
5074 * IPython/ColorANSI.py: Split the coloring tools into a separate
5069 module so I can use them in other code easier (they were part of
5075 module so I can use them in other code easier (they were part of
5070 ultraTB).
5076 ultraTB).
5071
5077
5072 2002-05-17 Fernando Perez <fperez@colorado.edu>
5078 2002-05-17 Fernando Perez <fperez@colorado.edu>
5073
5079
5074 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5080 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5075 fixed it to set the global 'g' also to the called instance, as
5081 fixed it to set the global 'g' also to the called instance, as
5076 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5082 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5077 user's 'g' variables).
5083 user's 'g' variables).
5078
5084
5079 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5085 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5080 global variables (aliases to _ih,_oh) so that users which expect
5086 global variables (aliases to _ih,_oh) so that users which expect
5081 In[5] or Out[7] to work aren't unpleasantly surprised.
5087 In[5] or Out[7] to work aren't unpleasantly surprised.
5082 (InputList.__getslice__): new class to allow executing slices of
5088 (InputList.__getslice__): new class to allow executing slices of
5083 input history directly. Very simple class, complements the use of
5089 input history directly. Very simple class, complements the use of
5084 macros.
5090 macros.
5085
5091
5086 2002-05-16 Fernando Perez <fperez@colorado.edu>
5092 2002-05-16 Fernando Perez <fperez@colorado.edu>
5087
5093
5088 * setup.py (docdirbase): make doc directory be just doc/IPython
5094 * setup.py (docdirbase): make doc directory be just doc/IPython
5089 without version numbers, it will reduce clutter for users.
5095 without version numbers, it will reduce clutter for users.
5090
5096
5091 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5097 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5092 execfile call to prevent possible memory leak. See for details:
5098 execfile call to prevent possible memory leak. See for details:
5093 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5099 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5094
5100
5095 2002-05-15 Fernando Perez <fperez@colorado.edu>
5101 2002-05-15 Fernando Perez <fperez@colorado.edu>
5096
5102
5097 * IPython/Magic.py (Magic.magic_psource): made the object
5103 * IPython/Magic.py (Magic.magic_psource): made the object
5098 introspection names be more standard: pdoc, pdef, pfile and
5104 introspection names be more standard: pdoc, pdef, pfile and
5099 psource. They all print/page their output, and it makes
5105 psource. They all print/page their output, and it makes
5100 remembering them easier. Kept old names for compatibility as
5106 remembering them easier. Kept old names for compatibility as
5101 aliases.
5107 aliases.
5102
5108
5103 2002-05-14 Fernando Perez <fperez@colorado.edu>
5109 2002-05-14 Fernando Perez <fperez@colorado.edu>
5104
5110
5105 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5111 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5106 what the mouse problem was. The trick is to use gnuplot with temp
5112 what the mouse problem was. The trick is to use gnuplot with temp
5107 files and NOT with pipes (for data communication), because having
5113 files and NOT with pipes (for data communication), because having
5108 both pipes and the mouse on is bad news.
5114 both pipes and the mouse on is bad news.
5109
5115
5110 2002-05-13 Fernando Perez <fperez@colorado.edu>
5116 2002-05-13 Fernando Perez <fperez@colorado.edu>
5111
5117
5112 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5118 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5113 bug. Information would be reported about builtins even when
5119 bug. Information would be reported about builtins even when
5114 user-defined functions overrode them.
5120 user-defined functions overrode them.
5115
5121
5116 2002-05-11 Fernando Perez <fperez@colorado.edu>
5122 2002-05-11 Fernando Perez <fperez@colorado.edu>
5117
5123
5118 * IPython/__init__.py (__all__): removed FlexCompleter from
5124 * IPython/__init__.py (__all__): removed FlexCompleter from
5119 __all__ so that things don't fail in platforms without readline.
5125 __all__ so that things don't fail in platforms without readline.
5120
5126
5121 2002-05-10 Fernando Perez <fperez@colorado.edu>
5127 2002-05-10 Fernando Perez <fperez@colorado.edu>
5122
5128
5123 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5129 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5124 it requires Numeric, effectively making Numeric a dependency for
5130 it requires Numeric, effectively making Numeric a dependency for
5125 IPython.
5131 IPython.
5126
5132
5127 * Released 0.2.13
5133 * Released 0.2.13
5128
5134
5129 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5135 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5130 profiler interface. Now all the major options from the profiler
5136 profiler interface. Now all the major options from the profiler
5131 module are directly supported in IPython, both for single
5137 module are directly supported in IPython, both for single
5132 expressions (@prun) and for full programs (@run -p).
5138 expressions (@prun) and for full programs (@run -p).
5133
5139
5134 2002-05-09 Fernando Perez <fperez@colorado.edu>
5140 2002-05-09 Fernando Perez <fperez@colorado.edu>
5135
5141
5136 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5142 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5137 magic properly formatted for screen.
5143 magic properly formatted for screen.
5138
5144
5139 * setup.py (make_shortcut): Changed things to put pdf version in
5145 * setup.py (make_shortcut): Changed things to put pdf version in
5140 doc/ instead of doc/manual (had to change lyxport a bit).
5146 doc/ instead of doc/manual (had to change lyxport a bit).
5141
5147
5142 * IPython/Magic.py (Profile.string_stats): made profile runs go
5148 * IPython/Magic.py (Profile.string_stats): made profile runs go
5143 through pager (they are long and a pager allows searching, saving,
5149 through pager (they are long and a pager allows searching, saving,
5144 etc.)
5150 etc.)
5145
5151
5146 2002-05-08 Fernando Perez <fperez@colorado.edu>
5152 2002-05-08 Fernando Perez <fperez@colorado.edu>
5147
5153
5148 * Released 0.2.12
5154 * Released 0.2.12
5149
5155
5150 2002-05-06 Fernando Perez <fperez@colorado.edu>
5156 2002-05-06 Fernando Perez <fperez@colorado.edu>
5151
5157
5152 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5158 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5153 introduced); 'hist n1 n2' was broken.
5159 introduced); 'hist n1 n2' was broken.
5154 (Magic.magic_pdb): added optional on/off arguments to @pdb
5160 (Magic.magic_pdb): added optional on/off arguments to @pdb
5155 (Magic.magic_run): added option -i to @run, which executes code in
5161 (Magic.magic_run): added option -i to @run, which executes code in
5156 the IPython namespace instead of a clean one. Also added @irun as
5162 the IPython namespace instead of a clean one. Also added @irun as
5157 an alias to @run -i.
5163 an alias to @run -i.
5158
5164
5159 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5165 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5160 fixed (it didn't really do anything, the namespaces were wrong).
5166 fixed (it didn't really do anything, the namespaces were wrong).
5161
5167
5162 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5168 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5163
5169
5164 * IPython/__init__.py (__all__): Fixed package namespace, now
5170 * IPython/__init__.py (__all__): Fixed package namespace, now
5165 'import IPython' does give access to IPython.<all> as
5171 'import IPython' does give access to IPython.<all> as
5166 expected. Also renamed __release__ to Release.
5172 expected. Also renamed __release__ to Release.
5167
5173
5168 * IPython/Debugger.py (__license__): created new Pdb class which
5174 * IPython/Debugger.py (__license__): created new Pdb class which
5169 functions like a drop-in for the normal pdb.Pdb but does NOT
5175 functions like a drop-in for the normal pdb.Pdb but does NOT
5170 import readline by default. This way it doesn't muck up IPython's
5176 import readline by default. This way it doesn't muck up IPython's
5171 readline handling, and now tab-completion finally works in the
5177 readline handling, and now tab-completion finally works in the
5172 debugger -- sort of. It completes things globally visible, but the
5178 debugger -- sort of. It completes things globally visible, but the
5173 completer doesn't track the stack as pdb walks it. That's a bit
5179 completer doesn't track the stack as pdb walks it. That's a bit
5174 tricky, and I'll have to implement it later.
5180 tricky, and I'll have to implement it later.
5175
5181
5176 2002-05-05 Fernando Perez <fperez@colorado.edu>
5182 2002-05-05 Fernando Perez <fperez@colorado.edu>
5177
5183
5178 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5184 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5179 magic docstrings when printed via ? (explicit \'s were being
5185 magic docstrings when printed via ? (explicit \'s were being
5180 printed).
5186 printed).
5181
5187
5182 * IPython/ipmaker.py (make_IPython): fixed namespace
5188 * IPython/ipmaker.py (make_IPython): fixed namespace
5183 identification bug. Now variables loaded via logs or command-line
5189 identification bug. Now variables loaded via logs or command-line
5184 files are recognized in the interactive namespace by @who.
5190 files are recognized in the interactive namespace by @who.
5185
5191
5186 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5192 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5187 log replay system stemming from the string form of Structs.
5193 log replay system stemming from the string form of Structs.
5188
5194
5189 * IPython/Magic.py (Macro.__init__): improved macros to properly
5195 * IPython/Magic.py (Macro.__init__): improved macros to properly
5190 handle magic commands in them.
5196 handle magic commands in them.
5191 (Magic.magic_logstart): usernames are now expanded so 'logstart
5197 (Magic.magic_logstart): usernames are now expanded so 'logstart
5192 ~/mylog' now works.
5198 ~/mylog' now works.
5193
5199
5194 * IPython/iplib.py (complete): fixed bug where paths starting with
5200 * IPython/iplib.py (complete): fixed bug where paths starting with
5195 '/' would be completed as magic names.
5201 '/' would be completed as magic names.
5196
5202
5197 2002-05-04 Fernando Perez <fperez@colorado.edu>
5203 2002-05-04 Fernando Perez <fperez@colorado.edu>
5198
5204
5199 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5205 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5200 allow running full programs under the profiler's control.
5206 allow running full programs under the profiler's control.
5201
5207
5202 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5208 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5203 mode to report exceptions verbosely but without formatting
5209 mode to report exceptions verbosely but without formatting
5204 variables. This addresses the issue of ipython 'freezing' (it's
5210 variables. This addresses the issue of ipython 'freezing' (it's
5205 not frozen, but caught in an expensive formatting loop) when huge
5211 not frozen, but caught in an expensive formatting loop) when huge
5206 variables are in the context of an exception.
5212 variables are in the context of an exception.
5207 (VerboseTB.text): Added '--->' markers at line where exception was
5213 (VerboseTB.text): Added '--->' markers at line where exception was
5208 triggered. Much clearer to read, especially in NoColor modes.
5214 triggered. Much clearer to read, especially in NoColor modes.
5209
5215
5210 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5216 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5211 implemented in reverse when changing to the new parse_options().
5217 implemented in reverse when changing to the new parse_options().
5212
5218
5213 2002-05-03 Fernando Perez <fperez@colorado.edu>
5219 2002-05-03 Fernando Perez <fperez@colorado.edu>
5214
5220
5215 * IPython/Magic.py (Magic.parse_options): new function so that
5221 * IPython/Magic.py (Magic.parse_options): new function so that
5216 magics can parse options easier.
5222 magics can parse options easier.
5217 (Magic.magic_prun): new function similar to profile.run(),
5223 (Magic.magic_prun): new function similar to profile.run(),
5218 suggested by Chris Hart.
5224 suggested by Chris Hart.
5219 (Magic.magic_cd): fixed behavior so that it only changes if
5225 (Magic.magic_cd): fixed behavior so that it only changes if
5220 directory actually is in history.
5226 directory actually is in history.
5221
5227
5222 * IPython/usage.py (__doc__): added information about potential
5228 * IPython/usage.py (__doc__): added information about potential
5223 slowness of Verbose exception mode when there are huge data
5229 slowness of Verbose exception mode when there are huge data
5224 structures to be formatted (thanks to Archie Paulson).
5230 structures to be formatted (thanks to Archie Paulson).
5225
5231
5226 * IPython/ipmaker.py (make_IPython): Changed default logging
5232 * IPython/ipmaker.py (make_IPython): Changed default logging
5227 (when simply called with -log) to use curr_dir/ipython.log in
5233 (when simply called with -log) to use curr_dir/ipython.log in
5228 rotate mode. Fixed crash which was occuring with -log before
5234 rotate mode. Fixed crash which was occuring with -log before
5229 (thanks to Jim Boyle).
5235 (thanks to Jim Boyle).
5230
5236
5231 2002-05-01 Fernando Perez <fperez@colorado.edu>
5237 2002-05-01 Fernando Perez <fperez@colorado.edu>
5232
5238
5233 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5239 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5234 was nasty -- though somewhat of a corner case).
5240 was nasty -- though somewhat of a corner case).
5235
5241
5236 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5242 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5237 text (was a bug).
5243 text (was a bug).
5238
5244
5239 2002-04-30 Fernando Perez <fperez@colorado.edu>
5245 2002-04-30 Fernando Perez <fperez@colorado.edu>
5240
5246
5241 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5247 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5242 a print after ^D or ^C from the user so that the In[] prompt
5248 a print after ^D or ^C from the user so that the In[] prompt
5243 doesn't over-run the gnuplot one.
5249 doesn't over-run the gnuplot one.
5244
5250
5245 2002-04-29 Fernando Perez <fperez@colorado.edu>
5251 2002-04-29 Fernando Perez <fperez@colorado.edu>
5246
5252
5247 * Released 0.2.10
5253 * Released 0.2.10
5248
5254
5249 * IPython/__release__.py (version): get date dynamically.
5255 * IPython/__release__.py (version): get date dynamically.
5250
5256
5251 * Misc. documentation updates thanks to Arnd's comments. Also ran
5257 * Misc. documentation updates thanks to Arnd's comments. Also ran
5252 a full spellcheck on the manual (hadn't been done in a while).
5258 a full spellcheck on the manual (hadn't been done in a while).
5253
5259
5254 2002-04-27 Fernando Perez <fperez@colorado.edu>
5260 2002-04-27 Fernando Perez <fperez@colorado.edu>
5255
5261
5256 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5262 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5257 starting a log in mid-session would reset the input history list.
5263 starting a log in mid-session would reset the input history list.
5258
5264
5259 2002-04-26 Fernando Perez <fperez@colorado.edu>
5265 2002-04-26 Fernando Perez <fperez@colorado.edu>
5260
5266
5261 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5267 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5262 all files were being included in an update. Now anything in
5268 all files were being included in an update. Now anything in
5263 UserConfig that matches [A-Za-z]*.py will go (this excludes
5269 UserConfig that matches [A-Za-z]*.py will go (this excludes
5264 __init__.py)
5270 __init__.py)
5265
5271
5266 2002-04-25 Fernando Perez <fperez@colorado.edu>
5272 2002-04-25 Fernando Perez <fperez@colorado.edu>
5267
5273
5268 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5274 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5269 to __builtins__ so that any form of embedded or imported code can
5275 to __builtins__ so that any form of embedded or imported code can
5270 test for being inside IPython.
5276 test for being inside IPython.
5271
5277
5272 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5278 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5273 changed to GnuplotMagic because it's now an importable module,
5279 changed to GnuplotMagic because it's now an importable module,
5274 this makes the name follow that of the standard Gnuplot module.
5280 this makes the name follow that of the standard Gnuplot module.
5275 GnuplotMagic can now be loaded at any time in mid-session.
5281 GnuplotMagic can now be loaded at any time in mid-session.
5276
5282
5277 2002-04-24 Fernando Perez <fperez@colorado.edu>
5283 2002-04-24 Fernando Perez <fperez@colorado.edu>
5278
5284
5279 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5285 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5280 the globals (IPython has its own namespace) and the
5286 the globals (IPython has its own namespace) and the
5281 PhysicalQuantity stuff is much better anyway.
5287 PhysicalQuantity stuff is much better anyway.
5282
5288
5283 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5289 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5284 embedding example to standard user directory for
5290 embedding example to standard user directory for
5285 distribution. Also put it in the manual.
5291 distribution. Also put it in the manual.
5286
5292
5287 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5293 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5288 instance as first argument (so it doesn't rely on some obscure
5294 instance as first argument (so it doesn't rely on some obscure
5289 hidden global).
5295 hidden global).
5290
5296
5291 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5297 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5292 delimiters. While it prevents ().TAB from working, it allows
5298 delimiters. While it prevents ().TAB from working, it allows
5293 completions in open (... expressions. This is by far a more common
5299 completions in open (... expressions. This is by far a more common
5294 case.
5300 case.
5295
5301
5296 2002-04-23 Fernando Perez <fperez@colorado.edu>
5302 2002-04-23 Fernando Perez <fperez@colorado.edu>
5297
5303
5298 * IPython/Extensions/InterpreterPasteInput.py: new
5304 * IPython/Extensions/InterpreterPasteInput.py: new
5299 syntax-processing module for pasting lines with >>> or ... at the
5305 syntax-processing module for pasting lines with >>> or ... at the
5300 start.
5306 start.
5301
5307
5302 * IPython/Extensions/PhysicalQ_Interactive.py
5308 * IPython/Extensions/PhysicalQ_Interactive.py
5303 (PhysicalQuantityInteractive.__int__): fixed to work with either
5309 (PhysicalQuantityInteractive.__int__): fixed to work with either
5304 Numeric or math.
5310 Numeric or math.
5305
5311
5306 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5312 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5307 provided profiles. Now we have:
5313 provided profiles. Now we have:
5308 -math -> math module as * and cmath with its own namespace.
5314 -math -> math module as * and cmath with its own namespace.
5309 -numeric -> Numeric as *, plus gnuplot & grace
5315 -numeric -> Numeric as *, plus gnuplot & grace
5310 -physics -> same as before
5316 -physics -> same as before
5311
5317
5312 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5318 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5313 user-defined magics wouldn't be found by @magic if they were
5319 user-defined magics wouldn't be found by @magic if they were
5314 defined as class methods. Also cleaned up the namespace search
5320 defined as class methods. Also cleaned up the namespace search
5315 logic and the string building (to use %s instead of many repeated
5321 logic and the string building (to use %s instead of many repeated
5316 string adds).
5322 string adds).
5317
5323
5318 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5324 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5319 of user-defined magics to operate with class methods (cleaner, in
5325 of user-defined magics to operate with class methods (cleaner, in
5320 line with the gnuplot code).
5326 line with the gnuplot code).
5321
5327
5322 2002-04-22 Fernando Perez <fperez@colorado.edu>
5328 2002-04-22 Fernando Perez <fperez@colorado.edu>
5323
5329
5324 * setup.py: updated dependency list so that manual is updated when
5330 * setup.py: updated dependency list so that manual is updated when
5325 all included files change.
5331 all included files change.
5326
5332
5327 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5333 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5328 the delimiter removal option (the fix is ugly right now).
5334 the delimiter removal option (the fix is ugly right now).
5329
5335
5330 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5336 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5331 all of the math profile (quicker loading, no conflict between
5337 all of the math profile (quicker loading, no conflict between
5332 g-9.8 and g-gnuplot).
5338 g-9.8 and g-gnuplot).
5333
5339
5334 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5340 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5335 name of post-mortem files to IPython_crash_report.txt.
5341 name of post-mortem files to IPython_crash_report.txt.
5336
5342
5337 * Cleanup/update of the docs. Added all the new readline info and
5343 * Cleanup/update of the docs. Added all the new readline info and
5338 formatted all lists as 'real lists'.
5344 formatted all lists as 'real lists'.
5339
5345
5340 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5346 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5341 tab-completion options, since the full readline parse_and_bind is
5347 tab-completion options, since the full readline parse_and_bind is
5342 now accessible.
5348 now accessible.
5343
5349
5344 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5350 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5345 handling of readline options. Now users can specify any string to
5351 handling of readline options. Now users can specify any string to
5346 be passed to parse_and_bind(), as well as the delimiters to be
5352 be passed to parse_and_bind(), as well as the delimiters to be
5347 removed.
5353 removed.
5348 (InteractiveShell.__init__): Added __name__ to the global
5354 (InteractiveShell.__init__): Added __name__ to the global
5349 namespace so that things like Itpl which rely on its existence
5355 namespace so that things like Itpl which rely on its existence
5350 don't crash.
5356 don't crash.
5351 (InteractiveShell._prefilter): Defined the default with a _ so
5357 (InteractiveShell._prefilter): Defined the default with a _ so
5352 that prefilter() is easier to override, while the default one
5358 that prefilter() is easier to override, while the default one
5353 remains available.
5359 remains available.
5354
5360
5355 2002-04-18 Fernando Perez <fperez@colorado.edu>
5361 2002-04-18 Fernando Perez <fperez@colorado.edu>
5356
5362
5357 * Added information about pdb in the docs.
5363 * Added information about pdb in the docs.
5358
5364
5359 2002-04-17 Fernando Perez <fperez@colorado.edu>
5365 2002-04-17 Fernando Perez <fperez@colorado.edu>
5360
5366
5361 * IPython/ipmaker.py (make_IPython): added rc_override option to
5367 * IPython/ipmaker.py (make_IPython): added rc_override option to
5362 allow passing config options at creation time which may override
5368 allow passing config options at creation time which may override
5363 anything set in the config files or command line. This is
5369 anything set in the config files or command line. This is
5364 particularly useful for configuring embedded instances.
5370 particularly useful for configuring embedded instances.
5365
5371
5366 2002-04-15 Fernando Perez <fperez@colorado.edu>
5372 2002-04-15 Fernando Perez <fperez@colorado.edu>
5367
5373
5368 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5374 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5369 crash embedded instances because of the input cache falling out of
5375 crash embedded instances because of the input cache falling out of
5370 sync with the output counter.
5376 sync with the output counter.
5371
5377
5372 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5378 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5373 mode which calls pdb after an uncaught exception in IPython itself.
5379 mode which calls pdb after an uncaught exception in IPython itself.
5374
5380
5375 2002-04-14 Fernando Perez <fperez@colorado.edu>
5381 2002-04-14 Fernando Perez <fperez@colorado.edu>
5376
5382
5377 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5383 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5378 readline, fix it back after each call.
5384 readline, fix it back after each call.
5379
5385
5380 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5386 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5381 method to force all access via __call__(), which guarantees that
5387 method to force all access via __call__(), which guarantees that
5382 traceback references are properly deleted.
5388 traceback references are properly deleted.
5383
5389
5384 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5390 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5385 improve printing when pprint is in use.
5391 improve printing when pprint is in use.
5386
5392
5387 2002-04-13 Fernando Perez <fperez@colorado.edu>
5393 2002-04-13 Fernando Perez <fperez@colorado.edu>
5388
5394
5389 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5395 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5390 exceptions aren't caught anymore. If the user triggers one, he
5396 exceptions aren't caught anymore. If the user triggers one, he
5391 should know why he's doing it and it should go all the way up,
5397 should know why he's doing it and it should go all the way up,
5392 just like any other exception. So now @abort will fully kill the
5398 just like any other exception. So now @abort will fully kill the
5393 embedded interpreter and the embedding code (unless that happens
5399 embedded interpreter and the embedding code (unless that happens
5394 to catch SystemExit).
5400 to catch SystemExit).
5395
5401
5396 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5402 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5397 and a debugger() method to invoke the interactive pdb debugger
5403 and a debugger() method to invoke the interactive pdb debugger
5398 after printing exception information. Also added the corresponding
5404 after printing exception information. Also added the corresponding
5399 -pdb option and @pdb magic to control this feature, and updated
5405 -pdb option and @pdb magic to control this feature, and updated
5400 the docs. After a suggestion from Christopher Hart
5406 the docs. After a suggestion from Christopher Hart
5401 (hart-AT-caltech.edu).
5407 (hart-AT-caltech.edu).
5402
5408
5403 2002-04-12 Fernando Perez <fperez@colorado.edu>
5409 2002-04-12 Fernando Perez <fperez@colorado.edu>
5404
5410
5405 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5411 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5406 the exception handlers defined by the user (not the CrashHandler)
5412 the exception handlers defined by the user (not the CrashHandler)
5407 so that user exceptions don't trigger an ipython bug report.
5413 so that user exceptions don't trigger an ipython bug report.
5408
5414
5409 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5415 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5410 configurable (it should have always been so).
5416 configurable (it should have always been so).
5411
5417
5412 2002-03-26 Fernando Perez <fperez@colorado.edu>
5418 2002-03-26 Fernando Perez <fperez@colorado.edu>
5413
5419
5414 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5420 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5415 and there to fix embedding namespace issues. This should all be
5421 and there to fix embedding namespace issues. This should all be
5416 done in a more elegant way.
5422 done in a more elegant way.
5417
5423
5418 2002-03-25 Fernando Perez <fperez@colorado.edu>
5424 2002-03-25 Fernando Perez <fperez@colorado.edu>
5419
5425
5420 * IPython/genutils.py (get_home_dir): Try to make it work under
5426 * IPython/genutils.py (get_home_dir): Try to make it work under
5421 win9x also.
5427 win9x also.
5422
5428
5423 2002-03-20 Fernando Perez <fperez@colorado.edu>
5429 2002-03-20 Fernando Perez <fperez@colorado.edu>
5424
5430
5425 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5431 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5426 sys.displayhook untouched upon __init__.
5432 sys.displayhook untouched upon __init__.
5427
5433
5428 2002-03-19 Fernando Perez <fperez@colorado.edu>
5434 2002-03-19 Fernando Perez <fperez@colorado.edu>
5429
5435
5430 * Released 0.2.9 (for embedding bug, basically).
5436 * Released 0.2.9 (for embedding bug, basically).
5431
5437
5432 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5438 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5433 exceptions so that enclosing shell's state can be restored.
5439 exceptions so that enclosing shell's state can be restored.
5434
5440
5435 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5441 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5436 naming conventions in the .ipython/ dir.
5442 naming conventions in the .ipython/ dir.
5437
5443
5438 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5444 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5439 from delimiters list so filenames with - in them get expanded.
5445 from delimiters list so filenames with - in them get expanded.
5440
5446
5441 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5447 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5442 sys.displayhook not being properly restored after an embedded call.
5448 sys.displayhook not being properly restored after an embedded call.
5443
5449
5444 2002-03-18 Fernando Perez <fperez@colorado.edu>
5450 2002-03-18 Fernando Perez <fperez@colorado.edu>
5445
5451
5446 * Released 0.2.8
5452 * Released 0.2.8
5447
5453
5448 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5454 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5449 some files weren't being included in a -upgrade.
5455 some files weren't being included in a -upgrade.
5450 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5456 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5451 on' so that the first tab completes.
5457 on' so that the first tab completes.
5452 (InteractiveShell.handle_magic): fixed bug with spaces around
5458 (InteractiveShell.handle_magic): fixed bug with spaces around
5453 quotes breaking many magic commands.
5459 quotes breaking many magic commands.
5454
5460
5455 * setup.py: added note about ignoring the syntax error messages at
5461 * setup.py: added note about ignoring the syntax error messages at
5456 installation.
5462 installation.
5457
5463
5458 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5464 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5459 streamlining the gnuplot interface, now there's only one magic @gp.
5465 streamlining the gnuplot interface, now there's only one magic @gp.
5460
5466
5461 2002-03-17 Fernando Perez <fperez@colorado.edu>
5467 2002-03-17 Fernando Perez <fperez@colorado.edu>
5462
5468
5463 * IPython/UserConfig/magic_gnuplot.py: new name for the
5469 * IPython/UserConfig/magic_gnuplot.py: new name for the
5464 example-magic_pm.py file. Much enhanced system, now with a shell
5470 example-magic_pm.py file. Much enhanced system, now with a shell
5465 for communicating directly with gnuplot, one command at a time.
5471 for communicating directly with gnuplot, one command at a time.
5466
5472
5467 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5473 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5468 setting __name__=='__main__'.
5474 setting __name__=='__main__'.
5469
5475
5470 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5476 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5471 mini-shell for accessing gnuplot from inside ipython. Should
5477 mini-shell for accessing gnuplot from inside ipython. Should
5472 extend it later for grace access too. Inspired by Arnd's
5478 extend it later for grace access too. Inspired by Arnd's
5473 suggestion.
5479 suggestion.
5474
5480
5475 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5481 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5476 calling magic functions with () in their arguments. Thanks to Arnd
5482 calling magic functions with () in their arguments. Thanks to Arnd
5477 Baecker for pointing this to me.
5483 Baecker for pointing this to me.
5478
5484
5479 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5485 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5480 infinitely for integer or complex arrays (only worked with floats).
5486 infinitely for integer or complex arrays (only worked with floats).
5481
5487
5482 2002-03-16 Fernando Perez <fperez@colorado.edu>
5488 2002-03-16 Fernando Perez <fperez@colorado.edu>
5483
5489
5484 * setup.py: Merged setup and setup_windows into a single script
5490 * setup.py: Merged setup and setup_windows into a single script
5485 which properly handles things for windows users.
5491 which properly handles things for windows users.
5486
5492
5487 2002-03-15 Fernando Perez <fperez@colorado.edu>
5493 2002-03-15 Fernando Perez <fperez@colorado.edu>
5488
5494
5489 * Big change to the manual: now the magics are all automatically
5495 * Big change to the manual: now the magics are all automatically
5490 documented. This information is generated from their docstrings
5496 documented. This information is generated from their docstrings
5491 and put in a latex file included by the manual lyx file. This way
5497 and put in a latex file included by the manual lyx file. This way
5492 we get always up to date information for the magics. The manual
5498 we get always up to date information for the magics. The manual
5493 now also has proper version information, also auto-synced.
5499 now also has proper version information, also auto-synced.
5494
5500
5495 For this to work, an undocumented --magic_docstrings option was added.
5501 For this to work, an undocumented --magic_docstrings option was added.
5496
5502
5497 2002-03-13 Fernando Perez <fperez@colorado.edu>
5503 2002-03-13 Fernando Perez <fperez@colorado.edu>
5498
5504
5499 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5505 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5500 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5506 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5501
5507
5502 2002-03-12 Fernando Perez <fperez@colorado.edu>
5508 2002-03-12 Fernando Perez <fperez@colorado.edu>
5503
5509
5504 * IPython/ultraTB.py (TermColors): changed color escapes again to
5510 * IPython/ultraTB.py (TermColors): changed color escapes again to
5505 fix the (old, reintroduced) line-wrapping bug. Basically, if
5511 fix the (old, reintroduced) line-wrapping bug. Basically, if
5506 \001..\002 aren't given in the color escapes, lines get wrapped
5512 \001..\002 aren't given in the color escapes, lines get wrapped
5507 weirdly. But giving those screws up old xterms and emacs terms. So
5513 weirdly. But giving those screws up old xterms and emacs terms. So
5508 I added some logic for emacs terms to be ok, but I can't identify old
5514 I added some logic for emacs terms to be ok, but I can't identify old
5509 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5515 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5510
5516
5511 2002-03-10 Fernando Perez <fperez@colorado.edu>
5517 2002-03-10 Fernando Perez <fperez@colorado.edu>
5512
5518
5513 * IPython/usage.py (__doc__): Various documentation cleanups and
5519 * IPython/usage.py (__doc__): Various documentation cleanups and
5514 updates, both in usage docstrings and in the manual.
5520 updates, both in usage docstrings and in the manual.
5515
5521
5516 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5522 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5517 handling of caching. Set minimum acceptabe value for having a
5523 handling of caching. Set minimum acceptabe value for having a
5518 cache at 20 values.
5524 cache at 20 values.
5519
5525
5520 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5526 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5521 install_first_time function to a method, renamed it and added an
5527 install_first_time function to a method, renamed it and added an
5522 'upgrade' mode. Now people can update their config directory with
5528 'upgrade' mode. Now people can update their config directory with
5523 a simple command line switch (-upgrade, also new).
5529 a simple command line switch (-upgrade, also new).
5524
5530
5525 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5531 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5526 @file (convenient for automagic users under Python >= 2.2).
5532 @file (convenient for automagic users under Python >= 2.2).
5527 Removed @files (it seemed more like a plural than an abbrev. of
5533 Removed @files (it seemed more like a plural than an abbrev. of
5528 'file show').
5534 'file show').
5529
5535
5530 * IPython/iplib.py (install_first_time): Fixed crash if there were
5536 * IPython/iplib.py (install_first_time): Fixed crash if there were
5531 backup files ('~') in .ipython/ install directory.
5537 backup files ('~') in .ipython/ install directory.
5532
5538
5533 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5539 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5534 system. Things look fine, but these changes are fairly
5540 system. Things look fine, but these changes are fairly
5535 intrusive. Test them for a few days.
5541 intrusive. Test them for a few days.
5536
5542
5537 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5543 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5538 the prompts system. Now all in/out prompt strings are user
5544 the prompts system. Now all in/out prompt strings are user
5539 controllable. This is particularly useful for embedding, as one
5545 controllable. This is particularly useful for embedding, as one
5540 can tag embedded instances with particular prompts.
5546 can tag embedded instances with particular prompts.
5541
5547
5542 Also removed global use of sys.ps1/2, which now allows nested
5548 Also removed global use of sys.ps1/2, which now allows nested
5543 embeddings without any problems. Added command-line options for
5549 embeddings without any problems. Added command-line options for
5544 the prompt strings.
5550 the prompt strings.
5545
5551
5546 2002-03-08 Fernando Perez <fperez@colorado.edu>
5552 2002-03-08 Fernando Perez <fperez@colorado.edu>
5547
5553
5548 * IPython/UserConfig/example-embed-short.py (ipshell): added
5554 * IPython/UserConfig/example-embed-short.py (ipshell): added
5549 example file with the bare minimum code for embedding.
5555 example file with the bare minimum code for embedding.
5550
5556
5551 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5557 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5552 functionality for the embeddable shell to be activated/deactivated
5558 functionality for the embeddable shell to be activated/deactivated
5553 either globally or at each call.
5559 either globally or at each call.
5554
5560
5555 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5561 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5556 rewriting the prompt with '--->' for auto-inputs with proper
5562 rewriting the prompt with '--->' for auto-inputs with proper
5557 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5563 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5558 this is handled by the prompts class itself, as it should.
5564 this is handled by the prompts class itself, as it should.
5559
5565
5560 2002-03-05 Fernando Perez <fperez@colorado.edu>
5566 2002-03-05 Fernando Perez <fperez@colorado.edu>
5561
5567
5562 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5568 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5563 @logstart to avoid name clashes with the math log function.
5569 @logstart to avoid name clashes with the math log function.
5564
5570
5565 * Big updates to X/Emacs section of the manual.
5571 * Big updates to X/Emacs section of the manual.
5566
5572
5567 * Removed ipython_emacs. Milan explained to me how to pass
5573 * Removed ipython_emacs. Milan explained to me how to pass
5568 arguments to ipython through Emacs. Some day I'm going to end up
5574 arguments to ipython through Emacs. Some day I'm going to end up
5569 learning some lisp...
5575 learning some lisp...
5570
5576
5571 2002-03-04 Fernando Perez <fperez@colorado.edu>
5577 2002-03-04 Fernando Perez <fperez@colorado.edu>
5572
5578
5573 * IPython/ipython_emacs: Created script to be used as the
5579 * IPython/ipython_emacs: Created script to be used as the
5574 py-python-command Emacs variable so we can pass IPython
5580 py-python-command Emacs variable so we can pass IPython
5575 parameters. I can't figure out how to tell Emacs directly to pass
5581 parameters. I can't figure out how to tell Emacs directly to pass
5576 parameters to IPython, so a dummy shell script will do it.
5582 parameters to IPython, so a dummy shell script will do it.
5577
5583
5578 Other enhancements made for things to work better under Emacs'
5584 Other enhancements made for things to work better under Emacs'
5579 various types of terminals. Many thanks to Milan Zamazal
5585 various types of terminals. Many thanks to Milan Zamazal
5580 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5586 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5581
5587
5582 2002-03-01 Fernando Perez <fperez@colorado.edu>
5588 2002-03-01 Fernando Perez <fperez@colorado.edu>
5583
5589
5584 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5590 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5585 that loading of readline is now optional. This gives better
5591 that loading of readline is now optional. This gives better
5586 control to emacs users.
5592 control to emacs users.
5587
5593
5588 * IPython/ultraTB.py (__date__): Modified color escape sequences
5594 * IPython/ultraTB.py (__date__): Modified color escape sequences
5589 and now things work fine under xterm and in Emacs' term buffers
5595 and now things work fine under xterm and in Emacs' term buffers
5590 (though not shell ones). Well, in emacs you get colors, but all
5596 (though not shell ones). Well, in emacs you get colors, but all
5591 seem to be 'light' colors (no difference between dark and light
5597 seem to be 'light' colors (no difference between dark and light
5592 ones). But the garbage chars are gone, and also in xterms. It
5598 ones). But the garbage chars are gone, and also in xterms. It
5593 seems that now I'm using 'cleaner' ansi sequences.
5599 seems that now I'm using 'cleaner' ansi sequences.
5594
5600
5595 2002-02-21 Fernando Perez <fperez@colorado.edu>
5601 2002-02-21 Fernando Perez <fperez@colorado.edu>
5596
5602
5597 * Released 0.2.7 (mainly to publish the scoping fix).
5603 * Released 0.2.7 (mainly to publish the scoping fix).
5598
5604
5599 * IPython/Logger.py (Logger.logstate): added. A corresponding
5605 * IPython/Logger.py (Logger.logstate): added. A corresponding
5600 @logstate magic was created.
5606 @logstate magic was created.
5601
5607
5602 * IPython/Magic.py: fixed nested scoping problem under Python
5608 * IPython/Magic.py: fixed nested scoping problem under Python
5603 2.1.x (automagic wasn't working).
5609 2.1.x (automagic wasn't working).
5604
5610
5605 2002-02-20 Fernando Perez <fperez@colorado.edu>
5611 2002-02-20 Fernando Perez <fperez@colorado.edu>
5606
5612
5607 * Released 0.2.6.
5613 * Released 0.2.6.
5608
5614
5609 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5615 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5610 option so that logs can come out without any headers at all.
5616 option so that logs can come out without any headers at all.
5611
5617
5612 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5618 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5613 SciPy.
5619 SciPy.
5614
5620
5615 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5621 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5616 that embedded IPython calls don't require vars() to be explicitly
5622 that embedded IPython calls don't require vars() to be explicitly
5617 passed. Now they are extracted from the caller's frame (code
5623 passed. Now they are extracted from the caller's frame (code
5618 snatched from Eric Jones' weave). Added better documentation to
5624 snatched from Eric Jones' weave). Added better documentation to
5619 the section on embedding and the example file.
5625 the section on embedding and the example file.
5620
5626
5621 * IPython/genutils.py (page): Changed so that under emacs, it just
5627 * IPython/genutils.py (page): Changed so that under emacs, it just
5622 prints the string. You can then page up and down in the emacs
5628 prints the string. You can then page up and down in the emacs
5623 buffer itself. This is how the builtin help() works.
5629 buffer itself. This is how the builtin help() works.
5624
5630
5625 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5631 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5626 macro scoping: macros need to be executed in the user's namespace
5632 macro scoping: macros need to be executed in the user's namespace
5627 to work as if they had been typed by the user.
5633 to work as if they had been typed by the user.
5628
5634
5629 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5635 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5630 execute automatically (no need to type 'exec...'). They then
5636 execute automatically (no need to type 'exec...'). They then
5631 behave like 'true macros'. The printing system was also modified
5637 behave like 'true macros'. The printing system was also modified
5632 for this to work.
5638 for this to work.
5633
5639
5634 2002-02-19 Fernando Perez <fperez@colorado.edu>
5640 2002-02-19 Fernando Perez <fperez@colorado.edu>
5635
5641
5636 * IPython/genutils.py (page_file): new function for paging files
5642 * IPython/genutils.py (page_file): new function for paging files
5637 in an OS-independent way. Also necessary for file viewing to work
5643 in an OS-independent way. Also necessary for file viewing to work
5638 well inside Emacs buffers.
5644 well inside Emacs buffers.
5639 (page): Added checks for being in an emacs buffer.
5645 (page): Added checks for being in an emacs buffer.
5640 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5646 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5641 same bug in iplib.
5647 same bug in iplib.
5642
5648
5643 2002-02-18 Fernando Perez <fperez@colorado.edu>
5649 2002-02-18 Fernando Perez <fperez@colorado.edu>
5644
5650
5645 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5651 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5646 of readline so that IPython can work inside an Emacs buffer.
5652 of readline so that IPython can work inside an Emacs buffer.
5647
5653
5648 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5654 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5649 method signatures (they weren't really bugs, but it looks cleaner
5655 method signatures (they weren't really bugs, but it looks cleaner
5650 and keeps PyChecker happy).
5656 and keeps PyChecker happy).
5651
5657
5652 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5658 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5653 for implementing various user-defined hooks. Currently only
5659 for implementing various user-defined hooks. Currently only
5654 display is done.
5660 display is done.
5655
5661
5656 * IPython/Prompts.py (CachedOutput._display): changed display
5662 * IPython/Prompts.py (CachedOutput._display): changed display
5657 functions so that they can be dynamically changed by users easily.
5663 functions so that they can be dynamically changed by users easily.
5658
5664
5659 * IPython/Extensions/numeric_formats.py (num_display): added an
5665 * IPython/Extensions/numeric_formats.py (num_display): added an
5660 extension for printing NumPy arrays in flexible manners. It
5666 extension for printing NumPy arrays in flexible manners. It
5661 doesn't do anything yet, but all the structure is in
5667 doesn't do anything yet, but all the structure is in
5662 place. Ultimately the plan is to implement output format control
5668 place. Ultimately the plan is to implement output format control
5663 like in Octave.
5669 like in Octave.
5664
5670
5665 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5671 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5666 methods are found at run-time by all the automatic machinery.
5672 methods are found at run-time by all the automatic machinery.
5667
5673
5668 2002-02-17 Fernando Perez <fperez@colorado.edu>
5674 2002-02-17 Fernando Perez <fperez@colorado.edu>
5669
5675
5670 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5676 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5671 whole file a little.
5677 whole file a little.
5672
5678
5673 * ToDo: closed this document. Now there's a new_design.lyx
5679 * ToDo: closed this document. Now there's a new_design.lyx
5674 document for all new ideas. Added making a pdf of it for the
5680 document for all new ideas. Added making a pdf of it for the
5675 end-user distro.
5681 end-user distro.
5676
5682
5677 * IPython/Logger.py (Logger.switch_log): Created this to replace
5683 * IPython/Logger.py (Logger.switch_log): Created this to replace
5678 logon() and logoff(). It also fixes a nasty crash reported by
5684 logon() and logoff(). It also fixes a nasty crash reported by
5679 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5685 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5680
5686
5681 * IPython/iplib.py (complete): got auto-completion to work with
5687 * IPython/iplib.py (complete): got auto-completion to work with
5682 automagic (I had wanted this for a long time).
5688 automagic (I had wanted this for a long time).
5683
5689
5684 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5690 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5685 to @file, since file() is now a builtin and clashes with automagic
5691 to @file, since file() is now a builtin and clashes with automagic
5686 for @file.
5692 for @file.
5687
5693
5688 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5694 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5689 of this was previously in iplib, which had grown to more than 2000
5695 of this was previously in iplib, which had grown to more than 2000
5690 lines, way too long. No new functionality, but it makes managing
5696 lines, way too long. No new functionality, but it makes managing
5691 the code a bit easier.
5697 the code a bit easier.
5692
5698
5693 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5699 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5694 information to crash reports.
5700 information to crash reports.
5695
5701
5696 2002-02-12 Fernando Perez <fperez@colorado.edu>
5702 2002-02-12 Fernando Perez <fperez@colorado.edu>
5697
5703
5698 * Released 0.2.5.
5704 * Released 0.2.5.
5699
5705
5700 2002-02-11 Fernando Perez <fperez@colorado.edu>
5706 2002-02-11 Fernando Perez <fperez@colorado.edu>
5701
5707
5702 * Wrote a relatively complete Windows installer. It puts
5708 * Wrote a relatively complete Windows installer. It puts
5703 everything in place, creates Start Menu entries and fixes the
5709 everything in place, creates Start Menu entries and fixes the
5704 color issues. Nothing fancy, but it works.
5710 color issues. Nothing fancy, but it works.
5705
5711
5706 2002-02-10 Fernando Perez <fperez@colorado.edu>
5712 2002-02-10 Fernando Perez <fperez@colorado.edu>
5707
5713
5708 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5714 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5709 os.path.expanduser() call so that we can type @run ~/myfile.py and
5715 os.path.expanduser() call so that we can type @run ~/myfile.py and
5710 have thigs work as expected.
5716 have thigs work as expected.
5711
5717
5712 * IPython/genutils.py (page): fixed exception handling so things
5718 * IPython/genutils.py (page): fixed exception handling so things
5713 work both in Unix and Windows correctly. Quitting a pager triggers
5719 work both in Unix and Windows correctly. Quitting a pager triggers
5714 an IOError/broken pipe in Unix, and in windows not finding a pager
5720 an IOError/broken pipe in Unix, and in windows not finding a pager
5715 is also an IOError, so I had to actually look at the return value
5721 is also an IOError, so I had to actually look at the return value
5716 of the exception, not just the exception itself. Should be ok now.
5722 of the exception, not just the exception itself. Should be ok now.
5717
5723
5718 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5724 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5719 modified to allow case-insensitive color scheme changes.
5725 modified to allow case-insensitive color scheme changes.
5720
5726
5721 2002-02-09 Fernando Perez <fperez@colorado.edu>
5727 2002-02-09 Fernando Perez <fperez@colorado.edu>
5722
5728
5723 * IPython/genutils.py (native_line_ends): new function to leave
5729 * IPython/genutils.py (native_line_ends): new function to leave
5724 user config files with os-native line-endings.
5730 user config files with os-native line-endings.
5725
5731
5726 * README and manual updates.
5732 * README and manual updates.
5727
5733
5728 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5734 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5729 instead of StringType to catch Unicode strings.
5735 instead of StringType to catch Unicode strings.
5730
5736
5731 * IPython/genutils.py (filefind): fixed bug for paths with
5737 * IPython/genutils.py (filefind): fixed bug for paths with
5732 embedded spaces (very common in Windows).
5738 embedded spaces (very common in Windows).
5733
5739
5734 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5740 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5735 files under Windows, so that they get automatically associated
5741 files under Windows, so that they get automatically associated
5736 with a text editor. Windows makes it a pain to handle
5742 with a text editor. Windows makes it a pain to handle
5737 extension-less files.
5743 extension-less files.
5738
5744
5739 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5745 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5740 warning about readline only occur for Posix. In Windows there's no
5746 warning about readline only occur for Posix. In Windows there's no
5741 way to get readline, so why bother with the warning.
5747 way to get readline, so why bother with the warning.
5742
5748
5743 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5749 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5744 for __str__ instead of dir(self), since dir() changed in 2.2.
5750 for __str__ instead of dir(self), since dir() changed in 2.2.
5745
5751
5746 * Ported to Windows! Tested on XP, I suspect it should work fine
5752 * Ported to Windows! Tested on XP, I suspect it should work fine
5747 on NT/2000, but I don't think it will work on 98 et al. That
5753 on NT/2000, but I don't think it will work on 98 et al. That
5748 series of Windows is such a piece of junk anyway that I won't try
5754 series of Windows is such a piece of junk anyway that I won't try
5749 porting it there. The XP port was straightforward, showed a few
5755 porting it there. The XP port was straightforward, showed a few
5750 bugs here and there (fixed all), in particular some string
5756 bugs here and there (fixed all), in particular some string
5751 handling stuff which required considering Unicode strings (which
5757 handling stuff which required considering Unicode strings (which
5752 Windows uses). This is good, but hasn't been too tested :) No
5758 Windows uses). This is good, but hasn't been too tested :) No
5753 fancy installer yet, I'll put a note in the manual so people at
5759 fancy installer yet, I'll put a note in the manual so people at
5754 least make manually a shortcut.
5760 least make manually a shortcut.
5755
5761
5756 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5762 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5757 into a single one, "colors". This now controls both prompt and
5763 into a single one, "colors". This now controls both prompt and
5758 exception color schemes, and can be changed both at startup
5764 exception color schemes, and can be changed both at startup
5759 (either via command-line switches or via ipythonrc files) and at
5765 (either via command-line switches or via ipythonrc files) and at
5760 runtime, with @colors.
5766 runtime, with @colors.
5761 (Magic.magic_run): renamed @prun to @run and removed the old
5767 (Magic.magic_run): renamed @prun to @run and removed the old
5762 @run. The two were too similar to warrant keeping both.
5768 @run. The two were too similar to warrant keeping both.
5763
5769
5764 2002-02-03 Fernando Perez <fperez@colorado.edu>
5770 2002-02-03 Fernando Perez <fperez@colorado.edu>
5765
5771
5766 * IPython/iplib.py (install_first_time): Added comment on how to
5772 * IPython/iplib.py (install_first_time): Added comment on how to
5767 configure the color options for first-time users. Put a <return>
5773 configure the color options for first-time users. Put a <return>
5768 request at the end so that small-terminal users get a chance to
5774 request at the end so that small-terminal users get a chance to
5769 read the startup info.
5775 read the startup info.
5770
5776
5771 2002-01-23 Fernando Perez <fperez@colorado.edu>
5777 2002-01-23 Fernando Perez <fperez@colorado.edu>
5772
5778
5773 * IPython/iplib.py (CachedOutput.update): Changed output memory
5779 * IPython/iplib.py (CachedOutput.update): Changed output memory
5774 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5780 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5775 input history we still use _i. Did this b/c these variable are
5781 input history we still use _i. Did this b/c these variable are
5776 very commonly used in interactive work, so the less we need to
5782 very commonly used in interactive work, so the less we need to
5777 type the better off we are.
5783 type the better off we are.
5778 (Magic.magic_prun): updated @prun to better handle the namespaces
5784 (Magic.magic_prun): updated @prun to better handle the namespaces
5779 the file will run in, including a fix for __name__ not being set
5785 the file will run in, including a fix for __name__ not being set
5780 before.
5786 before.
5781
5787
5782 2002-01-20 Fernando Perez <fperez@colorado.edu>
5788 2002-01-20 Fernando Perez <fperez@colorado.edu>
5783
5789
5784 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5790 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5785 extra garbage for Python 2.2. Need to look more carefully into
5791 extra garbage for Python 2.2. Need to look more carefully into
5786 this later.
5792 this later.
5787
5793
5788 2002-01-19 Fernando Perez <fperez@colorado.edu>
5794 2002-01-19 Fernando Perez <fperez@colorado.edu>
5789
5795
5790 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5796 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5791 display SyntaxError exceptions properly formatted when they occur
5797 display SyntaxError exceptions properly formatted when they occur
5792 (they can be triggered by imported code).
5798 (they can be triggered by imported code).
5793
5799
5794 2002-01-18 Fernando Perez <fperez@colorado.edu>
5800 2002-01-18 Fernando Perez <fperez@colorado.edu>
5795
5801
5796 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5802 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5797 SyntaxError exceptions are reported nicely formatted, instead of
5803 SyntaxError exceptions are reported nicely formatted, instead of
5798 spitting out only offset information as before.
5804 spitting out only offset information as before.
5799 (Magic.magic_prun): Added the @prun function for executing
5805 (Magic.magic_prun): Added the @prun function for executing
5800 programs with command line args inside IPython.
5806 programs with command line args inside IPython.
5801
5807
5802 2002-01-16 Fernando Perez <fperez@colorado.edu>
5808 2002-01-16 Fernando Perez <fperez@colorado.edu>
5803
5809
5804 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5810 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5805 to *not* include the last item given in a range. This brings their
5811 to *not* include the last item given in a range. This brings their
5806 behavior in line with Python's slicing:
5812 behavior in line with Python's slicing:
5807 a[n1:n2] -> a[n1]...a[n2-1]
5813 a[n1:n2] -> a[n1]...a[n2-1]
5808 It may be a bit less convenient, but I prefer to stick to Python's
5814 It may be a bit less convenient, but I prefer to stick to Python's
5809 conventions *everywhere*, so users never have to wonder.
5815 conventions *everywhere*, so users never have to wonder.
5810 (Magic.magic_macro): Added @macro function to ease the creation of
5816 (Magic.magic_macro): Added @macro function to ease the creation of
5811 macros.
5817 macros.
5812
5818
5813 2002-01-05 Fernando Perez <fperez@colorado.edu>
5819 2002-01-05 Fernando Perez <fperez@colorado.edu>
5814
5820
5815 * Released 0.2.4.
5821 * Released 0.2.4.
5816
5822
5817 * IPython/iplib.py (Magic.magic_pdef):
5823 * IPython/iplib.py (Magic.magic_pdef):
5818 (InteractiveShell.safe_execfile): report magic lines and error
5824 (InteractiveShell.safe_execfile): report magic lines and error
5819 lines without line numbers so one can easily copy/paste them for
5825 lines without line numbers so one can easily copy/paste them for
5820 re-execution.
5826 re-execution.
5821
5827
5822 * Updated manual with recent changes.
5828 * Updated manual with recent changes.
5823
5829
5824 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5830 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5825 docstring printing when class? is called. Very handy for knowing
5831 docstring printing when class? is called. Very handy for knowing
5826 how to create class instances (as long as __init__ is well
5832 how to create class instances (as long as __init__ is well
5827 documented, of course :)
5833 documented, of course :)
5828 (Magic.magic_doc): print both class and constructor docstrings.
5834 (Magic.magic_doc): print both class and constructor docstrings.
5829 (Magic.magic_pdef): give constructor info if passed a class and
5835 (Magic.magic_pdef): give constructor info if passed a class and
5830 __call__ info for callable object instances.
5836 __call__ info for callable object instances.
5831
5837
5832 2002-01-04 Fernando Perez <fperez@colorado.edu>
5838 2002-01-04 Fernando Perez <fperez@colorado.edu>
5833
5839
5834 * Made deep_reload() off by default. It doesn't always work
5840 * Made deep_reload() off by default. It doesn't always work
5835 exactly as intended, so it's probably safer to have it off. It's
5841 exactly as intended, so it's probably safer to have it off. It's
5836 still available as dreload() anyway, so nothing is lost.
5842 still available as dreload() anyway, so nothing is lost.
5837
5843
5838 2002-01-02 Fernando Perez <fperez@colorado.edu>
5844 2002-01-02 Fernando Perez <fperez@colorado.edu>
5839
5845
5840 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5846 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5841 so I wanted an updated release).
5847 so I wanted an updated release).
5842
5848
5843 2001-12-27 Fernando Perez <fperez@colorado.edu>
5849 2001-12-27 Fernando Perez <fperez@colorado.edu>
5844
5850
5845 * IPython/iplib.py (InteractiveShell.interact): Added the original
5851 * IPython/iplib.py (InteractiveShell.interact): Added the original
5846 code from 'code.py' for this module in order to change the
5852 code from 'code.py' for this module in order to change the
5847 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5853 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5848 the history cache would break when the user hit Ctrl-C, and
5854 the history cache would break when the user hit Ctrl-C, and
5849 interact() offers no way to add any hooks to it.
5855 interact() offers no way to add any hooks to it.
5850
5856
5851 2001-12-23 Fernando Perez <fperez@colorado.edu>
5857 2001-12-23 Fernando Perez <fperez@colorado.edu>
5852
5858
5853 * setup.py: added check for 'MANIFEST' before trying to remove
5859 * setup.py: added check for 'MANIFEST' before trying to remove
5854 it. Thanks to Sean Reifschneider.
5860 it. Thanks to Sean Reifschneider.
5855
5861
5856 2001-12-22 Fernando Perez <fperez@colorado.edu>
5862 2001-12-22 Fernando Perez <fperez@colorado.edu>
5857
5863
5858 * Released 0.2.2.
5864 * Released 0.2.2.
5859
5865
5860 * Finished (reasonably) writing the manual. Later will add the
5866 * Finished (reasonably) writing the manual. Later will add the
5861 python-standard navigation stylesheets, but for the time being
5867 python-standard navigation stylesheets, but for the time being
5862 it's fairly complete. Distribution will include html and pdf
5868 it's fairly complete. Distribution will include html and pdf
5863 versions.
5869 versions.
5864
5870
5865 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5871 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5866 (MayaVi author).
5872 (MayaVi author).
5867
5873
5868 2001-12-21 Fernando Perez <fperez@colorado.edu>
5874 2001-12-21 Fernando Perez <fperez@colorado.edu>
5869
5875
5870 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5876 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5871 good public release, I think (with the manual and the distutils
5877 good public release, I think (with the manual and the distutils
5872 installer). The manual can use some work, but that can go
5878 installer). The manual can use some work, but that can go
5873 slowly. Otherwise I think it's quite nice for end users. Next
5879 slowly. Otherwise I think it's quite nice for end users. Next
5874 summer, rewrite the guts of it...
5880 summer, rewrite the guts of it...
5875
5881
5876 * Changed format of ipythonrc files to use whitespace as the
5882 * Changed format of ipythonrc files to use whitespace as the
5877 separator instead of an explicit '='. Cleaner.
5883 separator instead of an explicit '='. Cleaner.
5878
5884
5879 2001-12-20 Fernando Perez <fperez@colorado.edu>
5885 2001-12-20 Fernando Perez <fperez@colorado.edu>
5880
5886
5881 * Started a manual in LyX. For now it's just a quick merge of the
5887 * Started a manual in LyX. For now it's just a quick merge of the
5882 various internal docstrings and READMEs. Later it may grow into a
5888 various internal docstrings and READMEs. Later it may grow into a
5883 nice, full-blown manual.
5889 nice, full-blown manual.
5884
5890
5885 * Set up a distutils based installer. Installation should now be
5891 * Set up a distutils based installer. Installation should now be
5886 trivially simple for end-users.
5892 trivially simple for end-users.
5887
5893
5888 2001-12-11 Fernando Perez <fperez@colorado.edu>
5894 2001-12-11 Fernando Perez <fperez@colorado.edu>
5889
5895
5890 * Released 0.2.0. First public release, announced it at
5896 * Released 0.2.0. First public release, announced it at
5891 comp.lang.python. From now on, just bugfixes...
5897 comp.lang.python. From now on, just bugfixes...
5892
5898
5893 * Went through all the files, set copyright/license notices and
5899 * Went through all the files, set copyright/license notices and
5894 cleaned up things. Ready for release.
5900 cleaned up things. Ready for release.
5895
5901
5896 2001-12-10 Fernando Perez <fperez@colorado.edu>
5902 2001-12-10 Fernando Perez <fperez@colorado.edu>
5897
5903
5898 * Changed the first-time installer not to use tarfiles. It's more
5904 * Changed the first-time installer not to use tarfiles. It's more
5899 robust now and less unix-dependent. Also makes it easier for
5905 robust now and less unix-dependent. Also makes it easier for
5900 people to later upgrade versions.
5906 people to later upgrade versions.
5901
5907
5902 * Changed @exit to @abort to reflect the fact that it's pretty
5908 * Changed @exit to @abort to reflect the fact that it's pretty
5903 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5909 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5904 becomes significant only when IPyhton is embedded: in that case,
5910 becomes significant only when IPyhton is embedded: in that case,
5905 C-D closes IPython only, but @abort kills the enclosing program
5911 C-D closes IPython only, but @abort kills the enclosing program
5906 too (unless it had called IPython inside a try catching
5912 too (unless it had called IPython inside a try catching
5907 SystemExit).
5913 SystemExit).
5908
5914
5909 * Created Shell module which exposes the actuall IPython Shell
5915 * Created Shell module which exposes the actuall IPython Shell
5910 classes, currently the normal and the embeddable one. This at
5916 classes, currently the normal and the embeddable one. This at
5911 least offers a stable interface we won't need to change when
5917 least offers a stable interface we won't need to change when
5912 (later) the internals are rewritten. That rewrite will be confined
5918 (later) the internals are rewritten. That rewrite will be confined
5913 to iplib and ipmaker, but the Shell interface should remain as is.
5919 to iplib and ipmaker, but the Shell interface should remain as is.
5914
5920
5915 * Added embed module which offers an embeddable IPShell object,
5921 * Added embed module which offers an embeddable IPShell object,
5916 useful to fire up IPython *inside* a running program. Great for
5922 useful to fire up IPython *inside* a running program. Great for
5917 debugging or dynamical data analysis.
5923 debugging or dynamical data analysis.
5918
5924
5919 2001-12-08 Fernando Perez <fperez@colorado.edu>
5925 2001-12-08 Fernando Perez <fperez@colorado.edu>
5920
5926
5921 * Fixed small bug preventing seeing info from methods of defined
5927 * Fixed small bug preventing seeing info from methods of defined
5922 objects (incorrect namespace in _ofind()).
5928 objects (incorrect namespace in _ofind()).
5923
5929
5924 * Documentation cleanup. Moved the main usage docstrings to a
5930 * Documentation cleanup. Moved the main usage docstrings to a
5925 separate file, usage.py (cleaner to maintain, and hopefully in the
5931 separate file, usage.py (cleaner to maintain, and hopefully in the
5926 future some perlpod-like way of producing interactive, man and
5932 future some perlpod-like way of producing interactive, man and
5927 html docs out of it will be found).
5933 html docs out of it will be found).
5928
5934
5929 * Added @profile to see your profile at any time.
5935 * Added @profile to see your profile at any time.
5930
5936
5931 * Added @p as an alias for 'print'. It's especially convenient if
5937 * Added @p as an alias for 'print'. It's especially convenient if
5932 using automagic ('p x' prints x).
5938 using automagic ('p x' prints x).
5933
5939
5934 * Small cleanups and fixes after a pychecker run.
5940 * Small cleanups and fixes after a pychecker run.
5935
5941
5936 * Changed the @cd command to handle @cd - and @cd -<n> for
5942 * Changed the @cd command to handle @cd - and @cd -<n> for
5937 visiting any directory in _dh.
5943 visiting any directory in _dh.
5938
5944
5939 * Introduced _dh, a history of visited directories. @dhist prints
5945 * Introduced _dh, a history of visited directories. @dhist prints
5940 it out with numbers.
5946 it out with numbers.
5941
5947
5942 2001-12-07 Fernando Perez <fperez@colorado.edu>
5948 2001-12-07 Fernando Perez <fperez@colorado.edu>
5943
5949
5944 * Released 0.1.22
5950 * Released 0.1.22
5945
5951
5946 * Made initialization a bit more robust against invalid color
5952 * Made initialization a bit more robust against invalid color
5947 options in user input (exit, not traceback-crash).
5953 options in user input (exit, not traceback-crash).
5948
5954
5949 * Changed the bug crash reporter to write the report only in the
5955 * Changed the bug crash reporter to write the report only in the
5950 user's .ipython directory. That way IPython won't litter people's
5956 user's .ipython directory. That way IPython won't litter people's
5951 hard disks with crash files all over the place. Also print on
5957 hard disks with crash files all over the place. Also print on
5952 screen the necessary mail command.
5958 screen the necessary mail command.
5953
5959
5954 * With the new ultraTB, implemented LightBG color scheme for light
5960 * With the new ultraTB, implemented LightBG color scheme for light
5955 background terminals. A lot of people like white backgrounds, so I
5961 background terminals. A lot of people like white backgrounds, so I
5956 guess we should at least give them something readable.
5962 guess we should at least give them something readable.
5957
5963
5958 2001-12-06 Fernando Perez <fperez@colorado.edu>
5964 2001-12-06 Fernando Perez <fperez@colorado.edu>
5959
5965
5960 * Modified the structure of ultraTB. Now there's a proper class
5966 * Modified the structure of ultraTB. Now there's a proper class
5961 for tables of color schemes which allow adding schemes easily and
5967 for tables of color schemes which allow adding schemes easily and
5962 switching the active scheme without creating a new instance every
5968 switching the active scheme without creating a new instance every
5963 time (which was ridiculous). The syntax for creating new schemes
5969 time (which was ridiculous). The syntax for creating new schemes
5964 is also cleaner. I think ultraTB is finally done, with a clean
5970 is also cleaner. I think ultraTB is finally done, with a clean
5965 class structure. Names are also much cleaner (now there's proper
5971 class structure. Names are also much cleaner (now there's proper
5966 color tables, no need for every variable to also have 'color' in
5972 color tables, no need for every variable to also have 'color' in
5967 its name).
5973 its name).
5968
5974
5969 * Broke down genutils into separate files. Now genutils only
5975 * Broke down genutils into separate files. Now genutils only
5970 contains utility functions, and classes have been moved to their
5976 contains utility functions, and classes have been moved to their
5971 own files (they had enough independent functionality to warrant
5977 own files (they had enough independent functionality to warrant
5972 it): ConfigLoader, OutputTrap, Struct.
5978 it): ConfigLoader, OutputTrap, Struct.
5973
5979
5974 2001-12-05 Fernando Perez <fperez@colorado.edu>
5980 2001-12-05 Fernando Perez <fperez@colorado.edu>
5975
5981
5976 * IPython turns 21! Released version 0.1.21, as a candidate for
5982 * IPython turns 21! Released version 0.1.21, as a candidate for
5977 public consumption. If all goes well, release in a few days.
5983 public consumption. If all goes well, release in a few days.
5978
5984
5979 * Fixed path bug (files in Extensions/ directory wouldn't be found
5985 * Fixed path bug (files in Extensions/ directory wouldn't be found
5980 unless IPython/ was explicitly in sys.path).
5986 unless IPython/ was explicitly in sys.path).
5981
5987
5982 * Extended the FlexCompleter class as MagicCompleter to allow
5988 * Extended the FlexCompleter class as MagicCompleter to allow
5983 completion of @-starting lines.
5989 completion of @-starting lines.
5984
5990
5985 * Created __release__.py file as a central repository for release
5991 * Created __release__.py file as a central repository for release
5986 info that other files can read from.
5992 info that other files can read from.
5987
5993
5988 * Fixed small bug in logging: when logging was turned on in
5994 * Fixed small bug in logging: when logging was turned on in
5989 mid-session, old lines with special meanings (!@?) were being
5995 mid-session, old lines with special meanings (!@?) were being
5990 logged without the prepended comment, which is necessary since
5996 logged without the prepended comment, which is necessary since
5991 they are not truly valid python syntax. This should make session
5997 they are not truly valid python syntax. This should make session
5992 restores produce less errors.
5998 restores produce less errors.
5993
5999
5994 * The namespace cleanup forced me to make a FlexCompleter class
6000 * The namespace cleanup forced me to make a FlexCompleter class
5995 which is nothing but a ripoff of rlcompleter, but with selectable
6001 which is nothing but a ripoff of rlcompleter, but with selectable
5996 namespace (rlcompleter only works in __main__.__dict__). I'll try
6002 namespace (rlcompleter only works in __main__.__dict__). I'll try
5997 to submit a note to the authors to see if this change can be
6003 to submit a note to the authors to see if this change can be
5998 incorporated in future rlcompleter releases (Dec.6: done)
6004 incorporated in future rlcompleter releases (Dec.6: done)
5999
6005
6000 * More fixes to namespace handling. It was a mess! Now all
6006 * More fixes to namespace handling. It was a mess! Now all
6001 explicit references to __main__.__dict__ are gone (except when
6007 explicit references to __main__.__dict__ are gone (except when
6002 really needed) and everything is handled through the namespace
6008 really needed) and everything is handled through the namespace
6003 dicts in the IPython instance. We seem to be getting somewhere
6009 dicts in the IPython instance. We seem to be getting somewhere
6004 with this, finally...
6010 with this, finally...
6005
6011
6006 * Small documentation updates.
6012 * Small documentation updates.
6007
6013
6008 * Created the Extensions directory under IPython (with an
6014 * Created the Extensions directory under IPython (with an
6009 __init__.py). Put the PhysicalQ stuff there. This directory should
6015 __init__.py). Put the PhysicalQ stuff there. This directory should
6010 be used for all special-purpose extensions.
6016 be used for all special-purpose extensions.
6011
6017
6012 * File renaming:
6018 * File renaming:
6013 ipythonlib --> ipmaker
6019 ipythonlib --> ipmaker
6014 ipplib --> iplib
6020 ipplib --> iplib
6015 This makes a bit more sense in terms of what these files actually do.
6021 This makes a bit more sense in terms of what these files actually do.
6016
6022
6017 * Moved all the classes and functions in ipythonlib to ipplib, so
6023 * Moved all the classes and functions in ipythonlib to ipplib, so
6018 now ipythonlib only has make_IPython(). This will ease up its
6024 now ipythonlib only has make_IPython(). This will ease up its
6019 splitting in smaller functional chunks later.
6025 splitting in smaller functional chunks later.
6020
6026
6021 * Cleaned up (done, I think) output of @whos. Better column
6027 * Cleaned up (done, I think) output of @whos. Better column
6022 formatting, and now shows str(var) for as much as it can, which is
6028 formatting, and now shows str(var) for as much as it can, which is
6023 typically what one gets with a 'print var'.
6029 typically what one gets with a 'print var'.
6024
6030
6025 2001-12-04 Fernando Perez <fperez@colorado.edu>
6031 2001-12-04 Fernando Perez <fperez@colorado.edu>
6026
6032
6027 * Fixed namespace problems. Now builtin/IPyhton/user names get
6033 * Fixed namespace problems. Now builtin/IPyhton/user names get
6028 properly reported in their namespace. Internal namespace handling
6034 properly reported in their namespace. Internal namespace handling
6029 is finally getting decent (not perfect yet, but much better than
6035 is finally getting decent (not perfect yet, but much better than
6030 the ad-hoc mess we had).
6036 the ad-hoc mess we had).
6031
6037
6032 * Removed -exit option. If people just want to run a python
6038 * Removed -exit option. If people just want to run a python
6033 script, that's what the normal interpreter is for. Less
6039 script, that's what the normal interpreter is for. Less
6034 unnecessary options, less chances for bugs.
6040 unnecessary options, less chances for bugs.
6035
6041
6036 * Added a crash handler which generates a complete post-mortem if
6042 * Added a crash handler which generates a complete post-mortem if
6037 IPython crashes. This will help a lot in tracking bugs down the
6043 IPython crashes. This will help a lot in tracking bugs down the
6038 road.
6044 road.
6039
6045
6040 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6046 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6041 which were boud to functions being reassigned would bypass the
6047 which were boud to functions being reassigned would bypass the
6042 logger, breaking the sync of _il with the prompt counter. This
6048 logger, breaking the sync of _il with the prompt counter. This
6043 would then crash IPython later when a new line was logged.
6049 would then crash IPython later when a new line was logged.
6044
6050
6045 2001-12-02 Fernando Perez <fperez@colorado.edu>
6051 2001-12-02 Fernando Perez <fperez@colorado.edu>
6046
6052
6047 * Made IPython a package. This means people don't have to clutter
6053 * Made IPython a package. This means people don't have to clutter
6048 their sys.path with yet another directory. Changed the INSTALL
6054 their sys.path with yet another directory. Changed the INSTALL
6049 file accordingly.
6055 file accordingly.
6050
6056
6051 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6057 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6052 sorts its output (so @who shows it sorted) and @whos formats the
6058 sorts its output (so @who shows it sorted) and @whos formats the
6053 table according to the width of the first column. Nicer, easier to
6059 table according to the width of the first column. Nicer, easier to
6054 read. Todo: write a generic table_format() which takes a list of
6060 read. Todo: write a generic table_format() which takes a list of
6055 lists and prints it nicely formatted, with optional row/column
6061 lists and prints it nicely formatted, with optional row/column
6056 separators and proper padding and justification.
6062 separators and proper padding and justification.
6057
6063
6058 * Released 0.1.20
6064 * Released 0.1.20
6059
6065
6060 * Fixed bug in @log which would reverse the inputcache list (a
6066 * Fixed bug in @log which would reverse the inputcache list (a
6061 copy operation was missing).
6067 copy operation was missing).
6062
6068
6063 * Code cleanup. @config was changed to use page(). Better, since
6069 * Code cleanup. @config was changed to use page(). Better, since
6064 its output is always quite long.
6070 its output is always quite long.
6065
6071
6066 * Itpl is back as a dependency. I was having too many problems
6072 * Itpl is back as a dependency. I was having too many problems
6067 getting the parametric aliases to work reliably, and it's just
6073 getting the parametric aliases to work reliably, and it's just
6068 easier to code weird string operations with it than playing %()s
6074 easier to code weird string operations with it than playing %()s
6069 games. It's only ~6k, so I don't think it's too big a deal.
6075 games. It's only ~6k, so I don't think it's too big a deal.
6070
6076
6071 * Found (and fixed) a very nasty bug with history. !lines weren't
6077 * Found (and fixed) a very nasty bug with history. !lines weren't
6072 getting cached, and the out of sync caches would crash
6078 getting cached, and the out of sync caches would crash
6073 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6079 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6074 division of labor a bit better. Bug fixed, cleaner structure.
6080 division of labor a bit better. Bug fixed, cleaner structure.
6075
6081
6076 2001-12-01 Fernando Perez <fperez@colorado.edu>
6082 2001-12-01 Fernando Perez <fperez@colorado.edu>
6077
6083
6078 * Released 0.1.19
6084 * Released 0.1.19
6079
6085
6080 * Added option -n to @hist to prevent line number printing. Much
6086 * Added option -n to @hist to prevent line number printing. Much
6081 easier to copy/paste code this way.
6087 easier to copy/paste code this way.
6082
6088
6083 * Created global _il to hold the input list. Allows easy
6089 * Created global _il to hold the input list. Allows easy
6084 re-execution of blocks of code by slicing it (inspired by Janko's
6090 re-execution of blocks of code by slicing it (inspired by Janko's
6085 comment on 'macros').
6091 comment on 'macros').
6086
6092
6087 * Small fixes and doc updates.
6093 * Small fixes and doc updates.
6088
6094
6089 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6095 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6090 much too fragile with automagic. Handles properly multi-line
6096 much too fragile with automagic. Handles properly multi-line
6091 statements and takes parameters.
6097 statements and takes parameters.
6092
6098
6093 2001-11-30 Fernando Perez <fperez@colorado.edu>
6099 2001-11-30 Fernando Perez <fperez@colorado.edu>
6094
6100
6095 * Version 0.1.18 released.
6101 * Version 0.1.18 released.
6096
6102
6097 * Fixed nasty namespace bug in initial module imports.
6103 * Fixed nasty namespace bug in initial module imports.
6098
6104
6099 * Added copyright/license notes to all code files (except
6105 * Added copyright/license notes to all code files (except
6100 DPyGetOpt). For the time being, LGPL. That could change.
6106 DPyGetOpt). For the time being, LGPL. That could change.
6101
6107
6102 * Rewrote a much nicer README, updated INSTALL, cleaned up
6108 * Rewrote a much nicer README, updated INSTALL, cleaned up
6103 ipythonrc-* samples.
6109 ipythonrc-* samples.
6104
6110
6105 * Overall code/documentation cleanup. Basically ready for
6111 * Overall code/documentation cleanup. Basically ready for
6106 release. Only remaining thing: licence decision (LGPL?).
6112 release. Only remaining thing: licence decision (LGPL?).
6107
6113
6108 * Converted load_config to a class, ConfigLoader. Now recursion
6114 * Converted load_config to a class, ConfigLoader. Now recursion
6109 control is better organized. Doesn't include the same file twice.
6115 control is better organized. Doesn't include the same file twice.
6110
6116
6111 2001-11-29 Fernando Perez <fperez@colorado.edu>
6117 2001-11-29 Fernando Perez <fperez@colorado.edu>
6112
6118
6113 * Got input history working. Changed output history variables from
6119 * Got input history working. Changed output history variables from
6114 _p to _o so that _i is for input and _o for output. Just cleaner
6120 _p to _o so that _i is for input and _o for output. Just cleaner
6115 convention.
6121 convention.
6116
6122
6117 * Implemented parametric aliases. This pretty much allows the
6123 * Implemented parametric aliases. This pretty much allows the
6118 alias system to offer full-blown shell convenience, I think.
6124 alias system to offer full-blown shell convenience, I think.
6119
6125
6120 * Version 0.1.17 released, 0.1.18 opened.
6126 * Version 0.1.17 released, 0.1.18 opened.
6121
6127
6122 * dot_ipython/ipythonrc (alias): added documentation.
6128 * dot_ipython/ipythonrc (alias): added documentation.
6123 (xcolor): Fixed small bug (xcolors -> xcolor)
6129 (xcolor): Fixed small bug (xcolors -> xcolor)
6124
6130
6125 * Changed the alias system. Now alias is a magic command to define
6131 * Changed the alias system. Now alias is a magic command to define
6126 aliases just like the shell. Rationale: the builtin magics should
6132 aliases just like the shell. Rationale: the builtin magics should
6127 be there for things deeply connected to IPython's
6133 be there for things deeply connected to IPython's
6128 architecture. And this is a much lighter system for what I think
6134 architecture. And this is a much lighter system for what I think
6129 is the really important feature: allowing users to define quickly
6135 is the really important feature: allowing users to define quickly
6130 magics that will do shell things for them, so they can customize
6136 magics that will do shell things for them, so they can customize
6131 IPython easily to match their work habits. If someone is really
6137 IPython easily to match their work habits. If someone is really
6132 desperate to have another name for a builtin alias, they can
6138 desperate to have another name for a builtin alias, they can
6133 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6139 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6134 works.
6140 works.
6135
6141
6136 2001-11-28 Fernando Perez <fperez@colorado.edu>
6142 2001-11-28 Fernando Perez <fperez@colorado.edu>
6137
6143
6138 * Changed @file so that it opens the source file at the proper
6144 * Changed @file so that it opens the source file at the proper
6139 line. Since it uses less, if your EDITOR environment is
6145 line. Since it uses less, if your EDITOR environment is
6140 configured, typing v will immediately open your editor of choice
6146 configured, typing v will immediately open your editor of choice
6141 right at the line where the object is defined. Not as quick as
6147 right at the line where the object is defined. Not as quick as
6142 having a direct @edit command, but for all intents and purposes it
6148 having a direct @edit command, but for all intents and purposes it
6143 works. And I don't have to worry about writing @edit to deal with
6149 works. And I don't have to worry about writing @edit to deal with
6144 all the editors, less does that.
6150 all the editors, less does that.
6145
6151
6146 * Version 0.1.16 released, 0.1.17 opened.
6152 * Version 0.1.16 released, 0.1.17 opened.
6147
6153
6148 * Fixed some nasty bugs in the page/page_dumb combo that could
6154 * Fixed some nasty bugs in the page/page_dumb combo that could
6149 crash IPython.
6155 crash IPython.
6150
6156
6151 2001-11-27 Fernando Perez <fperez@colorado.edu>
6157 2001-11-27 Fernando Perez <fperez@colorado.edu>
6152
6158
6153 * Version 0.1.15 released, 0.1.16 opened.
6159 * Version 0.1.15 released, 0.1.16 opened.
6154
6160
6155 * Finally got ? and ?? to work for undefined things: now it's
6161 * Finally got ? and ?? to work for undefined things: now it's
6156 possible to type {}.get? and get information about the get method
6162 possible to type {}.get? and get information about the get method
6157 of dicts, or os.path? even if only os is defined (so technically
6163 of dicts, or os.path? even if only os is defined (so technically
6158 os.path isn't). Works at any level. For example, after import os,
6164 os.path isn't). Works at any level. For example, after import os,
6159 os?, os.path?, os.path.abspath? all work. This is great, took some
6165 os?, os.path?, os.path.abspath? all work. This is great, took some
6160 work in _ofind.
6166 work in _ofind.
6161
6167
6162 * Fixed more bugs with logging. The sanest way to do it was to add
6168 * Fixed more bugs with logging. The sanest way to do it was to add
6163 to @log a 'mode' parameter. Killed two in one shot (this mode
6169 to @log a 'mode' parameter. Killed two in one shot (this mode
6164 option was a request of Janko's). I think it's finally clean
6170 option was a request of Janko's). I think it's finally clean
6165 (famous last words).
6171 (famous last words).
6166
6172
6167 * Added a page_dumb() pager which does a decent job of paging on
6173 * Added a page_dumb() pager which does a decent job of paging on
6168 screen, if better things (like less) aren't available. One less
6174 screen, if better things (like less) aren't available. One less
6169 unix dependency (someday maybe somebody will port this to
6175 unix dependency (someday maybe somebody will port this to
6170 windows).
6176 windows).
6171
6177
6172 * Fixed problem in magic_log: would lock of logging out if log
6178 * Fixed problem in magic_log: would lock of logging out if log
6173 creation failed (because it would still think it had succeeded).
6179 creation failed (because it would still think it had succeeded).
6174
6180
6175 * Improved the page() function using curses to auto-detect screen
6181 * Improved the page() function using curses to auto-detect screen
6176 size. Now it can make a much better decision on whether to print
6182 size. Now it can make a much better decision on whether to print
6177 or page a string. Option screen_length was modified: a value 0
6183 or page a string. Option screen_length was modified: a value 0
6178 means auto-detect, and that's the default now.
6184 means auto-detect, and that's the default now.
6179
6185
6180 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6186 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6181 go out. I'll test it for a few days, then talk to Janko about
6187 go out. I'll test it for a few days, then talk to Janko about
6182 licences and announce it.
6188 licences and announce it.
6183
6189
6184 * Fixed the length of the auto-generated ---> prompt which appears
6190 * Fixed the length of the auto-generated ---> prompt which appears
6185 for auto-parens and auto-quotes. Getting this right isn't trivial,
6191 for auto-parens and auto-quotes. Getting this right isn't trivial,
6186 with all the color escapes, different prompt types and optional
6192 with all the color escapes, different prompt types and optional
6187 separators. But it seems to be working in all the combinations.
6193 separators. But it seems to be working in all the combinations.
6188
6194
6189 2001-11-26 Fernando Perez <fperez@colorado.edu>
6195 2001-11-26 Fernando Perez <fperez@colorado.edu>
6190
6196
6191 * Wrote a regexp filter to get option types from the option names
6197 * Wrote a regexp filter to get option types from the option names
6192 string. This eliminates the need to manually keep two duplicate
6198 string. This eliminates the need to manually keep two duplicate
6193 lists.
6199 lists.
6194
6200
6195 * Removed the unneeded check_option_names. Now options are handled
6201 * Removed the unneeded check_option_names. Now options are handled
6196 in a much saner manner and it's easy to visually check that things
6202 in a much saner manner and it's easy to visually check that things
6197 are ok.
6203 are ok.
6198
6204
6199 * Updated version numbers on all files I modified to carry a
6205 * Updated version numbers on all files I modified to carry a
6200 notice so Janko and Nathan have clear version markers.
6206 notice so Janko and Nathan have clear version markers.
6201
6207
6202 * Updated docstring for ultraTB with my changes. I should send
6208 * Updated docstring for ultraTB with my changes. I should send
6203 this to Nathan.
6209 this to Nathan.
6204
6210
6205 * Lots of small fixes. Ran everything through pychecker again.
6211 * Lots of small fixes. Ran everything through pychecker again.
6206
6212
6207 * Made loading of deep_reload an cmd line option. If it's not too
6213 * Made loading of deep_reload an cmd line option. If it's not too
6208 kosher, now people can just disable it. With -nodeep_reload it's
6214 kosher, now people can just disable it. With -nodeep_reload it's
6209 still available as dreload(), it just won't overwrite reload().
6215 still available as dreload(), it just won't overwrite reload().
6210
6216
6211 * Moved many options to the no| form (-opt and -noopt
6217 * Moved many options to the no| form (-opt and -noopt
6212 accepted). Cleaner.
6218 accepted). Cleaner.
6213
6219
6214 * Changed magic_log so that if called with no parameters, it uses
6220 * Changed magic_log so that if called with no parameters, it uses
6215 'rotate' mode. That way auto-generated logs aren't automatically
6221 'rotate' mode. That way auto-generated logs aren't automatically
6216 over-written. For normal logs, now a backup is made if it exists
6222 over-written. For normal logs, now a backup is made if it exists
6217 (only 1 level of backups). A new 'backup' mode was added to the
6223 (only 1 level of backups). A new 'backup' mode was added to the
6218 Logger class to support this. This was a request by Janko.
6224 Logger class to support this. This was a request by Janko.
6219
6225
6220 * Added @logoff/@logon to stop/restart an active log.
6226 * Added @logoff/@logon to stop/restart an active log.
6221
6227
6222 * Fixed a lot of bugs in log saving/replay. It was pretty
6228 * Fixed a lot of bugs in log saving/replay. It was pretty
6223 broken. Now special lines (!@,/) appear properly in the command
6229 broken. Now special lines (!@,/) appear properly in the command
6224 history after a log replay.
6230 history after a log replay.
6225
6231
6226 * Tried and failed to implement full session saving via pickle. My
6232 * Tried and failed to implement full session saving via pickle. My
6227 idea was to pickle __main__.__dict__, but modules can't be
6233 idea was to pickle __main__.__dict__, but modules can't be
6228 pickled. This would be a better alternative to replaying logs, but
6234 pickled. This would be a better alternative to replaying logs, but
6229 seems quite tricky to get to work. Changed -session to be called
6235 seems quite tricky to get to work. Changed -session to be called
6230 -logplay, which more accurately reflects what it does. And if we
6236 -logplay, which more accurately reflects what it does. And if we
6231 ever get real session saving working, -session is now available.
6237 ever get real session saving working, -session is now available.
6232
6238
6233 * Implemented color schemes for prompts also. As for tracebacks,
6239 * Implemented color schemes for prompts also. As for tracebacks,
6234 currently only NoColor and Linux are supported. But now the
6240 currently only NoColor and Linux are supported. But now the
6235 infrastructure is in place, based on a generic ColorScheme
6241 infrastructure is in place, based on a generic ColorScheme
6236 class. So writing and activating new schemes both for the prompts
6242 class. So writing and activating new schemes both for the prompts
6237 and the tracebacks should be straightforward.
6243 and the tracebacks should be straightforward.
6238
6244
6239 * Version 0.1.13 released, 0.1.14 opened.
6245 * Version 0.1.13 released, 0.1.14 opened.
6240
6246
6241 * Changed handling of options for output cache. Now counter is
6247 * Changed handling of options for output cache. Now counter is
6242 hardwired starting at 1 and one specifies the maximum number of
6248 hardwired starting at 1 and one specifies the maximum number of
6243 entries *in the outcache* (not the max prompt counter). This is
6249 entries *in the outcache* (not the max prompt counter). This is
6244 much better, since many statements won't increase the cache
6250 much better, since many statements won't increase the cache
6245 count. It also eliminated some confusing options, now there's only
6251 count. It also eliminated some confusing options, now there's only
6246 one: cache_size.
6252 one: cache_size.
6247
6253
6248 * Added 'alias' magic function and magic_alias option in the
6254 * Added 'alias' magic function and magic_alias option in the
6249 ipythonrc file. Now the user can easily define whatever names he
6255 ipythonrc file. Now the user can easily define whatever names he
6250 wants for the magic functions without having to play weird
6256 wants for the magic functions without having to play weird
6251 namespace games. This gives IPython a real shell-like feel.
6257 namespace games. This gives IPython a real shell-like feel.
6252
6258
6253 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6259 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6254 @ or not).
6260 @ or not).
6255
6261
6256 This was one of the last remaining 'visible' bugs (that I know
6262 This was one of the last remaining 'visible' bugs (that I know
6257 of). I think if I can clean up the session loading so it works
6263 of). I think if I can clean up the session loading so it works
6258 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6264 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6259 about licensing).
6265 about licensing).
6260
6266
6261 2001-11-25 Fernando Perez <fperez@colorado.edu>
6267 2001-11-25 Fernando Perez <fperez@colorado.edu>
6262
6268
6263 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6269 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6264 there's a cleaner distinction between what ? and ?? show.
6270 there's a cleaner distinction between what ? and ?? show.
6265
6271
6266 * Added screen_length option. Now the user can define his own
6272 * Added screen_length option. Now the user can define his own
6267 screen size for page() operations.
6273 screen size for page() operations.
6268
6274
6269 * Implemented magic shell-like functions with automatic code
6275 * Implemented magic shell-like functions with automatic code
6270 generation. Now adding another function is just a matter of adding
6276 generation. Now adding another function is just a matter of adding
6271 an entry to a dict, and the function is dynamically generated at
6277 an entry to a dict, and the function is dynamically generated at
6272 run-time. Python has some really cool features!
6278 run-time. Python has some really cool features!
6273
6279
6274 * Renamed many options to cleanup conventions a little. Now all
6280 * Renamed many options to cleanup conventions a little. Now all
6275 are lowercase, and only underscores where needed. Also in the code
6281 are lowercase, and only underscores where needed. Also in the code
6276 option name tables are clearer.
6282 option name tables are clearer.
6277
6283
6278 * Changed prompts a little. Now input is 'In [n]:' instead of
6284 * Changed prompts a little. Now input is 'In [n]:' instead of
6279 'In[n]:='. This allows it the numbers to be aligned with the
6285 'In[n]:='. This allows it the numbers to be aligned with the
6280 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6286 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6281 Python (it was a Mathematica thing). The '...' continuation prompt
6287 Python (it was a Mathematica thing). The '...' continuation prompt
6282 was also changed a little to align better.
6288 was also changed a little to align better.
6283
6289
6284 * Fixed bug when flushing output cache. Not all _p<n> variables
6290 * Fixed bug when flushing output cache. Not all _p<n> variables
6285 exist, so their deletion needs to be wrapped in a try:
6291 exist, so their deletion needs to be wrapped in a try:
6286
6292
6287 * Figured out how to properly use inspect.formatargspec() (it
6293 * Figured out how to properly use inspect.formatargspec() (it
6288 requires the args preceded by *). So I removed all the code from
6294 requires the args preceded by *). So I removed all the code from
6289 _get_pdef in Magic, which was just replicating that.
6295 _get_pdef in Magic, which was just replicating that.
6290
6296
6291 * Added test to prefilter to allow redefining magic function names
6297 * Added test to prefilter to allow redefining magic function names
6292 as variables. This is ok, since the @ form is always available,
6298 as variables. This is ok, since the @ form is always available,
6293 but whe should allow the user to define a variable called 'ls' if
6299 but whe should allow the user to define a variable called 'ls' if
6294 he needs it.
6300 he needs it.
6295
6301
6296 * Moved the ToDo information from README into a separate ToDo.
6302 * Moved the ToDo information from README into a separate ToDo.
6297
6303
6298 * General code cleanup and small bugfixes. I think it's close to a
6304 * General code cleanup and small bugfixes. I think it's close to a
6299 state where it can be released, obviously with a big 'beta'
6305 state where it can be released, obviously with a big 'beta'
6300 warning on it.
6306 warning on it.
6301
6307
6302 * Got the magic function split to work. Now all magics are defined
6308 * Got the magic function split to work. Now all magics are defined
6303 in a separate class. It just organizes things a bit, and now
6309 in a separate class. It just organizes things a bit, and now
6304 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6310 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6305 was too long).
6311 was too long).
6306
6312
6307 * Changed @clear to @reset to avoid potential confusions with
6313 * Changed @clear to @reset to avoid potential confusions with
6308 the shell command clear. Also renamed @cl to @clear, which does
6314 the shell command clear. Also renamed @cl to @clear, which does
6309 exactly what people expect it to from their shell experience.
6315 exactly what people expect it to from their shell experience.
6310
6316
6311 Added a check to the @reset command (since it's so
6317 Added a check to the @reset command (since it's so
6312 destructive, it's probably a good idea to ask for confirmation).
6318 destructive, it's probably a good idea to ask for confirmation).
6313 But now reset only works for full namespace resetting. Since the
6319 But now reset only works for full namespace resetting. Since the
6314 del keyword is already there for deleting a few specific
6320 del keyword is already there for deleting a few specific
6315 variables, I don't see the point of having a redundant magic
6321 variables, I don't see the point of having a redundant magic
6316 function for the same task.
6322 function for the same task.
6317
6323
6318 2001-11-24 Fernando Perez <fperez@colorado.edu>
6324 2001-11-24 Fernando Perez <fperez@colorado.edu>
6319
6325
6320 * Updated the builtin docs (esp. the ? ones).
6326 * Updated the builtin docs (esp. the ? ones).
6321
6327
6322 * Ran all the code through pychecker. Not terribly impressed with
6328 * Ran all the code through pychecker. Not terribly impressed with
6323 it: lots of spurious warnings and didn't really find anything of
6329 it: lots of spurious warnings and didn't really find anything of
6324 substance (just a few modules being imported and not used).
6330 substance (just a few modules being imported and not used).
6325
6331
6326 * Implemented the new ultraTB functionality into IPython. New
6332 * Implemented the new ultraTB functionality into IPython. New
6327 option: xcolors. This chooses color scheme. xmode now only selects
6333 option: xcolors. This chooses color scheme. xmode now only selects
6328 between Plain and Verbose. Better orthogonality.
6334 between Plain and Verbose. Better orthogonality.
6329
6335
6330 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6336 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6331 mode and color scheme for the exception handlers. Now it's
6337 mode and color scheme for the exception handlers. Now it's
6332 possible to have the verbose traceback with no coloring.
6338 possible to have the verbose traceback with no coloring.
6333
6339
6334 2001-11-23 Fernando Perez <fperez@colorado.edu>
6340 2001-11-23 Fernando Perez <fperez@colorado.edu>
6335
6341
6336 * Version 0.1.12 released, 0.1.13 opened.
6342 * Version 0.1.12 released, 0.1.13 opened.
6337
6343
6338 * Removed option to set auto-quote and auto-paren escapes by
6344 * Removed option to set auto-quote and auto-paren escapes by
6339 user. The chances of breaking valid syntax are just too high. If
6345 user. The chances of breaking valid syntax are just too high. If
6340 someone *really* wants, they can always dig into the code.
6346 someone *really* wants, they can always dig into the code.
6341
6347
6342 * Made prompt separators configurable.
6348 * Made prompt separators configurable.
6343
6349
6344 2001-11-22 Fernando Perez <fperez@colorado.edu>
6350 2001-11-22 Fernando Perez <fperez@colorado.edu>
6345
6351
6346 * Small bugfixes in many places.
6352 * Small bugfixes in many places.
6347
6353
6348 * Removed the MyCompleter class from ipplib. It seemed redundant
6354 * Removed the MyCompleter class from ipplib. It seemed redundant
6349 with the C-p,C-n history search functionality. Less code to
6355 with the C-p,C-n history search functionality. Less code to
6350 maintain.
6356 maintain.
6351
6357
6352 * Moved all the original ipython.py code into ipythonlib.py. Right
6358 * Moved all the original ipython.py code into ipythonlib.py. Right
6353 now it's just one big dump into a function called make_IPython, so
6359 now it's just one big dump into a function called make_IPython, so
6354 no real modularity has been gained. But at least it makes the
6360 no real modularity has been gained. But at least it makes the
6355 wrapper script tiny, and since ipythonlib is a module, it gets
6361 wrapper script tiny, and since ipythonlib is a module, it gets
6356 compiled and startup is much faster.
6362 compiled and startup is much faster.
6357
6363
6358 This is a reasobably 'deep' change, so we should test it for a
6364 This is a reasobably 'deep' change, so we should test it for a
6359 while without messing too much more with the code.
6365 while without messing too much more with the code.
6360
6366
6361 2001-11-21 Fernando Perez <fperez@colorado.edu>
6367 2001-11-21 Fernando Perez <fperez@colorado.edu>
6362
6368
6363 * Version 0.1.11 released, 0.1.12 opened for further work.
6369 * Version 0.1.11 released, 0.1.12 opened for further work.
6364
6370
6365 * Removed dependency on Itpl. It was only needed in one place. It
6371 * Removed dependency on Itpl. It was only needed in one place. It
6366 would be nice if this became part of python, though. It makes life
6372 would be nice if this became part of python, though. It makes life
6367 *a lot* easier in some cases.
6373 *a lot* easier in some cases.
6368
6374
6369 * Simplified the prefilter code a bit. Now all handlers are
6375 * Simplified the prefilter code a bit. Now all handlers are
6370 expected to explicitly return a value (at least a blank string).
6376 expected to explicitly return a value (at least a blank string).
6371
6377
6372 * Heavy edits in ipplib. Removed the help system altogether. Now
6378 * Heavy edits in ipplib. Removed the help system altogether. Now
6373 obj?/?? is used for inspecting objects, a magic @doc prints
6379 obj?/?? is used for inspecting objects, a magic @doc prints
6374 docstrings, and full-blown Python help is accessed via the 'help'
6380 docstrings, and full-blown Python help is accessed via the 'help'
6375 keyword. This cleans up a lot of code (less to maintain) and does
6381 keyword. This cleans up a lot of code (less to maintain) and does
6376 the job. Since 'help' is now a standard Python component, might as
6382 the job. Since 'help' is now a standard Python component, might as
6377 well use it and remove duplicate functionality.
6383 well use it and remove duplicate functionality.
6378
6384
6379 Also removed the option to use ipplib as a standalone program. By
6385 Also removed the option to use ipplib as a standalone program. By
6380 now it's too dependent on other parts of IPython to function alone.
6386 now it's too dependent on other parts of IPython to function alone.
6381
6387
6382 * Fixed bug in genutils.pager. It would crash if the pager was
6388 * Fixed bug in genutils.pager. It would crash if the pager was
6383 exited immediately after opening (broken pipe).
6389 exited immediately after opening (broken pipe).
6384
6390
6385 * Trimmed down the VerboseTB reporting a little. The header is
6391 * Trimmed down the VerboseTB reporting a little. The header is
6386 much shorter now and the repeated exception arguments at the end
6392 much shorter now and the repeated exception arguments at the end
6387 have been removed. For interactive use the old header seemed a bit
6393 have been removed. For interactive use the old header seemed a bit
6388 excessive.
6394 excessive.
6389
6395
6390 * Fixed small bug in output of @whos for variables with multi-word
6396 * Fixed small bug in output of @whos for variables with multi-word
6391 types (only first word was displayed).
6397 types (only first word was displayed).
6392
6398
6393 2001-11-17 Fernando Perez <fperez@colorado.edu>
6399 2001-11-17 Fernando Perez <fperez@colorado.edu>
6394
6400
6395 * Version 0.1.10 released, 0.1.11 opened for further work.
6401 * Version 0.1.10 released, 0.1.11 opened for further work.
6396
6402
6397 * Modified dirs and friends. dirs now *returns* the stack (not
6403 * Modified dirs and friends. dirs now *returns* the stack (not
6398 prints), so one can manipulate it as a variable. Convenient to
6404 prints), so one can manipulate it as a variable. Convenient to
6399 travel along many directories.
6405 travel along many directories.
6400
6406
6401 * Fixed bug in magic_pdef: would only work with functions with
6407 * Fixed bug in magic_pdef: would only work with functions with
6402 arguments with default values.
6408 arguments with default values.
6403
6409
6404 2001-11-14 Fernando Perez <fperez@colorado.edu>
6410 2001-11-14 Fernando Perez <fperez@colorado.edu>
6405
6411
6406 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6412 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6407 example with IPython. Various other minor fixes and cleanups.
6413 example with IPython. Various other minor fixes and cleanups.
6408
6414
6409 * Version 0.1.9 released, 0.1.10 opened for further work.
6415 * Version 0.1.9 released, 0.1.10 opened for further work.
6410
6416
6411 * Added sys.path to the list of directories searched in the
6417 * Added sys.path to the list of directories searched in the
6412 execfile= option. It used to be the current directory and the
6418 execfile= option. It used to be the current directory and the
6413 user's IPYTHONDIR only.
6419 user's IPYTHONDIR only.
6414
6420
6415 2001-11-13 Fernando Perez <fperez@colorado.edu>
6421 2001-11-13 Fernando Perez <fperez@colorado.edu>
6416
6422
6417 * Reinstated the raw_input/prefilter separation that Janko had
6423 * Reinstated the raw_input/prefilter separation that Janko had
6418 initially. This gives a more convenient setup for extending the
6424 initially. This gives a more convenient setup for extending the
6419 pre-processor from the outside: raw_input always gets a string,
6425 pre-processor from the outside: raw_input always gets a string,
6420 and prefilter has to process it. We can then redefine prefilter
6426 and prefilter has to process it. We can then redefine prefilter
6421 from the outside and implement extensions for special
6427 from the outside and implement extensions for special
6422 purposes.
6428 purposes.
6423
6429
6424 Today I got one for inputting PhysicalQuantity objects
6430 Today I got one for inputting PhysicalQuantity objects
6425 (from Scientific) without needing any function calls at
6431 (from Scientific) without needing any function calls at
6426 all. Extremely convenient, and it's all done as a user-level
6432 all. Extremely convenient, and it's all done as a user-level
6427 extension (no IPython code was touched). Now instead of:
6433 extension (no IPython code was touched). Now instead of:
6428 a = PhysicalQuantity(4.2,'m/s**2')
6434 a = PhysicalQuantity(4.2,'m/s**2')
6429 one can simply say
6435 one can simply say
6430 a = 4.2 m/s**2
6436 a = 4.2 m/s**2
6431 or even
6437 or even
6432 a = 4.2 m/s^2
6438 a = 4.2 m/s^2
6433
6439
6434 I use this, but it's also a proof of concept: IPython really is
6440 I use this, but it's also a proof of concept: IPython really is
6435 fully user-extensible, even at the level of the parsing of the
6441 fully user-extensible, even at the level of the parsing of the
6436 command line. It's not trivial, but it's perfectly doable.
6442 command line. It's not trivial, but it's perfectly doable.
6437
6443
6438 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6444 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6439 the problem of modules being loaded in the inverse order in which
6445 the problem of modules being loaded in the inverse order in which
6440 they were defined in
6446 they were defined in
6441
6447
6442 * Version 0.1.8 released, 0.1.9 opened for further work.
6448 * Version 0.1.8 released, 0.1.9 opened for further work.
6443
6449
6444 * Added magics pdef, source and file. They respectively show the
6450 * Added magics pdef, source and file. They respectively show the
6445 definition line ('prototype' in C), source code and full python
6451 definition line ('prototype' in C), source code and full python
6446 file for any callable object. The object inspector oinfo uses
6452 file for any callable object. The object inspector oinfo uses
6447 these to show the same information.
6453 these to show the same information.
6448
6454
6449 * Version 0.1.7 released, 0.1.8 opened for further work.
6455 * Version 0.1.7 released, 0.1.8 opened for further work.
6450
6456
6451 * Separated all the magic functions into a class called Magic. The
6457 * Separated all the magic functions into a class called Magic. The
6452 InteractiveShell class was becoming too big for Xemacs to handle
6458 InteractiveShell class was becoming too big for Xemacs to handle
6453 (de-indenting a line would lock it up for 10 seconds while it
6459 (de-indenting a line would lock it up for 10 seconds while it
6454 backtracked on the whole class!)
6460 backtracked on the whole class!)
6455
6461
6456 FIXME: didn't work. It can be done, but right now namespaces are
6462 FIXME: didn't work. It can be done, but right now namespaces are
6457 all messed up. Do it later (reverted it for now, so at least
6463 all messed up. Do it later (reverted it for now, so at least
6458 everything works as before).
6464 everything works as before).
6459
6465
6460 * Got the object introspection system (magic_oinfo) working! I
6466 * Got the object introspection system (magic_oinfo) working! I
6461 think this is pretty much ready for release to Janko, so he can
6467 think this is pretty much ready for release to Janko, so he can
6462 test it for a while and then announce it. Pretty much 100% of what
6468 test it for a while and then announce it. Pretty much 100% of what
6463 I wanted for the 'phase 1' release is ready. Happy, tired.
6469 I wanted for the 'phase 1' release is ready. Happy, tired.
6464
6470
6465 2001-11-12 Fernando Perez <fperez@colorado.edu>
6471 2001-11-12 Fernando Perez <fperez@colorado.edu>
6466
6472
6467 * Version 0.1.6 released, 0.1.7 opened for further work.
6473 * Version 0.1.6 released, 0.1.7 opened for further work.
6468
6474
6469 * Fixed bug in printing: it used to test for truth before
6475 * Fixed bug in printing: it used to test for truth before
6470 printing, so 0 wouldn't print. Now checks for None.
6476 printing, so 0 wouldn't print. Now checks for None.
6471
6477
6472 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6478 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6473 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6479 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6474 reaches by hand into the outputcache. Think of a better way to do
6480 reaches by hand into the outputcache. Think of a better way to do
6475 this later.
6481 this later.
6476
6482
6477 * Various small fixes thanks to Nathan's comments.
6483 * Various small fixes thanks to Nathan's comments.
6478
6484
6479 * Changed magic_pprint to magic_Pprint. This way it doesn't
6485 * Changed magic_pprint to magic_Pprint. This way it doesn't
6480 collide with pprint() and the name is consistent with the command
6486 collide with pprint() and the name is consistent with the command
6481 line option.
6487 line option.
6482
6488
6483 * Changed prompt counter behavior to be fully like
6489 * Changed prompt counter behavior to be fully like
6484 Mathematica's. That is, even input that doesn't return a result
6490 Mathematica's. That is, even input that doesn't return a result
6485 raises the prompt counter. The old behavior was kind of confusing
6491 raises the prompt counter. The old behavior was kind of confusing
6486 (getting the same prompt number several times if the operation
6492 (getting the same prompt number several times if the operation
6487 didn't return a result).
6493 didn't return a result).
6488
6494
6489 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6495 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6490
6496
6491 * Fixed -Classic mode (wasn't working anymore).
6497 * Fixed -Classic mode (wasn't working anymore).
6492
6498
6493 * Added colored prompts using Nathan's new code. Colors are
6499 * Added colored prompts using Nathan's new code. Colors are
6494 currently hardwired, they can be user-configurable. For
6500 currently hardwired, they can be user-configurable. For
6495 developers, they can be chosen in file ipythonlib.py, at the
6501 developers, they can be chosen in file ipythonlib.py, at the
6496 beginning of the CachedOutput class def.
6502 beginning of the CachedOutput class def.
6497
6503
6498 2001-11-11 Fernando Perez <fperez@colorado.edu>
6504 2001-11-11 Fernando Perez <fperez@colorado.edu>
6499
6505
6500 * Version 0.1.5 released, 0.1.6 opened for further work.
6506 * Version 0.1.5 released, 0.1.6 opened for further work.
6501
6507
6502 * Changed magic_env to *return* the environment as a dict (not to
6508 * Changed magic_env to *return* the environment as a dict (not to
6503 print it). This way it prints, but it can also be processed.
6509 print it). This way it prints, but it can also be processed.
6504
6510
6505 * Added Verbose exception reporting to interactive
6511 * Added Verbose exception reporting to interactive
6506 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6512 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6507 traceback. Had to make some changes to the ultraTB file. This is
6513 traceback. Had to make some changes to the ultraTB file. This is
6508 probably the last 'big' thing in my mental todo list. This ties
6514 probably the last 'big' thing in my mental todo list. This ties
6509 in with the next entry:
6515 in with the next entry:
6510
6516
6511 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6517 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6512 has to specify is Plain, Color or Verbose for all exception
6518 has to specify is Plain, Color or Verbose for all exception
6513 handling.
6519 handling.
6514
6520
6515 * Removed ShellServices option. All this can really be done via
6521 * Removed ShellServices option. All this can really be done via
6516 the magic system. It's easier to extend, cleaner and has automatic
6522 the magic system. It's easier to extend, cleaner and has automatic
6517 namespace protection and documentation.
6523 namespace protection and documentation.
6518
6524
6519 2001-11-09 Fernando Perez <fperez@colorado.edu>
6525 2001-11-09 Fernando Perez <fperez@colorado.edu>
6520
6526
6521 * Fixed bug in output cache flushing (missing parameter to
6527 * Fixed bug in output cache flushing (missing parameter to
6522 __init__). Other small bugs fixed (found using pychecker).
6528 __init__). Other small bugs fixed (found using pychecker).
6523
6529
6524 * Version 0.1.4 opened for bugfixing.
6530 * Version 0.1.4 opened for bugfixing.
6525
6531
6526 2001-11-07 Fernando Perez <fperez@colorado.edu>
6532 2001-11-07 Fernando Perez <fperez@colorado.edu>
6527
6533
6528 * Version 0.1.3 released, mainly because of the raw_input bug.
6534 * Version 0.1.3 released, mainly because of the raw_input bug.
6529
6535
6530 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6536 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6531 and when testing for whether things were callable, a call could
6537 and when testing for whether things were callable, a call could
6532 actually be made to certain functions. They would get called again
6538 actually be made to certain functions. They would get called again
6533 once 'really' executed, with a resulting double call. A disaster
6539 once 'really' executed, with a resulting double call. A disaster
6534 in many cases (list.reverse() would never work!).
6540 in many cases (list.reverse() would never work!).
6535
6541
6536 * Removed prefilter() function, moved its code to raw_input (which
6542 * Removed prefilter() function, moved its code to raw_input (which
6537 after all was just a near-empty caller for prefilter). This saves
6543 after all was just a near-empty caller for prefilter). This saves
6538 a function call on every prompt, and simplifies the class a tiny bit.
6544 a function call on every prompt, and simplifies the class a tiny bit.
6539
6545
6540 * Fix _ip to __ip name in magic example file.
6546 * Fix _ip to __ip name in magic example file.
6541
6547
6542 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6548 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6543 work with non-gnu versions of tar.
6549 work with non-gnu versions of tar.
6544
6550
6545 2001-11-06 Fernando Perez <fperez@colorado.edu>
6551 2001-11-06 Fernando Perez <fperez@colorado.edu>
6546
6552
6547 * Version 0.1.2. Just to keep track of the recent changes.
6553 * Version 0.1.2. Just to keep track of the recent changes.
6548
6554
6549 * Fixed nasty bug in output prompt routine. It used to check 'if
6555 * Fixed nasty bug in output prompt routine. It used to check 'if
6550 arg != None...'. Problem is, this fails if arg implements a
6556 arg != None...'. Problem is, this fails if arg implements a
6551 special comparison (__cmp__) which disallows comparing to
6557 special comparison (__cmp__) which disallows comparing to
6552 None. Found it when trying to use the PhysicalQuantity module from
6558 None. Found it when trying to use the PhysicalQuantity module from
6553 ScientificPython.
6559 ScientificPython.
6554
6560
6555 2001-11-05 Fernando Perez <fperez@colorado.edu>
6561 2001-11-05 Fernando Perez <fperez@colorado.edu>
6556
6562
6557 * Also added dirs. Now the pushd/popd/dirs family functions
6563 * Also added dirs. Now the pushd/popd/dirs family functions
6558 basically like the shell, with the added convenience of going home
6564 basically like the shell, with the added convenience of going home
6559 when called with no args.
6565 when called with no args.
6560
6566
6561 * pushd/popd slightly modified to mimic shell behavior more
6567 * pushd/popd slightly modified to mimic shell behavior more
6562 closely.
6568 closely.
6563
6569
6564 * Added env,pushd,popd from ShellServices as magic functions. I
6570 * Added env,pushd,popd from ShellServices as magic functions. I
6565 think the cleanest will be to port all desired functions from
6571 think the cleanest will be to port all desired functions from
6566 ShellServices as magics and remove ShellServices altogether. This
6572 ShellServices as magics and remove ShellServices altogether. This
6567 will provide a single, clean way of adding functionality
6573 will provide a single, clean way of adding functionality
6568 (shell-type or otherwise) to IP.
6574 (shell-type or otherwise) to IP.
6569
6575
6570 2001-11-04 Fernando Perez <fperez@colorado.edu>
6576 2001-11-04 Fernando Perez <fperez@colorado.edu>
6571
6577
6572 * Added .ipython/ directory to sys.path. This way users can keep
6578 * Added .ipython/ directory to sys.path. This way users can keep
6573 customizations there and access them via import.
6579 customizations there and access them via import.
6574
6580
6575 2001-11-03 Fernando Perez <fperez@colorado.edu>
6581 2001-11-03 Fernando Perez <fperez@colorado.edu>
6576
6582
6577 * Opened version 0.1.1 for new changes.
6583 * Opened version 0.1.1 for new changes.
6578
6584
6579 * Changed version number to 0.1.0: first 'public' release, sent to
6585 * Changed version number to 0.1.0: first 'public' release, sent to
6580 Nathan and Janko.
6586 Nathan and Janko.
6581
6587
6582 * Lots of small fixes and tweaks.
6588 * Lots of small fixes and tweaks.
6583
6589
6584 * Minor changes to whos format. Now strings are shown, snipped if
6590 * Minor changes to whos format. Now strings are shown, snipped if
6585 too long.
6591 too long.
6586
6592
6587 * Changed ShellServices to work on __main__ so they show up in @who
6593 * Changed ShellServices to work on __main__ so they show up in @who
6588
6594
6589 * Help also works with ? at the end of a line:
6595 * Help also works with ? at the end of a line:
6590 ?sin and sin?
6596 ?sin and sin?
6591 both produce the same effect. This is nice, as often I use the
6597 both produce the same effect. This is nice, as often I use the
6592 tab-complete to find the name of a method, but I used to then have
6598 tab-complete to find the name of a method, but I used to then have
6593 to go to the beginning of the line to put a ? if I wanted more
6599 to go to the beginning of the line to put a ? if I wanted more
6594 info. Now I can just add the ? and hit return. Convenient.
6600 info. Now I can just add the ? and hit return. Convenient.
6595
6601
6596 2001-11-02 Fernando Perez <fperez@colorado.edu>
6602 2001-11-02 Fernando Perez <fperez@colorado.edu>
6597
6603
6598 * Python version check (>=2.1) added.
6604 * Python version check (>=2.1) added.
6599
6605
6600 * Added LazyPython documentation. At this point the docs are quite
6606 * Added LazyPython documentation. At this point the docs are quite
6601 a mess. A cleanup is in order.
6607 a mess. A cleanup is in order.
6602
6608
6603 * Auto-installer created. For some bizarre reason, the zipfiles
6609 * Auto-installer created. For some bizarre reason, the zipfiles
6604 module isn't working on my system. So I made a tar version
6610 module isn't working on my system. So I made a tar version
6605 (hopefully the command line options in various systems won't kill
6611 (hopefully the command line options in various systems won't kill
6606 me).
6612 me).
6607
6613
6608 * Fixes to Struct in genutils. Now all dictionary-like methods are
6614 * Fixes to Struct in genutils. Now all dictionary-like methods are
6609 protected (reasonably).
6615 protected (reasonably).
6610
6616
6611 * Added pager function to genutils and changed ? to print usage
6617 * Added pager function to genutils and changed ? to print usage
6612 note through it (it was too long).
6618 note through it (it was too long).
6613
6619
6614 * Added the LazyPython functionality. Works great! I changed the
6620 * Added the LazyPython functionality. Works great! I changed the
6615 auto-quote escape to ';', it's on home row and next to '. But
6621 auto-quote escape to ';', it's on home row and next to '. But
6616 both auto-quote and auto-paren (still /) escapes are command-line
6622 both auto-quote and auto-paren (still /) escapes are command-line
6617 parameters.
6623 parameters.
6618
6624
6619
6625
6620 2001-11-01 Fernando Perez <fperez@colorado.edu>
6626 2001-11-01 Fernando Perez <fperez@colorado.edu>
6621
6627
6622 * Version changed to 0.0.7. Fairly large change: configuration now
6628 * Version changed to 0.0.7. Fairly large change: configuration now
6623 is all stored in a directory, by default .ipython. There, all
6629 is all stored in a directory, by default .ipython. There, all
6624 config files have normal looking names (not .names)
6630 config files have normal looking names (not .names)
6625
6631
6626 * Version 0.0.6 Released first to Lucas and Archie as a test
6632 * Version 0.0.6 Released first to Lucas and Archie as a test
6627 run. Since it's the first 'semi-public' release, change version to
6633 run. Since it's the first 'semi-public' release, change version to
6628 > 0.0.6 for any changes now.
6634 > 0.0.6 for any changes now.
6629
6635
6630 * Stuff I had put in the ipplib.py changelog:
6636 * Stuff I had put in the ipplib.py changelog:
6631
6637
6632 Changes to InteractiveShell:
6638 Changes to InteractiveShell:
6633
6639
6634 - Made the usage message a parameter.
6640 - Made the usage message a parameter.
6635
6641
6636 - Require the name of the shell variable to be given. It's a bit
6642 - Require the name of the shell variable to be given. It's a bit
6637 of a hack, but allows the name 'shell' not to be hardwired in the
6643 of a hack, but allows the name 'shell' not to be hardwired in the
6638 magic (@) handler, which is problematic b/c it requires
6644 magic (@) handler, which is problematic b/c it requires
6639 polluting the global namespace with 'shell'. This in turn is
6645 polluting the global namespace with 'shell'. This in turn is
6640 fragile: if a user redefines a variable called shell, things
6646 fragile: if a user redefines a variable called shell, things
6641 break.
6647 break.
6642
6648
6643 - magic @: all functions available through @ need to be defined
6649 - magic @: all functions available through @ need to be defined
6644 as magic_<name>, even though they can be called simply as
6650 as magic_<name>, even though they can be called simply as
6645 @<name>. This allows the special command @magic to gather
6651 @<name>. This allows the special command @magic to gather
6646 information automatically about all existing magic functions,
6652 information automatically about all existing magic functions,
6647 even if they are run-time user extensions, by parsing the shell
6653 even if they are run-time user extensions, by parsing the shell
6648 instance __dict__ looking for special magic_ names.
6654 instance __dict__ looking for special magic_ names.
6649
6655
6650 - mainloop: added *two* local namespace parameters. This allows
6656 - mainloop: added *two* local namespace parameters. This allows
6651 the class to differentiate between parameters which were there
6657 the class to differentiate between parameters which were there
6652 before and after command line initialization was processed. This
6658 before and after command line initialization was processed. This
6653 way, later @who can show things loaded at startup by the
6659 way, later @who can show things loaded at startup by the
6654 user. This trick was necessary to make session saving/reloading
6660 user. This trick was necessary to make session saving/reloading
6655 really work: ideally after saving/exiting/reloading a session,
6661 really work: ideally after saving/exiting/reloading a session,
6656 *everything* should look the same, including the output of @who. I
6662 *everything* should look the same, including the output of @who. I
6657 was only able to make this work with this double namespace
6663 was only able to make this work with this double namespace
6658 trick.
6664 trick.
6659
6665
6660 - added a header to the logfile which allows (almost) full
6666 - added a header to the logfile which allows (almost) full
6661 session restoring.
6667 session restoring.
6662
6668
6663 - prepend lines beginning with @ or !, with a and log
6669 - prepend lines beginning with @ or !, with a and log
6664 them. Why? !lines: may be useful to know what you did @lines:
6670 them. Why? !lines: may be useful to know what you did @lines:
6665 they may affect session state. So when restoring a session, at
6671 they may affect session state. So when restoring a session, at
6666 least inform the user of their presence. I couldn't quite get
6672 least inform the user of their presence. I couldn't quite get
6667 them to properly re-execute, but at least the user is warned.
6673 them to properly re-execute, but at least the user is warned.
6668
6674
6669 * Started ChangeLog.
6675 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now