##// END OF EJS Templates
doc changes for sci profile
vivainio -
Show More
@@ -1,18 +1,25 b''
1 """ IPython 'sci' profile
2
3 Replaces the old scipy profile.
4
5 """
6
7
1 import IPython.ipapi
8 import IPython.ipapi
2 import ipy_defaults
9 import ipy_defaults
3
10
4 def main():
11 def main():
5 ip = IPython.ipapi.get()
12 ip = IPython.ipapi.get()
6
13
7 try:
14 try:
8 ip.ex("import scipy")
15 ip.ex("import scipy")
9 ip.ex("import numpy")
16 ip.ex("import numpy")
10
17
11 ip.ex("from scipy import *")
18 ip.ex("from scipy import *")
12 ip.ex("from numpy import *")
19 ip.ex("from numpy import *")
13 print "SciPy profile successfully loaded."
20 print "SciPy profile successfully loaded."
14 except ImportError:
21 except ImportError:
15 print "Unable to start scipy profile, are scipy and numpy installed?"
22 print "Unable to start scipy profile, are scipy and numpy installed?"
16
23
17
24
18 main() No newline at end of file
25 main()
@@ -1,6676 +1,6682 b''
1 2007-05-16 Ville Vainio <vivainio@gmail.com>
2
3 * ipy_profile_sci.py, ipython_win_post_install.py: Create
4 new "sci" profile, effectively a modern version of the old
5 "scipy" profile (which is now slated for deprecation).
6
1 2007-05-15 Ville Vainio <vivainio@gmail.com>
7 2007-05-15 Ville Vainio <vivainio@gmail.com>
2
8
3 * pycolorize.py, pycolor.1: Paul Mueller's patches that
9 * pycolorize.py, pycolor.1: Paul Mueller's patches that
4 make pycolorize read input from stdin when run without arguments.
10 make pycolorize read input from stdin when run without arguments.
5
11
6 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
12 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
7
13
8 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
14 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
9 it in sh profile (instead of ipy_system_conf.py).
15 it in sh profile (instead of ipy_system_conf.py).
10
16
11 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
17 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
12 aliases are now lower case on windows (MyCommand.exe => mycommand).
18 aliases are now lower case on windows (MyCommand.exe => mycommand).
13
19
14 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
20 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
15 Macros are now callable objects that inherit from ipapi.IPyAutocall,
21 Macros are now callable objects that inherit from ipapi.IPyAutocall,
16 i.e. get autocalled regardless of system autocall setting.
22 i.e. get autocalled regardless of system autocall setting.
17
23
18 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
24 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
19
25
20 * IPython/rlineimpl.py: check for clear_history in readline and
26 * IPython/rlineimpl.py: check for clear_history in readline and
21 make it a dummy no-op if not available. This function isn't
27 make it a dummy no-op if not available. This function isn't
22 guaranteed to be in the API and appeared in Python 2.4, so we need
28 guaranteed to be in the API and appeared in Python 2.4, so we need
23 to check it ourselves. Also, clean up this file quite a bit.
29 to check it ourselves. Also, clean up this file quite a bit.
24
30
25 * ipython.1: update man page and full manual with information
31 * ipython.1: update man page and full manual with information
26 about threads (remove outdated warning). Closes #151.
32 about threads (remove outdated warning). Closes #151.
27
33
28 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
34 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
29
35
30 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
36 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
31 in trunk (note that this made it into the 0.8.1 release already,
37 in trunk (note that this made it into the 0.8.1 release already,
32 but the changelogs didn't get coordinated). Many thanks to Gael
38 but the changelogs didn't get coordinated). Many thanks to Gael
33 Varoquaux <gael.varoquaux-AT-normalesup.org>
39 Varoquaux <gael.varoquaux-AT-normalesup.org>
34
40
35 2007-05-09 *** Released version 0.8.1
41 2007-05-09 *** Released version 0.8.1
36
42
37 2007-05-10 Walter Doerwald <walter@livinglogic.de>
43 2007-05-10 Walter Doerwald <walter@livinglogic.de>
38
44
39 * IPython/Extensions/igrid.py: Incorporate html help into
45 * IPython/Extensions/igrid.py: Incorporate html help into
40 the module, so we don't have to search for the file.
46 the module, so we don't have to search for the file.
41
47
42 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
48 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
43
49
44 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
50 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
45
51
46 2007-04-30 Ville Vainio <vivainio@gmail.com>
52 2007-04-30 Ville Vainio <vivainio@gmail.com>
47
53
48 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
54 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
49 user has illegal (non-ascii) home directory name
55 user has illegal (non-ascii) home directory name
50
56
51 2007-04-27 Ville Vainio <vivainio@gmail.com>
57 2007-04-27 Ville Vainio <vivainio@gmail.com>
52
58
53 * platutils_win32.py: implement set_term_title for windows
59 * platutils_win32.py: implement set_term_title for windows
54
60
55 * Update version number
61 * Update version number
56
62
57 * ipy_profile_sh.py: more informative prompt (2 dir levels)
63 * ipy_profile_sh.py: more informative prompt (2 dir levels)
58
64
59 2007-04-26 Walter Doerwald <walter@livinglogic.de>
65 2007-04-26 Walter Doerwald <walter@livinglogic.de>
60
66
61 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
67 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
62 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
68 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
63 bug discovered by Ville).
69 bug discovered by Ville).
64
70
65 2007-04-26 Ville Vainio <vivainio@gmail.com>
71 2007-04-26 Ville Vainio <vivainio@gmail.com>
66
72
67 * Extensions/ipy_completers.py: Olivier's module completer now
73 * Extensions/ipy_completers.py: Olivier's module completer now
68 saves the list of root modules if it takes > 4 secs on the first run.
74 saves the list of root modules if it takes > 4 secs on the first run.
69
75
70 * Magic.py (%rehashx): %rehashx now clears the completer cache
76 * Magic.py (%rehashx): %rehashx now clears the completer cache
71
77
72
78
73 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
79 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
74
80
75 * ipython.el: fix incorrect color scheme, reported by Stefan.
81 * ipython.el: fix incorrect color scheme, reported by Stefan.
76 Closes #149.
82 Closes #149.
77
83
78 * IPython/PyColorize.py (Parser.format2): fix state-handling
84 * IPython/PyColorize.py (Parser.format2): fix state-handling
79 logic. I still don't like how that code handles state, but at
85 logic. I still don't like how that code handles state, but at
80 least now it should be correct, if inelegant. Closes #146.
86 least now it should be correct, if inelegant. Closes #146.
81
87
82 2007-04-25 Ville Vainio <vivainio@gmail.com>
88 2007-04-25 Ville Vainio <vivainio@gmail.com>
83
89
84 * Extensions/ipy_which.py: added extension for %which magic, works
90 * Extensions/ipy_which.py: added extension for %which magic, works
85 a lot like unix 'which' but also finds and expands aliases, and
91 a lot like unix 'which' but also finds and expands aliases, and
86 allows wildcards.
92 allows wildcards.
87
93
88 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
94 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
89 as opposed to returning nothing.
95 as opposed to returning nothing.
90
96
91 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
97 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
92 ipy_stock_completers on default profile, do import on sh profile.
98 ipy_stock_completers on default profile, do import on sh profile.
93
99
94 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
100 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
95
101
96 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
102 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
97 like ipython.py foo.py which raised a IndexError.
103 like ipython.py foo.py which raised a IndexError.
98
104
99 2007-04-21 Ville Vainio <vivainio@gmail.com>
105 2007-04-21 Ville Vainio <vivainio@gmail.com>
100
106
101 * Extensions/ipy_extutil.py: added extension to manage other ipython
107 * Extensions/ipy_extutil.py: added extension to manage other ipython
102 extensions. Now only supports 'ls' == list extensions.
108 extensions. Now only supports 'ls' == list extensions.
103
109
104 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
110 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
105
111
106 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
112 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
107 would prevent use of the exception system outside of a running
113 would prevent use of the exception system outside of a running
108 IPython instance.
114 IPython instance.
109
115
110 2007-04-20 Ville Vainio <vivainio@gmail.com>
116 2007-04-20 Ville Vainio <vivainio@gmail.com>
111
117
112 * Extensions/ipy_render.py: added extension for easy
118 * Extensions/ipy_render.py: added extension for easy
113 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
119 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
114 'Iptl' template notation,
120 'Iptl' template notation,
115
121
116 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
122 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
117 safer & faster 'import' completer.
123 safer & faster 'import' completer.
118
124
119 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
125 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
120 and _ip.defalias(name, command).
126 and _ip.defalias(name, command).
121
127
122 * Extensions/ipy_exportdb.py: New extension for exporting all the
128 * Extensions/ipy_exportdb.py: New extension for exporting all the
123 %store'd data in a portable format (normal ipapi calls like
129 %store'd data in a portable format (normal ipapi calls like
124 defmacro() etc.)
130 defmacro() etc.)
125
131
126 2007-04-19 Ville Vainio <vivainio@gmail.com>
132 2007-04-19 Ville Vainio <vivainio@gmail.com>
127
133
128 * upgrade_dir.py: skip junk files like *.pyc
134 * upgrade_dir.py: skip junk files like *.pyc
129
135
130 * Release.py: version number to 0.8.1
136 * Release.py: version number to 0.8.1
131
137
132 2007-04-18 Ville Vainio <vivainio@gmail.com>
138 2007-04-18 Ville Vainio <vivainio@gmail.com>
133
139
134 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
140 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
135 and later on win32.
141 and later on win32.
136
142
137 2007-04-16 Ville Vainio <vivainio@gmail.com>
143 2007-04-16 Ville Vainio <vivainio@gmail.com>
138
144
139 * iplib.py (showtraceback): Do not crash when running w/o readline.
145 * iplib.py (showtraceback): Do not crash when running w/o readline.
140
146
141 2007-04-12 Walter Doerwald <walter@livinglogic.de>
147 2007-04-12 Walter Doerwald <walter@livinglogic.de>
142
148
143 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
149 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
144 sorted (case sensitive with files and dirs mixed).
150 sorted (case sensitive with files and dirs mixed).
145
151
146 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
152 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
147
153
148 * IPython/Release.py (version): Open trunk for 0.8.1 development.
154 * IPython/Release.py (version): Open trunk for 0.8.1 development.
149
155
150 2007-04-10 *** Released version 0.8.0
156 2007-04-10 *** Released version 0.8.0
151
157
152 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
158 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
153
159
154 * Tag 0.8.0 for release.
160 * Tag 0.8.0 for release.
155
161
156 * IPython/iplib.py (reloadhist): add API function to cleanly
162 * IPython/iplib.py (reloadhist): add API function to cleanly
157 reload the readline history, which was growing inappropriately on
163 reload the readline history, which was growing inappropriately on
158 every %run call.
164 every %run call.
159
165
160 * win32_manual_post_install.py (run): apply last part of Nicolas
166 * win32_manual_post_install.py (run): apply last part of Nicolas
161 Pernetty's patch (I'd accidentally applied it in a different
167 Pernetty's patch (I'd accidentally applied it in a different
162 directory and this particular file didn't get patched).
168 directory and this particular file didn't get patched).
163
169
164 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
170 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
165
171
166 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
172 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
167 find the main thread id and use the proper API call. Thanks to
173 find the main thread id and use the proper API call. Thanks to
168 Stefan for the fix.
174 Stefan for the fix.
169
175
170 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
176 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
171 unit tests to reflect fixed ticket #52, and add more tests sent by
177 unit tests to reflect fixed ticket #52, and add more tests sent by
172 him.
178 him.
173
179
174 * IPython/iplib.py (raw_input): restore the readline completer
180 * IPython/iplib.py (raw_input): restore the readline completer
175 state on every input, in case third-party code messed it up.
181 state on every input, in case third-party code messed it up.
176 (_prefilter): revert recent addition of early-escape checks which
182 (_prefilter): revert recent addition of early-escape checks which
177 prevent many valid alias calls from working.
183 prevent many valid alias calls from working.
178
184
179 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
185 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
180 flag for sigint handler so we don't run a full signal() call on
186 flag for sigint handler so we don't run a full signal() call on
181 each runcode access.
187 each runcode access.
182
188
183 * IPython/Magic.py (magic_whos): small improvement to diagnostic
189 * IPython/Magic.py (magic_whos): small improvement to diagnostic
184 message.
190 message.
185
191
186 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
192 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
187
193
188 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
194 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
189 asynchronous exceptions working, i.e., Ctrl-C can actually
195 asynchronous exceptions working, i.e., Ctrl-C can actually
190 interrupt long-running code in the multithreaded shells.
196 interrupt long-running code in the multithreaded shells.
191
197
192 This is using Tomer Filiba's great ctypes-based trick:
198 This is using Tomer Filiba's great ctypes-based trick:
193 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
199 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
194 this in the past, but hadn't been able to make it work before. So
200 this in the past, but hadn't been able to make it work before. So
195 far it looks like it's actually running, but this needs more
201 far it looks like it's actually running, but this needs more
196 testing. If it really works, I'll be *very* happy, and we'll owe
202 testing. If it really works, I'll be *very* happy, and we'll owe
197 a huge thank you to Tomer. My current implementation is ugly,
203 a huge thank you to Tomer. My current implementation is ugly,
198 hackish and uses nasty globals, but I don't want to try and clean
204 hackish and uses nasty globals, but I don't want to try and clean
199 anything up until we know if it actually works.
205 anything up until we know if it actually works.
200
206
201 NOTE: this feature needs ctypes to work. ctypes is included in
207 NOTE: this feature needs ctypes to work. ctypes is included in
202 Python2.5, but 2.4 users will need to manually install it. This
208 Python2.5, but 2.4 users will need to manually install it. This
203 feature makes multi-threaded shells so much more usable that it's
209 feature makes multi-threaded shells so much more usable that it's
204 a minor price to pay (ctypes is very easy to install, already a
210 a minor price to pay (ctypes is very easy to install, already a
205 requirement for win32 and available in major linux distros).
211 requirement for win32 and available in major linux distros).
206
212
207 2007-04-04 Ville Vainio <vivainio@gmail.com>
213 2007-04-04 Ville Vainio <vivainio@gmail.com>
208
214
209 * Extensions/ipy_completers.py, ipy_stock_completers.py:
215 * Extensions/ipy_completers.py, ipy_stock_completers.py:
210 Moved implementations of 'bundled' completers to ipy_completers.py,
216 Moved implementations of 'bundled' completers to ipy_completers.py,
211 they are only enabled in ipy_stock_completers.py.
217 they are only enabled in ipy_stock_completers.py.
212
218
213 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
219 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
214
220
215 * IPython/PyColorize.py (Parser.format2): Fix identation of
221 * IPython/PyColorize.py (Parser.format2): Fix identation of
216 colorzied output and return early if color scheme is NoColor, to
222 colorzied output and return early if color scheme is NoColor, to
217 avoid unnecessary and expensive tokenization. Closes #131.
223 avoid unnecessary and expensive tokenization. Closes #131.
218
224
219 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
225 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
220
226
221 * IPython/Debugger.py: disable the use of pydb version 1.17. It
227 * IPython/Debugger.py: disable the use of pydb version 1.17. It
222 has a critical bug (a missing import that makes post-mortem not
228 has a critical bug (a missing import that makes post-mortem not
223 work at all). Unfortunately as of this time, this is the version
229 work at all). Unfortunately as of this time, this is the version
224 shipped with Ubuntu Edgy, so quite a few people have this one. I
230 shipped with Ubuntu Edgy, so quite a few people have this one. I
225 hope Edgy will update to a more recent package.
231 hope Edgy will update to a more recent package.
226
232
227 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
233 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
228
234
229 * IPython/iplib.py (_prefilter): close #52, second part of a patch
235 * IPython/iplib.py (_prefilter): close #52, second part of a patch
230 set by Stefan (only the first part had been applied before).
236 set by Stefan (only the first part had been applied before).
231
237
232 * IPython/Extensions/ipy_stock_completers.py (module_completer):
238 * IPython/Extensions/ipy_stock_completers.py (module_completer):
233 remove usage of the dangerous pkgutil.walk_packages(). See
239 remove usage of the dangerous pkgutil.walk_packages(). See
234 details in comments left in the code.
240 details in comments left in the code.
235
241
236 * IPython/Magic.py (magic_whos): add support for numpy arrays
242 * IPython/Magic.py (magic_whos): add support for numpy arrays
237 similar to what we had for Numeric.
243 similar to what we had for Numeric.
238
244
239 * IPython/completer.py (IPCompleter.complete): extend the
245 * IPython/completer.py (IPCompleter.complete): extend the
240 complete() call API to support completions by other mechanisms
246 complete() call API to support completions by other mechanisms
241 than readline. Closes #109.
247 than readline. Closes #109.
242
248
243 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
249 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
244 protect against a bug in Python's execfile(). Closes #123.
250 protect against a bug in Python's execfile(). Closes #123.
245
251
246 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
252 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
247
253
248 * IPython/iplib.py (split_user_input): ensure that when splitting
254 * IPython/iplib.py (split_user_input): ensure that when splitting
249 user input, the part that can be treated as a python name is pure
255 user input, the part that can be treated as a python name is pure
250 ascii (Python identifiers MUST be pure ascii). Part of the
256 ascii (Python identifiers MUST be pure ascii). Part of the
251 ongoing Unicode support work.
257 ongoing Unicode support work.
252
258
253 * IPython/Prompts.py (prompt_specials_color): Add \N for the
259 * IPython/Prompts.py (prompt_specials_color): Add \N for the
254 actual prompt number, without any coloring. This allows users to
260 actual prompt number, without any coloring. This allows users to
255 produce numbered prompts with their own colors. Added after a
261 produce numbered prompts with their own colors. Added after a
256 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
262 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
257
263
258 2007-03-31 Walter Doerwald <walter@livinglogic.de>
264 2007-03-31 Walter Doerwald <walter@livinglogic.de>
259
265
260 * IPython/Extensions/igrid.py: Map the return key
266 * IPython/Extensions/igrid.py: Map the return key
261 to enter() and shift-return to enterattr().
267 to enter() and shift-return to enterattr().
262
268
263 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
269 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
264
270
265 * IPython/Magic.py (magic_psearch): add unicode support by
271 * IPython/Magic.py (magic_psearch): add unicode support by
266 encoding to ascii the input, since this routine also only deals
272 encoding to ascii the input, since this routine also only deals
267 with valid Python names. Fixes a bug reported by Stefan.
273 with valid Python names. Fixes a bug reported by Stefan.
268
274
269 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
275 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
270
276
271 * IPython/Magic.py (_inspect): convert unicode input into ascii
277 * IPython/Magic.py (_inspect): convert unicode input into ascii
272 before trying to evaluate it as a Python identifier. This fixes a
278 before trying to evaluate it as a Python identifier. This fixes a
273 problem that the new unicode support had introduced when analyzing
279 problem that the new unicode support had introduced when analyzing
274 long definition lines for functions.
280 long definition lines for functions.
275
281
276 2007-03-24 Walter Doerwald <walter@livinglogic.de>
282 2007-03-24 Walter Doerwald <walter@livinglogic.de>
277
283
278 * IPython/Extensions/igrid.py: Fix picking. Using
284 * IPython/Extensions/igrid.py: Fix picking. Using
279 igrid with wxPython 2.6 and -wthread should work now.
285 igrid with wxPython 2.6 and -wthread should work now.
280 igrid.display() simply tries to create a frame without
286 igrid.display() simply tries to create a frame without
281 an application. Only if this fails an application is created.
287 an application. Only if this fails an application is created.
282
288
283 2007-03-23 Walter Doerwald <walter@livinglogic.de>
289 2007-03-23 Walter Doerwald <walter@livinglogic.de>
284
290
285 * IPython/Extensions/path.py: Updated to version 2.2.
291 * IPython/Extensions/path.py: Updated to version 2.2.
286
292
287 2007-03-23 Ville Vainio <vivainio@gmail.com>
293 2007-03-23 Ville Vainio <vivainio@gmail.com>
288
294
289 * iplib.py: recursive alias expansion now works better, so that
295 * iplib.py: recursive alias expansion now works better, so that
290 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
296 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
291 doesn't trip up the process, if 'd' has been aliased to 'ls'.
297 doesn't trip up the process, if 'd' has been aliased to 'ls'.
292
298
293 * Extensions/ipy_gnuglobal.py added, provides %global magic
299 * Extensions/ipy_gnuglobal.py added, provides %global magic
294 for users of http://www.gnu.org/software/global
300 for users of http://www.gnu.org/software/global
295
301
296 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
302 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
297 Closes #52. Patch by Stefan van der Walt.
303 Closes #52. Patch by Stefan van der Walt.
298
304
299 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
305 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
300
306
301 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
307 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
302 respect the __file__ attribute when using %run. Thanks to a bug
308 respect the __file__ attribute when using %run. Thanks to a bug
303 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
309 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
304
310
305 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
311 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
306
312
307 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
313 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
308 input. Patch sent by Stefan.
314 input. Patch sent by Stefan.
309
315
310 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
316 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
311 * IPython/Extensions/ipy_stock_completer.py
317 * IPython/Extensions/ipy_stock_completer.py
312 shlex_split, fix bug in shlex_split. len function
318 shlex_split, fix bug in shlex_split. len function
313 call was missing an if statement. Caused shlex_split to
319 call was missing an if statement. Caused shlex_split to
314 sometimes return "" as last element.
320 sometimes return "" as last element.
315
321
316 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
322 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
317
323
318 * IPython/completer.py
324 * IPython/completer.py
319 (IPCompleter.file_matches.single_dir_expand): fix a problem
325 (IPCompleter.file_matches.single_dir_expand): fix a problem
320 reported by Stefan, where directories containign a single subdir
326 reported by Stefan, where directories containign a single subdir
321 would be completed too early.
327 would be completed too early.
322
328
323 * IPython/Shell.py (_load_pylab): Make the execution of 'from
329 * IPython/Shell.py (_load_pylab): Make the execution of 'from
324 pylab import *' when -pylab is given be optional. A new flag,
330 pylab import *' when -pylab is given be optional. A new flag,
325 pylab_import_all controls this behavior, the default is True for
331 pylab_import_all controls this behavior, the default is True for
326 backwards compatibility.
332 backwards compatibility.
327
333
328 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
334 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
329 modified) R. Bernstein's patch for fully syntax highlighted
335 modified) R. Bernstein's patch for fully syntax highlighted
330 tracebacks. The functionality is also available under ultraTB for
336 tracebacks. The functionality is also available under ultraTB for
331 non-ipython users (someone using ultraTB but outside an ipython
337 non-ipython users (someone using ultraTB but outside an ipython
332 session). They can select the color scheme by setting the
338 session). They can select the color scheme by setting the
333 module-level global DEFAULT_SCHEME. The highlight functionality
339 module-level global DEFAULT_SCHEME. The highlight functionality
334 also works when debugging.
340 also works when debugging.
335
341
336 * IPython/genutils.py (IOStream.close): small patch by
342 * IPython/genutils.py (IOStream.close): small patch by
337 R. Bernstein for improved pydb support.
343 R. Bernstein for improved pydb support.
338
344
339 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
345 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
340 DaveS <davls@telus.net> to improve support of debugging under
346 DaveS <davls@telus.net> to improve support of debugging under
341 NTEmacs, including improved pydb behavior.
347 NTEmacs, including improved pydb behavior.
342
348
343 * IPython/Magic.py (magic_prun): Fix saving of profile info for
349 * IPython/Magic.py (magic_prun): Fix saving of profile info for
344 Python 2.5, where the stats object API changed a little. Thanks
350 Python 2.5, where the stats object API changed a little. Thanks
345 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
351 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
346
352
347 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
353 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
348 Pernetty's patch to improve support for (X)Emacs under Win32.
354 Pernetty's patch to improve support for (X)Emacs under Win32.
349
355
350 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
356 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
351
357
352 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
358 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
353 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
359 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
354 a report by Nik Tautenhahn.
360 a report by Nik Tautenhahn.
355
361
356 2007-03-16 Walter Doerwald <walter@livinglogic.de>
362 2007-03-16 Walter Doerwald <walter@livinglogic.de>
357
363
358 * setup.py: Add the igrid help files to the list of data files
364 * setup.py: Add the igrid help files to the list of data files
359 to be installed alongside igrid.
365 to be installed alongside igrid.
360 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
366 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
361 Show the input object of the igrid browser as the window tile.
367 Show the input object of the igrid browser as the window tile.
362 Show the object the cursor is on in the statusbar.
368 Show the object the cursor is on in the statusbar.
363
369
364 2007-03-15 Ville Vainio <vivainio@gmail.com>
370 2007-03-15 Ville Vainio <vivainio@gmail.com>
365
371
366 * Extensions/ipy_stock_completers.py: Fixed exception
372 * Extensions/ipy_stock_completers.py: Fixed exception
367 on mismatching quotes in %run completer. Patch by
373 on mismatching quotes in %run completer. Patch by
368 JοΏ½rgen Stenarson. Closes #127.
374 JοΏ½rgen Stenarson. Closes #127.
369
375
370 2007-03-14 Ville Vainio <vivainio@gmail.com>
376 2007-03-14 Ville Vainio <vivainio@gmail.com>
371
377
372 * Extensions/ext_rehashdir.py: Do not do auto_alias
378 * Extensions/ext_rehashdir.py: Do not do auto_alias
373 in %rehashdir, it clobbers %store'd aliases.
379 in %rehashdir, it clobbers %store'd aliases.
374
380
375 * UserConfig/ipy_profile_sh.py: envpersist.py extension
381 * UserConfig/ipy_profile_sh.py: envpersist.py extension
376 (beefed up %env) imported for sh profile.
382 (beefed up %env) imported for sh profile.
377
383
378 2007-03-10 Walter Doerwald <walter@livinglogic.de>
384 2007-03-10 Walter Doerwald <walter@livinglogic.de>
379
385
380 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
386 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
381 as the default browser.
387 as the default browser.
382 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
388 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
383 As igrid displays all attributes it ever encounters, fetch() (which has
389 As igrid displays all attributes it ever encounters, fetch() (which has
384 been renamed to _fetch()) doesn't have to recalculate the display attributes
390 been renamed to _fetch()) doesn't have to recalculate the display attributes
385 every time a new item is fetched. This should speed up scrolling.
391 every time a new item is fetched. This should speed up scrolling.
386
392
387 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
393 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
388
394
389 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
395 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
390 Schmolck's recently reported tab-completion bug (my previous one
396 Schmolck's recently reported tab-completion bug (my previous one
391 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
397 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
392
398
393 2007-03-09 Walter Doerwald <walter@livinglogic.de>
399 2007-03-09 Walter Doerwald <walter@livinglogic.de>
394
400
395 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
401 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
396 Close help window if exiting igrid.
402 Close help window if exiting igrid.
397
403
398 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
404 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
399
405
400 * IPython/Extensions/ipy_defaults.py: Check if readline is available
406 * IPython/Extensions/ipy_defaults.py: Check if readline is available
401 before calling functions from readline.
407 before calling functions from readline.
402
408
403 2007-03-02 Walter Doerwald <walter@livinglogic.de>
409 2007-03-02 Walter Doerwald <walter@livinglogic.de>
404
410
405 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
411 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
406 igrid is a wxPython-based display object for ipipe. If your system has
412 igrid is a wxPython-based display object for ipipe. If your system has
407 wx installed igrid will be the default display. Without wx ipipe falls
413 wx installed igrid will be the default display. Without wx ipipe falls
408 back to ibrowse (which needs curses). If no curses is installed ipipe
414 back to ibrowse (which needs curses). If no curses is installed ipipe
409 falls back to idump.
415 falls back to idump.
410
416
411 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
417 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
412
418
413 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
419 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
414 my changes from yesterday, they introduced bugs. Will reactivate
420 my changes from yesterday, they introduced bugs. Will reactivate
415 once I get a correct solution, which will be much easier thanks to
421 once I get a correct solution, which will be much easier thanks to
416 Dan Milstein's new prefilter test suite.
422 Dan Milstein's new prefilter test suite.
417
423
418 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
424 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
419
425
420 * IPython/iplib.py (split_user_input): fix input splitting so we
426 * IPython/iplib.py (split_user_input): fix input splitting so we
421 don't attempt attribute accesses on things that can't possibly be
427 don't attempt attribute accesses on things that can't possibly be
422 valid Python attributes. After a bug report by Alex Schmolck.
428 valid Python attributes. After a bug report by Alex Schmolck.
423 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
429 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
424 %magic with explicit % prefix.
430 %magic with explicit % prefix.
425
431
426 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
432 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
427
433
428 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
434 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
429 avoid a DeprecationWarning from GTK.
435 avoid a DeprecationWarning from GTK.
430
436
431 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
437 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
432
438
433 * IPython/genutils.py (clock): I modified clock() to return total
439 * IPython/genutils.py (clock): I modified clock() to return total
434 time, user+system. This is a more commonly needed metric. I also
440 time, user+system. This is a more commonly needed metric. I also
435 introduced the new clocku/clocks to get only user/system time if
441 introduced the new clocku/clocks to get only user/system time if
436 one wants those instead.
442 one wants those instead.
437
443
438 ***WARNING: API CHANGE*** clock() used to return only user time,
444 ***WARNING: API CHANGE*** clock() used to return only user time,
439 so if you want exactly the same results as before, use clocku
445 so if you want exactly the same results as before, use clocku
440 instead.
446 instead.
441
447
442 2007-02-22 Ville Vainio <vivainio@gmail.com>
448 2007-02-22 Ville Vainio <vivainio@gmail.com>
443
449
444 * IPython/Extensions/ipy_p4.py: Extension for improved
450 * IPython/Extensions/ipy_p4.py: Extension for improved
445 p4 (perforce version control system) experience.
451 p4 (perforce version control system) experience.
446 Adds %p4 magic with p4 command completion and
452 Adds %p4 magic with p4 command completion and
447 automatic -G argument (marshall output as python dict)
453 automatic -G argument (marshall output as python dict)
448
454
449 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
455 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
450
456
451 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
457 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
452 stop marks.
458 stop marks.
453 (ClearingMixin): a simple mixin to easily make a Demo class clear
459 (ClearingMixin): a simple mixin to easily make a Demo class clear
454 the screen in between blocks and have empty marquees. The
460 the screen in between blocks and have empty marquees. The
455 ClearDemo and ClearIPDemo classes that use it are included.
461 ClearDemo and ClearIPDemo classes that use it are included.
456
462
457 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
463 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
458
464
459 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
465 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
460 protect against exceptions at Python shutdown time. Patch
466 protect against exceptions at Python shutdown time. Patch
461 sumbmitted to upstream.
467 sumbmitted to upstream.
462
468
463 2007-02-14 Walter Doerwald <walter@livinglogic.de>
469 2007-02-14 Walter Doerwald <walter@livinglogic.de>
464
470
465 * IPython/Extensions/ibrowse.py: If entering the first object level
471 * IPython/Extensions/ibrowse.py: If entering the first object level
466 (i.e. the object for which the browser has been started) fails,
472 (i.e. the object for which the browser has been started) fails,
467 now the error is raised directly (aborting the browser) instead of
473 now the error is raised directly (aborting the browser) instead of
468 running into an empty levels list later.
474 running into an empty levels list later.
469
475
470 2007-02-03 Walter Doerwald <walter@livinglogic.de>
476 2007-02-03 Walter Doerwald <walter@livinglogic.de>
471
477
472 * IPython/Extensions/ipipe.py: Add an xrepr implementation
478 * IPython/Extensions/ipipe.py: Add an xrepr implementation
473 for the noitem object.
479 for the noitem object.
474
480
475 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
481 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
476
482
477 * IPython/completer.py (Completer.attr_matches): Fix small
483 * IPython/completer.py (Completer.attr_matches): Fix small
478 tab-completion bug with Enthought Traits objects with units.
484 tab-completion bug with Enthought Traits objects with units.
479 Thanks to a bug report by Tom Denniston
485 Thanks to a bug report by Tom Denniston
480 <tom.denniston-AT-alum.dartmouth.org>.
486 <tom.denniston-AT-alum.dartmouth.org>.
481
487
482 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
488 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
483
489
484 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
490 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
485 bug where only .ipy or .py would be completed. Once the first
491 bug where only .ipy or .py would be completed. Once the first
486 argument to %run has been given, all completions are valid because
492 argument to %run has been given, all completions are valid because
487 they are the arguments to the script, which may well be non-python
493 they are the arguments to the script, which may well be non-python
488 filenames.
494 filenames.
489
495
490 * IPython/irunner.py (InteractiveRunner.run_source): major updates
496 * IPython/irunner.py (InteractiveRunner.run_source): major updates
491 to irunner to allow it to correctly support real doctesting of
497 to irunner to allow it to correctly support real doctesting of
492 out-of-process ipython code.
498 out-of-process ipython code.
493
499
494 * IPython/Magic.py (magic_cd): Make the setting of the terminal
500 * IPython/Magic.py (magic_cd): Make the setting of the terminal
495 title an option (-noterm_title) because it completely breaks
501 title an option (-noterm_title) because it completely breaks
496 doctesting.
502 doctesting.
497
503
498 * IPython/demo.py: fix IPythonDemo class that was not actually working.
504 * IPython/demo.py: fix IPythonDemo class that was not actually working.
499
505
500 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
506 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
501
507
502 * IPython/irunner.py (main): fix small bug where extensions were
508 * IPython/irunner.py (main): fix small bug where extensions were
503 not being correctly recognized.
509 not being correctly recognized.
504
510
505 2007-01-23 Walter Doerwald <walter@livinglogic.de>
511 2007-01-23 Walter Doerwald <walter@livinglogic.de>
506
512
507 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
513 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
508 a string containing a single line yields the string itself as the
514 a string containing a single line yields the string itself as the
509 only item.
515 only item.
510
516
511 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
517 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
512 object if it's the same as the one on the last level (This avoids
518 object if it's the same as the one on the last level (This avoids
513 infinite recursion for one line strings).
519 infinite recursion for one line strings).
514
520
515 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
521 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
516
522
517 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
523 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
518 all output streams before printing tracebacks. This ensures that
524 all output streams before printing tracebacks. This ensures that
519 user output doesn't end up interleaved with traceback output.
525 user output doesn't end up interleaved with traceback output.
520
526
521 2007-01-10 Ville Vainio <vivainio@gmail.com>
527 2007-01-10 Ville Vainio <vivainio@gmail.com>
522
528
523 * Extensions/envpersist.py: Turbocharged %env that remembers
529 * Extensions/envpersist.py: Turbocharged %env that remembers
524 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
530 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
525 "%env VISUAL=jed".
531 "%env VISUAL=jed".
526
532
527 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
533 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
528
534
529 * IPython/iplib.py (showtraceback): ensure that we correctly call
535 * IPython/iplib.py (showtraceback): ensure that we correctly call
530 custom handlers in all cases (some with pdb were slipping through,
536 custom handlers in all cases (some with pdb were slipping through,
531 but I'm not exactly sure why).
537 but I'm not exactly sure why).
532
538
533 * IPython/Debugger.py (Tracer.__init__): added new class to
539 * IPython/Debugger.py (Tracer.__init__): added new class to
534 support set_trace-like usage of IPython's enhanced debugger.
540 support set_trace-like usage of IPython's enhanced debugger.
535
541
536 2006-12-24 Ville Vainio <vivainio@gmail.com>
542 2006-12-24 Ville Vainio <vivainio@gmail.com>
537
543
538 * ipmaker.py: more informative message when ipy_user_conf
544 * ipmaker.py: more informative message when ipy_user_conf
539 import fails (suggest running %upgrade).
545 import fails (suggest running %upgrade).
540
546
541 * tools/run_ipy_in_profiler.py: Utility to see where
547 * tools/run_ipy_in_profiler.py: Utility to see where
542 the time during IPython startup is spent.
548 the time during IPython startup is spent.
543
549
544 2006-12-20 Ville Vainio <vivainio@gmail.com>
550 2006-12-20 Ville Vainio <vivainio@gmail.com>
545
551
546 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
552 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
547
553
548 * ipapi.py: Add new ipapi method, expand_alias.
554 * ipapi.py: Add new ipapi method, expand_alias.
549
555
550 * Release.py: Bump up version to 0.7.4.svn
556 * Release.py: Bump up version to 0.7.4.svn
551
557
552 2006-12-17 Ville Vainio <vivainio@gmail.com>
558 2006-12-17 Ville Vainio <vivainio@gmail.com>
553
559
554 * Extensions/jobctrl.py: Fixed &cmd arg arg...
560 * Extensions/jobctrl.py: Fixed &cmd arg arg...
555 to work properly on posix too
561 to work properly on posix too
556
562
557 * Release.py: Update revnum (version is still just 0.7.3).
563 * Release.py: Update revnum (version is still just 0.7.3).
558
564
559 2006-12-15 Ville Vainio <vivainio@gmail.com>
565 2006-12-15 Ville Vainio <vivainio@gmail.com>
560
566
561 * scripts/ipython_win_post_install: create ipython.py in
567 * scripts/ipython_win_post_install: create ipython.py in
562 prefix + "/scripts".
568 prefix + "/scripts".
563
569
564 * Release.py: Update version to 0.7.3.
570 * Release.py: Update version to 0.7.3.
565
571
566 2006-12-14 Ville Vainio <vivainio@gmail.com>
572 2006-12-14 Ville Vainio <vivainio@gmail.com>
567
573
568 * scripts/ipython_win_post_install: Overwrite old shortcuts
574 * scripts/ipython_win_post_install: Overwrite old shortcuts
569 if they already exist
575 if they already exist
570
576
571 * Release.py: release 0.7.3rc2
577 * Release.py: release 0.7.3rc2
572
578
573 2006-12-13 Ville Vainio <vivainio@gmail.com>
579 2006-12-13 Ville Vainio <vivainio@gmail.com>
574
580
575 * Branch and update Release.py for 0.7.3rc1
581 * Branch and update Release.py for 0.7.3rc1
576
582
577 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
583 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
578
584
579 * IPython/Shell.py (IPShellWX): update for current WX naming
585 * IPython/Shell.py (IPShellWX): update for current WX naming
580 conventions, to avoid a deprecation warning with current WX
586 conventions, to avoid a deprecation warning with current WX
581 versions. Thanks to a report by Danny Shevitz.
587 versions. Thanks to a report by Danny Shevitz.
582
588
583 2006-12-12 Ville Vainio <vivainio@gmail.com>
589 2006-12-12 Ville Vainio <vivainio@gmail.com>
584
590
585 * ipmaker.py: apply david cournapeau's patch to make
591 * ipmaker.py: apply david cournapeau's patch to make
586 import_some work properly even when ipythonrc does
592 import_some work properly even when ipythonrc does
587 import_some on empty list (it was an old bug!).
593 import_some on empty list (it was an old bug!).
588
594
589 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
595 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
590 Add deprecation note to ipythonrc and a url to wiki
596 Add deprecation note to ipythonrc and a url to wiki
591 in ipy_user_conf.py
597 in ipy_user_conf.py
592
598
593
599
594 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
600 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
595 as if it was typed on IPython command prompt, i.e.
601 as if it was typed on IPython command prompt, i.e.
596 as IPython script.
602 as IPython script.
597
603
598 * example-magic.py, magic_grepl.py: remove outdated examples
604 * example-magic.py, magic_grepl.py: remove outdated examples
599
605
600 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
606 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
601
607
602 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
608 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
603 is called before any exception has occurred.
609 is called before any exception has occurred.
604
610
605 2006-12-08 Ville Vainio <vivainio@gmail.com>
611 2006-12-08 Ville Vainio <vivainio@gmail.com>
606
612
607 * Extensions/ipy_stock_completers.py: fix cd completer
613 * Extensions/ipy_stock_completers.py: fix cd completer
608 to translate /'s to \'s again.
614 to translate /'s to \'s again.
609
615
610 * completer.py: prevent traceback on file completions w/
616 * completer.py: prevent traceback on file completions w/
611 backslash.
617 backslash.
612
618
613 * Release.py: Update release number to 0.7.3b3 for release
619 * Release.py: Update release number to 0.7.3b3 for release
614
620
615 2006-12-07 Ville Vainio <vivainio@gmail.com>
621 2006-12-07 Ville Vainio <vivainio@gmail.com>
616
622
617 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
623 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
618 while executing external code. Provides more shell-like behaviour
624 while executing external code. Provides more shell-like behaviour
619 and overall better response to ctrl + C / ctrl + break.
625 and overall better response to ctrl + C / ctrl + break.
620
626
621 * tools/make_tarball.py: new script to create tarball straight from svn
627 * tools/make_tarball.py: new script to create tarball straight from svn
622 (setup.py sdist doesn't work on win32).
628 (setup.py sdist doesn't work on win32).
623
629
624 * Extensions/ipy_stock_completers.py: fix cd completer to give up
630 * Extensions/ipy_stock_completers.py: fix cd completer to give up
625 on dirnames with spaces and use the default completer instead.
631 on dirnames with spaces and use the default completer instead.
626
632
627 * Revision.py: Change version to 0.7.3b2 for release.
633 * Revision.py: Change version to 0.7.3b2 for release.
628
634
629 2006-12-05 Ville Vainio <vivainio@gmail.com>
635 2006-12-05 Ville Vainio <vivainio@gmail.com>
630
636
631 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
637 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
632 pydb patch 4 (rm debug printing, py 2.5 checking)
638 pydb patch 4 (rm debug printing, py 2.5 checking)
633
639
634 2006-11-30 Walter Doerwald <walter@livinglogic.de>
640 2006-11-30 Walter Doerwald <walter@livinglogic.de>
635 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
641 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
636 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
642 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
637 "refreshfind" (mapped to "R") does the same but tries to go back to the same
643 "refreshfind" (mapped to "R") does the same but tries to go back to the same
638 object the cursor was on before the refresh. The command "markrange" is
644 object the cursor was on before the refresh. The command "markrange" is
639 mapped to "%" now.
645 mapped to "%" now.
640 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
646 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
641
647
642 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
648 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
643
649
644 * IPython/Magic.py (magic_debug): new %debug magic to activate the
650 * IPython/Magic.py (magic_debug): new %debug magic to activate the
645 interactive debugger on the last traceback, without having to call
651 interactive debugger on the last traceback, without having to call
646 %pdb and rerun your code. Made minor changes in various modules,
652 %pdb and rerun your code. Made minor changes in various modules,
647 should automatically recognize pydb if available.
653 should automatically recognize pydb if available.
648
654
649 2006-11-28 Ville Vainio <vivainio@gmail.com>
655 2006-11-28 Ville Vainio <vivainio@gmail.com>
650
656
651 * completer.py: If the text start with !, show file completions
657 * completer.py: If the text start with !, show file completions
652 properly. This helps when trying to complete command name
658 properly. This helps when trying to complete command name
653 for shell escapes.
659 for shell escapes.
654
660
655 2006-11-27 Ville Vainio <vivainio@gmail.com>
661 2006-11-27 Ville Vainio <vivainio@gmail.com>
656
662
657 * ipy_stock_completers.py: bzr completer submitted by Stefan van
663 * ipy_stock_completers.py: bzr completer submitted by Stefan van
658 der Walt. Clean up svn and hg completers by using a common
664 der Walt. Clean up svn and hg completers by using a common
659 vcs_completer.
665 vcs_completer.
660
666
661 2006-11-26 Ville Vainio <vivainio@gmail.com>
667 2006-11-26 Ville Vainio <vivainio@gmail.com>
662
668
663 * Remove ipconfig and %config; you should use _ip.options structure
669 * Remove ipconfig and %config; you should use _ip.options structure
664 directly instead!
670 directly instead!
665
671
666 * genutils.py: add wrap_deprecated function for deprecating callables
672 * genutils.py: add wrap_deprecated function for deprecating callables
667
673
668 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
674 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
669 _ip.system instead. ipalias is redundant.
675 _ip.system instead. ipalias is redundant.
670
676
671 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
677 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
672 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
678 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
673 explicit.
679 explicit.
674
680
675 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
681 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
676 completer. Try it by entering 'hg ' and pressing tab.
682 completer. Try it by entering 'hg ' and pressing tab.
677
683
678 * macro.py: Give Macro a useful __repr__ method
684 * macro.py: Give Macro a useful __repr__ method
679
685
680 * Magic.py: %whos abbreviates the typename of Macro for brevity.
686 * Magic.py: %whos abbreviates the typename of Macro for brevity.
681
687
682 2006-11-24 Walter Doerwald <walter@livinglogic.de>
688 2006-11-24 Walter Doerwald <walter@livinglogic.de>
683 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
689 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
684 we don't get a duplicate ipipe module, where registration of the xrepr
690 we don't get a duplicate ipipe module, where registration of the xrepr
685 implementation for Text is useless.
691 implementation for Text is useless.
686
692
687 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
693 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
688
694
689 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
695 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
690
696
691 2006-11-24 Ville Vainio <vivainio@gmail.com>
697 2006-11-24 Ville Vainio <vivainio@gmail.com>
692
698
693 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
699 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
694 try to use "cProfile" instead of the slower pure python
700 try to use "cProfile" instead of the slower pure python
695 "profile"
701 "profile"
696
702
697 2006-11-23 Ville Vainio <vivainio@gmail.com>
703 2006-11-23 Ville Vainio <vivainio@gmail.com>
698
704
699 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
705 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
700 Qt+IPython+Designer link in documentation.
706 Qt+IPython+Designer link in documentation.
701
707
702 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
708 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
703 correct Pdb object to %pydb.
709 correct Pdb object to %pydb.
704
710
705
711
706 2006-11-22 Walter Doerwald <walter@livinglogic.de>
712 2006-11-22 Walter Doerwald <walter@livinglogic.de>
707 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
713 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
708 generic xrepr(), otherwise the list implementation would kick in.
714 generic xrepr(), otherwise the list implementation would kick in.
709
715
710 2006-11-21 Ville Vainio <vivainio@gmail.com>
716 2006-11-21 Ville Vainio <vivainio@gmail.com>
711
717
712 * upgrade_dir.py: Now actually overwrites a nonmodified user file
718 * upgrade_dir.py: Now actually overwrites a nonmodified user file
713 with one from UserConfig.
719 with one from UserConfig.
714
720
715 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
721 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
716 it was missing which broke the sh profile.
722 it was missing which broke the sh profile.
717
723
718 * completer.py: file completer now uses explicit '/' instead
724 * completer.py: file completer now uses explicit '/' instead
719 of os.path.join, expansion of 'foo' was broken on win32
725 of os.path.join, expansion of 'foo' was broken on win32
720 if there was one directory with name 'foobar'.
726 if there was one directory with name 'foobar'.
721
727
722 * A bunch of patches from Kirill Smelkov:
728 * A bunch of patches from Kirill Smelkov:
723
729
724 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
730 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
725
731
726 * [patch 7/9] Implement %page -r (page in raw mode) -
732 * [patch 7/9] Implement %page -r (page in raw mode) -
727
733
728 * [patch 5/9] ScientificPython webpage has moved
734 * [patch 5/9] ScientificPython webpage has moved
729
735
730 * [patch 4/9] The manual mentions %ds, should be %dhist
736 * [patch 4/9] The manual mentions %ds, should be %dhist
731
737
732 * [patch 3/9] Kill old bits from %prun doc.
738 * [patch 3/9] Kill old bits from %prun doc.
733
739
734 * [patch 1/9] Fix typos here and there.
740 * [patch 1/9] Fix typos here and there.
735
741
736 2006-11-08 Ville Vainio <vivainio@gmail.com>
742 2006-11-08 Ville Vainio <vivainio@gmail.com>
737
743
738 * completer.py (attr_matches): catch all exceptions raised
744 * completer.py (attr_matches): catch all exceptions raised
739 by eval of expr with dots.
745 by eval of expr with dots.
740
746
741 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
747 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
742
748
743 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
749 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
744 input if it starts with whitespace. This allows you to paste
750 input if it starts with whitespace. This allows you to paste
745 indented input from any editor without manually having to type in
751 indented input from any editor without manually having to type in
746 the 'if 1:', which is convenient when working interactively.
752 the 'if 1:', which is convenient when working interactively.
747 Slightly modifed version of a patch by Bo Peng
753 Slightly modifed version of a patch by Bo Peng
748 <bpeng-AT-rice.edu>.
754 <bpeng-AT-rice.edu>.
749
755
750 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
756 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
751
757
752 * IPython/irunner.py (main): modified irunner so it automatically
758 * IPython/irunner.py (main): modified irunner so it automatically
753 recognizes the right runner to use based on the extension (.py for
759 recognizes the right runner to use based on the extension (.py for
754 python, .ipy for ipython and .sage for sage).
760 python, .ipy for ipython and .sage for sage).
755
761
756 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
762 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
757 visible in ipapi as ip.config(), to programatically control the
763 visible in ipapi as ip.config(), to programatically control the
758 internal rc object. There's an accompanying %config magic for
764 internal rc object. There's an accompanying %config magic for
759 interactive use, which has been enhanced to match the
765 interactive use, which has been enhanced to match the
760 funtionality in ipconfig.
766 funtionality in ipconfig.
761
767
762 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
768 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
763 so it's not just a toggle, it now takes an argument. Add support
769 so it's not just a toggle, it now takes an argument. Add support
764 for a customizable header when making system calls, as the new
770 for a customizable header when making system calls, as the new
765 system_header variable in the ipythonrc file.
771 system_header variable in the ipythonrc file.
766
772
767 2006-11-03 Walter Doerwald <walter@livinglogic.de>
773 2006-11-03 Walter Doerwald <walter@livinglogic.de>
768
774
769 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
775 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
770 generic functions (using Philip J. Eby's simplegeneric package).
776 generic functions (using Philip J. Eby's simplegeneric package).
771 This makes it possible to customize the display of third-party classes
777 This makes it possible to customize the display of third-party classes
772 without having to monkeypatch them. xiter() no longer supports a mode
778 without having to monkeypatch them. xiter() no longer supports a mode
773 argument and the XMode class has been removed. The same functionality can
779 argument and the XMode class has been removed. The same functionality can
774 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
780 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
775 One consequence of the switch to generic functions is that xrepr() and
781 One consequence of the switch to generic functions is that xrepr() and
776 xattrs() implementation must define the default value for the mode
782 xattrs() implementation must define the default value for the mode
777 argument themselves and xattrs() implementations must return real
783 argument themselves and xattrs() implementations must return real
778 descriptors.
784 descriptors.
779
785
780 * IPython/external: This new subpackage will contain all third-party
786 * IPython/external: This new subpackage will contain all third-party
781 packages that are bundled with IPython. (The first one is simplegeneric).
787 packages that are bundled with IPython. (The first one is simplegeneric).
782
788
783 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
789 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
784 directory which as been dropped in r1703.
790 directory which as been dropped in r1703.
785
791
786 * IPython/Extensions/ipipe.py (iless): Fixed.
792 * IPython/Extensions/ipipe.py (iless): Fixed.
787
793
788 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
794 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
789
795
790 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
796 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
791
797
792 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
798 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
793 handling in variable expansion so that shells and magics recognize
799 handling in variable expansion so that shells and magics recognize
794 function local scopes correctly. Bug reported by Brian.
800 function local scopes correctly. Bug reported by Brian.
795
801
796 * scripts/ipython: remove the very first entry in sys.path which
802 * scripts/ipython: remove the very first entry in sys.path which
797 Python auto-inserts for scripts, so that sys.path under IPython is
803 Python auto-inserts for scripts, so that sys.path under IPython is
798 as similar as possible to that under plain Python.
804 as similar as possible to that under plain Python.
799
805
800 * IPython/completer.py (IPCompleter.file_matches): Fix
806 * IPython/completer.py (IPCompleter.file_matches): Fix
801 tab-completion so that quotes are not closed unless the completion
807 tab-completion so that quotes are not closed unless the completion
802 is unambiguous. After a request by Stefan. Minor cleanups in
808 is unambiguous. After a request by Stefan. Minor cleanups in
803 ipy_stock_completers.
809 ipy_stock_completers.
804
810
805 2006-11-02 Ville Vainio <vivainio@gmail.com>
811 2006-11-02 Ville Vainio <vivainio@gmail.com>
806
812
807 * ipy_stock_completers.py: Add %run and %cd completers.
813 * ipy_stock_completers.py: Add %run and %cd completers.
808
814
809 * completer.py: Try running custom completer for both
815 * completer.py: Try running custom completer for both
810 "foo" and "%foo" if the command is just "foo". Ignore case
816 "foo" and "%foo" if the command is just "foo". Ignore case
811 when filtering possible completions.
817 when filtering possible completions.
812
818
813 * UserConfig/ipy_user_conf.py: install stock completers as default
819 * UserConfig/ipy_user_conf.py: install stock completers as default
814
820
815 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
821 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
816 simplified readline history save / restore through a wrapper
822 simplified readline history save / restore through a wrapper
817 function
823 function
818
824
819
825
820 2006-10-31 Ville Vainio <vivainio@gmail.com>
826 2006-10-31 Ville Vainio <vivainio@gmail.com>
821
827
822 * strdispatch.py, completer.py, ipy_stock_completers.py:
828 * strdispatch.py, completer.py, ipy_stock_completers.py:
823 Allow str_key ("command") in completer hooks. Implement
829 Allow str_key ("command") in completer hooks. Implement
824 trivial completer for 'import' (stdlib modules only). Rename
830 trivial completer for 'import' (stdlib modules only). Rename
825 ipy_linux_package_managers.py to ipy_stock_completers.py.
831 ipy_linux_package_managers.py to ipy_stock_completers.py.
826 SVN completer.
832 SVN completer.
827
833
828 * Extensions/ledit.py: %magic line editor for easily and
834 * Extensions/ledit.py: %magic line editor for easily and
829 incrementally manipulating lists of strings. The magic command
835 incrementally manipulating lists of strings. The magic command
830 name is %led.
836 name is %led.
831
837
832 2006-10-30 Ville Vainio <vivainio@gmail.com>
838 2006-10-30 Ville Vainio <vivainio@gmail.com>
833
839
834 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
840 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
835 Bernsteins's patches for pydb integration.
841 Bernsteins's patches for pydb integration.
836 http://bashdb.sourceforge.net/pydb/
842 http://bashdb.sourceforge.net/pydb/
837
843
838 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
844 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
839 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
845 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
840 custom completer hook to allow the users to implement their own
846 custom completer hook to allow the users to implement their own
841 completers. See ipy_linux_package_managers.py for example. The
847 completers. See ipy_linux_package_managers.py for example. The
842 hook name is 'complete_command'.
848 hook name is 'complete_command'.
843
849
844 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
850 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
845
851
846 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
852 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
847 Numeric leftovers.
853 Numeric leftovers.
848
854
849 * ipython.el (py-execute-region): apply Stefan's patch to fix
855 * ipython.el (py-execute-region): apply Stefan's patch to fix
850 garbled results if the python shell hasn't been previously started.
856 garbled results if the python shell hasn't been previously started.
851
857
852 * IPython/genutils.py (arg_split): moved to genutils, since it's a
858 * IPython/genutils.py (arg_split): moved to genutils, since it's a
853 pretty generic function and useful for other things.
859 pretty generic function and useful for other things.
854
860
855 * IPython/OInspect.py (getsource): Add customizable source
861 * IPython/OInspect.py (getsource): Add customizable source
856 extractor. After a request/patch form W. Stein (SAGE).
862 extractor. After a request/patch form W. Stein (SAGE).
857
863
858 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
864 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
859 window size to a more reasonable value from what pexpect does,
865 window size to a more reasonable value from what pexpect does,
860 since their choice causes wrapping bugs with long input lines.
866 since their choice causes wrapping bugs with long input lines.
861
867
862 2006-10-28 Ville Vainio <vivainio@gmail.com>
868 2006-10-28 Ville Vainio <vivainio@gmail.com>
863
869
864 * Magic.py (%run): Save and restore the readline history from
870 * Magic.py (%run): Save and restore the readline history from
865 file around %run commands to prevent side effects from
871 file around %run commands to prevent side effects from
866 %runned programs that might use readline (e.g. pydb).
872 %runned programs that might use readline (e.g. pydb).
867
873
868 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
874 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
869 invoking the pydb enhanced debugger.
875 invoking the pydb enhanced debugger.
870
876
871 2006-10-23 Walter Doerwald <walter@livinglogic.de>
877 2006-10-23 Walter Doerwald <walter@livinglogic.de>
872
878
873 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
879 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
874 call the base class method and propagate the return value to
880 call the base class method and propagate the return value to
875 ifile. This is now done by path itself.
881 ifile. This is now done by path itself.
876
882
877 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
883 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
878
884
879 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
885 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
880 api: set_crash_handler(), to expose the ability to change the
886 api: set_crash_handler(), to expose the ability to change the
881 internal crash handler.
887 internal crash handler.
882
888
883 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
889 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
884 the various parameters of the crash handler so that apps using
890 the various parameters of the crash handler so that apps using
885 IPython as their engine can customize crash handling. Ipmlemented
891 IPython as their engine can customize crash handling. Ipmlemented
886 at the request of SAGE.
892 at the request of SAGE.
887
893
888 2006-10-14 Ville Vainio <vivainio@gmail.com>
894 2006-10-14 Ville Vainio <vivainio@gmail.com>
889
895
890 * Magic.py, ipython.el: applied first "safe" part of Rocky
896 * Magic.py, ipython.el: applied first "safe" part of Rocky
891 Bernstein's patch set for pydb integration.
897 Bernstein's patch set for pydb integration.
892
898
893 * Magic.py (%unalias, %alias): %store'd aliases can now be
899 * Magic.py (%unalias, %alias): %store'd aliases can now be
894 removed with '%unalias'. %alias w/o args now shows most
900 removed with '%unalias'. %alias w/o args now shows most
895 interesting (stored / manually defined) aliases last
901 interesting (stored / manually defined) aliases last
896 where they catch the eye w/o scrolling.
902 where they catch the eye w/o scrolling.
897
903
898 * Magic.py (%rehashx), ext_rehashdir.py: files with
904 * Magic.py (%rehashx), ext_rehashdir.py: files with
899 'py' extension are always considered executable, even
905 'py' extension are always considered executable, even
900 when not in PATHEXT environment variable.
906 when not in PATHEXT environment variable.
901
907
902 2006-10-12 Ville Vainio <vivainio@gmail.com>
908 2006-10-12 Ville Vainio <vivainio@gmail.com>
903
909
904 * jobctrl.py: Add new "jobctrl" extension for spawning background
910 * jobctrl.py: Add new "jobctrl" extension for spawning background
905 processes with "&find /". 'import jobctrl' to try it out. Requires
911 processes with "&find /". 'import jobctrl' to try it out. Requires
906 'subprocess' module, standard in python 2.4+.
912 'subprocess' module, standard in python 2.4+.
907
913
908 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
914 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
909 so if foo -> bar and bar -> baz, then foo -> baz.
915 so if foo -> bar and bar -> baz, then foo -> baz.
910
916
911 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
917 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
912
918
913 * IPython/Magic.py (Magic.parse_options): add a new posix option
919 * IPython/Magic.py (Magic.parse_options): add a new posix option
914 to allow parsing of input args in magics that doesn't strip quotes
920 to allow parsing of input args in magics that doesn't strip quotes
915 (if posix=False). This also closes %timeit bug reported by
921 (if posix=False). This also closes %timeit bug reported by
916 Stefan.
922 Stefan.
917
923
918 2006-10-03 Ville Vainio <vivainio@gmail.com>
924 2006-10-03 Ville Vainio <vivainio@gmail.com>
919
925
920 * iplib.py (raw_input, interact): Return ValueError catching for
926 * iplib.py (raw_input, interact): Return ValueError catching for
921 raw_input. Fixes infinite loop for sys.stdin.close() or
927 raw_input. Fixes infinite loop for sys.stdin.close() or
922 sys.stdout.close().
928 sys.stdout.close().
923
929
924 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
930 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
925
931
926 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
932 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
927 to help in handling doctests. irunner is now pretty useful for
933 to help in handling doctests. irunner is now pretty useful for
928 running standalone scripts and simulate a full interactive session
934 running standalone scripts and simulate a full interactive session
929 in a format that can be then pasted as a doctest.
935 in a format that can be then pasted as a doctest.
930
936
931 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
937 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
932 on top of the default (useless) ones. This also fixes the nasty
938 on top of the default (useless) ones. This also fixes the nasty
933 way in which 2.5's Quitter() exits (reverted [1785]).
939 way in which 2.5's Quitter() exits (reverted [1785]).
934
940
935 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
941 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
936 2.5.
942 2.5.
937
943
938 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
944 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
939 color scheme is updated as well when color scheme is changed
945 color scheme is updated as well when color scheme is changed
940 interactively.
946 interactively.
941
947
942 2006-09-27 Ville Vainio <vivainio@gmail.com>
948 2006-09-27 Ville Vainio <vivainio@gmail.com>
943
949
944 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
950 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
945 infinite loop and just exit. It's a hack, but will do for a while.
951 infinite loop and just exit. It's a hack, but will do for a while.
946
952
947 2006-08-25 Walter Doerwald <walter@livinglogic.de>
953 2006-08-25 Walter Doerwald <walter@livinglogic.de>
948
954
949 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
955 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
950 the constructor, this makes it possible to get a list of only directories
956 the constructor, this makes it possible to get a list of only directories
951 or only files.
957 or only files.
952
958
953 2006-08-12 Ville Vainio <vivainio@gmail.com>
959 2006-08-12 Ville Vainio <vivainio@gmail.com>
954
960
955 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
961 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
956 they broke unittest
962 they broke unittest
957
963
958 2006-08-11 Ville Vainio <vivainio@gmail.com>
964 2006-08-11 Ville Vainio <vivainio@gmail.com>
959
965
960 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
966 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
961 by resolving issue properly, i.e. by inheriting FakeModule
967 by resolving issue properly, i.e. by inheriting FakeModule
962 from types.ModuleType. Pickling ipython interactive data
968 from types.ModuleType. Pickling ipython interactive data
963 should still work as usual (testing appreciated).
969 should still work as usual (testing appreciated).
964
970
965 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
971 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
966
972
967 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
973 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
968 running under python 2.3 with code from 2.4 to fix a bug with
974 running under python 2.3 with code from 2.4 to fix a bug with
969 help(). Reported by the Debian maintainers, Norbert Tretkowski
975 help(). Reported by the Debian maintainers, Norbert Tretkowski
970 <norbert-AT-tretkowski.de> and Alexandre Fayolle
976 <norbert-AT-tretkowski.de> and Alexandre Fayolle
971 <afayolle-AT-debian.org>.
977 <afayolle-AT-debian.org>.
972
978
973 2006-08-04 Walter Doerwald <walter@livinglogic.de>
979 2006-08-04 Walter Doerwald <walter@livinglogic.de>
974
980
975 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
981 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
976 (which was displaying "quit" twice).
982 (which was displaying "quit" twice).
977
983
978 2006-07-28 Walter Doerwald <walter@livinglogic.de>
984 2006-07-28 Walter Doerwald <walter@livinglogic.de>
979
985
980 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
986 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
981 the mode argument).
987 the mode argument).
982
988
983 2006-07-27 Walter Doerwald <walter@livinglogic.de>
989 2006-07-27 Walter Doerwald <walter@livinglogic.de>
984
990
985 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
991 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
986 not running under IPython.
992 not running under IPython.
987
993
988 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
994 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
989 and make it iterable (iterating over the attribute itself). Add two new
995 and make it iterable (iterating over the attribute itself). Add two new
990 magic strings for __xattrs__(): If the string starts with "-", the attribute
996 magic strings for __xattrs__(): If the string starts with "-", the attribute
991 will not be displayed in ibrowse's detail view (but it can still be
997 will not be displayed in ibrowse's detail view (but it can still be
992 iterated over). This makes it possible to add attributes that are large
998 iterated over). This makes it possible to add attributes that are large
993 lists or generator methods to the detail view. Replace magic attribute names
999 lists or generator methods to the detail view. Replace magic attribute names
994 and _attrname() and _getattr() with "descriptors": For each type of magic
1000 and _attrname() and _getattr() with "descriptors": For each type of magic
995 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1001 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
996 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1002 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
997 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1003 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
998 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1004 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
999 are still supported.
1005 are still supported.
1000
1006
1001 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1007 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1002 fails in ibrowse.fetch(), the exception object is added as the last item
1008 fails in ibrowse.fetch(), the exception object is added as the last item
1003 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1009 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1004 a generator throws an exception midway through execution.
1010 a generator throws an exception midway through execution.
1005
1011
1006 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1012 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1007 encoding into methods.
1013 encoding into methods.
1008
1014
1009 2006-07-26 Ville Vainio <vivainio@gmail.com>
1015 2006-07-26 Ville Vainio <vivainio@gmail.com>
1010
1016
1011 * iplib.py: history now stores multiline input as single
1017 * iplib.py: history now stores multiline input as single
1012 history entries. Patch by Jorgen Cederlof.
1018 history entries. Patch by Jorgen Cederlof.
1013
1019
1014 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1020 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1015
1021
1016 * IPython/Extensions/ibrowse.py: Make cursor visible over
1022 * IPython/Extensions/ibrowse.py: Make cursor visible over
1017 non existing attributes.
1023 non existing attributes.
1018
1024
1019 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1025 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1020
1026
1021 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1027 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1022 error output of the running command doesn't mess up the screen.
1028 error output of the running command doesn't mess up the screen.
1023
1029
1024 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1030 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1025
1031
1026 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1032 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1027 argument. This sorts the items themselves.
1033 argument. This sorts the items themselves.
1028
1034
1029 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1035 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1030
1036
1031 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1037 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1032 Compile expression strings into code objects. This should speed
1038 Compile expression strings into code objects. This should speed
1033 up ifilter and friends somewhat.
1039 up ifilter and friends somewhat.
1034
1040
1035 2006-07-08 Ville Vainio <vivainio@gmail.com>
1041 2006-07-08 Ville Vainio <vivainio@gmail.com>
1036
1042
1037 * Magic.py: %cpaste now strips > from the beginning of lines
1043 * Magic.py: %cpaste now strips > from the beginning of lines
1038 to ease pasting quoted code from emails. Contributed by
1044 to ease pasting quoted code from emails. Contributed by
1039 Stefan van der Walt.
1045 Stefan van der Walt.
1040
1046
1041 2006-06-29 Ville Vainio <vivainio@gmail.com>
1047 2006-06-29 Ville Vainio <vivainio@gmail.com>
1042
1048
1043 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1049 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1044 mode, patch contributed by Darren Dale. NEEDS TESTING!
1050 mode, patch contributed by Darren Dale. NEEDS TESTING!
1045
1051
1046 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1052 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1047
1053
1048 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1054 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1049 a blue background. Fix fetching new display rows when the browser
1055 a blue background. Fix fetching new display rows when the browser
1050 scrolls more than a screenful (e.g. by using the goto command).
1056 scrolls more than a screenful (e.g. by using the goto command).
1051
1057
1052 2006-06-27 Ville Vainio <vivainio@gmail.com>
1058 2006-06-27 Ville Vainio <vivainio@gmail.com>
1053
1059
1054 * Magic.py (_inspect, _ofind) Apply David Huard's
1060 * Magic.py (_inspect, _ofind) Apply David Huard's
1055 patch for displaying the correct docstring for 'property'
1061 patch for displaying the correct docstring for 'property'
1056 attributes.
1062 attributes.
1057
1063
1058 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1064 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1059
1065
1060 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1066 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1061 commands into the methods implementing them.
1067 commands into the methods implementing them.
1062
1068
1063 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1069 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1064
1070
1065 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1071 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1066 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1072 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1067 autoindent support was authored by Jin Liu.
1073 autoindent support was authored by Jin Liu.
1068
1074
1069 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1075 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1070
1076
1071 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1077 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1072 for keymaps with a custom class that simplifies handling.
1078 for keymaps with a custom class that simplifies handling.
1073
1079
1074 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1080 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1075
1081
1076 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1082 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1077 resizing. This requires Python 2.5 to work.
1083 resizing. This requires Python 2.5 to work.
1078
1084
1079 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1085 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1080
1086
1081 * IPython/Extensions/ibrowse.py: Add two new commands to
1087 * IPython/Extensions/ibrowse.py: Add two new commands to
1082 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1088 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1083 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1089 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1084 attributes again. Remapped the help command to "?". Display
1090 attributes again. Remapped the help command to "?". Display
1085 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1091 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1086 as keys for the "home" and "end" commands. Add three new commands
1092 as keys for the "home" and "end" commands. Add three new commands
1087 to the input mode for "find" and friends: "delend" (CTRL-K)
1093 to the input mode for "find" and friends: "delend" (CTRL-K)
1088 deletes to the end of line. "incsearchup" searches upwards in the
1094 deletes to the end of line. "incsearchup" searches upwards in the
1089 command history for an input that starts with the text before the cursor.
1095 command history for an input that starts with the text before the cursor.
1090 "incsearchdown" does the same downwards. Removed a bogus mapping of
1096 "incsearchdown" does the same downwards. Removed a bogus mapping of
1091 the x key to "delete".
1097 the x key to "delete".
1092
1098
1093 2006-06-15 Ville Vainio <vivainio@gmail.com>
1099 2006-06-15 Ville Vainio <vivainio@gmail.com>
1094
1100
1095 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1101 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1096 used to create prompts dynamically, instead of the "old" way of
1102 used to create prompts dynamically, instead of the "old" way of
1097 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1103 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1098 way still works (it's invoked by the default hook), of course.
1104 way still works (it's invoked by the default hook), of course.
1099
1105
1100 * Prompts.py: added generate_output_prompt hook for altering output
1106 * Prompts.py: added generate_output_prompt hook for altering output
1101 prompt
1107 prompt
1102
1108
1103 * Release.py: Changed version string to 0.7.3.svn.
1109 * Release.py: Changed version string to 0.7.3.svn.
1104
1110
1105 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1111 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1106
1112
1107 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1113 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1108 the call to fetch() always tries to fetch enough data for at least one
1114 the call to fetch() always tries to fetch enough data for at least one
1109 full screen. This makes it possible to simply call moveto(0,0,True) in
1115 full screen. This makes it possible to simply call moveto(0,0,True) in
1110 the constructor. Fix typos and removed the obsolete goto attribute.
1116 the constructor. Fix typos and removed the obsolete goto attribute.
1111
1117
1112 2006-06-12 Ville Vainio <vivainio@gmail.com>
1118 2006-06-12 Ville Vainio <vivainio@gmail.com>
1113
1119
1114 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1120 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1115 allowing $variable interpolation within multiline statements,
1121 allowing $variable interpolation within multiline statements,
1116 though so far only with "sh" profile for a testing period.
1122 though so far only with "sh" profile for a testing period.
1117 The patch also enables splitting long commands with \ but it
1123 The patch also enables splitting long commands with \ but it
1118 doesn't work properly yet.
1124 doesn't work properly yet.
1119
1125
1120 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1126 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1121
1127
1122 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1128 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1123 input history and the position of the cursor in the input history for
1129 input history and the position of the cursor in the input history for
1124 the find, findbackwards and goto command.
1130 the find, findbackwards and goto command.
1125
1131
1126 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1132 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1127
1133
1128 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1134 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1129 implements the basic functionality of browser commands that require
1135 implements the basic functionality of browser commands that require
1130 input. Reimplement the goto, find and findbackwards commands as
1136 input. Reimplement the goto, find and findbackwards commands as
1131 subclasses of _CommandInput. Add an input history and keymaps to those
1137 subclasses of _CommandInput. Add an input history and keymaps to those
1132 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1138 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1133 execute commands.
1139 execute commands.
1134
1140
1135 2006-06-07 Ville Vainio <vivainio@gmail.com>
1141 2006-06-07 Ville Vainio <vivainio@gmail.com>
1136
1142
1137 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1143 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1138 running the batch files instead of leaving the session open.
1144 running the batch files instead of leaving the session open.
1139
1145
1140 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1146 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1141
1147
1142 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1148 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1143 the original fix was incomplete. Patch submitted by W. Maier.
1149 the original fix was incomplete. Patch submitted by W. Maier.
1144
1150
1145 2006-06-07 Ville Vainio <vivainio@gmail.com>
1151 2006-06-07 Ville Vainio <vivainio@gmail.com>
1146
1152
1147 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1153 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1148 Confirmation prompts can be supressed by 'quiet' option.
1154 Confirmation prompts can be supressed by 'quiet' option.
1149 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1155 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1150
1156
1151 2006-06-06 *** Released version 0.7.2
1157 2006-06-06 *** Released version 0.7.2
1152
1158
1153 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1159 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1154
1160
1155 * IPython/Release.py (version): Made 0.7.2 final for release.
1161 * IPython/Release.py (version): Made 0.7.2 final for release.
1156 Repo tagged and release cut.
1162 Repo tagged and release cut.
1157
1163
1158 2006-06-05 Ville Vainio <vivainio@gmail.com>
1164 2006-06-05 Ville Vainio <vivainio@gmail.com>
1159
1165
1160 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1166 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1161 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1167 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1162
1168
1163 * upgrade_dir.py: try import 'path' module a bit harder
1169 * upgrade_dir.py: try import 'path' module a bit harder
1164 (for %upgrade)
1170 (for %upgrade)
1165
1171
1166 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1172 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1167
1173
1168 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1174 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1169 instead of looping 20 times.
1175 instead of looping 20 times.
1170
1176
1171 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1177 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1172 correctly at initialization time. Bug reported by Krishna Mohan
1178 correctly at initialization time. Bug reported by Krishna Mohan
1173 Gundu <gkmohan-AT-gmail.com> on the user list.
1179 Gundu <gkmohan-AT-gmail.com> on the user list.
1174
1180
1175 * IPython/Release.py (version): Mark 0.7.2 version to start
1181 * IPython/Release.py (version): Mark 0.7.2 version to start
1176 testing for release on 06/06.
1182 testing for release on 06/06.
1177
1183
1178 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1184 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1179
1185
1180 * scripts/irunner: thin script interface so users don't have to
1186 * scripts/irunner: thin script interface so users don't have to
1181 find the module and call it as an executable, since modules rarely
1187 find the module and call it as an executable, since modules rarely
1182 live in people's PATH.
1188 live in people's PATH.
1183
1189
1184 * IPython/irunner.py (InteractiveRunner.__init__): added
1190 * IPython/irunner.py (InteractiveRunner.__init__): added
1185 delaybeforesend attribute to control delays with newer versions of
1191 delaybeforesend attribute to control delays with newer versions of
1186 pexpect. Thanks to detailed help from pexpect's author, Noah
1192 pexpect. Thanks to detailed help from pexpect's author, Noah
1187 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1193 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1188 correctly (it works in NoColor mode).
1194 correctly (it works in NoColor mode).
1189
1195
1190 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1196 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1191 SAGE list, from improper log() calls.
1197 SAGE list, from improper log() calls.
1192
1198
1193 2006-05-31 Ville Vainio <vivainio@gmail.com>
1199 2006-05-31 Ville Vainio <vivainio@gmail.com>
1194
1200
1195 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1201 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1196 with args in parens to work correctly with dirs that have spaces.
1202 with args in parens to work correctly with dirs that have spaces.
1197
1203
1198 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1204 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1199
1205
1200 * IPython/Logger.py (Logger.logstart): add option to log raw input
1206 * IPython/Logger.py (Logger.logstart): add option to log raw input
1201 instead of the processed one. A -r flag was added to the
1207 instead of the processed one. A -r flag was added to the
1202 %logstart magic used for controlling logging.
1208 %logstart magic used for controlling logging.
1203
1209
1204 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1210 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1205
1211
1206 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1212 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1207 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1213 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1208 recognize the option. After a bug report by Will Maier. This
1214 recognize the option. After a bug report by Will Maier. This
1209 closes #64 (will do it after confirmation from W. Maier).
1215 closes #64 (will do it after confirmation from W. Maier).
1210
1216
1211 * IPython/irunner.py: New module to run scripts as if manually
1217 * IPython/irunner.py: New module to run scripts as if manually
1212 typed into an interactive environment, based on pexpect. After a
1218 typed into an interactive environment, based on pexpect. After a
1213 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1219 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1214 ipython-user list. Simple unittests in the tests/ directory.
1220 ipython-user list. Simple unittests in the tests/ directory.
1215
1221
1216 * tools/release: add Will Maier, OpenBSD port maintainer, to
1222 * tools/release: add Will Maier, OpenBSD port maintainer, to
1217 recepients list. We are now officially part of the OpenBSD ports:
1223 recepients list. We are now officially part of the OpenBSD ports:
1218 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1224 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1219 work.
1225 work.
1220
1226
1221 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1227 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1222
1228
1223 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1229 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1224 so that it doesn't break tkinter apps.
1230 so that it doesn't break tkinter apps.
1225
1231
1226 * IPython/iplib.py (_prefilter): fix bug where aliases would
1232 * IPython/iplib.py (_prefilter): fix bug where aliases would
1227 shadow variables when autocall was fully off. Reported by SAGE
1233 shadow variables when autocall was fully off. Reported by SAGE
1228 author William Stein.
1234 author William Stein.
1229
1235
1230 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1236 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1231 at what detail level strings are computed when foo? is requested.
1237 at what detail level strings are computed when foo? is requested.
1232 This allows users to ask for example that the string form of an
1238 This allows users to ask for example that the string form of an
1233 object is only computed when foo?? is called, or even never, by
1239 object is only computed when foo?? is called, or even never, by
1234 setting the object_info_string_level >= 2 in the configuration
1240 setting the object_info_string_level >= 2 in the configuration
1235 file. This new option has been added and documented. After a
1241 file. This new option has been added and documented. After a
1236 request by SAGE to be able to control the printing of very large
1242 request by SAGE to be able to control the printing of very large
1237 objects more easily.
1243 objects more easily.
1238
1244
1239 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1245 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1240
1246
1241 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1247 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1242 from sys.argv, to be 100% consistent with how Python itself works
1248 from sys.argv, to be 100% consistent with how Python itself works
1243 (as seen for example with python -i file.py). After a bug report
1249 (as seen for example with python -i file.py). After a bug report
1244 by Jeffrey Collins.
1250 by Jeffrey Collins.
1245
1251
1246 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1252 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1247 nasty bug which was preventing custom namespaces with -pylab,
1253 nasty bug which was preventing custom namespaces with -pylab,
1248 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1254 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1249 compatibility (long gone from mpl).
1255 compatibility (long gone from mpl).
1250
1256
1251 * IPython/ipapi.py (make_session): name change: create->make. We
1257 * IPython/ipapi.py (make_session): name change: create->make. We
1252 use make in other places (ipmaker,...), it's shorter and easier to
1258 use make in other places (ipmaker,...), it's shorter and easier to
1253 type and say, etc. I'm trying to clean things before 0.7.2 so
1259 type and say, etc. I'm trying to clean things before 0.7.2 so
1254 that I can keep things stable wrt to ipapi in the chainsaw branch.
1260 that I can keep things stable wrt to ipapi in the chainsaw branch.
1255
1261
1256 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1262 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1257 python-mode recognizes our debugger mode. Add support for
1263 python-mode recognizes our debugger mode. Add support for
1258 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1264 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1259 <m.liu.jin-AT-gmail.com> originally written by
1265 <m.liu.jin-AT-gmail.com> originally written by
1260 doxgen-AT-newsmth.net (with minor modifications for xemacs
1266 doxgen-AT-newsmth.net (with minor modifications for xemacs
1261 compatibility)
1267 compatibility)
1262
1268
1263 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1269 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1264 tracebacks when walking the stack so that the stack tracking system
1270 tracebacks when walking the stack so that the stack tracking system
1265 in emacs' python-mode can identify the frames correctly.
1271 in emacs' python-mode can identify the frames correctly.
1266
1272
1267 * IPython/ipmaker.py (make_IPython): make the internal (and
1273 * IPython/ipmaker.py (make_IPython): make the internal (and
1268 default config) autoedit_syntax value false by default. Too many
1274 default config) autoedit_syntax value false by default. Too many
1269 users have complained to me (both on and off-list) about problems
1275 users have complained to me (both on and off-list) about problems
1270 with this option being on by default, so I'm making it default to
1276 with this option being on by default, so I'm making it default to
1271 off. It can still be enabled by anyone via the usual mechanisms.
1277 off. It can still be enabled by anyone via the usual mechanisms.
1272
1278
1273 * IPython/completer.py (Completer.attr_matches): add support for
1279 * IPython/completer.py (Completer.attr_matches): add support for
1274 PyCrust-style _getAttributeNames magic method. Patch contributed
1280 PyCrust-style _getAttributeNames magic method. Patch contributed
1275 by <mscott-AT-goldenspud.com>. Closes #50.
1281 by <mscott-AT-goldenspud.com>. Closes #50.
1276
1282
1277 * IPython/iplib.py (InteractiveShell.__init__): remove the
1283 * IPython/iplib.py (InteractiveShell.__init__): remove the
1278 deletion of exit/quit from __builtin__, which can break
1284 deletion of exit/quit from __builtin__, which can break
1279 third-party tools like the Zope debugging console. The
1285 third-party tools like the Zope debugging console. The
1280 %exit/%quit magics remain. In general, it's probably a good idea
1286 %exit/%quit magics remain. In general, it's probably a good idea
1281 not to delete anything from __builtin__, since we never know what
1287 not to delete anything from __builtin__, since we never know what
1282 that will break. In any case, python now (for 2.5) will support
1288 that will break. In any case, python now (for 2.5) will support
1283 'real' exit/quit, so this issue is moot. Closes #55.
1289 'real' exit/quit, so this issue is moot. Closes #55.
1284
1290
1285 * IPython/genutils.py (with_obj): rename the 'with' function to
1291 * IPython/genutils.py (with_obj): rename the 'with' function to
1286 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1292 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1287 becomes a language keyword. Closes #53.
1293 becomes a language keyword. Closes #53.
1288
1294
1289 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1295 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1290 __file__ attribute to this so it fools more things into thinking
1296 __file__ attribute to this so it fools more things into thinking
1291 it is a real module. Closes #59.
1297 it is a real module. Closes #59.
1292
1298
1293 * IPython/Magic.py (magic_edit): add -n option to open the editor
1299 * IPython/Magic.py (magic_edit): add -n option to open the editor
1294 at a specific line number. After a patch by Stefan van der Walt.
1300 at a specific line number. After a patch by Stefan van der Walt.
1295
1301
1296 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1302 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1297
1303
1298 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1304 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1299 reason the file could not be opened. After automatic crash
1305 reason the file could not be opened. After automatic crash
1300 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1306 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1301 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1307 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1302 (_should_recompile): Don't fire editor if using %bg, since there
1308 (_should_recompile): Don't fire editor if using %bg, since there
1303 is no file in the first place. From the same report as above.
1309 is no file in the first place. From the same report as above.
1304 (raw_input): protect against faulty third-party prefilters. After
1310 (raw_input): protect against faulty third-party prefilters. After
1305 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1311 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1306 while running under SAGE.
1312 while running under SAGE.
1307
1313
1308 2006-05-23 Ville Vainio <vivainio@gmail.com>
1314 2006-05-23 Ville Vainio <vivainio@gmail.com>
1309
1315
1310 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1316 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1311 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1317 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1312 now returns None (again), unless dummy is specifically allowed by
1318 now returns None (again), unless dummy is specifically allowed by
1313 ipapi.get(allow_dummy=True).
1319 ipapi.get(allow_dummy=True).
1314
1320
1315 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1321 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1316
1322
1317 * IPython: remove all 2.2-compatibility objects and hacks from
1323 * IPython: remove all 2.2-compatibility objects and hacks from
1318 everywhere, since we only support 2.3 at this point. Docs
1324 everywhere, since we only support 2.3 at this point. Docs
1319 updated.
1325 updated.
1320
1326
1321 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1327 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1322 Anything requiring extra validation can be turned into a Python
1328 Anything requiring extra validation can be turned into a Python
1323 property in the future. I used a property for the db one b/c
1329 property in the future. I used a property for the db one b/c
1324 there was a nasty circularity problem with the initialization
1330 there was a nasty circularity problem with the initialization
1325 order, which right now I don't have time to clean up.
1331 order, which right now I don't have time to clean up.
1326
1332
1327 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1333 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1328 another locking bug reported by Jorgen. I'm not 100% sure though,
1334 another locking bug reported by Jorgen. I'm not 100% sure though,
1329 so more testing is needed...
1335 so more testing is needed...
1330
1336
1331 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1337 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1332
1338
1333 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1339 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1334 local variables from any routine in user code (typically executed
1340 local variables from any routine in user code (typically executed
1335 with %run) directly into the interactive namespace. Very useful
1341 with %run) directly into the interactive namespace. Very useful
1336 when doing complex debugging.
1342 when doing complex debugging.
1337 (IPythonNotRunning): Changed the default None object to a dummy
1343 (IPythonNotRunning): Changed the default None object to a dummy
1338 whose attributes can be queried as well as called without
1344 whose attributes can be queried as well as called without
1339 exploding, to ease writing code which works transparently both in
1345 exploding, to ease writing code which works transparently both in
1340 and out of ipython and uses some of this API.
1346 and out of ipython and uses some of this API.
1341
1347
1342 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1348 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1343
1349
1344 * IPython/hooks.py (result_display): Fix the fact that our display
1350 * IPython/hooks.py (result_display): Fix the fact that our display
1345 hook was using str() instead of repr(), as the default python
1351 hook was using str() instead of repr(), as the default python
1346 console does. This had gone unnoticed b/c it only happened if
1352 console does. This had gone unnoticed b/c it only happened if
1347 %Pprint was off, but the inconsistency was there.
1353 %Pprint was off, but the inconsistency was there.
1348
1354
1349 2006-05-15 Ville Vainio <vivainio@gmail.com>
1355 2006-05-15 Ville Vainio <vivainio@gmail.com>
1350
1356
1351 * Oinspect.py: Only show docstring for nonexisting/binary files
1357 * Oinspect.py: Only show docstring for nonexisting/binary files
1352 when doing object??, closing ticket #62
1358 when doing object??, closing ticket #62
1353
1359
1354 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1360 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1355
1361
1356 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1362 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1357 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1363 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1358 was being released in a routine which hadn't checked if it had
1364 was being released in a routine which hadn't checked if it had
1359 been the one to acquire it.
1365 been the one to acquire it.
1360
1366
1361 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1367 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1362
1368
1363 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1369 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1364
1370
1365 2006-04-11 Ville Vainio <vivainio@gmail.com>
1371 2006-04-11 Ville Vainio <vivainio@gmail.com>
1366
1372
1367 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1373 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1368 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1374 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1369 prefilters, allowing stuff like magics and aliases in the file.
1375 prefilters, allowing stuff like magics and aliases in the file.
1370
1376
1371 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1377 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1372 added. Supported now are "%clear in" and "%clear out" (clear input and
1378 added. Supported now are "%clear in" and "%clear out" (clear input and
1373 output history, respectively). Also fixed CachedOutput.flush to
1379 output history, respectively). Also fixed CachedOutput.flush to
1374 properly flush the output cache.
1380 properly flush the output cache.
1375
1381
1376 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1382 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1377 half-success (and fail explicitly).
1383 half-success (and fail explicitly).
1378
1384
1379 2006-03-28 Ville Vainio <vivainio@gmail.com>
1385 2006-03-28 Ville Vainio <vivainio@gmail.com>
1380
1386
1381 * iplib.py: Fix quoting of aliases so that only argless ones
1387 * iplib.py: Fix quoting of aliases so that only argless ones
1382 are quoted
1388 are quoted
1383
1389
1384 2006-03-28 Ville Vainio <vivainio@gmail.com>
1390 2006-03-28 Ville Vainio <vivainio@gmail.com>
1385
1391
1386 * iplib.py: Quote aliases with spaces in the name.
1392 * iplib.py: Quote aliases with spaces in the name.
1387 "c:\program files\blah\bin" is now legal alias target.
1393 "c:\program files\blah\bin" is now legal alias target.
1388
1394
1389 * ext_rehashdir.py: Space no longer allowed as arg
1395 * ext_rehashdir.py: Space no longer allowed as arg
1390 separator, since space is legal in path names.
1396 separator, since space is legal in path names.
1391
1397
1392 2006-03-16 Ville Vainio <vivainio@gmail.com>
1398 2006-03-16 Ville Vainio <vivainio@gmail.com>
1393
1399
1394 * upgrade_dir.py: Take path.py from Extensions, correcting
1400 * upgrade_dir.py: Take path.py from Extensions, correcting
1395 %upgrade magic
1401 %upgrade magic
1396
1402
1397 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1403 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1398
1404
1399 * hooks.py: Only enclose editor binary in quotes if legal and
1405 * hooks.py: Only enclose editor binary in quotes if legal and
1400 necessary (space in the name, and is an existing file). Fixes a bug
1406 necessary (space in the name, and is an existing file). Fixes a bug
1401 reported by Zachary Pincus.
1407 reported by Zachary Pincus.
1402
1408
1403 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1409 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1404
1410
1405 * Manual: thanks to a tip on proper color handling for Emacs, by
1411 * Manual: thanks to a tip on proper color handling for Emacs, by
1406 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1412 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1407
1413
1408 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1414 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1409 by applying the provided patch. Thanks to Liu Jin
1415 by applying the provided patch. Thanks to Liu Jin
1410 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1416 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1411 XEmacs/Linux, I'm trusting the submitter that it actually helps
1417 XEmacs/Linux, I'm trusting the submitter that it actually helps
1412 under win32/GNU Emacs. Will revisit if any problems are reported.
1418 under win32/GNU Emacs. Will revisit if any problems are reported.
1413
1419
1414 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1420 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1415
1421
1416 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1422 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1417 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1423 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1418
1424
1419 2006-03-12 Ville Vainio <vivainio@gmail.com>
1425 2006-03-12 Ville Vainio <vivainio@gmail.com>
1420
1426
1421 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1427 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1422 Torsten Marek.
1428 Torsten Marek.
1423
1429
1424 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1430 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1425
1431
1426 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1432 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1427 line ranges works again.
1433 line ranges works again.
1428
1434
1429 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1435 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1430
1436
1431 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1437 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1432 and friends, after a discussion with Zach Pincus on ipython-user.
1438 and friends, after a discussion with Zach Pincus on ipython-user.
1433 I'm not 100% sure, but after thinking about it quite a bit, it may
1439 I'm not 100% sure, but after thinking about it quite a bit, it may
1434 be OK. Testing with the multithreaded shells didn't reveal any
1440 be OK. Testing with the multithreaded shells didn't reveal any
1435 problems, but let's keep an eye out.
1441 problems, but let's keep an eye out.
1436
1442
1437 In the process, I fixed a few things which were calling
1443 In the process, I fixed a few things which were calling
1438 self.InteractiveTB() directly (like safe_execfile), which is a
1444 self.InteractiveTB() directly (like safe_execfile), which is a
1439 mistake: ALL exception reporting should be done by calling
1445 mistake: ALL exception reporting should be done by calling
1440 self.showtraceback(), which handles state and tab-completion and
1446 self.showtraceback(), which handles state and tab-completion and
1441 more.
1447 more.
1442
1448
1443 2006-03-01 Ville Vainio <vivainio@gmail.com>
1449 2006-03-01 Ville Vainio <vivainio@gmail.com>
1444
1450
1445 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1451 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1446 To use, do "from ipipe import *".
1452 To use, do "from ipipe import *".
1447
1453
1448 2006-02-24 Ville Vainio <vivainio@gmail.com>
1454 2006-02-24 Ville Vainio <vivainio@gmail.com>
1449
1455
1450 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1456 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1451 "cleanly" and safely than the older upgrade mechanism.
1457 "cleanly" and safely than the older upgrade mechanism.
1452
1458
1453 2006-02-21 Ville Vainio <vivainio@gmail.com>
1459 2006-02-21 Ville Vainio <vivainio@gmail.com>
1454
1460
1455 * Magic.py: %save works again.
1461 * Magic.py: %save works again.
1456
1462
1457 2006-02-15 Ville Vainio <vivainio@gmail.com>
1463 2006-02-15 Ville Vainio <vivainio@gmail.com>
1458
1464
1459 * Magic.py: %Pprint works again
1465 * Magic.py: %Pprint works again
1460
1466
1461 * Extensions/ipy_sane_defaults.py: Provide everything provided
1467 * Extensions/ipy_sane_defaults.py: Provide everything provided
1462 in default ipythonrc, to make it possible to have a completely empty
1468 in default ipythonrc, to make it possible to have a completely empty
1463 ipythonrc (and thus completely rc-file free configuration)
1469 ipythonrc (and thus completely rc-file free configuration)
1464
1470
1465 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1471 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1466
1472
1467 * IPython/hooks.py (editor): quote the call to the editor command,
1473 * IPython/hooks.py (editor): quote the call to the editor command,
1468 to allow commands with spaces in them. Problem noted by watching
1474 to allow commands with spaces in them. Problem noted by watching
1469 Ian Oswald's video about textpad under win32 at
1475 Ian Oswald's video about textpad under win32 at
1470 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1476 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1471
1477
1472 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1478 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1473 describing magics (we haven't used @ for a loong time).
1479 describing magics (we haven't used @ for a loong time).
1474
1480
1475 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1481 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1476 contributed by marienz to close
1482 contributed by marienz to close
1477 http://www.scipy.net/roundup/ipython/issue53.
1483 http://www.scipy.net/roundup/ipython/issue53.
1478
1484
1479 2006-02-10 Ville Vainio <vivainio@gmail.com>
1485 2006-02-10 Ville Vainio <vivainio@gmail.com>
1480
1486
1481 * genutils.py: getoutput now works in win32 too
1487 * genutils.py: getoutput now works in win32 too
1482
1488
1483 * completer.py: alias and magic completion only invoked
1489 * completer.py: alias and magic completion only invoked
1484 at the first "item" in the line, to avoid "cd %store"
1490 at the first "item" in the line, to avoid "cd %store"
1485 nonsense.
1491 nonsense.
1486
1492
1487 2006-02-09 Ville Vainio <vivainio@gmail.com>
1493 2006-02-09 Ville Vainio <vivainio@gmail.com>
1488
1494
1489 * test/*: Added a unit testing framework (finally).
1495 * test/*: Added a unit testing framework (finally).
1490 '%run runtests.py' to run test_*.
1496 '%run runtests.py' to run test_*.
1491
1497
1492 * ipapi.py: Exposed runlines and set_custom_exc
1498 * ipapi.py: Exposed runlines and set_custom_exc
1493
1499
1494 2006-02-07 Ville Vainio <vivainio@gmail.com>
1500 2006-02-07 Ville Vainio <vivainio@gmail.com>
1495
1501
1496 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1502 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1497 instead use "f(1 2)" as before.
1503 instead use "f(1 2)" as before.
1498
1504
1499 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1505 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1500
1506
1501 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1507 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1502 facilities, for demos processed by the IPython input filter
1508 facilities, for demos processed by the IPython input filter
1503 (IPythonDemo), and for running a script one-line-at-a-time as a
1509 (IPythonDemo), and for running a script one-line-at-a-time as a
1504 demo, both for pure Python (LineDemo) and for IPython-processed
1510 demo, both for pure Python (LineDemo) and for IPython-processed
1505 input (IPythonLineDemo). After a request by Dave Kohel, from the
1511 input (IPythonLineDemo). After a request by Dave Kohel, from the
1506 SAGE team.
1512 SAGE team.
1507 (Demo.edit): added an edit() method to the demo objects, to edit
1513 (Demo.edit): added an edit() method to the demo objects, to edit
1508 the in-memory copy of the last executed block.
1514 the in-memory copy of the last executed block.
1509
1515
1510 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1516 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1511 processing to %edit, %macro and %save. These commands can now be
1517 processing to %edit, %macro and %save. These commands can now be
1512 invoked on the unprocessed input as it was typed by the user
1518 invoked on the unprocessed input as it was typed by the user
1513 (without any prefilters applied). After requests by the SAGE team
1519 (without any prefilters applied). After requests by the SAGE team
1514 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1520 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1515
1521
1516 2006-02-01 Ville Vainio <vivainio@gmail.com>
1522 2006-02-01 Ville Vainio <vivainio@gmail.com>
1517
1523
1518 * setup.py, eggsetup.py: easy_install ipython==dev works
1524 * setup.py, eggsetup.py: easy_install ipython==dev works
1519 correctly now (on Linux)
1525 correctly now (on Linux)
1520
1526
1521 * ipy_user_conf,ipmaker: user config changes, removed spurious
1527 * ipy_user_conf,ipmaker: user config changes, removed spurious
1522 warnings
1528 warnings
1523
1529
1524 * iplib: if rc.banner is string, use it as is.
1530 * iplib: if rc.banner is string, use it as is.
1525
1531
1526 * Magic: %pycat accepts a string argument and pages it's contents.
1532 * Magic: %pycat accepts a string argument and pages it's contents.
1527
1533
1528
1534
1529 2006-01-30 Ville Vainio <vivainio@gmail.com>
1535 2006-01-30 Ville Vainio <vivainio@gmail.com>
1530
1536
1531 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1537 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1532 Now %store and bookmarks work through PickleShare, meaning that
1538 Now %store and bookmarks work through PickleShare, meaning that
1533 concurrent access is possible and all ipython sessions see the
1539 concurrent access is possible and all ipython sessions see the
1534 same database situation all the time, instead of snapshot of
1540 same database situation all the time, instead of snapshot of
1535 the situation when the session was started. Hence, %bookmark
1541 the situation when the session was started. Hence, %bookmark
1536 results are immediately accessible from othes sessions. The database
1542 results are immediately accessible from othes sessions. The database
1537 is also available for use by user extensions. See:
1543 is also available for use by user extensions. See:
1538 http://www.python.org/pypi/pickleshare
1544 http://www.python.org/pypi/pickleshare
1539
1545
1540 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1546 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1541
1547
1542 * aliases can now be %store'd
1548 * aliases can now be %store'd
1543
1549
1544 * path.py moved to Extensions so that pickleshare does not need
1550 * path.py moved to Extensions so that pickleshare does not need
1545 IPython-specific import. Extensions added to pythonpath right
1551 IPython-specific import. Extensions added to pythonpath right
1546 at __init__.
1552 at __init__.
1547
1553
1548 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1554 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1549 called with _ip.system and the pre-transformed command string.
1555 called with _ip.system and the pre-transformed command string.
1550
1556
1551 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1557 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1552
1558
1553 * IPython/iplib.py (interact): Fix that we were not catching
1559 * IPython/iplib.py (interact): Fix that we were not catching
1554 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1560 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1555 logic here had to change, but it's fixed now.
1561 logic here had to change, but it's fixed now.
1556
1562
1557 2006-01-29 Ville Vainio <vivainio@gmail.com>
1563 2006-01-29 Ville Vainio <vivainio@gmail.com>
1558
1564
1559 * iplib.py: Try to import pyreadline on Windows.
1565 * iplib.py: Try to import pyreadline on Windows.
1560
1566
1561 2006-01-27 Ville Vainio <vivainio@gmail.com>
1567 2006-01-27 Ville Vainio <vivainio@gmail.com>
1562
1568
1563 * iplib.py: Expose ipapi as _ip in builtin namespace.
1569 * iplib.py: Expose ipapi as _ip in builtin namespace.
1564 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1570 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1565 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1571 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1566 syntax now produce _ip.* variant of the commands.
1572 syntax now produce _ip.* variant of the commands.
1567
1573
1568 * "_ip.options().autoedit_syntax = 2" automatically throws
1574 * "_ip.options().autoedit_syntax = 2" automatically throws
1569 user to editor for syntax error correction without prompting.
1575 user to editor for syntax error correction without prompting.
1570
1576
1571 2006-01-27 Ville Vainio <vivainio@gmail.com>
1577 2006-01-27 Ville Vainio <vivainio@gmail.com>
1572
1578
1573 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1579 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1574 'ipython' at argv[0]) executed through command line.
1580 'ipython' at argv[0]) executed through command line.
1575 NOTE: this DEPRECATES calling ipython with multiple scripts
1581 NOTE: this DEPRECATES calling ipython with multiple scripts
1576 ("ipython a.py b.py c.py")
1582 ("ipython a.py b.py c.py")
1577
1583
1578 * iplib.py, hooks.py: Added configurable input prefilter,
1584 * iplib.py, hooks.py: Added configurable input prefilter,
1579 named 'input_prefilter'. See ext_rescapture.py for example
1585 named 'input_prefilter'. See ext_rescapture.py for example
1580 usage.
1586 usage.
1581
1587
1582 * ext_rescapture.py, Magic.py: Better system command output capture
1588 * ext_rescapture.py, Magic.py: Better system command output capture
1583 through 'var = !ls' (deprecates user-visible %sc). Same notation
1589 through 'var = !ls' (deprecates user-visible %sc). Same notation
1584 applies for magics, 'var = %alias' assigns alias list to var.
1590 applies for magics, 'var = %alias' assigns alias list to var.
1585
1591
1586 * ipapi.py: added meta() for accessing extension-usable data store.
1592 * ipapi.py: added meta() for accessing extension-usable data store.
1587
1593
1588 * iplib.py: added InteractiveShell.getapi(). New magics should be
1594 * iplib.py: added InteractiveShell.getapi(). New magics should be
1589 written doing self.getapi() instead of using the shell directly.
1595 written doing self.getapi() instead of using the shell directly.
1590
1596
1591 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1597 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1592 %store foo >> ~/myfoo.txt to store variables to files (in clean
1598 %store foo >> ~/myfoo.txt to store variables to files (in clean
1593 textual form, not a restorable pickle).
1599 textual form, not a restorable pickle).
1594
1600
1595 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1601 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1596
1602
1597 * usage.py, Magic.py: added %quickref
1603 * usage.py, Magic.py: added %quickref
1598
1604
1599 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1605 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1600
1606
1601 * GetoptErrors when invoking magics etc. with wrong args
1607 * GetoptErrors when invoking magics etc. with wrong args
1602 are now more helpful:
1608 are now more helpful:
1603 GetoptError: option -l not recognized (allowed: "qb" )
1609 GetoptError: option -l not recognized (allowed: "qb" )
1604
1610
1605 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1611 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1606
1612
1607 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1613 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1608 computationally intensive blocks don't appear to stall the demo.
1614 computationally intensive blocks don't appear to stall the demo.
1609
1615
1610 2006-01-24 Ville Vainio <vivainio@gmail.com>
1616 2006-01-24 Ville Vainio <vivainio@gmail.com>
1611
1617
1612 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1618 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1613 value to manipulate resulting history entry.
1619 value to manipulate resulting history entry.
1614
1620
1615 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1621 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1616 to instance methods of IPApi class, to make extending an embedded
1622 to instance methods of IPApi class, to make extending an embedded
1617 IPython feasible. See ext_rehashdir.py for example usage.
1623 IPython feasible. See ext_rehashdir.py for example usage.
1618
1624
1619 * Merged 1071-1076 from branches/0.7.1
1625 * Merged 1071-1076 from branches/0.7.1
1620
1626
1621
1627
1622 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1628 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1623
1629
1624 * tools/release (daystamp): Fix build tools to use the new
1630 * tools/release (daystamp): Fix build tools to use the new
1625 eggsetup.py script to build lightweight eggs.
1631 eggsetup.py script to build lightweight eggs.
1626
1632
1627 * Applied changesets 1062 and 1064 before 0.7.1 release.
1633 * Applied changesets 1062 and 1064 before 0.7.1 release.
1628
1634
1629 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1635 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1630 see the raw input history (without conversions like %ls ->
1636 see the raw input history (without conversions like %ls ->
1631 ipmagic("ls")). After a request from W. Stein, SAGE
1637 ipmagic("ls")). After a request from W. Stein, SAGE
1632 (http://modular.ucsd.edu/sage) developer. This information is
1638 (http://modular.ucsd.edu/sage) developer. This information is
1633 stored in the input_hist_raw attribute of the IPython instance, so
1639 stored in the input_hist_raw attribute of the IPython instance, so
1634 developers can access it if needed (it's an InputList instance).
1640 developers can access it if needed (it's an InputList instance).
1635
1641
1636 * Versionstring = 0.7.2.svn
1642 * Versionstring = 0.7.2.svn
1637
1643
1638 * eggsetup.py: A separate script for constructing eggs, creates
1644 * eggsetup.py: A separate script for constructing eggs, creates
1639 proper launch scripts even on Windows (an .exe file in
1645 proper launch scripts even on Windows (an .exe file in
1640 \python24\scripts).
1646 \python24\scripts).
1641
1647
1642 * ipapi.py: launch_new_instance, launch entry point needed for the
1648 * ipapi.py: launch_new_instance, launch entry point needed for the
1643 egg.
1649 egg.
1644
1650
1645 2006-01-23 Ville Vainio <vivainio@gmail.com>
1651 2006-01-23 Ville Vainio <vivainio@gmail.com>
1646
1652
1647 * Added %cpaste magic for pasting python code
1653 * Added %cpaste magic for pasting python code
1648
1654
1649 2006-01-22 Ville Vainio <vivainio@gmail.com>
1655 2006-01-22 Ville Vainio <vivainio@gmail.com>
1650
1656
1651 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1657 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1652
1658
1653 * Versionstring = 0.7.2.svn
1659 * Versionstring = 0.7.2.svn
1654
1660
1655 * eggsetup.py: A separate script for constructing eggs, creates
1661 * eggsetup.py: A separate script for constructing eggs, creates
1656 proper launch scripts even on Windows (an .exe file in
1662 proper launch scripts even on Windows (an .exe file in
1657 \python24\scripts).
1663 \python24\scripts).
1658
1664
1659 * ipapi.py: launch_new_instance, launch entry point needed for the
1665 * ipapi.py: launch_new_instance, launch entry point needed for the
1660 egg.
1666 egg.
1661
1667
1662 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1668 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1663
1669
1664 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1670 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1665 %pfile foo would print the file for foo even if it was a binary.
1671 %pfile foo would print the file for foo even if it was a binary.
1666 Now, extensions '.so' and '.dll' are skipped.
1672 Now, extensions '.so' and '.dll' are skipped.
1667
1673
1668 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1674 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1669 bug, where macros would fail in all threaded modes. I'm not 100%
1675 bug, where macros would fail in all threaded modes. I'm not 100%
1670 sure, so I'm going to put out an rc instead of making a release
1676 sure, so I'm going to put out an rc instead of making a release
1671 today, and wait for feedback for at least a few days.
1677 today, and wait for feedback for at least a few days.
1672
1678
1673 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1679 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1674 it...) the handling of pasting external code with autoindent on.
1680 it...) the handling of pasting external code with autoindent on.
1675 To get out of a multiline input, the rule will appear for most
1681 To get out of a multiline input, the rule will appear for most
1676 users unchanged: two blank lines or change the indent level
1682 users unchanged: two blank lines or change the indent level
1677 proposed by IPython. But there is a twist now: you can
1683 proposed by IPython. But there is a twist now: you can
1678 add/subtract only *one or two spaces*. If you add/subtract three
1684 add/subtract only *one or two spaces*. If you add/subtract three
1679 or more (unless you completely delete the line), IPython will
1685 or more (unless you completely delete the line), IPython will
1680 accept that line, and you'll need to enter a second one of pure
1686 accept that line, and you'll need to enter a second one of pure
1681 whitespace. I know it sounds complicated, but I can't find a
1687 whitespace. I know it sounds complicated, but I can't find a
1682 different solution that covers all the cases, with the right
1688 different solution that covers all the cases, with the right
1683 heuristics. Hopefully in actual use, nobody will really notice
1689 heuristics. Hopefully in actual use, nobody will really notice
1684 all these strange rules and things will 'just work'.
1690 all these strange rules and things will 'just work'.
1685
1691
1686 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1692 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1687
1693
1688 * IPython/iplib.py (interact): catch exceptions which can be
1694 * IPython/iplib.py (interact): catch exceptions which can be
1689 triggered asynchronously by signal handlers. Thanks to an
1695 triggered asynchronously by signal handlers. Thanks to an
1690 automatic crash report, submitted by Colin Kingsley
1696 automatic crash report, submitted by Colin Kingsley
1691 <tercel-AT-gentoo.org>.
1697 <tercel-AT-gentoo.org>.
1692
1698
1693 2006-01-20 Ville Vainio <vivainio@gmail.com>
1699 2006-01-20 Ville Vainio <vivainio@gmail.com>
1694
1700
1695 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1701 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1696 (%rehashdir, very useful, try it out) of how to extend ipython
1702 (%rehashdir, very useful, try it out) of how to extend ipython
1697 with new magics. Also added Extensions dir to pythonpath to make
1703 with new magics. Also added Extensions dir to pythonpath to make
1698 importing extensions easy.
1704 importing extensions easy.
1699
1705
1700 * %store now complains when trying to store interactively declared
1706 * %store now complains when trying to store interactively declared
1701 classes / instances of those classes.
1707 classes / instances of those classes.
1702
1708
1703 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1709 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1704 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1710 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1705 if they exist, and ipy_user_conf.py with some defaults is created for
1711 if they exist, and ipy_user_conf.py with some defaults is created for
1706 the user.
1712 the user.
1707
1713
1708 * Startup rehashing done by the config file, not InterpreterExec.
1714 * Startup rehashing done by the config file, not InterpreterExec.
1709 This means system commands are available even without selecting the
1715 This means system commands are available even without selecting the
1710 pysh profile. It's the sensible default after all.
1716 pysh profile. It's the sensible default after all.
1711
1717
1712 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1718 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1713
1719
1714 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1720 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1715 multiline code with autoindent on working. But I am really not
1721 multiline code with autoindent on working. But I am really not
1716 sure, so this needs more testing. Will commit a debug-enabled
1722 sure, so this needs more testing. Will commit a debug-enabled
1717 version for now, while I test it some more, so that Ville and
1723 version for now, while I test it some more, so that Ville and
1718 others may also catch any problems. Also made
1724 others may also catch any problems. Also made
1719 self.indent_current_str() a method, to ensure that there's no
1725 self.indent_current_str() a method, to ensure that there's no
1720 chance of the indent space count and the corresponding string
1726 chance of the indent space count and the corresponding string
1721 falling out of sync. All code needing the string should just call
1727 falling out of sync. All code needing the string should just call
1722 the method.
1728 the method.
1723
1729
1724 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1730 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1725
1731
1726 * IPython/Magic.py (magic_edit): fix check for when users don't
1732 * IPython/Magic.py (magic_edit): fix check for when users don't
1727 save their output files, the try/except was in the wrong section.
1733 save their output files, the try/except was in the wrong section.
1728
1734
1729 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1735 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1730
1736
1731 * IPython/Magic.py (magic_run): fix __file__ global missing from
1737 * IPython/Magic.py (magic_run): fix __file__ global missing from
1732 script's namespace when executed via %run. After a report by
1738 script's namespace when executed via %run. After a report by
1733 Vivian.
1739 Vivian.
1734
1740
1735 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1741 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1736 when using python 2.4. The parent constructor changed in 2.4, and
1742 when using python 2.4. The parent constructor changed in 2.4, and
1737 we need to track it directly (we can't call it, as it messes up
1743 we need to track it directly (we can't call it, as it messes up
1738 readline and tab-completion inside our pdb would stop working).
1744 readline and tab-completion inside our pdb would stop working).
1739 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1745 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1740
1746
1741 2006-01-16 Ville Vainio <vivainio@gmail.com>
1747 2006-01-16 Ville Vainio <vivainio@gmail.com>
1742
1748
1743 * Ipython/magic.py: Reverted back to old %edit functionality
1749 * Ipython/magic.py: Reverted back to old %edit functionality
1744 that returns file contents on exit.
1750 that returns file contents on exit.
1745
1751
1746 * IPython/path.py: Added Jason Orendorff's "path" module to
1752 * IPython/path.py: Added Jason Orendorff's "path" module to
1747 IPython tree, http://www.jorendorff.com/articles/python/path/.
1753 IPython tree, http://www.jorendorff.com/articles/python/path/.
1748 You can get path objects conveniently through %sc, and !!, e.g.:
1754 You can get path objects conveniently through %sc, and !!, e.g.:
1749 sc files=ls
1755 sc files=ls
1750 for p in files.paths: # or files.p
1756 for p in files.paths: # or files.p
1751 print p,p.mtime
1757 print p,p.mtime
1752
1758
1753 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1759 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1754 now work again without considering the exclusion regexp -
1760 now work again without considering the exclusion regexp -
1755 hence, things like ',foo my/path' turn to 'foo("my/path")'
1761 hence, things like ',foo my/path' turn to 'foo("my/path")'
1756 instead of syntax error.
1762 instead of syntax error.
1757
1763
1758
1764
1759 2006-01-14 Ville Vainio <vivainio@gmail.com>
1765 2006-01-14 Ville Vainio <vivainio@gmail.com>
1760
1766
1761 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1767 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1762 ipapi decorators for python 2.4 users, options() provides access to rc
1768 ipapi decorators for python 2.4 users, options() provides access to rc
1763 data.
1769 data.
1764
1770
1765 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1771 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1766 as path separators (even on Linux ;-). Space character after
1772 as path separators (even on Linux ;-). Space character after
1767 backslash (as yielded by tab completer) is still space;
1773 backslash (as yielded by tab completer) is still space;
1768 "%cd long\ name" works as expected.
1774 "%cd long\ name" works as expected.
1769
1775
1770 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1776 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1771 as "chain of command", with priority. API stays the same,
1777 as "chain of command", with priority. API stays the same,
1772 TryNext exception raised by a hook function signals that
1778 TryNext exception raised by a hook function signals that
1773 current hook failed and next hook should try handling it, as
1779 current hook failed and next hook should try handling it, as
1774 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1780 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1775 requested configurable display hook, which is now implemented.
1781 requested configurable display hook, which is now implemented.
1776
1782
1777 2006-01-13 Ville Vainio <vivainio@gmail.com>
1783 2006-01-13 Ville Vainio <vivainio@gmail.com>
1778
1784
1779 * IPython/platutils*.py: platform specific utility functions,
1785 * IPython/platutils*.py: platform specific utility functions,
1780 so far only set_term_title is implemented (change terminal
1786 so far only set_term_title is implemented (change terminal
1781 label in windowing systems). %cd now changes the title to
1787 label in windowing systems). %cd now changes the title to
1782 current dir.
1788 current dir.
1783
1789
1784 * IPython/Release.py: Added myself to "authors" list,
1790 * IPython/Release.py: Added myself to "authors" list,
1785 had to create new files.
1791 had to create new files.
1786
1792
1787 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1793 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1788 shell escape; not a known bug but had potential to be one in the
1794 shell escape; not a known bug but had potential to be one in the
1789 future.
1795 future.
1790
1796
1791 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1797 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1792 extension API for IPython! See the module for usage example. Fix
1798 extension API for IPython! See the module for usage example. Fix
1793 OInspect for docstring-less magic functions.
1799 OInspect for docstring-less magic functions.
1794
1800
1795
1801
1796 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1802 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1797
1803
1798 * IPython/iplib.py (raw_input): temporarily deactivate all
1804 * IPython/iplib.py (raw_input): temporarily deactivate all
1799 attempts at allowing pasting of code with autoindent on. It
1805 attempts at allowing pasting of code with autoindent on. It
1800 introduced bugs (reported by Prabhu) and I can't seem to find a
1806 introduced bugs (reported by Prabhu) and I can't seem to find a
1801 robust combination which works in all cases. Will have to revisit
1807 robust combination which works in all cases. Will have to revisit
1802 later.
1808 later.
1803
1809
1804 * IPython/genutils.py: remove isspace() function. We've dropped
1810 * IPython/genutils.py: remove isspace() function. We've dropped
1805 2.2 compatibility, so it's OK to use the string method.
1811 2.2 compatibility, so it's OK to use the string method.
1806
1812
1807 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1813 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1808
1814
1809 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1815 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1810 matching what NOT to autocall on, to include all python binary
1816 matching what NOT to autocall on, to include all python binary
1811 operators (including things like 'and', 'or', 'is' and 'in').
1817 operators (including things like 'and', 'or', 'is' and 'in').
1812 Prompted by a bug report on 'foo & bar', but I realized we had
1818 Prompted by a bug report on 'foo & bar', but I realized we had
1813 many more potential bug cases with other operators. The regexp is
1819 many more potential bug cases with other operators. The regexp is
1814 self.re_exclude_auto, it's fairly commented.
1820 self.re_exclude_auto, it's fairly commented.
1815
1821
1816 2006-01-12 Ville Vainio <vivainio@gmail.com>
1822 2006-01-12 Ville Vainio <vivainio@gmail.com>
1817
1823
1818 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1824 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1819 Prettified and hardened string/backslash quoting with ipsystem(),
1825 Prettified and hardened string/backslash quoting with ipsystem(),
1820 ipalias() and ipmagic(). Now even \ characters are passed to
1826 ipalias() and ipmagic(). Now even \ characters are passed to
1821 %magics, !shell escapes and aliases exactly as they are in the
1827 %magics, !shell escapes and aliases exactly as they are in the
1822 ipython command line. Should improve backslash experience,
1828 ipython command line. Should improve backslash experience,
1823 particularly in Windows (path delimiter for some commands that
1829 particularly in Windows (path delimiter for some commands that
1824 won't understand '/'), but Unix benefits as well (regexps). %cd
1830 won't understand '/'), but Unix benefits as well (regexps). %cd
1825 magic still doesn't support backslash path delimiters, though. Also
1831 magic still doesn't support backslash path delimiters, though. Also
1826 deleted all pretense of supporting multiline command strings in
1832 deleted all pretense of supporting multiline command strings in
1827 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1833 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1828
1834
1829 * doc/build_doc_instructions.txt added. Documentation on how to
1835 * doc/build_doc_instructions.txt added. Documentation on how to
1830 use doc/update_manual.py, added yesterday. Both files contributed
1836 use doc/update_manual.py, added yesterday. Both files contributed
1831 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1837 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1832 doc/*.sh for deprecation at a later date.
1838 doc/*.sh for deprecation at a later date.
1833
1839
1834 * /ipython.py Added ipython.py to root directory for
1840 * /ipython.py Added ipython.py to root directory for
1835 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1841 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1836 ipython.py) and development convenience (no need to keep doing
1842 ipython.py) and development convenience (no need to keep doing
1837 "setup.py install" between changes).
1843 "setup.py install" between changes).
1838
1844
1839 * Made ! and !! shell escapes work (again) in multiline expressions:
1845 * Made ! and !! shell escapes work (again) in multiline expressions:
1840 if 1:
1846 if 1:
1841 !ls
1847 !ls
1842 !!ls
1848 !!ls
1843
1849
1844 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1850 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1845
1851
1846 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1852 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1847 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1853 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1848 module in case-insensitive installation. Was causing crashes
1854 module in case-insensitive installation. Was causing crashes
1849 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1855 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1850
1856
1851 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1857 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1852 <marienz-AT-gentoo.org>, closes
1858 <marienz-AT-gentoo.org>, closes
1853 http://www.scipy.net/roundup/ipython/issue51.
1859 http://www.scipy.net/roundup/ipython/issue51.
1854
1860
1855 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1861 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1856
1862
1857 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1863 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1858 problem of excessive CPU usage under *nix and keyboard lag under
1864 problem of excessive CPU usage under *nix and keyboard lag under
1859 win32.
1865 win32.
1860
1866
1861 2006-01-10 *** Released version 0.7.0
1867 2006-01-10 *** Released version 0.7.0
1862
1868
1863 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1869 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1864
1870
1865 * IPython/Release.py (revision): tag version number to 0.7.0,
1871 * IPython/Release.py (revision): tag version number to 0.7.0,
1866 ready for release.
1872 ready for release.
1867
1873
1868 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1874 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1869 it informs the user of the name of the temp. file used. This can
1875 it informs the user of the name of the temp. file used. This can
1870 help if you decide later to reuse that same file, so you know
1876 help if you decide later to reuse that same file, so you know
1871 where to copy the info from.
1877 where to copy the info from.
1872
1878
1873 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1879 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1874
1880
1875 * setup_bdist_egg.py: little script to build an egg. Added
1881 * setup_bdist_egg.py: little script to build an egg. Added
1876 support in the release tools as well.
1882 support in the release tools as well.
1877
1883
1878 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1884 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1879
1885
1880 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1886 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1881 version selection (new -wxversion command line and ipythonrc
1887 version selection (new -wxversion command line and ipythonrc
1882 parameter). Patch contributed by Arnd Baecker
1888 parameter). Patch contributed by Arnd Baecker
1883 <arnd.baecker-AT-web.de>.
1889 <arnd.baecker-AT-web.de>.
1884
1890
1885 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1891 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1886 embedded instances, for variables defined at the interactive
1892 embedded instances, for variables defined at the interactive
1887 prompt of the embedded ipython. Reported by Arnd.
1893 prompt of the embedded ipython. Reported by Arnd.
1888
1894
1889 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1895 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1890 it can be used as a (stateful) toggle, or with a direct parameter.
1896 it can be used as a (stateful) toggle, or with a direct parameter.
1891
1897
1892 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1898 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1893 could be triggered in certain cases and cause the traceback
1899 could be triggered in certain cases and cause the traceback
1894 printer not to work.
1900 printer not to work.
1895
1901
1896 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1902 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1897
1903
1898 * IPython/iplib.py (_should_recompile): Small fix, closes
1904 * IPython/iplib.py (_should_recompile): Small fix, closes
1899 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1905 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1900
1906
1901 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1907 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1902
1908
1903 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1909 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1904 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1910 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1905 Moad for help with tracking it down.
1911 Moad for help with tracking it down.
1906
1912
1907 * IPython/iplib.py (handle_auto): fix autocall handling for
1913 * IPython/iplib.py (handle_auto): fix autocall handling for
1908 objects which support BOTH __getitem__ and __call__ (so that f [x]
1914 objects which support BOTH __getitem__ and __call__ (so that f [x]
1909 is left alone, instead of becoming f([x]) automatically).
1915 is left alone, instead of becoming f([x]) automatically).
1910
1916
1911 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1917 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1912 Ville's patch.
1918 Ville's patch.
1913
1919
1914 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1920 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1915
1921
1916 * IPython/iplib.py (handle_auto): changed autocall semantics to
1922 * IPython/iplib.py (handle_auto): changed autocall semantics to
1917 include 'smart' mode, where the autocall transformation is NOT
1923 include 'smart' mode, where the autocall transformation is NOT
1918 applied if there are no arguments on the line. This allows you to
1924 applied if there are no arguments on the line. This allows you to
1919 just type 'foo' if foo is a callable to see its internal form,
1925 just type 'foo' if foo is a callable to see its internal form,
1920 instead of having it called with no arguments (typically a
1926 instead of having it called with no arguments (typically a
1921 mistake). The old 'full' autocall still exists: for that, you
1927 mistake). The old 'full' autocall still exists: for that, you
1922 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1928 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1923
1929
1924 * IPython/completer.py (Completer.attr_matches): add
1930 * IPython/completer.py (Completer.attr_matches): add
1925 tab-completion support for Enthoughts' traits. After a report by
1931 tab-completion support for Enthoughts' traits. After a report by
1926 Arnd and a patch by Prabhu.
1932 Arnd and a patch by Prabhu.
1927
1933
1928 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1934 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1929
1935
1930 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1936 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1931 Schmolck's patch to fix inspect.getinnerframes().
1937 Schmolck's patch to fix inspect.getinnerframes().
1932
1938
1933 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1939 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1934 for embedded instances, regarding handling of namespaces and items
1940 for embedded instances, regarding handling of namespaces and items
1935 added to the __builtin__ one. Multiple embedded instances and
1941 added to the __builtin__ one. Multiple embedded instances and
1936 recursive embeddings should work better now (though I'm not sure
1942 recursive embeddings should work better now (though I'm not sure
1937 I've got all the corner cases fixed, that code is a bit of a brain
1943 I've got all the corner cases fixed, that code is a bit of a brain
1938 twister).
1944 twister).
1939
1945
1940 * IPython/Magic.py (magic_edit): added support to edit in-memory
1946 * IPython/Magic.py (magic_edit): added support to edit in-memory
1941 macros (automatically creates the necessary temp files). %edit
1947 macros (automatically creates the necessary temp files). %edit
1942 also doesn't return the file contents anymore, it's just noise.
1948 also doesn't return the file contents anymore, it's just noise.
1943
1949
1944 * IPython/completer.py (Completer.attr_matches): revert change to
1950 * IPython/completer.py (Completer.attr_matches): revert change to
1945 complete only on attributes listed in __all__. I realized it
1951 complete only on attributes listed in __all__. I realized it
1946 cripples the tab-completion system as a tool for exploring the
1952 cripples the tab-completion system as a tool for exploring the
1947 internals of unknown libraries (it renders any non-__all__
1953 internals of unknown libraries (it renders any non-__all__
1948 attribute off-limits). I got bit by this when trying to see
1954 attribute off-limits). I got bit by this when trying to see
1949 something inside the dis module.
1955 something inside the dis module.
1950
1956
1951 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1957 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1952
1958
1953 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1959 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1954 namespace for users and extension writers to hold data in. This
1960 namespace for users and extension writers to hold data in. This
1955 follows the discussion in
1961 follows the discussion in
1956 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1962 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1957
1963
1958 * IPython/completer.py (IPCompleter.complete): small patch to help
1964 * IPython/completer.py (IPCompleter.complete): small patch to help
1959 tab-completion under Emacs, after a suggestion by John Barnard
1965 tab-completion under Emacs, after a suggestion by John Barnard
1960 <barnarj-AT-ccf.org>.
1966 <barnarj-AT-ccf.org>.
1961
1967
1962 * IPython/Magic.py (Magic.extract_input_slices): added support for
1968 * IPython/Magic.py (Magic.extract_input_slices): added support for
1963 the slice notation in magics to use N-M to represent numbers N...M
1969 the slice notation in magics to use N-M to represent numbers N...M
1964 (closed endpoints). This is used by %macro and %save.
1970 (closed endpoints). This is used by %macro and %save.
1965
1971
1966 * IPython/completer.py (Completer.attr_matches): for modules which
1972 * IPython/completer.py (Completer.attr_matches): for modules which
1967 define __all__, complete only on those. After a patch by Jeffrey
1973 define __all__, complete only on those. After a patch by Jeffrey
1968 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1974 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1969 speed up this routine.
1975 speed up this routine.
1970
1976
1971 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1977 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1972 don't know if this is the end of it, but the behavior now is
1978 don't know if this is the end of it, but the behavior now is
1973 certainly much more correct. Note that coupled with macros,
1979 certainly much more correct. Note that coupled with macros,
1974 slightly surprising (at first) behavior may occur: a macro will in
1980 slightly surprising (at first) behavior may occur: a macro will in
1975 general expand to multiple lines of input, so upon exiting, the
1981 general expand to multiple lines of input, so upon exiting, the
1976 in/out counters will both be bumped by the corresponding amount
1982 in/out counters will both be bumped by the corresponding amount
1977 (as if the macro's contents had been typed interactively). Typing
1983 (as if the macro's contents had been typed interactively). Typing
1978 %hist will reveal the intermediate (silently processed) lines.
1984 %hist will reveal the intermediate (silently processed) lines.
1979
1985
1980 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1986 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1981 pickle to fail (%run was overwriting __main__ and not restoring
1987 pickle to fail (%run was overwriting __main__ and not restoring
1982 it, but pickle relies on __main__ to operate).
1988 it, but pickle relies on __main__ to operate).
1983
1989
1984 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1990 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1985 using properties, but forgot to make the main InteractiveShell
1991 using properties, but forgot to make the main InteractiveShell
1986 class a new-style class. Properties fail silently, and
1992 class a new-style class. Properties fail silently, and
1987 mysteriously, with old-style class (getters work, but
1993 mysteriously, with old-style class (getters work, but
1988 setters don't do anything).
1994 setters don't do anything).
1989
1995
1990 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1996 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1991
1997
1992 * IPython/Magic.py (magic_history): fix history reporting bug (I
1998 * IPython/Magic.py (magic_history): fix history reporting bug (I
1993 know some nasties are still there, I just can't seem to find a
1999 know some nasties are still there, I just can't seem to find a
1994 reproducible test case to track them down; the input history is
2000 reproducible test case to track them down; the input history is
1995 falling out of sync...)
2001 falling out of sync...)
1996
2002
1997 * IPython/iplib.py (handle_shell_escape): fix bug where both
2003 * IPython/iplib.py (handle_shell_escape): fix bug where both
1998 aliases and system accesses where broken for indented code (such
2004 aliases and system accesses where broken for indented code (such
1999 as loops).
2005 as loops).
2000
2006
2001 * IPython/genutils.py (shell): fix small but critical bug for
2007 * IPython/genutils.py (shell): fix small but critical bug for
2002 win32 system access.
2008 win32 system access.
2003
2009
2004 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2010 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2005
2011
2006 * IPython/iplib.py (showtraceback): remove use of the
2012 * IPython/iplib.py (showtraceback): remove use of the
2007 sys.last_{type/value/traceback} structures, which are non
2013 sys.last_{type/value/traceback} structures, which are non
2008 thread-safe.
2014 thread-safe.
2009 (_prefilter): change control flow to ensure that we NEVER
2015 (_prefilter): change control flow to ensure that we NEVER
2010 introspect objects when autocall is off. This will guarantee that
2016 introspect objects when autocall is off. This will guarantee that
2011 having an input line of the form 'x.y', where access to attribute
2017 having an input line of the form 'x.y', where access to attribute
2012 'y' has side effects, doesn't trigger the side effect TWICE. It
2018 'y' has side effects, doesn't trigger the side effect TWICE. It
2013 is important to note that, with autocall on, these side effects
2019 is important to note that, with autocall on, these side effects
2014 can still happen.
2020 can still happen.
2015 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2021 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2016 trio. IPython offers these three kinds of special calls which are
2022 trio. IPython offers these three kinds of special calls which are
2017 not python code, and it's a good thing to have their call method
2023 not python code, and it's a good thing to have their call method
2018 be accessible as pure python functions (not just special syntax at
2024 be accessible as pure python functions (not just special syntax at
2019 the command line). It gives us a better internal implementation
2025 the command line). It gives us a better internal implementation
2020 structure, as well as exposing these for user scripting more
2026 structure, as well as exposing these for user scripting more
2021 cleanly.
2027 cleanly.
2022
2028
2023 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2029 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2024 file. Now that they'll be more likely to be used with the
2030 file. Now that they'll be more likely to be used with the
2025 persistance system (%store), I want to make sure their module path
2031 persistance system (%store), I want to make sure their module path
2026 doesn't change in the future, so that we don't break things for
2032 doesn't change in the future, so that we don't break things for
2027 users' persisted data.
2033 users' persisted data.
2028
2034
2029 * IPython/iplib.py (autoindent_update): move indentation
2035 * IPython/iplib.py (autoindent_update): move indentation
2030 management into the _text_ processing loop, not the keyboard
2036 management into the _text_ processing loop, not the keyboard
2031 interactive one. This is necessary to correctly process non-typed
2037 interactive one. This is necessary to correctly process non-typed
2032 multiline input (such as macros).
2038 multiline input (such as macros).
2033
2039
2034 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2040 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2035 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2041 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2036 which was producing problems in the resulting manual.
2042 which was producing problems in the resulting manual.
2037 (magic_whos): improve reporting of instances (show their class,
2043 (magic_whos): improve reporting of instances (show their class,
2038 instead of simply printing 'instance' which isn't terribly
2044 instead of simply printing 'instance' which isn't terribly
2039 informative).
2045 informative).
2040
2046
2041 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2047 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2042 (minor mods) to support network shares under win32.
2048 (minor mods) to support network shares under win32.
2043
2049
2044 * IPython/winconsole.py (get_console_size): add new winconsole
2050 * IPython/winconsole.py (get_console_size): add new winconsole
2045 module and fixes to page_dumb() to improve its behavior under
2051 module and fixes to page_dumb() to improve its behavior under
2046 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2052 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2047
2053
2048 * IPython/Magic.py (Macro): simplified Macro class to just
2054 * IPython/Magic.py (Macro): simplified Macro class to just
2049 subclass list. We've had only 2.2 compatibility for a very long
2055 subclass list. We've had only 2.2 compatibility for a very long
2050 time, yet I was still avoiding subclassing the builtin types. No
2056 time, yet I was still avoiding subclassing the builtin types. No
2051 more (I'm also starting to use properties, though I won't shift to
2057 more (I'm also starting to use properties, though I won't shift to
2052 2.3-specific features quite yet).
2058 2.3-specific features quite yet).
2053 (magic_store): added Ville's patch for lightweight variable
2059 (magic_store): added Ville's patch for lightweight variable
2054 persistence, after a request on the user list by Matt Wilkie
2060 persistence, after a request on the user list by Matt Wilkie
2055 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2061 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2056 details.
2062 details.
2057
2063
2058 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2064 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2059 changed the default logfile name from 'ipython.log' to
2065 changed the default logfile name from 'ipython.log' to
2060 'ipython_log.py'. These logs are real python files, and now that
2066 'ipython_log.py'. These logs are real python files, and now that
2061 we have much better multiline support, people are more likely to
2067 we have much better multiline support, people are more likely to
2062 want to use them as such. Might as well name them correctly.
2068 want to use them as such. Might as well name them correctly.
2063
2069
2064 * IPython/Magic.py: substantial cleanup. While we can't stop
2070 * IPython/Magic.py: substantial cleanup. While we can't stop
2065 using magics as mixins, due to the existing customizations 'out
2071 using magics as mixins, due to the existing customizations 'out
2066 there' which rely on the mixin naming conventions, at least I
2072 there' which rely on the mixin naming conventions, at least I
2067 cleaned out all cross-class name usage. So once we are OK with
2073 cleaned out all cross-class name usage. So once we are OK with
2068 breaking compatibility, the two systems can be separated.
2074 breaking compatibility, the two systems can be separated.
2069
2075
2070 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2076 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2071 anymore, and the class is a fair bit less hideous as well. New
2077 anymore, and the class is a fair bit less hideous as well. New
2072 features were also introduced: timestamping of input, and logging
2078 features were also introduced: timestamping of input, and logging
2073 of output results. These are user-visible with the -t and -o
2079 of output results. These are user-visible with the -t and -o
2074 options to %logstart. Closes
2080 options to %logstart. Closes
2075 http://www.scipy.net/roundup/ipython/issue11 and a request by
2081 http://www.scipy.net/roundup/ipython/issue11 and a request by
2076 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2082 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2077
2083
2078 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2084 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2079
2085
2080 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2086 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2081 better handle backslashes in paths. See the thread 'More Windows
2087 better handle backslashes in paths. See the thread 'More Windows
2082 questions part 2 - \/ characters revisited' on the iypthon user
2088 questions part 2 - \/ characters revisited' on the iypthon user
2083 list:
2089 list:
2084 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2090 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2085
2091
2086 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2092 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2087
2093
2088 (InteractiveShell.__init__): change threaded shells to not use the
2094 (InteractiveShell.__init__): change threaded shells to not use the
2089 ipython crash handler. This was causing more problems than not,
2095 ipython crash handler. This was causing more problems than not,
2090 as exceptions in the main thread (GUI code, typically) would
2096 as exceptions in the main thread (GUI code, typically) would
2091 always show up as a 'crash', when they really weren't.
2097 always show up as a 'crash', when they really weren't.
2092
2098
2093 The colors and exception mode commands (%colors/%xmode) have been
2099 The colors and exception mode commands (%colors/%xmode) have been
2094 synchronized to also take this into account, so users can get
2100 synchronized to also take this into account, so users can get
2095 verbose exceptions for their threaded code as well. I also added
2101 verbose exceptions for their threaded code as well. I also added
2096 support for activating pdb inside this exception handler as well,
2102 support for activating pdb inside this exception handler as well,
2097 so now GUI authors can use IPython's enhanced pdb at runtime.
2103 so now GUI authors can use IPython's enhanced pdb at runtime.
2098
2104
2099 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2105 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2100 true by default, and add it to the shipped ipythonrc file. Since
2106 true by default, and add it to the shipped ipythonrc file. Since
2101 this asks the user before proceeding, I think it's OK to make it
2107 this asks the user before proceeding, I think it's OK to make it
2102 true by default.
2108 true by default.
2103
2109
2104 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2110 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2105 of the previous special-casing of input in the eval loop. I think
2111 of the previous special-casing of input in the eval loop. I think
2106 this is cleaner, as they really are commands and shouldn't have
2112 this is cleaner, as they really are commands and shouldn't have
2107 a special role in the middle of the core code.
2113 a special role in the middle of the core code.
2108
2114
2109 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2115 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2110
2116
2111 * IPython/iplib.py (edit_syntax_error): added support for
2117 * IPython/iplib.py (edit_syntax_error): added support for
2112 automatically reopening the editor if the file had a syntax error
2118 automatically reopening the editor if the file had a syntax error
2113 in it. Thanks to scottt who provided the patch at:
2119 in it. Thanks to scottt who provided the patch at:
2114 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2120 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2115 version committed).
2121 version committed).
2116
2122
2117 * IPython/iplib.py (handle_normal): add suport for multi-line
2123 * IPython/iplib.py (handle_normal): add suport for multi-line
2118 input with emtpy lines. This fixes
2124 input with emtpy lines. This fixes
2119 http://www.scipy.net/roundup/ipython/issue43 and a similar
2125 http://www.scipy.net/roundup/ipython/issue43 and a similar
2120 discussion on the user list.
2126 discussion on the user list.
2121
2127
2122 WARNING: a behavior change is necessarily introduced to support
2128 WARNING: a behavior change is necessarily introduced to support
2123 blank lines: now a single blank line with whitespace does NOT
2129 blank lines: now a single blank line with whitespace does NOT
2124 break the input loop, which means that when autoindent is on, by
2130 break the input loop, which means that when autoindent is on, by
2125 default hitting return on the next (indented) line does NOT exit.
2131 default hitting return on the next (indented) line does NOT exit.
2126
2132
2127 Instead, to exit a multiline input you can either have:
2133 Instead, to exit a multiline input you can either have:
2128
2134
2129 - TWO whitespace lines (just hit return again), or
2135 - TWO whitespace lines (just hit return again), or
2130 - a single whitespace line of a different length than provided
2136 - a single whitespace line of a different length than provided
2131 by the autoindent (add or remove a space).
2137 by the autoindent (add or remove a space).
2132
2138
2133 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2139 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2134 module to better organize all readline-related functionality.
2140 module to better organize all readline-related functionality.
2135 I've deleted FlexCompleter and put all completion clases here.
2141 I've deleted FlexCompleter and put all completion clases here.
2136
2142
2137 * IPython/iplib.py (raw_input): improve indentation management.
2143 * IPython/iplib.py (raw_input): improve indentation management.
2138 It is now possible to paste indented code with autoindent on, and
2144 It is now possible to paste indented code with autoindent on, and
2139 the code is interpreted correctly (though it still looks bad on
2145 the code is interpreted correctly (though it still looks bad on
2140 screen, due to the line-oriented nature of ipython).
2146 screen, due to the line-oriented nature of ipython).
2141 (MagicCompleter.complete): change behavior so that a TAB key on an
2147 (MagicCompleter.complete): change behavior so that a TAB key on an
2142 otherwise empty line actually inserts a tab, instead of completing
2148 otherwise empty line actually inserts a tab, instead of completing
2143 on the entire global namespace. This makes it easier to use the
2149 on the entire global namespace. This makes it easier to use the
2144 TAB key for indentation. After a request by Hans Meine
2150 TAB key for indentation. After a request by Hans Meine
2145 <hans_meine-AT-gmx.net>
2151 <hans_meine-AT-gmx.net>
2146 (_prefilter): add support so that typing plain 'exit' or 'quit'
2152 (_prefilter): add support so that typing plain 'exit' or 'quit'
2147 does a sensible thing. Originally I tried to deviate as little as
2153 does a sensible thing. Originally I tried to deviate as little as
2148 possible from the default python behavior, but even that one may
2154 possible from the default python behavior, but even that one may
2149 change in this direction (thread on python-dev to that effect).
2155 change in this direction (thread on python-dev to that effect).
2150 Regardless, ipython should do the right thing even if CPython's
2156 Regardless, ipython should do the right thing even if CPython's
2151 '>>>' prompt doesn't.
2157 '>>>' prompt doesn't.
2152 (InteractiveShell): removed subclassing code.InteractiveConsole
2158 (InteractiveShell): removed subclassing code.InteractiveConsole
2153 class. By now we'd overridden just about all of its methods: I've
2159 class. By now we'd overridden just about all of its methods: I've
2154 copied the remaining two over, and now ipython is a standalone
2160 copied the remaining two over, and now ipython is a standalone
2155 class. This will provide a clearer picture for the chainsaw
2161 class. This will provide a clearer picture for the chainsaw
2156 branch refactoring.
2162 branch refactoring.
2157
2163
2158 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2164 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2159
2165
2160 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2166 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2161 failures for objects which break when dir() is called on them.
2167 failures for objects which break when dir() is called on them.
2162
2168
2163 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2169 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2164 distinct local and global namespaces in the completer API. This
2170 distinct local and global namespaces in the completer API. This
2165 change allows us to properly handle completion with distinct
2171 change allows us to properly handle completion with distinct
2166 scopes, including in embedded instances (this had never really
2172 scopes, including in embedded instances (this had never really
2167 worked correctly).
2173 worked correctly).
2168
2174
2169 Note: this introduces a change in the constructor for
2175 Note: this introduces a change in the constructor for
2170 MagicCompleter, as a new global_namespace parameter is now the
2176 MagicCompleter, as a new global_namespace parameter is now the
2171 second argument (the others were bumped one position).
2177 second argument (the others were bumped one position).
2172
2178
2173 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2179 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2174
2180
2175 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2181 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2176 embedded instances (which can be done now thanks to Vivian's
2182 embedded instances (which can be done now thanks to Vivian's
2177 frame-handling fixes for pdb).
2183 frame-handling fixes for pdb).
2178 (InteractiveShell.__init__): Fix namespace handling problem in
2184 (InteractiveShell.__init__): Fix namespace handling problem in
2179 embedded instances. We were overwriting __main__ unconditionally,
2185 embedded instances. We were overwriting __main__ unconditionally,
2180 and this should only be done for 'full' (non-embedded) IPython;
2186 and this should only be done for 'full' (non-embedded) IPython;
2181 embedded instances must respect the caller's __main__. Thanks to
2187 embedded instances must respect the caller's __main__. Thanks to
2182 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2188 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2183
2189
2184 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2190 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2185
2191
2186 * setup.py: added download_url to setup(). This registers the
2192 * setup.py: added download_url to setup(). This registers the
2187 download address at PyPI, which is not only useful to humans
2193 download address at PyPI, which is not only useful to humans
2188 browsing the site, but is also picked up by setuptools (the Eggs
2194 browsing the site, but is also picked up by setuptools (the Eggs
2189 machinery). Thanks to Ville and R. Kern for the info/discussion
2195 machinery). Thanks to Ville and R. Kern for the info/discussion
2190 on this.
2196 on this.
2191
2197
2192 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2198 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2193
2199
2194 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2200 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2195 This brings a lot of nice functionality to the pdb mode, which now
2201 This brings a lot of nice functionality to the pdb mode, which now
2196 has tab-completion, syntax highlighting, and better stack handling
2202 has tab-completion, syntax highlighting, and better stack handling
2197 than before. Many thanks to Vivian De Smedt
2203 than before. Many thanks to Vivian De Smedt
2198 <vivian-AT-vdesmedt.com> for the original patches.
2204 <vivian-AT-vdesmedt.com> for the original patches.
2199
2205
2200 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2206 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2201
2207
2202 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2208 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2203 sequence to consistently accept the banner argument. The
2209 sequence to consistently accept the banner argument. The
2204 inconsistency was tripping SAGE, thanks to Gary Zablackis
2210 inconsistency was tripping SAGE, thanks to Gary Zablackis
2205 <gzabl-AT-yahoo.com> for the report.
2211 <gzabl-AT-yahoo.com> for the report.
2206
2212
2207 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2213 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2208
2214
2209 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2215 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2210 Fix bug where a naked 'alias' call in the ipythonrc file would
2216 Fix bug where a naked 'alias' call in the ipythonrc file would
2211 cause a crash. Bug reported by Jorgen Stenarson.
2217 cause a crash. Bug reported by Jorgen Stenarson.
2212
2218
2213 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2219 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2214
2220
2215 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2221 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2216 startup time.
2222 startup time.
2217
2223
2218 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2224 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2219 instances had introduced a bug with globals in normal code. Now
2225 instances had introduced a bug with globals in normal code. Now
2220 it's working in all cases.
2226 it's working in all cases.
2221
2227
2222 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2228 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2223 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2229 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2224 has been introduced to set the default case sensitivity of the
2230 has been introduced to set the default case sensitivity of the
2225 searches. Users can still select either mode at runtime on a
2231 searches. Users can still select either mode at runtime on a
2226 per-search basis.
2232 per-search basis.
2227
2233
2228 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2234 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2229
2235
2230 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2236 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2231 attributes in wildcard searches for subclasses. Modified version
2237 attributes in wildcard searches for subclasses. Modified version
2232 of a patch by Jorgen.
2238 of a patch by Jorgen.
2233
2239
2234 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2240 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2235
2241
2236 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2242 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2237 embedded instances. I added a user_global_ns attribute to the
2243 embedded instances. I added a user_global_ns attribute to the
2238 InteractiveShell class to handle this.
2244 InteractiveShell class to handle this.
2239
2245
2240 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2246 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2241
2247
2242 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2248 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2243 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2249 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2244 (reported under win32, but may happen also in other platforms).
2250 (reported under win32, but may happen also in other platforms).
2245 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2251 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2246
2252
2247 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2253 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2248
2254
2249 * IPython/Magic.py (magic_psearch): new support for wildcard
2255 * IPython/Magic.py (magic_psearch): new support for wildcard
2250 patterns. Now, typing ?a*b will list all names which begin with a
2256 patterns. Now, typing ?a*b will list all names which begin with a
2251 and end in b, for example. The %psearch magic has full
2257 and end in b, for example. The %psearch magic has full
2252 docstrings. Many thanks to JΓΆrgen Stenarson
2258 docstrings. Many thanks to JΓΆrgen Stenarson
2253 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2259 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2254 implementing this functionality.
2260 implementing this functionality.
2255
2261
2256 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2262 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2257
2263
2258 * Manual: fixed long-standing annoyance of double-dashes (as in
2264 * Manual: fixed long-standing annoyance of double-dashes (as in
2259 --prefix=~, for example) being stripped in the HTML version. This
2265 --prefix=~, for example) being stripped in the HTML version. This
2260 is a latex2html bug, but a workaround was provided. Many thanks
2266 is a latex2html bug, but a workaround was provided. Many thanks
2261 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2267 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2262 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2268 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2263 rolling. This seemingly small issue had tripped a number of users
2269 rolling. This seemingly small issue had tripped a number of users
2264 when first installing, so I'm glad to see it gone.
2270 when first installing, so I'm glad to see it gone.
2265
2271
2266 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2272 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2267
2273
2268 * IPython/Extensions/numeric_formats.py: fix missing import,
2274 * IPython/Extensions/numeric_formats.py: fix missing import,
2269 reported by Stephen Walton.
2275 reported by Stephen Walton.
2270
2276
2271 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2277 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2272
2278
2273 * IPython/demo.py: finish demo module, fully documented now.
2279 * IPython/demo.py: finish demo module, fully documented now.
2274
2280
2275 * IPython/genutils.py (file_read): simple little utility to read a
2281 * IPython/genutils.py (file_read): simple little utility to read a
2276 file and ensure it's closed afterwards.
2282 file and ensure it's closed afterwards.
2277
2283
2278 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2284 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2279
2285
2280 * IPython/demo.py (Demo.__init__): added support for individually
2286 * IPython/demo.py (Demo.__init__): added support for individually
2281 tagging blocks for automatic execution.
2287 tagging blocks for automatic execution.
2282
2288
2283 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2289 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2284 syntax-highlighted python sources, requested by John.
2290 syntax-highlighted python sources, requested by John.
2285
2291
2286 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2292 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2287
2293
2288 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2294 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2289 finishing.
2295 finishing.
2290
2296
2291 * IPython/genutils.py (shlex_split): moved from Magic to here,
2297 * IPython/genutils.py (shlex_split): moved from Magic to here,
2292 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2298 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2293
2299
2294 * IPython/demo.py (Demo.__init__): added support for silent
2300 * IPython/demo.py (Demo.__init__): added support for silent
2295 blocks, improved marks as regexps, docstrings written.
2301 blocks, improved marks as regexps, docstrings written.
2296 (Demo.__init__): better docstring, added support for sys.argv.
2302 (Demo.__init__): better docstring, added support for sys.argv.
2297
2303
2298 * IPython/genutils.py (marquee): little utility used by the demo
2304 * IPython/genutils.py (marquee): little utility used by the demo
2299 code, handy in general.
2305 code, handy in general.
2300
2306
2301 * IPython/demo.py (Demo.__init__): new class for interactive
2307 * IPython/demo.py (Demo.__init__): new class for interactive
2302 demos. Not documented yet, I just wrote it in a hurry for
2308 demos. Not documented yet, I just wrote it in a hurry for
2303 scipy'05. Will docstring later.
2309 scipy'05. Will docstring later.
2304
2310
2305 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2311 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2306
2312
2307 * IPython/Shell.py (sigint_handler): Drastic simplification which
2313 * IPython/Shell.py (sigint_handler): Drastic simplification which
2308 also seems to make Ctrl-C work correctly across threads! This is
2314 also seems to make Ctrl-C work correctly across threads! This is
2309 so simple, that I can't beleive I'd missed it before. Needs more
2315 so simple, that I can't beleive I'd missed it before. Needs more
2310 testing, though.
2316 testing, though.
2311 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2317 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2312 like this before...
2318 like this before...
2313
2319
2314 * IPython/genutils.py (get_home_dir): add protection against
2320 * IPython/genutils.py (get_home_dir): add protection against
2315 non-dirs in win32 registry.
2321 non-dirs in win32 registry.
2316
2322
2317 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2323 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2318 bug where dict was mutated while iterating (pysh crash).
2324 bug where dict was mutated while iterating (pysh crash).
2319
2325
2320 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2326 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2321
2327
2322 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2328 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2323 spurious newlines added by this routine. After a report by
2329 spurious newlines added by this routine. After a report by
2324 F. Mantegazza.
2330 F. Mantegazza.
2325
2331
2326 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2332 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2327
2333
2328 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2334 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2329 calls. These were a leftover from the GTK 1.x days, and can cause
2335 calls. These were a leftover from the GTK 1.x days, and can cause
2330 problems in certain cases (after a report by John Hunter).
2336 problems in certain cases (after a report by John Hunter).
2331
2337
2332 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2338 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2333 os.getcwd() fails at init time. Thanks to patch from David Remahl
2339 os.getcwd() fails at init time. Thanks to patch from David Remahl
2334 <chmod007-AT-mac.com>.
2340 <chmod007-AT-mac.com>.
2335 (InteractiveShell.__init__): prevent certain special magics from
2341 (InteractiveShell.__init__): prevent certain special magics from
2336 being shadowed by aliases. Closes
2342 being shadowed by aliases. Closes
2337 http://www.scipy.net/roundup/ipython/issue41.
2343 http://www.scipy.net/roundup/ipython/issue41.
2338
2344
2339 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2345 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2340
2346
2341 * IPython/iplib.py (InteractiveShell.complete): Added new
2347 * IPython/iplib.py (InteractiveShell.complete): Added new
2342 top-level completion method to expose the completion mechanism
2348 top-level completion method to expose the completion mechanism
2343 beyond readline-based environments.
2349 beyond readline-based environments.
2344
2350
2345 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2351 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2346
2352
2347 * tools/ipsvnc (svnversion): fix svnversion capture.
2353 * tools/ipsvnc (svnversion): fix svnversion capture.
2348
2354
2349 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2355 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2350 attribute to self, which was missing. Before, it was set by a
2356 attribute to self, which was missing. Before, it was set by a
2351 routine which in certain cases wasn't being called, so the
2357 routine which in certain cases wasn't being called, so the
2352 instance could end up missing the attribute. This caused a crash.
2358 instance could end up missing the attribute. This caused a crash.
2353 Closes http://www.scipy.net/roundup/ipython/issue40.
2359 Closes http://www.scipy.net/roundup/ipython/issue40.
2354
2360
2355 2005-08-16 Fernando Perez <fperez@colorado.edu>
2361 2005-08-16 Fernando Perez <fperez@colorado.edu>
2356
2362
2357 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2363 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2358 contains non-string attribute. Closes
2364 contains non-string attribute. Closes
2359 http://www.scipy.net/roundup/ipython/issue38.
2365 http://www.scipy.net/roundup/ipython/issue38.
2360
2366
2361 2005-08-14 Fernando Perez <fperez@colorado.edu>
2367 2005-08-14 Fernando Perez <fperez@colorado.edu>
2362
2368
2363 * tools/ipsvnc: Minor improvements, to add changeset info.
2369 * tools/ipsvnc: Minor improvements, to add changeset info.
2364
2370
2365 2005-08-12 Fernando Perez <fperez@colorado.edu>
2371 2005-08-12 Fernando Perez <fperez@colorado.edu>
2366
2372
2367 * IPython/iplib.py (runsource): remove self.code_to_run_src
2373 * IPython/iplib.py (runsource): remove self.code_to_run_src
2368 attribute. I realized this is nothing more than
2374 attribute. I realized this is nothing more than
2369 '\n'.join(self.buffer), and having the same data in two different
2375 '\n'.join(self.buffer), and having the same data in two different
2370 places is just asking for synchronization bugs. This may impact
2376 places is just asking for synchronization bugs. This may impact
2371 people who have custom exception handlers, so I need to warn
2377 people who have custom exception handlers, so I need to warn
2372 ipython-dev about it (F. Mantegazza may use them).
2378 ipython-dev about it (F. Mantegazza may use them).
2373
2379
2374 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2380 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2375
2381
2376 * IPython/genutils.py: fix 2.2 compatibility (generators)
2382 * IPython/genutils.py: fix 2.2 compatibility (generators)
2377
2383
2378 2005-07-18 Fernando Perez <fperez@colorado.edu>
2384 2005-07-18 Fernando Perez <fperez@colorado.edu>
2379
2385
2380 * IPython/genutils.py (get_home_dir): fix to help users with
2386 * IPython/genutils.py (get_home_dir): fix to help users with
2381 invalid $HOME under win32.
2387 invalid $HOME under win32.
2382
2388
2383 2005-07-17 Fernando Perez <fperez@colorado.edu>
2389 2005-07-17 Fernando Perez <fperez@colorado.edu>
2384
2390
2385 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2391 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2386 some old hacks and clean up a bit other routines; code should be
2392 some old hacks and clean up a bit other routines; code should be
2387 simpler and a bit faster.
2393 simpler and a bit faster.
2388
2394
2389 * IPython/iplib.py (interact): removed some last-resort attempts
2395 * IPython/iplib.py (interact): removed some last-resort attempts
2390 to survive broken stdout/stderr. That code was only making it
2396 to survive broken stdout/stderr. That code was only making it
2391 harder to abstract out the i/o (necessary for gui integration),
2397 harder to abstract out the i/o (necessary for gui integration),
2392 and the crashes it could prevent were extremely rare in practice
2398 and the crashes it could prevent were extremely rare in practice
2393 (besides being fully user-induced in a pretty violent manner).
2399 (besides being fully user-induced in a pretty violent manner).
2394
2400
2395 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2401 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2396 Nothing major yet, but the code is simpler to read; this should
2402 Nothing major yet, but the code is simpler to read; this should
2397 make it easier to do more serious modifications in the future.
2403 make it easier to do more serious modifications in the future.
2398
2404
2399 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2405 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2400 which broke in .15 (thanks to a report by Ville).
2406 which broke in .15 (thanks to a report by Ville).
2401
2407
2402 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2408 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2403 be quite correct, I know next to nothing about unicode). This
2409 be quite correct, I know next to nothing about unicode). This
2404 will allow unicode strings to be used in prompts, amongst other
2410 will allow unicode strings to be used in prompts, amongst other
2405 cases. It also will prevent ipython from crashing when unicode
2411 cases. It also will prevent ipython from crashing when unicode
2406 shows up unexpectedly in many places. If ascii encoding fails, we
2412 shows up unexpectedly in many places. If ascii encoding fails, we
2407 assume utf_8. Currently the encoding is not a user-visible
2413 assume utf_8. Currently the encoding is not a user-visible
2408 setting, though it could be made so if there is demand for it.
2414 setting, though it could be made so if there is demand for it.
2409
2415
2410 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2416 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2411
2417
2412 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2418 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2413
2419
2414 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2420 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2415
2421
2416 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2422 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2417 code can work transparently for 2.2/2.3.
2423 code can work transparently for 2.2/2.3.
2418
2424
2419 2005-07-16 Fernando Perez <fperez@colorado.edu>
2425 2005-07-16 Fernando Perez <fperez@colorado.edu>
2420
2426
2421 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2427 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2422 out of the color scheme table used for coloring exception
2428 out of the color scheme table used for coloring exception
2423 tracebacks. This allows user code to add new schemes at runtime.
2429 tracebacks. This allows user code to add new schemes at runtime.
2424 This is a minimally modified version of the patch at
2430 This is a minimally modified version of the patch at
2425 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2431 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2426 for the contribution.
2432 for the contribution.
2427
2433
2428 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2434 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2429 slightly modified version of the patch in
2435 slightly modified version of the patch in
2430 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2436 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2431 to remove the previous try/except solution (which was costlier).
2437 to remove the previous try/except solution (which was costlier).
2432 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2438 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2433
2439
2434 2005-06-08 Fernando Perez <fperez@colorado.edu>
2440 2005-06-08 Fernando Perez <fperez@colorado.edu>
2435
2441
2436 * IPython/iplib.py (write/write_err): Add methods to abstract all
2442 * IPython/iplib.py (write/write_err): Add methods to abstract all
2437 I/O a bit more.
2443 I/O a bit more.
2438
2444
2439 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2445 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2440 warning, reported by Aric Hagberg, fix by JD Hunter.
2446 warning, reported by Aric Hagberg, fix by JD Hunter.
2441
2447
2442 2005-06-02 *** Released version 0.6.15
2448 2005-06-02 *** Released version 0.6.15
2443
2449
2444 2005-06-01 Fernando Perez <fperez@colorado.edu>
2450 2005-06-01 Fernando Perez <fperez@colorado.edu>
2445
2451
2446 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2452 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2447 tab-completion of filenames within open-quoted strings. Note that
2453 tab-completion of filenames within open-quoted strings. Note that
2448 this requires that in ~/.ipython/ipythonrc, users change the
2454 this requires that in ~/.ipython/ipythonrc, users change the
2449 readline delimiters configuration to read:
2455 readline delimiters configuration to read:
2450
2456
2451 readline_remove_delims -/~
2457 readline_remove_delims -/~
2452
2458
2453
2459
2454 2005-05-31 *** Released version 0.6.14
2460 2005-05-31 *** Released version 0.6.14
2455
2461
2456 2005-05-29 Fernando Perez <fperez@colorado.edu>
2462 2005-05-29 Fernando Perez <fperez@colorado.edu>
2457
2463
2458 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2464 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2459 with files not on the filesystem. Reported by Eliyahu Sandler
2465 with files not on the filesystem. Reported by Eliyahu Sandler
2460 <eli@gondolin.net>
2466 <eli@gondolin.net>
2461
2467
2462 2005-05-22 Fernando Perez <fperez@colorado.edu>
2468 2005-05-22 Fernando Perez <fperez@colorado.edu>
2463
2469
2464 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2470 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2465 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2471 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2466
2472
2467 2005-05-19 Fernando Perez <fperez@colorado.edu>
2473 2005-05-19 Fernando Perez <fperez@colorado.edu>
2468
2474
2469 * IPython/iplib.py (safe_execfile): close a file which could be
2475 * IPython/iplib.py (safe_execfile): close a file which could be
2470 left open (causing problems in win32, which locks open files).
2476 left open (causing problems in win32, which locks open files).
2471 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2477 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2472
2478
2473 2005-05-18 Fernando Perez <fperez@colorado.edu>
2479 2005-05-18 Fernando Perez <fperez@colorado.edu>
2474
2480
2475 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2481 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2476 keyword arguments correctly to safe_execfile().
2482 keyword arguments correctly to safe_execfile().
2477
2483
2478 2005-05-13 Fernando Perez <fperez@colorado.edu>
2484 2005-05-13 Fernando Perez <fperez@colorado.edu>
2479
2485
2480 * ipython.1: Added info about Qt to manpage, and threads warning
2486 * ipython.1: Added info about Qt to manpage, and threads warning
2481 to usage page (invoked with --help).
2487 to usage page (invoked with --help).
2482
2488
2483 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2489 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2484 new matcher (it goes at the end of the priority list) to do
2490 new matcher (it goes at the end of the priority list) to do
2485 tab-completion on named function arguments. Submitted by George
2491 tab-completion on named function arguments. Submitted by George
2486 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2492 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2487 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2493 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2488 for more details.
2494 for more details.
2489
2495
2490 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2496 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2491 SystemExit exceptions in the script being run. Thanks to a report
2497 SystemExit exceptions in the script being run. Thanks to a report
2492 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2498 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2493 producing very annoying behavior when running unit tests.
2499 producing very annoying behavior when running unit tests.
2494
2500
2495 2005-05-12 Fernando Perez <fperez@colorado.edu>
2501 2005-05-12 Fernando Perez <fperez@colorado.edu>
2496
2502
2497 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2503 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2498 which I'd broken (again) due to a changed regexp. In the process,
2504 which I'd broken (again) due to a changed regexp. In the process,
2499 added ';' as an escape to auto-quote the whole line without
2505 added ';' as an escape to auto-quote the whole line without
2500 splitting its arguments. Thanks to a report by Jerry McRae
2506 splitting its arguments. Thanks to a report by Jerry McRae
2501 <qrs0xyc02-AT-sneakemail.com>.
2507 <qrs0xyc02-AT-sneakemail.com>.
2502
2508
2503 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2509 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2504 possible crashes caused by a TokenError. Reported by Ed Schofield
2510 possible crashes caused by a TokenError. Reported by Ed Schofield
2505 <schofield-AT-ftw.at>.
2511 <schofield-AT-ftw.at>.
2506
2512
2507 2005-05-06 Fernando Perez <fperez@colorado.edu>
2513 2005-05-06 Fernando Perez <fperez@colorado.edu>
2508
2514
2509 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2515 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2510
2516
2511 2005-04-29 Fernando Perez <fperez@colorado.edu>
2517 2005-04-29 Fernando Perez <fperez@colorado.edu>
2512
2518
2513 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2519 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2514 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2520 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2515 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2521 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2516 which provides support for Qt interactive usage (similar to the
2522 which provides support for Qt interactive usage (similar to the
2517 existing one for WX and GTK). This had been often requested.
2523 existing one for WX and GTK). This had been often requested.
2518
2524
2519 2005-04-14 *** Released version 0.6.13
2525 2005-04-14 *** Released version 0.6.13
2520
2526
2521 2005-04-08 Fernando Perez <fperez@colorado.edu>
2527 2005-04-08 Fernando Perez <fperez@colorado.edu>
2522
2528
2523 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2529 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2524 from _ofind, which gets called on almost every input line. Now,
2530 from _ofind, which gets called on almost every input line. Now,
2525 we only try to get docstrings if they are actually going to be
2531 we only try to get docstrings if they are actually going to be
2526 used (the overhead of fetching unnecessary docstrings can be
2532 used (the overhead of fetching unnecessary docstrings can be
2527 noticeable for certain objects, such as Pyro proxies).
2533 noticeable for certain objects, such as Pyro proxies).
2528
2534
2529 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2535 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2530 for completers. For some reason I had been passing them the state
2536 for completers. For some reason I had been passing them the state
2531 variable, which completers never actually need, and was in
2537 variable, which completers never actually need, and was in
2532 conflict with the rlcompleter API. Custom completers ONLY need to
2538 conflict with the rlcompleter API. Custom completers ONLY need to
2533 take the text parameter.
2539 take the text parameter.
2534
2540
2535 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2541 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2536 work correctly in pysh. I've also moved all the logic which used
2542 work correctly in pysh. I've also moved all the logic which used
2537 to be in pysh.py here, which will prevent problems with future
2543 to be in pysh.py here, which will prevent problems with future
2538 upgrades. However, this time I must warn users to update their
2544 upgrades. However, this time I must warn users to update their
2539 pysh profile to include the line
2545 pysh profile to include the line
2540
2546
2541 import_all IPython.Extensions.InterpreterExec
2547 import_all IPython.Extensions.InterpreterExec
2542
2548
2543 because otherwise things won't work for them. They MUST also
2549 because otherwise things won't work for them. They MUST also
2544 delete pysh.py and the line
2550 delete pysh.py and the line
2545
2551
2546 execfile pysh.py
2552 execfile pysh.py
2547
2553
2548 from their ipythonrc-pysh.
2554 from their ipythonrc-pysh.
2549
2555
2550 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2556 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2551 robust in the face of objects whose dir() returns non-strings
2557 robust in the face of objects whose dir() returns non-strings
2552 (which it shouldn't, but some broken libs like ITK do). Thanks to
2558 (which it shouldn't, but some broken libs like ITK do). Thanks to
2553 a patch by John Hunter (implemented differently, though). Also
2559 a patch by John Hunter (implemented differently, though). Also
2554 minor improvements by using .extend instead of + on lists.
2560 minor improvements by using .extend instead of + on lists.
2555
2561
2556 * pysh.py:
2562 * pysh.py:
2557
2563
2558 2005-04-06 Fernando Perez <fperez@colorado.edu>
2564 2005-04-06 Fernando Perez <fperez@colorado.edu>
2559
2565
2560 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2566 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2561 by default, so that all users benefit from it. Those who don't
2567 by default, so that all users benefit from it. Those who don't
2562 want it can still turn it off.
2568 want it can still turn it off.
2563
2569
2564 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2570 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2565 config file, I'd forgotten about this, so users were getting it
2571 config file, I'd forgotten about this, so users were getting it
2566 off by default.
2572 off by default.
2567
2573
2568 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2574 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2569 consistency. Now magics can be called in multiline statements,
2575 consistency. Now magics can be called in multiline statements,
2570 and python variables can be expanded in magic calls via $var.
2576 and python variables can be expanded in magic calls via $var.
2571 This makes the magic system behave just like aliases or !system
2577 This makes the magic system behave just like aliases or !system
2572 calls.
2578 calls.
2573
2579
2574 2005-03-28 Fernando Perez <fperez@colorado.edu>
2580 2005-03-28 Fernando Perez <fperez@colorado.edu>
2575
2581
2576 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2582 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2577 expensive string additions for building command. Add support for
2583 expensive string additions for building command. Add support for
2578 trailing ';' when autocall is used.
2584 trailing ';' when autocall is used.
2579
2585
2580 2005-03-26 Fernando Perez <fperez@colorado.edu>
2586 2005-03-26 Fernando Perez <fperez@colorado.edu>
2581
2587
2582 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2588 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2583 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2589 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2584 ipython.el robust against prompts with any number of spaces
2590 ipython.el robust against prompts with any number of spaces
2585 (including 0) after the ':' character.
2591 (including 0) after the ':' character.
2586
2592
2587 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2593 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2588 continuation prompt, which misled users to think the line was
2594 continuation prompt, which misled users to think the line was
2589 already indented. Closes debian Bug#300847, reported to me by
2595 already indented. Closes debian Bug#300847, reported to me by
2590 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2596 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2591
2597
2592 2005-03-23 Fernando Perez <fperez@colorado.edu>
2598 2005-03-23 Fernando Perez <fperez@colorado.edu>
2593
2599
2594 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2600 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2595 properly aligned if they have embedded newlines.
2601 properly aligned if they have embedded newlines.
2596
2602
2597 * IPython/iplib.py (runlines): Add a public method to expose
2603 * IPython/iplib.py (runlines): Add a public method to expose
2598 IPython's code execution machinery, so that users can run strings
2604 IPython's code execution machinery, so that users can run strings
2599 as if they had been typed at the prompt interactively.
2605 as if they had been typed at the prompt interactively.
2600 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2606 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2601 methods which can call the system shell, but with python variable
2607 methods which can call the system shell, but with python variable
2602 expansion. The three such methods are: __IPYTHON__.system,
2608 expansion. The three such methods are: __IPYTHON__.system,
2603 .getoutput and .getoutputerror. These need to be documented in a
2609 .getoutput and .getoutputerror. These need to be documented in a
2604 'public API' section (to be written) of the manual.
2610 'public API' section (to be written) of the manual.
2605
2611
2606 2005-03-20 Fernando Perez <fperez@colorado.edu>
2612 2005-03-20 Fernando Perez <fperez@colorado.edu>
2607
2613
2608 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2614 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2609 for custom exception handling. This is quite powerful, and it
2615 for custom exception handling. This is quite powerful, and it
2610 allows for user-installable exception handlers which can trap
2616 allows for user-installable exception handlers which can trap
2611 custom exceptions at runtime and treat them separately from
2617 custom exceptions at runtime and treat them separately from
2612 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2618 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2613 Mantegazza <mantegazza-AT-ill.fr>.
2619 Mantegazza <mantegazza-AT-ill.fr>.
2614 (InteractiveShell.set_custom_completer): public API function to
2620 (InteractiveShell.set_custom_completer): public API function to
2615 add new completers at runtime.
2621 add new completers at runtime.
2616
2622
2617 2005-03-19 Fernando Perez <fperez@colorado.edu>
2623 2005-03-19 Fernando Perez <fperez@colorado.edu>
2618
2624
2619 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2625 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2620 allow objects which provide their docstrings via non-standard
2626 allow objects which provide their docstrings via non-standard
2621 mechanisms (like Pyro proxies) to still be inspected by ipython's
2627 mechanisms (like Pyro proxies) to still be inspected by ipython's
2622 ? system.
2628 ? system.
2623
2629
2624 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2630 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2625 automatic capture system. I tried quite hard to make it work
2631 automatic capture system. I tried quite hard to make it work
2626 reliably, and simply failed. I tried many combinations with the
2632 reliably, and simply failed. I tried many combinations with the
2627 subprocess module, but eventually nothing worked in all needed
2633 subprocess module, but eventually nothing worked in all needed
2628 cases (not blocking stdin for the child, duplicating stdout
2634 cases (not blocking stdin for the child, duplicating stdout
2629 without blocking, etc). The new %sc/%sx still do capture to these
2635 without blocking, etc). The new %sc/%sx still do capture to these
2630 magical list/string objects which make shell use much more
2636 magical list/string objects which make shell use much more
2631 conveninent, so not all is lost.
2637 conveninent, so not all is lost.
2632
2638
2633 XXX - FIX MANUAL for the change above!
2639 XXX - FIX MANUAL for the change above!
2634
2640
2635 (runsource): I copied code.py's runsource() into ipython to modify
2641 (runsource): I copied code.py's runsource() into ipython to modify
2636 it a bit. Now the code object and source to be executed are
2642 it a bit. Now the code object and source to be executed are
2637 stored in ipython. This makes this info accessible to third-party
2643 stored in ipython. This makes this info accessible to third-party
2638 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2644 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2639 Mantegazza <mantegazza-AT-ill.fr>.
2645 Mantegazza <mantegazza-AT-ill.fr>.
2640
2646
2641 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2647 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2642 history-search via readline (like C-p/C-n). I'd wanted this for a
2648 history-search via readline (like C-p/C-n). I'd wanted this for a
2643 long time, but only recently found out how to do it. For users
2649 long time, but only recently found out how to do it. For users
2644 who already have their ipythonrc files made and want this, just
2650 who already have their ipythonrc files made and want this, just
2645 add:
2651 add:
2646
2652
2647 readline_parse_and_bind "\e[A": history-search-backward
2653 readline_parse_and_bind "\e[A": history-search-backward
2648 readline_parse_and_bind "\e[B": history-search-forward
2654 readline_parse_and_bind "\e[B": history-search-forward
2649
2655
2650 2005-03-18 Fernando Perez <fperez@colorado.edu>
2656 2005-03-18 Fernando Perez <fperez@colorado.edu>
2651
2657
2652 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2658 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2653 LSString and SList classes which allow transparent conversions
2659 LSString and SList classes which allow transparent conversions
2654 between list mode and whitespace-separated string.
2660 between list mode and whitespace-separated string.
2655 (magic_r): Fix recursion problem in %r.
2661 (magic_r): Fix recursion problem in %r.
2656
2662
2657 * IPython/genutils.py (LSString): New class to be used for
2663 * IPython/genutils.py (LSString): New class to be used for
2658 automatic storage of the results of all alias/system calls in _o
2664 automatic storage of the results of all alias/system calls in _o
2659 and _e (stdout/err). These provide a .l/.list attribute which
2665 and _e (stdout/err). These provide a .l/.list attribute which
2660 does automatic splitting on newlines. This means that for most
2666 does automatic splitting on newlines. This means that for most
2661 uses, you'll never need to do capturing of output with %sc/%sx
2667 uses, you'll never need to do capturing of output with %sc/%sx
2662 anymore, since ipython keeps this always done for you. Note that
2668 anymore, since ipython keeps this always done for you. Note that
2663 only the LAST results are stored, the _o/e variables are
2669 only the LAST results are stored, the _o/e variables are
2664 overwritten on each call. If you need to save their contents
2670 overwritten on each call. If you need to save their contents
2665 further, simply bind them to any other name.
2671 further, simply bind them to any other name.
2666
2672
2667 2005-03-17 Fernando Perez <fperez@colorado.edu>
2673 2005-03-17 Fernando Perez <fperez@colorado.edu>
2668
2674
2669 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2675 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2670 prompt namespace handling.
2676 prompt namespace handling.
2671
2677
2672 2005-03-16 Fernando Perez <fperez@colorado.edu>
2678 2005-03-16 Fernando Perez <fperez@colorado.edu>
2673
2679
2674 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2680 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2675 classic prompts to be '>>> ' (final space was missing, and it
2681 classic prompts to be '>>> ' (final space was missing, and it
2676 trips the emacs python mode).
2682 trips the emacs python mode).
2677 (BasePrompt.__str__): Added safe support for dynamic prompt
2683 (BasePrompt.__str__): Added safe support for dynamic prompt
2678 strings. Now you can set your prompt string to be '$x', and the
2684 strings. Now you can set your prompt string to be '$x', and the
2679 value of x will be printed from your interactive namespace. The
2685 value of x will be printed from your interactive namespace. The
2680 interpolation syntax includes the full Itpl support, so
2686 interpolation syntax includes the full Itpl support, so
2681 ${foo()+x+bar()} is a valid prompt string now, and the function
2687 ${foo()+x+bar()} is a valid prompt string now, and the function
2682 calls will be made at runtime.
2688 calls will be made at runtime.
2683
2689
2684 2005-03-15 Fernando Perez <fperez@colorado.edu>
2690 2005-03-15 Fernando Perez <fperez@colorado.edu>
2685
2691
2686 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2692 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2687 avoid name clashes in pylab. %hist still works, it just forwards
2693 avoid name clashes in pylab. %hist still works, it just forwards
2688 the call to %history.
2694 the call to %history.
2689
2695
2690 2005-03-02 *** Released version 0.6.12
2696 2005-03-02 *** Released version 0.6.12
2691
2697
2692 2005-03-02 Fernando Perez <fperez@colorado.edu>
2698 2005-03-02 Fernando Perez <fperez@colorado.edu>
2693
2699
2694 * IPython/iplib.py (handle_magic): log magic calls properly as
2700 * IPython/iplib.py (handle_magic): log magic calls properly as
2695 ipmagic() function calls.
2701 ipmagic() function calls.
2696
2702
2697 * IPython/Magic.py (magic_time): Improved %time to support
2703 * IPython/Magic.py (magic_time): Improved %time to support
2698 statements and provide wall-clock as well as CPU time.
2704 statements and provide wall-clock as well as CPU time.
2699
2705
2700 2005-02-27 Fernando Perez <fperez@colorado.edu>
2706 2005-02-27 Fernando Perez <fperez@colorado.edu>
2701
2707
2702 * IPython/hooks.py: New hooks module, to expose user-modifiable
2708 * IPython/hooks.py: New hooks module, to expose user-modifiable
2703 IPython functionality in a clean manner. For now only the editor
2709 IPython functionality in a clean manner. For now only the editor
2704 hook is actually written, and other thigns which I intend to turn
2710 hook is actually written, and other thigns which I intend to turn
2705 into proper hooks aren't yet there. The display and prefilter
2711 into proper hooks aren't yet there. The display and prefilter
2706 stuff, for example, should be hooks. But at least now the
2712 stuff, for example, should be hooks. But at least now the
2707 framework is in place, and the rest can be moved here with more
2713 framework is in place, and the rest can be moved here with more
2708 time later. IPython had had a .hooks variable for a long time for
2714 time later. IPython had had a .hooks variable for a long time for
2709 this purpose, but I'd never actually used it for anything.
2715 this purpose, but I'd never actually used it for anything.
2710
2716
2711 2005-02-26 Fernando Perez <fperez@colorado.edu>
2717 2005-02-26 Fernando Perez <fperez@colorado.edu>
2712
2718
2713 * IPython/ipmaker.py (make_IPython): make the default ipython
2719 * IPython/ipmaker.py (make_IPython): make the default ipython
2714 directory be called _ipython under win32, to follow more the
2720 directory be called _ipython under win32, to follow more the
2715 naming peculiarities of that platform (where buggy software like
2721 naming peculiarities of that platform (where buggy software like
2716 Visual Sourcesafe breaks with .named directories). Reported by
2722 Visual Sourcesafe breaks with .named directories). Reported by
2717 Ville Vainio.
2723 Ville Vainio.
2718
2724
2719 2005-02-23 Fernando Perez <fperez@colorado.edu>
2725 2005-02-23 Fernando Perez <fperez@colorado.edu>
2720
2726
2721 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2727 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2722 auto_aliases for win32 which were causing problems. Users can
2728 auto_aliases for win32 which were causing problems. Users can
2723 define the ones they personally like.
2729 define the ones they personally like.
2724
2730
2725 2005-02-21 Fernando Perez <fperez@colorado.edu>
2731 2005-02-21 Fernando Perez <fperez@colorado.edu>
2726
2732
2727 * IPython/Magic.py (magic_time): new magic to time execution of
2733 * IPython/Magic.py (magic_time): new magic to time execution of
2728 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2734 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2729
2735
2730 2005-02-19 Fernando Perez <fperez@colorado.edu>
2736 2005-02-19 Fernando Perez <fperez@colorado.edu>
2731
2737
2732 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2738 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2733 into keys (for prompts, for example).
2739 into keys (for prompts, for example).
2734
2740
2735 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2741 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2736 prompts in case users want them. This introduces a small behavior
2742 prompts in case users want them. This introduces a small behavior
2737 change: ipython does not automatically add a space to all prompts
2743 change: ipython does not automatically add a space to all prompts
2738 anymore. To get the old prompts with a space, users should add it
2744 anymore. To get the old prompts with a space, users should add it
2739 manually to their ipythonrc file, so for example prompt_in1 should
2745 manually to their ipythonrc file, so for example prompt_in1 should
2740 now read 'In [\#]: ' instead of 'In [\#]:'.
2746 now read 'In [\#]: ' instead of 'In [\#]:'.
2741 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2747 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2742 file) to control left-padding of secondary prompts.
2748 file) to control left-padding of secondary prompts.
2743
2749
2744 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2750 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2745 the profiler can't be imported. Fix for Debian, which removed
2751 the profiler can't be imported. Fix for Debian, which removed
2746 profile.py because of License issues. I applied a slightly
2752 profile.py because of License issues. I applied a slightly
2747 modified version of the original Debian patch at
2753 modified version of the original Debian patch at
2748 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2754 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2749
2755
2750 2005-02-17 Fernando Perez <fperez@colorado.edu>
2756 2005-02-17 Fernando Perez <fperez@colorado.edu>
2751
2757
2752 * IPython/genutils.py (native_line_ends): Fix bug which would
2758 * IPython/genutils.py (native_line_ends): Fix bug which would
2753 cause improper line-ends under win32 b/c I was not opening files
2759 cause improper line-ends under win32 b/c I was not opening files
2754 in binary mode. Bug report and fix thanks to Ville.
2760 in binary mode. Bug report and fix thanks to Ville.
2755
2761
2756 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2762 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2757 trying to catch spurious foo[1] autocalls. My fix actually broke
2763 trying to catch spurious foo[1] autocalls. My fix actually broke
2758 ',/' autoquote/call with explicit escape (bad regexp).
2764 ',/' autoquote/call with explicit escape (bad regexp).
2759
2765
2760 2005-02-15 *** Released version 0.6.11
2766 2005-02-15 *** Released version 0.6.11
2761
2767
2762 2005-02-14 Fernando Perez <fperez@colorado.edu>
2768 2005-02-14 Fernando Perez <fperez@colorado.edu>
2763
2769
2764 * IPython/background_jobs.py: New background job management
2770 * IPython/background_jobs.py: New background job management
2765 subsystem. This is implemented via a new set of classes, and
2771 subsystem. This is implemented via a new set of classes, and
2766 IPython now provides a builtin 'jobs' object for background job
2772 IPython now provides a builtin 'jobs' object for background job
2767 execution. A convenience %bg magic serves as a lightweight
2773 execution. A convenience %bg magic serves as a lightweight
2768 frontend for starting the more common type of calls. This was
2774 frontend for starting the more common type of calls. This was
2769 inspired by discussions with B. Granger and the BackgroundCommand
2775 inspired by discussions with B. Granger and the BackgroundCommand
2770 class described in the book Python Scripting for Computational
2776 class described in the book Python Scripting for Computational
2771 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2777 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2772 (although ultimately no code from this text was used, as IPython's
2778 (although ultimately no code from this text was used, as IPython's
2773 system is a separate implementation).
2779 system is a separate implementation).
2774
2780
2775 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2781 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2776 to control the completion of single/double underscore names
2782 to control the completion of single/double underscore names
2777 separately. As documented in the example ipytonrc file, the
2783 separately. As documented in the example ipytonrc file, the
2778 readline_omit__names variable can now be set to 2, to omit even
2784 readline_omit__names variable can now be set to 2, to omit even
2779 single underscore names. Thanks to a patch by Brian Wong
2785 single underscore names. Thanks to a patch by Brian Wong
2780 <BrianWong-AT-AirgoNetworks.Com>.
2786 <BrianWong-AT-AirgoNetworks.Com>.
2781 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2787 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2782 be autocalled as foo([1]) if foo were callable. A problem for
2788 be autocalled as foo([1]) if foo were callable. A problem for
2783 things which are both callable and implement __getitem__.
2789 things which are both callable and implement __getitem__.
2784 (init_readline): Fix autoindentation for win32. Thanks to a patch
2790 (init_readline): Fix autoindentation for win32. Thanks to a patch
2785 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2791 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2786
2792
2787 2005-02-12 Fernando Perez <fperez@colorado.edu>
2793 2005-02-12 Fernando Perez <fperez@colorado.edu>
2788
2794
2789 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2795 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2790 which I had written long ago to sort out user error messages which
2796 which I had written long ago to sort out user error messages which
2791 may occur during startup. This seemed like a good idea initially,
2797 may occur during startup. This seemed like a good idea initially,
2792 but it has proven a disaster in retrospect. I don't want to
2798 but it has proven a disaster in retrospect. I don't want to
2793 change much code for now, so my fix is to set the internal 'debug'
2799 change much code for now, so my fix is to set the internal 'debug'
2794 flag to true everywhere, whose only job was precisely to control
2800 flag to true everywhere, whose only job was precisely to control
2795 this subsystem. This closes issue 28 (as well as avoiding all
2801 this subsystem. This closes issue 28 (as well as avoiding all
2796 sorts of strange hangups which occur from time to time).
2802 sorts of strange hangups which occur from time to time).
2797
2803
2798 2005-02-07 Fernando Perez <fperez@colorado.edu>
2804 2005-02-07 Fernando Perez <fperez@colorado.edu>
2799
2805
2800 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2806 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2801 previous call produced a syntax error.
2807 previous call produced a syntax error.
2802
2808
2803 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2809 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2804 classes without constructor.
2810 classes without constructor.
2805
2811
2806 2005-02-06 Fernando Perez <fperez@colorado.edu>
2812 2005-02-06 Fernando Perez <fperez@colorado.edu>
2807
2813
2808 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2814 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2809 completions with the results of each matcher, so we return results
2815 completions with the results of each matcher, so we return results
2810 to the user from all namespaces. This breaks with ipython
2816 to the user from all namespaces. This breaks with ipython
2811 tradition, but I think it's a nicer behavior. Now you get all
2817 tradition, but I think it's a nicer behavior. Now you get all
2812 possible completions listed, from all possible namespaces (python,
2818 possible completions listed, from all possible namespaces (python,
2813 filesystem, magics...) After a request by John Hunter
2819 filesystem, magics...) After a request by John Hunter
2814 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2820 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2815
2821
2816 2005-02-05 Fernando Perez <fperez@colorado.edu>
2822 2005-02-05 Fernando Perez <fperez@colorado.edu>
2817
2823
2818 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2824 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2819 the call had quote characters in it (the quotes were stripped).
2825 the call had quote characters in it (the quotes were stripped).
2820
2826
2821 2005-01-31 Fernando Perez <fperez@colorado.edu>
2827 2005-01-31 Fernando Perez <fperez@colorado.edu>
2822
2828
2823 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2829 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2824 Itpl.itpl() to make the code more robust against psyco
2830 Itpl.itpl() to make the code more robust against psyco
2825 optimizations.
2831 optimizations.
2826
2832
2827 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2833 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2828 of causing an exception. Quicker, cleaner.
2834 of causing an exception. Quicker, cleaner.
2829
2835
2830 2005-01-28 Fernando Perez <fperez@colorado.edu>
2836 2005-01-28 Fernando Perez <fperez@colorado.edu>
2831
2837
2832 * scripts/ipython_win_post_install.py (install): hardcode
2838 * scripts/ipython_win_post_install.py (install): hardcode
2833 sys.prefix+'python.exe' as the executable path. It turns out that
2839 sys.prefix+'python.exe' as the executable path. It turns out that
2834 during the post-installation run, sys.executable resolves to the
2840 during the post-installation run, sys.executable resolves to the
2835 name of the binary installer! I should report this as a distutils
2841 name of the binary installer! I should report this as a distutils
2836 bug, I think. I updated the .10 release with this tiny fix, to
2842 bug, I think. I updated the .10 release with this tiny fix, to
2837 avoid annoying the lists further.
2843 avoid annoying the lists further.
2838
2844
2839 2005-01-27 *** Released version 0.6.10
2845 2005-01-27 *** Released version 0.6.10
2840
2846
2841 2005-01-27 Fernando Perez <fperez@colorado.edu>
2847 2005-01-27 Fernando Perez <fperez@colorado.edu>
2842
2848
2843 * IPython/numutils.py (norm): Added 'inf' as optional name for
2849 * IPython/numutils.py (norm): Added 'inf' as optional name for
2844 L-infinity norm, included references to mathworld.com for vector
2850 L-infinity norm, included references to mathworld.com for vector
2845 norm definitions.
2851 norm definitions.
2846 (amin/amax): added amin/amax for array min/max. Similar to what
2852 (amin/amax): added amin/amax for array min/max. Similar to what
2847 pylab ships with after the recent reorganization of names.
2853 pylab ships with after the recent reorganization of names.
2848 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2854 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2849
2855
2850 * ipython.el: committed Alex's recent fixes and improvements.
2856 * ipython.el: committed Alex's recent fixes and improvements.
2851 Tested with python-mode from CVS, and it looks excellent. Since
2857 Tested with python-mode from CVS, and it looks excellent. Since
2852 python-mode hasn't released anything in a while, I'm temporarily
2858 python-mode hasn't released anything in a while, I'm temporarily
2853 putting a copy of today's CVS (v 4.70) of python-mode in:
2859 putting a copy of today's CVS (v 4.70) of python-mode in:
2854 http://ipython.scipy.org/tmp/python-mode.el
2860 http://ipython.scipy.org/tmp/python-mode.el
2855
2861
2856 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2862 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2857 sys.executable for the executable name, instead of assuming it's
2863 sys.executable for the executable name, instead of assuming it's
2858 called 'python.exe' (the post-installer would have produced broken
2864 called 'python.exe' (the post-installer would have produced broken
2859 setups on systems with a differently named python binary).
2865 setups on systems with a differently named python binary).
2860
2866
2861 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2867 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2862 references to os.linesep, to make the code more
2868 references to os.linesep, to make the code more
2863 platform-independent. This is also part of the win32 coloring
2869 platform-independent. This is also part of the win32 coloring
2864 fixes.
2870 fixes.
2865
2871
2866 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2872 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2867 lines, which actually cause coloring bugs because the length of
2873 lines, which actually cause coloring bugs because the length of
2868 the line is very difficult to correctly compute with embedded
2874 the line is very difficult to correctly compute with embedded
2869 escapes. This was the source of all the coloring problems under
2875 escapes. This was the source of all the coloring problems under
2870 Win32. I think that _finally_, Win32 users have a properly
2876 Win32. I think that _finally_, Win32 users have a properly
2871 working ipython in all respects. This would never have happened
2877 working ipython in all respects. This would never have happened
2872 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2878 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2873
2879
2874 2005-01-26 *** Released version 0.6.9
2880 2005-01-26 *** Released version 0.6.9
2875
2881
2876 2005-01-25 Fernando Perez <fperez@colorado.edu>
2882 2005-01-25 Fernando Perez <fperez@colorado.edu>
2877
2883
2878 * setup.py: finally, we have a true Windows installer, thanks to
2884 * setup.py: finally, we have a true Windows installer, thanks to
2879 the excellent work of Viktor Ransmayr
2885 the excellent work of Viktor Ransmayr
2880 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2886 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2881 Windows users. The setup routine is quite a bit cleaner thanks to
2887 Windows users. The setup routine is quite a bit cleaner thanks to
2882 this, and the post-install script uses the proper functions to
2888 this, and the post-install script uses the proper functions to
2883 allow a clean de-installation using the standard Windows Control
2889 allow a clean de-installation using the standard Windows Control
2884 Panel.
2890 Panel.
2885
2891
2886 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2892 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2887 environment variable under all OSes (including win32) if
2893 environment variable under all OSes (including win32) if
2888 available. This will give consistency to win32 users who have set
2894 available. This will give consistency to win32 users who have set
2889 this variable for any reason. If os.environ['HOME'] fails, the
2895 this variable for any reason. If os.environ['HOME'] fails, the
2890 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2896 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2891
2897
2892 2005-01-24 Fernando Perez <fperez@colorado.edu>
2898 2005-01-24 Fernando Perez <fperez@colorado.edu>
2893
2899
2894 * IPython/numutils.py (empty_like): add empty_like(), similar to
2900 * IPython/numutils.py (empty_like): add empty_like(), similar to
2895 zeros_like() but taking advantage of the new empty() Numeric routine.
2901 zeros_like() but taking advantage of the new empty() Numeric routine.
2896
2902
2897 2005-01-23 *** Released version 0.6.8
2903 2005-01-23 *** Released version 0.6.8
2898
2904
2899 2005-01-22 Fernando Perez <fperez@colorado.edu>
2905 2005-01-22 Fernando Perez <fperez@colorado.edu>
2900
2906
2901 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2907 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2902 automatic show() calls. After discussing things with JDH, it
2908 automatic show() calls. After discussing things with JDH, it
2903 turns out there are too many corner cases where this can go wrong.
2909 turns out there are too many corner cases where this can go wrong.
2904 It's best not to try to be 'too smart', and simply have ipython
2910 It's best not to try to be 'too smart', and simply have ipython
2905 reproduce as much as possible the default behavior of a normal
2911 reproduce as much as possible the default behavior of a normal
2906 python shell.
2912 python shell.
2907
2913
2908 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2914 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2909 line-splitting regexp and _prefilter() to avoid calling getattr()
2915 line-splitting regexp and _prefilter() to avoid calling getattr()
2910 on assignments. This closes
2916 on assignments. This closes
2911 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2917 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2912 readline uses getattr(), so a simple <TAB> keypress is still
2918 readline uses getattr(), so a simple <TAB> keypress is still
2913 enough to trigger getattr() calls on an object.
2919 enough to trigger getattr() calls on an object.
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 (MatplotlibShellBase.magic_run): Fix the %run
2923 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2918 docstring under pylab so it doesn't mask the original.
2924 docstring under pylab so it doesn't mask the original.
2919
2925
2920 2005-01-21 *** Released version 0.6.7
2926 2005-01-21 *** Released version 0.6.7
2921
2927
2922 2005-01-21 Fernando Perez <fperez@colorado.edu>
2928 2005-01-21 Fernando Perez <fperez@colorado.edu>
2923
2929
2924 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2930 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2925 signal handling for win32 users in multithreaded mode.
2931 signal handling for win32 users in multithreaded mode.
2926
2932
2927 2005-01-17 Fernando Perez <fperez@colorado.edu>
2933 2005-01-17 Fernando Perez <fperez@colorado.edu>
2928
2934
2929 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2935 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2930 instances with no __init__. After a crash report by Norbert Nemec
2936 instances with no __init__. After a crash report by Norbert Nemec
2931 <Norbert-AT-nemec-online.de>.
2937 <Norbert-AT-nemec-online.de>.
2932
2938
2933 2005-01-14 Fernando Perez <fperez@colorado.edu>
2939 2005-01-14 Fernando Perez <fperez@colorado.edu>
2934
2940
2935 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2941 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2936 names for verbose exceptions, when multiple dotted names and the
2942 names for verbose exceptions, when multiple dotted names and the
2937 'parent' object were present on the same line.
2943 'parent' object were present on the same line.
2938
2944
2939 2005-01-11 Fernando Perez <fperez@colorado.edu>
2945 2005-01-11 Fernando Perez <fperez@colorado.edu>
2940
2946
2941 * IPython/genutils.py (flag_calls): new utility to trap and flag
2947 * IPython/genutils.py (flag_calls): new utility to trap and flag
2942 calls in functions. I need it to clean up matplotlib support.
2948 calls in functions. I need it to clean up matplotlib support.
2943 Also removed some deprecated code in genutils.
2949 Also removed some deprecated code in genutils.
2944
2950
2945 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2951 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2946 that matplotlib scripts called with %run, which don't call show()
2952 that matplotlib scripts called with %run, which don't call show()
2947 themselves, still have their plotting windows open.
2953 themselves, still have their plotting windows open.
2948
2954
2949 2005-01-05 Fernando Perez <fperez@colorado.edu>
2955 2005-01-05 Fernando Perez <fperez@colorado.edu>
2950
2956
2951 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2957 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2952 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2958 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2953
2959
2954 2004-12-19 Fernando Perez <fperez@colorado.edu>
2960 2004-12-19 Fernando Perez <fperez@colorado.edu>
2955
2961
2956 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2962 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2957 parent_runcode, which was an eyesore. The same result can be
2963 parent_runcode, which was an eyesore. The same result can be
2958 obtained with Python's regular superclass mechanisms.
2964 obtained with Python's regular superclass mechanisms.
2959
2965
2960 2004-12-17 Fernando Perez <fperez@colorado.edu>
2966 2004-12-17 Fernando Perez <fperez@colorado.edu>
2961
2967
2962 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2968 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2963 reported by Prabhu.
2969 reported by Prabhu.
2964 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2970 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2965 sys.stderr) instead of explicitly calling sys.stderr. This helps
2971 sys.stderr) instead of explicitly calling sys.stderr. This helps
2966 maintain our I/O abstractions clean, for future GUI embeddings.
2972 maintain our I/O abstractions clean, for future GUI embeddings.
2967
2973
2968 * IPython/genutils.py (info): added new utility for sys.stderr
2974 * IPython/genutils.py (info): added new utility for sys.stderr
2969 unified info message handling (thin wrapper around warn()).
2975 unified info message handling (thin wrapper around warn()).
2970
2976
2971 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2977 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2972 composite (dotted) names on verbose exceptions.
2978 composite (dotted) names on verbose exceptions.
2973 (VerboseTB.nullrepr): harden against another kind of errors which
2979 (VerboseTB.nullrepr): harden against another kind of errors which
2974 Python's inspect module can trigger, and which were crashing
2980 Python's inspect module can trigger, and which were crashing
2975 IPython. Thanks to a report by Marco Lombardi
2981 IPython. Thanks to a report by Marco Lombardi
2976 <mlombard-AT-ma010192.hq.eso.org>.
2982 <mlombard-AT-ma010192.hq.eso.org>.
2977
2983
2978 2004-12-13 *** Released version 0.6.6
2984 2004-12-13 *** Released version 0.6.6
2979
2985
2980 2004-12-12 Fernando Perez <fperez@colorado.edu>
2986 2004-12-12 Fernando Perez <fperez@colorado.edu>
2981
2987
2982 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2988 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2983 generated by pygtk upon initialization if it was built without
2989 generated by pygtk upon initialization if it was built without
2984 threads (for matplotlib users). After a crash reported by
2990 threads (for matplotlib users). After a crash reported by
2985 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2991 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2986
2992
2987 * IPython/ipmaker.py (make_IPython): fix small bug in the
2993 * IPython/ipmaker.py (make_IPython): fix small bug in the
2988 import_some parameter for multiple imports.
2994 import_some parameter for multiple imports.
2989
2995
2990 * IPython/iplib.py (ipmagic): simplified the interface of
2996 * IPython/iplib.py (ipmagic): simplified the interface of
2991 ipmagic() to take a single string argument, just as it would be
2997 ipmagic() to take a single string argument, just as it would be
2992 typed at the IPython cmd line.
2998 typed at the IPython cmd line.
2993 (ipalias): Added new ipalias() with an interface identical to
2999 (ipalias): Added new ipalias() with an interface identical to
2994 ipmagic(). This completes exposing a pure python interface to the
3000 ipmagic(). This completes exposing a pure python interface to the
2995 alias and magic system, which can be used in loops or more complex
3001 alias and magic system, which can be used in loops or more complex
2996 code where IPython's automatic line mangling is not active.
3002 code where IPython's automatic line mangling is not active.
2997
3003
2998 * IPython/genutils.py (timing): changed interface of timing to
3004 * IPython/genutils.py (timing): changed interface of timing to
2999 simply run code once, which is the most common case. timings()
3005 simply run code once, which is the most common case. timings()
3000 remains unchanged, for the cases where you want multiple runs.
3006 remains unchanged, for the cases where you want multiple runs.
3001
3007
3002 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3008 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3003 bug where Python2.2 crashes with exec'ing code which does not end
3009 bug where Python2.2 crashes with exec'ing code which does not end
3004 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3010 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3005 before.
3011 before.
3006
3012
3007 2004-12-10 Fernando Perez <fperez@colorado.edu>
3013 2004-12-10 Fernando Perez <fperez@colorado.edu>
3008
3014
3009 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3015 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3010 -t to -T, to accomodate the new -t flag in %run (the %run and
3016 -t to -T, to accomodate the new -t flag in %run (the %run and
3011 %prun options are kind of intermixed, and it's not easy to change
3017 %prun options are kind of intermixed, and it's not easy to change
3012 this with the limitations of python's getopt).
3018 this with the limitations of python's getopt).
3013
3019
3014 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3020 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3015 the execution of scripts. It's not as fine-tuned as timeit.py,
3021 the execution of scripts. It's not as fine-tuned as timeit.py,
3016 but it works from inside ipython (and under 2.2, which lacks
3022 but it works from inside ipython (and under 2.2, which lacks
3017 timeit.py). Optionally a number of runs > 1 can be given for
3023 timeit.py). Optionally a number of runs > 1 can be given for
3018 timing very short-running code.
3024 timing very short-running code.
3019
3025
3020 * IPython/genutils.py (uniq_stable): new routine which returns a
3026 * IPython/genutils.py (uniq_stable): new routine which returns a
3021 list of unique elements in any iterable, but in stable order of
3027 list of unique elements in any iterable, but in stable order of
3022 appearance. I needed this for the ultraTB fixes, and it's a handy
3028 appearance. I needed this for the ultraTB fixes, and it's a handy
3023 utility.
3029 utility.
3024
3030
3025 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3031 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3026 dotted names in Verbose exceptions. This had been broken since
3032 dotted names in Verbose exceptions. This had been broken since
3027 the very start, now x.y will properly be printed in a Verbose
3033 the very start, now x.y will properly be printed in a Verbose
3028 traceback, instead of x being shown and y appearing always as an
3034 traceback, instead of x being shown and y appearing always as an
3029 'undefined global'. Getting this to work was a bit tricky,
3035 'undefined global'. Getting this to work was a bit tricky,
3030 because by default python tokenizers are stateless. Saved by
3036 because by default python tokenizers are stateless. Saved by
3031 python's ability to easily add a bit of state to an arbitrary
3037 python's ability to easily add a bit of state to an arbitrary
3032 function (without needing to build a full-blown callable object).
3038 function (without needing to build a full-blown callable object).
3033
3039
3034 Also big cleanup of this code, which had horrendous runtime
3040 Also big cleanup of this code, which had horrendous runtime
3035 lookups of zillions of attributes for colorization. Moved all
3041 lookups of zillions of attributes for colorization. Moved all
3036 this code into a few templates, which make it cleaner and quicker.
3042 this code into a few templates, which make it cleaner and quicker.
3037
3043
3038 Printout quality was also improved for Verbose exceptions: one
3044 Printout quality was also improved for Verbose exceptions: one
3039 variable per line, and memory addresses are printed (this can be
3045 variable per line, and memory addresses are printed (this can be
3040 quite handy in nasty debugging situations, which is what Verbose
3046 quite handy in nasty debugging situations, which is what Verbose
3041 is for).
3047 is for).
3042
3048
3043 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3049 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3044 the command line as scripts to be loaded by embedded instances.
3050 the command line as scripts to be loaded by embedded instances.
3045 Doing so has the potential for an infinite recursion if there are
3051 Doing so has the potential for an infinite recursion if there are
3046 exceptions thrown in the process. This fixes a strange crash
3052 exceptions thrown in the process. This fixes a strange crash
3047 reported by Philippe MULLER <muller-AT-irit.fr>.
3053 reported by Philippe MULLER <muller-AT-irit.fr>.
3048
3054
3049 2004-12-09 Fernando Perez <fperez@colorado.edu>
3055 2004-12-09 Fernando Perez <fperez@colorado.edu>
3050
3056
3051 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3057 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3052 to reflect new names in matplotlib, which now expose the
3058 to reflect new names in matplotlib, which now expose the
3053 matlab-compatible interface via a pylab module instead of the
3059 matlab-compatible interface via a pylab module instead of the
3054 'matlab' name. The new code is backwards compatible, so users of
3060 'matlab' name. The new code is backwards compatible, so users of
3055 all matplotlib versions are OK. Patch by J. Hunter.
3061 all matplotlib versions are OK. Patch by J. Hunter.
3056
3062
3057 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3063 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3058 of __init__ docstrings for instances (class docstrings are already
3064 of __init__ docstrings for instances (class docstrings are already
3059 automatically printed). Instances with customized docstrings
3065 automatically printed). Instances with customized docstrings
3060 (indep. of the class) are also recognized and all 3 separate
3066 (indep. of the class) are also recognized and all 3 separate
3061 docstrings are printed (instance, class, constructor). After some
3067 docstrings are printed (instance, class, constructor). After some
3062 comments/suggestions by J. Hunter.
3068 comments/suggestions by J. Hunter.
3063
3069
3064 2004-12-05 Fernando Perez <fperez@colorado.edu>
3070 2004-12-05 Fernando Perez <fperez@colorado.edu>
3065
3071
3066 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3072 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3067 warnings when tab-completion fails and triggers an exception.
3073 warnings when tab-completion fails and triggers an exception.
3068
3074
3069 2004-12-03 Fernando Perez <fperez@colorado.edu>
3075 2004-12-03 Fernando Perez <fperez@colorado.edu>
3070
3076
3071 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3077 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3072 be triggered when using 'run -p'. An incorrect option flag was
3078 be triggered when using 'run -p'. An incorrect option flag was
3073 being set ('d' instead of 'D').
3079 being set ('d' instead of 'D').
3074 (manpage): fix missing escaped \- sign.
3080 (manpage): fix missing escaped \- sign.
3075
3081
3076 2004-11-30 *** Released version 0.6.5
3082 2004-11-30 *** Released version 0.6.5
3077
3083
3078 2004-11-30 Fernando Perez <fperez@colorado.edu>
3084 2004-11-30 Fernando Perez <fperez@colorado.edu>
3079
3085
3080 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3086 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3081 setting with -d option.
3087 setting with -d option.
3082
3088
3083 * setup.py (docfiles): Fix problem where the doc glob I was using
3089 * setup.py (docfiles): Fix problem where the doc glob I was using
3084 was COMPLETELY BROKEN. It was giving the right files by pure
3090 was COMPLETELY BROKEN. It was giving the right files by pure
3085 accident, but failed once I tried to include ipython.el. Note:
3091 accident, but failed once I tried to include ipython.el. Note:
3086 glob() does NOT allow you to do exclusion on multiple endings!
3092 glob() does NOT allow you to do exclusion on multiple endings!
3087
3093
3088 2004-11-29 Fernando Perez <fperez@colorado.edu>
3094 2004-11-29 Fernando Perez <fperez@colorado.edu>
3089
3095
3090 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3096 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3091 the manpage as the source. Better formatting & consistency.
3097 the manpage as the source. Better formatting & consistency.
3092
3098
3093 * IPython/Magic.py (magic_run): Added new -d option, to run
3099 * IPython/Magic.py (magic_run): Added new -d option, to run
3094 scripts under the control of the python pdb debugger. Note that
3100 scripts under the control of the python pdb debugger. Note that
3095 this required changing the %prun option -d to -D, to avoid a clash
3101 this required changing the %prun option -d to -D, to avoid a clash
3096 (since %run must pass options to %prun, and getopt is too dumb to
3102 (since %run must pass options to %prun, and getopt is too dumb to
3097 handle options with string values with embedded spaces). Thanks
3103 handle options with string values with embedded spaces). Thanks
3098 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3104 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3099 (magic_who_ls): added type matching to %who and %whos, so that one
3105 (magic_who_ls): added type matching to %who and %whos, so that one
3100 can filter their output to only include variables of certain
3106 can filter their output to only include variables of certain
3101 types. Another suggestion by Matthew.
3107 types. Another suggestion by Matthew.
3102 (magic_whos): Added memory summaries in kb and Mb for arrays.
3108 (magic_whos): Added memory summaries in kb and Mb for arrays.
3103 (magic_who): Improve formatting (break lines every 9 vars).
3109 (magic_who): Improve formatting (break lines every 9 vars).
3104
3110
3105 2004-11-28 Fernando Perez <fperez@colorado.edu>
3111 2004-11-28 Fernando Perez <fperez@colorado.edu>
3106
3112
3107 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3113 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3108 cache when empty lines were present.
3114 cache when empty lines were present.
3109
3115
3110 2004-11-24 Fernando Perez <fperez@colorado.edu>
3116 2004-11-24 Fernando Perez <fperez@colorado.edu>
3111
3117
3112 * IPython/usage.py (__doc__): document the re-activated threading
3118 * IPython/usage.py (__doc__): document the re-activated threading
3113 options for WX and GTK.
3119 options for WX and GTK.
3114
3120
3115 2004-11-23 Fernando Perez <fperez@colorado.edu>
3121 2004-11-23 Fernando Perez <fperez@colorado.edu>
3116
3122
3117 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3123 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3118 the -wthread and -gthread options, along with a new -tk one to try
3124 the -wthread and -gthread options, along with a new -tk one to try
3119 and coordinate Tk threading with wx/gtk. The tk support is very
3125 and coordinate Tk threading with wx/gtk. The tk support is very
3120 platform dependent, since it seems to require Tcl and Tk to be
3126 platform dependent, since it seems to require Tcl and Tk to be
3121 built with threads (Fedora1/2 appears NOT to have it, but in
3127 built with threads (Fedora1/2 appears NOT to have it, but in
3122 Prabhu's Debian boxes it works OK). But even with some Tk
3128 Prabhu's Debian boxes it works OK). But even with some Tk
3123 limitations, this is a great improvement.
3129 limitations, this is a great improvement.
3124
3130
3125 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3131 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3126 info in user prompts. Patch by Prabhu.
3132 info in user prompts. Patch by Prabhu.
3127
3133
3128 2004-11-18 Fernando Perez <fperez@colorado.edu>
3134 2004-11-18 Fernando Perez <fperez@colorado.edu>
3129
3135
3130 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3136 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3131 EOFErrors and bail, to avoid infinite loops if a non-terminating
3137 EOFErrors and bail, to avoid infinite loops if a non-terminating
3132 file is fed into ipython. Patch submitted in issue 19 by user,
3138 file is fed into ipython. Patch submitted in issue 19 by user,
3133 many thanks.
3139 many thanks.
3134
3140
3135 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3141 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3136 autoquote/parens in continuation prompts, which can cause lots of
3142 autoquote/parens in continuation prompts, which can cause lots of
3137 problems. Closes roundup issue 20.
3143 problems. Closes roundup issue 20.
3138
3144
3139 2004-11-17 Fernando Perez <fperez@colorado.edu>
3145 2004-11-17 Fernando Perez <fperez@colorado.edu>
3140
3146
3141 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3147 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3142 reported as debian bug #280505. I'm not sure my local changelog
3148 reported as debian bug #280505. I'm not sure my local changelog
3143 entry has the proper debian format (Jack?).
3149 entry has the proper debian format (Jack?).
3144
3150
3145 2004-11-08 *** Released version 0.6.4
3151 2004-11-08 *** Released version 0.6.4
3146
3152
3147 2004-11-08 Fernando Perez <fperez@colorado.edu>
3153 2004-11-08 Fernando Perez <fperez@colorado.edu>
3148
3154
3149 * IPython/iplib.py (init_readline): Fix exit message for Windows
3155 * IPython/iplib.py (init_readline): Fix exit message for Windows
3150 when readline is active. Thanks to a report by Eric Jones
3156 when readline is active. Thanks to a report by Eric Jones
3151 <eric-AT-enthought.com>.
3157 <eric-AT-enthought.com>.
3152
3158
3153 2004-11-07 Fernando Perez <fperez@colorado.edu>
3159 2004-11-07 Fernando Perez <fperez@colorado.edu>
3154
3160
3155 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3161 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3156 sometimes seen by win2k/cygwin users.
3162 sometimes seen by win2k/cygwin users.
3157
3163
3158 2004-11-06 Fernando Perez <fperez@colorado.edu>
3164 2004-11-06 Fernando Perez <fperez@colorado.edu>
3159
3165
3160 * IPython/iplib.py (interact): Change the handling of %Exit from
3166 * IPython/iplib.py (interact): Change the handling of %Exit from
3161 trying to propagate a SystemExit to an internal ipython flag.
3167 trying to propagate a SystemExit to an internal ipython flag.
3162 This is less elegant than using Python's exception mechanism, but
3168 This is less elegant than using Python's exception mechanism, but
3163 I can't get that to work reliably with threads, so under -pylab
3169 I can't get that to work reliably with threads, so under -pylab
3164 %Exit was hanging IPython. Cross-thread exception handling is
3170 %Exit was hanging IPython. Cross-thread exception handling is
3165 really a bitch. Thaks to a bug report by Stephen Walton
3171 really a bitch. Thaks to a bug report by Stephen Walton
3166 <stephen.walton-AT-csun.edu>.
3172 <stephen.walton-AT-csun.edu>.
3167
3173
3168 2004-11-04 Fernando Perez <fperez@colorado.edu>
3174 2004-11-04 Fernando Perez <fperez@colorado.edu>
3169
3175
3170 * IPython/iplib.py (raw_input_original): store a pointer to the
3176 * IPython/iplib.py (raw_input_original): store a pointer to the
3171 true raw_input to harden against code which can modify it
3177 true raw_input to harden against code which can modify it
3172 (wx.py.PyShell does this and would otherwise crash ipython).
3178 (wx.py.PyShell does this and would otherwise crash ipython).
3173 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3179 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3174
3180
3175 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3181 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3176 Ctrl-C problem, which does not mess up the input line.
3182 Ctrl-C problem, which does not mess up the input line.
3177
3183
3178 2004-11-03 Fernando Perez <fperez@colorado.edu>
3184 2004-11-03 Fernando Perez <fperez@colorado.edu>
3179
3185
3180 * IPython/Release.py: Changed licensing to BSD, in all files.
3186 * IPython/Release.py: Changed licensing to BSD, in all files.
3181 (name): lowercase name for tarball/RPM release.
3187 (name): lowercase name for tarball/RPM release.
3182
3188
3183 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3189 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3184 use throughout ipython.
3190 use throughout ipython.
3185
3191
3186 * IPython/Magic.py (Magic._ofind): Switch to using the new
3192 * IPython/Magic.py (Magic._ofind): Switch to using the new
3187 OInspect.getdoc() function.
3193 OInspect.getdoc() function.
3188
3194
3189 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3195 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3190 of the line currently being canceled via Ctrl-C. It's extremely
3196 of the line currently being canceled via Ctrl-C. It's extremely
3191 ugly, but I don't know how to do it better (the problem is one of
3197 ugly, but I don't know how to do it better (the problem is one of
3192 handling cross-thread exceptions).
3198 handling cross-thread exceptions).
3193
3199
3194 2004-10-28 Fernando Perez <fperez@colorado.edu>
3200 2004-10-28 Fernando Perez <fperez@colorado.edu>
3195
3201
3196 * IPython/Shell.py (signal_handler): add signal handlers to trap
3202 * IPython/Shell.py (signal_handler): add signal handlers to trap
3197 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3203 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3198 report by Francesc Alted.
3204 report by Francesc Alted.
3199
3205
3200 2004-10-21 Fernando Perez <fperez@colorado.edu>
3206 2004-10-21 Fernando Perez <fperez@colorado.edu>
3201
3207
3202 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3208 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3203 to % for pysh syntax extensions.
3209 to % for pysh syntax extensions.
3204
3210
3205 2004-10-09 Fernando Perez <fperez@colorado.edu>
3211 2004-10-09 Fernando Perez <fperez@colorado.edu>
3206
3212
3207 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3213 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3208 arrays to print a more useful summary, without calling str(arr).
3214 arrays to print a more useful summary, without calling str(arr).
3209 This avoids the problem of extremely lengthy computations which
3215 This avoids the problem of extremely lengthy computations which
3210 occur if arr is large, and appear to the user as a system lockup
3216 occur if arr is large, and appear to the user as a system lockup
3211 with 100% cpu activity. After a suggestion by Kristian Sandberg
3217 with 100% cpu activity. After a suggestion by Kristian Sandberg
3212 <Kristian.Sandberg@colorado.edu>.
3218 <Kristian.Sandberg@colorado.edu>.
3213 (Magic.__init__): fix bug in global magic escapes not being
3219 (Magic.__init__): fix bug in global magic escapes not being
3214 correctly set.
3220 correctly set.
3215
3221
3216 2004-10-08 Fernando Perez <fperez@colorado.edu>
3222 2004-10-08 Fernando Perez <fperez@colorado.edu>
3217
3223
3218 * IPython/Magic.py (__license__): change to absolute imports of
3224 * IPython/Magic.py (__license__): change to absolute imports of
3219 ipython's own internal packages, to start adapting to the absolute
3225 ipython's own internal packages, to start adapting to the absolute
3220 import requirement of PEP-328.
3226 import requirement of PEP-328.
3221
3227
3222 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3228 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3223 files, and standardize author/license marks through the Release
3229 files, and standardize author/license marks through the Release
3224 module instead of having per/file stuff (except for files with
3230 module instead of having per/file stuff (except for files with
3225 particular licenses, like the MIT/PSF-licensed codes).
3231 particular licenses, like the MIT/PSF-licensed codes).
3226
3232
3227 * IPython/Debugger.py: remove dead code for python 2.1
3233 * IPython/Debugger.py: remove dead code for python 2.1
3228
3234
3229 2004-10-04 Fernando Perez <fperez@colorado.edu>
3235 2004-10-04 Fernando Perez <fperez@colorado.edu>
3230
3236
3231 * IPython/iplib.py (ipmagic): New function for accessing magics
3237 * IPython/iplib.py (ipmagic): New function for accessing magics
3232 via a normal python function call.
3238 via a normal python function call.
3233
3239
3234 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3240 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3235 from '@' to '%', to accomodate the new @decorator syntax of python
3241 from '@' to '%', to accomodate the new @decorator syntax of python
3236 2.4.
3242 2.4.
3237
3243
3238 2004-09-29 Fernando Perez <fperez@colorado.edu>
3244 2004-09-29 Fernando Perez <fperez@colorado.edu>
3239
3245
3240 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3246 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3241 matplotlib.use to prevent running scripts which try to switch
3247 matplotlib.use to prevent running scripts which try to switch
3242 interactive backends from within ipython. This will just crash
3248 interactive backends from within ipython. This will just crash
3243 the python interpreter, so we can't allow it (but a detailed error
3249 the python interpreter, so we can't allow it (but a detailed error
3244 is given to the user).
3250 is given to the user).
3245
3251
3246 2004-09-28 Fernando Perez <fperez@colorado.edu>
3252 2004-09-28 Fernando Perez <fperez@colorado.edu>
3247
3253
3248 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3254 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3249 matplotlib-related fixes so that using @run with non-matplotlib
3255 matplotlib-related fixes so that using @run with non-matplotlib
3250 scripts doesn't pop up spurious plot windows. This requires
3256 scripts doesn't pop up spurious plot windows. This requires
3251 matplotlib >= 0.63, where I had to make some changes as well.
3257 matplotlib >= 0.63, where I had to make some changes as well.
3252
3258
3253 * IPython/ipmaker.py (make_IPython): update version requirement to
3259 * IPython/ipmaker.py (make_IPython): update version requirement to
3254 python 2.2.
3260 python 2.2.
3255
3261
3256 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3262 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3257 banner arg for embedded customization.
3263 banner arg for embedded customization.
3258
3264
3259 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3265 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3260 explicit uses of __IP as the IPython's instance name. Now things
3266 explicit uses of __IP as the IPython's instance name. Now things
3261 are properly handled via the shell.name value. The actual code
3267 are properly handled via the shell.name value. The actual code
3262 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3268 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3263 is much better than before. I'll clean things completely when the
3269 is much better than before. I'll clean things completely when the
3264 magic stuff gets a real overhaul.
3270 magic stuff gets a real overhaul.
3265
3271
3266 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3272 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3267 minor changes to debian dir.
3273 minor changes to debian dir.
3268
3274
3269 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3275 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3270 pointer to the shell itself in the interactive namespace even when
3276 pointer to the shell itself in the interactive namespace even when
3271 a user-supplied dict is provided. This is needed for embedding
3277 a user-supplied dict is provided. This is needed for embedding
3272 purposes (found by tests with Michel Sanner).
3278 purposes (found by tests with Michel Sanner).
3273
3279
3274 2004-09-27 Fernando Perez <fperez@colorado.edu>
3280 2004-09-27 Fernando Perez <fperez@colorado.edu>
3275
3281
3276 * IPython/UserConfig/ipythonrc: remove []{} from
3282 * IPython/UserConfig/ipythonrc: remove []{} from
3277 readline_remove_delims, so that things like [modname.<TAB> do
3283 readline_remove_delims, so that things like [modname.<TAB> do
3278 proper completion. This disables [].TAB, but that's a less common
3284 proper completion. This disables [].TAB, but that's a less common
3279 case than module names in list comprehensions, for example.
3285 case than module names in list comprehensions, for example.
3280 Thanks to a report by Andrea Riciputi.
3286 Thanks to a report by Andrea Riciputi.
3281
3287
3282 2004-09-09 Fernando Perez <fperez@colorado.edu>
3288 2004-09-09 Fernando Perez <fperez@colorado.edu>
3283
3289
3284 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3290 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3285 blocking problems in win32 and osx. Fix by John.
3291 blocking problems in win32 and osx. Fix by John.
3286
3292
3287 2004-09-08 Fernando Perez <fperez@colorado.edu>
3293 2004-09-08 Fernando Perez <fperez@colorado.edu>
3288
3294
3289 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3295 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3290 for Win32 and OSX. Fix by John Hunter.
3296 for Win32 and OSX. Fix by John Hunter.
3291
3297
3292 2004-08-30 *** Released version 0.6.3
3298 2004-08-30 *** Released version 0.6.3
3293
3299
3294 2004-08-30 Fernando Perez <fperez@colorado.edu>
3300 2004-08-30 Fernando Perez <fperez@colorado.edu>
3295
3301
3296 * setup.py (isfile): Add manpages to list of dependent files to be
3302 * setup.py (isfile): Add manpages to list of dependent files to be
3297 updated.
3303 updated.
3298
3304
3299 2004-08-27 Fernando Perez <fperez@colorado.edu>
3305 2004-08-27 Fernando Perez <fperez@colorado.edu>
3300
3306
3301 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3307 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3302 for now. They don't really work with standalone WX/GTK code
3308 for now. They don't really work with standalone WX/GTK code
3303 (though matplotlib IS working fine with both of those backends).
3309 (though matplotlib IS working fine with both of those backends).
3304 This will neeed much more testing. I disabled most things with
3310 This will neeed much more testing. I disabled most things with
3305 comments, so turning it back on later should be pretty easy.
3311 comments, so turning it back on later should be pretty easy.
3306
3312
3307 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3313 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3308 autocalling of expressions like r'foo', by modifying the line
3314 autocalling of expressions like r'foo', by modifying the line
3309 split regexp. Closes
3315 split regexp. Closes
3310 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3316 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3311 Riley <ipythonbugs-AT-sabi.net>.
3317 Riley <ipythonbugs-AT-sabi.net>.
3312 (InteractiveShell.mainloop): honor --nobanner with banner
3318 (InteractiveShell.mainloop): honor --nobanner with banner
3313 extensions.
3319 extensions.
3314
3320
3315 * IPython/Shell.py: Significant refactoring of all classes, so
3321 * IPython/Shell.py: Significant refactoring of all classes, so
3316 that we can really support ALL matplotlib backends and threading
3322 that we can really support ALL matplotlib backends and threading
3317 models (John spotted a bug with Tk which required this). Now we
3323 models (John spotted a bug with Tk which required this). Now we
3318 should support single-threaded, WX-threads and GTK-threads, both
3324 should support single-threaded, WX-threads and GTK-threads, both
3319 for generic code and for matplotlib.
3325 for generic code and for matplotlib.
3320
3326
3321 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3327 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3322 -pylab, to simplify things for users. Will also remove the pylab
3328 -pylab, to simplify things for users. Will also remove the pylab
3323 profile, since now all of matplotlib configuration is directly
3329 profile, since now all of matplotlib configuration is directly
3324 handled here. This also reduces startup time.
3330 handled here. This also reduces startup time.
3325
3331
3326 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3332 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3327 shell wasn't being correctly called. Also in IPShellWX.
3333 shell wasn't being correctly called. Also in IPShellWX.
3328
3334
3329 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3335 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3330 fine-tune banner.
3336 fine-tune banner.
3331
3337
3332 * IPython/numutils.py (spike): Deprecate these spike functions,
3338 * IPython/numutils.py (spike): Deprecate these spike functions,
3333 delete (long deprecated) gnuplot_exec handler.
3339 delete (long deprecated) gnuplot_exec handler.
3334
3340
3335 2004-08-26 Fernando Perez <fperez@colorado.edu>
3341 2004-08-26 Fernando Perez <fperez@colorado.edu>
3336
3342
3337 * ipython.1: Update for threading options, plus some others which
3343 * ipython.1: Update for threading options, plus some others which
3338 were missing.
3344 were missing.
3339
3345
3340 * IPython/ipmaker.py (__call__): Added -wthread option for
3346 * IPython/ipmaker.py (__call__): Added -wthread option for
3341 wxpython thread handling. Make sure threading options are only
3347 wxpython thread handling. Make sure threading options are only
3342 valid at the command line.
3348 valid at the command line.
3343
3349
3344 * scripts/ipython: moved shell selection into a factory function
3350 * scripts/ipython: moved shell selection into a factory function
3345 in Shell.py, to keep the starter script to a minimum.
3351 in Shell.py, to keep the starter script to a minimum.
3346
3352
3347 2004-08-25 Fernando Perez <fperez@colorado.edu>
3353 2004-08-25 Fernando Perez <fperez@colorado.edu>
3348
3354
3349 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3355 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3350 John. Along with some recent changes he made to matplotlib, the
3356 John. Along with some recent changes he made to matplotlib, the
3351 next versions of both systems should work very well together.
3357 next versions of both systems should work very well together.
3352
3358
3353 2004-08-24 Fernando Perez <fperez@colorado.edu>
3359 2004-08-24 Fernando Perez <fperez@colorado.edu>
3354
3360
3355 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3361 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3356 tried to switch the profiling to using hotshot, but I'm getting
3362 tried to switch the profiling to using hotshot, but I'm getting
3357 strange errors from prof.runctx() there. I may be misreading the
3363 strange errors from prof.runctx() there. I may be misreading the
3358 docs, but it looks weird. For now the profiling code will
3364 docs, but it looks weird. For now the profiling code will
3359 continue to use the standard profiler.
3365 continue to use the standard profiler.
3360
3366
3361 2004-08-23 Fernando Perez <fperez@colorado.edu>
3367 2004-08-23 Fernando Perez <fperez@colorado.edu>
3362
3368
3363 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3369 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3364 threaded shell, by John Hunter. It's not quite ready yet, but
3370 threaded shell, by John Hunter. It's not quite ready yet, but
3365 close.
3371 close.
3366
3372
3367 2004-08-22 Fernando Perez <fperez@colorado.edu>
3373 2004-08-22 Fernando Perez <fperez@colorado.edu>
3368
3374
3369 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3375 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3370 in Magic and ultraTB.
3376 in Magic and ultraTB.
3371
3377
3372 * ipython.1: document threading options in manpage.
3378 * ipython.1: document threading options in manpage.
3373
3379
3374 * scripts/ipython: Changed name of -thread option to -gthread,
3380 * scripts/ipython: Changed name of -thread option to -gthread,
3375 since this is GTK specific. I want to leave the door open for a
3381 since this is GTK specific. I want to leave the door open for a
3376 -wthread option for WX, which will most likely be necessary. This
3382 -wthread option for WX, which will most likely be necessary. This
3377 change affects usage and ipmaker as well.
3383 change affects usage and ipmaker as well.
3378
3384
3379 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3385 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3380 handle the matplotlib shell issues. Code by John Hunter
3386 handle the matplotlib shell issues. Code by John Hunter
3381 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3387 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3382 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3388 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3383 broken (and disabled for end users) for now, but it puts the
3389 broken (and disabled for end users) for now, but it puts the
3384 infrastructure in place.
3390 infrastructure in place.
3385
3391
3386 2004-08-21 Fernando Perez <fperez@colorado.edu>
3392 2004-08-21 Fernando Perez <fperez@colorado.edu>
3387
3393
3388 * ipythonrc-pylab: Add matplotlib support.
3394 * ipythonrc-pylab: Add matplotlib support.
3389
3395
3390 * matplotlib_config.py: new files for matplotlib support, part of
3396 * matplotlib_config.py: new files for matplotlib support, part of
3391 the pylab profile.
3397 the pylab profile.
3392
3398
3393 * IPython/usage.py (__doc__): documented the threading options.
3399 * IPython/usage.py (__doc__): documented the threading options.
3394
3400
3395 2004-08-20 Fernando Perez <fperez@colorado.edu>
3401 2004-08-20 Fernando Perez <fperez@colorado.edu>
3396
3402
3397 * ipython: Modified the main calling routine to handle the -thread
3403 * ipython: Modified the main calling routine to handle the -thread
3398 and -mpthread options. This needs to be done as a top-level hack,
3404 and -mpthread options. This needs to be done as a top-level hack,
3399 because it determines which class to instantiate for IPython
3405 because it determines which class to instantiate for IPython
3400 itself.
3406 itself.
3401
3407
3402 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3408 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3403 classes to support multithreaded GTK operation without blocking,
3409 classes to support multithreaded GTK operation without blocking,
3404 and matplotlib with all backends. This is a lot of still very
3410 and matplotlib with all backends. This is a lot of still very
3405 experimental code, and threads are tricky. So it may still have a
3411 experimental code, and threads are tricky. So it may still have a
3406 few rough edges... This code owes a lot to
3412 few rough edges... This code owes a lot to
3407 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3413 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3408 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3414 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3409 to John Hunter for all the matplotlib work.
3415 to John Hunter for all the matplotlib work.
3410
3416
3411 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3417 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3412 options for gtk thread and matplotlib support.
3418 options for gtk thread and matplotlib support.
3413
3419
3414 2004-08-16 Fernando Perez <fperez@colorado.edu>
3420 2004-08-16 Fernando Perez <fperez@colorado.edu>
3415
3421
3416 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3422 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3417 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3423 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3418 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3424 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3419
3425
3420 2004-08-11 Fernando Perez <fperez@colorado.edu>
3426 2004-08-11 Fernando Perez <fperez@colorado.edu>
3421
3427
3422 * setup.py (isfile): Fix build so documentation gets updated for
3428 * setup.py (isfile): Fix build so documentation gets updated for
3423 rpms (it was only done for .tgz builds).
3429 rpms (it was only done for .tgz builds).
3424
3430
3425 2004-08-10 Fernando Perez <fperez@colorado.edu>
3431 2004-08-10 Fernando Perez <fperez@colorado.edu>
3426
3432
3427 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3433 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3428
3434
3429 * iplib.py : Silence syntax error exceptions in tab-completion.
3435 * iplib.py : Silence syntax error exceptions in tab-completion.
3430
3436
3431 2004-08-05 Fernando Perez <fperez@colorado.edu>
3437 2004-08-05 Fernando Perez <fperez@colorado.edu>
3432
3438
3433 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3439 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3434 'color off' mark for continuation prompts. This was causing long
3440 'color off' mark for continuation prompts. This was causing long
3435 continuation lines to mis-wrap.
3441 continuation lines to mis-wrap.
3436
3442
3437 2004-08-01 Fernando Perez <fperez@colorado.edu>
3443 2004-08-01 Fernando Perez <fperez@colorado.edu>
3438
3444
3439 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3445 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3440 for building ipython to be a parameter. All this is necessary
3446 for building ipython to be a parameter. All this is necessary
3441 right now to have a multithreaded version, but this insane
3447 right now to have a multithreaded version, but this insane
3442 non-design will be cleaned up soon. For now, it's a hack that
3448 non-design will be cleaned up soon. For now, it's a hack that
3443 works.
3449 works.
3444
3450
3445 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3451 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3446 args in various places. No bugs so far, but it's a dangerous
3452 args in various places. No bugs so far, but it's a dangerous
3447 practice.
3453 practice.
3448
3454
3449 2004-07-31 Fernando Perez <fperez@colorado.edu>
3455 2004-07-31 Fernando Perez <fperez@colorado.edu>
3450
3456
3451 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3457 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3452 fix completion of files with dots in their names under most
3458 fix completion of files with dots in their names under most
3453 profiles (pysh was OK because the completion order is different).
3459 profiles (pysh was OK because the completion order is different).
3454
3460
3455 2004-07-27 Fernando Perez <fperez@colorado.edu>
3461 2004-07-27 Fernando Perez <fperez@colorado.edu>
3456
3462
3457 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3463 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3458 keywords manually, b/c the one in keyword.py was removed in python
3464 keywords manually, b/c the one in keyword.py was removed in python
3459 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3465 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3460 This is NOT a bug under python 2.3 and earlier.
3466 This is NOT a bug under python 2.3 and earlier.
3461
3467
3462 2004-07-26 Fernando Perez <fperez@colorado.edu>
3468 2004-07-26 Fernando Perez <fperez@colorado.edu>
3463
3469
3464 * IPython/ultraTB.py (VerboseTB.text): Add another
3470 * IPython/ultraTB.py (VerboseTB.text): Add another
3465 linecache.checkcache() call to try to prevent inspect.py from
3471 linecache.checkcache() call to try to prevent inspect.py from
3466 crashing under python 2.3. I think this fixes
3472 crashing under python 2.3. I think this fixes
3467 http://www.scipy.net/roundup/ipython/issue17.
3473 http://www.scipy.net/roundup/ipython/issue17.
3468
3474
3469 2004-07-26 *** Released version 0.6.2
3475 2004-07-26 *** Released version 0.6.2
3470
3476
3471 2004-07-26 Fernando Perez <fperez@colorado.edu>
3477 2004-07-26 Fernando Perez <fperez@colorado.edu>
3472
3478
3473 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3479 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3474 fail for any number.
3480 fail for any number.
3475 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3481 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3476 empty bookmarks.
3482 empty bookmarks.
3477
3483
3478 2004-07-26 *** Released version 0.6.1
3484 2004-07-26 *** Released version 0.6.1
3479
3485
3480 2004-07-26 Fernando Perez <fperez@colorado.edu>
3486 2004-07-26 Fernando Perez <fperez@colorado.edu>
3481
3487
3482 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3488 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3483
3489
3484 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3490 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3485 escaping '()[]{}' in filenames.
3491 escaping '()[]{}' in filenames.
3486
3492
3487 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3493 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3488 Python 2.2 users who lack a proper shlex.split.
3494 Python 2.2 users who lack a proper shlex.split.
3489
3495
3490 2004-07-19 Fernando Perez <fperez@colorado.edu>
3496 2004-07-19 Fernando Perez <fperez@colorado.edu>
3491
3497
3492 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3498 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3493 for reading readline's init file. I follow the normal chain:
3499 for reading readline's init file. I follow the normal chain:
3494 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3500 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3495 report by Mike Heeter. This closes
3501 report by Mike Heeter. This closes
3496 http://www.scipy.net/roundup/ipython/issue16.
3502 http://www.scipy.net/roundup/ipython/issue16.
3497
3503
3498 2004-07-18 Fernando Perez <fperez@colorado.edu>
3504 2004-07-18 Fernando Perez <fperez@colorado.edu>
3499
3505
3500 * IPython/iplib.py (__init__): Add better handling of '\' under
3506 * IPython/iplib.py (__init__): Add better handling of '\' under
3501 Win32 for filenames. After a patch by Ville.
3507 Win32 for filenames. After a patch by Ville.
3502
3508
3503 2004-07-17 Fernando Perez <fperez@colorado.edu>
3509 2004-07-17 Fernando Perez <fperez@colorado.edu>
3504
3510
3505 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3511 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3506 autocalling would be triggered for 'foo is bar' if foo is
3512 autocalling would be triggered for 'foo is bar' if foo is
3507 callable. I also cleaned up the autocall detection code to use a
3513 callable. I also cleaned up the autocall detection code to use a
3508 regexp, which is faster. Bug reported by Alexander Schmolck.
3514 regexp, which is faster. Bug reported by Alexander Schmolck.
3509
3515
3510 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3516 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3511 '?' in them would confuse the help system. Reported by Alex
3517 '?' in them would confuse the help system. Reported by Alex
3512 Schmolck.
3518 Schmolck.
3513
3519
3514 2004-07-16 Fernando Perez <fperez@colorado.edu>
3520 2004-07-16 Fernando Perez <fperez@colorado.edu>
3515
3521
3516 * IPython/GnuplotInteractive.py (__all__): added plot2.
3522 * IPython/GnuplotInteractive.py (__all__): added plot2.
3517
3523
3518 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3524 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3519 plotting dictionaries, lists or tuples of 1d arrays.
3525 plotting dictionaries, lists or tuples of 1d arrays.
3520
3526
3521 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3527 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3522 optimizations.
3528 optimizations.
3523
3529
3524 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3530 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3525 the information which was there from Janko's original IPP code:
3531 the information which was there from Janko's original IPP code:
3526
3532
3527 03.05.99 20:53 porto.ifm.uni-kiel.de
3533 03.05.99 20:53 porto.ifm.uni-kiel.de
3528 --Started changelog.
3534 --Started changelog.
3529 --make clear do what it say it does
3535 --make clear do what it say it does
3530 --added pretty output of lines from inputcache
3536 --added pretty output of lines from inputcache
3531 --Made Logger a mixin class, simplifies handling of switches
3537 --Made Logger a mixin class, simplifies handling of switches
3532 --Added own completer class. .string<TAB> expands to last history
3538 --Added own completer class. .string<TAB> expands to last history
3533 line which starts with string. The new expansion is also present
3539 line which starts with string. The new expansion is also present
3534 with Ctrl-r from the readline library. But this shows, who this
3540 with Ctrl-r from the readline library. But this shows, who this
3535 can be done for other cases.
3541 can be done for other cases.
3536 --Added convention that all shell functions should accept a
3542 --Added convention that all shell functions should accept a
3537 parameter_string This opens the door for different behaviour for
3543 parameter_string This opens the door for different behaviour for
3538 each function. @cd is a good example of this.
3544 each function. @cd is a good example of this.
3539
3545
3540 04.05.99 12:12 porto.ifm.uni-kiel.de
3546 04.05.99 12:12 porto.ifm.uni-kiel.de
3541 --added logfile rotation
3547 --added logfile rotation
3542 --added new mainloop method which freezes first the namespace
3548 --added new mainloop method which freezes first the namespace
3543
3549
3544 07.05.99 21:24 porto.ifm.uni-kiel.de
3550 07.05.99 21:24 porto.ifm.uni-kiel.de
3545 --added the docreader classes. Now there is a help system.
3551 --added the docreader classes. Now there is a help system.
3546 -This is only a first try. Currently it's not easy to put new
3552 -This is only a first try. Currently it's not easy to put new
3547 stuff in the indices. But this is the way to go. Info would be
3553 stuff in the indices. But this is the way to go. Info would be
3548 better, but HTML is every where and not everybody has an info
3554 better, but HTML is every where and not everybody has an info
3549 system installed and it's not so easy to change html-docs to info.
3555 system installed and it's not so easy to change html-docs to info.
3550 --added global logfile option
3556 --added global logfile option
3551 --there is now a hook for object inspection method pinfo needs to
3557 --there is now a hook for object inspection method pinfo needs to
3552 be provided for this. Can be reached by two '??'.
3558 be provided for this. Can be reached by two '??'.
3553
3559
3554 08.05.99 20:51 porto.ifm.uni-kiel.de
3560 08.05.99 20:51 porto.ifm.uni-kiel.de
3555 --added a README
3561 --added a README
3556 --bug in rc file. Something has changed so functions in the rc
3562 --bug in rc file. Something has changed so functions in the rc
3557 file need to reference the shell and not self. Not clear if it's a
3563 file need to reference the shell and not self. Not clear if it's a
3558 bug or feature.
3564 bug or feature.
3559 --changed rc file for new behavior
3565 --changed rc file for new behavior
3560
3566
3561 2004-07-15 Fernando Perez <fperez@colorado.edu>
3567 2004-07-15 Fernando Perez <fperez@colorado.edu>
3562
3568
3563 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3569 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3564 cache was falling out of sync in bizarre manners when multi-line
3570 cache was falling out of sync in bizarre manners when multi-line
3565 input was present. Minor optimizations and cleanup.
3571 input was present. Minor optimizations and cleanup.
3566
3572
3567 (Logger): Remove old Changelog info for cleanup. This is the
3573 (Logger): Remove old Changelog info for cleanup. This is the
3568 information which was there from Janko's original code:
3574 information which was there from Janko's original code:
3569
3575
3570 Changes to Logger: - made the default log filename a parameter
3576 Changes to Logger: - made the default log filename a parameter
3571
3577
3572 - put a check for lines beginning with !@? in log(). Needed
3578 - put a check for lines beginning with !@? in log(). Needed
3573 (even if the handlers properly log their lines) for mid-session
3579 (even if the handlers properly log their lines) for mid-session
3574 logging activation to work properly. Without this, lines logged
3580 logging activation to work properly. Without this, lines logged
3575 in mid session, which get read from the cache, would end up
3581 in mid session, which get read from the cache, would end up
3576 'bare' (with !@? in the open) in the log. Now they are caught
3582 'bare' (with !@? in the open) in the log. Now they are caught
3577 and prepended with a #.
3583 and prepended with a #.
3578
3584
3579 * IPython/iplib.py (InteractiveShell.init_readline): added check
3585 * IPython/iplib.py (InteractiveShell.init_readline): added check
3580 in case MagicCompleter fails to be defined, so we don't crash.
3586 in case MagicCompleter fails to be defined, so we don't crash.
3581
3587
3582 2004-07-13 Fernando Perez <fperez@colorado.edu>
3588 2004-07-13 Fernando Perez <fperez@colorado.edu>
3583
3589
3584 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3590 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3585 of EPS if the requested filename ends in '.eps'.
3591 of EPS if the requested filename ends in '.eps'.
3586
3592
3587 2004-07-04 Fernando Perez <fperez@colorado.edu>
3593 2004-07-04 Fernando Perez <fperez@colorado.edu>
3588
3594
3589 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3595 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3590 escaping of quotes when calling the shell.
3596 escaping of quotes when calling the shell.
3591
3597
3592 2004-07-02 Fernando Perez <fperez@colorado.edu>
3598 2004-07-02 Fernando Perez <fperez@colorado.edu>
3593
3599
3594 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3600 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3595 gettext not working because we were clobbering '_'. Fixes
3601 gettext not working because we were clobbering '_'. Fixes
3596 http://www.scipy.net/roundup/ipython/issue6.
3602 http://www.scipy.net/roundup/ipython/issue6.
3597
3603
3598 2004-07-01 Fernando Perez <fperez@colorado.edu>
3604 2004-07-01 Fernando Perez <fperez@colorado.edu>
3599
3605
3600 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3606 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3601 into @cd. Patch by Ville.
3607 into @cd. Patch by Ville.
3602
3608
3603 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3609 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3604 new function to store things after ipmaker runs. Patch by Ville.
3610 new function to store things after ipmaker runs. Patch by Ville.
3605 Eventually this will go away once ipmaker is removed and the class
3611 Eventually this will go away once ipmaker is removed and the class
3606 gets cleaned up, but for now it's ok. Key functionality here is
3612 gets cleaned up, but for now it's ok. Key functionality here is
3607 the addition of the persistent storage mechanism, a dict for
3613 the addition of the persistent storage mechanism, a dict for
3608 keeping data across sessions (for now just bookmarks, but more can
3614 keeping data across sessions (for now just bookmarks, but more can
3609 be implemented later).
3615 be implemented later).
3610
3616
3611 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3617 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3612 persistent across sections. Patch by Ville, I modified it
3618 persistent across sections. Patch by Ville, I modified it
3613 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3619 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3614 added a '-l' option to list all bookmarks.
3620 added a '-l' option to list all bookmarks.
3615
3621
3616 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3622 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3617 center for cleanup. Registered with atexit.register(). I moved
3623 center for cleanup. Registered with atexit.register(). I moved
3618 here the old exit_cleanup(). After a patch by Ville.
3624 here the old exit_cleanup(). After a patch by Ville.
3619
3625
3620 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3626 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3621 characters in the hacked shlex_split for python 2.2.
3627 characters in the hacked shlex_split for python 2.2.
3622
3628
3623 * IPython/iplib.py (file_matches): more fixes to filenames with
3629 * IPython/iplib.py (file_matches): more fixes to filenames with
3624 whitespace in them. It's not perfect, but limitations in python's
3630 whitespace in them. It's not perfect, but limitations in python's
3625 readline make it impossible to go further.
3631 readline make it impossible to go further.
3626
3632
3627 2004-06-29 Fernando Perez <fperez@colorado.edu>
3633 2004-06-29 Fernando Perez <fperez@colorado.edu>
3628
3634
3629 * IPython/iplib.py (file_matches): escape whitespace correctly in
3635 * IPython/iplib.py (file_matches): escape whitespace correctly in
3630 filename completions. Bug reported by Ville.
3636 filename completions. Bug reported by Ville.
3631
3637
3632 2004-06-28 Fernando Perez <fperez@colorado.edu>
3638 2004-06-28 Fernando Perez <fperez@colorado.edu>
3633
3639
3634 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3640 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3635 the history file will be called 'history-PROFNAME' (or just
3641 the history file will be called 'history-PROFNAME' (or just
3636 'history' if no profile is loaded). I was getting annoyed at
3642 'history' if no profile is loaded). I was getting annoyed at
3637 getting my Numerical work history clobbered by pysh sessions.
3643 getting my Numerical work history clobbered by pysh sessions.
3638
3644
3639 * IPython/iplib.py (InteractiveShell.__init__): Internal
3645 * IPython/iplib.py (InteractiveShell.__init__): Internal
3640 getoutputerror() function so that we can honor the system_verbose
3646 getoutputerror() function so that we can honor the system_verbose
3641 flag for _all_ system calls. I also added escaping of #
3647 flag for _all_ system calls. I also added escaping of #
3642 characters here to avoid confusing Itpl.
3648 characters here to avoid confusing Itpl.
3643
3649
3644 * IPython/Magic.py (shlex_split): removed call to shell in
3650 * IPython/Magic.py (shlex_split): removed call to shell in
3645 parse_options and replaced it with shlex.split(). The annoying
3651 parse_options and replaced it with shlex.split(). The annoying
3646 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3652 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3647 to backport it from 2.3, with several frail hacks (the shlex
3653 to backport it from 2.3, with several frail hacks (the shlex
3648 module is rather limited in 2.2). Thanks to a suggestion by Ville
3654 module is rather limited in 2.2). Thanks to a suggestion by Ville
3649 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3655 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3650 problem.
3656 problem.
3651
3657
3652 (Magic.magic_system_verbose): new toggle to print the actual
3658 (Magic.magic_system_verbose): new toggle to print the actual
3653 system calls made by ipython. Mainly for debugging purposes.
3659 system calls made by ipython. Mainly for debugging purposes.
3654
3660
3655 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3661 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3656 doesn't support persistence. Reported (and fix suggested) by
3662 doesn't support persistence. Reported (and fix suggested) by
3657 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3663 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3658
3664
3659 2004-06-26 Fernando Perez <fperez@colorado.edu>
3665 2004-06-26 Fernando Perez <fperez@colorado.edu>
3660
3666
3661 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3667 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3662 continue prompts.
3668 continue prompts.
3663
3669
3664 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3670 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3665 function (basically a big docstring) and a few more things here to
3671 function (basically a big docstring) and a few more things here to
3666 speedup startup. pysh.py is now very lightweight. We want because
3672 speedup startup. pysh.py is now very lightweight. We want because
3667 it gets execfile'd, while InterpreterExec gets imported, so
3673 it gets execfile'd, while InterpreterExec gets imported, so
3668 byte-compilation saves time.
3674 byte-compilation saves time.
3669
3675
3670 2004-06-25 Fernando Perez <fperez@colorado.edu>
3676 2004-06-25 Fernando Perez <fperez@colorado.edu>
3671
3677
3672 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3678 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3673 -NUM', which was recently broken.
3679 -NUM', which was recently broken.
3674
3680
3675 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3681 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3676 in multi-line input (but not !!, which doesn't make sense there).
3682 in multi-line input (but not !!, which doesn't make sense there).
3677
3683
3678 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3684 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3679 It's just too useful, and people can turn it off in the less
3685 It's just too useful, and people can turn it off in the less
3680 common cases where it's a problem.
3686 common cases where it's a problem.
3681
3687
3682 2004-06-24 Fernando Perez <fperez@colorado.edu>
3688 2004-06-24 Fernando Perez <fperez@colorado.edu>
3683
3689
3684 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3690 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3685 special syntaxes (like alias calling) is now allied in multi-line
3691 special syntaxes (like alias calling) is now allied in multi-line
3686 input. This is still _very_ experimental, but it's necessary for
3692 input. This is still _very_ experimental, but it's necessary for
3687 efficient shell usage combining python looping syntax with system
3693 efficient shell usage combining python looping syntax with system
3688 calls. For now it's restricted to aliases, I don't think it
3694 calls. For now it's restricted to aliases, I don't think it
3689 really even makes sense to have this for magics.
3695 really even makes sense to have this for magics.
3690
3696
3691 2004-06-23 Fernando Perez <fperez@colorado.edu>
3697 2004-06-23 Fernando Perez <fperez@colorado.edu>
3692
3698
3693 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3699 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3694 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3700 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3695
3701
3696 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3702 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3697 extensions under Windows (after code sent by Gary Bishop). The
3703 extensions under Windows (after code sent by Gary Bishop). The
3698 extensions considered 'executable' are stored in IPython's rc
3704 extensions considered 'executable' are stored in IPython's rc
3699 structure as win_exec_ext.
3705 structure as win_exec_ext.
3700
3706
3701 * IPython/genutils.py (shell): new function, like system() but
3707 * IPython/genutils.py (shell): new function, like system() but
3702 without return value. Very useful for interactive shell work.
3708 without return value. Very useful for interactive shell work.
3703
3709
3704 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3710 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3705 delete aliases.
3711 delete aliases.
3706
3712
3707 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3713 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3708 sure that the alias table doesn't contain python keywords.
3714 sure that the alias table doesn't contain python keywords.
3709
3715
3710 2004-06-21 Fernando Perez <fperez@colorado.edu>
3716 2004-06-21 Fernando Perez <fperez@colorado.edu>
3711
3717
3712 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3718 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3713 non-existent items are found in $PATH. Reported by Thorsten.
3719 non-existent items are found in $PATH. Reported by Thorsten.
3714
3720
3715 2004-06-20 Fernando Perez <fperez@colorado.edu>
3721 2004-06-20 Fernando Perez <fperez@colorado.edu>
3716
3722
3717 * IPython/iplib.py (complete): modified the completer so that the
3723 * IPython/iplib.py (complete): modified the completer so that the
3718 order of priorities can be easily changed at runtime.
3724 order of priorities can be easily changed at runtime.
3719
3725
3720 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3726 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3721 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3727 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3722
3728
3723 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3729 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3724 expand Python variables prepended with $ in all system calls. The
3730 expand Python variables prepended with $ in all system calls. The
3725 same was done to InteractiveShell.handle_shell_escape. Now all
3731 same was done to InteractiveShell.handle_shell_escape. Now all
3726 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3732 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3727 expansion of python variables and expressions according to the
3733 expansion of python variables and expressions according to the
3728 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3734 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3729
3735
3730 Though PEP-215 has been rejected, a similar (but simpler) one
3736 Though PEP-215 has been rejected, a similar (but simpler) one
3731 seems like it will go into Python 2.4, PEP-292 -
3737 seems like it will go into Python 2.4, PEP-292 -
3732 http://www.python.org/peps/pep-0292.html.
3738 http://www.python.org/peps/pep-0292.html.
3733
3739
3734 I'll keep the full syntax of PEP-215, since IPython has since the
3740 I'll keep the full syntax of PEP-215, since IPython has since the
3735 start used Ka-Ping Yee's reference implementation discussed there
3741 start used Ka-Ping Yee's reference implementation discussed there
3736 (Itpl), and I actually like the powerful semantics it offers.
3742 (Itpl), and I actually like the powerful semantics it offers.
3737
3743
3738 In order to access normal shell variables, the $ has to be escaped
3744 In order to access normal shell variables, the $ has to be escaped
3739 via an extra $. For example:
3745 via an extra $. For example:
3740
3746
3741 In [7]: PATH='a python variable'
3747 In [7]: PATH='a python variable'
3742
3748
3743 In [8]: !echo $PATH
3749 In [8]: !echo $PATH
3744 a python variable
3750 a python variable
3745
3751
3746 In [9]: !echo $$PATH
3752 In [9]: !echo $$PATH
3747 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3753 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3748
3754
3749 (Magic.parse_options): escape $ so the shell doesn't evaluate
3755 (Magic.parse_options): escape $ so the shell doesn't evaluate
3750 things prematurely.
3756 things prematurely.
3751
3757
3752 * IPython/iplib.py (InteractiveShell.call_alias): added the
3758 * IPython/iplib.py (InteractiveShell.call_alias): added the
3753 ability for aliases to expand python variables via $.
3759 ability for aliases to expand python variables via $.
3754
3760
3755 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3761 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3756 system, now there's a @rehash/@rehashx pair of magics. These work
3762 system, now there's a @rehash/@rehashx pair of magics. These work
3757 like the csh rehash command, and can be invoked at any time. They
3763 like the csh rehash command, and can be invoked at any time. They
3758 build a table of aliases to everything in the user's $PATH
3764 build a table of aliases to everything in the user's $PATH
3759 (@rehash uses everything, @rehashx is slower but only adds
3765 (@rehash uses everything, @rehashx is slower but only adds
3760 executable files). With this, the pysh.py-based shell profile can
3766 executable files). With this, the pysh.py-based shell profile can
3761 now simply call rehash upon startup, and full access to all
3767 now simply call rehash upon startup, and full access to all
3762 programs in the user's path is obtained.
3768 programs in the user's path is obtained.
3763
3769
3764 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3770 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3765 functionality is now fully in place. I removed the old dynamic
3771 functionality is now fully in place. I removed the old dynamic
3766 code generation based approach, in favor of a much lighter one
3772 code generation based approach, in favor of a much lighter one
3767 based on a simple dict. The advantage is that this allows me to
3773 based on a simple dict. The advantage is that this allows me to
3768 now have thousands of aliases with negligible cost (unthinkable
3774 now have thousands of aliases with negligible cost (unthinkable
3769 with the old system).
3775 with the old system).
3770
3776
3771 2004-06-19 Fernando Perez <fperez@colorado.edu>
3777 2004-06-19 Fernando Perez <fperez@colorado.edu>
3772
3778
3773 * IPython/iplib.py (__init__): extended MagicCompleter class to
3779 * IPython/iplib.py (__init__): extended MagicCompleter class to
3774 also complete (last in priority) on user aliases.
3780 also complete (last in priority) on user aliases.
3775
3781
3776 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3782 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3777 call to eval.
3783 call to eval.
3778 (ItplNS.__init__): Added a new class which functions like Itpl,
3784 (ItplNS.__init__): Added a new class which functions like Itpl,
3779 but allows configuring the namespace for the evaluation to occur
3785 but allows configuring the namespace for the evaluation to occur
3780 in.
3786 in.
3781
3787
3782 2004-06-18 Fernando Perez <fperez@colorado.edu>
3788 2004-06-18 Fernando Perez <fperez@colorado.edu>
3783
3789
3784 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3790 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3785 better message when 'exit' or 'quit' are typed (a common newbie
3791 better message when 'exit' or 'quit' are typed (a common newbie
3786 confusion).
3792 confusion).
3787
3793
3788 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3794 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3789 check for Windows users.
3795 check for Windows users.
3790
3796
3791 * IPython/iplib.py (InteractiveShell.user_setup): removed
3797 * IPython/iplib.py (InteractiveShell.user_setup): removed
3792 disabling of colors for Windows. I'll test at runtime and issue a
3798 disabling of colors for Windows. I'll test at runtime and issue a
3793 warning if Gary's readline isn't found, as to nudge users to
3799 warning if Gary's readline isn't found, as to nudge users to
3794 download it.
3800 download it.
3795
3801
3796 2004-06-16 Fernando Perez <fperez@colorado.edu>
3802 2004-06-16 Fernando Perez <fperez@colorado.edu>
3797
3803
3798 * IPython/genutils.py (Stream.__init__): changed to print errors
3804 * IPython/genutils.py (Stream.__init__): changed to print errors
3799 to sys.stderr. I had a circular dependency here. Now it's
3805 to sys.stderr. I had a circular dependency here. Now it's
3800 possible to run ipython as IDLE's shell (consider this pre-alpha,
3806 possible to run ipython as IDLE's shell (consider this pre-alpha,
3801 since true stdout things end up in the starting terminal instead
3807 since true stdout things end up in the starting terminal instead
3802 of IDLE's out).
3808 of IDLE's out).
3803
3809
3804 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3810 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3805 users who haven't # updated their prompt_in2 definitions. Remove
3811 users who haven't # updated their prompt_in2 definitions. Remove
3806 eventually.
3812 eventually.
3807 (multiple_replace): added credit to original ASPN recipe.
3813 (multiple_replace): added credit to original ASPN recipe.
3808
3814
3809 2004-06-15 Fernando Perez <fperez@colorado.edu>
3815 2004-06-15 Fernando Perez <fperez@colorado.edu>
3810
3816
3811 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3817 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3812 list of auto-defined aliases.
3818 list of auto-defined aliases.
3813
3819
3814 2004-06-13 Fernando Perez <fperez@colorado.edu>
3820 2004-06-13 Fernando Perez <fperez@colorado.edu>
3815
3821
3816 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3822 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3817 install was really requested (so setup.py can be used for other
3823 install was really requested (so setup.py can be used for other
3818 things under Windows).
3824 things under Windows).
3819
3825
3820 2004-06-10 Fernando Perez <fperez@colorado.edu>
3826 2004-06-10 Fernando Perez <fperez@colorado.edu>
3821
3827
3822 * IPython/Logger.py (Logger.create_log): Manually remove any old
3828 * IPython/Logger.py (Logger.create_log): Manually remove any old
3823 backup, since os.remove may fail under Windows. Fixes bug
3829 backup, since os.remove may fail under Windows. Fixes bug
3824 reported by Thorsten.
3830 reported by Thorsten.
3825
3831
3826 2004-06-09 Fernando Perez <fperez@colorado.edu>
3832 2004-06-09 Fernando Perez <fperez@colorado.edu>
3827
3833
3828 * examples/example-embed.py: fixed all references to %n (replaced
3834 * examples/example-embed.py: fixed all references to %n (replaced
3829 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3835 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3830 for all examples and the manual as well.
3836 for all examples and the manual as well.
3831
3837
3832 2004-06-08 Fernando Perez <fperez@colorado.edu>
3838 2004-06-08 Fernando Perez <fperez@colorado.edu>
3833
3839
3834 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3840 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3835 alignment and color management. All 3 prompt subsystems now
3841 alignment and color management. All 3 prompt subsystems now
3836 inherit from BasePrompt.
3842 inherit from BasePrompt.
3837
3843
3838 * tools/release: updates for windows installer build and tag rpms
3844 * tools/release: updates for windows installer build and tag rpms
3839 with python version (since paths are fixed).
3845 with python version (since paths are fixed).
3840
3846
3841 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3847 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3842 which will become eventually obsolete. Also fixed the default
3848 which will become eventually obsolete. Also fixed the default
3843 prompt_in2 to use \D, so at least new users start with the correct
3849 prompt_in2 to use \D, so at least new users start with the correct
3844 defaults.
3850 defaults.
3845 WARNING: Users with existing ipythonrc files will need to apply
3851 WARNING: Users with existing ipythonrc files will need to apply
3846 this fix manually!
3852 this fix manually!
3847
3853
3848 * setup.py: make windows installer (.exe). This is finally the
3854 * setup.py: make windows installer (.exe). This is finally the
3849 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3855 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3850 which I hadn't included because it required Python 2.3 (or recent
3856 which I hadn't included because it required Python 2.3 (or recent
3851 distutils).
3857 distutils).
3852
3858
3853 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3859 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3854 usage of new '\D' escape.
3860 usage of new '\D' escape.
3855
3861
3856 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3862 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3857 lacks os.getuid())
3863 lacks os.getuid())
3858 (CachedOutput.set_colors): Added the ability to turn coloring
3864 (CachedOutput.set_colors): Added the ability to turn coloring
3859 on/off with @colors even for manually defined prompt colors. It
3865 on/off with @colors even for manually defined prompt colors. It
3860 uses a nasty global, but it works safely and via the generic color
3866 uses a nasty global, but it works safely and via the generic color
3861 handling mechanism.
3867 handling mechanism.
3862 (Prompt2.__init__): Introduced new escape '\D' for continuation
3868 (Prompt2.__init__): Introduced new escape '\D' for continuation
3863 prompts. It represents the counter ('\#') as dots.
3869 prompts. It represents the counter ('\#') as dots.
3864 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3870 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3865 need to update their ipythonrc files and replace '%n' with '\D' in
3871 need to update their ipythonrc files and replace '%n' with '\D' in
3866 their prompt_in2 settings everywhere. Sorry, but there's
3872 their prompt_in2 settings everywhere. Sorry, but there's
3867 otherwise no clean way to get all prompts to properly align. The
3873 otherwise no clean way to get all prompts to properly align. The
3868 ipythonrc shipped with IPython has been updated.
3874 ipythonrc shipped with IPython has been updated.
3869
3875
3870 2004-06-07 Fernando Perez <fperez@colorado.edu>
3876 2004-06-07 Fernando Perez <fperez@colorado.edu>
3871
3877
3872 * setup.py (isfile): Pass local_icons option to latex2html, so the
3878 * setup.py (isfile): Pass local_icons option to latex2html, so the
3873 resulting HTML file is self-contained. Thanks to
3879 resulting HTML file is self-contained. Thanks to
3874 dryice-AT-liu.com.cn for the tip.
3880 dryice-AT-liu.com.cn for the tip.
3875
3881
3876 * pysh.py: I created a new profile 'shell', which implements a
3882 * pysh.py: I created a new profile 'shell', which implements a
3877 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3883 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3878 system shell, nor will it become one anytime soon. It's mainly
3884 system shell, nor will it become one anytime soon. It's mainly
3879 meant to illustrate the use of the new flexible bash-like prompts.
3885 meant to illustrate the use of the new flexible bash-like prompts.
3880 I guess it could be used by hardy souls for true shell management,
3886 I guess it could be used by hardy souls for true shell management,
3881 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3887 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3882 profile. This uses the InterpreterExec extension provided by
3888 profile. This uses the InterpreterExec extension provided by
3883 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3889 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3884
3890
3885 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3891 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3886 auto-align itself with the length of the previous input prompt
3892 auto-align itself with the length of the previous input prompt
3887 (taking into account the invisible color escapes).
3893 (taking into account the invisible color escapes).
3888 (CachedOutput.__init__): Large restructuring of this class. Now
3894 (CachedOutput.__init__): Large restructuring of this class. Now
3889 all three prompts (primary1, primary2, output) are proper objects,
3895 all three prompts (primary1, primary2, output) are proper objects,
3890 managed by the 'parent' CachedOutput class. The code is still a
3896 managed by the 'parent' CachedOutput class. The code is still a
3891 bit hackish (all prompts share state via a pointer to the cache),
3897 bit hackish (all prompts share state via a pointer to the cache),
3892 but it's overall far cleaner than before.
3898 but it's overall far cleaner than before.
3893
3899
3894 * IPython/genutils.py (getoutputerror): modified to add verbose,
3900 * IPython/genutils.py (getoutputerror): modified to add verbose,
3895 debug and header options. This makes the interface of all getout*
3901 debug and header options. This makes the interface of all getout*
3896 functions uniform.
3902 functions uniform.
3897 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3903 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3898
3904
3899 * IPython/Magic.py (Magic.default_option): added a function to
3905 * IPython/Magic.py (Magic.default_option): added a function to
3900 allow registering default options for any magic command. This
3906 allow registering default options for any magic command. This
3901 makes it easy to have profiles which customize the magics globally
3907 makes it easy to have profiles which customize the magics globally
3902 for a certain use. The values set through this function are
3908 for a certain use. The values set through this function are
3903 picked up by the parse_options() method, which all magics should
3909 picked up by the parse_options() method, which all magics should
3904 use to parse their options.
3910 use to parse their options.
3905
3911
3906 * IPython/genutils.py (warn): modified the warnings framework to
3912 * IPython/genutils.py (warn): modified the warnings framework to
3907 use the Term I/O class. I'm trying to slowly unify all of
3913 use the Term I/O class. I'm trying to slowly unify all of
3908 IPython's I/O operations to pass through Term.
3914 IPython's I/O operations to pass through Term.
3909
3915
3910 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3916 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3911 the secondary prompt to correctly match the length of the primary
3917 the secondary prompt to correctly match the length of the primary
3912 one for any prompt. Now multi-line code will properly line up
3918 one for any prompt. Now multi-line code will properly line up
3913 even for path dependent prompts, such as the new ones available
3919 even for path dependent prompts, such as the new ones available
3914 via the prompt_specials.
3920 via the prompt_specials.
3915
3921
3916 2004-06-06 Fernando Perez <fperez@colorado.edu>
3922 2004-06-06 Fernando Perez <fperez@colorado.edu>
3917
3923
3918 * IPython/Prompts.py (prompt_specials): Added the ability to have
3924 * IPython/Prompts.py (prompt_specials): Added the ability to have
3919 bash-like special sequences in the prompts, which get
3925 bash-like special sequences in the prompts, which get
3920 automatically expanded. Things like hostname, current working
3926 automatically expanded. Things like hostname, current working
3921 directory and username are implemented already, but it's easy to
3927 directory and username are implemented already, but it's easy to
3922 add more in the future. Thanks to a patch by W.J. van der Laan
3928 add more in the future. Thanks to a patch by W.J. van der Laan
3923 <gnufnork-AT-hetdigitalegat.nl>
3929 <gnufnork-AT-hetdigitalegat.nl>
3924 (prompt_specials): Added color support for prompt strings, so
3930 (prompt_specials): Added color support for prompt strings, so
3925 users can define arbitrary color setups for their prompts.
3931 users can define arbitrary color setups for their prompts.
3926
3932
3927 2004-06-05 Fernando Perez <fperez@colorado.edu>
3933 2004-06-05 Fernando Perez <fperez@colorado.edu>
3928
3934
3929 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3935 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3930 code to load Gary Bishop's readline and configure it
3936 code to load Gary Bishop's readline and configure it
3931 automatically. Thanks to Gary for help on this.
3937 automatically. Thanks to Gary for help on this.
3932
3938
3933 2004-06-01 Fernando Perez <fperez@colorado.edu>
3939 2004-06-01 Fernando Perez <fperez@colorado.edu>
3934
3940
3935 * IPython/Logger.py (Logger.create_log): fix bug for logging
3941 * IPython/Logger.py (Logger.create_log): fix bug for logging
3936 with no filename (previous fix was incomplete).
3942 with no filename (previous fix was incomplete).
3937
3943
3938 2004-05-25 Fernando Perez <fperez@colorado.edu>
3944 2004-05-25 Fernando Perez <fperez@colorado.edu>
3939
3945
3940 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3946 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3941 parens would get passed to the shell.
3947 parens would get passed to the shell.
3942
3948
3943 2004-05-20 Fernando Perez <fperez@colorado.edu>
3949 2004-05-20 Fernando Perez <fperez@colorado.edu>
3944
3950
3945 * IPython/Magic.py (Magic.magic_prun): changed default profile
3951 * IPython/Magic.py (Magic.magic_prun): changed default profile
3946 sort order to 'time' (the more common profiling need).
3952 sort order to 'time' (the more common profiling need).
3947
3953
3948 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3954 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3949 so that source code shown is guaranteed in sync with the file on
3955 so that source code shown is guaranteed in sync with the file on
3950 disk (also changed in psource). Similar fix to the one for
3956 disk (also changed in psource). Similar fix to the one for
3951 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3957 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3952 <yann.ledu-AT-noos.fr>.
3958 <yann.ledu-AT-noos.fr>.
3953
3959
3954 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3960 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3955 with a single option would not be correctly parsed. Closes
3961 with a single option would not be correctly parsed. Closes
3956 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3962 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3957 introduced in 0.6.0 (on 2004-05-06).
3963 introduced in 0.6.0 (on 2004-05-06).
3958
3964
3959 2004-05-13 *** Released version 0.6.0
3965 2004-05-13 *** Released version 0.6.0
3960
3966
3961 2004-05-13 Fernando Perez <fperez@colorado.edu>
3967 2004-05-13 Fernando Perez <fperez@colorado.edu>
3962
3968
3963 * debian/: Added debian/ directory to CVS, so that debian support
3969 * debian/: Added debian/ directory to CVS, so that debian support
3964 is publicly accessible. The debian package is maintained by Jack
3970 is publicly accessible. The debian package is maintained by Jack
3965 Moffit <jack-AT-xiph.org>.
3971 Moffit <jack-AT-xiph.org>.
3966
3972
3967 * Documentation: included the notes about an ipython-based system
3973 * Documentation: included the notes about an ipython-based system
3968 shell (the hypothetical 'pysh') into the new_design.pdf document,
3974 shell (the hypothetical 'pysh') into the new_design.pdf document,
3969 so that these ideas get distributed to users along with the
3975 so that these ideas get distributed to users along with the
3970 official documentation.
3976 official documentation.
3971
3977
3972 2004-05-10 Fernando Perez <fperez@colorado.edu>
3978 2004-05-10 Fernando Perez <fperez@colorado.edu>
3973
3979
3974 * IPython/Logger.py (Logger.create_log): fix recently introduced
3980 * IPython/Logger.py (Logger.create_log): fix recently introduced
3975 bug (misindented line) where logstart would fail when not given an
3981 bug (misindented line) where logstart would fail when not given an
3976 explicit filename.
3982 explicit filename.
3977
3983
3978 2004-05-09 Fernando Perez <fperez@colorado.edu>
3984 2004-05-09 Fernando Perez <fperez@colorado.edu>
3979
3985
3980 * IPython/Magic.py (Magic.parse_options): skip system call when
3986 * IPython/Magic.py (Magic.parse_options): skip system call when
3981 there are no options to look for. Faster, cleaner for the common
3987 there are no options to look for. Faster, cleaner for the common
3982 case.
3988 case.
3983
3989
3984 * Documentation: many updates to the manual: describing Windows
3990 * Documentation: many updates to the manual: describing Windows
3985 support better, Gnuplot updates, credits, misc small stuff. Also
3991 support better, Gnuplot updates, credits, misc small stuff. Also
3986 updated the new_design doc a bit.
3992 updated the new_design doc a bit.
3987
3993
3988 2004-05-06 *** Released version 0.6.0.rc1
3994 2004-05-06 *** Released version 0.6.0.rc1
3989
3995
3990 2004-05-06 Fernando Perez <fperez@colorado.edu>
3996 2004-05-06 Fernando Perez <fperez@colorado.edu>
3991
3997
3992 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3998 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3993 operations to use the vastly more efficient list/''.join() method.
3999 operations to use the vastly more efficient list/''.join() method.
3994 (FormattedTB.text): Fix
4000 (FormattedTB.text): Fix
3995 http://www.scipy.net/roundup/ipython/issue12 - exception source
4001 http://www.scipy.net/roundup/ipython/issue12 - exception source
3996 extract not updated after reload. Thanks to Mike Salib
4002 extract not updated after reload. Thanks to Mike Salib
3997 <msalib-AT-mit.edu> for pinning the source of the problem.
4003 <msalib-AT-mit.edu> for pinning the source of the problem.
3998 Fortunately, the solution works inside ipython and doesn't require
4004 Fortunately, the solution works inside ipython and doesn't require
3999 any changes to python proper.
4005 any changes to python proper.
4000
4006
4001 * IPython/Magic.py (Magic.parse_options): Improved to process the
4007 * IPython/Magic.py (Magic.parse_options): Improved to process the
4002 argument list as a true shell would (by actually using the
4008 argument list as a true shell would (by actually using the
4003 underlying system shell). This way, all @magics automatically get
4009 underlying system shell). This way, all @magics automatically get
4004 shell expansion for variables. Thanks to a comment by Alex
4010 shell expansion for variables. Thanks to a comment by Alex
4005 Schmolck.
4011 Schmolck.
4006
4012
4007 2004-04-04 Fernando Perez <fperez@colorado.edu>
4013 2004-04-04 Fernando Perez <fperez@colorado.edu>
4008
4014
4009 * IPython/iplib.py (InteractiveShell.interact): Added a special
4015 * IPython/iplib.py (InteractiveShell.interact): Added a special
4010 trap for a debugger quit exception, which is basically impossible
4016 trap for a debugger quit exception, which is basically impossible
4011 to handle by normal mechanisms, given what pdb does to the stack.
4017 to handle by normal mechanisms, given what pdb does to the stack.
4012 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4018 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4013
4019
4014 2004-04-03 Fernando Perez <fperez@colorado.edu>
4020 2004-04-03 Fernando Perez <fperez@colorado.edu>
4015
4021
4016 * IPython/genutils.py (Term): Standardized the names of the Term
4022 * IPython/genutils.py (Term): Standardized the names of the Term
4017 class streams to cin/cout/cerr, following C++ naming conventions
4023 class streams to cin/cout/cerr, following C++ naming conventions
4018 (I can't use in/out/err because 'in' is not a valid attribute
4024 (I can't use in/out/err because 'in' is not a valid attribute
4019 name).
4025 name).
4020
4026
4021 * IPython/iplib.py (InteractiveShell.interact): don't increment
4027 * IPython/iplib.py (InteractiveShell.interact): don't increment
4022 the prompt if there's no user input. By Daniel 'Dang' Griffith
4028 the prompt if there's no user input. By Daniel 'Dang' Griffith
4023 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4029 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4024 Francois Pinard.
4030 Francois Pinard.
4025
4031
4026 2004-04-02 Fernando Perez <fperez@colorado.edu>
4032 2004-04-02 Fernando Perez <fperez@colorado.edu>
4027
4033
4028 * IPython/genutils.py (Stream.__init__): Modified to survive at
4034 * IPython/genutils.py (Stream.__init__): Modified to survive at
4029 least importing in contexts where stdin/out/err aren't true file
4035 least importing in contexts where stdin/out/err aren't true file
4030 objects, such as PyCrust (they lack fileno() and mode). However,
4036 objects, such as PyCrust (they lack fileno() and mode). However,
4031 the recovery facilities which rely on these things existing will
4037 the recovery facilities which rely on these things existing will
4032 not work.
4038 not work.
4033
4039
4034 2004-04-01 Fernando Perez <fperez@colorado.edu>
4040 2004-04-01 Fernando Perez <fperez@colorado.edu>
4035
4041
4036 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4042 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4037 use the new getoutputerror() function, so it properly
4043 use the new getoutputerror() function, so it properly
4038 distinguishes stdout/err.
4044 distinguishes stdout/err.
4039
4045
4040 * IPython/genutils.py (getoutputerror): added a function to
4046 * IPython/genutils.py (getoutputerror): added a function to
4041 capture separately the standard output and error of a command.
4047 capture separately the standard output and error of a command.
4042 After a comment from dang on the mailing lists. This code is
4048 After a comment from dang on the mailing lists. This code is
4043 basically a modified version of commands.getstatusoutput(), from
4049 basically a modified version of commands.getstatusoutput(), from
4044 the standard library.
4050 the standard library.
4045
4051
4046 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4052 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4047 '!!' as a special syntax (shorthand) to access @sx.
4053 '!!' as a special syntax (shorthand) to access @sx.
4048
4054
4049 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4055 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4050 command and return its output as a list split on '\n'.
4056 command and return its output as a list split on '\n'.
4051
4057
4052 2004-03-31 Fernando Perez <fperez@colorado.edu>
4058 2004-03-31 Fernando Perez <fperez@colorado.edu>
4053
4059
4054 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4060 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4055 method to dictionaries used as FakeModule instances if they lack
4061 method to dictionaries used as FakeModule instances if they lack
4056 it. At least pydoc in python2.3 breaks for runtime-defined
4062 it. At least pydoc in python2.3 breaks for runtime-defined
4057 functions without this hack. At some point I need to _really_
4063 functions without this hack. At some point I need to _really_
4058 understand what FakeModule is doing, because it's a gross hack.
4064 understand what FakeModule is doing, because it's a gross hack.
4059 But it solves Arnd's problem for now...
4065 But it solves Arnd's problem for now...
4060
4066
4061 2004-02-27 Fernando Perez <fperez@colorado.edu>
4067 2004-02-27 Fernando Perez <fperez@colorado.edu>
4062
4068
4063 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4069 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4064 mode would behave erratically. Also increased the number of
4070 mode would behave erratically. Also increased the number of
4065 possible logs in rotate mod to 999. Thanks to Rod Holland
4071 possible logs in rotate mod to 999. Thanks to Rod Holland
4066 <rhh@StructureLABS.com> for the report and fixes.
4072 <rhh@StructureLABS.com> for the report and fixes.
4067
4073
4068 2004-02-26 Fernando Perez <fperez@colorado.edu>
4074 2004-02-26 Fernando Perez <fperez@colorado.edu>
4069
4075
4070 * IPython/genutils.py (page): Check that the curses module really
4076 * IPython/genutils.py (page): Check that the curses module really
4071 has the initscr attribute before trying to use it. For some
4077 has the initscr attribute before trying to use it. For some
4072 reason, the Solaris curses module is missing this. I think this
4078 reason, the Solaris curses module is missing this. I think this
4073 should be considered a Solaris python bug, but I'm not sure.
4079 should be considered a Solaris python bug, but I'm not sure.
4074
4080
4075 2004-01-17 Fernando Perez <fperez@colorado.edu>
4081 2004-01-17 Fernando Perez <fperez@colorado.edu>
4076
4082
4077 * IPython/genutils.py (Stream.__init__): Changes to try to make
4083 * IPython/genutils.py (Stream.__init__): Changes to try to make
4078 ipython robust against stdin/out/err being closed by the user.
4084 ipython robust against stdin/out/err being closed by the user.
4079 This is 'user error' (and blocks a normal python session, at least
4085 This is 'user error' (and blocks a normal python session, at least
4080 the stdout case). However, Ipython should be able to survive such
4086 the stdout case). However, Ipython should be able to survive such
4081 instances of abuse as gracefully as possible. To simplify the
4087 instances of abuse as gracefully as possible. To simplify the
4082 coding and maintain compatibility with Gary Bishop's Term
4088 coding and maintain compatibility with Gary Bishop's Term
4083 contributions, I've made use of classmethods for this. I think
4089 contributions, I've made use of classmethods for this. I think
4084 this introduces a dependency on python 2.2.
4090 this introduces a dependency on python 2.2.
4085
4091
4086 2004-01-13 Fernando Perez <fperez@colorado.edu>
4092 2004-01-13 Fernando Perez <fperez@colorado.edu>
4087
4093
4088 * IPython/numutils.py (exp_safe): simplified the code a bit and
4094 * IPython/numutils.py (exp_safe): simplified the code a bit and
4089 removed the need for importing the kinds module altogether.
4095 removed the need for importing the kinds module altogether.
4090
4096
4091 2004-01-06 Fernando Perez <fperez@colorado.edu>
4097 2004-01-06 Fernando Perez <fperez@colorado.edu>
4092
4098
4093 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4099 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4094 a magic function instead, after some community feedback. No
4100 a magic function instead, after some community feedback. No
4095 special syntax will exist for it, but its name is deliberately
4101 special syntax will exist for it, but its name is deliberately
4096 very short.
4102 very short.
4097
4103
4098 2003-12-20 Fernando Perez <fperez@colorado.edu>
4104 2003-12-20 Fernando Perez <fperez@colorado.edu>
4099
4105
4100 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4106 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4101 new functionality, to automagically assign the result of a shell
4107 new functionality, to automagically assign the result of a shell
4102 command to a variable. I'll solicit some community feedback on
4108 command to a variable. I'll solicit some community feedback on
4103 this before making it permanent.
4109 this before making it permanent.
4104
4110
4105 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4111 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4106 requested about callables for which inspect couldn't obtain a
4112 requested about callables for which inspect couldn't obtain a
4107 proper argspec. Thanks to a crash report sent by Etienne
4113 proper argspec. Thanks to a crash report sent by Etienne
4108 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4114 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4109
4115
4110 2003-12-09 Fernando Perez <fperez@colorado.edu>
4116 2003-12-09 Fernando Perez <fperez@colorado.edu>
4111
4117
4112 * IPython/genutils.py (page): patch for the pager to work across
4118 * IPython/genutils.py (page): patch for the pager to work across
4113 various versions of Windows. By Gary Bishop.
4119 various versions of Windows. By Gary Bishop.
4114
4120
4115 2003-12-04 Fernando Perez <fperez@colorado.edu>
4121 2003-12-04 Fernando Perez <fperez@colorado.edu>
4116
4122
4117 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4123 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4118 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4124 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4119 While I tested this and it looks ok, there may still be corner
4125 While I tested this and it looks ok, there may still be corner
4120 cases I've missed.
4126 cases I've missed.
4121
4127
4122 2003-12-01 Fernando Perez <fperez@colorado.edu>
4128 2003-12-01 Fernando Perez <fperez@colorado.edu>
4123
4129
4124 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4130 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4125 where a line like 'p,q=1,2' would fail because the automagic
4131 where a line like 'p,q=1,2' would fail because the automagic
4126 system would be triggered for @p.
4132 system would be triggered for @p.
4127
4133
4128 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4134 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4129 cleanups, code unmodified.
4135 cleanups, code unmodified.
4130
4136
4131 * IPython/genutils.py (Term): added a class for IPython to handle
4137 * IPython/genutils.py (Term): added a class for IPython to handle
4132 output. In most cases it will just be a proxy for stdout/err, but
4138 output. In most cases it will just be a proxy for stdout/err, but
4133 having this allows modifications to be made for some platforms,
4139 having this allows modifications to be made for some platforms,
4134 such as handling color escapes under Windows. All of this code
4140 such as handling color escapes under Windows. All of this code
4135 was contributed by Gary Bishop, with minor modifications by me.
4141 was contributed by Gary Bishop, with minor modifications by me.
4136 The actual changes affect many files.
4142 The actual changes affect many files.
4137
4143
4138 2003-11-30 Fernando Perez <fperez@colorado.edu>
4144 2003-11-30 Fernando Perez <fperez@colorado.edu>
4139
4145
4140 * IPython/iplib.py (file_matches): new completion code, courtesy
4146 * IPython/iplib.py (file_matches): new completion code, courtesy
4141 of Jeff Collins. This enables filename completion again under
4147 of Jeff Collins. This enables filename completion again under
4142 python 2.3, which disabled it at the C level.
4148 python 2.3, which disabled it at the C level.
4143
4149
4144 2003-11-11 Fernando Perez <fperez@colorado.edu>
4150 2003-11-11 Fernando Perez <fperez@colorado.edu>
4145
4151
4146 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4152 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4147 for Numeric.array(map(...)), but often convenient.
4153 for Numeric.array(map(...)), but often convenient.
4148
4154
4149 2003-11-05 Fernando Perez <fperez@colorado.edu>
4155 2003-11-05 Fernando Perez <fperez@colorado.edu>
4150
4156
4151 * IPython/numutils.py (frange): Changed a call from int() to
4157 * IPython/numutils.py (frange): Changed a call from int() to
4152 int(round()) to prevent a problem reported with arange() in the
4158 int(round()) to prevent a problem reported with arange() in the
4153 numpy list.
4159 numpy list.
4154
4160
4155 2003-10-06 Fernando Perez <fperez@colorado.edu>
4161 2003-10-06 Fernando Perez <fperez@colorado.edu>
4156
4162
4157 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4163 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4158 prevent crashes if sys lacks an argv attribute (it happens with
4164 prevent crashes if sys lacks an argv attribute (it happens with
4159 embedded interpreters which build a bare-bones sys module).
4165 embedded interpreters which build a bare-bones sys module).
4160 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4166 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4161
4167
4162 2003-09-24 Fernando Perez <fperez@colorado.edu>
4168 2003-09-24 Fernando Perez <fperez@colorado.edu>
4163
4169
4164 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4170 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4165 to protect against poorly written user objects where __getattr__
4171 to protect against poorly written user objects where __getattr__
4166 raises exceptions other than AttributeError. Thanks to a bug
4172 raises exceptions other than AttributeError. Thanks to a bug
4167 report by Oliver Sander <osander-AT-gmx.de>.
4173 report by Oliver Sander <osander-AT-gmx.de>.
4168
4174
4169 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4175 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4170 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4176 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4171
4177
4172 2003-09-09 Fernando Perez <fperez@colorado.edu>
4178 2003-09-09 Fernando Perez <fperez@colorado.edu>
4173
4179
4174 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4180 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4175 unpacking a list whith a callable as first element would
4181 unpacking a list whith a callable as first element would
4176 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4182 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4177 Collins.
4183 Collins.
4178
4184
4179 2003-08-25 *** Released version 0.5.0
4185 2003-08-25 *** Released version 0.5.0
4180
4186
4181 2003-08-22 Fernando Perez <fperez@colorado.edu>
4187 2003-08-22 Fernando Perez <fperez@colorado.edu>
4182
4188
4183 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4189 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4184 improperly defined user exceptions. Thanks to feedback from Mark
4190 improperly defined user exceptions. Thanks to feedback from Mark
4185 Russell <mrussell-AT-verio.net>.
4191 Russell <mrussell-AT-verio.net>.
4186
4192
4187 2003-08-20 Fernando Perez <fperez@colorado.edu>
4193 2003-08-20 Fernando Perez <fperez@colorado.edu>
4188
4194
4189 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4195 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4190 printing so that it would print multi-line string forms starting
4196 printing so that it would print multi-line string forms starting
4191 with a new line. This way the formatting is better respected for
4197 with a new line. This way the formatting is better respected for
4192 objects which work hard to make nice string forms.
4198 objects which work hard to make nice string forms.
4193
4199
4194 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4200 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4195 autocall would overtake data access for objects with both
4201 autocall would overtake data access for objects with both
4196 __getitem__ and __call__.
4202 __getitem__ and __call__.
4197
4203
4198 2003-08-19 *** Released version 0.5.0-rc1
4204 2003-08-19 *** Released version 0.5.0-rc1
4199
4205
4200 2003-08-19 Fernando Perez <fperez@colorado.edu>
4206 2003-08-19 Fernando Perez <fperez@colorado.edu>
4201
4207
4202 * IPython/deep_reload.py (load_tail): single tiny change here
4208 * IPython/deep_reload.py (load_tail): single tiny change here
4203 seems to fix the long-standing bug of dreload() failing to work
4209 seems to fix the long-standing bug of dreload() failing to work
4204 for dotted names. But this module is pretty tricky, so I may have
4210 for dotted names. But this module is pretty tricky, so I may have
4205 missed some subtlety. Needs more testing!.
4211 missed some subtlety. Needs more testing!.
4206
4212
4207 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4213 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4208 exceptions which have badly implemented __str__ methods.
4214 exceptions which have badly implemented __str__ methods.
4209 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4215 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4210 which I've been getting reports about from Python 2.3 users. I
4216 which I've been getting reports about from Python 2.3 users. I
4211 wish I had a simple test case to reproduce the problem, so I could
4217 wish I had a simple test case to reproduce the problem, so I could
4212 either write a cleaner workaround or file a bug report if
4218 either write a cleaner workaround or file a bug report if
4213 necessary.
4219 necessary.
4214
4220
4215 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4221 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4216 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4222 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4217 a bug report by Tjabo Kloppenburg.
4223 a bug report by Tjabo Kloppenburg.
4218
4224
4219 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4225 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4220 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4226 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4221 seems rather unstable. Thanks to a bug report by Tjabo
4227 seems rather unstable. Thanks to a bug report by Tjabo
4222 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4228 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4223
4229
4224 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4230 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4225 this out soon because of the critical fixes in the inner loop for
4231 this out soon because of the critical fixes in the inner loop for
4226 generators.
4232 generators.
4227
4233
4228 * IPython/Magic.py (Magic.getargspec): removed. This (and
4234 * IPython/Magic.py (Magic.getargspec): removed. This (and
4229 _get_def) have been obsoleted by OInspect for a long time, I
4235 _get_def) have been obsoleted by OInspect for a long time, I
4230 hadn't noticed that they were dead code.
4236 hadn't noticed that they were dead code.
4231 (Magic._ofind): restored _ofind functionality for a few literals
4237 (Magic._ofind): restored _ofind functionality for a few literals
4232 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4238 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4233 for things like "hello".capitalize?, since that would require a
4239 for things like "hello".capitalize?, since that would require a
4234 potentially dangerous eval() again.
4240 potentially dangerous eval() again.
4235
4241
4236 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4242 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4237 logic a bit more to clean up the escapes handling and minimize the
4243 logic a bit more to clean up the escapes handling and minimize the
4238 use of _ofind to only necessary cases. The interactive 'feel' of
4244 use of _ofind to only necessary cases. The interactive 'feel' of
4239 IPython should have improved quite a bit with the changes in
4245 IPython should have improved quite a bit with the changes in
4240 _prefilter and _ofind (besides being far safer than before).
4246 _prefilter and _ofind (besides being far safer than before).
4241
4247
4242 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4248 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4243 obscure, never reported). Edit would fail to find the object to
4249 obscure, never reported). Edit would fail to find the object to
4244 edit under some circumstances.
4250 edit under some circumstances.
4245 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4251 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4246 which were causing double-calling of generators. Those eval calls
4252 which were causing double-calling of generators. Those eval calls
4247 were _very_ dangerous, since code with side effects could be
4253 were _very_ dangerous, since code with side effects could be
4248 triggered. As they say, 'eval is evil'... These were the
4254 triggered. As they say, 'eval is evil'... These were the
4249 nastiest evals in IPython. Besides, _ofind is now far simpler,
4255 nastiest evals in IPython. Besides, _ofind is now far simpler,
4250 and it should also be quite a bit faster. Its use of inspect is
4256 and it should also be quite a bit faster. Its use of inspect is
4251 also safer, so perhaps some of the inspect-related crashes I've
4257 also safer, so perhaps some of the inspect-related crashes I've
4252 seen lately with Python 2.3 might be taken care of. That will
4258 seen lately with Python 2.3 might be taken care of. That will
4253 need more testing.
4259 need more testing.
4254
4260
4255 2003-08-17 Fernando Perez <fperez@colorado.edu>
4261 2003-08-17 Fernando Perez <fperez@colorado.edu>
4256
4262
4257 * IPython/iplib.py (InteractiveShell._prefilter): significant
4263 * IPython/iplib.py (InteractiveShell._prefilter): significant
4258 simplifications to the logic for handling user escapes. Faster
4264 simplifications to the logic for handling user escapes. Faster
4259 and simpler code.
4265 and simpler code.
4260
4266
4261 2003-08-14 Fernando Perez <fperez@colorado.edu>
4267 2003-08-14 Fernando Perez <fperez@colorado.edu>
4262
4268
4263 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4269 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4264 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4270 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4265 but it should be quite a bit faster. And the recursive version
4271 but it should be quite a bit faster. And the recursive version
4266 generated O(log N) intermediate storage for all rank>1 arrays,
4272 generated O(log N) intermediate storage for all rank>1 arrays,
4267 even if they were contiguous.
4273 even if they were contiguous.
4268 (l1norm): Added this function.
4274 (l1norm): Added this function.
4269 (norm): Added this function for arbitrary norms (including
4275 (norm): Added this function for arbitrary norms (including
4270 l-infinity). l1 and l2 are still special cases for convenience
4276 l-infinity). l1 and l2 are still special cases for convenience
4271 and speed.
4277 and speed.
4272
4278
4273 2003-08-03 Fernando Perez <fperez@colorado.edu>
4279 2003-08-03 Fernando Perez <fperez@colorado.edu>
4274
4280
4275 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4281 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4276 exceptions, which now raise PendingDeprecationWarnings in Python
4282 exceptions, which now raise PendingDeprecationWarnings in Python
4277 2.3. There were some in Magic and some in Gnuplot2.
4283 2.3. There were some in Magic and some in Gnuplot2.
4278
4284
4279 2003-06-30 Fernando Perez <fperez@colorado.edu>
4285 2003-06-30 Fernando Perez <fperez@colorado.edu>
4280
4286
4281 * IPython/genutils.py (page): modified to call curses only for
4287 * IPython/genutils.py (page): modified to call curses only for
4282 terminals where TERM=='xterm'. After problems under many other
4288 terminals where TERM=='xterm'. After problems under many other
4283 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4289 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4284
4290
4285 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4291 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4286 would be triggered when readline was absent. This was just an old
4292 would be triggered when readline was absent. This was just an old
4287 debugging statement I'd forgotten to take out.
4293 debugging statement I'd forgotten to take out.
4288
4294
4289 2003-06-20 Fernando Perez <fperez@colorado.edu>
4295 2003-06-20 Fernando Perez <fperez@colorado.edu>
4290
4296
4291 * IPython/genutils.py (clock): modified to return only user time
4297 * IPython/genutils.py (clock): modified to return only user time
4292 (not counting system time), after a discussion on scipy. While
4298 (not counting system time), after a discussion on scipy. While
4293 system time may be a useful quantity occasionally, it may much
4299 system time may be a useful quantity occasionally, it may much
4294 more easily be skewed by occasional swapping or other similar
4300 more easily be skewed by occasional swapping or other similar
4295 activity.
4301 activity.
4296
4302
4297 2003-06-05 Fernando Perez <fperez@colorado.edu>
4303 2003-06-05 Fernando Perez <fperez@colorado.edu>
4298
4304
4299 * IPython/numutils.py (identity): new function, for building
4305 * IPython/numutils.py (identity): new function, for building
4300 arbitrary rank Kronecker deltas (mostly backwards compatible with
4306 arbitrary rank Kronecker deltas (mostly backwards compatible with
4301 Numeric.identity)
4307 Numeric.identity)
4302
4308
4303 2003-06-03 Fernando Perez <fperez@colorado.edu>
4309 2003-06-03 Fernando Perez <fperez@colorado.edu>
4304
4310
4305 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4311 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4306 arguments passed to magics with spaces, to allow trailing '\' to
4312 arguments passed to magics with spaces, to allow trailing '\' to
4307 work normally (mainly for Windows users).
4313 work normally (mainly for Windows users).
4308
4314
4309 2003-05-29 Fernando Perez <fperez@colorado.edu>
4315 2003-05-29 Fernando Perez <fperez@colorado.edu>
4310
4316
4311 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4317 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4312 instead of pydoc.help. This fixes a bizarre behavior where
4318 instead of pydoc.help. This fixes a bizarre behavior where
4313 printing '%s' % locals() would trigger the help system. Now
4319 printing '%s' % locals() would trigger the help system. Now
4314 ipython behaves like normal python does.
4320 ipython behaves like normal python does.
4315
4321
4316 Note that if one does 'from pydoc import help', the bizarre
4322 Note that if one does 'from pydoc import help', the bizarre
4317 behavior returns, but this will also happen in normal python, so
4323 behavior returns, but this will also happen in normal python, so
4318 it's not an ipython bug anymore (it has to do with how pydoc.help
4324 it's not an ipython bug anymore (it has to do with how pydoc.help
4319 is implemented).
4325 is implemented).
4320
4326
4321 2003-05-22 Fernando Perez <fperez@colorado.edu>
4327 2003-05-22 Fernando Perez <fperez@colorado.edu>
4322
4328
4323 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4329 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4324 return [] instead of None when nothing matches, also match to end
4330 return [] instead of None when nothing matches, also match to end
4325 of line. Patch by Gary Bishop.
4331 of line. Patch by Gary Bishop.
4326
4332
4327 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4333 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4328 protection as before, for files passed on the command line. This
4334 protection as before, for files passed on the command line. This
4329 prevents the CrashHandler from kicking in if user files call into
4335 prevents the CrashHandler from kicking in if user files call into
4330 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4336 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4331 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4337 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4332
4338
4333 2003-05-20 *** Released version 0.4.0
4339 2003-05-20 *** Released version 0.4.0
4334
4340
4335 2003-05-20 Fernando Perez <fperez@colorado.edu>
4341 2003-05-20 Fernando Perez <fperez@colorado.edu>
4336
4342
4337 * setup.py: added support for manpages. It's a bit hackish b/c of
4343 * setup.py: added support for manpages. It's a bit hackish b/c of
4338 a bug in the way the bdist_rpm distutils target handles gzipped
4344 a bug in the way the bdist_rpm distutils target handles gzipped
4339 manpages, but it works. After a patch by Jack.
4345 manpages, but it works. After a patch by Jack.
4340
4346
4341 2003-05-19 Fernando Perez <fperez@colorado.edu>
4347 2003-05-19 Fernando Perez <fperez@colorado.edu>
4342
4348
4343 * IPython/numutils.py: added a mockup of the kinds module, since
4349 * IPython/numutils.py: added a mockup of the kinds module, since
4344 it was recently removed from Numeric. This way, numutils will
4350 it was recently removed from Numeric. This way, numutils will
4345 work for all users even if they are missing kinds.
4351 work for all users even if they are missing kinds.
4346
4352
4347 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4353 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4348 failure, which can occur with SWIG-wrapped extensions. After a
4354 failure, which can occur with SWIG-wrapped extensions. After a
4349 crash report from Prabhu.
4355 crash report from Prabhu.
4350
4356
4351 2003-05-16 Fernando Perez <fperez@colorado.edu>
4357 2003-05-16 Fernando Perez <fperez@colorado.edu>
4352
4358
4353 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4359 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4354 protect ipython from user code which may call directly
4360 protect ipython from user code which may call directly
4355 sys.excepthook (this looks like an ipython crash to the user, even
4361 sys.excepthook (this looks like an ipython crash to the user, even
4356 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4362 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4357 This is especially important to help users of WxWindows, but may
4363 This is especially important to help users of WxWindows, but may
4358 also be useful in other cases.
4364 also be useful in other cases.
4359
4365
4360 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4366 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4361 an optional tb_offset to be specified, and to preserve exception
4367 an optional tb_offset to be specified, and to preserve exception
4362 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4368 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4363
4369
4364 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4370 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4365
4371
4366 2003-05-15 Fernando Perez <fperez@colorado.edu>
4372 2003-05-15 Fernando Perez <fperez@colorado.edu>
4367
4373
4368 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4374 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4369 installing for a new user under Windows.
4375 installing for a new user under Windows.
4370
4376
4371 2003-05-12 Fernando Perez <fperez@colorado.edu>
4377 2003-05-12 Fernando Perez <fperez@colorado.edu>
4372
4378
4373 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4379 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4374 handler for Emacs comint-based lines. Currently it doesn't do
4380 handler for Emacs comint-based lines. Currently it doesn't do
4375 much (but importantly, it doesn't update the history cache). In
4381 much (but importantly, it doesn't update the history cache). In
4376 the future it may be expanded if Alex needs more functionality
4382 the future it may be expanded if Alex needs more functionality
4377 there.
4383 there.
4378
4384
4379 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4385 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4380 info to crash reports.
4386 info to crash reports.
4381
4387
4382 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4388 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4383 just like Python's -c. Also fixed crash with invalid -color
4389 just like Python's -c. Also fixed crash with invalid -color
4384 option value at startup. Thanks to Will French
4390 option value at startup. Thanks to Will French
4385 <wfrench-AT-bestweb.net> for the bug report.
4391 <wfrench-AT-bestweb.net> for the bug report.
4386
4392
4387 2003-05-09 Fernando Perez <fperez@colorado.edu>
4393 2003-05-09 Fernando Perez <fperez@colorado.edu>
4388
4394
4389 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4395 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4390 to EvalDict (it's a mapping, after all) and simplified its code
4396 to EvalDict (it's a mapping, after all) and simplified its code
4391 quite a bit, after a nice discussion on c.l.py where Gustavo
4397 quite a bit, after a nice discussion on c.l.py where Gustavo
4392 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4398 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4393
4399
4394 2003-04-30 Fernando Perez <fperez@colorado.edu>
4400 2003-04-30 Fernando Perez <fperez@colorado.edu>
4395
4401
4396 * IPython/genutils.py (timings_out): modified it to reduce its
4402 * IPython/genutils.py (timings_out): modified it to reduce its
4397 overhead in the common reps==1 case.
4403 overhead in the common reps==1 case.
4398
4404
4399 2003-04-29 Fernando Perez <fperez@colorado.edu>
4405 2003-04-29 Fernando Perez <fperez@colorado.edu>
4400
4406
4401 * IPython/genutils.py (timings_out): Modified to use the resource
4407 * IPython/genutils.py (timings_out): Modified to use the resource
4402 module, which avoids the wraparound problems of time.clock().
4408 module, which avoids the wraparound problems of time.clock().
4403
4409
4404 2003-04-17 *** Released version 0.2.15pre4
4410 2003-04-17 *** Released version 0.2.15pre4
4405
4411
4406 2003-04-17 Fernando Perez <fperez@colorado.edu>
4412 2003-04-17 Fernando Perez <fperez@colorado.edu>
4407
4413
4408 * setup.py (scriptfiles): Split windows-specific stuff over to a
4414 * setup.py (scriptfiles): Split windows-specific stuff over to a
4409 separate file, in an attempt to have a Windows GUI installer.
4415 separate file, in an attempt to have a Windows GUI installer.
4410 That didn't work, but part of the groundwork is done.
4416 That didn't work, but part of the groundwork is done.
4411
4417
4412 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4418 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4413 indent/unindent with 4 spaces. Particularly useful in combination
4419 indent/unindent with 4 spaces. Particularly useful in combination
4414 with the new auto-indent option.
4420 with the new auto-indent option.
4415
4421
4416 2003-04-16 Fernando Perez <fperez@colorado.edu>
4422 2003-04-16 Fernando Perez <fperez@colorado.edu>
4417
4423
4418 * IPython/Magic.py: various replacements of self.rc for
4424 * IPython/Magic.py: various replacements of self.rc for
4419 self.shell.rc. A lot more remains to be done to fully disentangle
4425 self.shell.rc. A lot more remains to be done to fully disentangle
4420 this class from the main Shell class.
4426 this class from the main Shell class.
4421
4427
4422 * IPython/GnuplotRuntime.py: added checks for mouse support so
4428 * IPython/GnuplotRuntime.py: added checks for mouse support so
4423 that we don't try to enable it if the current gnuplot doesn't
4429 that we don't try to enable it if the current gnuplot doesn't
4424 really support it. Also added checks so that we don't try to
4430 really support it. Also added checks so that we don't try to
4425 enable persist under Windows (where Gnuplot doesn't recognize the
4431 enable persist under Windows (where Gnuplot doesn't recognize the
4426 option).
4432 option).
4427
4433
4428 * IPython/iplib.py (InteractiveShell.interact): Added optional
4434 * IPython/iplib.py (InteractiveShell.interact): Added optional
4429 auto-indenting code, after a patch by King C. Shu
4435 auto-indenting code, after a patch by King C. Shu
4430 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4436 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4431 get along well with pasting indented code. If I ever figure out
4437 get along well with pasting indented code. If I ever figure out
4432 how to make that part go well, it will become on by default.
4438 how to make that part go well, it will become on by default.
4433
4439
4434 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4440 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4435 crash ipython if there was an unmatched '%' in the user's prompt
4441 crash ipython if there was an unmatched '%' in the user's prompt
4436 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4442 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4437
4443
4438 * IPython/iplib.py (InteractiveShell.interact): removed the
4444 * IPython/iplib.py (InteractiveShell.interact): removed the
4439 ability to ask the user whether he wants to crash or not at the
4445 ability to ask the user whether he wants to crash or not at the
4440 'last line' exception handler. Calling functions at that point
4446 'last line' exception handler. Calling functions at that point
4441 changes the stack, and the error reports would have incorrect
4447 changes the stack, and the error reports would have incorrect
4442 tracebacks.
4448 tracebacks.
4443
4449
4444 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4450 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4445 pass through a peger a pretty-printed form of any object. After a
4451 pass through a peger a pretty-printed form of any object. After a
4446 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4452 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4447
4453
4448 2003-04-14 Fernando Perez <fperez@colorado.edu>
4454 2003-04-14 Fernando Perez <fperez@colorado.edu>
4449
4455
4450 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4456 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4451 all files in ~ would be modified at first install (instead of
4457 all files in ~ would be modified at first install (instead of
4452 ~/.ipython). This could be potentially disastrous, as the
4458 ~/.ipython). This could be potentially disastrous, as the
4453 modification (make line-endings native) could damage binary files.
4459 modification (make line-endings native) could damage binary files.
4454
4460
4455 2003-04-10 Fernando Perez <fperez@colorado.edu>
4461 2003-04-10 Fernando Perez <fperez@colorado.edu>
4456
4462
4457 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4463 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4458 handle only lines which are invalid python. This now means that
4464 handle only lines which are invalid python. This now means that
4459 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4465 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4460 for the bug report.
4466 for the bug report.
4461
4467
4462 2003-04-01 Fernando Perez <fperez@colorado.edu>
4468 2003-04-01 Fernando Perez <fperez@colorado.edu>
4463
4469
4464 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4470 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4465 where failing to set sys.last_traceback would crash pdb.pm().
4471 where failing to set sys.last_traceback would crash pdb.pm().
4466 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4472 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4467 report.
4473 report.
4468
4474
4469 2003-03-25 Fernando Perez <fperez@colorado.edu>
4475 2003-03-25 Fernando Perez <fperez@colorado.edu>
4470
4476
4471 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4477 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4472 before printing it (it had a lot of spurious blank lines at the
4478 before printing it (it had a lot of spurious blank lines at the
4473 end).
4479 end).
4474
4480
4475 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4481 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4476 output would be sent 21 times! Obviously people don't use this
4482 output would be sent 21 times! Obviously people don't use this
4477 too often, or I would have heard about it.
4483 too often, or I would have heard about it.
4478
4484
4479 2003-03-24 Fernando Perez <fperez@colorado.edu>
4485 2003-03-24 Fernando Perez <fperez@colorado.edu>
4480
4486
4481 * setup.py (scriptfiles): renamed the data_files parameter from
4487 * setup.py (scriptfiles): renamed the data_files parameter from
4482 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4488 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4483 for the patch.
4489 for the patch.
4484
4490
4485 2003-03-20 Fernando Perez <fperez@colorado.edu>
4491 2003-03-20 Fernando Perez <fperez@colorado.edu>
4486
4492
4487 * IPython/genutils.py (error): added error() and fatal()
4493 * IPython/genutils.py (error): added error() and fatal()
4488 functions.
4494 functions.
4489
4495
4490 2003-03-18 *** Released version 0.2.15pre3
4496 2003-03-18 *** Released version 0.2.15pre3
4491
4497
4492 2003-03-18 Fernando Perez <fperez@colorado.edu>
4498 2003-03-18 Fernando Perez <fperez@colorado.edu>
4493
4499
4494 * setupext/install_data_ext.py
4500 * setupext/install_data_ext.py
4495 (install_data_ext.initialize_options): Class contributed by Jack
4501 (install_data_ext.initialize_options): Class contributed by Jack
4496 Moffit for fixing the old distutils hack. He is sending this to
4502 Moffit for fixing the old distutils hack. He is sending this to
4497 the distutils folks so in the future we may not need it as a
4503 the distutils folks so in the future we may not need it as a
4498 private fix.
4504 private fix.
4499
4505
4500 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4506 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4501 changes for Debian packaging. See his patch for full details.
4507 changes for Debian packaging. See his patch for full details.
4502 The old distutils hack of making the ipythonrc* files carry a
4508 The old distutils hack of making the ipythonrc* files carry a
4503 bogus .py extension is gone, at last. Examples were moved to a
4509 bogus .py extension is gone, at last. Examples were moved to a
4504 separate subdir under doc/, and the separate executable scripts
4510 separate subdir under doc/, and the separate executable scripts
4505 now live in their own directory. Overall a great cleanup. The
4511 now live in their own directory. Overall a great cleanup. The
4506 manual was updated to use the new files, and setup.py has been
4512 manual was updated to use the new files, and setup.py has been
4507 fixed for this setup.
4513 fixed for this setup.
4508
4514
4509 * IPython/PyColorize.py (Parser.usage): made non-executable and
4515 * IPython/PyColorize.py (Parser.usage): made non-executable and
4510 created a pycolor wrapper around it to be included as a script.
4516 created a pycolor wrapper around it to be included as a script.
4511
4517
4512 2003-03-12 *** Released version 0.2.15pre2
4518 2003-03-12 *** Released version 0.2.15pre2
4513
4519
4514 2003-03-12 Fernando Perez <fperez@colorado.edu>
4520 2003-03-12 Fernando Perez <fperez@colorado.edu>
4515
4521
4516 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4522 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4517 long-standing problem with garbage characters in some terminals.
4523 long-standing problem with garbage characters in some terminals.
4518 The issue was really that the \001 and \002 escapes must _only_ be
4524 The issue was really that the \001 and \002 escapes must _only_ be
4519 passed to input prompts (which call readline), but _never_ to
4525 passed to input prompts (which call readline), but _never_ to
4520 normal text to be printed on screen. I changed ColorANSI to have
4526 normal text to be printed on screen. I changed ColorANSI to have
4521 two classes: TermColors and InputTermColors, each with the
4527 two classes: TermColors and InputTermColors, each with the
4522 appropriate escapes for input prompts or normal text. The code in
4528 appropriate escapes for input prompts or normal text. The code in
4523 Prompts.py got slightly more complicated, but this very old and
4529 Prompts.py got slightly more complicated, but this very old and
4524 annoying bug is finally fixed.
4530 annoying bug is finally fixed.
4525
4531
4526 All the credit for nailing down the real origin of this problem
4532 All the credit for nailing down the real origin of this problem
4527 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4533 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4528 *Many* thanks to him for spending quite a bit of effort on this.
4534 *Many* thanks to him for spending quite a bit of effort on this.
4529
4535
4530 2003-03-05 *** Released version 0.2.15pre1
4536 2003-03-05 *** Released version 0.2.15pre1
4531
4537
4532 2003-03-03 Fernando Perez <fperez@colorado.edu>
4538 2003-03-03 Fernando Perez <fperez@colorado.edu>
4533
4539
4534 * IPython/FakeModule.py: Moved the former _FakeModule to a
4540 * IPython/FakeModule.py: Moved the former _FakeModule to a
4535 separate file, because it's also needed by Magic (to fix a similar
4541 separate file, because it's also needed by Magic (to fix a similar
4536 pickle-related issue in @run).
4542 pickle-related issue in @run).
4537
4543
4538 2003-03-02 Fernando Perez <fperez@colorado.edu>
4544 2003-03-02 Fernando Perez <fperez@colorado.edu>
4539
4545
4540 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4546 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4541 the autocall option at runtime.
4547 the autocall option at runtime.
4542 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4548 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4543 across Magic.py to start separating Magic from InteractiveShell.
4549 across Magic.py to start separating Magic from InteractiveShell.
4544 (Magic._ofind): Fixed to return proper namespace for dotted
4550 (Magic._ofind): Fixed to return proper namespace for dotted
4545 names. Before, a dotted name would always return 'not currently
4551 names. Before, a dotted name would always return 'not currently
4546 defined', because it would find the 'parent'. s.x would be found,
4552 defined', because it would find the 'parent'. s.x would be found,
4547 but since 'x' isn't defined by itself, it would get confused.
4553 but since 'x' isn't defined by itself, it would get confused.
4548 (Magic.magic_run): Fixed pickling problems reported by Ralf
4554 (Magic.magic_run): Fixed pickling problems reported by Ralf
4549 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4555 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4550 that I'd used when Mike Heeter reported similar issues at the
4556 that I'd used when Mike Heeter reported similar issues at the
4551 top-level, but now for @run. It boils down to injecting the
4557 top-level, but now for @run. It boils down to injecting the
4552 namespace where code is being executed with something that looks
4558 namespace where code is being executed with something that looks
4553 enough like a module to fool pickle.dump(). Since a pickle stores
4559 enough like a module to fool pickle.dump(). Since a pickle stores
4554 a named reference to the importing module, we need this for
4560 a named reference to the importing module, we need this for
4555 pickles to save something sensible.
4561 pickles to save something sensible.
4556
4562
4557 * IPython/ipmaker.py (make_IPython): added an autocall option.
4563 * IPython/ipmaker.py (make_IPython): added an autocall option.
4558
4564
4559 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4565 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4560 the auto-eval code. Now autocalling is an option, and the code is
4566 the auto-eval code. Now autocalling is an option, and the code is
4561 also vastly safer. There is no more eval() involved at all.
4567 also vastly safer. There is no more eval() involved at all.
4562
4568
4563 2003-03-01 Fernando Perez <fperez@colorado.edu>
4569 2003-03-01 Fernando Perez <fperez@colorado.edu>
4564
4570
4565 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4571 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4566 dict with named keys instead of a tuple.
4572 dict with named keys instead of a tuple.
4567
4573
4568 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4574 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4569
4575
4570 * setup.py (make_shortcut): Fixed message about directories
4576 * setup.py (make_shortcut): Fixed message about directories
4571 created during Windows installation (the directories were ok, just
4577 created during Windows installation (the directories were ok, just
4572 the printed message was misleading). Thanks to Chris Liechti
4578 the printed message was misleading). Thanks to Chris Liechti
4573 <cliechti-AT-gmx.net> for the heads up.
4579 <cliechti-AT-gmx.net> for the heads up.
4574
4580
4575 2003-02-21 Fernando Perez <fperez@colorado.edu>
4581 2003-02-21 Fernando Perez <fperez@colorado.edu>
4576
4582
4577 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4583 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4578 of ValueError exception when checking for auto-execution. This
4584 of ValueError exception when checking for auto-execution. This
4579 one is raised by things like Numeric arrays arr.flat when the
4585 one is raised by things like Numeric arrays arr.flat when the
4580 array is non-contiguous.
4586 array is non-contiguous.
4581
4587
4582 2003-01-31 Fernando Perez <fperez@colorado.edu>
4588 2003-01-31 Fernando Perez <fperez@colorado.edu>
4583
4589
4584 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4590 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4585 not return any value at all (even though the command would get
4591 not return any value at all (even though the command would get
4586 executed).
4592 executed).
4587 (xsys): Flush stdout right after printing the command to ensure
4593 (xsys): Flush stdout right after printing the command to ensure
4588 proper ordering of commands and command output in the total
4594 proper ordering of commands and command output in the total
4589 output.
4595 output.
4590 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4596 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4591 system/getoutput as defaults. The old ones are kept for
4597 system/getoutput as defaults. The old ones are kept for
4592 compatibility reasons, so no code which uses this library needs
4598 compatibility reasons, so no code which uses this library needs
4593 changing.
4599 changing.
4594
4600
4595 2003-01-27 *** Released version 0.2.14
4601 2003-01-27 *** Released version 0.2.14
4596
4602
4597 2003-01-25 Fernando Perez <fperez@colorado.edu>
4603 2003-01-25 Fernando Perez <fperez@colorado.edu>
4598
4604
4599 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4605 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4600 functions defined in previous edit sessions could not be re-edited
4606 functions defined in previous edit sessions could not be re-edited
4601 (because the temp files were immediately removed). Now temp files
4607 (because the temp files were immediately removed). Now temp files
4602 are removed only at IPython's exit.
4608 are removed only at IPython's exit.
4603 (Magic.magic_run): Improved @run to perform shell-like expansions
4609 (Magic.magic_run): Improved @run to perform shell-like expansions
4604 on its arguments (~users and $VARS). With this, @run becomes more
4610 on its arguments (~users and $VARS). With this, @run becomes more
4605 like a normal command-line.
4611 like a normal command-line.
4606
4612
4607 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4613 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4608 bugs related to embedding and cleaned up that code. A fairly
4614 bugs related to embedding and cleaned up that code. A fairly
4609 important one was the impossibility to access the global namespace
4615 important one was the impossibility to access the global namespace
4610 through the embedded IPython (only local variables were visible).
4616 through the embedded IPython (only local variables were visible).
4611
4617
4612 2003-01-14 Fernando Perez <fperez@colorado.edu>
4618 2003-01-14 Fernando Perez <fperez@colorado.edu>
4613
4619
4614 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4620 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4615 auto-calling to be a bit more conservative. Now it doesn't get
4621 auto-calling to be a bit more conservative. Now it doesn't get
4616 triggered if any of '!=()<>' are in the rest of the input line, to
4622 triggered if any of '!=()<>' are in the rest of the input line, to
4617 allow comparing callables. Thanks to Alex for the heads up.
4623 allow comparing callables. Thanks to Alex for the heads up.
4618
4624
4619 2003-01-07 Fernando Perez <fperez@colorado.edu>
4625 2003-01-07 Fernando Perez <fperez@colorado.edu>
4620
4626
4621 * IPython/genutils.py (page): fixed estimation of the number of
4627 * IPython/genutils.py (page): fixed estimation of the number of
4622 lines in a string to be paged to simply count newlines. This
4628 lines in a string to be paged to simply count newlines. This
4623 prevents over-guessing due to embedded escape sequences. A better
4629 prevents over-guessing due to embedded escape sequences. A better
4624 long-term solution would involve stripping out the control chars
4630 long-term solution would involve stripping out the control chars
4625 for the count, but it's potentially so expensive I just don't
4631 for the count, but it's potentially so expensive I just don't
4626 think it's worth doing.
4632 think it's worth doing.
4627
4633
4628 2002-12-19 *** Released version 0.2.14pre50
4634 2002-12-19 *** Released version 0.2.14pre50
4629
4635
4630 2002-12-19 Fernando Perez <fperez@colorado.edu>
4636 2002-12-19 Fernando Perez <fperez@colorado.edu>
4631
4637
4632 * tools/release (version): Changed release scripts to inform
4638 * tools/release (version): Changed release scripts to inform
4633 Andrea and build a NEWS file with a list of recent changes.
4639 Andrea and build a NEWS file with a list of recent changes.
4634
4640
4635 * IPython/ColorANSI.py (__all__): changed terminal detection
4641 * IPython/ColorANSI.py (__all__): changed terminal detection
4636 code. Seems to work better for xterms without breaking
4642 code. Seems to work better for xterms without breaking
4637 konsole. Will need more testing to determine if WinXP and Mac OSX
4643 konsole. Will need more testing to determine if WinXP and Mac OSX
4638 also work ok.
4644 also work ok.
4639
4645
4640 2002-12-18 *** Released version 0.2.14pre49
4646 2002-12-18 *** Released version 0.2.14pre49
4641
4647
4642 2002-12-18 Fernando Perez <fperez@colorado.edu>
4648 2002-12-18 Fernando Perez <fperez@colorado.edu>
4643
4649
4644 * Docs: added new info about Mac OSX, from Andrea.
4650 * Docs: added new info about Mac OSX, from Andrea.
4645
4651
4646 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4652 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4647 allow direct plotting of python strings whose format is the same
4653 allow direct plotting of python strings whose format is the same
4648 of gnuplot data files.
4654 of gnuplot data files.
4649
4655
4650 2002-12-16 Fernando Perez <fperez@colorado.edu>
4656 2002-12-16 Fernando Perez <fperez@colorado.edu>
4651
4657
4652 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4658 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4653 value of exit question to be acknowledged.
4659 value of exit question to be acknowledged.
4654
4660
4655 2002-12-03 Fernando Perez <fperez@colorado.edu>
4661 2002-12-03 Fernando Perez <fperez@colorado.edu>
4656
4662
4657 * IPython/ipmaker.py: removed generators, which had been added
4663 * IPython/ipmaker.py: removed generators, which had been added
4658 by mistake in an earlier debugging run. This was causing trouble
4664 by mistake in an earlier debugging run. This was causing trouble
4659 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4665 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4660 for pointing this out.
4666 for pointing this out.
4661
4667
4662 2002-11-17 Fernando Perez <fperez@colorado.edu>
4668 2002-11-17 Fernando Perez <fperez@colorado.edu>
4663
4669
4664 * Manual: updated the Gnuplot section.
4670 * Manual: updated the Gnuplot section.
4665
4671
4666 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4672 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4667 a much better split of what goes in Runtime and what goes in
4673 a much better split of what goes in Runtime and what goes in
4668 Interactive.
4674 Interactive.
4669
4675
4670 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4676 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4671 being imported from iplib.
4677 being imported from iplib.
4672
4678
4673 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4679 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4674 for command-passing. Now the global Gnuplot instance is called
4680 for command-passing. Now the global Gnuplot instance is called
4675 'gp' instead of 'g', which was really a far too fragile and
4681 'gp' instead of 'g', which was really a far too fragile and
4676 common name.
4682 common name.
4677
4683
4678 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4684 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4679 bounding boxes generated by Gnuplot for square plots.
4685 bounding boxes generated by Gnuplot for square plots.
4680
4686
4681 * IPython/genutils.py (popkey): new function added. I should
4687 * IPython/genutils.py (popkey): new function added. I should
4682 suggest this on c.l.py as a dict method, it seems useful.
4688 suggest this on c.l.py as a dict method, it seems useful.
4683
4689
4684 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4690 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4685 to transparently handle PostScript generation. MUCH better than
4691 to transparently handle PostScript generation. MUCH better than
4686 the previous plot_eps/replot_eps (which I removed now). The code
4692 the previous plot_eps/replot_eps (which I removed now). The code
4687 is also fairly clean and well documented now (including
4693 is also fairly clean and well documented now (including
4688 docstrings).
4694 docstrings).
4689
4695
4690 2002-11-13 Fernando Perez <fperez@colorado.edu>
4696 2002-11-13 Fernando Perez <fperez@colorado.edu>
4691
4697
4692 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4698 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4693 (inconsistent with options).
4699 (inconsistent with options).
4694
4700
4695 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4701 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4696 manually disabled, I don't know why. Fixed it.
4702 manually disabled, I don't know why. Fixed it.
4697 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4703 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4698 eps output.
4704 eps output.
4699
4705
4700 2002-11-12 Fernando Perez <fperez@colorado.edu>
4706 2002-11-12 Fernando Perez <fperez@colorado.edu>
4701
4707
4702 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4708 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4703 don't propagate up to caller. Fixes crash reported by François
4709 don't propagate up to caller. Fixes crash reported by François
4704 Pinard.
4710 Pinard.
4705
4711
4706 2002-11-09 Fernando Perez <fperez@colorado.edu>
4712 2002-11-09 Fernando Perez <fperez@colorado.edu>
4707
4713
4708 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4714 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4709 history file for new users.
4715 history file for new users.
4710 (make_IPython): fixed bug where initial install would leave the
4716 (make_IPython): fixed bug where initial install would leave the
4711 user running in the .ipython dir.
4717 user running in the .ipython dir.
4712 (make_IPython): fixed bug where config dir .ipython would be
4718 (make_IPython): fixed bug where config dir .ipython would be
4713 created regardless of the given -ipythondir option. Thanks to Cory
4719 created regardless of the given -ipythondir option. Thanks to Cory
4714 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4720 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4715
4721
4716 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4722 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4717 type confirmations. Will need to use it in all of IPython's code
4723 type confirmations. Will need to use it in all of IPython's code
4718 consistently.
4724 consistently.
4719
4725
4720 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4726 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4721 context to print 31 lines instead of the default 5. This will make
4727 context to print 31 lines instead of the default 5. This will make
4722 the crash reports extremely detailed in case the problem is in
4728 the crash reports extremely detailed in case the problem is in
4723 libraries I don't have access to.
4729 libraries I don't have access to.
4724
4730
4725 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4731 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4726 line of defense' code to still crash, but giving users fair
4732 line of defense' code to still crash, but giving users fair
4727 warning. I don't want internal errors to go unreported: if there's
4733 warning. I don't want internal errors to go unreported: if there's
4728 an internal problem, IPython should crash and generate a full
4734 an internal problem, IPython should crash and generate a full
4729 report.
4735 report.
4730
4736
4731 2002-11-08 Fernando Perez <fperez@colorado.edu>
4737 2002-11-08 Fernando Perez <fperez@colorado.edu>
4732
4738
4733 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4739 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4734 otherwise uncaught exceptions which can appear if people set
4740 otherwise uncaught exceptions which can appear if people set
4735 sys.stdout to something badly broken. Thanks to a crash report
4741 sys.stdout to something badly broken. Thanks to a crash report
4736 from henni-AT-mail.brainbot.com.
4742 from henni-AT-mail.brainbot.com.
4737
4743
4738 2002-11-04 Fernando Perez <fperez@colorado.edu>
4744 2002-11-04 Fernando Perez <fperez@colorado.edu>
4739
4745
4740 * IPython/iplib.py (InteractiveShell.interact): added
4746 * IPython/iplib.py (InteractiveShell.interact): added
4741 __IPYTHON__active to the builtins. It's a flag which goes on when
4747 __IPYTHON__active to the builtins. It's a flag which goes on when
4742 the interaction starts and goes off again when it stops. This
4748 the interaction starts and goes off again when it stops. This
4743 allows embedding code to detect being inside IPython. Before this
4749 allows embedding code to detect being inside IPython. Before this
4744 was done via __IPYTHON__, but that only shows that an IPython
4750 was done via __IPYTHON__, but that only shows that an IPython
4745 instance has been created.
4751 instance has been created.
4746
4752
4747 * IPython/Magic.py (Magic.magic_env): I realized that in a
4753 * IPython/Magic.py (Magic.magic_env): I realized that in a
4748 UserDict, instance.data holds the data as a normal dict. So I
4754 UserDict, instance.data holds the data as a normal dict. So I
4749 modified @env to return os.environ.data instead of rebuilding a
4755 modified @env to return os.environ.data instead of rebuilding a
4750 dict by hand.
4756 dict by hand.
4751
4757
4752 2002-11-02 Fernando Perez <fperez@colorado.edu>
4758 2002-11-02 Fernando Perez <fperez@colorado.edu>
4753
4759
4754 * IPython/genutils.py (warn): changed so that level 1 prints no
4760 * IPython/genutils.py (warn): changed so that level 1 prints no
4755 header. Level 2 is now the default (with 'WARNING' header, as
4761 header. Level 2 is now the default (with 'WARNING' header, as
4756 before). I think I tracked all places where changes were needed in
4762 before). I think I tracked all places where changes were needed in
4757 IPython, but outside code using the old level numbering may have
4763 IPython, but outside code using the old level numbering may have
4758 broken.
4764 broken.
4759
4765
4760 * IPython/iplib.py (InteractiveShell.runcode): added this to
4766 * IPython/iplib.py (InteractiveShell.runcode): added this to
4761 handle the tracebacks in SystemExit traps correctly. The previous
4767 handle the tracebacks in SystemExit traps correctly. The previous
4762 code (through interact) was printing more of the stack than
4768 code (through interact) was printing more of the stack than
4763 necessary, showing IPython internal code to the user.
4769 necessary, showing IPython internal code to the user.
4764
4770
4765 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4771 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4766 default. Now that the default at the confirmation prompt is yes,
4772 default. Now that the default at the confirmation prompt is yes,
4767 it's not so intrusive. François' argument that ipython sessions
4773 it's not so intrusive. François' argument that ipython sessions
4768 tend to be complex enough not to lose them from an accidental C-d,
4774 tend to be complex enough not to lose them from an accidental C-d,
4769 is a valid one.
4775 is a valid one.
4770
4776
4771 * IPython/iplib.py (InteractiveShell.interact): added a
4777 * IPython/iplib.py (InteractiveShell.interact): added a
4772 showtraceback() call to the SystemExit trap, and modified the exit
4778 showtraceback() call to the SystemExit trap, and modified the exit
4773 confirmation to have yes as the default.
4779 confirmation to have yes as the default.
4774
4780
4775 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4781 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4776 this file. It's been gone from the code for a long time, this was
4782 this file. It's been gone from the code for a long time, this was
4777 simply leftover junk.
4783 simply leftover junk.
4778
4784
4779 2002-11-01 Fernando Perez <fperez@colorado.edu>
4785 2002-11-01 Fernando Perez <fperez@colorado.edu>
4780
4786
4781 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4787 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4782 added. If set, IPython now traps EOF and asks for
4788 added. If set, IPython now traps EOF and asks for
4783 confirmation. After a request by François Pinard.
4789 confirmation. After a request by François Pinard.
4784
4790
4785 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4791 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4786 of @abort, and with a new (better) mechanism for handling the
4792 of @abort, and with a new (better) mechanism for handling the
4787 exceptions.
4793 exceptions.
4788
4794
4789 2002-10-27 Fernando Perez <fperez@colorado.edu>
4795 2002-10-27 Fernando Perez <fperez@colorado.edu>
4790
4796
4791 * IPython/usage.py (__doc__): updated the --help information and
4797 * IPython/usage.py (__doc__): updated the --help information and
4792 the ipythonrc file to indicate that -log generates
4798 the ipythonrc file to indicate that -log generates
4793 ./ipython.log. Also fixed the corresponding info in @logstart.
4799 ./ipython.log. Also fixed the corresponding info in @logstart.
4794 This and several other fixes in the manuals thanks to reports by
4800 This and several other fixes in the manuals thanks to reports by
4795 François Pinard <pinard-AT-iro.umontreal.ca>.
4801 François Pinard <pinard-AT-iro.umontreal.ca>.
4796
4802
4797 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4803 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4798 refer to @logstart (instead of @log, which doesn't exist).
4804 refer to @logstart (instead of @log, which doesn't exist).
4799
4805
4800 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4806 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4801 AttributeError crash. Thanks to Christopher Armstrong
4807 AttributeError crash. Thanks to Christopher Armstrong
4802 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4808 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4803 introduced recently (in 0.2.14pre37) with the fix to the eval
4809 introduced recently (in 0.2.14pre37) with the fix to the eval
4804 problem mentioned below.
4810 problem mentioned below.
4805
4811
4806 2002-10-17 Fernando Perez <fperez@colorado.edu>
4812 2002-10-17 Fernando Perez <fperez@colorado.edu>
4807
4813
4808 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4814 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4809 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4815 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4810
4816
4811 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4817 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4812 this function to fix a problem reported by Alex Schmolck. He saw
4818 this function to fix a problem reported by Alex Schmolck. He saw
4813 it with list comprehensions and generators, which were getting
4819 it with list comprehensions and generators, which were getting
4814 called twice. The real problem was an 'eval' call in testing for
4820 called twice. The real problem was an 'eval' call in testing for
4815 automagic which was evaluating the input line silently.
4821 automagic which was evaluating the input line silently.
4816
4822
4817 This is a potentially very nasty bug, if the input has side
4823 This is a potentially very nasty bug, if the input has side
4818 effects which must not be repeated. The code is much cleaner now,
4824 effects which must not be repeated. The code is much cleaner now,
4819 without any blanket 'except' left and with a regexp test for
4825 without any blanket 'except' left and with a regexp test for
4820 actual function names.
4826 actual function names.
4821
4827
4822 But an eval remains, which I'm not fully comfortable with. I just
4828 But an eval remains, which I'm not fully comfortable with. I just
4823 don't know how to find out if an expression could be a callable in
4829 don't know how to find out if an expression could be a callable in
4824 the user's namespace without doing an eval on the string. However
4830 the user's namespace without doing an eval on the string. However
4825 that string is now much more strictly checked so that no code
4831 that string is now much more strictly checked so that no code
4826 slips by, so the eval should only happen for things that can
4832 slips by, so the eval should only happen for things that can
4827 really be only function/method names.
4833 really be only function/method names.
4828
4834
4829 2002-10-15 Fernando Perez <fperez@colorado.edu>
4835 2002-10-15 Fernando Perez <fperez@colorado.edu>
4830
4836
4831 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4837 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4832 OSX information to main manual, removed README_Mac_OSX file from
4838 OSX information to main manual, removed README_Mac_OSX file from
4833 distribution. Also updated credits for recent additions.
4839 distribution. Also updated credits for recent additions.
4834
4840
4835 2002-10-10 Fernando Perez <fperez@colorado.edu>
4841 2002-10-10 Fernando Perez <fperez@colorado.edu>
4836
4842
4837 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4843 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4838 terminal-related issues. Many thanks to Andrea Riciputi
4844 terminal-related issues. Many thanks to Andrea Riciputi
4839 <andrea.riciputi-AT-libero.it> for writing it.
4845 <andrea.riciputi-AT-libero.it> for writing it.
4840
4846
4841 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4847 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4842 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4848 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4843
4849
4844 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4850 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4845 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4851 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4846 <syver-en-AT-online.no> who both submitted patches for this problem.
4852 <syver-en-AT-online.no> who both submitted patches for this problem.
4847
4853
4848 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4854 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4849 global embedding to make sure that things don't overwrite user
4855 global embedding to make sure that things don't overwrite user
4850 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4856 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4851
4857
4852 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4858 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4853 compatibility. Thanks to Hayden Callow
4859 compatibility. Thanks to Hayden Callow
4854 <h.callow-AT-elec.canterbury.ac.nz>
4860 <h.callow-AT-elec.canterbury.ac.nz>
4855
4861
4856 2002-10-04 Fernando Perez <fperez@colorado.edu>
4862 2002-10-04 Fernando Perez <fperez@colorado.edu>
4857
4863
4858 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4864 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4859 Gnuplot.File objects.
4865 Gnuplot.File objects.
4860
4866
4861 2002-07-23 Fernando Perez <fperez@colorado.edu>
4867 2002-07-23 Fernando Perez <fperez@colorado.edu>
4862
4868
4863 * IPython/genutils.py (timing): Added timings() and timing() for
4869 * IPython/genutils.py (timing): Added timings() and timing() for
4864 quick access to the most commonly needed data, the execution
4870 quick access to the most commonly needed data, the execution
4865 times. Old timing() renamed to timings_out().
4871 times. Old timing() renamed to timings_out().
4866
4872
4867 2002-07-18 Fernando Perez <fperez@colorado.edu>
4873 2002-07-18 Fernando Perez <fperez@colorado.edu>
4868
4874
4869 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4875 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4870 bug with nested instances disrupting the parent's tab completion.
4876 bug with nested instances disrupting the parent's tab completion.
4871
4877
4872 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4878 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4873 all_completions code to begin the emacs integration.
4879 all_completions code to begin the emacs integration.
4874
4880
4875 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4881 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4876 argument to allow titling individual arrays when plotting.
4882 argument to allow titling individual arrays when plotting.
4877
4883
4878 2002-07-15 Fernando Perez <fperez@colorado.edu>
4884 2002-07-15 Fernando Perez <fperez@colorado.edu>
4879
4885
4880 * setup.py (make_shortcut): changed to retrieve the value of
4886 * setup.py (make_shortcut): changed to retrieve the value of
4881 'Program Files' directory from the registry (this value changes in
4887 'Program Files' directory from the registry (this value changes in
4882 non-english versions of Windows). Thanks to Thomas Fanslau
4888 non-english versions of Windows). Thanks to Thomas Fanslau
4883 <tfanslau-AT-gmx.de> for the report.
4889 <tfanslau-AT-gmx.de> for the report.
4884
4890
4885 2002-07-10 Fernando Perez <fperez@colorado.edu>
4891 2002-07-10 Fernando Perez <fperez@colorado.edu>
4886
4892
4887 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4893 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4888 a bug in pdb, which crashes if a line with only whitespace is
4894 a bug in pdb, which crashes if a line with only whitespace is
4889 entered. Bug report submitted to sourceforge.
4895 entered. Bug report submitted to sourceforge.
4890
4896
4891 2002-07-09 Fernando Perez <fperez@colorado.edu>
4897 2002-07-09 Fernando Perez <fperez@colorado.edu>
4892
4898
4893 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4899 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4894 reporting exceptions (it's a bug in inspect.py, I just set a
4900 reporting exceptions (it's a bug in inspect.py, I just set a
4895 workaround).
4901 workaround).
4896
4902
4897 2002-07-08 Fernando Perez <fperez@colorado.edu>
4903 2002-07-08 Fernando Perez <fperez@colorado.edu>
4898
4904
4899 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4905 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4900 __IPYTHON__ in __builtins__ to show up in user_ns.
4906 __IPYTHON__ in __builtins__ to show up in user_ns.
4901
4907
4902 2002-07-03 Fernando Perez <fperez@colorado.edu>
4908 2002-07-03 Fernando Perez <fperez@colorado.edu>
4903
4909
4904 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4910 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4905 name from @gp_set_instance to @gp_set_default.
4911 name from @gp_set_instance to @gp_set_default.
4906
4912
4907 * IPython/ipmaker.py (make_IPython): default editor value set to
4913 * IPython/ipmaker.py (make_IPython): default editor value set to
4908 '0' (a string), to match the rc file. Otherwise will crash when
4914 '0' (a string), to match the rc file. Otherwise will crash when
4909 .strip() is called on it.
4915 .strip() is called on it.
4910
4916
4911
4917
4912 2002-06-28 Fernando Perez <fperez@colorado.edu>
4918 2002-06-28 Fernando Perez <fperez@colorado.edu>
4913
4919
4914 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4920 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4915 of files in current directory when a file is executed via
4921 of files in current directory when a file is executed via
4916 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4922 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4917
4923
4918 * setup.py (manfiles): fix for rpm builds, submitted by RA
4924 * setup.py (manfiles): fix for rpm builds, submitted by RA
4919 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4925 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4920
4926
4921 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4927 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4922 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4928 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4923 string!). A. Schmolck caught this one.
4929 string!). A. Schmolck caught this one.
4924
4930
4925 2002-06-27 Fernando Perez <fperez@colorado.edu>
4931 2002-06-27 Fernando Perez <fperez@colorado.edu>
4926
4932
4927 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4933 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4928 defined files at the cmd line. __name__ wasn't being set to
4934 defined files at the cmd line. __name__ wasn't being set to
4929 __main__.
4935 __main__.
4930
4936
4931 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4937 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4932 regular lists and tuples besides Numeric arrays.
4938 regular lists and tuples besides Numeric arrays.
4933
4939
4934 * IPython/Prompts.py (CachedOutput.__call__): Added output
4940 * IPython/Prompts.py (CachedOutput.__call__): Added output
4935 supression for input ending with ';'. Similar to Mathematica and
4941 supression for input ending with ';'. Similar to Mathematica and
4936 Matlab. The _* vars and Out[] list are still updated, just like
4942 Matlab. The _* vars and Out[] list are still updated, just like
4937 Mathematica behaves.
4943 Mathematica behaves.
4938
4944
4939 2002-06-25 Fernando Perez <fperez@colorado.edu>
4945 2002-06-25 Fernando Perez <fperez@colorado.edu>
4940
4946
4941 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4947 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4942 .ini extensions for profiels under Windows.
4948 .ini extensions for profiels under Windows.
4943
4949
4944 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4950 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4945 string form. Fix contributed by Alexander Schmolck
4951 string form. Fix contributed by Alexander Schmolck
4946 <a.schmolck-AT-gmx.net>
4952 <a.schmolck-AT-gmx.net>
4947
4953
4948 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4954 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4949 pre-configured Gnuplot instance.
4955 pre-configured Gnuplot instance.
4950
4956
4951 2002-06-21 Fernando Perez <fperez@colorado.edu>
4957 2002-06-21 Fernando Perez <fperez@colorado.edu>
4952
4958
4953 * IPython/numutils.py (exp_safe): new function, works around the
4959 * IPython/numutils.py (exp_safe): new function, works around the
4954 underflow problems in Numeric.
4960 underflow problems in Numeric.
4955 (log2): New fn. Safe log in base 2: returns exact integer answer
4961 (log2): New fn. Safe log in base 2: returns exact integer answer
4956 for exact integer powers of 2.
4962 for exact integer powers of 2.
4957
4963
4958 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4964 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4959 properly.
4965 properly.
4960
4966
4961 2002-06-20 Fernando Perez <fperez@colorado.edu>
4967 2002-06-20 Fernando Perez <fperez@colorado.edu>
4962
4968
4963 * IPython/genutils.py (timing): new function like
4969 * IPython/genutils.py (timing): new function like
4964 Mathematica's. Similar to time_test, but returns more info.
4970 Mathematica's. Similar to time_test, but returns more info.
4965
4971
4966 2002-06-18 Fernando Perez <fperez@colorado.edu>
4972 2002-06-18 Fernando Perez <fperez@colorado.edu>
4967
4973
4968 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4974 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4969 according to Mike Heeter's suggestions.
4975 according to Mike Heeter's suggestions.
4970
4976
4971 2002-06-16 Fernando Perez <fperez@colorado.edu>
4977 2002-06-16 Fernando Perez <fperez@colorado.edu>
4972
4978
4973 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4979 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4974 system. GnuplotMagic is gone as a user-directory option. New files
4980 system. GnuplotMagic is gone as a user-directory option. New files
4975 make it easier to use all the gnuplot stuff both from external
4981 make it easier to use all the gnuplot stuff both from external
4976 programs as well as from IPython. Had to rewrite part of
4982 programs as well as from IPython. Had to rewrite part of
4977 hardcopy() b/c of a strange bug: often the ps files simply don't
4983 hardcopy() b/c of a strange bug: often the ps files simply don't
4978 get created, and require a repeat of the command (often several
4984 get created, and require a repeat of the command (often several
4979 times).
4985 times).
4980
4986
4981 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4987 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4982 resolve output channel at call time, so that if sys.stderr has
4988 resolve output channel at call time, so that if sys.stderr has
4983 been redirected by user this gets honored.
4989 been redirected by user this gets honored.
4984
4990
4985 2002-06-13 Fernando Perez <fperez@colorado.edu>
4991 2002-06-13 Fernando Perez <fperez@colorado.edu>
4986
4992
4987 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4993 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4988 IPShell. Kept a copy with the old names to avoid breaking people's
4994 IPShell. Kept a copy with the old names to avoid breaking people's
4989 embedded code.
4995 embedded code.
4990
4996
4991 * IPython/ipython: simplified it to the bare minimum after
4997 * IPython/ipython: simplified it to the bare minimum after
4992 Holger's suggestions. Added info about how to use it in
4998 Holger's suggestions. Added info about how to use it in
4993 PYTHONSTARTUP.
4999 PYTHONSTARTUP.
4994
5000
4995 * IPython/Shell.py (IPythonShell): changed the options passing
5001 * IPython/Shell.py (IPythonShell): changed the options passing
4996 from a string with funky %s replacements to a straight list. Maybe
5002 from a string with funky %s replacements to a straight list. Maybe
4997 a bit more typing, but it follows sys.argv conventions, so there's
5003 a bit more typing, but it follows sys.argv conventions, so there's
4998 less special-casing to remember.
5004 less special-casing to remember.
4999
5005
5000 2002-06-12 Fernando Perez <fperez@colorado.edu>
5006 2002-06-12 Fernando Perez <fperez@colorado.edu>
5001
5007
5002 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5008 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5003 command. Thanks to a suggestion by Mike Heeter.
5009 command. Thanks to a suggestion by Mike Heeter.
5004 (Magic.magic_pfile): added behavior to look at filenames if given
5010 (Magic.magic_pfile): added behavior to look at filenames if given
5005 arg is not a defined object.
5011 arg is not a defined object.
5006 (Magic.magic_save): New @save function to save code snippets. Also
5012 (Magic.magic_save): New @save function to save code snippets. Also
5007 a Mike Heeter idea.
5013 a Mike Heeter idea.
5008
5014
5009 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5015 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5010 plot() and replot(). Much more convenient now, especially for
5016 plot() and replot(). Much more convenient now, especially for
5011 interactive use.
5017 interactive use.
5012
5018
5013 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5019 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5014 filenames.
5020 filenames.
5015
5021
5016 2002-06-02 Fernando Perez <fperez@colorado.edu>
5022 2002-06-02 Fernando Perez <fperez@colorado.edu>
5017
5023
5018 * IPython/Struct.py (Struct.__init__): modified to admit
5024 * IPython/Struct.py (Struct.__init__): modified to admit
5019 initialization via another struct.
5025 initialization via another struct.
5020
5026
5021 * IPython/genutils.py (SystemExec.__init__): New stateful
5027 * IPython/genutils.py (SystemExec.__init__): New stateful
5022 interface to xsys and bq. Useful for writing system scripts.
5028 interface to xsys and bq. Useful for writing system scripts.
5023
5029
5024 2002-05-30 Fernando Perez <fperez@colorado.edu>
5030 2002-05-30 Fernando Perez <fperez@colorado.edu>
5025
5031
5026 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5032 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5027 documents. This will make the user download smaller (it's getting
5033 documents. This will make the user download smaller (it's getting
5028 too big).
5034 too big).
5029
5035
5030 2002-05-29 Fernando Perez <fperez@colorado.edu>
5036 2002-05-29 Fernando Perez <fperez@colorado.edu>
5031
5037
5032 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5038 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5033 fix problems with shelve and pickle. Seems to work, but I don't
5039 fix problems with shelve and pickle. Seems to work, but I don't
5034 know if corner cases break it. Thanks to Mike Heeter
5040 know if corner cases break it. Thanks to Mike Heeter
5035 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5041 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5036
5042
5037 2002-05-24 Fernando Perez <fperez@colorado.edu>
5043 2002-05-24 Fernando Perez <fperez@colorado.edu>
5038
5044
5039 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5045 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5040 macros having broken.
5046 macros having broken.
5041
5047
5042 2002-05-21 Fernando Perez <fperez@colorado.edu>
5048 2002-05-21 Fernando Perez <fperez@colorado.edu>
5043
5049
5044 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5050 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5045 introduced logging bug: all history before logging started was
5051 introduced logging bug: all history before logging started was
5046 being written one character per line! This came from the redesign
5052 being written one character per line! This came from the redesign
5047 of the input history as a special list which slices to strings,
5053 of the input history as a special list which slices to strings,
5048 not to lists.
5054 not to lists.
5049
5055
5050 2002-05-20 Fernando Perez <fperez@colorado.edu>
5056 2002-05-20 Fernando Perez <fperez@colorado.edu>
5051
5057
5052 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5058 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5053 be an attribute of all classes in this module. The design of these
5059 be an attribute of all classes in this module. The design of these
5054 classes needs some serious overhauling.
5060 classes needs some serious overhauling.
5055
5061
5056 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5062 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5057 which was ignoring '_' in option names.
5063 which was ignoring '_' in option names.
5058
5064
5059 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5065 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5060 'Verbose_novars' to 'Context' and made it the new default. It's a
5066 'Verbose_novars' to 'Context' and made it the new default. It's a
5061 bit more readable and also safer than verbose.
5067 bit more readable and also safer than verbose.
5062
5068
5063 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5069 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5064 triple-quoted strings.
5070 triple-quoted strings.
5065
5071
5066 * IPython/OInspect.py (__all__): new module exposing the object
5072 * IPython/OInspect.py (__all__): new module exposing the object
5067 introspection facilities. Now the corresponding magics are dummy
5073 introspection facilities. Now the corresponding magics are dummy
5068 wrappers around this. Having this module will make it much easier
5074 wrappers around this. Having this module will make it much easier
5069 to put these functions into our modified pdb.
5075 to put these functions into our modified pdb.
5070 This new object inspector system uses the new colorizing module,
5076 This new object inspector system uses the new colorizing module,
5071 so source code and other things are nicely syntax highlighted.
5077 so source code and other things are nicely syntax highlighted.
5072
5078
5073 2002-05-18 Fernando Perez <fperez@colorado.edu>
5079 2002-05-18 Fernando Perez <fperez@colorado.edu>
5074
5080
5075 * IPython/ColorANSI.py: Split the coloring tools into a separate
5081 * IPython/ColorANSI.py: Split the coloring tools into a separate
5076 module so I can use them in other code easier (they were part of
5082 module so I can use them in other code easier (they were part of
5077 ultraTB).
5083 ultraTB).
5078
5084
5079 2002-05-17 Fernando Perez <fperez@colorado.edu>
5085 2002-05-17 Fernando Perez <fperez@colorado.edu>
5080
5086
5081 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5087 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5082 fixed it to set the global 'g' also to the called instance, as
5088 fixed it to set the global 'g' also to the called instance, as
5083 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5089 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5084 user's 'g' variables).
5090 user's 'g' variables).
5085
5091
5086 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5092 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5087 global variables (aliases to _ih,_oh) so that users which expect
5093 global variables (aliases to _ih,_oh) so that users which expect
5088 In[5] or Out[7] to work aren't unpleasantly surprised.
5094 In[5] or Out[7] to work aren't unpleasantly surprised.
5089 (InputList.__getslice__): new class to allow executing slices of
5095 (InputList.__getslice__): new class to allow executing slices of
5090 input history directly. Very simple class, complements the use of
5096 input history directly. Very simple class, complements the use of
5091 macros.
5097 macros.
5092
5098
5093 2002-05-16 Fernando Perez <fperez@colorado.edu>
5099 2002-05-16 Fernando Perez <fperez@colorado.edu>
5094
5100
5095 * setup.py (docdirbase): make doc directory be just doc/IPython
5101 * setup.py (docdirbase): make doc directory be just doc/IPython
5096 without version numbers, it will reduce clutter for users.
5102 without version numbers, it will reduce clutter for users.
5097
5103
5098 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5104 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5099 execfile call to prevent possible memory leak. See for details:
5105 execfile call to prevent possible memory leak. See for details:
5100 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5106 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5101
5107
5102 2002-05-15 Fernando Perez <fperez@colorado.edu>
5108 2002-05-15 Fernando Perez <fperez@colorado.edu>
5103
5109
5104 * IPython/Magic.py (Magic.magic_psource): made the object
5110 * IPython/Magic.py (Magic.magic_psource): made the object
5105 introspection names be more standard: pdoc, pdef, pfile and
5111 introspection names be more standard: pdoc, pdef, pfile and
5106 psource. They all print/page their output, and it makes
5112 psource. They all print/page their output, and it makes
5107 remembering them easier. Kept old names for compatibility as
5113 remembering them easier. Kept old names for compatibility as
5108 aliases.
5114 aliases.
5109
5115
5110 2002-05-14 Fernando Perez <fperez@colorado.edu>
5116 2002-05-14 Fernando Perez <fperez@colorado.edu>
5111
5117
5112 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5118 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5113 what the mouse problem was. The trick is to use gnuplot with temp
5119 what the mouse problem was. The trick is to use gnuplot with temp
5114 files and NOT with pipes (for data communication), because having
5120 files and NOT with pipes (for data communication), because having
5115 both pipes and the mouse on is bad news.
5121 both pipes and the mouse on is bad news.
5116
5122
5117 2002-05-13 Fernando Perez <fperez@colorado.edu>
5123 2002-05-13 Fernando Perez <fperez@colorado.edu>
5118
5124
5119 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5125 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5120 bug. Information would be reported about builtins even when
5126 bug. Information would be reported about builtins even when
5121 user-defined functions overrode them.
5127 user-defined functions overrode them.
5122
5128
5123 2002-05-11 Fernando Perez <fperez@colorado.edu>
5129 2002-05-11 Fernando Perez <fperez@colorado.edu>
5124
5130
5125 * IPython/__init__.py (__all__): removed FlexCompleter from
5131 * IPython/__init__.py (__all__): removed FlexCompleter from
5126 __all__ so that things don't fail in platforms without readline.
5132 __all__ so that things don't fail in platforms without readline.
5127
5133
5128 2002-05-10 Fernando Perez <fperez@colorado.edu>
5134 2002-05-10 Fernando Perez <fperez@colorado.edu>
5129
5135
5130 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5136 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5131 it requires Numeric, effectively making Numeric a dependency for
5137 it requires Numeric, effectively making Numeric a dependency for
5132 IPython.
5138 IPython.
5133
5139
5134 * Released 0.2.13
5140 * Released 0.2.13
5135
5141
5136 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5142 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5137 profiler interface. Now all the major options from the profiler
5143 profiler interface. Now all the major options from the profiler
5138 module are directly supported in IPython, both for single
5144 module are directly supported in IPython, both for single
5139 expressions (@prun) and for full programs (@run -p).
5145 expressions (@prun) and for full programs (@run -p).
5140
5146
5141 2002-05-09 Fernando Perez <fperez@colorado.edu>
5147 2002-05-09 Fernando Perez <fperez@colorado.edu>
5142
5148
5143 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5149 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5144 magic properly formatted for screen.
5150 magic properly formatted for screen.
5145
5151
5146 * setup.py (make_shortcut): Changed things to put pdf version in
5152 * setup.py (make_shortcut): Changed things to put pdf version in
5147 doc/ instead of doc/manual (had to change lyxport a bit).
5153 doc/ instead of doc/manual (had to change lyxport a bit).
5148
5154
5149 * IPython/Magic.py (Profile.string_stats): made profile runs go
5155 * IPython/Magic.py (Profile.string_stats): made profile runs go
5150 through pager (they are long and a pager allows searching, saving,
5156 through pager (they are long and a pager allows searching, saving,
5151 etc.)
5157 etc.)
5152
5158
5153 2002-05-08 Fernando Perez <fperez@colorado.edu>
5159 2002-05-08 Fernando Perez <fperez@colorado.edu>
5154
5160
5155 * Released 0.2.12
5161 * Released 0.2.12
5156
5162
5157 2002-05-06 Fernando Perez <fperez@colorado.edu>
5163 2002-05-06 Fernando Perez <fperez@colorado.edu>
5158
5164
5159 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5165 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5160 introduced); 'hist n1 n2' was broken.
5166 introduced); 'hist n1 n2' was broken.
5161 (Magic.magic_pdb): added optional on/off arguments to @pdb
5167 (Magic.magic_pdb): added optional on/off arguments to @pdb
5162 (Magic.magic_run): added option -i to @run, which executes code in
5168 (Magic.magic_run): added option -i to @run, which executes code in
5163 the IPython namespace instead of a clean one. Also added @irun as
5169 the IPython namespace instead of a clean one. Also added @irun as
5164 an alias to @run -i.
5170 an alias to @run -i.
5165
5171
5166 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5172 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5167 fixed (it didn't really do anything, the namespaces were wrong).
5173 fixed (it didn't really do anything, the namespaces were wrong).
5168
5174
5169 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5175 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5170
5176
5171 * IPython/__init__.py (__all__): Fixed package namespace, now
5177 * IPython/__init__.py (__all__): Fixed package namespace, now
5172 'import IPython' does give access to IPython.<all> as
5178 'import IPython' does give access to IPython.<all> as
5173 expected. Also renamed __release__ to Release.
5179 expected. Also renamed __release__ to Release.
5174
5180
5175 * IPython/Debugger.py (__license__): created new Pdb class which
5181 * IPython/Debugger.py (__license__): created new Pdb class which
5176 functions like a drop-in for the normal pdb.Pdb but does NOT
5182 functions like a drop-in for the normal pdb.Pdb but does NOT
5177 import readline by default. This way it doesn't muck up IPython's
5183 import readline by default. This way it doesn't muck up IPython's
5178 readline handling, and now tab-completion finally works in the
5184 readline handling, and now tab-completion finally works in the
5179 debugger -- sort of. It completes things globally visible, but the
5185 debugger -- sort of. It completes things globally visible, but the
5180 completer doesn't track the stack as pdb walks it. That's a bit
5186 completer doesn't track the stack as pdb walks it. That's a bit
5181 tricky, and I'll have to implement it later.
5187 tricky, and I'll have to implement it later.
5182
5188
5183 2002-05-05 Fernando Perez <fperez@colorado.edu>
5189 2002-05-05 Fernando Perez <fperez@colorado.edu>
5184
5190
5185 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5191 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5186 magic docstrings when printed via ? (explicit \'s were being
5192 magic docstrings when printed via ? (explicit \'s were being
5187 printed).
5193 printed).
5188
5194
5189 * IPython/ipmaker.py (make_IPython): fixed namespace
5195 * IPython/ipmaker.py (make_IPython): fixed namespace
5190 identification bug. Now variables loaded via logs or command-line
5196 identification bug. Now variables loaded via logs or command-line
5191 files are recognized in the interactive namespace by @who.
5197 files are recognized in the interactive namespace by @who.
5192
5198
5193 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5199 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5194 log replay system stemming from the string form of Structs.
5200 log replay system stemming from the string form of Structs.
5195
5201
5196 * IPython/Magic.py (Macro.__init__): improved macros to properly
5202 * IPython/Magic.py (Macro.__init__): improved macros to properly
5197 handle magic commands in them.
5203 handle magic commands in them.
5198 (Magic.magic_logstart): usernames are now expanded so 'logstart
5204 (Magic.magic_logstart): usernames are now expanded so 'logstart
5199 ~/mylog' now works.
5205 ~/mylog' now works.
5200
5206
5201 * IPython/iplib.py (complete): fixed bug where paths starting with
5207 * IPython/iplib.py (complete): fixed bug where paths starting with
5202 '/' would be completed as magic names.
5208 '/' would be completed as magic names.
5203
5209
5204 2002-05-04 Fernando Perez <fperez@colorado.edu>
5210 2002-05-04 Fernando Perez <fperez@colorado.edu>
5205
5211
5206 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5212 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5207 allow running full programs under the profiler's control.
5213 allow running full programs under the profiler's control.
5208
5214
5209 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5215 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5210 mode to report exceptions verbosely but without formatting
5216 mode to report exceptions verbosely but without formatting
5211 variables. This addresses the issue of ipython 'freezing' (it's
5217 variables. This addresses the issue of ipython 'freezing' (it's
5212 not frozen, but caught in an expensive formatting loop) when huge
5218 not frozen, but caught in an expensive formatting loop) when huge
5213 variables are in the context of an exception.
5219 variables are in the context of an exception.
5214 (VerboseTB.text): Added '--->' markers at line where exception was
5220 (VerboseTB.text): Added '--->' markers at line where exception was
5215 triggered. Much clearer to read, especially in NoColor modes.
5221 triggered. Much clearer to read, especially in NoColor modes.
5216
5222
5217 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5223 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5218 implemented in reverse when changing to the new parse_options().
5224 implemented in reverse when changing to the new parse_options().
5219
5225
5220 2002-05-03 Fernando Perez <fperez@colorado.edu>
5226 2002-05-03 Fernando Perez <fperez@colorado.edu>
5221
5227
5222 * IPython/Magic.py (Magic.parse_options): new function so that
5228 * IPython/Magic.py (Magic.parse_options): new function so that
5223 magics can parse options easier.
5229 magics can parse options easier.
5224 (Magic.magic_prun): new function similar to profile.run(),
5230 (Magic.magic_prun): new function similar to profile.run(),
5225 suggested by Chris Hart.
5231 suggested by Chris Hart.
5226 (Magic.magic_cd): fixed behavior so that it only changes if
5232 (Magic.magic_cd): fixed behavior so that it only changes if
5227 directory actually is in history.
5233 directory actually is in history.
5228
5234
5229 * IPython/usage.py (__doc__): added information about potential
5235 * IPython/usage.py (__doc__): added information about potential
5230 slowness of Verbose exception mode when there are huge data
5236 slowness of Verbose exception mode when there are huge data
5231 structures to be formatted (thanks to Archie Paulson).
5237 structures to be formatted (thanks to Archie Paulson).
5232
5238
5233 * IPython/ipmaker.py (make_IPython): Changed default logging
5239 * IPython/ipmaker.py (make_IPython): Changed default logging
5234 (when simply called with -log) to use curr_dir/ipython.log in
5240 (when simply called with -log) to use curr_dir/ipython.log in
5235 rotate mode. Fixed crash which was occuring with -log before
5241 rotate mode. Fixed crash which was occuring with -log before
5236 (thanks to Jim Boyle).
5242 (thanks to Jim Boyle).
5237
5243
5238 2002-05-01 Fernando Perez <fperez@colorado.edu>
5244 2002-05-01 Fernando Perez <fperez@colorado.edu>
5239
5245
5240 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5246 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5241 was nasty -- though somewhat of a corner case).
5247 was nasty -- though somewhat of a corner case).
5242
5248
5243 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5249 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5244 text (was a bug).
5250 text (was a bug).
5245
5251
5246 2002-04-30 Fernando Perez <fperez@colorado.edu>
5252 2002-04-30 Fernando Perez <fperez@colorado.edu>
5247
5253
5248 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5254 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5249 a print after ^D or ^C from the user so that the In[] prompt
5255 a print after ^D or ^C from the user so that the In[] prompt
5250 doesn't over-run the gnuplot one.
5256 doesn't over-run the gnuplot one.
5251
5257
5252 2002-04-29 Fernando Perez <fperez@colorado.edu>
5258 2002-04-29 Fernando Perez <fperez@colorado.edu>
5253
5259
5254 * Released 0.2.10
5260 * Released 0.2.10
5255
5261
5256 * IPython/__release__.py (version): get date dynamically.
5262 * IPython/__release__.py (version): get date dynamically.
5257
5263
5258 * Misc. documentation updates thanks to Arnd's comments. Also ran
5264 * Misc. documentation updates thanks to Arnd's comments. Also ran
5259 a full spellcheck on the manual (hadn't been done in a while).
5265 a full spellcheck on the manual (hadn't been done in a while).
5260
5266
5261 2002-04-27 Fernando Perez <fperez@colorado.edu>
5267 2002-04-27 Fernando Perez <fperez@colorado.edu>
5262
5268
5263 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5269 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5264 starting a log in mid-session would reset the input history list.
5270 starting a log in mid-session would reset the input history list.
5265
5271
5266 2002-04-26 Fernando Perez <fperez@colorado.edu>
5272 2002-04-26 Fernando Perez <fperez@colorado.edu>
5267
5273
5268 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5274 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5269 all files were being included in an update. Now anything in
5275 all files were being included in an update. Now anything in
5270 UserConfig that matches [A-Za-z]*.py will go (this excludes
5276 UserConfig that matches [A-Za-z]*.py will go (this excludes
5271 __init__.py)
5277 __init__.py)
5272
5278
5273 2002-04-25 Fernando Perez <fperez@colorado.edu>
5279 2002-04-25 Fernando Perez <fperez@colorado.edu>
5274
5280
5275 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5281 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5276 to __builtins__ so that any form of embedded or imported code can
5282 to __builtins__ so that any form of embedded or imported code can
5277 test for being inside IPython.
5283 test for being inside IPython.
5278
5284
5279 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5285 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5280 changed to GnuplotMagic because it's now an importable module,
5286 changed to GnuplotMagic because it's now an importable module,
5281 this makes the name follow that of the standard Gnuplot module.
5287 this makes the name follow that of the standard Gnuplot module.
5282 GnuplotMagic can now be loaded at any time in mid-session.
5288 GnuplotMagic can now be loaded at any time in mid-session.
5283
5289
5284 2002-04-24 Fernando Perez <fperez@colorado.edu>
5290 2002-04-24 Fernando Perez <fperez@colorado.edu>
5285
5291
5286 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5292 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5287 the globals (IPython has its own namespace) and the
5293 the globals (IPython has its own namespace) and the
5288 PhysicalQuantity stuff is much better anyway.
5294 PhysicalQuantity stuff is much better anyway.
5289
5295
5290 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5296 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5291 embedding example to standard user directory for
5297 embedding example to standard user directory for
5292 distribution. Also put it in the manual.
5298 distribution. Also put it in the manual.
5293
5299
5294 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5300 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5295 instance as first argument (so it doesn't rely on some obscure
5301 instance as first argument (so it doesn't rely on some obscure
5296 hidden global).
5302 hidden global).
5297
5303
5298 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5304 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5299 delimiters. While it prevents ().TAB from working, it allows
5305 delimiters. While it prevents ().TAB from working, it allows
5300 completions in open (... expressions. This is by far a more common
5306 completions in open (... expressions. This is by far a more common
5301 case.
5307 case.
5302
5308
5303 2002-04-23 Fernando Perez <fperez@colorado.edu>
5309 2002-04-23 Fernando Perez <fperez@colorado.edu>
5304
5310
5305 * IPython/Extensions/InterpreterPasteInput.py: new
5311 * IPython/Extensions/InterpreterPasteInput.py: new
5306 syntax-processing module for pasting lines with >>> or ... at the
5312 syntax-processing module for pasting lines with >>> or ... at the
5307 start.
5313 start.
5308
5314
5309 * IPython/Extensions/PhysicalQ_Interactive.py
5315 * IPython/Extensions/PhysicalQ_Interactive.py
5310 (PhysicalQuantityInteractive.__int__): fixed to work with either
5316 (PhysicalQuantityInteractive.__int__): fixed to work with either
5311 Numeric or math.
5317 Numeric or math.
5312
5318
5313 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5319 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5314 provided profiles. Now we have:
5320 provided profiles. Now we have:
5315 -math -> math module as * and cmath with its own namespace.
5321 -math -> math module as * and cmath with its own namespace.
5316 -numeric -> Numeric as *, plus gnuplot & grace
5322 -numeric -> Numeric as *, plus gnuplot & grace
5317 -physics -> same as before
5323 -physics -> same as before
5318
5324
5319 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5325 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5320 user-defined magics wouldn't be found by @magic if they were
5326 user-defined magics wouldn't be found by @magic if they were
5321 defined as class methods. Also cleaned up the namespace search
5327 defined as class methods. Also cleaned up the namespace search
5322 logic and the string building (to use %s instead of many repeated
5328 logic and the string building (to use %s instead of many repeated
5323 string adds).
5329 string adds).
5324
5330
5325 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5331 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5326 of user-defined magics to operate with class methods (cleaner, in
5332 of user-defined magics to operate with class methods (cleaner, in
5327 line with the gnuplot code).
5333 line with the gnuplot code).
5328
5334
5329 2002-04-22 Fernando Perez <fperez@colorado.edu>
5335 2002-04-22 Fernando Perez <fperez@colorado.edu>
5330
5336
5331 * setup.py: updated dependency list so that manual is updated when
5337 * setup.py: updated dependency list so that manual is updated when
5332 all included files change.
5338 all included files change.
5333
5339
5334 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5340 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5335 the delimiter removal option (the fix is ugly right now).
5341 the delimiter removal option (the fix is ugly right now).
5336
5342
5337 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5343 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5338 all of the math profile (quicker loading, no conflict between
5344 all of the math profile (quicker loading, no conflict between
5339 g-9.8 and g-gnuplot).
5345 g-9.8 and g-gnuplot).
5340
5346
5341 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5347 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5342 name of post-mortem files to IPython_crash_report.txt.
5348 name of post-mortem files to IPython_crash_report.txt.
5343
5349
5344 * Cleanup/update of the docs. Added all the new readline info and
5350 * Cleanup/update of the docs. Added all the new readline info and
5345 formatted all lists as 'real lists'.
5351 formatted all lists as 'real lists'.
5346
5352
5347 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5353 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5348 tab-completion options, since the full readline parse_and_bind is
5354 tab-completion options, since the full readline parse_and_bind is
5349 now accessible.
5355 now accessible.
5350
5356
5351 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5357 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5352 handling of readline options. Now users can specify any string to
5358 handling of readline options. Now users can specify any string to
5353 be passed to parse_and_bind(), as well as the delimiters to be
5359 be passed to parse_and_bind(), as well as the delimiters to be
5354 removed.
5360 removed.
5355 (InteractiveShell.__init__): Added __name__ to the global
5361 (InteractiveShell.__init__): Added __name__ to the global
5356 namespace so that things like Itpl which rely on its existence
5362 namespace so that things like Itpl which rely on its existence
5357 don't crash.
5363 don't crash.
5358 (InteractiveShell._prefilter): Defined the default with a _ so
5364 (InteractiveShell._prefilter): Defined the default with a _ so
5359 that prefilter() is easier to override, while the default one
5365 that prefilter() is easier to override, while the default one
5360 remains available.
5366 remains available.
5361
5367
5362 2002-04-18 Fernando Perez <fperez@colorado.edu>
5368 2002-04-18 Fernando Perez <fperez@colorado.edu>
5363
5369
5364 * Added information about pdb in the docs.
5370 * Added information about pdb in the docs.
5365
5371
5366 2002-04-17 Fernando Perez <fperez@colorado.edu>
5372 2002-04-17 Fernando Perez <fperez@colorado.edu>
5367
5373
5368 * IPython/ipmaker.py (make_IPython): added rc_override option to
5374 * IPython/ipmaker.py (make_IPython): added rc_override option to
5369 allow passing config options at creation time which may override
5375 allow passing config options at creation time which may override
5370 anything set in the config files or command line. This is
5376 anything set in the config files or command line. This is
5371 particularly useful for configuring embedded instances.
5377 particularly useful for configuring embedded instances.
5372
5378
5373 2002-04-15 Fernando Perez <fperez@colorado.edu>
5379 2002-04-15 Fernando Perez <fperez@colorado.edu>
5374
5380
5375 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5381 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5376 crash embedded instances because of the input cache falling out of
5382 crash embedded instances because of the input cache falling out of
5377 sync with the output counter.
5383 sync with the output counter.
5378
5384
5379 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5385 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5380 mode which calls pdb after an uncaught exception in IPython itself.
5386 mode which calls pdb after an uncaught exception in IPython itself.
5381
5387
5382 2002-04-14 Fernando Perez <fperez@colorado.edu>
5388 2002-04-14 Fernando Perez <fperez@colorado.edu>
5383
5389
5384 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5390 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5385 readline, fix it back after each call.
5391 readline, fix it back after each call.
5386
5392
5387 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5393 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5388 method to force all access via __call__(), which guarantees that
5394 method to force all access via __call__(), which guarantees that
5389 traceback references are properly deleted.
5395 traceback references are properly deleted.
5390
5396
5391 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5397 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5392 improve printing when pprint is in use.
5398 improve printing when pprint is in use.
5393
5399
5394 2002-04-13 Fernando Perez <fperez@colorado.edu>
5400 2002-04-13 Fernando Perez <fperez@colorado.edu>
5395
5401
5396 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5402 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5397 exceptions aren't caught anymore. If the user triggers one, he
5403 exceptions aren't caught anymore. If the user triggers one, he
5398 should know why he's doing it and it should go all the way up,
5404 should know why he's doing it and it should go all the way up,
5399 just like any other exception. So now @abort will fully kill the
5405 just like any other exception. So now @abort will fully kill the
5400 embedded interpreter and the embedding code (unless that happens
5406 embedded interpreter and the embedding code (unless that happens
5401 to catch SystemExit).
5407 to catch SystemExit).
5402
5408
5403 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5409 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5404 and a debugger() method to invoke the interactive pdb debugger
5410 and a debugger() method to invoke the interactive pdb debugger
5405 after printing exception information. Also added the corresponding
5411 after printing exception information. Also added the corresponding
5406 -pdb option and @pdb magic to control this feature, and updated
5412 -pdb option and @pdb magic to control this feature, and updated
5407 the docs. After a suggestion from Christopher Hart
5413 the docs. After a suggestion from Christopher Hart
5408 (hart-AT-caltech.edu).
5414 (hart-AT-caltech.edu).
5409
5415
5410 2002-04-12 Fernando Perez <fperez@colorado.edu>
5416 2002-04-12 Fernando Perez <fperez@colorado.edu>
5411
5417
5412 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5418 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5413 the exception handlers defined by the user (not the CrashHandler)
5419 the exception handlers defined by the user (not the CrashHandler)
5414 so that user exceptions don't trigger an ipython bug report.
5420 so that user exceptions don't trigger an ipython bug report.
5415
5421
5416 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5422 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5417 configurable (it should have always been so).
5423 configurable (it should have always been so).
5418
5424
5419 2002-03-26 Fernando Perez <fperez@colorado.edu>
5425 2002-03-26 Fernando Perez <fperez@colorado.edu>
5420
5426
5421 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5427 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5422 and there to fix embedding namespace issues. This should all be
5428 and there to fix embedding namespace issues. This should all be
5423 done in a more elegant way.
5429 done in a more elegant way.
5424
5430
5425 2002-03-25 Fernando Perez <fperez@colorado.edu>
5431 2002-03-25 Fernando Perez <fperez@colorado.edu>
5426
5432
5427 * IPython/genutils.py (get_home_dir): Try to make it work under
5433 * IPython/genutils.py (get_home_dir): Try to make it work under
5428 win9x also.
5434 win9x also.
5429
5435
5430 2002-03-20 Fernando Perez <fperez@colorado.edu>
5436 2002-03-20 Fernando Perez <fperez@colorado.edu>
5431
5437
5432 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5438 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5433 sys.displayhook untouched upon __init__.
5439 sys.displayhook untouched upon __init__.
5434
5440
5435 2002-03-19 Fernando Perez <fperez@colorado.edu>
5441 2002-03-19 Fernando Perez <fperez@colorado.edu>
5436
5442
5437 * Released 0.2.9 (for embedding bug, basically).
5443 * Released 0.2.9 (for embedding bug, basically).
5438
5444
5439 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5445 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5440 exceptions so that enclosing shell's state can be restored.
5446 exceptions so that enclosing shell's state can be restored.
5441
5447
5442 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5448 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5443 naming conventions in the .ipython/ dir.
5449 naming conventions in the .ipython/ dir.
5444
5450
5445 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5451 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5446 from delimiters list so filenames with - in them get expanded.
5452 from delimiters list so filenames with - in them get expanded.
5447
5453
5448 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5454 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5449 sys.displayhook not being properly restored after an embedded call.
5455 sys.displayhook not being properly restored after an embedded call.
5450
5456
5451 2002-03-18 Fernando Perez <fperez@colorado.edu>
5457 2002-03-18 Fernando Perez <fperez@colorado.edu>
5452
5458
5453 * Released 0.2.8
5459 * Released 0.2.8
5454
5460
5455 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5461 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5456 some files weren't being included in a -upgrade.
5462 some files weren't being included in a -upgrade.
5457 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5463 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5458 on' so that the first tab completes.
5464 on' so that the first tab completes.
5459 (InteractiveShell.handle_magic): fixed bug with spaces around
5465 (InteractiveShell.handle_magic): fixed bug with spaces around
5460 quotes breaking many magic commands.
5466 quotes breaking many magic commands.
5461
5467
5462 * setup.py: added note about ignoring the syntax error messages at
5468 * setup.py: added note about ignoring the syntax error messages at
5463 installation.
5469 installation.
5464
5470
5465 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5471 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5466 streamlining the gnuplot interface, now there's only one magic @gp.
5472 streamlining the gnuplot interface, now there's only one magic @gp.
5467
5473
5468 2002-03-17 Fernando Perez <fperez@colorado.edu>
5474 2002-03-17 Fernando Perez <fperez@colorado.edu>
5469
5475
5470 * IPython/UserConfig/magic_gnuplot.py: new name for the
5476 * IPython/UserConfig/magic_gnuplot.py: new name for the
5471 example-magic_pm.py file. Much enhanced system, now with a shell
5477 example-magic_pm.py file. Much enhanced system, now with a shell
5472 for communicating directly with gnuplot, one command at a time.
5478 for communicating directly with gnuplot, one command at a time.
5473
5479
5474 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5480 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5475 setting __name__=='__main__'.
5481 setting __name__=='__main__'.
5476
5482
5477 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5483 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5478 mini-shell for accessing gnuplot from inside ipython. Should
5484 mini-shell for accessing gnuplot from inside ipython. Should
5479 extend it later for grace access too. Inspired by Arnd's
5485 extend it later for grace access too. Inspired by Arnd's
5480 suggestion.
5486 suggestion.
5481
5487
5482 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5488 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5483 calling magic functions with () in their arguments. Thanks to Arnd
5489 calling magic functions with () in their arguments. Thanks to Arnd
5484 Baecker for pointing this to me.
5490 Baecker for pointing this to me.
5485
5491
5486 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5492 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5487 infinitely for integer or complex arrays (only worked with floats).
5493 infinitely for integer or complex arrays (only worked with floats).
5488
5494
5489 2002-03-16 Fernando Perez <fperez@colorado.edu>
5495 2002-03-16 Fernando Perez <fperez@colorado.edu>
5490
5496
5491 * setup.py: Merged setup and setup_windows into a single script
5497 * setup.py: Merged setup and setup_windows into a single script
5492 which properly handles things for windows users.
5498 which properly handles things for windows users.
5493
5499
5494 2002-03-15 Fernando Perez <fperez@colorado.edu>
5500 2002-03-15 Fernando Perez <fperez@colorado.edu>
5495
5501
5496 * Big change to the manual: now the magics are all automatically
5502 * Big change to the manual: now the magics are all automatically
5497 documented. This information is generated from their docstrings
5503 documented. This information is generated from their docstrings
5498 and put in a latex file included by the manual lyx file. This way
5504 and put in a latex file included by the manual lyx file. This way
5499 we get always up to date information for the magics. The manual
5505 we get always up to date information for the magics. The manual
5500 now also has proper version information, also auto-synced.
5506 now also has proper version information, also auto-synced.
5501
5507
5502 For this to work, an undocumented --magic_docstrings option was added.
5508 For this to work, an undocumented --magic_docstrings option was added.
5503
5509
5504 2002-03-13 Fernando Perez <fperez@colorado.edu>
5510 2002-03-13 Fernando Perez <fperez@colorado.edu>
5505
5511
5506 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5512 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5507 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5513 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5508
5514
5509 2002-03-12 Fernando Perez <fperez@colorado.edu>
5515 2002-03-12 Fernando Perez <fperez@colorado.edu>
5510
5516
5511 * IPython/ultraTB.py (TermColors): changed color escapes again to
5517 * IPython/ultraTB.py (TermColors): changed color escapes again to
5512 fix the (old, reintroduced) line-wrapping bug. Basically, if
5518 fix the (old, reintroduced) line-wrapping bug. Basically, if
5513 \001..\002 aren't given in the color escapes, lines get wrapped
5519 \001..\002 aren't given in the color escapes, lines get wrapped
5514 weirdly. But giving those screws up old xterms and emacs terms. So
5520 weirdly. But giving those screws up old xterms and emacs terms. So
5515 I added some logic for emacs terms to be ok, but I can't identify old
5521 I added some logic for emacs terms to be ok, but I can't identify old
5516 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5522 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5517
5523
5518 2002-03-10 Fernando Perez <fperez@colorado.edu>
5524 2002-03-10 Fernando Perez <fperez@colorado.edu>
5519
5525
5520 * IPython/usage.py (__doc__): Various documentation cleanups and
5526 * IPython/usage.py (__doc__): Various documentation cleanups and
5521 updates, both in usage docstrings and in the manual.
5527 updates, both in usage docstrings and in the manual.
5522
5528
5523 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5529 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5524 handling of caching. Set minimum acceptabe value for having a
5530 handling of caching. Set minimum acceptabe value for having a
5525 cache at 20 values.
5531 cache at 20 values.
5526
5532
5527 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5533 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5528 install_first_time function to a method, renamed it and added an
5534 install_first_time function to a method, renamed it and added an
5529 'upgrade' mode. Now people can update their config directory with
5535 'upgrade' mode. Now people can update their config directory with
5530 a simple command line switch (-upgrade, also new).
5536 a simple command line switch (-upgrade, also new).
5531
5537
5532 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5538 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5533 @file (convenient for automagic users under Python >= 2.2).
5539 @file (convenient for automagic users under Python >= 2.2).
5534 Removed @files (it seemed more like a plural than an abbrev. of
5540 Removed @files (it seemed more like a plural than an abbrev. of
5535 'file show').
5541 'file show').
5536
5542
5537 * IPython/iplib.py (install_first_time): Fixed crash if there were
5543 * IPython/iplib.py (install_first_time): Fixed crash if there were
5538 backup files ('~') in .ipython/ install directory.
5544 backup files ('~') in .ipython/ install directory.
5539
5545
5540 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5546 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5541 system. Things look fine, but these changes are fairly
5547 system. Things look fine, but these changes are fairly
5542 intrusive. Test them for a few days.
5548 intrusive. Test them for a few days.
5543
5549
5544 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5550 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5545 the prompts system. Now all in/out prompt strings are user
5551 the prompts system. Now all in/out prompt strings are user
5546 controllable. This is particularly useful for embedding, as one
5552 controllable. This is particularly useful for embedding, as one
5547 can tag embedded instances with particular prompts.
5553 can tag embedded instances with particular prompts.
5548
5554
5549 Also removed global use of sys.ps1/2, which now allows nested
5555 Also removed global use of sys.ps1/2, which now allows nested
5550 embeddings without any problems. Added command-line options for
5556 embeddings without any problems. Added command-line options for
5551 the prompt strings.
5557 the prompt strings.
5552
5558
5553 2002-03-08 Fernando Perez <fperez@colorado.edu>
5559 2002-03-08 Fernando Perez <fperez@colorado.edu>
5554
5560
5555 * IPython/UserConfig/example-embed-short.py (ipshell): added
5561 * IPython/UserConfig/example-embed-short.py (ipshell): added
5556 example file with the bare minimum code for embedding.
5562 example file with the bare minimum code for embedding.
5557
5563
5558 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5564 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5559 functionality for the embeddable shell to be activated/deactivated
5565 functionality for the embeddable shell to be activated/deactivated
5560 either globally or at each call.
5566 either globally or at each call.
5561
5567
5562 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5568 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5563 rewriting the prompt with '--->' for auto-inputs with proper
5569 rewriting the prompt with '--->' for auto-inputs with proper
5564 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5570 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5565 this is handled by the prompts class itself, as it should.
5571 this is handled by the prompts class itself, as it should.
5566
5572
5567 2002-03-05 Fernando Perez <fperez@colorado.edu>
5573 2002-03-05 Fernando Perez <fperez@colorado.edu>
5568
5574
5569 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5575 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5570 @logstart to avoid name clashes with the math log function.
5576 @logstart to avoid name clashes with the math log function.
5571
5577
5572 * Big updates to X/Emacs section of the manual.
5578 * Big updates to X/Emacs section of the manual.
5573
5579
5574 * Removed ipython_emacs. Milan explained to me how to pass
5580 * Removed ipython_emacs. Milan explained to me how to pass
5575 arguments to ipython through Emacs. Some day I'm going to end up
5581 arguments to ipython through Emacs. Some day I'm going to end up
5576 learning some lisp...
5582 learning some lisp...
5577
5583
5578 2002-03-04 Fernando Perez <fperez@colorado.edu>
5584 2002-03-04 Fernando Perez <fperez@colorado.edu>
5579
5585
5580 * IPython/ipython_emacs: Created script to be used as the
5586 * IPython/ipython_emacs: Created script to be used as the
5581 py-python-command Emacs variable so we can pass IPython
5587 py-python-command Emacs variable so we can pass IPython
5582 parameters. I can't figure out how to tell Emacs directly to pass
5588 parameters. I can't figure out how to tell Emacs directly to pass
5583 parameters to IPython, so a dummy shell script will do it.
5589 parameters to IPython, so a dummy shell script will do it.
5584
5590
5585 Other enhancements made for things to work better under Emacs'
5591 Other enhancements made for things to work better under Emacs'
5586 various types of terminals. Many thanks to Milan Zamazal
5592 various types of terminals. Many thanks to Milan Zamazal
5587 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5593 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5588
5594
5589 2002-03-01 Fernando Perez <fperez@colorado.edu>
5595 2002-03-01 Fernando Perez <fperez@colorado.edu>
5590
5596
5591 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5597 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5592 that loading of readline is now optional. This gives better
5598 that loading of readline is now optional. This gives better
5593 control to emacs users.
5599 control to emacs users.
5594
5600
5595 * IPython/ultraTB.py (__date__): Modified color escape sequences
5601 * IPython/ultraTB.py (__date__): Modified color escape sequences
5596 and now things work fine under xterm and in Emacs' term buffers
5602 and now things work fine under xterm and in Emacs' term buffers
5597 (though not shell ones). Well, in emacs you get colors, but all
5603 (though not shell ones). Well, in emacs you get colors, but all
5598 seem to be 'light' colors (no difference between dark and light
5604 seem to be 'light' colors (no difference between dark and light
5599 ones). But the garbage chars are gone, and also in xterms. It
5605 ones). But the garbage chars are gone, and also in xterms. It
5600 seems that now I'm using 'cleaner' ansi sequences.
5606 seems that now I'm using 'cleaner' ansi sequences.
5601
5607
5602 2002-02-21 Fernando Perez <fperez@colorado.edu>
5608 2002-02-21 Fernando Perez <fperez@colorado.edu>
5603
5609
5604 * Released 0.2.7 (mainly to publish the scoping fix).
5610 * Released 0.2.7 (mainly to publish the scoping fix).
5605
5611
5606 * IPython/Logger.py (Logger.logstate): added. A corresponding
5612 * IPython/Logger.py (Logger.logstate): added. A corresponding
5607 @logstate magic was created.
5613 @logstate magic was created.
5608
5614
5609 * IPython/Magic.py: fixed nested scoping problem under Python
5615 * IPython/Magic.py: fixed nested scoping problem under Python
5610 2.1.x (automagic wasn't working).
5616 2.1.x (automagic wasn't working).
5611
5617
5612 2002-02-20 Fernando Perez <fperez@colorado.edu>
5618 2002-02-20 Fernando Perez <fperez@colorado.edu>
5613
5619
5614 * Released 0.2.6.
5620 * Released 0.2.6.
5615
5621
5616 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5622 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5617 option so that logs can come out without any headers at all.
5623 option so that logs can come out without any headers at all.
5618
5624
5619 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5625 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5620 SciPy.
5626 SciPy.
5621
5627
5622 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5628 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5623 that embedded IPython calls don't require vars() to be explicitly
5629 that embedded IPython calls don't require vars() to be explicitly
5624 passed. Now they are extracted from the caller's frame (code
5630 passed. Now they are extracted from the caller's frame (code
5625 snatched from Eric Jones' weave). Added better documentation to
5631 snatched from Eric Jones' weave). Added better documentation to
5626 the section on embedding and the example file.
5632 the section on embedding and the example file.
5627
5633
5628 * IPython/genutils.py (page): Changed so that under emacs, it just
5634 * IPython/genutils.py (page): Changed so that under emacs, it just
5629 prints the string. You can then page up and down in the emacs
5635 prints the string. You can then page up and down in the emacs
5630 buffer itself. This is how the builtin help() works.
5636 buffer itself. This is how the builtin help() works.
5631
5637
5632 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5638 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5633 macro scoping: macros need to be executed in the user's namespace
5639 macro scoping: macros need to be executed in the user's namespace
5634 to work as if they had been typed by the user.
5640 to work as if they had been typed by the user.
5635
5641
5636 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5642 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5637 execute automatically (no need to type 'exec...'). They then
5643 execute automatically (no need to type 'exec...'). They then
5638 behave like 'true macros'. The printing system was also modified
5644 behave like 'true macros'. The printing system was also modified
5639 for this to work.
5645 for this to work.
5640
5646
5641 2002-02-19 Fernando Perez <fperez@colorado.edu>
5647 2002-02-19 Fernando Perez <fperez@colorado.edu>
5642
5648
5643 * IPython/genutils.py (page_file): new function for paging files
5649 * IPython/genutils.py (page_file): new function for paging files
5644 in an OS-independent way. Also necessary for file viewing to work
5650 in an OS-independent way. Also necessary for file viewing to work
5645 well inside Emacs buffers.
5651 well inside Emacs buffers.
5646 (page): Added checks for being in an emacs buffer.
5652 (page): Added checks for being in an emacs buffer.
5647 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5653 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5648 same bug in iplib.
5654 same bug in iplib.
5649
5655
5650 2002-02-18 Fernando Perez <fperez@colorado.edu>
5656 2002-02-18 Fernando Perez <fperez@colorado.edu>
5651
5657
5652 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5658 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5653 of readline so that IPython can work inside an Emacs buffer.
5659 of readline so that IPython can work inside an Emacs buffer.
5654
5660
5655 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5661 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5656 method signatures (they weren't really bugs, but it looks cleaner
5662 method signatures (they weren't really bugs, but it looks cleaner
5657 and keeps PyChecker happy).
5663 and keeps PyChecker happy).
5658
5664
5659 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5665 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5660 for implementing various user-defined hooks. Currently only
5666 for implementing various user-defined hooks. Currently only
5661 display is done.
5667 display is done.
5662
5668
5663 * IPython/Prompts.py (CachedOutput._display): changed display
5669 * IPython/Prompts.py (CachedOutput._display): changed display
5664 functions so that they can be dynamically changed by users easily.
5670 functions so that they can be dynamically changed by users easily.
5665
5671
5666 * IPython/Extensions/numeric_formats.py (num_display): added an
5672 * IPython/Extensions/numeric_formats.py (num_display): added an
5667 extension for printing NumPy arrays in flexible manners. It
5673 extension for printing NumPy arrays in flexible manners. It
5668 doesn't do anything yet, but all the structure is in
5674 doesn't do anything yet, but all the structure is in
5669 place. Ultimately the plan is to implement output format control
5675 place. Ultimately the plan is to implement output format control
5670 like in Octave.
5676 like in Octave.
5671
5677
5672 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5678 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5673 methods are found at run-time by all the automatic machinery.
5679 methods are found at run-time by all the automatic machinery.
5674
5680
5675 2002-02-17 Fernando Perez <fperez@colorado.edu>
5681 2002-02-17 Fernando Perez <fperez@colorado.edu>
5676
5682
5677 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5683 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5678 whole file a little.
5684 whole file a little.
5679
5685
5680 * ToDo: closed this document. Now there's a new_design.lyx
5686 * ToDo: closed this document. Now there's a new_design.lyx
5681 document for all new ideas. Added making a pdf of it for the
5687 document for all new ideas. Added making a pdf of it for the
5682 end-user distro.
5688 end-user distro.
5683
5689
5684 * IPython/Logger.py (Logger.switch_log): Created this to replace
5690 * IPython/Logger.py (Logger.switch_log): Created this to replace
5685 logon() and logoff(). It also fixes a nasty crash reported by
5691 logon() and logoff(). It also fixes a nasty crash reported by
5686 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5692 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5687
5693
5688 * IPython/iplib.py (complete): got auto-completion to work with
5694 * IPython/iplib.py (complete): got auto-completion to work with
5689 automagic (I had wanted this for a long time).
5695 automagic (I had wanted this for a long time).
5690
5696
5691 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5697 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5692 to @file, since file() is now a builtin and clashes with automagic
5698 to @file, since file() is now a builtin and clashes with automagic
5693 for @file.
5699 for @file.
5694
5700
5695 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5701 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5696 of this was previously in iplib, which had grown to more than 2000
5702 of this was previously in iplib, which had grown to more than 2000
5697 lines, way too long. No new functionality, but it makes managing
5703 lines, way too long. No new functionality, but it makes managing
5698 the code a bit easier.
5704 the code a bit easier.
5699
5705
5700 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5706 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5701 information to crash reports.
5707 information to crash reports.
5702
5708
5703 2002-02-12 Fernando Perez <fperez@colorado.edu>
5709 2002-02-12 Fernando Perez <fperez@colorado.edu>
5704
5710
5705 * Released 0.2.5.
5711 * Released 0.2.5.
5706
5712
5707 2002-02-11 Fernando Perez <fperez@colorado.edu>
5713 2002-02-11 Fernando Perez <fperez@colorado.edu>
5708
5714
5709 * Wrote a relatively complete Windows installer. It puts
5715 * Wrote a relatively complete Windows installer. It puts
5710 everything in place, creates Start Menu entries and fixes the
5716 everything in place, creates Start Menu entries and fixes the
5711 color issues. Nothing fancy, but it works.
5717 color issues. Nothing fancy, but it works.
5712
5718
5713 2002-02-10 Fernando Perez <fperez@colorado.edu>
5719 2002-02-10 Fernando Perez <fperez@colorado.edu>
5714
5720
5715 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5721 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5716 os.path.expanduser() call so that we can type @run ~/myfile.py and
5722 os.path.expanduser() call so that we can type @run ~/myfile.py and
5717 have thigs work as expected.
5723 have thigs work as expected.
5718
5724
5719 * IPython/genutils.py (page): fixed exception handling so things
5725 * IPython/genutils.py (page): fixed exception handling so things
5720 work both in Unix and Windows correctly. Quitting a pager triggers
5726 work both in Unix and Windows correctly. Quitting a pager triggers
5721 an IOError/broken pipe in Unix, and in windows not finding a pager
5727 an IOError/broken pipe in Unix, and in windows not finding a pager
5722 is also an IOError, so I had to actually look at the return value
5728 is also an IOError, so I had to actually look at the return value
5723 of the exception, not just the exception itself. Should be ok now.
5729 of the exception, not just the exception itself. Should be ok now.
5724
5730
5725 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5731 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5726 modified to allow case-insensitive color scheme changes.
5732 modified to allow case-insensitive color scheme changes.
5727
5733
5728 2002-02-09 Fernando Perez <fperez@colorado.edu>
5734 2002-02-09 Fernando Perez <fperez@colorado.edu>
5729
5735
5730 * IPython/genutils.py (native_line_ends): new function to leave
5736 * IPython/genutils.py (native_line_ends): new function to leave
5731 user config files with os-native line-endings.
5737 user config files with os-native line-endings.
5732
5738
5733 * README and manual updates.
5739 * README and manual updates.
5734
5740
5735 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5741 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5736 instead of StringType to catch Unicode strings.
5742 instead of StringType to catch Unicode strings.
5737
5743
5738 * IPython/genutils.py (filefind): fixed bug for paths with
5744 * IPython/genutils.py (filefind): fixed bug for paths with
5739 embedded spaces (very common in Windows).
5745 embedded spaces (very common in Windows).
5740
5746
5741 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5747 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5742 files under Windows, so that they get automatically associated
5748 files under Windows, so that they get automatically associated
5743 with a text editor. Windows makes it a pain to handle
5749 with a text editor. Windows makes it a pain to handle
5744 extension-less files.
5750 extension-less files.
5745
5751
5746 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5752 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5747 warning about readline only occur for Posix. In Windows there's no
5753 warning about readline only occur for Posix. In Windows there's no
5748 way to get readline, so why bother with the warning.
5754 way to get readline, so why bother with the warning.
5749
5755
5750 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5756 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5751 for __str__ instead of dir(self), since dir() changed in 2.2.
5757 for __str__ instead of dir(self), since dir() changed in 2.2.
5752
5758
5753 * Ported to Windows! Tested on XP, I suspect it should work fine
5759 * Ported to Windows! Tested on XP, I suspect it should work fine
5754 on NT/2000, but I don't think it will work on 98 et al. That
5760 on NT/2000, but I don't think it will work on 98 et al. That
5755 series of Windows is such a piece of junk anyway that I won't try
5761 series of Windows is such a piece of junk anyway that I won't try
5756 porting it there. The XP port was straightforward, showed a few
5762 porting it there. The XP port was straightforward, showed a few
5757 bugs here and there (fixed all), in particular some string
5763 bugs here and there (fixed all), in particular some string
5758 handling stuff which required considering Unicode strings (which
5764 handling stuff which required considering Unicode strings (which
5759 Windows uses). This is good, but hasn't been too tested :) No
5765 Windows uses). This is good, but hasn't been too tested :) No
5760 fancy installer yet, I'll put a note in the manual so people at
5766 fancy installer yet, I'll put a note in the manual so people at
5761 least make manually a shortcut.
5767 least make manually a shortcut.
5762
5768
5763 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5769 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5764 into a single one, "colors". This now controls both prompt and
5770 into a single one, "colors". This now controls both prompt and
5765 exception color schemes, and can be changed both at startup
5771 exception color schemes, and can be changed both at startup
5766 (either via command-line switches or via ipythonrc files) and at
5772 (either via command-line switches or via ipythonrc files) and at
5767 runtime, with @colors.
5773 runtime, with @colors.
5768 (Magic.magic_run): renamed @prun to @run and removed the old
5774 (Magic.magic_run): renamed @prun to @run and removed the old
5769 @run. The two were too similar to warrant keeping both.
5775 @run. The two were too similar to warrant keeping both.
5770
5776
5771 2002-02-03 Fernando Perez <fperez@colorado.edu>
5777 2002-02-03 Fernando Perez <fperez@colorado.edu>
5772
5778
5773 * IPython/iplib.py (install_first_time): Added comment on how to
5779 * IPython/iplib.py (install_first_time): Added comment on how to
5774 configure the color options for first-time users. Put a <return>
5780 configure the color options for first-time users. Put a <return>
5775 request at the end so that small-terminal users get a chance to
5781 request at the end so that small-terminal users get a chance to
5776 read the startup info.
5782 read the startup info.
5777
5783
5778 2002-01-23 Fernando Perez <fperez@colorado.edu>
5784 2002-01-23 Fernando Perez <fperez@colorado.edu>
5779
5785
5780 * IPython/iplib.py (CachedOutput.update): Changed output memory
5786 * IPython/iplib.py (CachedOutput.update): Changed output memory
5781 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5787 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5782 input history we still use _i. Did this b/c these variable are
5788 input history we still use _i. Did this b/c these variable are
5783 very commonly used in interactive work, so the less we need to
5789 very commonly used in interactive work, so the less we need to
5784 type the better off we are.
5790 type the better off we are.
5785 (Magic.magic_prun): updated @prun to better handle the namespaces
5791 (Magic.magic_prun): updated @prun to better handle the namespaces
5786 the file will run in, including a fix for __name__ not being set
5792 the file will run in, including a fix for __name__ not being set
5787 before.
5793 before.
5788
5794
5789 2002-01-20 Fernando Perez <fperez@colorado.edu>
5795 2002-01-20 Fernando Perez <fperez@colorado.edu>
5790
5796
5791 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5797 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5792 extra garbage for Python 2.2. Need to look more carefully into
5798 extra garbage for Python 2.2. Need to look more carefully into
5793 this later.
5799 this later.
5794
5800
5795 2002-01-19 Fernando Perez <fperez@colorado.edu>
5801 2002-01-19 Fernando Perez <fperez@colorado.edu>
5796
5802
5797 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5803 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5798 display SyntaxError exceptions properly formatted when they occur
5804 display SyntaxError exceptions properly formatted when they occur
5799 (they can be triggered by imported code).
5805 (they can be triggered by imported code).
5800
5806
5801 2002-01-18 Fernando Perez <fperez@colorado.edu>
5807 2002-01-18 Fernando Perez <fperez@colorado.edu>
5802
5808
5803 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5809 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5804 SyntaxError exceptions are reported nicely formatted, instead of
5810 SyntaxError exceptions are reported nicely formatted, instead of
5805 spitting out only offset information as before.
5811 spitting out only offset information as before.
5806 (Magic.magic_prun): Added the @prun function for executing
5812 (Magic.magic_prun): Added the @prun function for executing
5807 programs with command line args inside IPython.
5813 programs with command line args inside IPython.
5808
5814
5809 2002-01-16 Fernando Perez <fperez@colorado.edu>
5815 2002-01-16 Fernando Perez <fperez@colorado.edu>
5810
5816
5811 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5817 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5812 to *not* include the last item given in a range. This brings their
5818 to *not* include the last item given in a range. This brings their
5813 behavior in line with Python's slicing:
5819 behavior in line with Python's slicing:
5814 a[n1:n2] -> a[n1]...a[n2-1]
5820 a[n1:n2] -> a[n1]...a[n2-1]
5815 It may be a bit less convenient, but I prefer to stick to Python's
5821 It may be a bit less convenient, but I prefer to stick to Python's
5816 conventions *everywhere*, so users never have to wonder.
5822 conventions *everywhere*, so users never have to wonder.
5817 (Magic.magic_macro): Added @macro function to ease the creation of
5823 (Magic.magic_macro): Added @macro function to ease the creation of
5818 macros.
5824 macros.
5819
5825
5820 2002-01-05 Fernando Perez <fperez@colorado.edu>
5826 2002-01-05 Fernando Perez <fperez@colorado.edu>
5821
5827
5822 * Released 0.2.4.
5828 * Released 0.2.4.
5823
5829
5824 * IPython/iplib.py (Magic.magic_pdef):
5830 * IPython/iplib.py (Magic.magic_pdef):
5825 (InteractiveShell.safe_execfile): report magic lines and error
5831 (InteractiveShell.safe_execfile): report magic lines and error
5826 lines without line numbers so one can easily copy/paste them for
5832 lines without line numbers so one can easily copy/paste them for
5827 re-execution.
5833 re-execution.
5828
5834
5829 * Updated manual with recent changes.
5835 * Updated manual with recent changes.
5830
5836
5831 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5837 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5832 docstring printing when class? is called. Very handy for knowing
5838 docstring printing when class? is called. Very handy for knowing
5833 how to create class instances (as long as __init__ is well
5839 how to create class instances (as long as __init__ is well
5834 documented, of course :)
5840 documented, of course :)
5835 (Magic.magic_doc): print both class and constructor docstrings.
5841 (Magic.magic_doc): print both class and constructor docstrings.
5836 (Magic.magic_pdef): give constructor info if passed a class and
5842 (Magic.magic_pdef): give constructor info if passed a class and
5837 __call__ info for callable object instances.
5843 __call__ info for callable object instances.
5838
5844
5839 2002-01-04 Fernando Perez <fperez@colorado.edu>
5845 2002-01-04 Fernando Perez <fperez@colorado.edu>
5840
5846
5841 * Made deep_reload() off by default. It doesn't always work
5847 * Made deep_reload() off by default. It doesn't always work
5842 exactly as intended, so it's probably safer to have it off. It's
5848 exactly as intended, so it's probably safer to have it off. It's
5843 still available as dreload() anyway, so nothing is lost.
5849 still available as dreload() anyway, so nothing is lost.
5844
5850
5845 2002-01-02 Fernando Perez <fperez@colorado.edu>
5851 2002-01-02 Fernando Perez <fperez@colorado.edu>
5846
5852
5847 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5853 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5848 so I wanted an updated release).
5854 so I wanted an updated release).
5849
5855
5850 2001-12-27 Fernando Perez <fperez@colorado.edu>
5856 2001-12-27 Fernando Perez <fperez@colorado.edu>
5851
5857
5852 * IPython/iplib.py (InteractiveShell.interact): Added the original
5858 * IPython/iplib.py (InteractiveShell.interact): Added the original
5853 code from 'code.py' for this module in order to change the
5859 code from 'code.py' for this module in order to change the
5854 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5860 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5855 the history cache would break when the user hit Ctrl-C, and
5861 the history cache would break when the user hit Ctrl-C, and
5856 interact() offers no way to add any hooks to it.
5862 interact() offers no way to add any hooks to it.
5857
5863
5858 2001-12-23 Fernando Perez <fperez@colorado.edu>
5864 2001-12-23 Fernando Perez <fperez@colorado.edu>
5859
5865
5860 * setup.py: added check for 'MANIFEST' before trying to remove
5866 * setup.py: added check for 'MANIFEST' before trying to remove
5861 it. Thanks to Sean Reifschneider.
5867 it. Thanks to Sean Reifschneider.
5862
5868
5863 2001-12-22 Fernando Perez <fperez@colorado.edu>
5869 2001-12-22 Fernando Perez <fperez@colorado.edu>
5864
5870
5865 * Released 0.2.2.
5871 * Released 0.2.2.
5866
5872
5867 * Finished (reasonably) writing the manual. Later will add the
5873 * Finished (reasonably) writing the manual. Later will add the
5868 python-standard navigation stylesheets, but for the time being
5874 python-standard navigation stylesheets, but for the time being
5869 it's fairly complete. Distribution will include html and pdf
5875 it's fairly complete. Distribution will include html and pdf
5870 versions.
5876 versions.
5871
5877
5872 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5878 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5873 (MayaVi author).
5879 (MayaVi author).
5874
5880
5875 2001-12-21 Fernando Perez <fperez@colorado.edu>
5881 2001-12-21 Fernando Perez <fperez@colorado.edu>
5876
5882
5877 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5883 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5878 good public release, I think (with the manual and the distutils
5884 good public release, I think (with the manual and the distutils
5879 installer). The manual can use some work, but that can go
5885 installer). The manual can use some work, but that can go
5880 slowly. Otherwise I think it's quite nice for end users. Next
5886 slowly. Otherwise I think it's quite nice for end users. Next
5881 summer, rewrite the guts of it...
5887 summer, rewrite the guts of it...
5882
5888
5883 * Changed format of ipythonrc files to use whitespace as the
5889 * Changed format of ipythonrc files to use whitespace as the
5884 separator instead of an explicit '='. Cleaner.
5890 separator instead of an explicit '='. Cleaner.
5885
5891
5886 2001-12-20 Fernando Perez <fperez@colorado.edu>
5892 2001-12-20 Fernando Perez <fperez@colorado.edu>
5887
5893
5888 * Started a manual in LyX. For now it's just a quick merge of the
5894 * Started a manual in LyX. For now it's just a quick merge of the
5889 various internal docstrings and READMEs. Later it may grow into a
5895 various internal docstrings and READMEs. Later it may grow into a
5890 nice, full-blown manual.
5896 nice, full-blown manual.
5891
5897
5892 * Set up a distutils based installer. Installation should now be
5898 * Set up a distutils based installer. Installation should now be
5893 trivially simple for end-users.
5899 trivially simple for end-users.
5894
5900
5895 2001-12-11 Fernando Perez <fperez@colorado.edu>
5901 2001-12-11 Fernando Perez <fperez@colorado.edu>
5896
5902
5897 * Released 0.2.0. First public release, announced it at
5903 * Released 0.2.0. First public release, announced it at
5898 comp.lang.python. From now on, just bugfixes...
5904 comp.lang.python. From now on, just bugfixes...
5899
5905
5900 * Went through all the files, set copyright/license notices and
5906 * Went through all the files, set copyright/license notices and
5901 cleaned up things. Ready for release.
5907 cleaned up things. Ready for release.
5902
5908
5903 2001-12-10 Fernando Perez <fperez@colorado.edu>
5909 2001-12-10 Fernando Perez <fperez@colorado.edu>
5904
5910
5905 * Changed the first-time installer not to use tarfiles. It's more
5911 * Changed the first-time installer not to use tarfiles. It's more
5906 robust now and less unix-dependent. Also makes it easier for
5912 robust now and less unix-dependent. Also makes it easier for
5907 people to later upgrade versions.
5913 people to later upgrade versions.
5908
5914
5909 * Changed @exit to @abort to reflect the fact that it's pretty
5915 * Changed @exit to @abort to reflect the fact that it's pretty
5910 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5916 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5911 becomes significant only when IPyhton is embedded: in that case,
5917 becomes significant only when IPyhton is embedded: in that case,
5912 C-D closes IPython only, but @abort kills the enclosing program
5918 C-D closes IPython only, but @abort kills the enclosing program
5913 too (unless it had called IPython inside a try catching
5919 too (unless it had called IPython inside a try catching
5914 SystemExit).
5920 SystemExit).
5915
5921
5916 * Created Shell module which exposes the actuall IPython Shell
5922 * Created Shell module which exposes the actuall IPython Shell
5917 classes, currently the normal and the embeddable one. This at
5923 classes, currently the normal and the embeddable one. This at
5918 least offers a stable interface we won't need to change when
5924 least offers a stable interface we won't need to change when
5919 (later) the internals are rewritten. That rewrite will be confined
5925 (later) the internals are rewritten. That rewrite will be confined
5920 to iplib and ipmaker, but the Shell interface should remain as is.
5926 to iplib and ipmaker, but the Shell interface should remain as is.
5921
5927
5922 * Added embed module which offers an embeddable IPShell object,
5928 * Added embed module which offers an embeddable IPShell object,
5923 useful to fire up IPython *inside* a running program. Great for
5929 useful to fire up IPython *inside* a running program. Great for
5924 debugging or dynamical data analysis.
5930 debugging or dynamical data analysis.
5925
5931
5926 2001-12-08 Fernando Perez <fperez@colorado.edu>
5932 2001-12-08 Fernando Perez <fperez@colorado.edu>
5927
5933
5928 * Fixed small bug preventing seeing info from methods of defined
5934 * Fixed small bug preventing seeing info from methods of defined
5929 objects (incorrect namespace in _ofind()).
5935 objects (incorrect namespace in _ofind()).
5930
5936
5931 * Documentation cleanup. Moved the main usage docstrings to a
5937 * Documentation cleanup. Moved the main usage docstrings to a
5932 separate file, usage.py (cleaner to maintain, and hopefully in the
5938 separate file, usage.py (cleaner to maintain, and hopefully in the
5933 future some perlpod-like way of producing interactive, man and
5939 future some perlpod-like way of producing interactive, man and
5934 html docs out of it will be found).
5940 html docs out of it will be found).
5935
5941
5936 * Added @profile to see your profile at any time.
5942 * Added @profile to see your profile at any time.
5937
5943
5938 * Added @p as an alias for 'print'. It's especially convenient if
5944 * Added @p as an alias for 'print'. It's especially convenient if
5939 using automagic ('p x' prints x).
5945 using automagic ('p x' prints x).
5940
5946
5941 * Small cleanups and fixes after a pychecker run.
5947 * Small cleanups and fixes after a pychecker run.
5942
5948
5943 * Changed the @cd command to handle @cd - and @cd -<n> for
5949 * Changed the @cd command to handle @cd - and @cd -<n> for
5944 visiting any directory in _dh.
5950 visiting any directory in _dh.
5945
5951
5946 * Introduced _dh, a history of visited directories. @dhist prints
5952 * Introduced _dh, a history of visited directories. @dhist prints
5947 it out with numbers.
5953 it out with numbers.
5948
5954
5949 2001-12-07 Fernando Perez <fperez@colorado.edu>
5955 2001-12-07 Fernando Perez <fperez@colorado.edu>
5950
5956
5951 * Released 0.1.22
5957 * Released 0.1.22
5952
5958
5953 * Made initialization a bit more robust against invalid color
5959 * Made initialization a bit more robust against invalid color
5954 options in user input (exit, not traceback-crash).
5960 options in user input (exit, not traceback-crash).
5955
5961
5956 * Changed the bug crash reporter to write the report only in the
5962 * Changed the bug crash reporter to write the report only in the
5957 user's .ipython directory. That way IPython won't litter people's
5963 user's .ipython directory. That way IPython won't litter people's
5958 hard disks with crash files all over the place. Also print on
5964 hard disks with crash files all over the place. Also print on
5959 screen the necessary mail command.
5965 screen the necessary mail command.
5960
5966
5961 * With the new ultraTB, implemented LightBG color scheme for light
5967 * With the new ultraTB, implemented LightBG color scheme for light
5962 background terminals. A lot of people like white backgrounds, so I
5968 background terminals. A lot of people like white backgrounds, so I
5963 guess we should at least give them something readable.
5969 guess we should at least give them something readable.
5964
5970
5965 2001-12-06 Fernando Perez <fperez@colorado.edu>
5971 2001-12-06 Fernando Perez <fperez@colorado.edu>
5966
5972
5967 * Modified the structure of ultraTB. Now there's a proper class
5973 * Modified the structure of ultraTB. Now there's a proper class
5968 for tables of color schemes which allow adding schemes easily and
5974 for tables of color schemes which allow adding schemes easily and
5969 switching the active scheme without creating a new instance every
5975 switching the active scheme without creating a new instance every
5970 time (which was ridiculous). The syntax for creating new schemes
5976 time (which was ridiculous). The syntax for creating new schemes
5971 is also cleaner. I think ultraTB is finally done, with a clean
5977 is also cleaner. I think ultraTB is finally done, with a clean
5972 class structure. Names are also much cleaner (now there's proper
5978 class structure. Names are also much cleaner (now there's proper
5973 color tables, no need for every variable to also have 'color' in
5979 color tables, no need for every variable to also have 'color' in
5974 its name).
5980 its name).
5975
5981
5976 * Broke down genutils into separate files. Now genutils only
5982 * Broke down genutils into separate files. Now genutils only
5977 contains utility functions, and classes have been moved to their
5983 contains utility functions, and classes have been moved to their
5978 own files (they had enough independent functionality to warrant
5984 own files (they had enough independent functionality to warrant
5979 it): ConfigLoader, OutputTrap, Struct.
5985 it): ConfigLoader, OutputTrap, Struct.
5980
5986
5981 2001-12-05 Fernando Perez <fperez@colorado.edu>
5987 2001-12-05 Fernando Perez <fperez@colorado.edu>
5982
5988
5983 * IPython turns 21! Released version 0.1.21, as a candidate for
5989 * IPython turns 21! Released version 0.1.21, as a candidate for
5984 public consumption. If all goes well, release in a few days.
5990 public consumption. If all goes well, release in a few days.
5985
5991
5986 * Fixed path bug (files in Extensions/ directory wouldn't be found
5992 * Fixed path bug (files in Extensions/ directory wouldn't be found
5987 unless IPython/ was explicitly in sys.path).
5993 unless IPython/ was explicitly in sys.path).
5988
5994
5989 * Extended the FlexCompleter class as MagicCompleter to allow
5995 * Extended the FlexCompleter class as MagicCompleter to allow
5990 completion of @-starting lines.
5996 completion of @-starting lines.
5991
5997
5992 * Created __release__.py file as a central repository for release
5998 * Created __release__.py file as a central repository for release
5993 info that other files can read from.
5999 info that other files can read from.
5994
6000
5995 * Fixed small bug in logging: when logging was turned on in
6001 * Fixed small bug in logging: when logging was turned on in
5996 mid-session, old lines with special meanings (!@?) were being
6002 mid-session, old lines with special meanings (!@?) were being
5997 logged without the prepended comment, which is necessary since
6003 logged without the prepended comment, which is necessary since
5998 they are not truly valid python syntax. This should make session
6004 they are not truly valid python syntax. This should make session
5999 restores produce less errors.
6005 restores produce less errors.
6000
6006
6001 * The namespace cleanup forced me to make a FlexCompleter class
6007 * The namespace cleanup forced me to make a FlexCompleter class
6002 which is nothing but a ripoff of rlcompleter, but with selectable
6008 which is nothing but a ripoff of rlcompleter, but with selectable
6003 namespace (rlcompleter only works in __main__.__dict__). I'll try
6009 namespace (rlcompleter only works in __main__.__dict__). I'll try
6004 to submit a note to the authors to see if this change can be
6010 to submit a note to the authors to see if this change can be
6005 incorporated in future rlcompleter releases (Dec.6: done)
6011 incorporated in future rlcompleter releases (Dec.6: done)
6006
6012
6007 * More fixes to namespace handling. It was a mess! Now all
6013 * More fixes to namespace handling. It was a mess! Now all
6008 explicit references to __main__.__dict__ are gone (except when
6014 explicit references to __main__.__dict__ are gone (except when
6009 really needed) and everything is handled through the namespace
6015 really needed) and everything is handled through the namespace
6010 dicts in the IPython instance. We seem to be getting somewhere
6016 dicts in the IPython instance. We seem to be getting somewhere
6011 with this, finally...
6017 with this, finally...
6012
6018
6013 * Small documentation updates.
6019 * Small documentation updates.
6014
6020
6015 * Created the Extensions directory under IPython (with an
6021 * Created the Extensions directory under IPython (with an
6016 __init__.py). Put the PhysicalQ stuff there. This directory should
6022 __init__.py). Put the PhysicalQ stuff there. This directory should
6017 be used for all special-purpose extensions.
6023 be used for all special-purpose extensions.
6018
6024
6019 * File renaming:
6025 * File renaming:
6020 ipythonlib --> ipmaker
6026 ipythonlib --> ipmaker
6021 ipplib --> iplib
6027 ipplib --> iplib
6022 This makes a bit more sense in terms of what these files actually do.
6028 This makes a bit more sense in terms of what these files actually do.
6023
6029
6024 * Moved all the classes and functions in ipythonlib to ipplib, so
6030 * Moved all the classes and functions in ipythonlib to ipplib, so
6025 now ipythonlib only has make_IPython(). This will ease up its
6031 now ipythonlib only has make_IPython(). This will ease up its
6026 splitting in smaller functional chunks later.
6032 splitting in smaller functional chunks later.
6027
6033
6028 * Cleaned up (done, I think) output of @whos. Better column
6034 * Cleaned up (done, I think) output of @whos. Better column
6029 formatting, and now shows str(var) for as much as it can, which is
6035 formatting, and now shows str(var) for as much as it can, which is
6030 typically what one gets with a 'print var'.
6036 typically what one gets with a 'print var'.
6031
6037
6032 2001-12-04 Fernando Perez <fperez@colorado.edu>
6038 2001-12-04 Fernando Perez <fperez@colorado.edu>
6033
6039
6034 * Fixed namespace problems. Now builtin/IPyhton/user names get
6040 * Fixed namespace problems. Now builtin/IPyhton/user names get
6035 properly reported in their namespace. Internal namespace handling
6041 properly reported in their namespace. Internal namespace handling
6036 is finally getting decent (not perfect yet, but much better than
6042 is finally getting decent (not perfect yet, but much better than
6037 the ad-hoc mess we had).
6043 the ad-hoc mess we had).
6038
6044
6039 * Removed -exit option. If people just want to run a python
6045 * Removed -exit option. If people just want to run a python
6040 script, that's what the normal interpreter is for. Less
6046 script, that's what the normal interpreter is for. Less
6041 unnecessary options, less chances for bugs.
6047 unnecessary options, less chances for bugs.
6042
6048
6043 * Added a crash handler which generates a complete post-mortem if
6049 * Added a crash handler which generates a complete post-mortem if
6044 IPython crashes. This will help a lot in tracking bugs down the
6050 IPython crashes. This will help a lot in tracking bugs down the
6045 road.
6051 road.
6046
6052
6047 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6053 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6048 which were boud to functions being reassigned would bypass the
6054 which were boud to functions being reassigned would bypass the
6049 logger, breaking the sync of _il with the prompt counter. This
6055 logger, breaking the sync of _il with the prompt counter. This
6050 would then crash IPython later when a new line was logged.
6056 would then crash IPython later when a new line was logged.
6051
6057
6052 2001-12-02 Fernando Perez <fperez@colorado.edu>
6058 2001-12-02 Fernando Perez <fperez@colorado.edu>
6053
6059
6054 * Made IPython a package. This means people don't have to clutter
6060 * Made IPython a package. This means people don't have to clutter
6055 their sys.path with yet another directory. Changed the INSTALL
6061 their sys.path with yet another directory. Changed the INSTALL
6056 file accordingly.
6062 file accordingly.
6057
6063
6058 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6064 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6059 sorts its output (so @who shows it sorted) and @whos formats the
6065 sorts its output (so @who shows it sorted) and @whos formats the
6060 table according to the width of the first column. Nicer, easier to
6066 table according to the width of the first column. Nicer, easier to
6061 read. Todo: write a generic table_format() which takes a list of
6067 read. Todo: write a generic table_format() which takes a list of
6062 lists and prints it nicely formatted, with optional row/column
6068 lists and prints it nicely formatted, with optional row/column
6063 separators and proper padding and justification.
6069 separators and proper padding and justification.
6064
6070
6065 * Released 0.1.20
6071 * Released 0.1.20
6066
6072
6067 * Fixed bug in @log which would reverse the inputcache list (a
6073 * Fixed bug in @log which would reverse the inputcache list (a
6068 copy operation was missing).
6074 copy operation was missing).
6069
6075
6070 * Code cleanup. @config was changed to use page(). Better, since
6076 * Code cleanup. @config was changed to use page(). Better, since
6071 its output is always quite long.
6077 its output is always quite long.
6072
6078
6073 * Itpl is back as a dependency. I was having too many problems
6079 * Itpl is back as a dependency. I was having too many problems
6074 getting the parametric aliases to work reliably, and it's just
6080 getting the parametric aliases to work reliably, and it's just
6075 easier to code weird string operations with it than playing %()s
6081 easier to code weird string operations with it than playing %()s
6076 games. It's only ~6k, so I don't think it's too big a deal.
6082 games. It's only ~6k, so I don't think it's too big a deal.
6077
6083
6078 * Found (and fixed) a very nasty bug with history. !lines weren't
6084 * Found (and fixed) a very nasty bug with history. !lines weren't
6079 getting cached, and the out of sync caches would crash
6085 getting cached, and the out of sync caches would crash
6080 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6086 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6081 division of labor a bit better. Bug fixed, cleaner structure.
6087 division of labor a bit better. Bug fixed, cleaner structure.
6082
6088
6083 2001-12-01 Fernando Perez <fperez@colorado.edu>
6089 2001-12-01 Fernando Perez <fperez@colorado.edu>
6084
6090
6085 * Released 0.1.19
6091 * Released 0.1.19
6086
6092
6087 * Added option -n to @hist to prevent line number printing. Much
6093 * Added option -n to @hist to prevent line number printing. Much
6088 easier to copy/paste code this way.
6094 easier to copy/paste code this way.
6089
6095
6090 * Created global _il to hold the input list. Allows easy
6096 * Created global _il to hold the input list. Allows easy
6091 re-execution of blocks of code by slicing it (inspired by Janko's
6097 re-execution of blocks of code by slicing it (inspired by Janko's
6092 comment on 'macros').
6098 comment on 'macros').
6093
6099
6094 * Small fixes and doc updates.
6100 * Small fixes and doc updates.
6095
6101
6096 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6102 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6097 much too fragile with automagic. Handles properly multi-line
6103 much too fragile with automagic. Handles properly multi-line
6098 statements and takes parameters.
6104 statements and takes parameters.
6099
6105
6100 2001-11-30 Fernando Perez <fperez@colorado.edu>
6106 2001-11-30 Fernando Perez <fperez@colorado.edu>
6101
6107
6102 * Version 0.1.18 released.
6108 * Version 0.1.18 released.
6103
6109
6104 * Fixed nasty namespace bug in initial module imports.
6110 * Fixed nasty namespace bug in initial module imports.
6105
6111
6106 * Added copyright/license notes to all code files (except
6112 * Added copyright/license notes to all code files (except
6107 DPyGetOpt). For the time being, LGPL. That could change.
6113 DPyGetOpt). For the time being, LGPL. That could change.
6108
6114
6109 * Rewrote a much nicer README, updated INSTALL, cleaned up
6115 * Rewrote a much nicer README, updated INSTALL, cleaned up
6110 ipythonrc-* samples.
6116 ipythonrc-* samples.
6111
6117
6112 * Overall code/documentation cleanup. Basically ready for
6118 * Overall code/documentation cleanup. Basically ready for
6113 release. Only remaining thing: licence decision (LGPL?).
6119 release. Only remaining thing: licence decision (LGPL?).
6114
6120
6115 * Converted load_config to a class, ConfigLoader. Now recursion
6121 * Converted load_config to a class, ConfigLoader. Now recursion
6116 control is better organized. Doesn't include the same file twice.
6122 control is better organized. Doesn't include the same file twice.
6117
6123
6118 2001-11-29 Fernando Perez <fperez@colorado.edu>
6124 2001-11-29 Fernando Perez <fperez@colorado.edu>
6119
6125
6120 * Got input history working. Changed output history variables from
6126 * Got input history working. Changed output history variables from
6121 _p to _o so that _i is for input and _o for output. Just cleaner
6127 _p to _o so that _i is for input and _o for output. Just cleaner
6122 convention.
6128 convention.
6123
6129
6124 * Implemented parametric aliases. This pretty much allows the
6130 * Implemented parametric aliases. This pretty much allows the
6125 alias system to offer full-blown shell convenience, I think.
6131 alias system to offer full-blown shell convenience, I think.
6126
6132
6127 * Version 0.1.17 released, 0.1.18 opened.
6133 * Version 0.1.17 released, 0.1.18 opened.
6128
6134
6129 * dot_ipython/ipythonrc (alias): added documentation.
6135 * dot_ipython/ipythonrc (alias): added documentation.
6130 (xcolor): Fixed small bug (xcolors -> xcolor)
6136 (xcolor): Fixed small bug (xcolors -> xcolor)
6131
6137
6132 * Changed the alias system. Now alias is a magic command to define
6138 * Changed the alias system. Now alias is a magic command to define
6133 aliases just like the shell. Rationale: the builtin magics should
6139 aliases just like the shell. Rationale: the builtin magics should
6134 be there for things deeply connected to IPython's
6140 be there for things deeply connected to IPython's
6135 architecture. And this is a much lighter system for what I think
6141 architecture. And this is a much lighter system for what I think
6136 is the really important feature: allowing users to define quickly
6142 is the really important feature: allowing users to define quickly
6137 magics that will do shell things for them, so they can customize
6143 magics that will do shell things for them, so they can customize
6138 IPython easily to match their work habits. If someone is really
6144 IPython easily to match their work habits. If someone is really
6139 desperate to have another name for a builtin alias, they can
6145 desperate to have another name for a builtin alias, they can
6140 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6146 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6141 works.
6147 works.
6142
6148
6143 2001-11-28 Fernando Perez <fperez@colorado.edu>
6149 2001-11-28 Fernando Perez <fperez@colorado.edu>
6144
6150
6145 * Changed @file so that it opens the source file at the proper
6151 * Changed @file so that it opens the source file at the proper
6146 line. Since it uses less, if your EDITOR environment is
6152 line. Since it uses less, if your EDITOR environment is
6147 configured, typing v will immediately open your editor of choice
6153 configured, typing v will immediately open your editor of choice
6148 right at the line where the object is defined. Not as quick as
6154 right at the line where the object is defined. Not as quick as
6149 having a direct @edit command, but for all intents and purposes it
6155 having a direct @edit command, but for all intents and purposes it
6150 works. And I don't have to worry about writing @edit to deal with
6156 works. And I don't have to worry about writing @edit to deal with
6151 all the editors, less does that.
6157 all the editors, less does that.
6152
6158
6153 * Version 0.1.16 released, 0.1.17 opened.
6159 * Version 0.1.16 released, 0.1.17 opened.
6154
6160
6155 * Fixed some nasty bugs in the page/page_dumb combo that could
6161 * Fixed some nasty bugs in the page/page_dumb combo that could
6156 crash IPython.
6162 crash IPython.
6157
6163
6158 2001-11-27 Fernando Perez <fperez@colorado.edu>
6164 2001-11-27 Fernando Perez <fperez@colorado.edu>
6159
6165
6160 * Version 0.1.15 released, 0.1.16 opened.
6166 * Version 0.1.15 released, 0.1.16 opened.
6161
6167
6162 * Finally got ? and ?? to work for undefined things: now it's
6168 * Finally got ? and ?? to work for undefined things: now it's
6163 possible to type {}.get? and get information about the get method
6169 possible to type {}.get? and get information about the get method
6164 of dicts, or os.path? even if only os is defined (so technically
6170 of dicts, or os.path? even if only os is defined (so technically
6165 os.path isn't). Works at any level. For example, after import os,
6171 os.path isn't). Works at any level. For example, after import os,
6166 os?, os.path?, os.path.abspath? all work. This is great, took some
6172 os?, os.path?, os.path.abspath? all work. This is great, took some
6167 work in _ofind.
6173 work in _ofind.
6168
6174
6169 * Fixed more bugs with logging. The sanest way to do it was to add
6175 * Fixed more bugs with logging. The sanest way to do it was to add
6170 to @log a 'mode' parameter. Killed two in one shot (this mode
6176 to @log a 'mode' parameter. Killed two in one shot (this mode
6171 option was a request of Janko's). I think it's finally clean
6177 option was a request of Janko's). I think it's finally clean
6172 (famous last words).
6178 (famous last words).
6173
6179
6174 * Added a page_dumb() pager which does a decent job of paging on
6180 * Added a page_dumb() pager which does a decent job of paging on
6175 screen, if better things (like less) aren't available. One less
6181 screen, if better things (like less) aren't available. One less
6176 unix dependency (someday maybe somebody will port this to
6182 unix dependency (someday maybe somebody will port this to
6177 windows).
6183 windows).
6178
6184
6179 * Fixed problem in magic_log: would lock of logging out if log
6185 * Fixed problem in magic_log: would lock of logging out if log
6180 creation failed (because it would still think it had succeeded).
6186 creation failed (because it would still think it had succeeded).
6181
6187
6182 * Improved the page() function using curses to auto-detect screen
6188 * Improved the page() function using curses to auto-detect screen
6183 size. Now it can make a much better decision on whether to print
6189 size. Now it can make a much better decision on whether to print
6184 or page a string. Option screen_length was modified: a value 0
6190 or page a string. Option screen_length was modified: a value 0
6185 means auto-detect, and that's the default now.
6191 means auto-detect, and that's the default now.
6186
6192
6187 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6193 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6188 go out. I'll test it for a few days, then talk to Janko about
6194 go out. I'll test it for a few days, then talk to Janko about
6189 licences and announce it.
6195 licences and announce it.
6190
6196
6191 * Fixed the length of the auto-generated ---> prompt which appears
6197 * Fixed the length of the auto-generated ---> prompt which appears
6192 for auto-parens and auto-quotes. Getting this right isn't trivial,
6198 for auto-parens and auto-quotes. Getting this right isn't trivial,
6193 with all the color escapes, different prompt types and optional
6199 with all the color escapes, different prompt types and optional
6194 separators. But it seems to be working in all the combinations.
6200 separators. But it seems to be working in all the combinations.
6195
6201
6196 2001-11-26 Fernando Perez <fperez@colorado.edu>
6202 2001-11-26 Fernando Perez <fperez@colorado.edu>
6197
6203
6198 * Wrote a regexp filter to get option types from the option names
6204 * Wrote a regexp filter to get option types from the option names
6199 string. This eliminates the need to manually keep two duplicate
6205 string. This eliminates the need to manually keep two duplicate
6200 lists.
6206 lists.
6201
6207
6202 * Removed the unneeded check_option_names. Now options are handled
6208 * Removed the unneeded check_option_names. Now options are handled
6203 in a much saner manner and it's easy to visually check that things
6209 in a much saner manner and it's easy to visually check that things
6204 are ok.
6210 are ok.
6205
6211
6206 * Updated version numbers on all files I modified to carry a
6212 * Updated version numbers on all files I modified to carry a
6207 notice so Janko and Nathan have clear version markers.
6213 notice so Janko and Nathan have clear version markers.
6208
6214
6209 * Updated docstring for ultraTB with my changes. I should send
6215 * Updated docstring for ultraTB with my changes. I should send
6210 this to Nathan.
6216 this to Nathan.
6211
6217
6212 * Lots of small fixes. Ran everything through pychecker again.
6218 * Lots of small fixes. Ran everything through pychecker again.
6213
6219
6214 * Made loading of deep_reload an cmd line option. If it's not too
6220 * Made loading of deep_reload an cmd line option. If it's not too
6215 kosher, now people can just disable it. With -nodeep_reload it's
6221 kosher, now people can just disable it. With -nodeep_reload it's
6216 still available as dreload(), it just won't overwrite reload().
6222 still available as dreload(), it just won't overwrite reload().
6217
6223
6218 * Moved many options to the no| form (-opt and -noopt
6224 * Moved many options to the no| form (-opt and -noopt
6219 accepted). Cleaner.
6225 accepted). Cleaner.
6220
6226
6221 * Changed magic_log so that if called with no parameters, it uses
6227 * Changed magic_log so that if called with no parameters, it uses
6222 'rotate' mode. That way auto-generated logs aren't automatically
6228 'rotate' mode. That way auto-generated logs aren't automatically
6223 over-written. For normal logs, now a backup is made if it exists
6229 over-written. For normal logs, now a backup is made if it exists
6224 (only 1 level of backups). A new 'backup' mode was added to the
6230 (only 1 level of backups). A new 'backup' mode was added to the
6225 Logger class to support this. This was a request by Janko.
6231 Logger class to support this. This was a request by Janko.
6226
6232
6227 * Added @logoff/@logon to stop/restart an active log.
6233 * Added @logoff/@logon to stop/restart an active log.
6228
6234
6229 * Fixed a lot of bugs in log saving/replay. It was pretty
6235 * Fixed a lot of bugs in log saving/replay. It was pretty
6230 broken. Now special lines (!@,/) appear properly in the command
6236 broken. Now special lines (!@,/) appear properly in the command
6231 history after a log replay.
6237 history after a log replay.
6232
6238
6233 * Tried and failed to implement full session saving via pickle. My
6239 * Tried and failed to implement full session saving via pickle. My
6234 idea was to pickle __main__.__dict__, but modules can't be
6240 idea was to pickle __main__.__dict__, but modules can't be
6235 pickled. This would be a better alternative to replaying logs, but
6241 pickled. This would be a better alternative to replaying logs, but
6236 seems quite tricky to get to work. Changed -session to be called
6242 seems quite tricky to get to work. Changed -session to be called
6237 -logplay, which more accurately reflects what it does. And if we
6243 -logplay, which more accurately reflects what it does. And if we
6238 ever get real session saving working, -session is now available.
6244 ever get real session saving working, -session is now available.
6239
6245
6240 * Implemented color schemes for prompts also. As for tracebacks,
6246 * Implemented color schemes for prompts also. As for tracebacks,
6241 currently only NoColor and Linux are supported. But now the
6247 currently only NoColor and Linux are supported. But now the
6242 infrastructure is in place, based on a generic ColorScheme
6248 infrastructure is in place, based on a generic ColorScheme
6243 class. So writing and activating new schemes both for the prompts
6249 class. So writing and activating new schemes both for the prompts
6244 and the tracebacks should be straightforward.
6250 and the tracebacks should be straightforward.
6245
6251
6246 * Version 0.1.13 released, 0.1.14 opened.
6252 * Version 0.1.13 released, 0.1.14 opened.
6247
6253
6248 * Changed handling of options for output cache. Now counter is
6254 * Changed handling of options for output cache. Now counter is
6249 hardwired starting at 1 and one specifies the maximum number of
6255 hardwired starting at 1 and one specifies the maximum number of
6250 entries *in the outcache* (not the max prompt counter). This is
6256 entries *in the outcache* (not the max prompt counter). This is
6251 much better, since many statements won't increase the cache
6257 much better, since many statements won't increase the cache
6252 count. It also eliminated some confusing options, now there's only
6258 count. It also eliminated some confusing options, now there's only
6253 one: cache_size.
6259 one: cache_size.
6254
6260
6255 * Added 'alias' magic function and magic_alias option in the
6261 * Added 'alias' magic function and magic_alias option in the
6256 ipythonrc file. Now the user can easily define whatever names he
6262 ipythonrc file. Now the user can easily define whatever names he
6257 wants for the magic functions without having to play weird
6263 wants for the magic functions without having to play weird
6258 namespace games. This gives IPython a real shell-like feel.
6264 namespace games. This gives IPython a real shell-like feel.
6259
6265
6260 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6266 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6261 @ or not).
6267 @ or not).
6262
6268
6263 This was one of the last remaining 'visible' bugs (that I know
6269 This was one of the last remaining 'visible' bugs (that I know
6264 of). I think if I can clean up the session loading so it works
6270 of). I think if I can clean up the session loading so it works
6265 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6271 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6266 about licensing).
6272 about licensing).
6267
6273
6268 2001-11-25 Fernando Perez <fperez@colorado.edu>
6274 2001-11-25 Fernando Perez <fperez@colorado.edu>
6269
6275
6270 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6276 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6271 there's a cleaner distinction between what ? and ?? show.
6277 there's a cleaner distinction between what ? and ?? show.
6272
6278
6273 * Added screen_length option. Now the user can define his own
6279 * Added screen_length option. Now the user can define his own
6274 screen size for page() operations.
6280 screen size for page() operations.
6275
6281
6276 * Implemented magic shell-like functions with automatic code
6282 * Implemented magic shell-like functions with automatic code
6277 generation. Now adding another function is just a matter of adding
6283 generation. Now adding another function is just a matter of adding
6278 an entry to a dict, and the function is dynamically generated at
6284 an entry to a dict, and the function is dynamically generated at
6279 run-time. Python has some really cool features!
6285 run-time. Python has some really cool features!
6280
6286
6281 * Renamed many options to cleanup conventions a little. Now all
6287 * Renamed many options to cleanup conventions a little. Now all
6282 are lowercase, and only underscores where needed. Also in the code
6288 are lowercase, and only underscores where needed. Also in the code
6283 option name tables are clearer.
6289 option name tables are clearer.
6284
6290
6285 * Changed prompts a little. Now input is 'In [n]:' instead of
6291 * Changed prompts a little. Now input is 'In [n]:' instead of
6286 'In[n]:='. This allows it the numbers to be aligned with the
6292 'In[n]:='. This allows it the numbers to be aligned with the
6287 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6293 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6288 Python (it was a Mathematica thing). The '...' continuation prompt
6294 Python (it was a Mathematica thing). The '...' continuation prompt
6289 was also changed a little to align better.
6295 was also changed a little to align better.
6290
6296
6291 * Fixed bug when flushing output cache. Not all _p<n> variables
6297 * Fixed bug when flushing output cache. Not all _p<n> variables
6292 exist, so their deletion needs to be wrapped in a try:
6298 exist, so their deletion needs to be wrapped in a try:
6293
6299
6294 * Figured out how to properly use inspect.formatargspec() (it
6300 * Figured out how to properly use inspect.formatargspec() (it
6295 requires the args preceded by *). So I removed all the code from
6301 requires the args preceded by *). So I removed all the code from
6296 _get_pdef in Magic, which was just replicating that.
6302 _get_pdef in Magic, which was just replicating that.
6297
6303
6298 * Added test to prefilter to allow redefining magic function names
6304 * Added test to prefilter to allow redefining magic function names
6299 as variables. This is ok, since the @ form is always available,
6305 as variables. This is ok, since the @ form is always available,
6300 but whe should allow the user to define a variable called 'ls' if
6306 but whe should allow the user to define a variable called 'ls' if
6301 he needs it.
6307 he needs it.
6302
6308
6303 * Moved the ToDo information from README into a separate ToDo.
6309 * Moved the ToDo information from README into a separate ToDo.
6304
6310
6305 * General code cleanup and small bugfixes. I think it's close to a
6311 * General code cleanup and small bugfixes. I think it's close to a
6306 state where it can be released, obviously with a big 'beta'
6312 state where it can be released, obviously with a big 'beta'
6307 warning on it.
6313 warning on it.
6308
6314
6309 * Got the magic function split to work. Now all magics are defined
6315 * Got the magic function split to work. Now all magics are defined
6310 in a separate class. It just organizes things a bit, and now
6316 in a separate class. It just organizes things a bit, and now
6311 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6317 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6312 was too long).
6318 was too long).
6313
6319
6314 * Changed @clear to @reset to avoid potential confusions with
6320 * Changed @clear to @reset to avoid potential confusions with
6315 the shell command clear. Also renamed @cl to @clear, which does
6321 the shell command clear. Also renamed @cl to @clear, which does
6316 exactly what people expect it to from their shell experience.
6322 exactly what people expect it to from their shell experience.
6317
6323
6318 Added a check to the @reset command (since it's so
6324 Added a check to the @reset command (since it's so
6319 destructive, it's probably a good idea to ask for confirmation).
6325 destructive, it's probably a good idea to ask for confirmation).
6320 But now reset only works for full namespace resetting. Since the
6326 But now reset only works for full namespace resetting. Since the
6321 del keyword is already there for deleting a few specific
6327 del keyword is already there for deleting a few specific
6322 variables, I don't see the point of having a redundant magic
6328 variables, I don't see the point of having a redundant magic
6323 function for the same task.
6329 function for the same task.
6324
6330
6325 2001-11-24 Fernando Perez <fperez@colorado.edu>
6331 2001-11-24 Fernando Perez <fperez@colorado.edu>
6326
6332
6327 * Updated the builtin docs (esp. the ? ones).
6333 * Updated the builtin docs (esp. the ? ones).
6328
6334
6329 * Ran all the code through pychecker. Not terribly impressed with
6335 * Ran all the code through pychecker. Not terribly impressed with
6330 it: lots of spurious warnings and didn't really find anything of
6336 it: lots of spurious warnings and didn't really find anything of
6331 substance (just a few modules being imported and not used).
6337 substance (just a few modules being imported and not used).
6332
6338
6333 * Implemented the new ultraTB functionality into IPython. New
6339 * Implemented the new ultraTB functionality into IPython. New
6334 option: xcolors. This chooses color scheme. xmode now only selects
6340 option: xcolors. This chooses color scheme. xmode now only selects
6335 between Plain and Verbose. Better orthogonality.
6341 between Plain and Verbose. Better orthogonality.
6336
6342
6337 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6343 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6338 mode and color scheme for the exception handlers. Now it's
6344 mode and color scheme for the exception handlers. Now it's
6339 possible to have the verbose traceback with no coloring.
6345 possible to have the verbose traceback with no coloring.
6340
6346
6341 2001-11-23 Fernando Perez <fperez@colorado.edu>
6347 2001-11-23 Fernando Perez <fperez@colorado.edu>
6342
6348
6343 * Version 0.1.12 released, 0.1.13 opened.
6349 * Version 0.1.12 released, 0.1.13 opened.
6344
6350
6345 * Removed option to set auto-quote and auto-paren escapes by
6351 * Removed option to set auto-quote and auto-paren escapes by
6346 user. The chances of breaking valid syntax are just too high. If
6352 user. The chances of breaking valid syntax are just too high. If
6347 someone *really* wants, they can always dig into the code.
6353 someone *really* wants, they can always dig into the code.
6348
6354
6349 * Made prompt separators configurable.
6355 * Made prompt separators configurable.
6350
6356
6351 2001-11-22 Fernando Perez <fperez@colorado.edu>
6357 2001-11-22 Fernando Perez <fperez@colorado.edu>
6352
6358
6353 * Small bugfixes in many places.
6359 * Small bugfixes in many places.
6354
6360
6355 * Removed the MyCompleter class from ipplib. It seemed redundant
6361 * Removed the MyCompleter class from ipplib. It seemed redundant
6356 with the C-p,C-n history search functionality. Less code to
6362 with the C-p,C-n history search functionality. Less code to
6357 maintain.
6363 maintain.
6358
6364
6359 * Moved all the original ipython.py code into ipythonlib.py. Right
6365 * Moved all the original ipython.py code into ipythonlib.py. Right
6360 now it's just one big dump into a function called make_IPython, so
6366 now it's just one big dump into a function called make_IPython, so
6361 no real modularity has been gained. But at least it makes the
6367 no real modularity has been gained. But at least it makes the
6362 wrapper script tiny, and since ipythonlib is a module, it gets
6368 wrapper script tiny, and since ipythonlib is a module, it gets
6363 compiled and startup is much faster.
6369 compiled and startup is much faster.
6364
6370
6365 This is a reasobably 'deep' change, so we should test it for a
6371 This is a reasobably 'deep' change, so we should test it for a
6366 while without messing too much more with the code.
6372 while without messing too much more with the code.
6367
6373
6368 2001-11-21 Fernando Perez <fperez@colorado.edu>
6374 2001-11-21 Fernando Perez <fperez@colorado.edu>
6369
6375
6370 * Version 0.1.11 released, 0.1.12 opened for further work.
6376 * Version 0.1.11 released, 0.1.12 opened for further work.
6371
6377
6372 * Removed dependency on Itpl. It was only needed in one place. It
6378 * Removed dependency on Itpl. It was only needed in one place. It
6373 would be nice if this became part of python, though. It makes life
6379 would be nice if this became part of python, though. It makes life
6374 *a lot* easier in some cases.
6380 *a lot* easier in some cases.
6375
6381
6376 * Simplified the prefilter code a bit. Now all handlers are
6382 * Simplified the prefilter code a bit. Now all handlers are
6377 expected to explicitly return a value (at least a blank string).
6383 expected to explicitly return a value (at least a blank string).
6378
6384
6379 * Heavy edits in ipplib. Removed the help system altogether. Now
6385 * Heavy edits in ipplib. Removed the help system altogether. Now
6380 obj?/?? is used for inspecting objects, a magic @doc prints
6386 obj?/?? is used for inspecting objects, a magic @doc prints
6381 docstrings, and full-blown Python help is accessed via the 'help'
6387 docstrings, and full-blown Python help is accessed via the 'help'
6382 keyword. This cleans up a lot of code (less to maintain) and does
6388 keyword. This cleans up a lot of code (less to maintain) and does
6383 the job. Since 'help' is now a standard Python component, might as
6389 the job. Since 'help' is now a standard Python component, might as
6384 well use it and remove duplicate functionality.
6390 well use it and remove duplicate functionality.
6385
6391
6386 Also removed the option to use ipplib as a standalone program. By
6392 Also removed the option to use ipplib as a standalone program. By
6387 now it's too dependent on other parts of IPython to function alone.
6393 now it's too dependent on other parts of IPython to function alone.
6388
6394
6389 * Fixed bug in genutils.pager. It would crash if the pager was
6395 * Fixed bug in genutils.pager. It would crash if the pager was
6390 exited immediately after opening (broken pipe).
6396 exited immediately after opening (broken pipe).
6391
6397
6392 * Trimmed down the VerboseTB reporting a little. The header is
6398 * Trimmed down the VerboseTB reporting a little. The header is
6393 much shorter now and the repeated exception arguments at the end
6399 much shorter now and the repeated exception arguments at the end
6394 have been removed. For interactive use the old header seemed a bit
6400 have been removed. For interactive use the old header seemed a bit
6395 excessive.
6401 excessive.
6396
6402
6397 * Fixed small bug in output of @whos for variables with multi-word
6403 * Fixed small bug in output of @whos for variables with multi-word
6398 types (only first word was displayed).
6404 types (only first word was displayed).
6399
6405
6400 2001-11-17 Fernando Perez <fperez@colorado.edu>
6406 2001-11-17 Fernando Perez <fperez@colorado.edu>
6401
6407
6402 * Version 0.1.10 released, 0.1.11 opened for further work.
6408 * Version 0.1.10 released, 0.1.11 opened for further work.
6403
6409
6404 * Modified dirs and friends. dirs now *returns* the stack (not
6410 * Modified dirs and friends. dirs now *returns* the stack (not
6405 prints), so one can manipulate it as a variable. Convenient to
6411 prints), so one can manipulate it as a variable. Convenient to
6406 travel along many directories.
6412 travel along many directories.
6407
6413
6408 * Fixed bug in magic_pdef: would only work with functions with
6414 * Fixed bug in magic_pdef: would only work with functions with
6409 arguments with default values.
6415 arguments with default values.
6410
6416
6411 2001-11-14 Fernando Perez <fperez@colorado.edu>
6417 2001-11-14 Fernando Perez <fperez@colorado.edu>
6412
6418
6413 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6419 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6414 example with IPython. Various other minor fixes and cleanups.
6420 example with IPython. Various other minor fixes and cleanups.
6415
6421
6416 * Version 0.1.9 released, 0.1.10 opened for further work.
6422 * Version 0.1.9 released, 0.1.10 opened for further work.
6417
6423
6418 * Added sys.path to the list of directories searched in the
6424 * Added sys.path to the list of directories searched in the
6419 execfile= option. It used to be the current directory and the
6425 execfile= option. It used to be the current directory and the
6420 user's IPYTHONDIR only.
6426 user's IPYTHONDIR only.
6421
6427
6422 2001-11-13 Fernando Perez <fperez@colorado.edu>
6428 2001-11-13 Fernando Perez <fperez@colorado.edu>
6423
6429
6424 * Reinstated the raw_input/prefilter separation that Janko had
6430 * Reinstated the raw_input/prefilter separation that Janko had
6425 initially. This gives a more convenient setup for extending the
6431 initially. This gives a more convenient setup for extending the
6426 pre-processor from the outside: raw_input always gets a string,
6432 pre-processor from the outside: raw_input always gets a string,
6427 and prefilter has to process it. We can then redefine prefilter
6433 and prefilter has to process it. We can then redefine prefilter
6428 from the outside and implement extensions for special
6434 from the outside and implement extensions for special
6429 purposes.
6435 purposes.
6430
6436
6431 Today I got one for inputting PhysicalQuantity objects
6437 Today I got one for inputting PhysicalQuantity objects
6432 (from Scientific) without needing any function calls at
6438 (from Scientific) without needing any function calls at
6433 all. Extremely convenient, and it's all done as a user-level
6439 all. Extremely convenient, and it's all done as a user-level
6434 extension (no IPython code was touched). Now instead of:
6440 extension (no IPython code was touched). Now instead of:
6435 a = PhysicalQuantity(4.2,'m/s**2')
6441 a = PhysicalQuantity(4.2,'m/s**2')
6436 one can simply say
6442 one can simply say
6437 a = 4.2 m/s**2
6443 a = 4.2 m/s**2
6438 or even
6444 or even
6439 a = 4.2 m/s^2
6445 a = 4.2 m/s^2
6440
6446
6441 I use this, but it's also a proof of concept: IPython really is
6447 I use this, but it's also a proof of concept: IPython really is
6442 fully user-extensible, even at the level of the parsing of the
6448 fully user-extensible, even at the level of the parsing of the
6443 command line. It's not trivial, but it's perfectly doable.
6449 command line. It's not trivial, but it's perfectly doable.
6444
6450
6445 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6451 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6446 the problem of modules being loaded in the inverse order in which
6452 the problem of modules being loaded in the inverse order in which
6447 they were defined in
6453 they were defined in
6448
6454
6449 * Version 0.1.8 released, 0.1.9 opened for further work.
6455 * Version 0.1.8 released, 0.1.9 opened for further work.
6450
6456
6451 * Added magics pdef, source and file. They respectively show the
6457 * Added magics pdef, source and file. They respectively show the
6452 definition line ('prototype' in C), source code and full python
6458 definition line ('prototype' in C), source code and full python
6453 file for any callable object. The object inspector oinfo uses
6459 file for any callable object. The object inspector oinfo uses
6454 these to show the same information.
6460 these to show the same information.
6455
6461
6456 * Version 0.1.7 released, 0.1.8 opened for further work.
6462 * Version 0.1.7 released, 0.1.8 opened for further work.
6457
6463
6458 * Separated all the magic functions into a class called Magic. The
6464 * Separated all the magic functions into a class called Magic. The
6459 InteractiveShell class was becoming too big for Xemacs to handle
6465 InteractiveShell class was becoming too big for Xemacs to handle
6460 (de-indenting a line would lock it up for 10 seconds while it
6466 (de-indenting a line would lock it up for 10 seconds while it
6461 backtracked on the whole class!)
6467 backtracked on the whole class!)
6462
6468
6463 FIXME: didn't work. It can be done, but right now namespaces are
6469 FIXME: didn't work. It can be done, but right now namespaces are
6464 all messed up. Do it later (reverted it for now, so at least
6470 all messed up. Do it later (reverted it for now, so at least
6465 everything works as before).
6471 everything works as before).
6466
6472
6467 * Got the object introspection system (magic_oinfo) working! I
6473 * Got the object introspection system (magic_oinfo) working! I
6468 think this is pretty much ready for release to Janko, so he can
6474 think this is pretty much ready for release to Janko, so he can
6469 test it for a while and then announce it. Pretty much 100% of what
6475 test it for a while and then announce it. Pretty much 100% of what
6470 I wanted for the 'phase 1' release is ready. Happy, tired.
6476 I wanted for the 'phase 1' release is ready. Happy, tired.
6471
6477
6472 2001-11-12 Fernando Perez <fperez@colorado.edu>
6478 2001-11-12 Fernando Perez <fperez@colorado.edu>
6473
6479
6474 * Version 0.1.6 released, 0.1.7 opened for further work.
6480 * Version 0.1.6 released, 0.1.7 opened for further work.
6475
6481
6476 * Fixed bug in printing: it used to test for truth before
6482 * Fixed bug in printing: it used to test for truth before
6477 printing, so 0 wouldn't print. Now checks for None.
6483 printing, so 0 wouldn't print. Now checks for None.
6478
6484
6479 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6485 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6480 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6486 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6481 reaches by hand into the outputcache. Think of a better way to do
6487 reaches by hand into the outputcache. Think of a better way to do
6482 this later.
6488 this later.
6483
6489
6484 * Various small fixes thanks to Nathan's comments.
6490 * Various small fixes thanks to Nathan's comments.
6485
6491
6486 * Changed magic_pprint to magic_Pprint. This way it doesn't
6492 * Changed magic_pprint to magic_Pprint. This way it doesn't
6487 collide with pprint() and the name is consistent with the command
6493 collide with pprint() and the name is consistent with the command
6488 line option.
6494 line option.
6489
6495
6490 * Changed prompt counter behavior to be fully like
6496 * Changed prompt counter behavior to be fully like
6491 Mathematica's. That is, even input that doesn't return a result
6497 Mathematica's. That is, even input that doesn't return a result
6492 raises the prompt counter. The old behavior was kind of confusing
6498 raises the prompt counter. The old behavior was kind of confusing
6493 (getting the same prompt number several times if the operation
6499 (getting the same prompt number several times if the operation
6494 didn't return a result).
6500 didn't return a result).
6495
6501
6496 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6502 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6497
6503
6498 * Fixed -Classic mode (wasn't working anymore).
6504 * Fixed -Classic mode (wasn't working anymore).
6499
6505
6500 * Added colored prompts using Nathan's new code. Colors are
6506 * Added colored prompts using Nathan's new code. Colors are
6501 currently hardwired, they can be user-configurable. For
6507 currently hardwired, they can be user-configurable. For
6502 developers, they can be chosen in file ipythonlib.py, at the
6508 developers, they can be chosen in file ipythonlib.py, at the
6503 beginning of the CachedOutput class def.
6509 beginning of the CachedOutput class def.
6504
6510
6505 2001-11-11 Fernando Perez <fperez@colorado.edu>
6511 2001-11-11 Fernando Perez <fperez@colorado.edu>
6506
6512
6507 * Version 0.1.5 released, 0.1.6 opened for further work.
6513 * Version 0.1.5 released, 0.1.6 opened for further work.
6508
6514
6509 * Changed magic_env to *return* the environment as a dict (not to
6515 * Changed magic_env to *return* the environment as a dict (not to
6510 print it). This way it prints, but it can also be processed.
6516 print it). This way it prints, but it can also be processed.
6511
6517
6512 * Added Verbose exception reporting to interactive
6518 * Added Verbose exception reporting to interactive
6513 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6519 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6514 traceback. Had to make some changes to the ultraTB file. This is
6520 traceback. Had to make some changes to the ultraTB file. This is
6515 probably the last 'big' thing in my mental todo list. This ties
6521 probably the last 'big' thing in my mental todo list. This ties
6516 in with the next entry:
6522 in with the next entry:
6517
6523
6518 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6524 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6519 has to specify is Plain, Color or Verbose for all exception
6525 has to specify is Plain, Color or Verbose for all exception
6520 handling.
6526 handling.
6521
6527
6522 * Removed ShellServices option. All this can really be done via
6528 * Removed ShellServices option. All this can really be done via
6523 the magic system. It's easier to extend, cleaner and has automatic
6529 the magic system. It's easier to extend, cleaner and has automatic
6524 namespace protection and documentation.
6530 namespace protection and documentation.
6525
6531
6526 2001-11-09 Fernando Perez <fperez@colorado.edu>
6532 2001-11-09 Fernando Perez <fperez@colorado.edu>
6527
6533
6528 * Fixed bug in output cache flushing (missing parameter to
6534 * Fixed bug in output cache flushing (missing parameter to
6529 __init__). Other small bugs fixed (found using pychecker).
6535 __init__). Other small bugs fixed (found using pychecker).
6530
6536
6531 * Version 0.1.4 opened for bugfixing.
6537 * Version 0.1.4 opened for bugfixing.
6532
6538
6533 2001-11-07 Fernando Perez <fperez@colorado.edu>
6539 2001-11-07 Fernando Perez <fperez@colorado.edu>
6534
6540
6535 * Version 0.1.3 released, mainly because of the raw_input bug.
6541 * Version 0.1.3 released, mainly because of the raw_input bug.
6536
6542
6537 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6543 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6538 and when testing for whether things were callable, a call could
6544 and when testing for whether things were callable, a call could
6539 actually be made to certain functions. They would get called again
6545 actually be made to certain functions. They would get called again
6540 once 'really' executed, with a resulting double call. A disaster
6546 once 'really' executed, with a resulting double call. A disaster
6541 in many cases (list.reverse() would never work!).
6547 in many cases (list.reverse() would never work!).
6542
6548
6543 * Removed prefilter() function, moved its code to raw_input (which
6549 * Removed prefilter() function, moved its code to raw_input (which
6544 after all was just a near-empty caller for prefilter). This saves
6550 after all was just a near-empty caller for prefilter). This saves
6545 a function call on every prompt, and simplifies the class a tiny bit.
6551 a function call on every prompt, and simplifies the class a tiny bit.
6546
6552
6547 * Fix _ip to __ip name in magic example file.
6553 * Fix _ip to __ip name in magic example file.
6548
6554
6549 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6555 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6550 work with non-gnu versions of tar.
6556 work with non-gnu versions of tar.
6551
6557
6552 2001-11-06 Fernando Perez <fperez@colorado.edu>
6558 2001-11-06 Fernando Perez <fperez@colorado.edu>
6553
6559
6554 * Version 0.1.2. Just to keep track of the recent changes.
6560 * Version 0.1.2. Just to keep track of the recent changes.
6555
6561
6556 * Fixed nasty bug in output prompt routine. It used to check 'if
6562 * Fixed nasty bug in output prompt routine. It used to check 'if
6557 arg != None...'. Problem is, this fails if arg implements a
6563 arg != None...'. Problem is, this fails if arg implements a
6558 special comparison (__cmp__) which disallows comparing to
6564 special comparison (__cmp__) which disallows comparing to
6559 None. Found it when trying to use the PhysicalQuantity module from
6565 None. Found it when trying to use the PhysicalQuantity module from
6560 ScientificPython.
6566 ScientificPython.
6561
6567
6562 2001-11-05 Fernando Perez <fperez@colorado.edu>
6568 2001-11-05 Fernando Perez <fperez@colorado.edu>
6563
6569
6564 * Also added dirs. Now the pushd/popd/dirs family functions
6570 * Also added dirs. Now the pushd/popd/dirs family functions
6565 basically like the shell, with the added convenience of going home
6571 basically like the shell, with the added convenience of going home
6566 when called with no args.
6572 when called with no args.
6567
6573
6568 * pushd/popd slightly modified to mimic shell behavior more
6574 * pushd/popd slightly modified to mimic shell behavior more
6569 closely.
6575 closely.
6570
6576
6571 * Added env,pushd,popd from ShellServices as magic functions. I
6577 * Added env,pushd,popd from ShellServices as magic functions. I
6572 think the cleanest will be to port all desired functions from
6578 think the cleanest will be to port all desired functions from
6573 ShellServices as magics and remove ShellServices altogether. This
6579 ShellServices as magics and remove ShellServices altogether. This
6574 will provide a single, clean way of adding functionality
6580 will provide a single, clean way of adding functionality
6575 (shell-type or otherwise) to IP.
6581 (shell-type or otherwise) to IP.
6576
6582
6577 2001-11-04 Fernando Perez <fperez@colorado.edu>
6583 2001-11-04 Fernando Perez <fperez@colorado.edu>
6578
6584
6579 * Added .ipython/ directory to sys.path. This way users can keep
6585 * Added .ipython/ directory to sys.path. This way users can keep
6580 customizations there and access them via import.
6586 customizations there and access them via import.
6581
6587
6582 2001-11-03 Fernando Perez <fperez@colorado.edu>
6588 2001-11-03 Fernando Perez <fperez@colorado.edu>
6583
6589
6584 * Opened version 0.1.1 for new changes.
6590 * Opened version 0.1.1 for new changes.
6585
6591
6586 * Changed version number to 0.1.0: first 'public' release, sent to
6592 * Changed version number to 0.1.0: first 'public' release, sent to
6587 Nathan and Janko.
6593 Nathan and Janko.
6588
6594
6589 * Lots of small fixes and tweaks.
6595 * Lots of small fixes and tweaks.
6590
6596
6591 * Minor changes to whos format. Now strings are shown, snipped if
6597 * Minor changes to whos format. Now strings are shown, snipped if
6592 too long.
6598 too long.
6593
6599
6594 * Changed ShellServices to work on __main__ so they show up in @who
6600 * Changed ShellServices to work on __main__ so they show up in @who
6595
6601
6596 * Help also works with ? at the end of a line:
6602 * Help also works with ? at the end of a line:
6597 ?sin and sin?
6603 ?sin and sin?
6598 both produce the same effect. This is nice, as often I use the
6604 both produce the same effect. This is nice, as often I use the
6599 tab-complete to find the name of a method, but I used to then have
6605 tab-complete to find the name of a method, but I used to then have
6600 to go to the beginning of the line to put a ? if I wanted more
6606 to go to the beginning of the line to put a ? if I wanted more
6601 info. Now I can just add the ? and hit return. Convenient.
6607 info. Now I can just add the ? and hit return. Convenient.
6602
6608
6603 2001-11-02 Fernando Perez <fperez@colorado.edu>
6609 2001-11-02 Fernando Perez <fperez@colorado.edu>
6604
6610
6605 * Python version check (>=2.1) added.
6611 * Python version check (>=2.1) added.
6606
6612
6607 * Added LazyPython documentation. At this point the docs are quite
6613 * Added LazyPython documentation. At this point the docs are quite
6608 a mess. A cleanup is in order.
6614 a mess. A cleanup is in order.
6609
6615
6610 * Auto-installer created. For some bizarre reason, the zipfiles
6616 * Auto-installer created. For some bizarre reason, the zipfiles
6611 module isn't working on my system. So I made a tar version
6617 module isn't working on my system. So I made a tar version
6612 (hopefully the command line options in various systems won't kill
6618 (hopefully the command line options in various systems won't kill
6613 me).
6619 me).
6614
6620
6615 * Fixes to Struct in genutils. Now all dictionary-like methods are
6621 * Fixes to Struct in genutils. Now all dictionary-like methods are
6616 protected (reasonably).
6622 protected (reasonably).
6617
6623
6618 * Added pager function to genutils and changed ? to print usage
6624 * Added pager function to genutils and changed ? to print usage
6619 note through it (it was too long).
6625 note through it (it was too long).
6620
6626
6621 * Added the LazyPython functionality. Works great! I changed the
6627 * Added the LazyPython functionality. Works great! I changed the
6622 auto-quote escape to ';', it's on home row and next to '. But
6628 auto-quote escape to ';', it's on home row and next to '. But
6623 both auto-quote and auto-paren (still /) escapes are command-line
6629 both auto-quote and auto-paren (still /) escapes are command-line
6624 parameters.
6630 parameters.
6625
6631
6626
6632
6627 2001-11-01 Fernando Perez <fperez@colorado.edu>
6633 2001-11-01 Fernando Perez <fperez@colorado.edu>
6628
6634
6629 * Version changed to 0.0.7. Fairly large change: configuration now
6635 * Version changed to 0.0.7. Fairly large change: configuration now
6630 is all stored in a directory, by default .ipython. There, all
6636 is all stored in a directory, by default .ipython. There, all
6631 config files have normal looking names (not .names)
6637 config files have normal looking names (not .names)
6632
6638
6633 * Version 0.0.6 Released first to Lucas and Archie as a test
6639 * Version 0.0.6 Released first to Lucas and Archie as a test
6634 run. Since it's the first 'semi-public' release, change version to
6640 run. Since it's the first 'semi-public' release, change version to
6635 > 0.0.6 for any changes now.
6641 > 0.0.6 for any changes now.
6636
6642
6637 * Stuff I had put in the ipplib.py changelog:
6643 * Stuff I had put in the ipplib.py changelog:
6638
6644
6639 Changes to InteractiveShell:
6645 Changes to InteractiveShell:
6640
6646
6641 - Made the usage message a parameter.
6647 - Made the usage message a parameter.
6642
6648
6643 - Require the name of the shell variable to be given. It's a bit
6649 - Require the name of the shell variable to be given. It's a bit
6644 of a hack, but allows the name 'shell' not to be hardwired in the
6650 of a hack, but allows the name 'shell' not to be hardwired in the
6645 magic (@) handler, which is problematic b/c it requires
6651 magic (@) handler, which is problematic b/c it requires
6646 polluting the global namespace with 'shell'. This in turn is
6652 polluting the global namespace with 'shell'. This in turn is
6647 fragile: if a user redefines a variable called shell, things
6653 fragile: if a user redefines a variable called shell, things
6648 break.
6654 break.
6649
6655
6650 - magic @: all functions available through @ need to be defined
6656 - magic @: all functions available through @ need to be defined
6651 as magic_<name>, even though they can be called simply as
6657 as magic_<name>, even though they can be called simply as
6652 @<name>. This allows the special command @magic to gather
6658 @<name>. This allows the special command @magic to gather
6653 information automatically about all existing magic functions,
6659 information automatically about all existing magic functions,
6654 even if they are run-time user extensions, by parsing the shell
6660 even if they are run-time user extensions, by parsing the shell
6655 instance __dict__ looking for special magic_ names.
6661 instance __dict__ looking for special magic_ names.
6656
6662
6657 - mainloop: added *two* local namespace parameters. This allows
6663 - mainloop: added *two* local namespace parameters. This allows
6658 the class to differentiate between parameters which were there
6664 the class to differentiate between parameters which were there
6659 before and after command line initialization was processed. This
6665 before and after command line initialization was processed. This
6660 way, later @who can show things loaded at startup by the
6666 way, later @who can show things loaded at startup by the
6661 user. This trick was necessary to make session saving/reloading
6667 user. This trick was necessary to make session saving/reloading
6662 really work: ideally after saving/exiting/reloading a session,
6668 really work: ideally after saving/exiting/reloading a session,
6663 *everything* should look the same, including the output of @who. I
6669 *everything* should look the same, including the output of @who. I
6664 was only able to make this work with this double namespace
6670 was only able to make this work with this double namespace
6665 trick.
6671 trick.
6666
6672
6667 - added a header to the logfile which allows (almost) full
6673 - added a header to the logfile which allows (almost) full
6668 session restoring.
6674 session restoring.
6669
6675
6670 - prepend lines beginning with @ or !, with a and log
6676 - prepend lines beginning with @ or !, with a and log
6671 them. Why? !lines: may be useful to know what you did @lines:
6677 them. Why? !lines: may be useful to know what you did @lines:
6672 they may affect session state. So when restoring a session, at
6678 they may affect session state. So when restoring a session, at
6673 least inform the user of their presence. I couldn't quite get
6679 least inform the user of their presence. I couldn't quite get
6674 them to properly re-execute, but at least the user is warned.
6680 them to properly re-execute, but at least the user is warned.
6675
6681
6676 * Started ChangeLog.
6682 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now